]> git.puffer.fish Git - mirror/frr.git/commitdiff
Revert "per-interface ospf enable and area set command."
authorDavid Lamparter <equinox@opensourcerouting.org>
Tue, 16 Aug 2016 15:08:54 +0000 (17:08 +0200)
committerDonald Sharp <sharpd@cumulusnetwroks.com>
Thu, 18 Aug 2016 11:35:38 +0000 (07:35 -0400)
This reverts commit e723861da171fd811f499665e5432dce4e364ee6.

The code is from Joakim Tjernlund; this is just to fix the history (and
attribution) of it.  The last commit will restore the exact same tree
state.

THIS COMMIT WILL PROBABLY NOT COMPILE.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
doc/ospfd.texi
ospfd/ospf_interface.h
ospfd/ospf_vty.c
ospfd/ospfd.c
ospfd/ospfd.h

index 45d1ad7cd21aa5d78f77cf4fee4dcb508bbdfd54..56ab5a3ed52ea38aaa347e8d8fee23ee6996862d 100644 (file)
@@ -510,11 +510,6 @@ incremented by this value when transmitting.
 The default value is 1 seconds.
 @end deffn
 
-@deffn {Interface Command} {ip ospf area (A.B.C.D|<0-4294967295>)} {}
-@deffnx {Interface Command} {no ip ospf area} {}
-Enable ospf on an interface and set associated area.
-@end deffn
-
 @node Redistribute routes to OSPF
 @section Redistribute routes to OSPF
 
index 7a74288bff1fd307404a0d3a1437c9401870b1da..988493a2107a1fe24f6df928e98a599a89f2753a 100644 (file)
@@ -47,8 +47,6 @@ struct ospf_if_params
   DECLARE_IF_PARAM (u_int32_t, retransmit_interval); /* Retransmission Interval */
   DECLARE_IF_PARAM (u_char, passive_interface);      /* OSPF Interface is passive: no sending or receiving (no need to join multicast groups) */
   DECLARE_IF_PARAM (u_char, priority);               /* OSPF Interface priority */
-  /* Enable OSPF on this interface with area if_area */
-  DECLARE_IF_PARAM (struct in_addr, if_area);
   DECLARE_IF_PARAM (u_char, type);                   /* type of interface */
 #define OSPF_IF_ACTIVE                  0
 #define OSPF_IF_PASSIVE                        1
index 3022a316c68ea13032f77efa2d7b4160a82e8f8c..ea76856afe6ba737166b0e8c8d9843af1c4ede76 100644 (file)
@@ -543,13 +543,6 @@ DEFUN (ospf_network_area,
       return CMD_WARNING;
     }
 
-  if (ospf->if_ospf_cli_count > 0)
-    {
-      vty_out (vty, "Please remove all ip ospf area x.x.x.x commands first.%s",
-               VTY_NEWLINE);
-      return CMD_WARNING;
-    }
-
   /* Get network prefix and Area ID. */
   VTY_GET_IPV4_PREFIX ("network prefix", p, argv[0]);
   VTY_GET_OSPF_AREA_ID (area_id, format, argv[1]);
@@ -9410,18 +9403,6 @@ config_write_interface (struct vty *vty)
            vty_out (vty, "%s", VTY_NEWLINE);
          }
 
-       /* Area  print. */
-       if (OSPF_IF_PARAM_CONFIGURED (params, if_area))
-         {
-           if (ospf->instance)
-             vty_out (vty, " ip ospf %d area %s%s", ospf->instance,
-                      inet_ntoa (params->if_area), VTY_NEWLINE);
-           else
-             vty_out (vty, " ip ospf area %s%s",
-                      inet_ntoa (params->if_area), VTY_NEWLINE);
-
-         }
-
        /* bfd  print. */
         ospf_bfd_write_config(vty, params);
 
