mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-13 19:02:58 +00:00
* bgp_route.c, bgp_vty.c, bgp_zebra.c, bgpd.[ch]: "enforce-multihop"
-> "disable-connected-check". [merge from GNU Zebra]
This commit is contained in:
parent
93406d87e6
commit
6ffd207959
@ -1,4 +1,9 @@
|
||||
2005-02-02 Akihiro Mizutani <mizutani@net-chef.net
|
||||
2005-02-02 Akihiro Mizutani <mizutani@net-chef.net>
|
||||
|
||||
* bgp_route.c, bgp_vty.c, bgp_zebra.c, bgpd.[ch]: "enforce-multihop"
|
||||
-> "disable-connected-check".
|
||||
|
||||
2005-02-02 Akihiro Mizutani <mizutani@net-chef.net>
|
||||
|
||||
* bgp_fsm.c, bgp_open.c, bgp_packet.c, bgp_route.[ch], bgp_vty.c,
|
||||
bgpd.[ch]: Add BGP_INFO_STALE flag and end-of-rib support. "bgp
|
||||
|
@ -1726,7 +1726,7 @@ bgp_update_main (struct peer *peer, struct prefix *p, struct attr *attr,
|
||||
discard it. */
|
||||
if (peer_sort (peer) == BGP_PEER_EBGP && peer->ttl == 1
|
||||
&& ! bgp_nexthop_check_ebgp (afi, &new_attr)
|
||||
&& ! CHECK_FLAG (peer->flags, PEER_FLAG_ENFORCE_MULTIHOP))
|
||||
&& ! CHECK_FLAG (peer->flags, PEER_FLAG_DISABLE_CONNECTED_CHECK))
|
||||
{
|
||||
reason = "non-connected next-hop;";
|
||||
goto filtered;
|
||||
@ -1852,7 +1852,7 @@ bgp_update_main (struct peer *peer, struct prefix *p, struct attr *attr,
|
||||
&& safi == SAFI_UNICAST
|
||||
&& (peer_sort (peer) == BGP_PEER_IBGP
|
||||
|| (peer_sort (peer) == BGP_PEER_EBGP && peer->ttl != 1)
|
||||
|| CHECK_FLAG (peer->flags, PEER_FLAG_ENFORCE_MULTIHOP)))
|
||||
|| CHECK_FLAG (peer->flags, PEER_FLAG_DISABLE_CONNECTED_CHECK)))
|
||||
{
|
||||
if (bgp_nexthop_lookup (afi, peer, ri, NULL, NULL))
|
||||
SET_FLAG (ri->flags, BGP_INFO_VALID);
|
||||
@ -1899,7 +1899,7 @@ bgp_update_main (struct peer *peer, struct prefix *p, struct attr *attr,
|
||||
&& safi == SAFI_UNICAST
|
||||
&& (peer_sort (peer) == BGP_PEER_IBGP
|
||||
|| (peer_sort (peer) == BGP_PEER_EBGP && peer->ttl != 1)
|
||||
|| CHECK_FLAG (peer->flags, PEER_FLAG_ENFORCE_MULTIHOP)))
|
||||
|| CHECK_FLAG (peer->flags, PEER_FLAG_DISABLE_CONNECTED_CHECK)))
|
||||
{
|
||||
if (bgp_nexthop_lookup (afi, peer, new, NULL, NULL))
|
||||
SET_FLAG (new->flags, BGP_INFO_VALID);
|
||||
|
@ -2604,27 +2604,44 @@ ALIAS (no_neighbor_ebgp_multihop,
|
||||
"Allow EBGP neighbors not on directly connected networks\n"
|
||||
"maximum hop count\n")
|
||||
|
||||
/* disable-connected-check */
|
||||
DEFUN (neighbor_disable_connected_check,
|
||||
neighbor_disable_connected_check_cmd,
|
||||
NEIGHBOR_CMD2 "disable-connected-check",
|
||||
NEIGHBOR_STR
|
||||
NEIGHBOR_ADDR_STR2
|
||||
"one-hop away EBGP peer using loopback address\n")
|
||||
{
|
||||
return peer_flag_set_vty (vty, argv[0], PEER_FLAG_DISABLE_CONNECTED_CHECK);
|
||||
}
|
||||
|
||||
DEFUN (no_neighbor_disable_connected_check,
|
||||
no_neighbor_disable_connected_check_cmd,
|
||||
NO_NEIGHBOR_CMD2 "disable-connected-check",
|
||||
NO_STR
|
||||
NEIGHBOR_STR
|
||||
NEIGHBOR_ADDR_STR2
|
||||
"one-hop away EBGP peer using loopback address\n")
|
||||
{
|
||||
return peer_flag_unset_vty (vty, argv[0], PEER_FLAG_DISABLE_CONNECTED_CHECK);
|
||||
}
|
||||
|
||||
/* Enforce multihop. */
|
||||
DEFUN (neighbor_enforce_multihop,
|
||||
ALIAS (neighbor_disable_connected_check,
|
||||
neighbor_enforce_multihop_cmd,
|
||||
NEIGHBOR_CMD2 "enforce-multihop",
|
||||
NEIGHBOR_STR
|
||||
NEIGHBOR_ADDR_STR2
|
||||
"Enforce EBGP neighbors perform multihop\n")
|
||||
{
|
||||
return peer_flag_set_vty (vty, argv[0], PEER_FLAG_ENFORCE_MULTIHOP);
|
||||
}
|
||||
"Enforce EBGP neighbors perform multihop\n");
|
||||
|
||||
DEFUN (no_neighbor_enforce_multihop,
|
||||
/* Enforce multihop. */
|
||||
ALIAS (no_neighbor_disable_connected_check,
|
||||
no_neighbor_enforce_multihop_cmd,
|
||||
NO_NEIGHBOR_CMD2 "enforce-multihop",
|
||||
NO_STR
|
||||
NEIGHBOR_STR
|
||||
NEIGHBOR_ADDR_STR2
|
||||
"Enforce EBGP neighbors perform multihop\n")
|
||||
{
|
||||
return peer_flag_unset_vty (vty, argv[0], PEER_FLAG_ENFORCE_MULTIHOP);
|
||||
}
|
||||
"Enforce EBGP neighbors perform multihop\n");
|
||||
|
||||
DEFUN (neighbor_description,
|
||||
neighbor_description_cmd,
|
||||
@ -8918,7 +8935,9 @@ bgp_vty_init ()
|
||||
install_element (BGP_NODE, &no_neighbor_ebgp_multihop_cmd);
|
||||
install_element (BGP_NODE, &no_neighbor_ebgp_multihop_ttl_cmd);
|
||||
|
||||
/* "neighbor enforce-multihop" commands. */
|
||||
/* "neighbor disable-connected-check" commands. */
|
||||
install_element (BGP_NODE, &neighbor_disable_connected_check_cmd);
|
||||
install_element (BGP_NODE, &no_neighbor_disable_connected_check_cmd);
|
||||
install_element (BGP_NODE, &neighbor_enforce_multihop_cmd);
|
||||
install_element (BGP_NODE, &no_neighbor_enforce_multihop_cmd);
|
||||
|
||||
|
@ -635,7 +635,7 @@ bgp_zebra_announce (struct prefix *p, struct bgp_info *info, struct bgp *bgp)
|
||||
}
|
||||
|
||||
if ((peer_sort (peer) == BGP_PEER_EBGP && peer->ttl != 1)
|
||||
|| CHECK_FLAG (peer->flags, PEER_FLAG_ENFORCE_MULTIHOP))
|
||||
|| CHECK_FLAG (peer->flags, PEER_FLAG_DISABLE_CONNECTED_CHECK))
|
||||
SET_FLAG (flags, ZEBRA_FLAG_INTERNAL);
|
||||
|
||||
if (p->family == AF_INET)
|
||||
@ -746,7 +746,7 @@ bgp_zebra_withdraw (struct prefix *p, struct bgp_info *info)
|
||||
}
|
||||
|
||||
if ((peer_sort (peer) == BGP_PEER_EBGP && peer->ttl != 1)
|
||||
|| CHECK_FLAG (peer->flags, PEER_FLAG_ENFORCE_MULTIHOP))
|
||||
|| CHECK_FLAG (peer->flags, PEER_FLAG_DISABLE_CONNECTED_CHECK))
|
||||
SET_FLAG (flags, ZEBRA_FLAG_INTERNAL);
|
||||
|
||||
if (p->family == AF_INET)
|
||||
|
12
bgpd/bgpd.c
12
bgpd/bgpd.c
@ -2101,7 +2101,7 @@ struct peer_flag_action peer_flag_action_list[] =
|
||||
{ PEER_FLAG_OVERRIDE_CAPABILITY, 0, peer_change_none },
|
||||
{ PEER_FLAG_STRICT_CAP_MATCH, 0, peer_change_none },
|
||||
{ PEER_FLAG_DYNAMIC_CAPABILITY, 0, peer_change_reset },
|
||||
{ PEER_FLAG_ENFORCE_MULTIHOP, 0, peer_change_reset },
|
||||
{ PEER_FLAG_DISABLE_CONNECTED_CHECK, 0, peer_change_reset },
|
||||
{ 0, 0, 0 }
|
||||
};
|
||||
|
||||
@ -2214,7 +2214,7 @@ peer_flag_modify_action (struct peer *peer, u_int32_t flag)
|
||||
peer->last_reset = PEER_DOWN_CAPABILITY_CHANGE;
|
||||
else if (flag == PEER_FLAG_PASSIVE)
|
||||
peer->last_reset = PEER_DOWN_PASSIVE_CHANGE;
|
||||
else if (flag == PEER_FLAG_ENFORCE_MULTIHOP)
|
||||
else if (flag == PEER_FLAG_DISABLE_CONNECTED_CHECK)
|
||||
peer->last_reset = PEER_DOWN_MULTIHOP_CHANGE;
|
||||
|
||||
bgp_notify_send (peer, BGP_NOTIFY_CEASE,
|
||||
@ -4331,11 +4331,11 @@ bgp_config_write_peer (struct vty *vty, struct bgp *bgp,
|
||||
vty_out (vty, " neighbor %s ebgp-multihop %d%s", addr, peer->ttl,
|
||||
VTY_NEWLINE);
|
||||
|
||||
/* Enforce multihop. */
|
||||
if (CHECK_FLAG (peer->flags, PEER_FLAG_ENFORCE_MULTIHOP))
|
||||
/* disable-connected-check. */
|
||||
if (CHECK_FLAG (peer->flags, PEER_FLAG_DISABLE_CONNECTED_CHECK))
|
||||
if (! peer_group_active (peer) ||
|
||||
! CHECK_FLAG (g_peer->flags, PEER_FLAG_ENFORCE_MULTIHOP))
|
||||
vty_out (vty, " neighbor %s enforce-multihop%s", addr, VTY_NEWLINE);
|
||||
! CHECK_FLAG (g_peer->flags, PEER_FLAG_DISABLE_CONNECTED_CHECK))
|
||||
vty_out (vty, " neighbor %s disable-connected-check%s", addr, VTY_NEWLINE);
|
||||
|
||||
/* Update-source. */
|
||||
if (peer->update_if)
|
||||
|
@ -329,7 +329,7 @@ struct peer
|
||||
#define PEER_FLAG_OVERRIDE_CAPABILITY (1 << 3) /* override-capability */
|
||||
#define PEER_FLAG_STRICT_CAP_MATCH (1 << 4) /* strict-match */
|
||||
#define PEER_FLAG_DYNAMIC_CAPABILITY (1 << 5) /* dynamic capability */
|
||||
#define PEER_FLAG_ENFORCE_MULTIHOP (1 << 6) /* enforce-multihop */
|
||||
#define PEER_FLAG_DISABLE_CONNECTED_CHECK (1 << 6) /* disable-connected-check */
|
||||
#define PEER_FLAG_LOCAL_AS_NO_PREPEND (1 << 7) /* local-as no-prepend */
|
||||
|
||||
/* NSF mode (graceful restart) */
|
||||
|
Loading…
Reference in New Issue
Block a user