Browse Source

* bgp_route.c, bgp_vty.c, bgp_zebra.c, bgpd.[ch]: "enforce-multihop"
-> "disable-connected-check".

[merge from GNU Zebra]

hasso 16 years ago
parent
commit
6ffd207959
6 changed files with 48 additions and 24 deletions
  1. 6 1
      bgpd/ChangeLog
  2. 3 3
      bgpd/bgp_route.c
  3. 30 11
      bgpd/bgp_vty.c
  4. 2 2
      bgpd/bgp_zebra.c
  5. 6 6
      bgpd/bgpd.c
  6. 1 1
      bgpd/bgpd.h

+ 6 - 1
bgpd/ChangeLog

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

+ 3 - 3
bgpd/bgp_route.c

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

+ 30 - 11
bgpd/bgp_vty.c

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

+ 2 - 2
bgpd/bgp_zebra.c

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

+ 6 - 6
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)

+ 1 - 1
bgpd/bgpd.h

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