@@ -10152,14 +10133,6 @@ ospf_vty_if_init (void)
   install_element (INTERFACE_NODE, &no_ip_ospf_transmit_delay_sec_addr_cmd);
   install_element (INTERFACE_NODE, &no_ip_ospf_transmit_delay_sec_cmd);
 
-  /* "ip ospf area" commands. */
-  install_element (INTERFACE_NODE, &ip_ospf_area_cmd);
-  install_element (INTERFACE_NODE, &no_ip_ospf_area_cmd);
-  install_element (INTERFACE_NODE, &no_ip_ospf_area_val_cmd);
-  install_element (INTERFACE_NODE, &ip_ospf_instance_area_cmd);
-  install_element (INTERFACE_NODE, &no_ip_ospf_instance_area_cmd);
-  install_element (INTERFACE_NODE, &no_ip_ospf_instance_area_val_cmd);
-
   /* These commands are compatibitliy for previous version. */
   install_element (INTERFACE_NODE, &ospf_authentication_key_cmd);
   install_element (INTERFACE_NODE, &no_ospf_authentication_key_cmd);
index 9d0e4b9e87a2185553208400a838a0ab9db3ae20..fb84903285fe7e3fe273edb9868b8f0116166cea 100644 (file)
@@ -501,7 +501,6 @@ ospf_finish_final (struct ospf *ospf)
   struct route_node *rn;
   struct ospf_nbr_nbma *nbr_nbma;
   struct ospf_lsa *lsa;
-  struct interface *ifp;
   struct ospf_interface *oi;
   struct ospf_area *area;
   struct ospf_vl_data *vl_data;
@@ -537,16 +536,6 @@ ospf_finish_final (struct ospf *ospf)
   
   list_delete (ospf->vlinks);
 
-  /* Remove any ospf interface config params */
-  for (ALL_LIST_ELEMENTS_RO (vrf_iflist (VRF_DEFAULT), node, ifp))
-    {
-      struct ospf_if_params *params;
-
-      params = IF_DEF_PARAMS (ifp);
-      if (OSPF_IF_PARAM_CONFIGURED(params, if_area))
-        UNSET_IF_PARAM (params, if_area);
-    }
-
   /* Reset interface. */
   for (ALL_LIST_ELEMENTS (ospf->oiflist, node, nnode, oi))
     ospf_if_free (oi);
@@ -849,69 +838,6 @@ ospf_area_del_if (struct ospf_area *area, struct ospf_interface *oi)
   listnode_delete (area->oiflist, oi);
 }
 
-static struct ospf_interface *
-add_ospf_interface (struct interface *ifp, struct ospf_area *area,
-                    struct connected *co)
-{
-  struct ospf_interface *oi;
-
-  oi = ospf_if_new (area->ospf, ifp, co->address);
-  oi->connected = co;
-
-  oi->area = area;
-
-  oi->params = ospf_lookup_if_params (ifp, oi->address->u.prefix4);
-  oi->output_cost = ospf_if_get_output_cost (oi);
-
-  /* Relate ospf interface to ospf instance. */
-  oi->ospf = area->ospf;
-
-  /* update network type as interface flag */
-  /* If network type is specified previously,
-     skip network type setting. */
-  oi->type = IF_DEF_PARAMS (ifp)->type;
-
-  /* Add pseudo neighbor. */
-  ospf_nbr_self_reset (oi, oi->ospf->router_id);
-
-  ospf_area_add_if (oi->area, oi);
-
-  return (oi);
-}
-
-static void update_redistributed(struct ospf *ospf, int add_to_ospf)
-{
-  struct route_node *rn;
-  struct external_info *ei;
-  struct ospf_external *ext;
-
-  if (ospf_is_type_redistributed (ZEBRA_ROUTE_CONNECT, 0))
-    if ((ext = ospf_external_lookup(ZEBRA_ROUTE_CONNECT, 0)) &&
-         EXTERNAL_INFO (ext))
-      {
-        for (rn = route_top (EXTERNAL_INFO (ext));
-             rn; rn = route_next (rn))
-          {
-            if ((ei = rn->info) != NULL)
-              {
-                if (add_to_ospf)
-                  {
-                    if (ospf_external_info_find_lsa (ospf, &ei->p))
-                      if (!ospf_distribute_check_connected (ospf, ei))
-                        ospf_external_lsa_flush (ospf, ei->type, &ei->p,
-                                                 ei->ifindex /*, ei->nexthop */);
-                  }
-                else
-                  {
-                    if (!ospf_external_info_find_lsa (ospf, &ei->p))
-                      if (ospf_distribute_check_connected (ospf, ei))
-                        ospf_external_lsa_originate (ospf, ei);
-                  }
-              }
-          }
-      }
-}
-
 
 /* Config network statement related functions. */
 static struct ospf_network *
