• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/ap/gpl/zebra/bgpd/

Lines Matching refs:peer

39    negotiate remote peer supports extentions or not. But if
40 remote-peer doesn't supports negotiation process itself. We would
44 peer whether we send capability negotiation to the peer or not.
45 Next, if we send capability to the peer we want to set my capabilty
46 inforation at each peer. */
49 bgp_capability_vty_out (struct vty *vty, struct peer *peer)
55 pnt = peer->notify.data;
56 end = pnt + peer->notify.length;
116 bgp_capability_mp (struct peer *peer, struct capability *cap)
122 peer->afc_recv[AFI_IP][SAFI_UNICAST] = 1;
124 if (peer->afc[AFI_IP][SAFI_UNICAST])
125 peer->afc_nego[AFI_IP][SAFI_UNICAST] = 1;
131 peer->afc_recv[AFI_IP][SAFI_MULTICAST] = 1;
133 if (peer->afc[AFI_IP][SAFI_MULTICAST])
134 peer->afc_nego[AFI_IP][SAFI_MULTICAST] = 1;
140 peer->afc_recv[AFI_IP][SAFI_MPLS_VPN] = 1;
142 if (peer->afc[AFI_IP][SAFI_MPLS_VPN])
143 peer->afc_nego[AFI_IP][SAFI_MPLS_VPN] = 1;
155 peer->afc_recv[AFI_IP6][SAFI_UNICAST] = 1;
157 if (peer->afc[AFI_IP6][SAFI_UNICAST])
158 peer->afc_nego[AFI_IP6][SAFI_UNICAST] = 1;
164 peer->afc_recv[AFI_IP6][SAFI_MULTICAST] = 1;
166 if (peer->afc[AFI_IP6][SAFI_MULTICAST])
167 peer->afc_nego[AFI_IP6][SAFI_MULTICAST] = 1;
185 bgp_capability_orf_not_support (struct peer *peer, afi_t afi, safi_t safi,
190 peer->host, afi, safi, type, mode);
194 bgp_capability_orf (struct peer *peer, struct capability *cap,
210 peer->host, cap->length);
211 bgp_notify_send (peer, BGP_NOTIFY_CEASE, 0);
217 peer->host, (cap->code == CAPABILITY_CODE_ORF ?
226 peer->host, afi, safi);
241 bgp_capability_orf_not_support (peer, afi, safi, type, mode);
257 peer->host, ORF_TYPE_PREFIX, (mode == ORF_MODE_SEND ? "SEND" :
262 bgp_capability_orf_not_support (peer, afi, safi, type, mode);
277 peer->host, ORF_TYPE_PREFIX_OLD, (mode == ORF_MODE_SEND ? "SEND" :
282 bgp_capability_orf_not_support (peer, afi, safi, type, mode);
288 bgp_capability_orf_not_support (peer, afi, safi, type, mode);
295 SET_FLAG (peer->af_cap[afi][safi], sm_cap);
296 SET_FLAG (peer->af_cap[afi][safi], rm_cap);
299 SET_FLAG (peer->af_cap[afi][safi], sm_cap);
302 SET_FLAG (peer->af_cap[afi][safi], rm_cap);
311 bgp_capability_parse (struct peer *peer, u_char *pnt, u_char length,
333 peer->host, cap.code, cap.length);
338 zlog_info ("%s Capability length error", peer->host);
339 bgp_notify_send (peer, BGP_NOTIFY_CEASE, 0);
346 zlog_info ("%s Capability length error", peer->host);
347 bgp_notify_send (peer, BGP_NOTIFY_CEASE, 0);
356 peer->host, afi, safi);
359 if (! CHECK_FLAG (peer->flags, PEER_FLAG_OVERRIDE_CAPABILITY))
362 ret = bgp_capability_mp (peer, &cap);
380 peer->host, cap.length);
381 bgp_notify_send (peer, BGP_NOTIFY_CEASE, 0);
387 peer->host,
392 SET_FLAG (peer->cap, PEER_CAP_REFRESH_OLD_RCV);
394 SET_FLAG (peer->cap, PEER_CAP_REFRESH_NEW_RCV);
398 bgp_capability_orf (peer, &cap, pnt + sizeof (struct capability));
405 peer->host, cap.length);
406 bgp_notify_send (peer, BGP_NOTIFY_CEASE, 0);
411 zlog_info ("%s OPEN has DYNAMIC capability", peer->host);
413 SET_FLAG (peer->cap, PEER_CAP_DYNAMIC_RCV);
421 peer->host, cap.code);
426 peer->host, cap.code);
437 bgp_auth_parse (struct peer *peer, u_char *pnt, size_t length)
439 bgp_notify_send (peer,
446 strict_capability_same (struct peer *peer)
452 if (peer->afc[i][j] != peer->afc_nego[i][j])
459 bgp_open_option_parse (struct peer *peer, u_char length, int *capability)
470 pnt = stream_pnt (peer->ibuf);
480 peer->host, length);
487 zlog_info ("%s Option length error", peer->host);
488 bgp_notify_send (peer, BGP_NOTIFY_CEASE, 0);
499 zlog_info ("%s Option length error", peer->host);
500 bgp_notify_send (peer, BGP_NOTIFY_CEASE, 0);
506 peer->host, opt_type,
514 ret = bgp_auth_parse (peer, pnt, opt_length);
517 ret = bgp_capability_parse (peer, pnt, opt_length, &error);
521 bgp_notify_send (peer,
541 if (CHECK_FLAG (peer->flags, PEER_FLAG_STRICT_CAP_MATCH))
546 bgp_notify_send_with_data (peer,
554 peer. */
555 if (! strict_capability_same (peer))
557 bgp_notify_send (peer,
566 if (*capability && ! CHECK_FLAG (peer->flags, PEER_FLAG_OVERRIDE_CAPABILITY))
568 if (! peer->afc_nego[AFI_IP][SAFI_UNICAST]
569 && ! peer->afc_nego[AFI_IP][SAFI_MULTICAST]
570 && ! peer->afc_nego[AFI_IP][SAFI_MPLS_VPN]
571 && ! peer->afc_nego[AFI_IP6][SAFI_UNICAST]
572 && ! peer->afc_nego[AFI_IP6][SAFI_MULTICAST])
574 plog_err (peer->log, "%s [Error] No common capability", peer->host);
578 bgp_notify_send_with_data (peer,
583 bgp_notify_send (peer,
593 bgp_open_capability_orf (struct stream *s, struct peer *peer,
619 if (CHECK_FLAG (peer->af_flags[afi][safi], PEER_FLAG_ORF_PREFIX_SM)
620 || CHECK_FLAG (peer->af_flags[afi][safi], PEER_FLAG_ORF_PREFIX_RM))
625 if (CHECK_FLAG (peer->af_flags[afi][safi], PEER_FLAG_ORF_PREFIX_SM)
626 && CHECK_FLAG (peer->af_flags[afi][safi], PEER_FLAG_ORF_PREFIX_RM))
628 SET_FLAG (peer->af_cap[afi][safi], PEER_CAP_ORF_PREFIX_SM_ADV);
629 SET_FLAG (peer->af_cap[afi][safi], PEER_CAP_ORF_PREFIX_RM_ADV);
632 else if (CHECK_FLAG (peer->af_flags[afi][safi], PEER_FLAG_ORF_PREFIX_SM))
634 SET_FLAG (peer->af_cap[afi][safi], PEER_CAP_ORF_PREFIX_SM_ADV);
639 SET_FLAG (peer->af_cap[afi][safi], PEER_CAP_ORF_PREFIX_RM_ADV);
659 bgp_open_capability (struct stream *s, struct peer *peer)
673 if (! CHECK_FLAG (peer->sflags, PEER_STATUS_CAPABILITY_OPEN)
674 || CHECK_FLAG (peer->flags, PEER_FLAG_DONT_CAPABILITY))
677 /* When the peer is IPv4 unicast only, do not send capability. */
678 if (! peer->afc[AFI_IP][SAFI_MULTICAST]
679 && ! peer->afc[AFI_IP][SAFI_MPLS_VPN]
680 && ! peer->afc[AFI_IP6][SAFI_UNICAST]
681 && ! peer->afc[AFI_IP6][SAFI_MULTICAST]
682 && CHECK_FLAG (peer->flags, PEER_FLAG_NO_ROUTE_REFRESH_CAP)
683 && ! CHECK_FLAG (peer->af_flags[AFI_IP][SAFI_UNICAST],
685 && ! CHECK_FLAG (peer->af_flags[AFI_IP][SAFI_UNICAST],
687 && ! CHECK_FLAG (peer->af_flags[AFI_IP][SAFI_MULTICAST],
689 && ! CHECK_FLAG (peer->af_flags[AFI_IP][SAFI_MULTICAST],
691 && ! CHECK_FLAG (peer->flags, PEER_FLAG_DYNAMIC_CAPABILITY))
695 if (peer->afc[AFI_IP][SAFI_UNICAST])
697 peer->afc_adv[AFI_IP][SAFI_UNICAST] = 1;
707 if (peer->afc[AFI_IP][SAFI_MULTICAST])
709 peer->afc_adv[AFI_IP][SAFI_MULTICAST] = 1;
719 if (peer->afc[AFI_IP][SAFI_MPLS_VPN])
721 peer->afc_adv[AFI_IP][SAFI_MPLS_VPN] = 1;
732 if (peer->afc[AFI_IP6][SAFI_UNICAST])
734 peer->afc_adv[AFI_IP6][SAFI_UNICAST] = 1;
744 if (peer->afc[AFI_IP6][SAFI_MULTICAST])
746 peer->afc_adv[AFI_IP6][SAFI_MULTICAST] = 1;
758 if (! CHECK_FLAG (peer->flags, PEER_FLAG_NO_ROUTE_REFRESH_CAP))
760 SET_FLAG (peer->cap, PEER_CAP_REFRESH_ADV);
774 if (CHECK_FLAG (peer->af_flags[afi][safi], PEER_FLAG_ORF_PREFIX_SM)
775 || CHECK_FLAG (peer->af_flags[afi][safi], PEER_FLAG_ORF_PREFIX_RM))
777 bgp_open_capability_orf (s, peer, afi, safi, CAPABILITY_CODE_ORF_OLD);
778 bgp_open_capability_orf (s, peer, afi, safi, CAPABILITY_CODE_ORF);
782 if (CHECK_FLAG (peer->flags, PEER_FLAG_DYNAMIC_CAPABILITY))
784 SET_FLAG (peer->cap, PEER_CAP_DYNAMIC_ADV);