* 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:
hasso 2005-02-02 14:50:11 +00:00
parent 93406d87e6
commit 6ffd207959
6 changed files with 48 additions and 24 deletions

View File

@ -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

View File

@ -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);

View File

@ -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);

View File

@ -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)

View File

@ -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)

View File

@ -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) */