@@ -941,6 +867,7 @@ ospf_network_set (struct ospf *ospf, struct prefix_ipv4 *p,
   struct ospf_network *network;
   struct ospf_area *area;
   struct route_node *rn;
+  struct external_info *ei;
   int ret = OSPF_AREA_ID_FORMAT_ADDRESS;
 
   rn = route_node_get (ospf->networks, (struct prefix *)p);
@@ -958,7 +885,15 @@ ospf_network_set (struct ospf *ospf, struct prefix_ipv4 *p,
   ospf_network_run ((struct prefix *)p, area);
 
   /* Update connected redistribute. */
-  update_redistributed(ospf, 1); /* interfaces possibly added */
+  if (ospf_is_type_redistributed (ZEBRA_ROUTE_CONNECT))
+    if (EXTERNAL_INFO (ZEBRA_ROUTE_CONNECT))
+      for (rn = route_top (EXTERNAL_INFO (ZEBRA_ROUTE_CONNECT));
+          rn; rn = route_next (rn))
+       if ((ei = rn->info) != NULL)
+         if (ospf_external_info_find_lsa (ospf, &ei->p))
+           if (!ospf_distribute_check_connected (ospf, ei))
+             ospf_external_lsa_flush (ospf, ei->type, &ei->p,
+                                      ei->ifindex /*, ei->nexthop */);
 
   ospf_area_check_free (ospf, area_id);
 
@@ -971,6 +906,7 @@ ospf_network_unset (struct ospf *ospf, struct prefix_ipv4 *p,
 {
   struct route_node *rn;
   struct ospf_network *network;
+  struct external_info *ei;
   struct listnode *node, *nnode;
   struct ospf_interface *oi;
 
@@ -1017,86 +953,14 @@ ospf_network_unset (struct ospf *ospf, struct prefix_ipv4 *p,
     }
   
   /* Update connected redistribute. */
-  update_redistributed(ospf, 0); /* interfaces possibly removed */
-  ospf_area_check_free (ospf, area_id);
-
-  return 1;
-}
-
-int
-ospf_interface_set (struct interface *ifp, struct in_addr area_id)
-{
-  struct ospf_area *area;
-  struct listnode *cnode;
-  struct connected *co;
-  struct ospf *ospf;
-  struct ospf_if_params *params;
-  struct ospf_interface *oi;
-  int ret = OSPF_AREA_ID_FORMAT_ADDRESS;
-
-  if ((ospf = ospf_lookup ()) == NULL)
-    return 1; /* Ospf not ready yet */
-
-  params = IF_DEF_PARAMS (ifp);
-
-  SET_IF_PARAM (params, if_area);
-  params->if_area = area_id;
-
-  area = ospf_area_get (ospf, area_id, ret);
-
-  for (ALL_LIST_ELEMENTS_RO (ifp->connected, cnode, co))
-    {
-      if (CHECK_FLAG(co->flags,ZEBRA_IFA_SECONDARY))
-        continue;
-
-      if (co->address->family == AF_INET)
-        {
-          oi = ospf_if_table_lookup(ifp, co->address);
-          if (!oi)
-            oi = add_ospf_interface(ifp, area, co);
-
-          /* if router_id is not configured, dont bring up
-           * interfaces.
-           * ospf_router_id_update() will call ospf_if_update
-           * whenever r-id is configured instead.
-           */
-          if ((area->ospf->router_id.s_addr != 0) && if_is_operative (ifp))
-            ospf_if_up (oi);
-        }
-    }
-
-  /* Update connected redistribute. */
-  update_redistributed(ospf, 1); /* interface possibly added */
-  return 1;
-}
-
-int
-ospf_interface_unset (struct interface *ifp)
-{
-  struct ospf *ospf;
-  struct ospf_if_params *params;
-  struct listnode *node, *nnode;
-  struct ospf_interface *oi;
-  struct in_addr area_id;
-
-  ospf = ospf_lookup ();
-  if (!ospf)
-    return 1; /* Ospf not ready yet */
-
-  params = IF_DEF_PARAMS (ifp);
-  UNSET_IF_PARAM (params, if_area);
-  area_id = params->if_area;
-
-  for (ALL_LIST_ELEMENTS (ospf->oiflist, node, nnode, oi))
-    {
-      if (oi->type == OSPF_IFTYPE_VIRTUALLINK)
-        continue;
-      if (oi->ifp == ifp) ospf_if_free (oi);
-    }
-
-  /* Update connected redistribute. */
-  update_redistributed(ospf, 0); /* interfaces possibly removed */
-  ospf_area_check_free (ospf, area_id);
+  if (ospf_is_type_redistributed (ZEBRA_ROUTE_CONNECT))
+    if (EXTERNAL_INFO (ZEBRA_ROUTE_CONNECT))
+      for (rn = route_top (EXTERNAL_INFO (ZEBRA_ROUTE_CONNECT));
+          rn; rn = route_next (rn))
+       if ((ei = rn->info) != NULL)
+         if (!ospf_external_info_find_lsa (ospf, &ei->p))
+           if (ospf_distribute_check_connected (ospf, ei))
+             ospf_external_lsa_originate (ospf, ei);
 
   return 1;
 }
@@ -1216,8 +1080,7 @@ ospf_if_update (struct ospf *ospf, struct interface *ifp)
   struct route_node *rn;
   struct ospf_network *network;
   struct ospf_area *area;
-  struct ospf_if_params *params;
-
+  
   if (!ospf)
     ospf = ospf_lookup ();
 
@@ -1233,13 +1096,6 @@ ospf_if_update (struct ospf *ospf, struct interface *ifp)
         area = ospf_area_get (ospf, network->area_id, network->format);
         ospf_network_run_interface (&rn->p, area, ifp);
       }
-
-  /* create oif for any new co */
-  params = IF_DEF_PARAMS (ifp);
-  if (OSPF_IF_PARAM_CONFIGURED(params, if_area))
-    {
-      ospf_interface_set (ifp, params->if_area);
-    }
 }
 
 void
index 5f0a7bf1130eeca95b6754781e20febe067347d4..3d3c73156cc7f128a07fe33e4991183215ed4b61 100644 (file)
@@ -296,9 +296,6 @@ struct ospf
   /* Statistics for LSA used for new instantiation. */
   u_int32_t rx_lsa_count;
  
-  /* Counter of "ip ospf area x.x.x.x" */
-  u_int32_t if_ospf_cli_count;
-
   struct route_table *distance_table;
 };
 
@@ -581,6 +578,4 @@ extern void ospf_snmp_init (void);
 
 extern void ospf_master_init (void);
 
-extern int ospf_interface_set (struct interface *ifp, struct in_addr area_id);
-extern int ospf_interface_unset (struct interface *ifp);
 #endif /* _ZEBRA_OSPFD_H */