]> git.puffer.fish Git - mirror/frr.git/commitdiff
zebra: Refactor 'struct rib' to be 'struct route_entry' 650/head
authorDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 1 Jun 2017 11:26:25 +0000 (07:26 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 1 Jun 2017 12:00:05 +0000 (08:00 -0400)
The 'struct rib' data structure is missnamed.  It really
is a 'struct route_entry' as part of the 'struct route_node'.
We have 1 'struct route_entry' per route src.  As such
1 route node can have multiple route entries if multiple
protocols attempt to install the same route.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
29 files changed:
doc/next-hop-tracking.txt
zebra/kernel_null.c
zebra/redistribute.c
zebra/redistribute.h
zebra/redistribute_null.c
zebra/rib.h
zebra/rt.h
zebra/rt_netlink.c
zebra/rt_socket.c
zebra/zebra_fpm.c
zebra/zebra_fpm_dt.c
zebra/zebra_fpm_netlink.c
zebra/zebra_fpm_private.h
zebra/zebra_fpm_protobuf.c
zebra/zebra_memory.c
zebra/zebra_memory.h
zebra/zebra_mpls.c
zebra/zebra_mpls.h
zebra/zebra_rib.c
zebra/zebra_rnh.c
zebra/zebra_rnh.h
zebra/zebra_routemap.c
zebra/zebra_routemap.h
zebra/zebra_snmp.c
zebra/zebra_static.c
zebra/zebra_vrf.c
zebra/zebra_vty.c
zebra/zserv.c
zebra/zserv.h

index d64433e2feac191a6527577133a603b5cdc148a7..12ed63947b3735967731ffb8d61b230269e0a13e 100644 (file)
@@ -252,7 +252,7 @@ rnh table:
         struct rnh
         {
           u_char flags;
-          struct rib *state;
+          struct route_entry *state;
           struct list *client_list;
           struct route_node *node;
         };
index ad96ce41ca4e6c8bea1500b83763d6768a23266c..5f1a054bdc2efc030947b674ac27b3595f7e5ed3 100644 (file)
@@ -31,7 +31,7 @@
 #include "zebra/rib.h"
 
 int kernel_route_rib (struct prefix *a, struct prefix *b,
-                      struct rib *old, struct rib *new) { return 0; }
+                      struct route_entry *old, struct route_entry *new) { return 0; }
 
 int kernel_address_add_ipv4 (struct interface *a, struct connected *b)
 {
index 1493bd9cb6924ba194993bbf5fa7642cdf0b1457..9f63aeb4e9c0f2ed723a4df34447116b69e9ecb0 100644 (file)
@@ -79,7 +79,7 @@ zebra_redistribute_default (struct zserv *client, vrf_id_t vrf_id)
   struct prefix p;
   struct route_table *table;
   struct route_node *rn;
-  struct rib *newrib;
+  struct route_entry *newre;
 
   for (afi = AFI_IP; afi <= AFI_IP6; afi++)
     {
@@ -95,10 +95,10 @@ zebra_redistribute_default (struct zserv *client, vrf_id_t vrf_id)
       if (! rn)
        continue;
 
-      RNODE_FOREACH_RIB (rn, newrib)
-       if (CHECK_FLAG (newrib->flags, ZEBRA_FLAG_SELECTED)
-           && newrib->distance != DISTANCE_INFINITY)
-         zsend_redistribute_route (1, client, &rn->p, NULL, newrib);
+      RNODE_FOREACH_RE (rn, newre)
+       if (CHECK_FLAG (newre->flags, ZEBRA_FLAG_SELECTED)
+           && newre->distance != DISTANCE_INFINITY)
+         zsend_redistribute_route (1, client, &rn->p, NULL, newre);
 
       route_unlock_node (rn);
     }
@@ -108,7 +108,7 @@ zebra_redistribute_default (struct zserv *client, vrf_id_t vrf_id)
 static void
 zebra_redistribute (struct zserv *client, int type, u_short instance, vrf_id_t vrf_id, int afi)
 {
-  struct rib *newrib;
+  struct route_entry *newre;
   struct route_table *table;
   struct route_node *rn;
 
@@ -117,7 +117,7 @@ zebra_redistribute (struct zserv *client, int type, u_short instance, vrf_id_t v
     return;
 
   for (rn = route_top (table); rn; rn = route_next (rn))
-    RNODE_FOREACH_RIB (rn, newrib)
+    RNODE_FOREACH_RE (rn, newre)
       {
         struct prefix *dst_p, *src_p;
         srcdest_rnode_prefixes(rn, &dst_p, &src_p);
@@ -125,21 +125,21 @@ zebra_redistribute (struct zserv *client, int type, u_short instance, vrf_id_t v
         if (IS_ZEBRA_DEBUG_EVENT)
           zlog_debug("%s: checking: selected=%d, type=%d, distance=%d, "
                  "zebra_check_addr=%d", __func__,
-                 CHECK_FLAG (newrib->flags, ZEBRA_FLAG_SELECTED),
-                 newrib->type, newrib->distance,
+                 CHECK_FLAG (newre->flags, ZEBRA_FLAG_SELECTED),
+                 newre->type, newre->distance,
                  zebra_check_addr (dst_p));
 
-        if (! CHECK_FLAG (newrib->flags, ZEBRA_FLAG_SELECTED))
+        if (! CHECK_FLAG (newre->flags, ZEBRA_FLAG_SELECTED))
           continue;
         if ((type != ZEBRA_ROUTE_ALL &&
-         (newrib->type != type || newrib->instance != instance)))
+         (newre->type != type || newre->instance != instance)))
           continue;
-        if (newrib->distance == DISTANCE_INFINITY)
+        if (newre->distance == DISTANCE_INFINITY)
           continue;
         if (! zebra_check_addr (dst_p))
           continue;
 
-        zsend_redistribute_route (1, client, dst_p, src_p, newrib);
+        zsend_redistribute_route (1, client, dst_p, src_p, newre);
       }
 }
 
@@ -147,7 +147,7 @@ zebra_redistribute (struct zserv *client, int type, u_short instance, vrf_id_t v
 /* withdraw redistribution if add cannot be done for client */
 void
 redistribute_update (struct prefix *p, struct prefix *src_p,
-                     struct rib *rib, struct rib *prev_rib)
+                     struct route_entry *re, struct route_entry *prev_re)
 {
   struct listnode *node, *nnode;
   struct zserv *client;
@@ -158,9 +158,9 @@ redistribute_update (struct prefix *p, struct prefix *src_p,
   if (IS_ZEBRA_DEBUG_RIB)
     {
       inet_ntop (p->family, &p->u.prefix, buf, INET6_ADDRSTRLEN);
-      zlog_debug ("%u:%s/%d: Redist update rib %p (type %d), old %p (type %d)",
-                  rib->vrf_id, buf, p->prefixlen, rib, rib->type,
-                  prev_rib, prev_rib ? prev_rib->type : -1);
+      zlog_debug ("%u:%s/%d: Redist update re %p (type %d), old %p (type %d)",
+                  re->vrf_id, buf, p->prefixlen, re, re->type,
+                  prev_re, prev_re ? prev_re->type : -1);
     }
 
   afi = family2afi(p->family);
@@ -174,33 +174,33 @@ redistribute_update (struct prefix *p, struct prefix *src_p,
     {
       send_redistribute = 0;
 
-      if (is_default (p) && vrf_bitmap_check (client->redist_default, rib->vrf_id))
+      if (is_default (p) && vrf_bitmap_check (client->redist_default, re->vrf_id))
        send_redistribute = 1;
-      else if (vrf_bitmap_check (client->redist[afi][ZEBRA_ROUTE_ALL], rib->vrf_id))
+      else if (vrf_bitmap_check (client->redist[afi][ZEBRA_ROUTE_ALL], re->vrf_id))
        send_redistribute = 1;
-      else if (rib->instance && redist_check_instance (&client->mi_redist[afi][rib->type],
-                                                      rib->instance))
+      else if (re->instance && redist_check_instance (&client->mi_redist[afi][re->type],
+                                                      re->instance))
        send_redistribute = 1;
-      else if (vrf_bitmap_check (client->redist[afi][rib->type], rib->vrf_id))
+      else if (vrf_bitmap_check (client->redist[afi][re->type], re->vrf_id))
        send_redistribute = 1;
 
       if (send_redistribute)
        {
-         zsend_redistribute_route (1, client, p, src_p, rib);
+         zsend_redistribute_route (1, client, p, src_p, re);
        }
-      else if (prev_rib &&
-              ((rib->instance &&
-                redist_check_instance(&client->mi_redist[afi][prev_rib->type],
-                                      rib->instance)) ||
-                vrf_bitmap_check (client->redist[afi][prev_rib->type], rib->vrf_id))) 
+      else if (prev_re &&
+              ((re->instance &&
+                redist_check_instance(&client->mi_redist[afi][prev_re->type],
+                                      re->instance)) ||
+                vrf_bitmap_check (client->redist[afi][prev_re->type], re->vrf_id)))
        {
-         zsend_redistribute_route (0, client, p, src_p, prev_rib);
+         zsend_redistribute_route (0, client, p, src_p, prev_re);
        }
     }
 }
 
 void
-redistribute_delete (struct prefix *p, struct prefix *src_p, struct rib *rib)
+redistribute_delete (struct prefix *p, struct prefix *src_p, struct route_entry *re)
 {
   struct listnode *node, *nnode;
   struct zserv *client;
@@ -210,12 +210,12 @@ redistribute_delete (struct prefix *p, struct prefix *src_p, struct rib *rib)
   if (IS_ZEBRA_DEBUG_RIB)
     {
       inet_ntop (p->family, &p->u.prefix, buf, INET6_ADDRSTRLEN);
-      zlog_debug ("%u:%s/%d: Redist delete rib %p (type %d)",
-                  rib->vrf_id, buf, p->prefixlen, rib, rib->type);
+      zlog_debug ("%u:%s/%d: Redist delete re %p (type %d)",
+                  re->vrf_id, buf, p->prefixlen, re, re->type);
     }
 
   /* Add DISTANCE_INFINITY check. */
-  if (rib->distance == DISTANCE_INFINITY)
+  if (re->distance == DISTANCE_INFINITY)
     return;
 
   afi = family2afi(p->family);
@@ -228,14 +228,14 @@ redistribute_delete (struct prefix *p, struct prefix *src_p, struct rib *rib)
   for (ALL_LIST_ELEMENTS (zebrad.client_list, node, nnode, client))
     {
       if ((is_default (p) &&
-           vrf_bitmap_check (client->redist_default, rib->vrf_id)) ||
-         vrf_bitmap_check (client->redist[afi][ZEBRA_ROUTE_ALL], rib->vrf_id) ||
-          (rib->instance &&
-           redist_check_instance(&client->mi_redist[afi][rib->type],
-                                 rib->instance)) ||
-          vrf_bitmap_check (client->redist[afi][rib->type], rib->vrf_id))
+           vrf_bitmap_check (client->redist_default, re->vrf_id)) ||
+         vrf_bitmap_check (client->redist[afi][ZEBRA_ROUTE_ALL], re->vrf_id) ||
+          (re->instance &&
+           redist_check_instance(&client->mi_redist[afi][re->type],
+                                 re->instance)) ||
+          vrf_bitmap_check (client->redist[afi][re->type], re->vrf_id))
        {
-         zsend_redistribute_route (0, client, p, src_p, rib);
+         zsend_redistribute_route (0, client, p, src_p, re);
        }
     }
 }
@@ -490,18 +490,18 @@ zebra_interface_vrf_update_add (struct interface *ifp, vrf_id_t old_vrf_id)
 }
 
 int
-zebra_add_import_table_entry (struct route_node *rn, struct rib *rib, const char *rmap_name)
+zebra_add_import_table_entry (struct route_node *rn, struct route_entry *re, const char *rmap_name)
 {
-  struct rib *newrib;
-  struct rib *same;
+  struct route_entry *newre;
+  struct route_entry *same;
   struct prefix p;
   struct nexthop *nhop;
   union g_addr *gate;
   route_map_result_t ret = RMAP_MATCH;
 
   if (rmap_name)
-    ret = zebra_import_table_route_map_check (AFI_IP, rib->type, &rn->p, rib->nexthop, rib->vrf_id,
-                                              rib->tag, rmap_name);
+    ret = zebra_import_table_route_map_check (AFI_IP, re->type, &rn->p, re->nexthop, re->vrf_id,
+                                              re->tag, rmap_name);
 
   if (ret == RMAP_MATCH)
     {
@@ -511,13 +511,13 @@ zebra_add_import_table_entry (struct route_node *rn, struct rib *rib, const char
           p.prefixlen = rn->p.prefixlen;
           p.u.prefix4 = rn->p.u.prefix4;
 
-          RNODE_FOREACH_RIB (rn, same)
+          RNODE_FOREACH_RE (rn, same)
             {
-              if (CHECK_FLAG (same->status, RIB_ENTRY_REMOVED))
+              if (CHECK_FLAG (same->status, ROUTE_ENTRY_REMOVED))
                 continue;
 
-              if (same->type == rib->type && same->instance == rib->instance
-                  && same->table == rib->table
+              if (same->type == re->type && same->instance == re->instance
+                  && same->table == re->table
                   && same->type != ZEBRA_ROUTE_CONNECT)
                 break;
             }
@@ -526,51 +526,51 @@ zebra_add_import_table_entry (struct route_node *rn, struct rib *rib, const char
             zebra_del_import_table_entry (rn, same);
 
 
-          if (rib->nexthop_num == 1)
+          if (re->nexthop_num == 1)
            {
-             nhop = rib->nexthop;
+             nhop = re->nexthop;
              if (nhop->type == NEXTHOP_TYPE_IFINDEX)
                gate = NULL;
              else
                gate = (union g_addr *)&nhop->gate.ipv4;
 
-             rib_add (AFI_IP, SAFI_UNICAST, rib->vrf_id, ZEBRA_ROUTE_TABLE,
-                      rib->table, 0, &p, NULL, gate, (union g_addr *)&nhop->src.ipv4,
+             rib_add (AFI_IP, SAFI_UNICAST, re->vrf_id, ZEBRA_ROUTE_TABLE,
+                      re->table, 0, &p, NULL, gate, (union g_addr *)&nhop->src.ipv4,
                       nhop->ifindex, zebrad.rtm_table_default,
-                      rib->metric, rib->mtu,
-                      zebra_import_table_distance[AFI_IP][rib->table]);
+                      re->metric, re->mtu,
+                      zebra_import_table_distance[AFI_IP][re->table]);
            }
-          else if (rib->nexthop_num > 1)
+          else if (re->nexthop_num > 1)
            {
-             newrib = XCALLOC (MTYPE_RIB, sizeof (struct rib));
-             newrib->type = ZEBRA_ROUTE_TABLE;
-             newrib->distance = zebra_import_table_distance[AFI_IP][rib->table];
-             newrib->flags = rib->flags;
-             newrib->metric = rib->metric;
-             newrib->mtu = rib->mtu;
-             newrib->table = zebrad.rtm_table_default;
-             newrib->nexthop_num = 0;
-             newrib->uptime = time(NULL);
-             newrib->instance = rib->table;
+             newre = XCALLOC (MTYPE_RE, sizeof (struct route_entry));
+             newre->type = ZEBRA_ROUTE_TABLE;
+             newre->distance = zebra_import_table_distance[AFI_IP][re->table];
+             newre->flags = re->flags;
+             newre->metric = re->metric;
+             newre->mtu = re->mtu;
+             newre->table = zebrad.rtm_table_default;
+             newre->nexthop_num = 0;
+             newre->uptime = time(NULL);
+             newre->instance = re->table;
 
              /* Assuming these routes are never recursive */
-             for (nhop = rib->nexthop; nhop; nhop = nhop->next)
-               rib_copy_nexthops(newrib, nhop);
+             for (nhop = re->nexthop; nhop; nhop = nhop->next)
+               route_entry_copy_nexthops(newre, nhop);
 
-             rib_add_multipath(AFI_IP, SAFI_UNICAST, &p, NULL, newrib);
+             rib_add_multipath(AFI_IP, SAFI_UNICAST, &p, NULL, newre);
            }
         }
     }
   else
     {
-      zebra_del_import_table_entry (rn, rib);
+      zebra_del_import_table_entry (rn, re);
     }
   /* DD: Add IPv6 code */
   return 0;
 }
 
 int
-zebra_del_import_table_entry (struct route_node *rn, struct rib *rib)
+zebra_del_import_table_entry (struct route_node *rn, struct route_entry *re)
 {
   struct prefix p;
 
@@ -580,8 +580,8 @@ zebra_del_import_table_entry (struct route_node *rn, struct rib *rib)
       p.prefixlen = rn->p.prefixlen;
       p.u.prefix4 = rn->p.u.prefix4;
 
-      rib_delete (AFI_IP, SAFI_UNICAST, rib->vrf_id, ZEBRA_ROUTE_TABLE,
-                 rib->table, rib->flags, &p, NULL, NULL,
+      rib_delete (AFI_IP, SAFI_UNICAST, re->vrf_id, ZEBRA_ROUTE_TABLE,
+                 re->table, re->flags, &p, NULL, NULL,
                  0, zebrad.rtm_table_default);
     }
   /* DD: Add IPv6 code */
@@ -594,7 +594,7 @@ int
 zebra_import_table (afi_t afi, u_int32_t table_id, u_int32_t distance, const char *rmap_name, int add)
 {
   struct route_table *table;
-  struct rib *rib;
+  struct route_entry *re;
   struct route_node *rn;
 
   if (!is_zebra_valid_kernel_table(table_id) ||
@@ -647,23 +647,23 @@ zebra_import_table (afi_t afi, u_int32_t table_id, u_int32_t distance, const cha
       if (!rn->info)
        continue;
 
-      RNODE_FOREACH_RIB (rn, rib)
+      RNODE_FOREACH_RE (rn, re)
        {
-         if (CHECK_FLAG (rib->status, RIB_ENTRY_REMOVED))
+         if (CHECK_FLAG (re->status, ROUTE_ENTRY_REMOVED))
            continue;
          break;
        }
 
-      if (!rib)
+      if (!re)
        continue;
 
       if (((afi == AFI_IP) && (rn->p.family == AF_INET)) ||
          ((afi == AFI_IP6) && (rn->p.family == AF_INET6)))
        {
          if (add)
-           zebra_add_import_table_entry (rn, rib, rmap_name);
+           zebra_add_import_table_entry (rn, re, rmap_name);
          else
-           zebra_del_import_table_entry (rn, rib);
+           zebra_del_import_table_entry (rn, re);
        }
     }
   return 0;
@@ -713,7 +713,7 @@ zebra_import_table_rm_update ()
   afi_t afi;
   int i;
   struct route_table *table;
-  struct rib *rib;
+  struct route_entry *re;
   struct route_node *rn;
   const char *rmap_name;
 
@@ -736,19 +736,19 @@ zebra_import_table_rm_update ()
                   if (!rn->info)
                     continue;
 
-                  RNODE_FOREACH_RIB (rn, rib)
+                  RNODE_FOREACH_RE (rn, re)
                     {
-                      if (CHECK_FLAG (rib->status, RIB_ENTRY_REMOVED))
+                      if (CHECK_FLAG (re->status, ROUTE_ENTRY_REMOVED))
                         continue;
                       break;
                     }
 
-                 if (!rib)
+                 if (!re)
                    continue;
 
                  if (((afi == AFI_IP) && (rn->p.family == AF_INET)) ||
                    ((afi == AFI_IP6) && (rn->p.family == AF_INET6)))
-                   zebra_add_import_table_entry (rn, rib, rmap_name);
+                   zebra_add_import_table_entry (rn, re, rmap_name);
                 }
            }
        }
index 8a78574980385b99796645ebd6c365e99fdcd076..429ec1bfdc830d242b7ee29af199c50aa47e1c11 100644 (file)
@@ -36,8 +36,8 @@ extern void zebra_redistribute_default_delete (int, struct zserv *, int,
                                               struct zebra_vrf *zvrf);
 
 extern void redistribute_update (struct prefix *, struct prefix *,
-                                 struct rib *, struct rib *);
-extern void redistribute_delete (struct prefix *, struct prefix *, struct rib *);
+                                 struct route_entry *, struct route_entry *);
+extern void redistribute_delete (struct prefix *, struct prefix *, struct route_entry *);
 
 extern void zebra_interface_up_update (struct interface *);
 extern void zebra_interface_down_update (struct interface *);
@@ -57,9 +57,9 @@ extern int zebra_import_table (afi_t afi, u_int32_t table_id,
                               u_int32_t distance, const char *rmap_name, int add);
 
 extern int zebra_add_import_table_entry (struct route_node *rn,
-                                        struct rib *rib, const char *rmap_name);
+                                        struct route_entry *re, const char *rmap_name);
 extern int zebra_del_import_table_entry (struct route_node *rn,
-                                        struct rib *rib);
+                                        struct route_entry *re);
 extern int is_zebra_import_table_enabled(afi_t, u_int32_t table_id);
 
 extern int zebra_import_table_config(struct vty *);
index 7f40c21782216310653ad203668b0b89691fbd4c..3b83a6b6ae152dbf7cb3b31a7ce4212bfeb62a74 100644 (file)
@@ -39,9 +39,9 @@ void zebra_redistribute_default_delete (int a, struct zserv *b, int c,
 { return; }
 
 void redistribute_update (struct prefix *a, struct prefix *b,
-                          struct rib *c, struct rib *d)
+                          struct route_entry *c, struct route_entry *d)
 { return; }
-void redistribute_delete (struct prefix *a, struct prefix *b, struct rib *c)
+void redistribute_delete (struct prefix *a, struct prefix *b, struct route_entry *c)
 { return; }
 
 void zebra_interface_up_update (struct interface *a)
@@ -75,10 +75,10 @@ int zebra_import_table (afi_t afi, u_int32_t table_id, u_int32_t distance,
                        const char *rmap_name, int add)
 { return 0; }
 
-int zebra_add_import_table_entry (struct route_node *rn, struct rib *rib, const char *rmap_name)
+int zebra_add_import_table_entry (struct route_node *rn, struct route_entry *re, const char *rmap_name)
 { return 0; }
 
-int zebra_del_import_table_entry (struct route_node *rn, struct rib *rib)
+int zebra_del_import_table_entry (struct route_node *rn, struct route_entry *re)
 { return 0; }
 
 int is_zebra_import_table_enabled(afi_t afi, u_int32_t table_id)
index 7bcbf56bde442948a4049a548912c959bf3f62b4..3f4fb81f6d37ede47b3bd2b9f394ed7bfbb00e93 100644 (file)
 #define DISTANCE_INFINITY  255
 #define ZEBRA_KERNEL_TABLE_MAX 252 /* support for no more than this rt tables */
 
-struct rib
+struct route_entry
 {
   /* Link list. */
-  struct rib *next;
-  struct rib *prev;
+  struct route_entry *next;
+  struct route_entry *prev;
   
   /* Nexthop structure */
   struct nexthop *nexthop;
@@ -85,11 +85,11 @@ struct rib
 
   /* RIB internal status */
   u_char status;
-#define RIB_ENTRY_REMOVED         0x1
+#define ROUTE_ENTRY_REMOVED          0x1
   /* to simplify NHT logic when NHs change, instead of doing a NH by NH cmp */
-#define RIB_ENTRY_NEXTHOPS_CHANGED 0x2
-#define RIB_ENTRY_CHANGED          0x4
-#define RIB_ENTRY_SELECTED_FIB     0x8
+#define ROUTE_ENTRY_NEXTHOPS_CHANGED 0x2
+#define ROUTE_ENTRY_CHANGED          0x4
+#define ROUTE_ENTRY_SELECTED_FIB     0x8
 
   /* Nexthop information. */
   u_char nexthop_num;
@@ -125,7 +125,7 @@ typedef struct rib_dest_t_
   /*
    * Doubly-linked list of routes for this prefix.
    */
-  struct rib *routes;
+  struct route_entry *routes;
 
   /*
    * Flags, see below.
@@ -161,22 +161,22 @@ typedef struct rib_dest_t_
 /*
  * Macro to iterate over each route for a destination (prefix).
  */
-#define RIB_DEST_FOREACH_ROUTE(dest, rib)                              \
-  for ((rib) = (dest) ? (dest)->routes : NULL; (rib); (rib) = (rib)->next)
+#define RE_DEST_FOREACH_ROUTE(dest, re)                                \
+  for ((re) = (dest) ? (dest)->routes : NULL; (re); (re) = (re)->next)
 
 /*
  * Same as above, but allows the current node to be unlinked.
  */
-#define RIB_DEST_FOREACH_ROUTE_SAFE(dest, rib, next)   \
-  for ((rib) = (dest) ? (dest)->routes : NULL;         \
-       (rib) && ((next) = (rib)->next, 1);             \
-       (rib) = (next))
+#define RE_DEST_FOREACH_ROUTE_SAFE(dest, re, next)     \
+  for ((re) = (dest) ? (dest)->routes : NULL;          \
+       (re) && ((next) = (re)->next, 1);               \
+       (re) = (next))
 
-#define RNODE_FOREACH_RIB(rn, rib)                             \
-  RIB_DEST_FOREACH_ROUTE (rib_dest_from_rnode (rn), rib)
+#define RNODE_FOREACH_RE(rn, re)                               \
+  RE_DEST_FOREACH_ROUTE (rib_dest_from_rnode (rn), re)
 
-#define RNODE_FOREACH_RIB_SAFE(rn, rib, next)                          \
-  RIB_DEST_FOREACH_ROUTE_SAFE (rib_dest_from_rnode (rn), rib, next)
+#define RNODE_FOREACH_RE_SAFE(rn, re, next)                            \
+  RE_DEST_FOREACH_ROUTE_SAFE (rib_dest_from_rnode (rn), re, next)
 
 /* The following for loop allows to iterate over the nexthop
  * structure of routes.
@@ -283,17 +283,28 @@ typedef enum
   RIB_UPDATE_OTHER
 } rib_update_event_t;
 
-extern struct nexthop *rib_nexthop_ifindex_add (struct rib *, ifindex_t);
-extern struct nexthop *rib_nexthop_blackhole_add (struct rib *);
-extern struct nexthop *rib_nexthop_ipv4_add (struct rib *, struct in_addr *,
-                                            struct in_addr *);
-extern struct nexthop *rib_nexthop_ipv4_ifindex_add (struct rib *,
-                                                    struct in_addr *,
-                                                    struct in_addr *,
-                                                    ifindex_t);
-extern void rib_nexthop_add (struct rib *rib, struct nexthop *nexthop);
-extern void rib_copy_nexthops (struct rib *rib, struct nexthop *nh);
-
+extern struct nexthop *route_entry_nexthop_ifindex_add (struct route_entry *, ifindex_t);
+extern struct nexthop *route_entry_nexthop_blackhole_add (struct route_entry *);
+extern struct nexthop *route_entry_nexthop_ipv4_add (struct route_entry *,
+                                                     struct in_addr *,
+                                                     struct in_addr *);
+extern struct nexthop *route_entry_nexthop_ipv4_ifindex_add (struct route_entry *,
+                                                             struct in_addr *,
+                                                             struct in_addr *,
+                                                             ifindex_t);
+extern void route_entry_nexthop_delete (struct route_entry *re, struct nexthop *nexthop);
+extern struct nexthop *route_entry_nexthop_ipv6_add (struct route_entry *,
+                                                     struct in6_addr *);
+extern struct nexthop *route_entry_nexthop_ipv6_ifindex_add (struct route_entry *re,
+                                                             struct in6_addr *ipv6,
+                                                             ifindex_t ifindex);
+extern void route_entry_nexthop_add (struct route_entry *re, struct nexthop *nexthop);
+extern void route_entry_copy_nexthops (struct route_entry *re, struct nexthop *nh);
+
+#define route_entry_dump(prefix, src, re) _route_entry_dump(__func__, prefix, src, re)
+extern void _route_entry_dump (const char *,
+                               union prefixconstptr,
+                               union prefixconstptr, const struct route_entry *);
 /* RPF lookup behaviour */
 enum multicast_mode
 {
@@ -309,13 +320,9 @@ enum multicast_mode
 extern void multicast_mode_ipv4_set (enum multicast_mode mode);
 extern enum multicast_mode multicast_mode_ipv4_get (void);
 
-extern int nexthop_has_fib_child(struct nexthop *);
 extern void rib_lookup_and_dump (struct prefix_ipv4 *, vrf_id_t);
 extern void rib_lookup_and_pushup (struct prefix_ipv4 *, vrf_id_t);
-#define rib_dump(prefix, src, rib) _rib_dump(__func__, prefix, src, rib)
-extern void _rib_dump (const char *,
-                      union prefixconstptr,
-                      union prefixconstptr, const struct rib *);
+
 extern int rib_lookup_ipv4_route (struct prefix_ipv4 *, union sockunion *,
                                   vrf_id_t);
 #define ZEBRA_RIB_LOOKUP_ERROR -1
@@ -324,20 +331,16 @@ extern int rib_lookup_ipv4_route (struct prefix_ipv4 *, union sockunion *,
 #define ZEBRA_RIB_FOUND_CONNECTED 2
 #define ZEBRA_RIB_NOTFOUND 3
 
-extern void rib_nexthop_delete (struct rib *rib, struct nexthop *nexthop);
-extern struct nexthop *rib_nexthop_ipv6_add (struct rib *, struct in6_addr *);
-extern struct nexthop *rib_nexthop_ipv6_ifindex_add (struct rib *rib,
-                                                    struct in6_addr *ipv6,
-                                                    ifindex_t ifindex);
+
 
 extern int is_zebra_valid_kernel_table(u_int32_t table_id);
 extern int is_zebra_main_routing_table(u_int32_t table_id);
 extern int zebra_check_addr (struct prefix *p);
 
-extern void rib_addnode (struct route_node *rn, struct rib *rib, int process);
-extern void rib_delnode (struct route_node *rn, struct rib *rib);
-extern int rib_install_kernel (struct route_node *rn, struct rib *rib, struct rib *old);
-extern int rib_uninstall_kernel (struct route_node *rn, struct rib *rib);
+extern void rib_addnode (struct route_node *rn, struct route_entry *re, int process);
+extern void rib_delnode (struct route_node *rn, struct route_entry *re);
+extern int rib_install_kernel (struct route_node *rn, struct route_entry *re, struct route_entry *old);
+extern int rib_uninstall_kernel (struct route_node *rn, struct route_entry *re);
 
 /* NOTE:
  * All rib_add function will not just add prefix into RIB, but
@@ -349,19 +352,19 @@ extern int rib_add (afi_t afi, safi_t safi, vrf_id_t vrf_id, int type,
                    u_int32_t, u_int32_t, u_char);
 
 extern int rib_add_multipath (afi_t afi, safi_t safi, struct prefix *,
-                             struct prefix_ipv6 *src_p, struct rib *);
+                             struct prefix_ipv6 *src_p, struct route_entry *);
 
 extern void rib_delete (afi_t afi, safi_t safi, vrf_id_t vrf_id, int type,
                        u_short instance, int flags, struct prefix *p,
                        struct prefix_ipv6 *src_p, union g_addr *gate,
                        ifindex_t ifindex, u_int32_t table_id);
 
-extern struct rib *rib_match (afi_t afi, safi_t safi, vrf_id_t, union g_addr *,
+extern struct route_entry *rib_match (afi_t afi, safi_t safi, vrf_id_t, union g_addr *,
                              struct route_node **rn_out);
-extern struct rib *rib_match_ipv4_multicast (vrf_id_t vrf_id, struct in_addr addr,
+extern struct route_entry *rib_match_ipv4_multicast (vrf_id_t vrf_id, struct in_addr addr,
                                             struct route_node **rn_out);
 
-extern struct rib *rib_lookup_ipv4 (struct prefix_ipv4 *, vrf_id_t);
+extern struct route_entry *rib_lookup_ipv4 (struct prefix_ipv4 *, vrf_id_t);
 
 extern void rib_update (vrf_id_t, rib_update_event_t);
 extern void rib_weed_tables (void);
@@ -371,10 +374,10 @@ extern void rib_init (void);
 extern unsigned long rib_score_proto (u_char proto, u_short instance);
 extern void rib_queue_add (struct route_node *rn);
 extern void meta_queue_free (struct meta_queue *mq);
-extern int zebra_rib_labeled_unicast (struct rib *rib);
+extern int zebra_rib_labeled_unicast (struct route_entry *re);
 extern struct route_table *rib_table_ipv6;
 
-extern void rib_unlink (struct route_node *, struct rib *);
+extern void rib_unlink (struct route_node *, struct route_entry *);
 extern int rib_gc_dest (struct route_node *rn);
 extern struct route_table *rib_tables_iter_next (rib_tables_iter_t *iter);
 
@@ -408,7 +411,7 @@ rib_dest_from_rnode (struct route_node *rn)
  * Returns a pointer to the list of routes corresponding to the given
  * route_node.
  */
-static inline struct rib *
+static inline struct route_entry *
 rnode_to_ribs (struct route_node *rn)
 {
   rib_dest_t *dest;
index 5f2441a9cebf44a806c23be3a85cdc1b8452dfda..a39af87b5ac59a80d11265b618fe3a8d2edde525 100644 (file)
@@ -29,7 +29,7 @@
 #include "zebra/zebra_mpls.h"
 
 extern int kernel_route_rib (struct prefix *, struct prefix *,
-                             struct rib *, struct rib *);
+                             struct route_entry *, struct route_entry *);
 
 extern int kernel_address_add_ipv4 (struct interface *, struct connected *);
 extern int kernel_address_delete_ipv4 (struct interface *, struct connected *);
index f22f4acb08e901c4a9294be3c100b8ee22ea0b96..88cdfbcae125310d9ae22a5817d91bb71bfaffb0 100644 (file)
@@ -342,22 +342,22 @@ netlink_route_change_read_unicast (struct sockaddr_nl *snl, struct nlmsghdr *h,
         {
           /* This is a multipath route */
 
-          struct rib *rib;
+          struct route_entry *re;
           struct rtnexthop *rtnh =
             (struct rtnexthop *) RTA_DATA (tb[RTA_MULTIPATH]);
 
           len = RTA_PAYLOAD (tb[RTA_MULTIPATH]);
 
-          rib = XCALLOC (MTYPE_RIB, sizeof (struct rib));
-          rib->type = ZEBRA_ROUTE_KERNEL;
-          rib->distance = 0;
-          rib->flags = flags;
-          rib->metric = metric;
-          rib->mtu = mtu;
-          rib->vrf_id = vrf_id;
-          rib->table = table;
-          rib->nexthop_num = 0;
-          rib->uptime = time (NULL);
+          re = XCALLOC (MTYPE_RE, sizeof (struct route_entry));
+          re->type = ZEBRA_ROUTE_KERNEL;
+          re->distance = 0;
+          re->flags = flags;
+          re->metric = metric;
+          re->mtu = mtu;
+          re->vrf_id = vrf_id;
+          re->table = table;
+          re->nexthop_num = 0;
+          re->uptime = time (NULL);
 
           for (;;)
             {
@@ -380,31 +380,31 @@ netlink_route_change_read_unicast (struct sockaddr_nl *snl, struct nlmsghdr *h,
                   if (rtm->rtm_family == AF_INET)
                     {
                       if (index)
-                        rib_nexthop_ipv4_ifindex_add (rib, gate, prefsrc, index);
+                        route_entry_nexthop_ipv4_ifindex_add (re, gate, prefsrc, index);
                       else
-                        rib_nexthop_ipv4_add (rib, gate, prefsrc);
+                        route_entry_nexthop_ipv4_add (re, gate, prefsrc);
                     }
                   else if (rtm->rtm_family == AF_INET6)
                     {
                       if (index)
-                        rib_nexthop_ipv6_ifindex_add (rib, gate, index);
+                        route_entry_nexthop_ipv6_ifindex_add (re, gate, index);
                       else
-                        rib_nexthop_ipv6_add (rib,gate);
+                        route_entry_nexthop_ipv6_add (re,gate);
                     }
                 }
               else
-                rib_nexthop_ifindex_add (rib, index);
+                route_entry_nexthop_ifindex_add (re, index);
 
               len -= NLMSG_ALIGN(rtnh->rtnh_len);
               rtnh = RTNH_NEXT(rtnh);
             }
 
           zserv_nexthop_num_warn(__func__, (const struct prefix *)&p,
-                                 rib->nexthop_num);
-          if (rib->nexthop_num == 0)
-            XFREE (MTYPE_RIB, rib);
+                                 re->nexthop_num);
+          if (re->nexthop_num == 0)
+            XFREE (MTYPE_RE, re);
           else
-            rib_add_multipath (AFI_IP, SAFI_UNICAST, &p, NULL, rib);
+            rib_add_multipath (AFI_IP, SAFI_UNICAST, &p, NULL, re);
         }
     }
   else
@@ -1168,7 +1168,7 @@ netlink_neigh_update (int cmd, int ifindex, uint32_t addr, char *lla, int llalen
 /* Update flag indicates whether this is a "replace" or not. */
 static int
 netlink_route_multipath (int cmd, struct prefix *p, struct prefix *src_p,
-                         struct rib *rib, int update)
+                         struct route_entry *re, int update)
 {
   int bytelen;
   struct sockaddr_nl snl;
@@ -1189,7 +1189,7 @@ netlink_route_multipath (int cmd, struct prefix *p, struct prefix *src_p,
   } req;
 
   struct zebra_ns *zns = zebra_ns_lookup (NS_DEFAULT);
-  struct zebra_vrf *zvrf = vrf_info_lookup (rib->vrf_id);
+  struct zebra_vrf *zvrf = vrf_info_lookup (re->vrf_id);
 
   memset (&req, 0, sizeof req - NL_PKT_BUF_SIZE);
 
@@ -1203,10 +1203,10 @@ netlink_route_multipath (int cmd, struct prefix *p, struct prefix *src_p,
   req.r.rtm_family = family;
   req.r.rtm_dst_len = p->prefixlen;
   req.r.rtm_src_len = src_p ? src_p->prefixlen : 0;
-  req.r.rtm_protocol = get_rt_proto(rib->type);
+  req.r.rtm_protocol = get_rt_proto(re->type);
   req.r.rtm_scope = RT_SCOPE_UNIVERSE;
 
-  if ((rib->flags & ZEBRA_FLAG_BLACKHOLE) || (rib->flags & ZEBRA_FLAG_REJECT))
+  if ((re->flags & ZEBRA_FLAG_BLACKHOLE) || (re->flags & ZEBRA_FLAG_REJECT))
     discard = 1;
   else
     discard = 0;
@@ -1215,9 +1215,9 @@ netlink_route_multipath (int cmd, struct prefix *p, struct prefix *src_p,
     {
       if (discard)
         {
-          if (rib->flags & ZEBRA_FLAG_BLACKHOLE)
+          if (re->flags & ZEBRA_FLAG_BLACKHOLE)
             req.r.rtm_type = RTN_BLACKHOLE;
-          else if (rib->flags & ZEBRA_FLAG_REJECT)
+          else if (re->flags & ZEBRA_FLAG_REJECT)
             req.r.rtm_type = RTN_UNREACHABLE;
           else
             assert (RTN_BLACKHOLE != RTN_UNREACHABLE);  /* false */
@@ -1238,21 +1238,21 @@ netlink_route_multipath (int cmd, struct prefix *p, struct prefix *src_p,
   addattr32 (&req.n, sizeof req, RTA_PRIORITY, NL_DEFAULT_ROUTE_METRIC);
 
   /* Table corresponding to this route. */
-  if (rib->table < 256)
-    req.r.rtm_table = rib->table;
+  if (re->table < 256)
+    req.r.rtm_table = re->table;
   else
     {
       req.r.rtm_table = RT_TABLE_UNSPEC;
-      addattr32(&req.n, sizeof req, RTA_TABLE, rib->table);
+      addattr32(&req.n, sizeof req, RTA_TABLE, re->table);
     }
 
-  if (rib->mtu || rib->nexthop_mtu)
+  if (re->mtu || re->nexthop_mtu)
     {
       char buf[NL_PKT_BUF_SIZE];
       struct rtattr *rta = (void *) buf;
-      u_int32_t mtu = rib->mtu;
-      if (!mtu || (rib->nexthop_mtu && rib->nexthop_mtu < mtu))
-        mtu = rib->nexthop_mtu;
+      u_int32_t mtu = re->mtu;
+      if (!mtu || (re->nexthop_mtu && re->nexthop_mtu < mtu))
+        mtu = re->nexthop_mtu;
       rta->rta_type = RTA_METRICS;
       rta->rta_len = RTA_LENGTH(0);
       rta_addattr_l (rta, NL_PKT_BUF_SIZE, RTAX_MTU, &mtu, sizeof mtu);
@@ -1263,7 +1263,7 @@ netlink_route_multipath (int cmd, struct prefix *p, struct prefix *src_p,
   if (discard)
     {
       if (cmd == RTM_NEWROUTE)
-        for (ALL_NEXTHOPS_RO(rib->nexthop, nexthop, tnexthop, recursing))
+        for (ALL_NEXTHOPS_RO(re->nexthop, nexthop, tnexthop, recursing))
           {
             /* We shouldn't encounter recursive nexthops on discard routes,
              * but it is probably better to handle that case correctly anyway.
@@ -1277,7 +1277,7 @@ netlink_route_multipath (int cmd, struct prefix *p, struct prefix *src_p,
   /* Count overall nexthops so we can decide whether to use singlepath
    * or multipath case. */
   nexthop_num = 0;
-  for (ALL_NEXTHOPS_RO(rib->nexthop, nexthop, tnexthop, recursing))
+  for (ALL_NEXTHOPS_RO(re->nexthop, nexthop, tnexthop, recursing))
     {
       if (CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_RECURSIVE))
         continue;
@@ -1293,7 +1293,7 @@ netlink_route_multipath (int cmd, struct prefix *p, struct prefix *src_p,
   if (nexthop_num == 1 || multipath_num == 1)
     {
       nexthop_num = 0;
-      for (ALL_NEXTHOPS_RO(rib->nexthop, nexthop, tnexthop, recursing))
+      for (ALL_NEXTHOPS_RO(re->nexthop, nexthop, tnexthop, recursing))
         {
           if (CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_RECURSIVE))
             {
@@ -1364,7 +1364,7 @@ netlink_route_multipath (int cmd, struct prefix *p, struct prefix *src_p,
       rtnh = RTA_DATA (rta);
 
       nexthop_num = 0;
-      for (ALL_NEXTHOPS_RO(rib->nexthop, nexthop, tnexthop, recursing))
+      for (ALL_NEXTHOPS_RO(re->nexthop, nexthop, tnexthop, recursing))
         {
           if (nexthop_num >= multipath_num)
             break;
@@ -1497,7 +1497,7 @@ kernel_get_ipmr_sg_stats (void *in)
 
 int
 kernel_route_rib (struct prefix *p, struct prefix *src_p,
-                  struct rib *old, struct rib *new)
+                  struct route_entry *old, struct route_entry *new)
 {
   if (!old && new)
     return netlink_route_multipath (RTM_NEWROUTE, p, src_p, new, 0);
index 3e4833016a96b928948dcb7f638ac3fdf776f555..ee706a1e8c73aac2c4f44d5a8d933ac079859106 100644 (file)
@@ -71,7 +71,7 @@ sin_masklen (struct in_addr mask)
 
 /* Interface between zebra message and rtm message. */
 static int
-kernel_rtm_ipv4 (int cmd, struct prefix *p, struct rib *rib)
+kernel_rtm_ipv4 (int cmd, struct prefix *p, struct route_entry *re)
 
 {
   struct sockaddr_in *mask = NULL;
@@ -106,7 +106,7 @@ kernel_rtm_ipv4 (int cmd, struct prefix *p, struct rib *rib)
 #endif /* HAVE_STRUCT_SOCKADDR_IN_SIN_LEN */
 
   /* Make gateway. */
-  for (ALL_NEXTHOPS_RO(rib->nexthop, nexthop, tnexthop, recursing))
+  for (ALL_NEXTHOPS_RO(re->nexthop, nexthop, tnexthop, recursing))
     {
       if (CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_RECURSIVE))
         continue;
@@ -172,16 +172,16 @@ kernel_rtm_ipv4 (int cmd, struct prefix *p, struct rib *rib)
                             gate ? (union sockunion *)&sin_gate : NULL,
                             smplsp,
                             ifindex,
-                            rib->flags,
-                            rib->metric);
+                            re->flags,
+                            re->metric);
 
            if (IS_ZEBRA_DEBUG_RIB)
            {
              if (!gate)
              {
-               zlog_debug ("%s: %s: attention! gate not found for rib %p",
-                 __func__, prefix_buf, rib);
-               rib_dump (p, NULL, rib);
+               zlog_debug ("%s: %s: attention! gate not found for re %p",
+                 __func__, prefix_buf, re);
+               route_entry_dump (p, NULL, re);
              }
              else
                inet_ntop (AF_INET, &sin_gate.sin_addr, gate_buf, INET_ADDRSTRLEN);
@@ -230,7 +230,7 @@ kernel_rtm_ipv4 (int cmd, struct prefix *p, struct rib *rib)
  
    /* If there was no useful nexthop, then complain. */
    if (nexthop_num == 0 && IS_ZEBRA_DEBUG_KERNEL)
-     zlog_debug ("%s: No useful nexthops were found in RIB entry %p", __func__, rib);
+     zlog_debug ("%s: No useful nexthops were found in RIB entry %p", __func__, re);
 
   return 0; /*XXX*/
 }
@@ -262,7 +262,7 @@ sin6_masklen (struct in6_addr mask)
 
 /* Interface between zebra message and rtm message. */
 static int
-kernel_rtm_ipv6 (int cmd, struct prefix *p, struct rib *rib)
+kernel_rtm_ipv6 (int cmd, struct prefix *p, struct route_entry *re)
 {
   struct sockaddr_in6 *mask;
   struct sockaddr_in6 sin_dest, sin_mask, sin_gate;
@@ -289,7 +289,7 @@ kernel_rtm_ipv6 (int cmd, struct prefix *p, struct rib *rib)
 #endif /* HAVE_STRUCT_SOCKADDR_IN_SIN_LEN */
 
   /* Make gateway. */
-  for (ALL_NEXTHOPS_RO(rib->nexthop, nexthop, tnexthop, recursing))
+  for (ALL_NEXTHOPS_RO(re->nexthop, nexthop, tnexthop, recursing))
     {
       if (CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_RECURSIVE))
        continue;
@@ -349,8 +349,8 @@ kernel_rtm_ipv6 (int cmd, struct prefix *p, struct rib *rib)
                        gate ? (union sockunion *)&sin_gate : NULL,
                        NULL,
                        ifindex,
-                       rib->flags,
-                       rib->metric);
+                       re->flags,
+                       re->metric);
 
 #if 0
       if (error)
@@ -377,21 +377,21 @@ kernel_rtm_ipv6 (int cmd, struct prefix *p, struct rib *rib)
 }
 
 static int
-kernel_rtm (int cmd, struct prefix *p, struct rib *rib)
+kernel_rtm (int cmd, struct prefix *p, struct route_entry *re)
 {
   switch (PREFIX_FAMILY(p))
     {
     case AF_INET:
-      return kernel_rtm_ipv4 (cmd, p, rib);
+      return kernel_rtm_ipv4 (cmd, p, re);
     case AF_INET6:
-      return kernel_rtm_ipv6 (cmd, p, rib);
+      return kernel_rtm_ipv6 (cmd, p, re);
     }
   return 0;
 }
 
 int
 kernel_route_rib (struct prefix *p, struct prefix *src_p,
-                  struct rib *old, struct rib *new)
+                  struct route_entry *old, struct route_entry *new)
 {
   int route = 0;
 
index 2a23ff1027c9223725f41aae604db1a49a7fefc5..37068c1fae9fbd6c6167e6ed751b31e1e9c8df90 100644 (file)
@@ -866,7 +866,7 @@ zfpm_writes_pending (void)
  * value indicates an error.
  */
 static inline int
-zfpm_encode_route (rib_dest_t *dest, struct rib *rib, char *in_buf,
+zfpm_encode_route (rib_dest_t *dest, struct route_entry *re, char *in_buf,
                   size_t in_buf_len, fpm_msg_type_e *msg_type)
 {
   size_t len;
@@ -881,7 +881,7 @@ zfpm_encode_route (rib_dest_t *dest, struct rib *rib, char *in_buf,
 
   case ZFPM_MSG_FORMAT_PROTOBUF:
 #ifdef HAVE_PROTOBUF
-    len = zfpm_protobuf_encode_route (dest, rib, (uint8_t *) in_buf,
+    len = zfpm_protobuf_encode_route (dest, re, (uint8_t *) in_buf,
                                      in_buf_len);
     *msg_type = FPM_MSG_TYPE_PROTOBUF;
 #endif
@@ -890,8 +890,8 @@ zfpm_encode_route (rib_dest_t *dest, struct rib *rib, char *in_buf,
   case ZFPM_MSG_FORMAT_NETLINK:
 #ifdef HAVE_NETLINK
     *msg_type = FPM_MSG_TYPE_NETLINK;
-    cmd = rib ? RTM_NEWROUTE : RTM_DELROUTE;
-    len = zfpm_netlink_encode_route (cmd, dest, rib, in_buf, in_buf_len);
+    cmd = re ? RTM_NEWROUTE : RTM_DELROUTE;
+    len = zfpm_netlink_encode_route (cmd, dest, re, in_buf, in_buf_len);
     assert(fpm_msg_align(len) == len);
     *msg_type = FPM_MSG_TYPE_NETLINK;
 #endif /* HAVE_NETLINK */
@@ -908,19 +908,19 @@ zfpm_encode_route (rib_dest_t *dest, struct rib *rib, char *in_buf,
 /*
  * zfpm_route_for_update
  *
- * Returns the rib that is to be sent to the FPM for a given dest.
+ * Returns the re that is to be sent to the FPM for a given dest.
  */
-struct rib *
+struct route_entry *
 zfpm_route_for_update (rib_dest_t *dest)
 {
-  struct rib *rib;
+  struct route_entry *re;
 
-  RIB_DEST_FOREACH_ROUTE (dest, rib)
+  RE_DEST_FOREACH_ROUTE (dest, re)
     {
-      if (!CHECK_FLAG (rib->status, RIB_ENTRY_SELECTED_FIB))
+      if (!CHECK_FLAG (re->status, ROUTE_ENTRY_SELECTED_FIB))
        continue;
 
-      return rib;
+      return re;
     }
 
   /*
@@ -944,7 +944,7 @@ zfpm_build_updates (void)
   size_t msg_len;
   size_t data_len;
   fpm_msg_hdr_t *hdr;
-  struct rib *rib;
+  struct route_entry *re;
   int is_add, write_msg;
   fpm_msg_type_e msg_type;
 
@@ -974,8 +974,8 @@ zfpm_build_updates (void)
 
     data = fpm_msg_data (hdr);
 
-    rib = zfpm_route_for_update (dest);
-    is_add = rib ? 1 : 0;
+    re = zfpm_route_for_update (dest);
+    is_add = re ? 1 : 0;
 
     write_msg = 1;
 
@@ -990,7 +990,7 @@ zfpm_build_updates (void)
       }
 
     if (write_msg) {
-      data_len = zfpm_encode_route (dest, rib, (char *) data, buf_end - data,
+      data_len = zfpm_encode_route (dest, re, (char *) data, buf_end - data,
                                    &msg_type);
 
       assert (data_len);
index db28b6f0e420f4ed30e043e4e241b0e3f6ad2c01..916640928b24d96d089be9c253d73357ad05c79a 100644 (file)
@@ -67,13 +67,13 @@ extern int zfpm_dt_benchmark_protobuf_decode (int argc, const char **argv);
  * Selects a suitable rib destination for fpm interface tests.
  */
 static int
-zfpm_dt_find_route (rib_dest_t **dest_p, struct rib **rib_p)
+zfpm_dt_find_route (rib_dest_t **dest_p, struct route_entry **re_p)
 {
   struct route_node *rnode;
   route_table_iter_t iter;
   struct route_table *table;
   rib_dest_t *dest;
-  struct rib *rib;
+  struct route_entry *re;
   int ret;
 
   table = zebra_vrf_table (AFI_IP, SAFI_UNICAST, VRF_DEFAULT);
@@ -88,15 +88,15 @@ zfpm_dt_find_route (rib_dest_t **dest_p, struct rib **rib_p)
       if (!dest)
          continue;
 
-      rib = zfpm_route_for_update(dest);
-      if (!rib)
+      re = zfpm_route_for_update(dest);
+      if (!re)
        continue;
 
-      if (rib->nexthop_active_num <= 0)
+      if (re->nexthop_active_num <= 0)
        continue;
 
       *dest_p = dest;
-      *rib_p = rib;
+      *re_p = re;
       ret = 1;
       goto done;
     }
@@ -117,7 +117,7 @@ zfpm_dt_benchmark_netlink_encode (int argc, const char **argv)
 {
   int times, i, len;
   rib_dest_t *dest;
-  struct rib *rib;
+  struct route_entry *re;
   char buf[4096];
 
   times = 100000;
@@ -125,12 +125,12 @@ zfpm_dt_benchmark_netlink_encode (int argc, const char **argv)
     times = atoi(argv[0]);
   }
 
-  if (!zfpm_dt_find_route(&dest, &rib)) {
+  if (!zfpm_dt_find_route(&dest, &re)) {
     return 1;
   }
 
   for (i = 0; i < times; i++) {
-    len = zfpm_netlink_encode_route(RTM_NEWROUTE, dest, rib, buf, sizeof(buf));
+    len = zfpm_netlink_encode_route(RTM_NEWROUTE, dest, re, buf, sizeof(buf));
     if (len <= 0) {
       return 2;
     }
@@ -150,7 +150,7 @@ zfpm_dt_benchmark_protobuf_encode (int argc, const char **argv)
 {
   int times, i, len;
   rib_dest_t *dest;
-  struct rib *rib;
+  struct route_entry *re;
   uint8_t buf[4096];
 
   times = 100000;
@@ -158,12 +158,12 @@ zfpm_dt_benchmark_protobuf_encode (int argc, const char **argv)
     times = atoi(argv[0]);
   }
 
-  if (!zfpm_dt_find_route(&dest, &rib)) {
+  if (!zfpm_dt_find_route(&dest, &re)) {
     return 1;
   }
 
   for (i = 0; i < times; i++) {
-    len = zfpm_protobuf_encode_route(dest, rib, buf, sizeof(buf));
+    len = zfpm_protobuf_encode_route(dest, re, buf, sizeof(buf));
     if (len <= 0) {
       return 2;
     }
@@ -229,7 +229,7 @@ zfpm_dt_benchmark_protobuf_decode (int argc, const char **argv)
 {
   int times, i, len;
   rib_dest_t *dest;
-  struct rib *rib;
+  struct route_entry *re;
   uint8_t msg_buf[4096];
   QPB_DECLARE_STACK_ALLOCATOR (allocator, 8192);
   Fpm__Message *fpm_msg;
@@ -240,13 +240,13 @@ zfpm_dt_benchmark_protobuf_decode (int argc, const char **argv)
   if (argc > 0)
     times = atoi(argv[0]);
 
-  if (!zfpm_dt_find_route (&dest, &rib))
+  if (!zfpm_dt_find_route (&dest, &re))
     return 1;
 
   /*
    * Encode the route into the message buffer once only.
    */
-  len = zfpm_protobuf_encode_route (dest, rib, msg_buf, sizeof (msg_buf));
+  len = zfpm_protobuf_encode_route (dest, re, msg_buf, sizeof (msg_buf));
   if (len <= 0)
     return 2;
 
index 4ca7b597266685ab6d580959247f602861b49035..c5647debc3cd45054bc8b868ba2bde1f5b0210f9 100644 (file)
@@ -231,7 +231,7 @@ netlink_proto_from_route_type (int type)
  */
 static int
 netlink_route_info_fill (netlink_route_info_t *ri, int cmd,
-                        rib_dest_t *dest, struct rib *rib)
+                        rib_dest_t *dest, struct route_entry *re)
 {
   struct nexthop *nexthop, *tnexthop;
   int recursing;
@@ -250,18 +250,18 @@ netlink_route_info_fill (netlink_route_info_t *ri, int cmd,
    * An RTM_DELROUTE need not be accompanied by any nexthops,
    * particularly in our communication with the FPM.
    */
-  if (cmd == RTM_DELROUTE && !rib)
+  if (cmd == RTM_DELROUTE && !re)
     return 1;
 
-  if (!rib)
+  if (!re)
     {
-      zfpm_debug ("%s: Expected non-NULL rib pointer", __PRETTY_FUNCTION__);
+      zfpm_debug ("%s: Expected non-NULL re pointer", __PRETTY_FUNCTION__);
       return 0;
     }
 
-  ri->rtm_protocol = netlink_proto_from_route_type (rib->type);
+  ri->rtm_protocol = netlink_proto_from_route_type (re->type);
 
-  if ((rib->flags & ZEBRA_FLAG_BLACKHOLE) || (rib->flags & ZEBRA_FLAG_REJECT))
+  if ((re->flags & ZEBRA_FLAG_BLACKHOLE) || (re->flags & ZEBRA_FLAG_REJECT))
     discard = 1;
   else
     discard = 0;
@@ -270,9 +270,9 @@ netlink_route_info_fill (netlink_route_info_t *ri, int cmd,
     {
       if (discard)
         {
-          if (rib->flags & ZEBRA_FLAG_BLACKHOLE)
+          if (re->flags & ZEBRA_FLAG_BLACKHOLE)
             ri->rtm_type = RTN_BLACKHOLE;
-          else if (rib->flags & ZEBRA_FLAG_REJECT)
+          else if (re->flags & ZEBRA_FLAG_REJECT)
             ri->rtm_type = RTN_UNREACHABLE;
           else
             assert (0);
@@ -281,12 +281,12 @@ netlink_route_info_fill (netlink_route_info_t *ri, int cmd,
         ri->rtm_type = RTN_UNICAST;
     }
 
-  ri->metric = &rib->metric;
+  ri->metric = &re->metric;
 
   if (discard)
     return 1;
 
-  for (ALL_NEXTHOPS_RO(rib->nexthop, nexthop, tnexthop, recursing))
+  for (ALL_NEXTHOPS_RO(re->nexthop, nexthop, tnexthop, recursing))
     {
       if (ri->num_nhs >= multipath_num)
         break;
@@ -474,14 +474,14 @@ zfpm_log_route_info (netlink_route_info_t *ri, const char *label)
  * value indicates an error.
  */
 int
-zfpm_netlink_encode_route (int cmd, rib_dest_t *dest, struct rib *rib,
+zfpm_netlink_encode_route (int cmd, rib_dest_t *dest, struct route_entry *re,
                           char *in_buf, size_t in_buf_len)
 {
   netlink_route_info_t ri_space, *ri;
 
   ri = &ri_space;
 
-  if (!netlink_route_info_fill (ri, cmd, dest, rib))
+  if (!netlink_route_info_fill (ri, cmd, dest, re))
     return 0;
 
   zfpm_log_route_info (ri, __FUNCTION__);
index 49650541e7720f12f66cd444f464efdd22d8d869..441a22a798697924f886f2dd4bab8a66bb0b1aaa 100644 (file)
@@ -49,12 +49,12 @@ static inline void zfpm_debug(const char *format, ...) { return; }
  * Externs
  */
 extern int
-zfpm_netlink_encode_route (int cmd, rib_dest_t *dest, struct rib *rib,
+zfpm_netlink_encode_route (int cmd, rib_dest_t *dest, struct route_entry *re,
                           char *in_buf, size_t in_buf_len);
 
 extern int
-zfpm_protobuf_encode_route (rib_dest_t *dest, struct rib *rib,
+zfpm_protobuf_encode_route (rib_dest_t *dest, struct route_entry *re,
                            uint8_t *in_buf, size_t in_buf_len);
 
-extern struct rib *zfpm_route_for_update (rib_dest_t *dest);
+extern struct route_entry *zfpm_route_for_update (rib_dest_t *dest);
 #endif /* _ZEBRA_FPM_PRIVATE_H */
index 312d4cd3ed2da6b68081e5b739c3fdecc907b41d..375fde921e7f4051c61466dca4b8606ece70e6b8 100644 (file)
@@ -41,7 +41,7 @@
  */
 static Fpm__DeleteRoute *
 create_delete_route_message (qpb_allocator_t *allocator, rib_dest_t *dest,
-                            struct rib *rib)
+                            struct route_entry *re)
 {
   Fpm__DeleteRoute *msg;
 
@@ -141,7 +141,7 @@ add_nexthop (qpb_allocator_t *allocator, Fpm__AddRoute *msg, rib_dest_t *dest,
  */
 static Fpm__AddRoute *
 create_add_route_message (qpb_allocator_t *allocator, rib_dest_t *dest,
-                         struct rib *rib)
+                         struct route_entry *re)
 {
   Fpm__AddRoute *msg;
   int discard;
@@ -167,18 +167,18 @@ create_add_route_message (qpb_allocator_t *allocator, rib_dest_t *dest,
    */
   msg->sub_address_family = QPB__SUB_ADDRESS_FAMILY__UNICAST;
   msg->key = fpm_route_key_create (allocator, rib_dest_prefix(dest));
-  qpb_protocol_set (&msg->protocol, rib->type);
+  qpb_protocol_set (&msg->protocol, re->type);
 
-  if ((rib->flags & ZEBRA_FLAG_BLACKHOLE) || (rib->flags & ZEBRA_FLAG_REJECT))
+  if ((re->flags & ZEBRA_FLAG_BLACKHOLE) || (re->flags & ZEBRA_FLAG_REJECT))
     discard = 1;
   else
     discard = 0;
 
   if (discard)
     {
-      if (rib->flags & ZEBRA_FLAG_BLACKHOLE) {
+      if (re->flags & ZEBRA_FLAG_BLACKHOLE) {
        msg->route_type = FPM__ROUTE_TYPE__BLACKHOLE;
-      } else if (rib->flags & ZEBRA_FLAG_REJECT) {
+      } else if (re->flags & ZEBRA_FLAG_REJECT) {
        msg->route_type = FPM__ROUTE_TYPE__UNREACHABLE;
       } else {
        assert (0);
@@ -189,13 +189,13 @@ create_add_route_message (qpb_allocator_t *allocator, rib_dest_t *dest,
     msg->route_type = FPM__ROUTE_TYPE__NORMAL;
   }
 
-  msg->metric = rib->metric;
+  msg->metric = re->metric;
 
   /*
    * Figure out the set of nexthops to be added to the message.
    */
   num_nhs = 0;
-  for (ALL_NEXTHOPS_RO (rib->nexthop, nexthop, tnexthop, recursing))
+  for (ALL_NEXTHOPS_RO (re->nexthop, nexthop, tnexthop, recursing))
     {
       if (num_nhs >= multipath_num)
         break;
@@ -245,7 +245,7 @@ create_add_route_message (qpb_allocator_t *allocator, rib_dest_t *dest,
  */
 static Fpm__Message *
 create_route_message (qpb_allocator_t *allocator, rib_dest_t *dest,
-                     struct rib *rib)
+                     struct route_entry *re)
 {
   Fpm__Message *msg;
 
@@ -257,9 +257,9 @@ create_route_message (qpb_allocator_t *allocator, rib_dest_t *dest,
 
   fpm__message__init(msg);
 
-  if (!rib) {
+  if (!re) {
     msg->type = FPM__MESSAGE__TYPE__DELETE_ROUTE;
-    msg->delete_route = create_delete_route_message(allocator, dest, rib);
+    msg->delete_route = create_delete_route_message(allocator, dest, re);
     if (!msg->delete_route) {
       assert(0);
       return NULL;
@@ -268,7 +268,7 @@ create_route_message (qpb_allocator_t *allocator, rib_dest_t *dest,
   }
 
   msg->type = FPM__MESSAGE__TYPE__ADD_ROUTE;
-  msg->add_route = create_add_route_message(allocator, dest, rib);
+  msg->add_route = create_add_route_message(allocator, dest, re);
   if (!msg->add_route) {
     assert(0);
     return NULL;
@@ -287,7 +287,7 @@ create_route_message (qpb_allocator_t *allocator, rib_dest_t *dest,
  * value indicates an error.
  */
 int
-zfpm_protobuf_encode_route (rib_dest_t *dest, struct rib *rib,
+zfpm_protobuf_encode_route (rib_dest_t *dest, struct route_entry *re,
                            uint8_t *in_buf, size_t in_buf_len)
 {
   Fpm__Message *msg;
@@ -296,7 +296,7 @@ zfpm_protobuf_encode_route (rib_dest_t *dest, struct rib *rib,
 
   QPB_INIT_STACK_ALLOCATOR (allocator);
 
-  msg = create_route_message(&allocator, dest, rib);
+  msg = create_route_message(&allocator, dest, re);
   if (!msg) {
     assert(0);
     return 0;
index 51c240ae28ddcf0e516d472225f441e686a8e242..b8e1a130eb44c5139e28bd8c8d8b5b4482de8314 100644 (file)
@@ -28,7 +28,7 @@
 DEFINE_MGROUP(ZEBRA, "zebra")
 DEFINE_MTYPE(ZEBRA, RTADV_PREFIX,   "Router Advertisement Prefix")
 DEFINE_MTYPE(ZEBRA, ZEBRA_VRF,      "ZEBRA VRF")
-DEFINE_MTYPE(ZEBRA, RIB,            "RIB")
+DEFINE_MTYPE(ZEBRA, RE,             "Route Entry")
 DEFINE_MTYPE(ZEBRA, RIB_QUEUE,      "RIB process work queue")
 DEFINE_MTYPE(ZEBRA, STATIC_ROUTE,   "Static route")
 DEFINE_MTYPE(ZEBRA, RIB_DEST,       "RIB destination")
index 35d70d81ee2ba969b718f2fcb20190e1c0f973da..e3439d5f64d88ad6f11084882224e6ff9cc437bc 100644 (file)
@@ -28,7 +28,7 @@ DECLARE_MGROUP(ZEBRA)
 DECLARE_MTYPE(RTADV_PREFIX)
 DECLARE_MTYPE(ZEBRA_NS)
 DECLARE_MTYPE(ZEBRA_VRF)
-DECLARE_MTYPE(RIB)
+DECLARE_MTYPE(RE)
 DECLARE_MTYPE(RIB_QUEUE)
 DECLARE_MTYPE(STATIC_ROUTE)
 DECLARE_MTYPE(RIB_DEST)
index b547c62566dc25fc04debb8a27854e355413fcd9..db02a025f9becd704d540af272514ec9d6c5fb2f 100644 (file)
@@ -65,7 +65,7 @@ static u_int32_t
 fec_derive_label_from_index (struct zebra_vrf *vrf, zebra_fec_t *fec);
 static int
 lsp_install (struct zebra_vrf *zvrf, mpls_label_t label,
-             struct route_node *rn, struct rib *rib);
+             struct route_node *rn, struct route_entry *re);
 static int
 lsp_uninstall (struct zebra_vrf *zvrf, mpls_label_t label);
 static int
@@ -168,7 +168,7 @@ mpls_processq_init (struct zebra_t *zebra);
  */
 static int
 lsp_install (struct zebra_vrf *zvrf, mpls_label_t label,
-             struct route_node *rn, struct rib *rib)
+             struct route_node *rn, struct route_entry *re)
 {
   struct hash *lsp_table;
   zebra_ile_t tmp_ile;
@@ -184,7 +184,7 @@ lsp_install (struct zebra_vrf *zvrf, mpls_label_t label,
   if (!lsp_table)
     return -1;
 
-  lsp_type = lsp_type_from_rib_type (rib->type);
+  lsp_type = lsp_type_from_re_type (re->type);
   added = changed = 0;
 
   /* Locate or allocate LSP entry. */
@@ -198,7 +198,7 @@ lsp_install (struct zebra_vrf *zvrf, mpls_label_t label,
    * the label advertised by the recursive nexthop (plus we don't have the
    * logic yet to push multiple labels).
    */
-  for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
+  for (nexthop = re->nexthop; nexthop; nexthop = nexthop->next)
     {
       /* Skip inactive and recursive entries. */
       if (!CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE))
@@ -441,7 +441,7 @@ fec_change_update_lsp (struct zebra_vrf *zvrf, zebra_fec_t *fec, mpls_label_t ol
 {
   struct route_table *table;
   struct route_node *rn;
-  struct rib *rib;
+  struct route_entry *re;
   afi_t afi;
 
   /* Uninstall label forwarding entry, if previously installed. */
@@ -464,16 +464,16 @@ fec_change_update_lsp (struct zebra_vrf *zvrf, zebra_fec_t *fec, mpls_label_t ol
   if (!rn)
     return 0;
 
-  RNODE_FOREACH_RIB (rn, rib)
+  RNODE_FOREACH_RE (rn, re)
     {
-      if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_SELECTED))
+      if (CHECK_FLAG (re->flags, ZEBRA_FLAG_SELECTED))
         break;
     }
 
-  if (!rib || !zebra_rib_labeled_unicast (rib))
+  if (!re || !zebra_rib_labeled_unicast (re))
     return 0;
 
-  if (lsp_install (zvrf, fec->label, rn, rib))
+  if (lsp_install (zvrf, fec->label, rn, re))
     return -1;
 
   return 0;
@@ -656,7 +656,7 @@ nhlfe_nexthop_active_ipv4 (zebra_nhlfe_t *nhlfe, struct nexthop *nexthop)
   struct route_table *table;
   struct prefix_ipv4 p;
   struct route_node *rn;
-  struct rib *match;
+  struct route_entry *match;
   struct nexthop *match_nh;
 
   table = zebra_vrf_table (AFI_IP, SAFI_UNICAST, VRF_DEFAULT);
@@ -676,9 +676,9 @@ nhlfe_nexthop_active_ipv4 (zebra_nhlfe_t *nhlfe, struct nexthop *nexthop)
   route_unlock_node (rn);
 
   /* Locate a valid connected route. */
-  RNODE_FOREACH_RIB (rn, match)
+  RNODE_FOREACH_RE (rn, match)
     {
-      if (CHECK_FLAG (match->status, RIB_ENTRY_REMOVED) ||
+      if (CHECK_FLAG (match->status, ROUTE_ENTRY_REMOVED) ||
          !CHECK_FLAG (match->flags, ZEBRA_FLAG_SELECTED))
        continue;
 
@@ -708,7 +708,7 @@ nhlfe_nexthop_active_ipv6 (zebra_nhlfe_t *nhlfe, struct nexthop *nexthop)
   struct route_table *table;
   struct prefix_ipv6 p;
   struct route_node *rn;
-  struct rib *match;
+  struct route_entry *match;
 
   table = zebra_vrf_table (AFI_IP6, SAFI_UNICAST, VRF_DEFAULT);
   if (!table)
@@ -727,10 +727,10 @@ nhlfe_nexthop_active_ipv6 (zebra_nhlfe_t *nhlfe, struct nexthop *nexthop)
   route_unlock_node (rn);
 
   /* Locate a valid connected route. */
-  RNODE_FOREACH_RIB (rn, match)
+  RNODE_FOREACH_RE (rn, match)
     {
       if ((match->type == ZEBRA_ROUTE_CONNECT) &&
-          !CHECK_FLAG (match->status, RIB_ENTRY_REMOVED) &&
+          !CHECK_FLAG (match->status, ROUTE_ENTRY_REMOVED) &&
           CHECK_FLAG (match->flags, ZEBRA_FLAG_SELECTED))
         break;
     }
@@ -1809,7 +1809,7 @@ mpls_label2str (u_int8_t num_labels, mpls_label_t *labels,
  * Install dynamic LSP entry.
  */
 int
-zebra_mpls_lsp_install (struct zebra_vrf *zvrf, struct route_node *rn, struct rib *rib)
+zebra_mpls_lsp_install (struct zebra_vrf *zvrf, struct route_node *rn, struct route_entry *re)
 {
   struct route_table *table;
   zebra_fec_t *fec;
@@ -1829,7 +1829,7 @@ zebra_mpls_lsp_install (struct zebra_vrf *zvrf, struct route_node *rn, struct ri
   if (fec->label == MPLS_IMP_NULL_LABEL)
     return 0;
 
-  if (lsp_install (zvrf, fec->label, rn, rib))
+  if (lsp_install (zvrf, fec->label, rn, re))
     return -1;
 
   return 0;
@@ -1839,7 +1839,7 @@ zebra_mpls_lsp_install (struct zebra_vrf *zvrf, struct route_node *rn, struct ri
  * Uninstall dynamic LSP entry, if any.
  */
 int
-zebra_mpls_lsp_uninstall (struct zebra_vrf *zvrf, struct route_node *rn, struct rib *rib)
+zebra_mpls_lsp_uninstall (struct zebra_vrf *zvrf, struct route_node *rn, struct route_entry *re)
 {
   struct route_table *table;
   zebra_fec_t *fec;
@@ -2296,7 +2296,7 @@ mpls_ftn_update (int add, struct zebra_vrf *zvrf, enum lsp_types_t type,
 {
   struct route_table *table;
   struct route_node *rn;
-  struct rib *rib;
+  struct route_entry *re;
   struct nexthop *nexthop;
 
   /* Lookup table.  */
@@ -2306,18 +2306,18 @@ mpls_ftn_update (int add, struct zebra_vrf *zvrf, enum lsp_types_t type,
 
   /* Lookup existing route */
   rn = route_node_get (table, prefix);
-  RNODE_FOREACH_RIB (rn, rib)
+  RNODE_FOREACH_RE (rn, re)
     {
-       if (CHECK_FLAG (rib->status, RIB_ENTRY_REMOVED))
+       if (CHECK_FLAG (re->status, ROUTE_ENTRY_REMOVED))
          continue;
-       if (rib->distance == distance)
+       if (re->distance == distance)
          break;
     }
 
-  if (rib == NULL)
+  if (re == NULL)
     return -1;
 
-  for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
+  for (nexthop = re->nexthop; nexthop; nexthop = nexthop->next)
     {
       switch (nexthop->type)
        {
@@ -2356,8 +2356,8 @@ mpls_ftn_update (int add, struct zebra_vrf *zvrf, enum lsp_types_t type,
   else
     return 0;
 
-  SET_FLAG (rib->status, RIB_ENTRY_CHANGED);
-  SET_FLAG (rib->status, RIB_ENTRY_NEXTHOPS_CHANGED);
+  SET_FLAG (re->status, ROUTE_ENTRY_CHANGED);
+  SET_FLAG (re->status, ROUTE_ENTRY_NEXTHOPS_CHANGED);
   rib_queue_add (rn);
 
   return 0;
@@ -2534,7 +2534,7 @@ mpls_ldp_ftn_uninstall_all (struct zebra_vrf *zvrf, int afi)
 {
   struct route_table *table;
   struct route_node *rn;
-  struct rib *rib;
+  struct route_entry *re;
   struct nexthop *nexthop;
   int update;
 
@@ -2546,13 +2546,13 @@ mpls_ldp_ftn_uninstall_all (struct zebra_vrf *zvrf, int afi)
   for (rn = route_top (table); rn; rn = route_next (rn))
     {
       update = 0;
-      RNODE_FOREACH_RIB (rn, rib)
-       for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
+      RNODE_FOREACH_RE (rn, re)
+       for (nexthop = re->nexthop; nexthop; nexthop = nexthop->next)
          if (nexthop->nh_label_type == ZEBRA_LSP_LDP)
            {
              nexthop_del_labels (nexthop);
-             SET_FLAG (rib->status, RIB_ENTRY_CHANGED);
-             SET_FLAG (rib->status, RIB_ENTRY_NEXTHOPS_CHANGED);
+             SET_FLAG (re->status, ROUTE_ENTRY_CHANGED);
+             SET_FLAG (re->status, ROUTE_ENTRY_NEXTHOPS_CHANGED);
              update = 1;
            }
 
index 1f17de67a33b23b8ca769b59a346ea77d99fd5ac..047b4321363612d701da12255e2b2f99b994f160 100644 (file)
@@ -208,13 +208,13 @@ zebra_mpls_write_label_block_config (struct vty *vty, struct zebra_vrf *vrf);
  * Install dynamic LSP entry.
  */
 int
-zebra_mpls_lsp_install (struct zebra_vrf *zvrf, struct route_node *rn, struct rib *rib);
+zebra_mpls_lsp_install (struct zebra_vrf *zvrf, struct route_node *rn, struct route_entry *re);
 
 /*
  * Uninstall dynamic LSP entry, if any. 
  */
 int
-zebra_mpls_lsp_uninstall (struct zebra_vrf *zvrf, struct route_node *rn, struct rib *rib);
+zebra_mpls_lsp_uninstall (struct zebra_vrf *zvrf, struct route_node *rn, struct route_entry *re);
 
 /*
  * Registration from a client for the label binding for a FEC. If a binding
@@ -449,9 +449,9 @@ lsp_distance (enum lsp_types_t type)
  * are converted into LSPs.
  */
 static inline enum lsp_types_t
-lsp_type_from_rib_type (int rib_type)
+lsp_type_from_re_type (int re_type)
 {
-  switch (rib_type)
+  switch (re_type)
     {
       case ZEBRA_ROUTE_STATIC:
         return ZEBRA_LSP_STATIC;
index 5f457a6fc5d324909b48c4712584c56d7c788471..ca15d7eadce54802ba46bc2f82e16ba04c817e96 100644 (file)
@@ -184,10 +184,10 @@ zebra_check_addr (struct prefix *p)
 
 /* Add nexthop to the end of a rib node's nexthop list */
 void
-rib_nexthop_add (struct rib *rib, struct nexthop *nexthop)
+route_entry_nexthop_add (struct route_entry *re, struct nexthop *nexthop)
 {
-  nexthop_add(&rib->nexthop, nexthop);
-  rib->nexthop_num++;
+  nexthop_add(&re->nexthop, nexthop);
+  re->nexthop_num++;
 }
 
 
@@ -196,7 +196,7 @@ rib_nexthop_add (struct rib *rib, struct nexthop *nexthop)
  * copy_nexthop - copy a nexthop to the rib structure.
  */
 void
-rib_copy_nexthops (struct rib *rib, struct nexthop *nh)
+route_entry_copy_nexthops (struct route_entry *re, struct nexthop *nh)
 {
   struct nexthop *nexthop;
 
@@ -209,28 +209,28 @@ rib_copy_nexthops (struct rib *rib, struct nexthop *nh)
   if (nh->nh_label)
     nexthop_add_labels (nexthop, nh->nh_label_type, nh->nh_label->num_labels,
                         &nh->nh_label->label[0]);
-  rib_nexthop_add(rib, nexthop);
+  route_entry_nexthop_add(re, nexthop);
   if (CHECK_FLAG(nh->flags, NEXTHOP_FLAG_RECURSIVE))
     copy_nexthops(&nexthop->resolved, nh->resolved);
 }
 
 /* Delete specified nexthop from the list. */
 void
-rib_nexthop_delete (struct rib *rib, struct nexthop *nexthop)
+route_entry_nexthop_delete (struct route_entry *re, struct nexthop *nexthop)
 {
   if (nexthop->next)
     nexthop->next->prev = nexthop->prev;
   if (nexthop->prev)
     nexthop->prev->next = nexthop->next;
   else
-    rib->nexthop = nexthop->next;
-  rib->nexthop_num--;
+    re->nexthop = nexthop->next;
+  re->nexthop_num--;
 }
 
 
 
 struct nexthop *
-rib_nexthop_ifindex_add (struct rib *rib, ifindex_t ifindex)
+route_entry_nexthop_ifindex_add (struct route_entry *re, ifindex_t ifindex)
 {
   struct nexthop *nexthop;
 
@@ -238,13 +238,13 @@ rib_nexthop_ifindex_add (struct rib *rib, ifindex_t ifindex)
   nexthop->type = NEXTHOP_TYPE_IFINDEX;
   nexthop->ifindex = ifindex;
 
-  rib_nexthop_add (rib, nexthop);
+  route_entry_nexthop_add (re, nexthop);
 
   return nexthop;
 }
 
 struct nexthop *
-rib_nexthop_ipv4_add (struct rib *rib, struct in_addr *ipv4, struct in_addr *src)
+route_entry_nexthop_ipv4_add (struct route_entry *re, struct in_addr *ipv4, struct in_addr *src)
 {
   struct nexthop *nexthop;
 
@@ -254,13 +254,13 @@ rib_nexthop_ipv4_add (struct rib *rib, struct in_addr *ipv4, struct in_addr *src
   if (src)
     nexthop->src.ipv4 = *src;
 
-  rib_nexthop_add (rib, nexthop);
+  route_entry_nexthop_add (re, nexthop);
 
   return nexthop;
 }
 
 struct nexthop *
-rib_nexthop_ipv4_ifindex_add (struct rib *rib, struct in_addr *ipv4,
+route_entry_nexthop_ipv4_ifindex_add (struct route_entry *re, struct in_addr *ipv4,
                              struct in_addr *src, ifindex_t ifindex)
 {
   struct nexthop *nexthop;
@@ -280,13 +280,13 @@ rib_nexthop_ipv4_ifindex_add (struct rib *rib, struct in_addr *ipv4,
     SET_FLAG(nexthop->flags, NEXTHOP_FLAG_ONLINK);
    }
 
-  rib_nexthop_add (rib, nexthop);
+  route_entry_nexthop_add (re, nexthop);
 
   return nexthop;
 }
 
 struct nexthop *
-rib_nexthop_ipv6_add (struct rib *rib, struct in6_addr *ipv6)
+route_entry_nexthop_ipv6_add (struct route_entry *re, struct in6_addr *ipv6)
 {
   struct nexthop *nexthop;
 
@@ -294,13 +294,13 @@ rib_nexthop_ipv6_add (struct rib *rib, struct in6_addr *ipv6)
   nexthop->type = NEXTHOP_TYPE_IPV6;
   nexthop->gate.ipv6 = *ipv6;
 
-  rib_nexthop_add (rib, nexthop);
+  route_entry_nexthop_add (re, nexthop);
 
   return nexthop;
 }
 
 struct nexthop *
-rib_nexthop_ipv6_ifindex_add (struct rib *rib, struct in6_addr *ipv6,
+route_entry_nexthop_ipv6_ifindex_add (struct route_entry *re, struct in6_addr *ipv6,
                              ifindex_t ifindex)
 {
   struct nexthop *nexthop;
@@ -310,53 +310,35 @@ rib_nexthop_ipv6_ifindex_add (struct rib *rib, struct in6_addr *ipv6,
   nexthop->gate.ipv6 = *ipv6;
   nexthop->ifindex = ifindex;
 
-  rib_nexthop_add (rib, nexthop);
+  route_entry_nexthop_add (re, nexthop);
 
   return nexthop;
 }
 
 struct nexthop *
-rib_nexthop_blackhole_add (struct rib *rib)
+route_entry_nexthop_blackhole_add (struct route_entry *re)
 {
   struct nexthop *nexthop;
 
   nexthop = nexthop_new();
   nexthop->type = NEXTHOP_TYPE_BLACKHOLE;
-  SET_FLAG (rib->flags, ZEBRA_FLAG_BLACKHOLE);
+  SET_FLAG (re->flags, ZEBRA_FLAG_BLACKHOLE);
 
-  rib_nexthop_add (rib, nexthop);
+  route_entry_nexthop_add (re, nexthop);
 
   return nexthop;
 }
 
-/* This method checks whether a recursive nexthop has at
- * least one resolved nexthop in the fib.
- */
-int
-nexthop_has_fib_child(struct nexthop *nexthop)
-{
-  struct nexthop *nh;
-
-  if (! CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_RECURSIVE))
-    return 0;
-
-  for (nh = nexthop->resolved; nh; nh = nh->next)
-    if (CHECK_FLAG (nh->flags, NEXTHOP_FLAG_FIB))
-      return 1;
-
-  return 0;
-}
-
 /* If force flag is not set, do not modify falgs at all for uninstall
    the route from FIB. */
 static int
-nexthop_active (afi_t afi, struct rib *rib, struct nexthop *nexthop, int set,
+nexthop_active (afi_t afi, struct route_entry *re, struct nexthop *nexthop, int set,
                struct route_node *top)
 {
   struct prefix p;
   struct route_table *table;
   struct route_node *rn;
-  struct rib *match;
+  struct route_entry *match;
   int resolved;
   struct nexthop *newhop, *tnewhop;
   struct nexthop *resolved_hop;
@@ -369,10 +351,10 @@ nexthop_active (afi_t afi, struct rib *rib, struct nexthop *nexthop, int set,
   if (set)
     {
       UNSET_FLAG (nexthop->flags, NEXTHOP_FLAG_RECURSIVE);
-      zebra_deregister_rnh_static_nexthops(rib->vrf_id, nexthop->resolved, top);
+      zebra_deregister_rnh_static_nexthops(re->vrf_id, nexthop->resolved, top);
       nexthops_free(nexthop->resolved);
       nexthop->resolved = NULL;
-      rib->nexthop_mtu = 0;
+      re->nexthop_mtu = 0;
     }
 
   /* Skip nexthops that have been filtered out due to route-map */
@@ -419,7 +401,7 @@ nexthop_active (afi_t afi, struct rib *rib, struct nexthop *nexthop, int set,
       break;
     }
   /* Lookup table.  */
-  table = zebra_vrf_table (afi, SAFI_UNICAST, rib->vrf_id);
+  table = zebra_vrf_table (afi, SAFI_UNICAST, re->vrf_id);
   if (! table)
     return 0;
 
@@ -438,15 +420,15 @@ nexthop_active (afi_t afi, struct rib *rib, struct nexthop *nexthop, int set,
           !nh_resolve_via_default (p.family))
         return 0;
 
-      RNODE_FOREACH_RIB (rn, match)
+      RNODE_FOREACH_RE (rn, match)
        {
-         if (CHECK_FLAG (match->status, RIB_ENTRY_REMOVED))
+         if (CHECK_FLAG (match->status, ROUTE_ENTRY_REMOVED))
            continue;
 
           /* if the next hop is imported from another table, skip it */
           if (match->type == ZEBRA_ROUTE_TABLE)
             continue;
-         if (CHECK_FLAG (match->status, RIB_ENTRY_SELECTED_FIB))
+         if (CHECK_FLAG (match->status, ROUTE_ENTRY_SELECTED_FIB))
            break;
        }
 
@@ -480,7 +462,7 @@ nexthop_active (afi_t afi, struct rib *rib, struct nexthop *nexthop, int set,
                }
              return 1;
            }
-         else if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_INTERNAL))
+         else if (CHECK_FLAG (re->flags, ZEBRA_FLAG_INTERNAL))
            {
              resolved = 0;
              for (newhop = match->nexthop; newhop; newhop = newhop->next)
@@ -490,7 +472,7 @@ nexthop_active (afi_t afi, struct rib *rib, struct nexthop *nexthop, int set,
                    if (set)
                      {
                        SET_FLAG (nexthop->flags, NEXTHOP_FLAG_RECURSIVE);
-                       SET_FLAG(rib->status, RIB_ENTRY_NEXTHOPS_CHANGED);
+                       SET_FLAG(re->status, ROUTE_ENTRY_NEXTHOPS_CHANGED);
 
                        resolved_hop = nexthop_new();
                        SET_FLAG (resolved_hop->flags, NEXTHOP_FLAG_ACTIVE);
@@ -552,7 +534,7 @@ nexthop_active (afi_t afi, struct rib *rib, struct nexthop *nexthop, int set,
                  }
              return resolved;
            }
-         else if (rib->type == ZEBRA_ROUTE_STATIC)
+         else if (re->type == ZEBRA_ROUTE_STATIC)
            {
              resolved = 0;
              for (ALL_NEXTHOPS_RO(match->nexthop, newhop, tnewhop, recursing))
@@ -622,7 +604,7 @@ nexthop_active (afi_t afi, struct rib *rib, struct nexthop *nexthop, int set,
                    resolved = 1;
                  }
               if (resolved && set)
-                rib->nexthop_mtu = match->mtu;
+                re->nexthop_mtu = match->mtu;
              return resolved;
            }
          else
@@ -634,14 +616,14 @@ nexthop_active (afi_t afi, struct rib *rib, struct nexthop *nexthop, int set,
   return 0;
 }
 
-struct rib *
+struct route_entry *
 rib_match (afi_t afi, safi_t safi, vrf_id_t vrf_id,
           union g_addr *addr, struct route_node **rn_out)
 {
   struct prefix p;
   struct route_table *table;
   struct route_node *rn;
-  struct rib *match;
+  struct route_entry *match;
   struct nexthop *newhop, *tnewhop;
   int recursing;
 
@@ -670,11 +652,11 @@ rib_match (afi_t afi, safi_t safi, vrf_id_t vrf_id,
       route_unlock_node (rn);
       
       /* Pick up selected route. */
-      RNODE_FOREACH_RIB (rn, match)
+      RNODE_FOREACH_RE (rn, match)
        {
-         if (CHECK_FLAG (match->status, RIB_ENTRY_REMOVED))
+         if (CHECK_FLAG (match->status, ROUTE_ENTRY_REMOVED))
            continue;
-         if (CHECK_FLAG (match->status, RIB_ENTRY_SELECTED_FIB))
+         if (CHECK_FLAG (match->status, ROUTE_ENTRY_SELECTED_FIB))
            break;
        }
 
@@ -711,10 +693,10 @@ rib_match (afi_t afi, safi_t safi, vrf_id_t vrf_id,
   return NULL;
 }
 
-struct rib *
+struct route_entry *
 rib_match_ipv4_multicast (vrf_id_t vrf_id, struct in_addr addr, struct route_node **rn_out)
 {
-  struct rib *rib = NULL, *mrib = NULL, *urib = NULL;
+  struct route_entry *re = NULL, *mre = NULL, *ure = NULL;
   struct route_node *m_rn = NULL, *u_rn = NULL;
   union g_addr gaddr = { .ipv4 = addr };
 
@@ -726,34 +708,34 @@ rib_match_ipv4_multicast (vrf_id_t vrf_id, struct in_addr addr, struct route_nod
       return rib_match (AFI_IP, SAFI_UNICAST, vrf_id, &gaddr, rn_out);
     case MCAST_NO_CONFIG:
     case MCAST_MIX_MRIB_FIRST:
-      rib = mrib = rib_match (AFI_IP, SAFI_MULTICAST, vrf_id, &gaddr, &m_rn);
-      if (!mrib)
-       rib = urib = rib_match (AFI_IP, SAFI_UNICAST, vrf_id, &gaddr, &u_rn);
+      re = mre = rib_match (AFI_IP, SAFI_MULTICAST, vrf_id, &gaddr, &m_rn);
+      if (!mre)
+       re = ure = rib_match (AFI_IP, SAFI_UNICAST, vrf_id, &gaddr, &u_rn);
       break;
     case MCAST_MIX_DISTANCE:
-      mrib = rib_match (AFI_IP, SAFI_MULTICAST, vrf_id, &gaddr, &m_rn);
-      urib = rib_match (AFI_IP, SAFI_UNICAST, vrf_id, &gaddr, &u_rn);
-      if (mrib && urib)
-       rib = urib->distance < mrib->distance ? urib : mrib;
-      else if (mrib)
-       rib = mrib;
-      else if (urib)
-       rib = urib;
+      mre = rib_match (AFI_IP, SAFI_MULTICAST, vrf_id, &gaddr, &m_rn);
+      ure = rib_match (AFI_IP, SAFI_UNICAST, vrf_id, &gaddr, &u_rn);
+      if (mre && ure)
+       re = ure->distance < mre->distance ? ure : mre;
+      else if (mre)
+       re = mre;
+      else if (ure)
+       re = ure;
       break;
     case MCAST_MIX_PFXLEN:
-      mrib = rib_match (AFI_IP, SAFI_MULTICAST, vrf_id, &gaddr, &m_rn);
-      urib = rib_match (AFI_IP, SAFI_UNICAST, vrf_id, &gaddr, &u_rn);
-      if (mrib && urib)
-       rib = u_rn->p.prefixlen > m_rn->p.prefixlen ? urib : mrib;
-      else if (mrib)
-       rib = mrib;
-      else if (urib)
-       rib = urib;
+      mre = rib_match (AFI_IP, SAFI_MULTICAST, vrf_id, &gaddr, &m_rn);
+      ure = rib_match (AFI_IP, SAFI_UNICAST, vrf_id, &gaddr, &u_rn);
+      if (mre && ure)
+       re = u_rn->p.prefixlen > m_rn->p.prefixlen ? ure : mre;
+      else if (mre)
+       re = mre;
+      else if (ure)
+       re = ure;
       break;
   }
 
   if (rn_out)
-    *rn_out = (rib == mrib) ? m_rn : u_rn;
+    *rn_out = (re == mre) ? m_rn : u_rn;
 
   if (IS_ZEBRA_DEBUG_RIB)
     {
@@ -762,11 +744,11 @@ rib_match_ipv4_multicast (vrf_id_t vrf_id, struct in_addr addr, struct route_nod
 
       zlog_debug("%s: %s: found %s, using %s",
                 __func__, buf,
-                 mrib ? (urib ? "MRIB+URIB" : "MRIB") :
-                         urib ? "URIB" : "nothing",
-                rib == urib ? "URIB" : rib == mrib ? "MRIB" : "none");
+                 mre ? (ure ? "MRIB+URIB" : "MRIB") :
+                         ure ? "URIB" : "nothing",
+                re == ure ? "URIB" : re == mre ? "MRIB" : "none");
     }
-  return rib;
+  return re;
 }
 
 void
@@ -783,12 +765,12 @@ multicast_mode_ipv4_get (void)
   return ipv4_multicast_mode;
 }
 
-struct rib *
+struct route_entry *
 rib_lookup_ipv4 (struct prefix_ipv4 *p, vrf_id_t vrf_id)
 {
   struct route_table *table;
   struct route_node *rn;
-  struct rib *match;
+  struct route_entry *match;
   struct nexthop *nexthop, *tnexthop;
   int recursing;
 
@@ -806,11 +788,11 @@ rib_lookup_ipv4 (struct prefix_ipv4 *p, vrf_id_t vrf_id)
   /* Unlock node. */
   route_unlock_node (rn);
 
-  RNODE_FOREACH_RIB (rn, match)
+  RNODE_FOREACH_RE (rn, match)
     {
-      if (CHECK_FLAG (match->status, RIB_ENTRY_REMOVED))
+      if (CHECK_FLAG (match->status, ROUTE_ENTRY_REMOVED))
        continue;
-      if (CHECK_FLAG (match->status, RIB_ENTRY_SELECTED_FIB))
+      if (CHECK_FLAG (match->status, ROUTE_ENTRY_SELECTED_FIB))
        break;
     }
 
@@ -830,7 +812,7 @@ rib_lookup_ipv4 (struct prefix_ipv4 *p, vrf_id_t vrf_id)
 /*
  * This clone function, unlike its original rib_lookup_ipv4(), checks
  * if specified IPv4 route record (prefix/mask -> gate) exists in
- * the whole RIB and has RIB_ENTRY_SELECTED_FIB set.
+ * the whole RIB and has ROUTE_ENTRY_SELECTED_FIB set.
  *
  * Return values:
  * -1: error
@@ -845,7 +827,7 @@ rib_lookup_ipv4_route (struct prefix_ipv4 *p, union sockunion * qgate,
 {
   struct route_table *table;
   struct route_node *rn;
-  struct rib *match;
+  struct route_entry *match;
   struct nexthop *nexthop, *tnexthop;
   int recursing;
   int nexthops_active;
@@ -866,11 +848,11 @@ rib_lookup_ipv4_route (struct prefix_ipv4 *p, union sockunion * qgate,
   route_unlock_node (rn);
 
   /* Find out if a "selected" RR for the discovered RIB entry exists ever. */
-  RNODE_FOREACH_RIB (rn, match)
+  RNODE_FOREACH_RE (rn, match)
     {
-      if (CHECK_FLAG (match->status, RIB_ENTRY_REMOVED))
+      if (CHECK_FLAG (match->status, ROUTE_ENTRY_REMOVED))
        continue;
-      if (CHECK_FLAG (match->status, RIB_ENTRY_SELECTED_FIB))
+      if (CHECK_FLAG (match->status, ROUTE_ENTRY_SELECTED_FIB))
        break;
     }
 
@@ -919,7 +901,7 @@ rib_lookup_ipv4_route (struct prefix_ipv4 *p, union sockunion * qgate,
  */
 
 static unsigned
-nexthop_active_check (struct route_node *rn, struct rib *rib,
+nexthop_active_check (struct route_node *rn, struct route_entry *re,
                      struct nexthop *nexthop, int set)
 {
   struct interface *ifp;
@@ -938,7 +920,7 @@ nexthop_active_check (struct route_node *rn, struct rib *rib,
   switch (nexthop->type)
     {
     case NEXTHOP_TYPE_IFINDEX:
-      ifp = if_lookup_by_index (nexthop->ifindex, rib->vrf_id);
+      ifp = if_lookup_by_index (nexthop->ifindex, re->vrf_id);
       if (ifp && if_is_operative(ifp))
        SET_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE);
       else
@@ -947,14 +929,14 @@ nexthop_active_check (struct route_node *rn, struct rib *rib,
     case NEXTHOP_TYPE_IPV4:
     case NEXTHOP_TYPE_IPV4_IFINDEX:
       family = AFI_IP;
-      if (nexthop_active (AFI_IP, rib, nexthop, set, rn))
+      if (nexthop_active (AFI_IP, re, nexthop, set, rn))
        SET_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE);
       else
        UNSET_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE);
       break;
     case NEXTHOP_TYPE_IPV6:
       family = AFI_IP6;
-      if (nexthop_active (AFI_IP6, rib, nexthop, set, rn))
+      if (nexthop_active (AFI_IP6, re, nexthop, set, rn))
        SET_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE);
       else
        UNSET_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE);
@@ -965,7 +947,7 @@ nexthop_active_check (struct route_node *rn, struct rib *rib,
        family = AFI_IP6;
       if (IN6_IS_ADDR_LINKLOCAL (&nexthop->gate.ipv6))
        {
-         ifp = if_lookup_by_index (nexthop->ifindex, rib->vrf_id);
+         ifp = if_lookup_by_index (nexthop->ifindex, re->vrf_id);
          if (ifp && if_is_operative(ifp))
            SET_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE);
          else
@@ -973,7 +955,7 @@ nexthop_active_check (struct route_node *rn, struct rib *rib,
        }
       else
        {
-         if (nexthop_active (AFI_IP6, rib, nexthop, set, rn))
+         if (nexthop_active (AFI_IP6, re, nexthop, set, rn))
            SET_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE);
          else
            UNSET_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE);
@@ -990,7 +972,7 @@ nexthop_active_check (struct route_node *rn, struct rib *rib,
 
   /* XXX: What exactly do those checks do? Do we support
    * e.g. IPv4 routes with IPv6 nexthops or vice versa? */
-  if (RIB_SYSTEM_ROUTE(rib) ||
+  if (RIB_SYSTEM_ROUTE(re) ||
       (family == AFI_IP && p->family != AF_INET) ||
       (family == AFI_IP6 && p->family != AF_INET6))
     return CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE);
@@ -1012,16 +994,16 @@ nexthop_active_check (struct route_node *rn, struct rib *rib,
   memset(&nexthop->rmap_src.ipv6, 0, sizeof(union g_addr));
 
   /* It'll get set if required inside */
-  ret = zebra_route_map_check(family, rib->type, p, nexthop, rib->vrf_id,
-                              rib->tag);
+  ret = zebra_route_map_check(family, re->type, p, nexthop, re->vrf_id,
+                              re->tag);
   if (ret == RMAP_DENYMATCH)
     {
       if (IS_ZEBRA_DEBUG_RIB)
        {
          srcdest_rnode2str(rn, buf, sizeof(buf));
          zlog_debug("%u:%s: Filtering out with NH out %s due to route map",
-                    rib->vrf_id, buf,
-                    ifindex2ifname (nexthop->ifindex, rib->vrf_id));
+                    re->vrf_id, buf,
+                    ifindex2ifname (nexthop->ifindex, re->vrf_id));
        }
       UNSET_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE);
     }
@@ -1029,34 +1011,34 @@ nexthop_active_check (struct route_node *rn, struct rib *rib,
 }
 
 /* Iterate over all nexthops of the given RIB entry and refresh their
- * ACTIVE flag. rib->nexthop_active_num is updated accordingly. If any
- * nexthop is found to toggle the ACTIVE flag, the whole rib structure
- * is flagged with RIB_ENTRY_CHANGED. The 4th 'set' argument is
+ * ACTIVE flag. re->nexthop_active_num is updated accordingly. If any
+ * nexthop is found to toggle the ACTIVE flag, the whole re structure
+ * is flagged with ROUTE_ENTRY_CHANGED. The 4th 'set' argument is
  * transparently passed to nexthop_active_check().
  *
  * Return value is the new number of active nexthops.
  */
 
 static int
-nexthop_active_update (struct route_node *rn, struct rib *rib, int set)
+nexthop_active_update (struct route_node *rn, struct route_entry *re, int set)
 {
   struct nexthop *nexthop;
   union g_addr prev_src;
   unsigned int prev_active, new_active, old_num_nh;
   ifindex_t prev_index;
-  old_num_nh = rib->nexthop_active_num;
+  old_num_nh = re->nexthop_active_num;
 
-  rib->nexthop_active_num = 0;
-  UNSET_FLAG (rib->status, RIB_ENTRY_CHANGED);
+  re->nexthop_active_num = 0;
+  UNSET_FLAG (re->status, ROUTE_ENTRY_CHANGED);
 
-  for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
+  for (nexthop = re->nexthop; nexthop; nexthop = nexthop->next)
   {
     /* No protocol daemon provides src and so we're skipping tracking it */
     prev_src = nexthop->rmap_src;
     prev_active = CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE);
     prev_index = nexthop->ifindex;
-    if ((new_active = nexthop_active_check (rn, rib, nexthop, set)))
-      rib->nexthop_active_num++;
+    if ((new_active = nexthop_active_check (rn, re, nexthop, set)))
+      re->nexthop_active_num++;
     /* Don't allow src setting on IPv6 addr for now */
     if (prev_active != new_active ||
        prev_index != nexthop->ifindex ||
@@ -1067,20 +1049,20 @@ nexthop_active_update (struct route_node *rn, struct rib *rib, int set)
          nexthop->type < NEXTHOP_TYPE_BLACKHOLE) &&
         !(IPV6_ADDR_SAME (&prev_src.ipv6, &nexthop->rmap_src.ipv6))))
       {
-       SET_FLAG (rib->status, RIB_ENTRY_CHANGED);
-       SET_FLAG (rib->status, RIB_ENTRY_NEXTHOPS_CHANGED);
+       SET_FLAG (re->status, ROUTE_ENTRY_CHANGED);
+       SET_FLAG (re->status, ROUTE_ENTRY_NEXTHOPS_CHANGED);
       }
   }
 
-  if (old_num_nh != rib->nexthop_active_num)
-    SET_FLAG (rib->status, RIB_ENTRY_CHANGED);
+  if (old_num_nh != re->nexthop_active_num)
+    SET_FLAG (re->status, ROUTE_ENTRY_CHANGED);
 
-  if (CHECK_FLAG (rib->status, RIB_ENTRY_CHANGED))
+  if (CHECK_FLAG (re->status, ROUTE_ENTRY_CHANGED))
     {
-      SET_FLAG (rib->status, RIB_ENTRY_NEXTHOPS_CHANGED);
+      SET_FLAG (re->status, ROUTE_ENTRY_NEXTHOPS_CHANGED);
     }
 
-  return rib->nexthop_active_num;
+  return re->nexthop_active_num;
 }
 
 /*
@@ -1088,15 +1070,15 @@ nexthop_active_update (struct route_node *rn, struct rib *rib, int set)
  * (nexthops) must have a label.
  */
 int
-zebra_rib_labeled_unicast (struct rib *rib)
+zebra_rib_labeled_unicast (struct route_entry *re)
 {
   struct nexthop *nexthop = NULL, *tnexthop;
   int recursing;
 
-  if (rib->type != ZEBRA_ROUTE_BGP)
+  if (re->type != ZEBRA_ROUTE_BGP)
     return 0;
 
-  for (ALL_NEXTHOPS_RO(rib->nexthop, nexthop, tnexthop, recursing))
+  for (ALL_NEXTHOPS_RO(re->nexthop, nexthop, tnexthop, recursing))
     if (!nexthop->nh_label || !nexthop->nh_label->num_labels)
       return 0;
 
@@ -1107,20 +1089,20 @@ zebra_rib_labeled_unicast (struct rib *rib)
  * is only used for IPv4.
  */
 int
-rib_install_kernel (struct route_node *rn, struct rib *rib, struct rib *old)
+rib_install_kernel (struct route_node *rn, struct route_entry *re, struct route_entry *old)
 {
   int ret = 0;
   struct nexthop *nexthop, *tnexthop;
   rib_table_info_t *info = srcdest_rnode_table_info(rn);
   int recursing;
   struct prefix *p, *src_p;
-  struct zebra_vrf *zvrf = vrf_info_lookup (rib->vrf_id);
+  struct zebra_vrf *zvrf = vrf_info_lookup (re->vrf_id);
 
   srcdest_rnode_prefixes (rn, &p, &src_p);
 
   if (info->safi != SAFI_UNICAST)
     {
-      for (ALL_NEXTHOPS_RO(rib->nexthop, nexthop, tnexthop, recursing))
+      for (ALL_NEXTHOPS_RO(re->nexthop, nexthop, tnexthop, recursing))
         SET_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB);
       return ret;
     }
@@ -1130,13 +1112,13 @@ rib_install_kernel (struct route_node *rn, struct rib *rib, struct rib *old)
    * the kernel.
    */
   hook_call(rib_update, rn, "installing in kernel");
-  ret = kernel_route_rib (p, src_p, old, rib);
+  ret = kernel_route_rib (p, src_p, old, re);
   zvrf->installs++;
 
   /* If install succeeds, update FIB flag for nexthops. */
   if (!ret)
     {
-      for (ALL_NEXTHOPS_RO(rib->nexthop, nexthop, tnexthop, recursing))
+      for (ALL_NEXTHOPS_RO(re->nexthop, nexthop, tnexthop, recursing))
         {
           if (CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_RECURSIVE))
             continue;
@@ -1153,20 +1135,20 @@ rib_install_kernel (struct route_node *rn, struct rib *rib, struct rib *old)
 
 /* Uninstall the route from kernel. */
 int
-rib_uninstall_kernel (struct route_node *rn, struct rib *rib)
+rib_uninstall_kernel (struct route_node *rn, struct route_entry *re)
 {
   int ret = 0;
   struct nexthop *nexthop, *tnexthop;
   rib_table_info_t *info = srcdest_rnode_table_info(rn);
   int recursing;
   struct prefix *p, *src_p;
-  struct zebra_vrf *zvrf = vrf_info_lookup (rib->vrf_id);
+  struct zebra_vrf *zvrf = vrf_info_lookup (re->vrf_id);
 
   srcdest_rnode_prefixes (rn, &p, &src_p);
 
   if (info->safi != SAFI_UNICAST)
     {
-      for (ALL_NEXTHOPS_RO(rib->nexthop, nexthop, tnexthop, recursing))
+      for (ALL_NEXTHOPS_RO(re->nexthop, nexthop, tnexthop, recursing))
         SET_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB);
       return ret;
     }
@@ -1176,10 +1158,10 @@ rib_uninstall_kernel (struct route_node *rn, struct rib *rib)
    * the kernel.
    */
   hook_call(rib_update, rn, "uninstalling from kernel");
-  ret = kernel_route_rib (p, src_p, rib, NULL);
+  ret = kernel_route_rib (p, src_p, re, NULL);
   zvrf->removals++;
 
-  for (ALL_NEXTHOPS_RO(rib->nexthop, nexthop, tnexthop, recursing))
+  for (ALL_NEXTHOPS_RO(re->nexthop, nexthop, tnexthop, recursing))
     UNSET_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB);
 
   return ret;
@@ -1187,32 +1169,32 @@ rib_uninstall_kernel (struct route_node *rn, struct rib *rib)
 
 /* Uninstall the route from kernel. */
 static void
-rib_uninstall (struct route_node *rn, struct rib *rib)
+rib_uninstall (struct route_node *rn, struct route_entry *re)
 {
   rib_table_info_t *info = srcdest_rnode_table_info(rn);
 
-  if (CHECK_FLAG (rib->status, RIB_ENTRY_SELECTED_FIB))
+  if (CHECK_FLAG (re->status, ROUTE_ENTRY_SELECTED_FIB))
     {
       if (info->safi == SAFI_UNICAST)
         hook_call(rib_update, rn, "rib_uninstall");
 
-      if (! RIB_SYSTEM_ROUTE (rib))
-       rib_uninstall_kernel (rn, rib);
+      if (! RIB_SYSTEM_ROUTE (re))
+       rib_uninstall_kernel (rn, re);
 
       /* If labeled-unicast route, uninstall transit LSP. */
-      if (zebra_rib_labeled_unicast (rib))
-        zebra_mpls_lsp_uninstall (info->zvrf, rn, rib);
+      if (zebra_rib_labeled_unicast (re))
+        zebra_mpls_lsp_uninstall (info->zvrf, rn, re);
 
-       UNSET_FLAG (rib->status, RIB_ENTRY_SELECTED_FIB);
+       UNSET_FLAG (re->status, ROUTE_ENTRY_SELECTED_FIB);
     }
 
-  if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_SELECTED))
+  if (CHECK_FLAG (re->flags, ZEBRA_FLAG_SELECTED))
     {
       struct prefix *p, *src_p;
       srcdest_rnode_prefixes (rn, &p, &src_p);
 
-      redistribute_delete (p, src_p, rib);
-      UNSET_FLAG (rib->flags, ZEBRA_FLAG_SELECTED);
+      redistribute_delete (p, src_p, re);
+      UNSET_FLAG (re->flags, ZEBRA_FLAG_SELECTED);
     }
 }
 
@@ -1278,23 +1260,23 @@ rib_gc_dest (struct route_node *rn)
 
 static void
 rib_process_add_fib(struct zebra_vrf *zvrf, struct route_node *rn,
-                    struct rib *new)
+                    struct route_entry *new)
 {
   hook_call(rib_update, rn, "new route selected");
 
   /* Update real nexthop. This may actually determine if nexthop is active or not. */
   if (!nexthop_active_update (rn, new, 1))
     {
-      UNSET_FLAG(new->status, RIB_ENTRY_CHANGED);
+      UNSET_FLAG(new->status, ROUTE_ENTRY_CHANGED);
       return;
     }
 
-  SET_FLAG (new->status, RIB_ENTRY_SELECTED_FIB);
+  SET_FLAG (new->status, ROUTE_ENTRY_SELECTED_FIB);
   if (IS_ZEBRA_DEBUG_RIB)
     {
       char buf[SRCDEST2STR_BUFFER];
       srcdest_rnode2str(rn, buf, sizeof(buf));
-      zlog_debug ("%u:%s: Adding route rn %p, rib %p (type %d)",
+      zlog_debug ("%u:%s: Adding route rn %p, re %p (type %d)",
                    zvrf_id (zvrf), buf, rn, new, new->type);
     }
 
@@ -1313,12 +1295,12 @@ rib_process_add_fib(struct zebra_vrf *zvrf, struct route_node *rn,
         }
     }
 
-  UNSET_FLAG(new->status, RIB_ENTRY_CHANGED);
+  UNSET_FLAG(new->status, ROUTE_ENTRY_CHANGED);
 }
 
 static void
 rib_process_del_fib(struct zebra_vrf *zvrf, struct route_node *rn,
-                    struct rib *old)
+                    struct route_entry *old)
 {
   hook_call(rib_update, rn, "removing existing route");
 
@@ -1327,7 +1309,7 @@ rib_process_del_fib(struct zebra_vrf *zvrf, struct route_node *rn,
     {
       char buf[SRCDEST2STR_BUFFER];
       srcdest_rnode2str(rn, buf, sizeof(buf));
-      zlog_debug ("%u:%s: Deleting route rn %p, rib %p (type %d)",
+      zlog_debug ("%u:%s: Deleting route rn %p, re %p (type %d)",
                   zvrf_id (zvrf), buf, rn, old, old->type);
     }
 
@@ -1338,16 +1320,16 @@ rib_process_del_fib(struct zebra_vrf *zvrf, struct route_node *rn,
   if (!RIB_SYSTEM_ROUTE (old))
     rib_uninstall_kernel (rn, old);
 
-  UNSET_FLAG (old->status, RIB_ENTRY_SELECTED_FIB);
+  UNSET_FLAG (old->status, ROUTE_ENTRY_SELECTED_FIB);
 
   /* Update nexthop for route, reset changed flag. */
   nexthop_active_update (rn, old, 1);
-  UNSET_FLAG(old->status, RIB_ENTRY_CHANGED);
+  UNSET_FLAG(old->status, ROUTE_ENTRY_CHANGED);
 }
 
 static void
 rib_process_update_fib (struct zebra_vrf *zvrf, struct route_node *rn,
-                        struct rib *old, struct rib *new)
+                        struct route_entry *old, struct route_entry *new)
 {
   struct nexthop *nexthop = NULL, *tnexthop;
   int recursing;
@@ -1359,7 +1341,7 @@ rib_process_update_fib (struct zebra_vrf *zvrf, struct route_node *rn,
    * something has changed.
    */
   if (new != old ||
-      CHECK_FLAG (new->status, RIB_ENTRY_CHANGED))
+      CHECK_FLAG (new->status, ROUTE_ENTRY_CHANGED))
     {
       hook_call(rib_update, rn, "updating existing route");
 
@@ -1378,11 +1360,11 @@ rib_process_update_fib (struct zebra_vrf *zvrf, struct route_node *rn,
               char buf[SRCDEST2STR_BUFFER];
               srcdest_rnode2str(rn, buf, sizeof(buf));
               if (new != old)
-                zlog_debug ("%u:%s: Updating route rn %p, rib %p (type %d) "
+                zlog_debug ("%u:%s: Updating route rn %p, re %p (type %d) "
                             "old %p (type %d)", zvrf_id (zvrf), buf,
                             rn, new, new->type, old, old->type);
               else
-                zlog_debug ("%u:%s: Updating route rn %p, rib %p (type %d)",
+                zlog_debug ("%u:%s: Updating route rn %p, re %p (type %d)",
                             zvrf_id (zvrf), buf, rn, new, new->type);
             }
 
@@ -1423,7 +1405,7 @@ rib_process_update_fib (struct zebra_vrf *zvrf, struct route_node *rn,
 
           /* Update for redistribution. */
           if (installed)
-            SET_FLAG (new->status, RIB_ENTRY_SELECTED_FIB);
+            SET_FLAG (new->status, ROUTE_ENTRY_SELECTED_FIB);
         }
 
       /*
@@ -1437,12 +1419,12 @@ rib_process_update_fib (struct zebra_vrf *zvrf, struct route_node *rn,
               char buf[SRCDEST2STR_BUFFER];
               srcdest_rnode2str(rn, buf, sizeof(buf));
               if (new != old)
-                zlog_debug ("%u:%s: Deleting route rn %p, rib %p (type %d) "
+                zlog_debug ("%u:%s: Deleting route rn %p, re %p (type %d) "
                             "old %p (type %d) - %s", zvrf_id (zvrf), buf,
                             rn, new, new->type, old, old->type,
                             nh_active ? "install failed" : "nexthop inactive");
               else
-                zlog_debug ("%u:%s: Deleting route rn %p, rib %p (type %d) - %s",
+                zlog_debug ("%u:%s: Deleting route rn %p, re %p (type %d) - %s",
                             zvrf_id (zvrf), buf, rn, new, new->type,
                             nh_active ? "install failed" : "nexthop inactive");
             }
@@ -1453,7 +1435,7 @@ rib_process_update_fib (struct zebra_vrf *zvrf, struct route_node *rn,
 
           if (!RIB_SYSTEM_ROUTE (old))
             rib_uninstall_kernel (rn, old);
-          UNSET_FLAG (new->status, RIB_ENTRY_SELECTED_FIB);
+          UNSET_FLAG (new->status, ROUTE_ENTRY_SELECTED_FIB);
         }
     }
   else
@@ -1482,20 +1464,20 @@ rib_process_update_fib (struct zebra_vrf *zvrf, struct route_node *rn,
   /* Update prior route. */
   if (new != old)
     {
-      UNSET_FLAG (old->status, RIB_ENTRY_SELECTED_FIB);
+      UNSET_FLAG (old->status, ROUTE_ENTRY_SELECTED_FIB);
 
       /* Set real nexthop. */
       nexthop_active_update (rn, old, 1);
-      UNSET_FLAG(old->status, RIB_ENTRY_CHANGED);
+      UNSET_FLAG(old->status, ROUTE_ENTRY_CHANGED);
     }
 
   /* Clear changed flag. */
-  UNSET_FLAG(new->status, RIB_ENTRY_CHANGED);
+  UNSET_FLAG(new->status, ROUTE_ENTRY_CHANGED);
 }
 
 /* Check if 'alternate' RIB entry is better than 'current'. */
-static struct rib *
-rib_choose_best (struct rib *current, struct rib *alternate)
+static struct route_entry *
+rib_choose_best (struct route_entry *current, struct route_entry *alternate)
 {
   if (current == NULL)
     return alternate;
@@ -1539,13 +1521,13 @@ rib_choose_best (struct rib *current, struct rib *alternate)
 static void
 rib_process (struct route_node *rn)
 {
-  struct rib *rib;
-  struct rib *next;
-  struct rib *old_selected = NULL;
-  struct rib *new_selected = NULL;
-  struct rib *old_fib = NULL;
-  struct rib *new_fib = NULL;
-  struct rib *best = NULL;
+  struct route_entry *re;
+  struct route_entry *next;
+  struct route_entry *old_selected = NULL;
+  struct route_entry *new_selected = NULL;
+  struct route_entry *old_fib = NULL;
+  struct route_entry *new_fib = NULL;
+  struct route_entry *best = NULL;
   char buf[SRCDEST2STR_BUFFER];
   rib_dest_t *dest;
   struct zebra_vrf *zvrf = NULL;
@@ -1568,31 +1550,31 @@ rib_process (struct route_node *rn)
   if (IS_ZEBRA_DEBUG_RIB_DETAILED)
     zlog_debug ("%u:%s: Processing rn %p", vrf_id, buf, rn);
 
-  RNODE_FOREACH_RIB_SAFE (rn, rib, next)
+  RNODE_FOREACH_RE_SAFE (rn, re, next)
     {
       if (IS_ZEBRA_DEBUG_RIB_DETAILED)
-        zlog_debug ("%u:%s: Examine rib %p (type %d) status %x flags %x "
+        zlog_debug ("%u:%s: Examine re %p (type %d) status %x flags %x "
                     "dist %d metric %d",
-                    vrf_id, buf, rib, rib->type, rib->status,
-                    rib->flags, rib->distance, rib->metric);
+                    vrf_id, buf, re, re->type, re->status,
+                    re->flags, re->distance, re->metric);
 
-      UNSET_FLAG(rib->status, RIB_ENTRY_NEXTHOPS_CHANGED);
+      UNSET_FLAG(re->status, ROUTE_ENTRY_NEXTHOPS_CHANGED);
 
-      /* Currently selected rib. */
-      if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_SELECTED))
+      /* Currently selected re. */
+      if (CHECK_FLAG (re->flags, ZEBRA_FLAG_SELECTED))
         {
           assert (old_selected == NULL);
-          old_selected = rib;
+          old_selected = re;
         }
       /* Currently in fib */
-      if (CHECK_FLAG (rib->status, RIB_ENTRY_SELECTED_FIB))
+      if (CHECK_FLAG (re->status, ROUTE_ENTRY_SELECTED_FIB))
         {
           assert (old_fib == NULL);
-          old_fib = rib;
+          old_fib = re;
         }
 
       /* Skip deleted entries from selection */
-      if (CHECK_FLAG (rib->status, RIB_ENTRY_REMOVED))
+      if (CHECK_FLAG (re->status, ROUTE_ENTRY_REMOVED))
         continue;
 
       /* Skip unreachable nexthop. */
@@ -1606,68 +1588,68 @@ rib_process (struct route_node *rn)
        * the nexthop_active_update() code. Thus, we might miss changes to
        * recursive NHs.
        */
-      if (!CHECK_FLAG(rib->status, RIB_ENTRY_CHANGED) &&
-          ! nexthop_active_update (rn, rib, 0))
+      if (!CHECK_FLAG(re->status, ROUTE_ENTRY_CHANGED) &&
+          ! nexthop_active_update (rn, re, 0))
         {
-          if (rib->type == ZEBRA_ROUTE_TABLE)
+          if (re->type == ZEBRA_ROUTE_TABLE)
             {
               /* XXX: HERE BE DRAGONS!!!!!
               * In all honesty, I have not yet figured out what this part
-              * does or why the RIB_ENTRY_CHANGED test above is correct
+              * does or why the ROUTE_ENTRY_CHANGED test above is correct
               * or why we need to delete a route here, and also not whether
               * this concerns both selected and fib route, or only selected
               * or only fib */
               /* This entry was denied by the 'ip protocol table' route-map, we
                * need to delete it */
-             if (rib != old_selected)
+             if (re != old_selected)
                {
                  if (IS_ZEBRA_DEBUG_RIB)
                    zlog_debug ("%s: %s: imported via import-table but denied "
                                "by the ip protocol table route-map",
                                __func__, buf);
-                 rib_unlink (rn, rib);
+                 rib_unlink (rn, re);
                }
              else
-               SET_FLAG (rib->status, RIB_ENTRY_REMOVED);
+               SET_FLAG (re->status, ROUTE_ENTRY_REMOVED);
             }
 
           continue;
         }
 
       /* Infinite distance. */
-      if (rib->distance == DISTANCE_INFINITY)
+      if (re->distance == DISTANCE_INFINITY)
         {
-          UNSET_FLAG (rib->status, RIB_ENTRY_CHANGED);
+          UNSET_FLAG (re->status, ROUTE_ENTRY_CHANGED);
           continue;
         }
 
-      if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_FIB_OVERRIDE))
+      if (CHECK_FLAG (re->flags, ZEBRA_FLAG_FIB_OVERRIDE))
         {
-          best = rib_choose_best(new_fib, rib);
+          best = rib_choose_best(new_fib, re);
           if (new_fib && best != new_fib)
-            UNSET_FLAG (new_fib->status, RIB_ENTRY_CHANGED);
+            UNSET_FLAG (new_fib->status, ROUTE_ENTRY_CHANGED);
          new_fib = best;
         }
       else
         {
-          best = rib_choose_best(new_selected, rib);
+          best = rib_choose_best(new_selected, re);
           if (new_selected && best != new_selected)
-            UNSET_FLAG (new_selected->status, RIB_ENTRY_CHANGED);
+            UNSET_FLAG (new_selected->status, ROUTE_ENTRY_CHANGED);
           new_selected = best;
         }
-      if (best != rib)
-        UNSET_FLAG (rib->status, RIB_ENTRY_CHANGED);
-    } /* RNODE_FOREACH_RIB */
+      if (best != re)
+        UNSET_FLAG (re->status, ROUTE_ENTRY_CHANGED);
+    } /* RNODE_FOREACH_RE */
 
   /* If no FIB override route, use the selected route also for FIB */
   if (new_fib == NULL)
     new_fib = new_selected;
 
   /* After the cycle is finished, the following pointers will be set:
-   * old_selected --- RIB entry currently having SELECTED
-   * new_selected --- RIB entry that is newly SELECTED
-   * old_fib      --- RIB entry currently in kernel FIB
-   * new_fib      --- RIB entry that is newly to be in kernel FIB
+   * old_selected --- RE entry currently having SELECTED
+   * new_selected --- RE entry that is newly SELECTED
+   * old_fib      --- RE entry currently in kernel FIB
+   * new_fib      --- RE entry that is newly to be in kernel FIB
    *
    * new_selected will get SELECTED flag, and is going to be redistributed
    * the zclients. new_fib (which can be new_selected) will be installed in kernel.
@@ -1683,10 +1665,10 @@ rib_process (struct route_node *rn)
                 (void *)new_fib);
     }
 
-  /* Buffer RIB_ENTRY_CHANGED here, because it will get cleared if
+  /* Buffer ROUTE_ENTRY_CHANGED here, because it will get cleared if
    * fib == selected */
   bool selected_changed = new_selected && CHECK_FLAG(new_selected->status,
-                                                     RIB_ENTRY_CHANGED);
+                                                     ROUTE_ENTRY_CHANGED);
 
   /* Update fib according to selection results */
   if (new_fib && old_fib)
@@ -1718,7 +1700,7 @@ rib_process (struct route_node *rn)
       if (new_selected && new_selected != new_fib)
         {
           nexthop_active_update(rn, new_selected, 1);
-          UNSET_FLAG(new_selected->status, RIB_ENTRY_CHANGED);
+          UNSET_FLAG(new_selected->status, ROUTE_ENTRY_CHANGED);
         }
 
       if (old_selected)
@@ -1737,17 +1719,17 @@ rib_process (struct route_node *rn)
         }
     }
 
-  /* Remove all RIB entries queued for removal */
-  RNODE_FOREACH_RIB_SAFE (rn, rib, next)
+  /* Remove all RE entries queued for removal */
+  RNODE_FOREACH_RE_SAFE (rn, re, next)
     {
-      if (CHECK_FLAG (rib->status, RIB_ENTRY_REMOVED))
+      if (CHECK_FLAG (re->status, ROUTE_ENTRY_REMOVED))
         {
           if (IS_ZEBRA_DEBUG_RIB)
             {
-              rnode_debug (rn, vrf_id, "rn %p, removing rib %p",
-                           (void *)rn, (void *)rib);
+              rnode_debug (rn, vrf_id, "rn %p, removing re %p",
+                           (void *)rn, (void *)re);
             }
-          rib_unlink(rn, rib);
+          rib_unlink(rn, re);
         }
     }
 
@@ -1884,11 +1866,11 @@ static const u_char meta_queue_map[ZEBRA_ROUTE_MAX] = {
 static void
 rib_meta_queue_add (struct meta_queue *mq, struct route_node *rn)
 {
-  struct rib *rib;
+  struct route_entry *re;
 
-  RNODE_FOREACH_RIB (rn, rib)
+  RNODE_FOREACH_RE (rn, re)
     {
-      u_char qindex = meta_queue_map[rib->type];
+      u_char qindex = meta_queue_map[re->type];
       struct zebra_vrf *zvrf;
 
       /* Invariant: at this point we always have rn->info set. */
@@ -1896,7 +1878,7 @@ rib_meta_queue_add (struct meta_queue *mq, struct route_node *rn)
                      RIB_ROUTE_QUEUED (qindex)))
        {
          if (IS_ZEBRA_DEBUG_RIB_DETAILED)
-           rnode_debug (rn, rib->vrf_id,  "rn %p is already queued in sub-queue %u",
+           rnode_debug (rn, re->vrf_id,  "rn %p is already queued in sub-queue %u",
                         (void *)rn, qindex);
          continue;
        }
@@ -1907,10 +1889,10 @@ rib_meta_queue_add (struct meta_queue *mq, struct route_node *rn)
       mq->size++;
 
       if (IS_ZEBRA_DEBUG_RIB_DETAILED)
-       rnode_debug (rn, rib->vrf_id, "queued rn %p into sub-queue %u",
+       rnode_debug (rn, re->vrf_id, "queued rn %p into sub-queue %u",
                     (void *)rn, qindex);
 
-      zvrf = zebra_vrf_lookup_by_id (rib->vrf_id);
+      zvrf = zebra_vrf_lookup_by_id (re->vrf_id);
       if (zvrf)
           zvrf->flags |= ZEBRA_VRF_RIB_SCHEDULED;
     }
@@ -2019,22 +2001,22 @@ rib_queue_init (struct zebra_t *zebra)
  * The queue length is bounded by the maximal size of the routing table,
  * as a route_node will not be requeued, if already queued.
  *
- * RIBs are submitted via rib_addnode or rib_delnode which set minimal
- * state, or static_install_route (when an existing RIB is updated)
+ * REs are submitted via rib_addnode or rib_delnode which set minimal
+ * state, or static_install_route (when an existing RE is updated)
  * and then submit route_node to queue for best-path selection later.
- * Order of add/delete state changes are preserved for any given RIB.
+ * Order of add/delete state changes are preserved for any given RE.
  *
- * Deleted RIBs are reaped during best-path selection.
+ * Deleted REs are reaped during best-path selection.
  *
  * rib_addnode
- * |-> rib_link or unset RIB_ENTRY_REMOVE        |->Update kernel with
- *       |-------->|                             |  best RIB, if required
+ * |-> rib_link or unset ROUTE_ENTRY_REMOVE      |->Update kernel with
+ *       |-------->|                             |  best RE, if required
  *                 |                             |
  * static_install->|->rib_addqueue...... -> rib_process
  *                 |                             |
  *       |-------->|                             |-> rib_unlink
- * |-> set RIB_ENTRY_REMOVE                           |
- * rib_delnode                                  (RIB freed)
+ *       |-> set ROUTE_ENTRY_REMOVE              |
+ * rib_delnode                                  (RE freed)
  *
  * The 'info' pointer of a route_node points to a rib_dest_t
  * ('dest'). Queueing state for a route_node is kept on the dest. The
@@ -2051,22 +2033,22 @@ rib_queue_init (struct zebra_t *zebra)
  *
  */
  
-/* Add RIB to head of the route node. */
+/* Add RE to head of the route node. */
 static void
-rib_link (struct route_node *rn, struct rib *rib, int process)
+rib_link (struct route_node *rn, struct route_entry *re, int process)
 {
-  struct rib *head;
+  struct route_entry *head;
   rib_dest_t *dest;
   afi_t afi;
   const char *rmap_name;
 
-  assert (rib && rn);
+  assert (re && rn);
   
   dest = rib_dest_from_rnode (rn);
   if (!dest)
     {
       if (IS_ZEBRA_DEBUG_RIB_DETAILED)
-        rnode_debug (rn, rib->vrf_id, "rn %p adding dest", rn);
+        rnode_debug (rn, re->vrf_id, "rn %p adding dest", rn);
 
       dest = XCALLOC (MTYPE_RIB_DEST, sizeof (rib_dest_t));
       route_lock_node (rn); /* rn route table reference */
@@ -2077,17 +2059,17 @@ rib_link (struct route_node *rn, struct rib *rib, int process)
   head = dest->routes;
   if (head)
     {
-      head->prev = rib;
+      head->prev = re;
     }
-  rib->next = head;
-  dest->routes = rib;
+  re->next = head;
+  dest->routes = re;
 
   afi = (rn->p.family == AF_INET) ? AFI_IP :
     (rn->p.family == AF_INET6) ? AFI_IP6 : AFI_MAX;
-  if (is_zebra_import_table_enabled (afi, rib->table))
+  if (is_zebra_import_table_enabled (afi, re->table))
     {
-      rmap_name = zebra_get_import_table_route_map (afi, rib->table);
-      zebra_add_import_table_entry(rn, rib, rmap_name);
+      rmap_name = zebra_get_import_table_route_map (afi, re->table);
+      zebra_add_import_table_entry(rn, re, rmap_name);
     }
   else
     if (process)
@@ -2095,20 +2077,20 @@ rib_link (struct route_node *rn, struct rib *rib, int process)
 }
 
 void
-rib_addnode (struct route_node *rn, struct rib *rib, int process)
+rib_addnode (struct route_node *rn, struct route_entry *re, int process)
 {
-  /* RIB node has been un-removed before route-node is processed. 
-   * route_node must hence already be on the queue for processing.. 
+  /* RE node has been un-removed before route-node is processed.
+   * route_node must hence already be on the queue for processing..
    */
-  if (CHECK_FLAG (rib->status, RIB_ENTRY_REMOVED))
+  if (CHECK_FLAG (re->status, ROUTE_ENTRY_REMOVED))
     {
       if (IS_ZEBRA_DEBUG_RIB)
-         rnode_debug (rn, rib->vrf_id, "rn %p, un-removed rib %p", (void *)rn, (void *)rib);
+         rnode_debug (rn, re->vrf_id, "rn %p, un-removed re %p", (void *)rn, (void *)re);
 
-      UNSET_FLAG (rib->status, RIB_ENTRY_REMOVED);
+      UNSET_FLAG (re->status, ROUTE_ENTRY_REMOVED);
       return;
     }
-  rib_link (rn, rib, process);
+  rib_link (rn, re, process);
 }
 
 /*
@@ -2121,58 +2103,58 @@ rib_addnode (struct route_node *rn, struct rib *rib, int process)
  * longer required to be deleted.
  */
 void
-rib_unlink (struct route_node *rn, struct rib *rib)
+rib_unlink (struct route_node *rn, struct route_entry *re)
 {
   rib_dest_t *dest;
 
-  assert (rn && rib);
+  assert (rn && re);
 
   if (IS_ZEBRA_DEBUG_RIB)
-         rnode_debug (rn, rib->vrf_id, "rn %p, rib %p", (void *)rn, (void *)rib);
+         rnode_debug (rn, re->vrf_id, "rn %p, re %p", (void *)rn, (void *)re);
 
   dest = rib_dest_from_rnode (rn);
 
-  if (rib->next)
-    rib->next->prev = rib->prev;
+  if (re->next)
+    re->next->prev = re->prev;
 
-  if (rib->prev)
-    rib->prev->next = rib->next;
+  if (re->prev)
+    re->prev->next = re->next;
   else
     {
-      dest->routes = rib->next;
+      dest->routes = re->next;
     }
 
-  /* free RIB and nexthops */
-  zebra_deregister_rnh_static_nexthops (rib->vrf_id, rib->nexthop, rn);
-  nexthops_free(rib->nexthop);
-  XFREE (MTYPE_RIB, rib);
+  /* free RE and nexthops */
+  zebra_deregister_rnh_static_nexthops (re->vrf_id, re->nexthop, rn);
+  nexthops_free(re->nexthop);
+  XFREE (MTYPE_RE, re);
 
 }
 
 void
-rib_delnode (struct route_node *rn, struct rib *rib)
+rib_delnode (struct route_node *rn, struct route_entry *re)
 {
   afi_t afi;
 
   if (IS_ZEBRA_DEBUG_RIB)
-    rnode_debug (rn, rib->vrf_id, "rn %p, rib %p, removing", (void *)rn, (void *)rib);
-  SET_FLAG (rib->status, RIB_ENTRY_REMOVED);
+    rnode_debug (rn, re->vrf_id, "rn %p, re %p, removing", (void *)rn, (void *)re);
+  SET_FLAG (re->status, ROUTE_ENTRY_REMOVED);
 
   afi = (rn->p.family == AF_INET) ? AFI_IP :
           (rn->p.family == AF_INET6) ? AFI_IP6 : AFI_MAX;
-  if (is_zebra_import_table_enabled (afi, rib->table))
+  if (is_zebra_import_table_enabled (afi, re->table))
     {
-      zebra_del_import_table_entry(rn, rib);
+      zebra_del_import_table_entry(rn, re);
       /* Just clean up if non main table */
       if (IS_ZEBRA_DEBUG_RIB)
         {
           char buf[SRCDEST2STR_BUFFER];
           srcdest_rnode2str(rn, buf, sizeof(buf));
-          zlog_debug ("%u:%s: Freeing route rn %p, rib %p (type %d)",
-                      rib->vrf_id, buf, rn, rib, rib->type);
+          zlog_debug ("%u:%s: Freeing route rn %p, re %p (type %d)",
+                      re->vrf_id, buf, rn, re, re->type);
         }
 
-      rib_unlink(rn, rib);
+      rib_unlink(rn, re);
     }
   else
     {
@@ -2180,15 +2162,15 @@ rib_delnode (struct route_node *rn, struct rib *rib)
     }
 }
 
-/* This function dumps the contents of a given RIB entry into
+/* This function dumps the contents of a given RE entry into
  * standard debug log. Calling function name and IP prefix in
  * question are passed as 1st and 2nd arguments.
  */
 
-void _rib_dump (const char * func,
-                union prefixconstptr pp,
-                union prefixconstptr src_pp,
-                const struct rib * rib)
+void _route_entry_dump (const char * func,
+                        union prefixconstptr pp,
+                        union prefixconstptr src_pp,
+                        const struct route_entry * re)
 {
   const struct prefix *p = pp.p;
   const struct prefix *src_p = src_pp.p;
@@ -2198,40 +2180,40 @@ void _rib_dump (const char * func,
   struct nexthop *nexthop, *tnexthop;
   int recursing;
 
-  zlog_debug ("%s: dumping RIB entry %p for %s%s%s vrf %u", func, (const void *)rib,
+  zlog_debug ("%s: dumping RE entry %p for %s%s%s vrf %u", func, (const void *)re,
               prefix2str(pp, straddr, sizeof(straddr)),
               is_srcdst ? " from " : "",
               is_srcdst ? prefix2str(src_pp, srcaddr, sizeof(srcaddr)) : "",
-              rib->vrf_id);
+              re->vrf_id);
   zlog_debug
   (
     "%s: refcnt == %lu, uptime == %lu, type == %u, instance == %d, table == %d",
     func,
-    rib->refcnt,
-    (unsigned long) rib->uptime,
-    rib->type,
-    rib->instance,
-    rib->table
+    re->refcnt,
+    (unsigned long) re->uptime,
+    re->type,
+    re->instance,
+    re->table
   );
   zlog_debug
   (
     "%s: metric == %u, mtu == %u, distance == %u, flags == %u, status == %u",
     func,
-    rib->metric,
-    rib->mtu,
-    rib->distance,
-    rib->flags,
-    rib->status
+    re->metric,
+    re->mtu,
+    re->distance,
+    re->flags,
+    re->status
   );
   zlog_debug
   (
     "%s: nexthop_num == %u, nexthop_active_num == %u",
     func,
-    rib->nexthop_num,
-    rib->nexthop_active_num
+    re->nexthop_num,
+    re->nexthop_active_num
   );
 
-  for (ALL_NEXTHOPS_RO(rib->nexthop, nexthop, tnexthop, recursing))
+  for (ALL_NEXTHOPS_RO(re->nexthop, nexthop, tnexthop, recursing))
     {
       inet_ntop (p->family, &nexthop->gate, straddr, INET6_ADDRSTRLEN);
       zlog_debug
@@ -2249,14 +2231,14 @@ void _rib_dump (const char * func,
 }
 
 /* This is an exported helper to rtm_read() to dump the strange
- * RIB entry found by rib_lookup_ipv4_route()
+ * RE entry found by rib_lookup_ipv4_route()
  */
 
 void rib_lookup_and_dump (struct prefix_ipv4 * p, vrf_id_t vrf_id)
 {
   struct route_table *table;
   struct route_node *rn;
-  struct rib *rib;
+  struct route_entry *re;
   char prefix_buf[INET_ADDRSTRLEN];
 
   /* Lookup table.  */
@@ -2267,7 +2249,7 @@ void rib_lookup_and_dump (struct prefix_ipv4 * p, vrf_id_t vrf_id)
     return;
   }
 
-  /* Scan the RIB table for exactly matching RIB entry. */
+  /* Scan the RIB table for exactly matching RE entry. */
   rn = route_node_lookup (table, (struct prefix *) p);
 
   /* No route for this prefix. */
@@ -2282,31 +2264,31 @@ void rib_lookup_and_dump (struct prefix_ipv4 * p, vrf_id_t vrf_id)
   route_unlock_node (rn);
 
   /* let's go */
-  RNODE_FOREACH_RIB (rn, rib)
+  RNODE_FOREACH_RE (rn, re)
   {
     zlog_debug
     (
-      "%s: rn %p, rib %p: %s, %s",
+      "%s: rn %p, re %p: %s, %s",
       __func__,
       (void *)rn,
-      (void *)rib,
-      (CHECK_FLAG (rib->status, RIB_ENTRY_REMOVED) ? "removed" : "NOT removed"),
-      (CHECK_FLAG (rib->flags, ZEBRA_FLAG_SELECTED) ? "selected" : "NOT selected")
+      (void *)re,
+      (CHECK_FLAG (re->status, ROUTE_ENTRY_REMOVED) ? "removed" : "NOT removed"),
+      (CHECK_FLAG (re->flags, ZEBRA_FLAG_SELECTED) ? "selected" : "NOT selected")
     );
-    rib_dump (p, NULL, rib);
+    route_entry_dump (p, NULL, re);
   }
 }
 
 /* Check if requested address assignment will fail due to another
  * route being installed by zebra in FIB already. Take necessary
  * actions, if needed: remove such a route from FIB and deSELECT
- * corresponding RIB entry. Then put affected RN into RIBQ head.
+ * corresponding RE entry. Then put affected RN into RIBQ head.
  */
 void rib_lookup_and_pushup (struct prefix_ipv4 * p, vrf_id_t vrf_id)
 {
   struct route_table *table;
   struct route_node *rn;
-  struct rib *rib;
+  struct route_entry *re;
   unsigned changed = 0;
 
   if (NULL == (table = zebra_vrf_table (AFI_IP, SAFI_UNICAST, vrf_id)))
@@ -2322,27 +2304,27 @@ void rib_lookup_and_pushup (struct prefix_ipv4 * p, vrf_id_t vrf_id)
   /* Unlock node. */
   route_unlock_node (rn);
 
-  /* Check all RIB entries. In case any changes have to be done, requeue
+  /* Check all RE entries. In case any changes have to be done, requeue
    * the RN into RIBQ head. If the routing message about the new connected
    * route (generated by the IP address we are going to assign very soon)
-   * comes before the RIBQ is processed, the new RIB entry will join
+   * comes before the RIBQ is processed, the new RE entry will join
    * RIBQ record already on head. This is necessary for proper revalidation
-   * of the rest of the RIB.
+   * of the rest of the RE.
    */
-  RNODE_FOREACH_RIB (rn, rib)
+  RNODE_FOREACH_RE (rn, re)
   {
-    if (CHECK_FLAG (rib->status, RIB_ENTRY_SELECTED_FIB) &&
-      ! RIB_SYSTEM_ROUTE (rib))
+    if (CHECK_FLAG (re->status, ROUTE_ENTRY_SELECTED_FIB) &&
+      ! RIB_SYSTEM_ROUTE (re))
     {
       changed = 1;
       if (IS_ZEBRA_DEBUG_RIB)
       {
         char buf[PREFIX_STRLEN];
         zlog_debug ("%u:%s: freeing way for connected prefix",
-                    rib->vrf_id, prefix2str(&rn->p, buf, sizeof(buf)));
-        rib_dump (&rn->p, NULL, rib);
+                    re->vrf_id, prefix2str(&rn->p, buf, sizeof(buf)));
+        route_entry_dump (&rn->p, NULL, re);
       }
-      rib_uninstall (rn, rib);
+      rib_uninstall (rn, re);
     }
   }
   if (changed)
@@ -2351,16 +2333,16 @@ void rib_lookup_and_pushup (struct prefix_ipv4 * p, vrf_id_t vrf_id)
 
 int
 rib_add_multipath (afi_t afi, safi_t safi, struct prefix *p,
-                  struct prefix_ipv6 *src_p, struct rib *rib)
+                  struct prefix_ipv6 *src_p, struct route_entry *re)
 {
   struct route_table *table;
   struct route_node *rn;
-  struct rib *same;
+  struct route_entry *same;
   struct nexthop *nexthop;
   int ret = 0;
   int family;
 
-  if (!rib)
+  if (!re)
     return 0;
 
   if (p->family == AF_INET)
@@ -2371,7 +2353,7 @@ rib_add_multipath (afi_t afi, safi_t safi, struct prefix *p,
   assert(!src_p || family == AFI_IP6);
 
   /* Lookup table.  */
-  table = zebra_vrf_table_with_table_id (family, safi, rib->vrf_id, rib->table);
+  table = zebra_vrf_table_with_table_id (family, safi, re->vrf_id, re->table);
   if (! table)
     return 0;
 
@@ -2381,14 +2363,14 @@ rib_add_multipath (afi_t afi, safi_t safi, struct prefix *p,
     apply_mask_ipv6 (src_p);
 
   /* Set default distance by route type. */
-  if (rib->distance == 0)
+  if (re->distance == 0)
     {
-      rib->distance = route_info[rib->type].distance;
+      re->distance = route_info[re->type].distance;
 
       /* iBGP distance is 200. */
-      if (rib->type == ZEBRA_ROUTE_BGP 
-         && CHECK_FLAG (rib->flags, ZEBRA_FLAG_IBGP))
-       rib->distance = 200;
+      if (re->type == ZEBRA_ROUTE_BGP
+         && CHECK_FLAG (re->flags, ZEBRA_FLAG_IBGP))
+       re->distance = 200;
     }
 
   /* Lookup route node.*/
@@ -2396,32 +2378,32 @@ rib_add_multipath (afi_t afi, safi_t safi, struct prefix *p,
 
   /* If same type of route are installed, treat it as a implicit
      withdraw. */
-  RNODE_FOREACH_RIB (rn, same)
+  RNODE_FOREACH_RE (rn, same)
     {
-      if (CHECK_FLAG (same->status, RIB_ENTRY_REMOVED))
+      if (CHECK_FLAG (same->status, ROUTE_ENTRY_REMOVED))
         continue;
       
-      if (same->type == rib->type && same->instance == rib->instance
-          && same->table == rib->table
+      if (same->type == re->type && same->instance == re->instance
+          && same->table == re->table
          && same->type != ZEBRA_ROUTE_CONNECT)
         break;
     }
   
   /* If this route is kernel route, set FIB flag to the route. */
-  if (rib->type == ZEBRA_ROUTE_KERNEL || rib->type == ZEBRA_ROUTE_CONNECT)
-    for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
+  if (re->type == ZEBRA_ROUTE_KERNEL || re->type == ZEBRA_ROUTE_CONNECT)
+    for (nexthop = re->nexthop; nexthop; nexthop = nexthop->next)
       SET_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB);
 
-  /* Link new rib to node.*/
+  /* Link new re to node.*/
   if (IS_ZEBRA_DEBUG_RIB)
     {
-      rnode_debug(rn, rib->vrf_id, "Inserting route rn %p, rib %p (type %d) existing %p",
-                  (void *)rn, (void *)rib, rib->type, (void *)same);
+      rnode_debug(rn, re->vrf_id, "Inserting route rn %p, re %p (type %d) existing %p",
+                  (void *)rn, (void *)re, re->type, (void *)same);
 
       if (IS_ZEBRA_DEBUG_RIB_DETAILED)
-        rib_dump (p, src_p, rib);
+        route_entry_dump (p, src_p, re);
     }
-  rib_addnode (rn, rib, 1);
+  rib_addnode (rn, re, 1);
   ret = 1;
 
   /* Free implicit route.*/
@@ -2442,9 +2424,9 @@ rib_delete (afi_t afi, safi_t safi, vrf_id_t vrf_id, int type, u_short instance,
 {
   struct route_table *table;
   struct route_node *rn;
-  struct rib *rib;
-  struct rib *fib = NULL;
-  struct rib *same = NULL;
+  struct route_entry *re;
+  struct route_entry *fib = NULL;
+  struct route_entry *same = NULL;
   struct nexthop *nexthop, *tnexthop;
   int recursing;
   char buf2[INET6_ADDRSTRLEN];
@@ -2482,31 +2464,31 @@ rib_delete (afi_t afi, safi_t safi, vrf_id_t vrf_id, int type, u_short instance,
     }
 
   /* Lookup same type route. */
-  RNODE_FOREACH_RIB (rn, rib)
+  RNODE_FOREACH_RE (rn, re)
     {
-      if (CHECK_FLAG (rib->status, RIB_ENTRY_REMOVED))
+      if (CHECK_FLAG (re->status, ROUTE_ENTRY_REMOVED))
         continue;
 
-      if (CHECK_FLAG (rib->status, RIB_ENTRY_SELECTED_FIB))
-       fib = rib;
+      if (CHECK_FLAG (re->status, ROUTE_ENTRY_SELECTED_FIB))
+       fib = re;
 
-      if (rib->type != type)
+      if (re->type != type)
        continue;
-      if (rib->instance != instance)
+      if (re->instance != instance)
        continue;
-      if (rib->type == ZEBRA_ROUTE_CONNECT && (nexthop = rib->nexthop) &&
+      if (re->type == ZEBRA_ROUTE_CONNECT && (nexthop = re->nexthop) &&
          nexthop->type == NEXTHOP_TYPE_IFINDEX)
        {
          if (nexthop->ifindex != ifindex)
            continue;
-         if (rib->refcnt)
+         if (re->refcnt)
            {
-             rib->refcnt--;
+             re->refcnt--;
              route_unlock_node (rn);
              route_unlock_node (rn);
              return;
            }
-         same = rib;
+         same = re;
          break;
        }
       /* Make sure that the route found has the same gateway. */
@@ -2514,14 +2496,14 @@ rib_delete (afi_t afi, safi_t safi, vrf_id_t vrf_id, int type, u_short instance,
         {
           if (gate == NULL)
             {
-              same = rib;
+              same = re;
               break;
             }
-          for (ALL_NEXTHOPS_RO(rib->nexthop, nexthop, tnexthop, recursing))
+          for (ALL_NEXTHOPS_RO(re->nexthop, nexthop, tnexthop, recursing))
             if (IPV4_ADDR_SAME (&nexthop->gate.ipv4, gate) ||
                IPV6_ADDR_SAME (&nexthop->gate.ipv6, gate))
               {
-                same = rib;
+                same = re;
                 break;
               }
           if (same)
@@ -2537,7 +2519,7 @@ rib_delete (afi_t afi, safi_t safi, vrf_id_t vrf_id, int type, u_short instance,
         {
           if (IS_ZEBRA_DEBUG_RIB)
             {
-              rnode_debug (rn, vrf_id, "rn %p, rib %p (type %d) was deleted from kernel, adding",
+              rnode_debug (rn, vrf_id, "rn %p, re %p (type %d) was deleted from kernel, adding",
                            rn, fib, fib->type);
             }
          if (allow_delete)
@@ -2546,7 +2528,7 @@ rib_delete (afi_t afi, safi_t safi, vrf_id_t vrf_id, int type, u_short instance,
              for (nexthop = fib->nexthop; nexthop; nexthop = nexthop->next)
                UNSET_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB);
 
-             UNSET_FLAG (fib->status, RIB_ENTRY_SELECTED_FIB);
+             UNSET_FLAG (fib->status, ROUTE_ENTRY_SELECTED_FIB);
            }
          else
            {
@@ -2592,8 +2574,8 @@ rib_add (afi_t afi, safi_t safi, vrf_id_t vrf_id, int type,
         u_int32_t table_id, u_int32_t metric, u_int32_t mtu,
         u_char distance)
 {
-  struct rib *rib;
-  struct rib *same = NULL;
+  struct route_entry *re;
+  struct route_entry *same = NULL;
   struct route_table *table;
   struct route_node *rn;
   struct nexthop *nexthop;
@@ -2628,44 +2610,44 @@ rib_add (afi_t afi, safi_t safi, vrf_id_t vrf_id, int type,
 
   /* If same type of route are installed, treat it as a implicit
      withdraw. */
-  RNODE_FOREACH_RIB (rn, rib)
+  RNODE_FOREACH_RE (rn, re)
     {
-      if (CHECK_FLAG (rib->status, RIB_ENTRY_REMOVED))
+      if (CHECK_FLAG (re->status, ROUTE_ENTRY_REMOVED))
         continue;
 
-      if (rib->type != type)
+      if (re->type != type)
        continue;
-      if (rib->instance != instance)
+      if (re->instance != instance)
        continue;
-      if (rib->type != ZEBRA_ROUTE_CONNECT)
+      if (re->type != ZEBRA_ROUTE_CONNECT)
        {
-         same = rib;
+         same = re;
          break;
        }
       /* Duplicate connected route comes in. */
-      else if ((nexthop = rib->nexthop) &&
+      else if ((nexthop = re->nexthop) &&
               nexthop->type == NEXTHOP_TYPE_IFINDEX &&
               nexthop->ifindex == ifindex &&
-              !CHECK_FLAG (rib->status, RIB_ENTRY_REMOVED))
+              !CHECK_FLAG (re->status, ROUTE_ENTRY_REMOVED))
        {
-         rib->refcnt++;
+         re->refcnt++;
          return 0 ;
        }
     }
 
-  /* Allocate new rib structure. */
-  rib = XCALLOC (MTYPE_RIB, sizeof (struct rib));
+  /* Allocate new re structure. */
+  re = XCALLOC (MTYPE_RE, sizeof (struct route_entry));
   
-  rib->type = type;
-  rib->instance = instance;
-  rib->distance = distance;
-  rib->flags = flags;
-  rib->metric = metric;
-  rib->mtu = mtu;
-  rib->table = table_id;
-  rib->vrf_id = vrf_id;
-  rib->nexthop_num = 0;
-  rib->uptime = time (NULL);
+  re->type = type;
+  re->instance = instance;
+  re->distance = distance;
+  re->flags = flags;
+  re->metric = metric;
+  re->mtu = mtu;
+  re->table = table_id;
+  re->vrf_id = vrf_id;
+  re->nexthop_num = 0;
+  re->uptime = time (NULL);
 
   /* Nexthop settings. */
   if (gate)
@@ -2673,36 +2655,36 @@ rib_add (afi_t afi, safi_t safi, vrf_id_t vrf_id, int type,
       if (afi == AFI_IP6)
        {
          if (ifindex)
-           rib_nexthop_ipv6_ifindex_add (rib, &gate->ipv6, ifindex);
+           route_entry_nexthop_ipv6_ifindex_add (re, &gate->ipv6, ifindex);
          else
-           rib_nexthop_ipv6_add (rib, &gate->ipv6);
+           route_entry_nexthop_ipv6_add (re, &gate->ipv6);
        }
       else
        {
          if (ifindex)
-           rib_nexthop_ipv4_ifindex_add (rib, &gate->ipv4, &src->ipv4, ifindex);
+           route_entry_nexthop_ipv4_ifindex_add (re, &gate->ipv4, &src->ipv4, ifindex);
          else
-           rib_nexthop_ipv4_add (rib, &gate->ipv4, &src->ipv4);
+           route_entry_nexthop_ipv4_add (re, &gate->ipv4, &src->ipv4);
        }
     }
   else
-    rib_nexthop_ifindex_add (rib, ifindex);
+    route_entry_nexthop_ifindex_add (re, ifindex);
 
   /* If this route is kernel route, set FIB flag to the route. */
   if (type == ZEBRA_ROUTE_KERNEL || type == ZEBRA_ROUTE_CONNECT)
-    for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
+    for (nexthop = re->nexthop; nexthop; nexthop = nexthop->next)
       SET_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB);
 
   /* Link new rib to node.*/
   if (IS_ZEBRA_DEBUG_RIB)
     {
-      rnode_debug (rn, vrf_id, "Inserting route rn %p, rib %p (type %d) existing %p",
-                   (void *)rn, (void *)rib, rib->type, (void *)same);
+      rnode_debug (rn, vrf_id, "Inserting route rn %p, re %p (type %d) existing %p",
+                   (void *)rn, (void *)re, re->type, (void *)same);
 
       if (IS_ZEBRA_DEBUG_RIB_DETAILED)
-        rib_dump (p, src_p, rib);
+        route_entry_dump (p, src_p, re);
     }
-  rib_addnode (rn, rib, 1);
+  rib_addnode (rn, re, 1);
 
   /* Free implicit route.*/
   if (same)
@@ -2717,7 +2699,7 @@ static void
 rib_update_table (struct route_table *table, rib_update_event_t event)
 {
   struct route_node *rn;
-  struct rib *rib, *next;
+  struct route_entry *re, *next;
 
   /* Walk all routes and queue for processing, if appropriate for
    * the trigger event.
@@ -2733,16 +2715,16 @@ rib_update_table (struct route_table *table, rib_update_event_t event)
            * triggered upon an interface event as connected routes always
            * get queued for processing.
            */
-          RNODE_FOREACH_RIB_SAFE (rn, rib, next)
+          RNODE_FOREACH_RE_SAFE (rn, re, next)
             {
-              if (rib->type == ZEBRA_ROUTE_OSPF ||
-                  rib->type == ZEBRA_ROUTE_OSPF6 ||
-                  rib->type == ZEBRA_ROUTE_BGP)
+              if (re->type == ZEBRA_ROUTE_OSPF ||
+                  re->type == ZEBRA_ROUTE_OSPF6 ||
+                  re->type == ZEBRA_ROUTE_BGP)
                 continue; /* protocol will handle. */
-              else if (rib->type == ZEBRA_ROUTE_STATIC)
+              else if (re->type == ZEBRA_ROUTE_STATIC)
                 {
                   struct nexthop *nh;
-                  for (nh = rib->nexthop; nh; nh = nh->next)
+                  for (nh = re->nexthop; nh; nh = nh->next)
                     if (!(nh->type == NEXTHOP_TYPE_IPV4 ||
                         nh->type == NEXTHOP_TYPE_IPV6))
                       break;
@@ -2794,19 +2776,19 @@ static void
 rib_weed_table (struct route_table *table)
 {
   struct route_node *rn;
-  struct rib *rib;
-  struct rib *next;
+  struct route_entry *re;
+  struct route_entry *next;
 
   if (table)
     for (rn = route_top (table); rn; rn = srcdest_route_next (rn))
-      RNODE_FOREACH_RIB_SAFE (rn, rib, next)
+      RNODE_FOREACH_RE_SAFE (rn, re, next)
        {
-         if (CHECK_FLAG (rib->status, RIB_ENTRY_REMOVED))
+         if (CHECK_FLAG (re->status, ROUTE_ENTRY_REMOVED))
            continue;
 
-         if (rib->table != zebrad.rtm_table_default &&
-             rib->table != RT_TABLE_MAIN)
-            rib_delnode (rn, rib);
+         if (re->table != zebrad.rtm_table_default &&
+             re->table != RT_TABLE_MAIN)
+            rib_delnode (rn, re);
        }
 }
 
@@ -2830,23 +2812,23 @@ static void
 rib_sweep_table (struct route_table *table)
 {
   struct route_node *rn;
-  struct rib *rib;
-  struct rib *next;
+  struct route_entry *re;
+  struct route_entry *next;
   int ret = 0;
 
   if (table)
     for (rn = route_top (table); rn; rn = srcdest_route_next (rn))
-      RNODE_FOREACH_RIB_SAFE (rn, rib, next)
+      RNODE_FOREACH_RE_SAFE (rn, re, next)
        {
-         if (CHECK_FLAG (rib->status, RIB_ENTRY_REMOVED))
+         if (CHECK_FLAG (re->status, ROUTE_ENTRY_REMOVED))
            continue;
 
-         if (rib->type == ZEBRA_ROUTE_KERNEL && 
-             CHECK_FLAG (rib->flags, ZEBRA_FLAG_SELFROUTE))
+         if (re->type == ZEBRA_ROUTE_KERNEL &&
+             CHECK_FLAG (re->flags, ZEBRA_FLAG_SELFROUTE))
            {
-             ret = rib_uninstall_kernel (rn, rib);
+             ret = rib_uninstall_kernel (rn, re);
              if (! ret)
-                rib_delnode (rn, rib);
+                rib_delnode (rn, re);
            }
        }
 }
@@ -2871,19 +2853,19 @@ static unsigned long
 rib_score_proto_table (u_char proto, u_short instance, struct route_table *table)
 {
   struct route_node *rn;
-  struct rib *rib;
-  struct rib *next;
+  struct route_entry *re;
+  struct route_entry *next;
   unsigned long n = 0;
 
   if (table)
     for (rn = route_top (table); rn; rn = srcdest_route_next (rn))
-      RNODE_FOREACH_RIB_SAFE (rn, rib, next)
+      RNODE_FOREACH_RE_SAFE (rn, re, next)
         {
-          if (CHECK_FLAG (rib->status, RIB_ENTRY_REMOVED))
+          if (CHECK_FLAG (re->status, ROUTE_ENTRY_REMOVED))
             continue;
-          if (rib->type == proto && rib->instance == instance)
+          if (re->type == proto && re->instance == instance)
             {
-              rib_delnode (rn, rib);
+              rib_delnode (rn, re);
               n++;
             }
         }
@@ -2912,20 +2894,20 @@ rib_close_table (struct route_table *table)
 {
   struct route_node *rn;
   rib_table_info_t *info = table->info;
-  struct rib *rib;
+  struct route_entry *re;
 
   if (table)
     for (rn = route_top (table); rn; rn = srcdest_route_next (rn))
-      RNODE_FOREACH_RIB (rn, rib)
+      RNODE_FOREACH_RE (rn, re)
         {
-          if (!CHECK_FLAG (rib->status, RIB_ENTRY_SELECTED_FIB))
+          if (!CHECK_FLAG (re->status, ROUTE_ENTRY_SELECTED_FIB))
            continue;
 
           if (info->safi == SAFI_UNICAST)
             hook_call(rib_update, rn, NULL);
 
-         if (! RIB_SYSTEM_ROUTE (rib))
-           rib_uninstall_kernel (rn, rib);
+         if (! RIB_SYSTEM_ROUTE (re))
+           rib_uninstall_kernel (rn, re);
         }
 }
 
index 16c157e3073deea9722824591e8195db8f11c4c7..66b1cc78ca6e57d1a44bf847aca19ad518ef93a3 100644 (file)
@@ -48,8 +48,8 @@
 #include "zebra/interface.h"
 #include "zebra/zebra_memory.h"
 
-static void free_state(vrf_id_t vrf_id, struct rib *rib, struct route_node *rn);
-static void copy_state(struct rnh *rnh, struct rib *rib,
+static void free_state(vrf_id_t vrf_id, struct route_entry *re, struct route_node *rn);
+static void copy_state(struct rnh *rnh, struct route_entry *re,
                       struct route_node *rn);
 #define lookup_rnh_table(v, f)                  \
 ({                                              \
@@ -61,7 +61,7 @@ static void copy_state(struct rnh *rnh, struct rib *rib,
   t;                                             \
 })
 
-static int compare_state(struct rib *r1, struct rib *r2);
+static int compare_state(struct route_entry *r1, struct route_entry *r2);
 static int send_client(struct rnh *rnh, struct zserv *client, rnh_type_t type,
                        vrf_id_t vrf_id);
 static void print_rnh(struct route_node *rn, struct vty *vty);
@@ -305,7 +305,7 @@ zebra_deregister_rnh_static_nexthops (vrf_id_t vrf_id, struct nexthop *nexthop,
  */
 static int
 zebra_rnh_apply_nht_rmap(int family, struct route_node *prn,
-                         struct rib *rib, int proto)
+                         struct route_entry *re, int proto)
 {
   int at_least_one = 0;
   int rmap_family;            /* Route map has diff AF family enum */
@@ -314,11 +314,11 @@ zebra_rnh_apply_nht_rmap(int family, struct route_node *prn,
 
   rmap_family = (family == AF_INET) ? AFI_IP : AFI_IP6;
 
-  if (prn && rib)
+  if (prn && re)
     {
-      for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
+      for (nexthop = re->nexthop; nexthop; nexthop = nexthop->next)
        {
-         ret = zebra_nht_route_map_check(rmap_family, proto, &prn->p, rib,
+         ret = zebra_nht_route_map_check(rmap_family, proto, &prn->p, re,
                                          nexthop);
          if (ret != RMAP_DENYMATCH)
            {
@@ -335,17 +335,17 @@ zebra_rnh_apply_nht_rmap(int family, struct route_node *prn,
 }
 
 /*
- * Determine appropriate route (RIB entry) resolving a tracked entry
+ * Determine appropriate route (RE entry) resolving a tracked entry
  * (nexthop or BGP route for import).
  */
-static struct rib *
+static struct route_entry *
 zebra_rnh_resolve_entry (vrf_id_t vrfid, int family, rnh_type_t type,
                          struct route_node *nrn, struct rnh *rnh,
                          struct route_node **prn)
 {
   struct route_table *route_table;
   struct route_node *rn;
-  struct rib *rib;
+  struct route_entry *re;
 
   *prn = NULL;
 
@@ -363,29 +363,29 @@ zebra_rnh_resolve_entry (vrf_id_t vrfid, int family, rnh_type_t type,
   if ((type == RNH_NEXTHOP_TYPE) &&
       (is_default_prefix (&rn->p) &&
       !nh_resolve_via_default(rn->p.family)))
-    rib = NULL;
+    re = NULL;
  else if ((type == RNH_IMPORT_CHECK_TYPE) &&
           CHECK_FLAG(rnh->flags, ZEBRA_NHT_EXACT_MATCH) &&
           !prefix_same(&nrn->p, &rn->p))
-   rib = NULL;
+   re = NULL;
   else
     {
       /* Identify appropriate route entry. */
-      RNODE_FOREACH_RIB(rn, rib)
+      RNODE_FOREACH_RE(rn, re)
         {
-          if (CHECK_FLAG (rib->status, RIB_ENTRY_REMOVED))
+          if (CHECK_FLAG (re->status, ROUTE_ENTRY_REMOVED))
             continue;
-          if (! CHECK_FLAG (rib->status, RIB_ENTRY_SELECTED_FIB))
+          if (! CHECK_FLAG (re->status, ROUTE_ENTRY_SELECTED_FIB))
             continue;
 
           if (CHECK_FLAG(rnh->flags, ZEBRA_NHT_CONNECTED))
             {
-              if (rib->type == ZEBRA_ROUTE_CONNECT)
+              if (re->type == ZEBRA_ROUTE_CONNECT)
                 break;
-              if (rib->type == ZEBRA_ROUTE_NHRP)
+              if (re->type == ZEBRA_ROUTE_NHRP)
                 {
                   struct nexthop *nexthop;
-                  for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
+                  for (nexthop = re->nexthop; nexthop; nexthop = nexthop->next)
                     if (nexthop->type == NEXTHOP_TYPE_IFINDEX)
                       break;
                   if (nexthop)
@@ -393,7 +393,7 @@ zebra_rnh_resolve_entry (vrf_id_t vrfid, int family, rnh_type_t type,
                 }
             }
           else if ((type == RNH_IMPORT_CHECK_TYPE) &&
-                   (rib->type == ZEBRA_ROUTE_BGP))
+                   (re->type == ZEBRA_ROUTE_BGP))
             continue;
           else
             break;
@@ -402,9 +402,9 @@ zebra_rnh_resolve_entry (vrf_id_t vrfid, int family, rnh_type_t type,
 
   /* Need to unlock route node */
   route_unlock_node(rn);
-  if (rib)
+  if (re)
     *prn = rn;
-  return rib;
+  return re;
 }
 
 /*
@@ -414,7 +414,7 @@ zebra_rnh_resolve_entry (vrf_id_t vrfid, int family, rnh_type_t type,
 static void
 zebra_rnh_eval_import_check_entry (vrf_id_t vrfid, int family, int force,
                                    struct route_node *nrn, struct rnh *rnh,
-                                   struct rib *rib)
+                                   struct route_entry *re)
 {
   int state_changed = 0;
   struct zserv *client;
@@ -423,20 +423,20 @@ zebra_rnh_eval_import_check_entry (vrf_id_t vrfid, int family, int force,
   struct nexthop *nexthop, *tnexthop;
   int recursing;
 
-  if (rib && (rnh->state == NULL))
+  if (re && (rnh->state == NULL))
     {
-      for (ALL_NEXTHOPS_RO(rib->nexthop, nexthop, tnexthop, recursing))
+      for (ALL_NEXTHOPS_RO(re->nexthop, nexthop, tnexthop, recursing))
         if (CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB))
           {
             state_changed = 1;
             break;
           }
     }
-  else if (!rib && (rnh->state != NULL))
+  else if (!re && (rnh->state != NULL))
     state_changed = 1;
 
-  if (compare_state(rib, rnh->state))
-    copy_state(rnh, rib, nrn);
+  if (compare_state(re, rnh->state))
+    copy_state(rnh, re, nrn);
 
   if (state_changed || force)
     {
@@ -461,7 +461,7 @@ zebra_rnh_eval_import_check_entry (vrf_id_t vrfid, int family, int force,
 static void
 zebra_rnh_notify_protocol_clients (vrf_id_t vrfid, int family,
                                    struct route_node *nrn, struct rnh *rnh,
-                                   struct route_node *prn, struct rib *rib)
+                                   struct route_node *prn, struct route_entry *re)
 {
   struct listnode *node;
   struct zserv *client;
@@ -472,7 +472,7 @@ zebra_rnh_notify_protocol_clients (vrf_id_t vrfid, int family,
   if (IS_ZEBRA_DEBUG_NHT)
     {
       prefix2str(&nrn->p, bufn, INET6_ADDRSTRLEN);
-      if (prn && rib)
+      if (prn && re)
         {
           prefix2str(&prn->p, bufp, INET6_ADDRSTRLEN);
           zlog_debug("%u:%s: NH resolved over route %s", vrfid, bufn, bufp);
@@ -483,12 +483,12 @@ zebra_rnh_notify_protocol_clients (vrf_id_t vrfid, int family,
 
   for (ALL_LIST_ELEMENTS_RO(rnh->client_list, node, client))
     {
-      if (prn && rib)
+      if (prn && re)
         {
           /* Apply route-map for this client to route resolving this
            * nexthop to see if it is filtered or not.
            */
-          num_resolving_nh = zebra_rnh_apply_nht_rmap(family, prn, rib,
+          num_resolving_nh = zebra_rnh_apply_nht_rmap(family, prn, re,
                                                       client->proto);
           if (num_resolving_nh)
             rnh->filtered[client->proto] = 0;
@@ -515,12 +515,12 @@ zebra_rnh_notify_protocol_clients (vrf_id_t vrfid, int family,
 static void
 zebra_rnh_process_static_routes (vrf_id_t vrfid, int family,
                                  struct route_node *nrn, struct rnh *rnh,
-                                 struct route_node *prn, struct rib *rib)
+                                 struct route_node *prn, struct route_entry *re)
 {
   struct listnode *node;
   int num_resolving_nh = 0;
   struct route_node *static_rn;
-  struct rib *srib;
+  struct route_entry *sre;
   struct nexthop *nexthop;
   char bufn[INET6_ADDRSTRLEN];
   char bufp[INET6_ADDRSTRLEN];
@@ -533,12 +533,12 @@ zebra_rnh_process_static_routes (vrf_id_t vrfid, int family,
         prefix2str(&prn->p, bufp, INET6_ADDRSTRLEN);
     }
 
-  if (prn && rib)
+  if (prn && re)
     {
       /* Apply route-map for "static" to route resolving this
        * nexthop to see if it is filtered or not.
        */
-      num_resolving_nh = zebra_rnh_apply_nht_rmap(family, prn, rib,
+      num_resolving_nh = zebra_rnh_apply_nht_rmap(family, prn, re,
                                                   ZEBRA_ROUTE_STATIC);
       if (num_resolving_nh)
         rnh->filtered[ZEBRA_ROUTE_STATIC] = 0;
@@ -552,15 +552,15 @@ zebra_rnh_process_static_routes (vrf_id_t vrfid, int family,
   for (ALL_LIST_ELEMENTS_RO(rnh->zebra_static_route_list, node,
                             static_rn))
     {
-      RNODE_FOREACH_RIB(static_rn, srib)
+      RNODE_FOREACH_RE(static_rn, sre)
         {
-          if (srib->type != ZEBRA_ROUTE_STATIC)
+          if (sre->type != ZEBRA_ROUTE_STATIC)
             continue;
 
          /* Set the filter flag for the correct nexthop - static route may
           * be having multiple. We care here only about registered nexthops.
           */
-         for (nexthop = srib->nexthop; nexthop; nexthop = nexthop->next)
+         for (nexthop = sre->nexthop; nexthop; nexthop = nexthop->next)
            {
              switch (nexthop->type)
                {
@@ -593,7 +593,7 @@ zebra_rnh_process_static_routes (vrf_id_t vrfid, int family,
          if (IS_ZEBRA_DEBUG_NHT)
            {
              prefix2str(&static_rn->p, bufs, INET6_ADDRSTRLEN);
-             if (prn && rib)
+             if (prn && re)
                zlog_debug("%u:%s: NH change %s, scheduling static route %s",
                           vrfid, bufn, num_resolving_nh ?
                           "" : "(filtered by route-map)", bufs);
@@ -602,8 +602,8 @@ zebra_rnh_process_static_routes (vrf_id_t vrfid, int family,
                           vrfid, bufn, bufs);
            }
 
-          SET_FLAG(srib->status, RIB_ENTRY_CHANGED);
-          SET_FLAG(srib->status, RIB_ENTRY_NEXTHOPS_CHANGED);
+          SET_FLAG(sre->status, ROUTE_ENTRY_CHANGED);
+          SET_FLAG(sre->status, ROUTE_ENTRY_NEXTHOPS_CHANGED);
         }
 
       rib_queue_add(static_rn);
@@ -618,7 +618,7 @@ zebra_rnh_process_static_routes (vrf_id_t vrfid, int family,
 static void
 zebra_rnh_eval_nexthop_entry (vrf_id_t vrfid, int family, int force,
                               struct route_node *nrn, struct rnh *rnh,
-                              struct route_node *prn, struct rib *rib)
+                              struct route_node *prn, struct route_entry *re)
 {
   int state_changed = 0;
 
@@ -633,12 +633,12 @@ zebra_rnh_eval_nexthop_entry (vrf_id_t vrfid, int family, int force,
       else
         memset(&rnh->resolved_route, 0, sizeof(struct prefix));
 
-      copy_state(rnh, rib, nrn);
+      copy_state(rnh, re, nrn);
       state_changed = 1;
     }
-  else if (compare_state(rib, rnh->state))
+  else if (compare_state(re, rnh->state))
     {
-      copy_state(rnh, rib, nrn);
+      copy_state(rnh, re, nrn);
       state_changed = 1;
     }
 
@@ -663,7 +663,7 @@ zebra_rnh_evaluate_entry (vrf_id_t vrfid, int family, int force, rnh_type_t type
                           struct route_node *nrn)
 {
   struct rnh *rnh;
-  struct rib *rib;
+  struct route_entry *re;
   struct route_node *prn;
   char bufn[INET6_ADDRSTRLEN];
 
@@ -676,31 +676,31 @@ zebra_rnh_evaluate_entry (vrf_id_t vrfid, int family, int force, rnh_type_t type
 
   rnh = nrn->info;
 
-  /* Identify route entry (RIB) resolving this tracked entry. */
-  rib = zebra_rnh_resolve_entry (vrfid, family, type, nrn, rnh, &prn);
+  /* Identify route entry (RE) resolving this tracked entry. */
+  re = zebra_rnh_resolve_entry (vrfid, family, type, nrn, rnh, &prn);
 
   /* If the entry cannot be resolved and that is also the existing state,
    * there is nothing further to do.
    */
-  if (!rib && rnh->state == NULL && !force)
+  if (!re && rnh->state == NULL && !force)
     return;
 
   /* Process based on type of entry. */
   if (type == RNH_IMPORT_CHECK_TYPE)
     zebra_rnh_eval_import_check_entry (vrfid, family, force,
-                                       nrn, rnh, rib);
+                                       nrn, rnh, re);
   else
     zebra_rnh_eval_nexthop_entry (vrfid, family, force,
-                                  nrn, rnh, prn, rib);
+                                  nrn, rnh, prn, re);
 }
 
 /*
- * Clear the RIB_ENTRY_NEXTHOPS_CHANGED flag
- * from the rib entries.
+ * Clear the ROUTE_ENTRY_NEXTHOPS_CHANGED flag
+ * from the re entries.
  *
  * Please note we are doing this *after* we have
  * notified the world about each nexthop as that
- * we can have a situation where one rib entry
+ * we can have a situation where one re entry
  * covers multiple nexthops we are interested in.
  */
 static void
@@ -708,15 +708,15 @@ zebra_rnh_clear_nhc_flag (vrf_id_t vrfid, int family, rnh_type_t type,
                           struct route_node *nrn)
 {
   struct rnh *rnh;
-  struct rib *rib;
+  struct route_entry *re;
   struct route_node *prn;
 
   rnh = nrn->info;
 
-  rib = zebra_rnh_resolve_entry (vrfid, family, type, nrn, rnh, &prn);
+  re = zebra_rnh_resolve_entry (vrfid, family, type, nrn, rnh, &prn);
 
-  if (rib)
-    UNSET_FLAG (rib->status, RIB_ENTRY_NEXTHOPS_CHANGED);
+  if (re)
+    UNSET_FLAG (re->status, ROUTE_ENTRY_NEXTHOPS_CHANGED);
 }
 
 /* Evaluate all tracked entries (nexthops or routes for import into BGP)
@@ -812,25 +812,25 @@ zebra_cleanup_rnh_client (vrf_id_t vrf_id, int family, struct zserv *client,
 }
 
 /**
- * free_state - free up the rib structure associated with the rnh.
+ * free_state - free up the re structure associated with the rnh.
  */
 static void
-free_state (vrf_id_t vrf_id, struct rib *rib, struct route_node *rn)
+free_state (vrf_id_t vrf_id, struct route_entry *re, struct route_node *rn)
 {
 
-  if (!rib)
+  if (!re)
     return;
 
-  /* free RIB and nexthops */
-  zebra_deregister_rnh_static_nexthops (vrf_id, rib->nexthop, rn);
-  nexthops_free(rib->nexthop);
-  XFREE (MTYPE_RIB, rib);
+  /* free RE and nexthops */
+  zebra_deregister_rnh_static_nexthops (vrf_id, re->nexthop, rn);
+  nexthops_free(re->nexthop);
+  XFREE (MTYPE_RE, re);
 }
 
 static void
-copy_state (struct rnh *rnh, struct rib *rib, struct route_node *rn)
+copy_state (struct rnh *rnh, struct route_entry *re, struct route_node *rn)
 {
-  struct rib *state;
+  struct route_entry *state;
   struct nexthop *nh;
 
   if (rnh->state)
@@ -839,20 +839,20 @@ copy_state (struct rnh *rnh, struct rib *rib, struct route_node *rn)
       rnh->state = NULL;
     }
 
-  if (!rib)
+  if (!re)
     return;
 
-  state = XCALLOC (MTYPE_RIB, sizeof (struct rib));
-  state->type = rib->type;
-  state->metric = rib->metric;
+  state = XCALLOC (MTYPE_RE, sizeof (struct route_entry));
+  state->type = re->type;
+  state->metric = re->metric;
 
-  for (nh = rib->nexthop; nh; nh = nh->next)
-    rib_copy_nexthops(state, nh);
+  for (nh = re->nexthop; nh; nh = nh->next)
+    route_entry_copy_nexthops(state, nh);
   rnh->state = state;
 }
 
 static int
-compare_state (struct rib *r1, struct rib *r2)
+compare_state (struct route_entry *r1, struct route_entry *r2)
 {
 
   if (!r1 && !r2)
@@ -867,7 +867,7 @@ compare_state (struct rib *r1, struct rib *r2)
   if (r1->nexthop_num != r2->nexthop_num)
       return 1;
 
-  if (CHECK_FLAG(r1->status, RIB_ENTRY_NEXTHOPS_CHANGED))
+  if (CHECK_FLAG(r1->status, ROUTE_ENTRY_NEXTHOPS_CHANGED))
     return 1;
 
   return 0;
@@ -877,7 +877,7 @@ static int
 send_client (struct rnh *rnh, struct zserv *client, rnh_type_t type, vrf_id_t vrf_id)
 {
   struct stream *s;
-  struct rib *rib;
+  struct route_entry *re;
   unsigned long nump;
   u_char num;
   struct nexthop *nexthop;
@@ -886,7 +886,7 @@ send_client (struct rnh *rnh, struct zserv *client, rnh_type_t type, vrf_id_t vr
     ? ZEBRA_IMPORT_CHECK_UPDATE : ZEBRA_NEXTHOP_UPDATE;
 
   rn = rnh->node;
-  rib = rnh->state;
+  re = rnh->state;
 
   /* Get output stream. */
   s = client->obuf;
@@ -910,14 +910,14 @@ send_client (struct rnh *rnh, struct zserv *client, rnh_type_t type, vrf_id_t vr
               __FUNCTION__, rn->p.family);
       break;
     }
-  if (rib)
+  if (re)
     {
-      stream_putc (s, rib->distance);
-      stream_putl (s, rib->metric);
+      stream_putc (s, re->distance);
+      stream_putl (s, re->metric);
       num = 0;
       nump = stream_get_endp(s);
       stream_putc (s, 0);
-      for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
+      for (nexthop = re->nexthop; nexthop; nexthop = nexthop->next)
        if ((CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB) ||
              CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_RECURSIVE)) &&
            CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE))
index a75674d0cb5bd9f73fbc4a61ee1024d86f80bceb..d26b7be25039a58599a45609a5e9ff085d7456ba 100644 (file)
@@ -37,7 +37,7 @@ struct rnh
   /* VRF identifier. */
   vrf_id_t vrf_id;
 
-  struct rib *state;
+  struct route_entry *state;
   struct prefix resolved_route;
   struct list *client_list;
   struct list *zebra_static_route_list; /* static routes dependent on this NH */
index 4a81cb635de9858ae988f87608e5184e52935aba..6ec43e592c14b0a50144ea63ad71c1b0cf3e5f2f 100644 (file)
@@ -1351,7 +1351,7 @@ zebra_del_import_table_route_map (afi_t afi, uint32_t table)
 }
 
 route_map_result_t
-zebra_import_table_route_map_check (int family, int rib_type, struct prefix *p,
+zebra_import_table_route_map_check (int family, int re_type, struct prefix *p,
                 struct nexthop *nexthop, vrf_id_t vrf_id, route_tag_t tag, const char *rmap_name)
 {
   struct route_map *rmap = NULL;
@@ -1360,11 +1360,11 @@ zebra_import_table_route_map_check (int family, int rib_type, struct prefix *p,
 
   nh_obj.nexthop = nexthop;
   nh_obj.vrf_id = vrf_id;
-  nh_obj.source_protocol = rib_type;
+  nh_obj.source_protocol = re_type;
   nh_obj.metric = 0;
   nh_obj.tag = tag;
 
-  if (rib_type >= 0 && rib_type < ZEBRA_ROUTE_MAX)
+  if (re_type >= 0 && re_type < ZEBRA_ROUTE_MAX)
     rmap = route_map_lookup_by_name (rmap_name);
   if (rmap) {
       ret = route_map_apply(rmap, p, RMAP_ZEBRA, &nh_obj);
@@ -1375,17 +1375,17 @@ zebra_import_table_route_map_check (int family, int rib_type, struct prefix *p,
 
 route_map_result_t
 zebra_nht_route_map_check (int family, int client_proto, struct prefix *p,
-                          struct rib * rib, struct nexthop *nexthop)
+                          struct route_entry * re, struct nexthop *nexthop)
 {
   struct route_map *rmap = NULL;
   route_map_result_t ret = RMAP_MATCH;
   struct nh_rmap_obj nh_obj;
 
   nh_obj.nexthop = nexthop;
-  nh_obj.vrf_id = rib->vrf_id;
-  nh_obj.source_protocol = rib->type;
-  nh_obj.metric = rib->metric;
-  nh_obj.tag = rib->tag;
+  nh_obj.vrf_id = re->vrf_id;
+  nh_obj.source_protocol = re->type;
+  nh_obj.metric = re->metric;
+  nh_obj.tag = re->tag;
 
   if (client_proto >= 0 && client_proto < ZEBRA_ROUTE_MAX)
     rmap = route_map_lookup_by_name (nht_rm[family][client_proto]);
index 94981a3cd6990db3acb87753f50b33a69a6c77a6..ac9cc40efab35beba6c6aac2f5178671d461d72f 100644 (file)
@@ -43,7 +43,7 @@ extern route_map_result_t zebra_route_map_check (int family, int rib_type,
 extern route_map_result_t zebra_nht_route_map_check (int family,
                                                     int client_proto,
                                                     struct prefix *p,
-                                                    struct rib *,
+                                                    struct route_entry *,
                                                     struct nexthop *nexthop);
 
 
index 7c2e6697ce53916a97434045bf04afd0cbc64472..bb1cee78406b8f20152dbe5b045f339ab14a4780 100644 (file)
@@ -143,7 +143,7 @@ ipFwNumber (struct variable *v, oid objid[], size_t *objid_len,
   static int result;
   struct route_table *table;
   struct route_node *rn;
-  struct rib *rib;
+  struct route_entry *re;
 
   if (smux_header_generic(v, objid, objid_len, exact, val_len, write_method) == MATCH_FAILED)
     return NULL;
@@ -155,7 +155,7 @@ ipFwNumber (struct variable *v, oid objid[], size_t *objid_len,
   /* Return number of routing entries. */
   result = 0;
   for (rn = route_top (table); rn; rn = route_next (rn))
-    RNODE_FOREACH_RIB (rn, rib)
+    RNODE_FOREACH_RE (rn, re)
       result++;
 
   return (u_char *)&result;
@@ -168,7 +168,7 @@ ipCidrNumber (struct variable *v, oid objid[], size_t *objid_len,
   static int result;
   struct route_table *table;
   struct route_node *rn;
-  struct rib *rib;
+  struct route_entry *re;
 
   if (smux_header_generic(v, objid, objid_len, exact, val_len, write_method) == MATCH_FAILED)
     return NULL;
@@ -180,7 +180,7 @@ ipCidrNumber (struct variable *v, oid objid[], size_t *objid_len,
   /* Return number of routing entries. */
   result = 0;
   for (rn = route_top (table); rn; rn = route_next (rn))
-    RNODE_FOREACH_RIB (rn, rib)
+    RNODE_FOREACH_RE (rn, re)
       result++;
 
   return (u_char *)&result;
@@ -256,15 +256,15 @@ proto_trans(int type)
 }
 
 static void
-check_replace(struct route_node *np2, struct rib *rib2, 
-              struct route_node **np, struct rib **rib)
+check_replace(struct route_node *np2, struct route_entry *re2,
+              struct route_node **np, struct route_entry **re)
 {
   int proto, proto2;
 
   if (!*np)
     {
       *np = np2;
-      *rib = rib2;
+      *re = re2;
       return;
     }
 
@@ -273,39 +273,39 @@ check_replace(struct route_node *np2, struct rib *rib2,
   if (in_addr_cmp(&(*np)->p.u.prefix, &np2->p.u.prefix) > 0)
     {
       *np = np2;
-      *rib = rib2;
+      *re = re2;
       return;
     }
 
-  proto = proto_trans((*rib)->type);
-  proto2 = proto_trans(rib2->type);
+  proto = proto_trans((*re)->type);
+  proto2 = proto_trans(re2->type);
 
   if (proto2 > proto)
     return;
   if (proto2 < proto)
     {
       *np = np2;
-      *rib = rib2;
+      *re = re2;
       return;
     }
 
-  if (in_addr_cmp((u_char *)&(*rib)->nexthop->gate.ipv4, 
-                  (u_char *)&rib2->nexthop->gate.ipv4) <= 0)
+  if (in_addr_cmp((u_char *)&(*re)->nexthop->gate.ipv4,
+                  (u_char *)&re2->nexthop->gate.ipv4) <= 0)
     return;
 
   *np = np2;
-  *rib = rib2;
+  *re = re2;
   return;
 }
 
 static void
 get_fwtable_route_node(struct variable *v, oid objid[], size_t *objid_len, 
-                      int exact, struct route_node **np, struct rib **rib)
+                      int exact, struct route_node **np, struct route_entry **re)
 {
   struct in_addr dest;
   struct route_table *table;
   struct route_node *np2;
-  struct rib *rib2;
+  struct route_entry *re2;
   int proto;
   int policy;
   struct in_addr nexthop;
@@ -328,7 +328,7 @@ get_fwtable_route_node(struct variable *v, oid objid[], size_t *objid_len,
   /* Init return variables */
 
   *np = NULL;
-  *rib = NULL;
+  *re = NULL;
 
   /* Short circuit exact matches of wrong length */
 
@@ -374,11 +374,11 @@ get_fwtable_route_node(struct variable *v, oid objid[], size_t *objid_len,
        {
          if (!in_addr_cmp(&(*np)->p.u.prefix, (u_char *)&dest))
            {
-             RNODE_FOREACH_RIB (*np, *rib)
+             RNODE_FOREACH_RE (*np, *re)
                {
-                 if (!in_addr_cmp((u_char *)&(*rib)->nexthop->gate.ipv4,
+                 if (!in_addr_cmp((u_char *)&(*re)->nexthop->gate.ipv4,
                                   (u_char *)&nexthop))
-                   if (proto == proto_trans((*rib)->type))
+                   if (proto == proto_trans((*re)->type))
                      return;
                }
            }
@@ -393,34 +393,34 @@ get_fwtable_route_node(struct variable *v, oid objid[], size_t *objid_len,
 
       /* Check destination first */
       if (in_addr_cmp(&np2->p.u.prefix, (u_char *)&dest) > 0)
-       RNODE_FOREACH_RIB (np2, rib2)
-         check_replace(np2, rib2, np, rib);
+       RNODE_FOREACH_RE (np2, re2)
+         check_replace(np2, re2, np, re);
 
       if (in_addr_cmp(&np2->p.u.prefix, (u_char *)&dest) == 0)
-        { /* have to look at each rib individually */
-         RNODE_FOREACH_RIB (np2, rib2)
+        { /* have to look at each re individually */
+         RNODE_FOREACH_RE (np2, re2)
            {
              int proto2, policy2;
 
-             proto2 = proto_trans(rib2->type);
+             proto2 = proto_trans(re2->type);
              policy2 = 0;
 
              if ((policy < policy2)
                  || ((policy == policy2) && (proto < proto2))
                  || ((policy == policy2) && (proto == proto2)
-                     && (in_addr_cmp((u_char *)&rib2->nexthop->gate.ipv4,
+                     && (in_addr_cmp((u_char *)&re2->nexthop->gate.ipv4,
                                      (u_char *) &nexthop) >= 0)
                      ))
-               check_replace(np2, rib2, np, rib);
+               check_replace(np2, re2, np, re);
            }
        }
     }
 
-  if (!*rib)
+  if (!*re)
     return;
 
   policy = 0;
-  proto = proto_trans((*rib)->type);
+  proto = proto_trans((*re)->type);
 
   *objid_len = v->namelen + 10;
   pnt = (u_char *) &(*np)->p.u.prefix;
@@ -433,7 +433,7 @@ get_fwtable_route_node(struct variable *v, oid objid[], size_t *objid_len,
   {
     struct nexthop *nexthop;
 
-    nexthop = (*rib)->nexthop;
+    nexthop = (*re)->nexthop;
     if (nexthop)
       {
        pnt = (u_char *) &nexthop->gate.ipv4;
@@ -450,7 +450,7 @@ ipFwTable (struct variable *v, oid objid[], size_t *objid_len,
           int exact, size_t *val_len, WriteMethod **write_method)
 {
   struct route_node *np;
-  struct rib *rib;
+  struct route_entry *re;
   static int result;
   static int resarr[2];
   static struct in_addr netmask;
@@ -460,11 +460,11 @@ ipFwTable (struct variable *v, oid objid[], size_t *objid_len,
       == MATCH_FAILED)
     return NULL;
 
-  get_fwtable_route_node(v, objid, objid_len, exact, &np, &rib);
+  get_fwtable_route_node(v, objid, objid_len, exact, &np, &re);
   if (!np)
     return NULL;
 
-  nexthop = rib->nexthop;
+  nexthop = re->nexthop;
   if (! nexthop)
     return NULL;
 
@@ -501,7 +501,7 @@ ipFwTable (struct variable *v, oid objid[], size_t *objid_len,
       return (u_char *)&result;
       break;
     case IPFORWARDPROTO:
-      result = proto_trans(rib->type);
+      result = proto_trans(re->type);
       *val_len  = sizeof(int);
       return (u_char *)&result;
       break;
index b218eb5210181640bb5cbdca8af6fad1f1ffccaf..05336ca6b24335978618aaf4faf9bd5a2527c190 100644 (file)
@@ -40,7 +40,7 @@ void
 static_install_route (afi_t afi, safi_t safi, struct prefix *p,
                       struct prefix_ipv6 *src_p, struct static_route *si)
 {
-  struct rib *rib;
+  struct route_entry *re;
   struct route_node *rn;
   struct route_table *table;
   struct prefix nh_p;
@@ -55,20 +55,20 @@ static_install_route (afi_t afi, safi_t safi, struct prefix *p,
 
   /* Lookup existing route */
   rn = srcdest_rnode_get (table, p, src_p);
-  RNODE_FOREACH_RIB (rn, rib)
+  RNODE_FOREACH_RE (rn, re)
     {
-       if (CHECK_FLAG (rib->status, RIB_ENTRY_REMOVED))
+       if (CHECK_FLAG (re->status, ROUTE_ENTRY_REMOVED))
          continue;
 
-       if (rib->type == ZEBRA_ROUTE_STATIC && rib->distance == si->distance)
+       if (re->type == ZEBRA_ROUTE_STATIC && re->distance == si->distance)
          break;
     }
 
-  if (rib)
+  if (re)
     {
       /* if tag value changed , update old value in RIB */
-      if (rib->tag != si->tag)
-        rib->tag = si->tag;
+      if (re->tag != si->tag)
+        re->tag = si->tag;
 
       /* Same distance static route is there.  Update it with new
          nexthop. */
@@ -76,27 +76,27 @@ static_install_route (afi_t afi, safi_t safi, struct prefix *p,
       switch (si->type)
         {
        case STATIC_IPV4_GATEWAY:
-         nexthop = rib_nexthop_ipv4_add (rib, &si->addr.ipv4, NULL);
+         nexthop = route_entry_nexthop_ipv4_add (re, &si->addr.ipv4, NULL);
          nh_p.family = AF_INET;
          nh_p.prefixlen = IPV4_MAX_BITLEN;
          nh_p.u.prefix4 = si->addr.ipv4;
          zebra_register_rnh_static_nh(si->vrf_id, &nh_p, rn);
          break;
        case STATIC_IFINDEX:
-         nexthop = rib_nexthop_ifindex_add (rib, si->ifindex);
+         nexthop = route_entry_nexthop_ifindex_add (re, si->ifindex);
          break;
        case STATIC_BLACKHOLE:
-         nexthop = rib_nexthop_blackhole_add (rib);
+         nexthop = route_entry_nexthop_blackhole_add (re);
          break;
        case STATIC_IPV6_GATEWAY:
-         nexthop = rib_nexthop_ipv6_add (rib, &si->addr.ipv6);
+         nexthop = route_entry_nexthop_ipv6_add (re, &si->addr.ipv6);
          nh_p.family = AF_INET6;
          nh_p.prefixlen = IPV6_MAX_BITLEN;
          nh_p.u.prefix6 = si->addr.ipv6;
          zebra_register_rnh_static_nh(si->vrf_id, &nh_p, rn);
          break;
        case STATIC_IPV6_GATEWAY_IFINDEX:
-         nexthop = rib_nexthop_ipv6_ifindex_add (rib, &si->addr.ipv6,
+         nexthop = route_entry_nexthop_ipv6_ifindex_add (re, &si->addr.ipv6,
                                                  si->ifindex);
          break;
         }
@@ -111,8 +111,8 @@ static_install_route (afi_t afi, safi_t safi, struct prefix *p,
           if (IS_ZEBRA_DEBUG_RIB)
             {
               inet_ntop (p->family, &p->u.prefix, buf, INET6_ADDRSTRLEN);
-              zlog_debug ("%u:%s/%d: Modifying route rn %p, rib %p (type %d)",
-                          si->vrf_id, buf, p->prefixlen, rn, rib, rib->type);
+              zlog_debug ("%u:%s/%d: Modifying route rn %p, re %p (type %d)",
+                          si->vrf_id, buf, p->prefixlen, rn, re, re->type);
             }
         }
       /* Schedule route for processing or invoke NHT, as appropriate. */
@@ -125,42 +125,42 @@ static_install_route (afi_t afi, safi_t safi, struct prefix *p,
   else
     {
       /* This is new static route. */
-      rib = XCALLOC (MTYPE_RIB, sizeof (struct rib));
-
-      rib->type = ZEBRA_ROUTE_STATIC;
-      rib->instance = 0;
-      rib->distance = si->distance;
-      rib->metric = 0;
-      rib->mtu = 0;
-      rib->vrf_id = si->vrf_id;
-      rib->table =  si->vrf_id ? (zebra_vrf_lookup_by_id(si->vrf_id))->table_id : zebrad.rtm_table_default;
-      rib->nexthop_num = 0;
-      rib->tag = si->tag;
+      re = XCALLOC (MTYPE_RE, sizeof (struct route_entry));
+
+      re->type = ZEBRA_ROUTE_STATIC;
+      re->instance = 0;
+      re->distance = si->distance;
+      re->metric = 0;
+      re->mtu = 0;
+      re->vrf_id = si->vrf_id;
+      re->table =  si->vrf_id ? (zebra_vrf_lookup_by_id(si->vrf_id))->table_id : zebrad.rtm_table_default;
+      re->nexthop_num = 0;
+      re->tag = si->tag;
 
       switch (si->type)
         {
        case STATIC_IPV4_GATEWAY:
-         nexthop = rib_nexthop_ipv4_add (rib, &si->addr.ipv4, NULL);
+         nexthop = route_entry_nexthop_ipv4_add (re, &si->addr.ipv4, NULL);
          nh_p.family = AF_INET;
          nh_p.prefixlen = IPV4_MAX_BITLEN;
          nh_p.u.prefix4 = si->addr.ipv4;
          zebra_register_rnh_static_nh(si->vrf_id, &nh_p, rn);
          break;
        case STATIC_IFINDEX:
-         nexthop = rib_nexthop_ifindex_add (rib, si->ifindex);
+         nexthop = route_entry_nexthop_ifindex_add (re, si->ifindex);
          break;
        case STATIC_BLACKHOLE:
-         nexthop = rib_nexthop_blackhole_add (rib);
+         nexthop = route_entry_nexthop_blackhole_add (re);
          break;
        case STATIC_IPV6_GATEWAY:
-         nexthop = rib_nexthop_ipv6_add (rib, &si->addr.ipv6);
+         nexthop = route_entry_nexthop_ipv6_add (re, &si->addr.ipv6);
          nh_p.family = AF_INET6;
          nh_p.prefixlen = IPV6_MAX_BITLEN;
          nh_p.u.prefix6 = si->addr.ipv6;
          zebra_register_rnh_static_nh(si->vrf_id, &nh_p, rn);
          break;
        case STATIC_IPV6_GATEWAY_IFINDEX:
-         nexthop = rib_nexthop_ipv6_ifindex_add (rib, &si->addr.ipv6,
+         nexthop = route_entry_nexthop_ipv6_ifindex_add (re, &si->addr.ipv6,
                                                  si->ifindex);
          break;
         }
@@ -170,7 +170,7 @@ static_install_route (afi_t afi, safi_t safi, struct prefix *p,
                            &si->snh_label.label[0]);
 
       /* Save the flags of this static routes (reject, blackhole) */
-      rib->flags = si->flags;
+      re->flags = si->flags;
 
       if (IS_ZEBRA_DEBUG_RIB)
         {
@@ -178,21 +178,21 @@ static_install_route (afi_t afi, safi_t safi, struct prefix *p,
           if (IS_ZEBRA_DEBUG_RIB)
             {
               inet_ntop (p->family, &p->u.prefix, buf, INET6_ADDRSTRLEN);
-              zlog_debug ("%u:%s/%d: Inserting route rn %p, rib %p (type %d)",
-                          si->vrf_id, buf, p->prefixlen, rn, rib, rib->type);
+              zlog_debug ("%u:%s/%d: Inserting route rn %p, re %p (type %d)",
+                          si->vrf_id, buf, p->prefixlen, rn, re, re->type);
             }
         }
-      /* Link this rib to the tree. Schedule for processing or invoke NHT,
+      /* Link this re to the tree. Schedule for processing or invoke NHT,
        * as appropriate.
        */
       if (si->type == STATIC_IPV4_GATEWAY ||
           si->type == STATIC_IPV6_GATEWAY)
         {
-          rib_addnode (rn, rib, 0);
+          rib_addnode (rn, re, 0);
           zebra_evaluate_rnh(si->vrf_id, nh_p.family, 1, RNH_NEXTHOP_TYPE, &nh_p);
         }
       else
-        rib_addnode (rn, rib, 1);
+        rib_addnode (rn, re, 1);
     }
 }
 
@@ -230,7 +230,7 @@ static_uninstall_route (afi_t afi, safi_t safi, struct prefix *p,
                         struct prefix_ipv6 *src_p, struct static_route *si)
 {
   struct route_node *rn;
-  struct rib *rib;
+  struct route_entry *re;
   struct nexthop *nexthop;
   struct route_table *table;
   struct prefix nh_p;
@@ -245,24 +245,24 @@ static_uninstall_route (afi_t afi, safi_t safi, struct prefix *p,
   if (! rn)
     return;
 
-  RNODE_FOREACH_RIB (rn, rib)
+  RNODE_FOREACH_RE (rn, re)
     {
-      if (CHECK_FLAG (rib->status, RIB_ENTRY_REMOVED))
+      if (CHECK_FLAG (re->status, ROUTE_ENTRY_REMOVED))
         continue;
 
-      if (rib->type == ZEBRA_ROUTE_STATIC && rib->distance == si->distance &&
-          rib->tag == si->tag)
+      if (re->type == ZEBRA_ROUTE_STATIC && re->distance == si->distance &&
+          re->tag == si->tag)
         break;
     }
 
-  if (! rib)
+  if (! re)
     {
       route_unlock_node (rn);
       return;
     }
 
   /* Lookup nexthop. */
-  for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
+  for (nexthop = re->nexthop; nexthop; nexthop = nexthop->next)
     if (static_nexthop_same (nexthop, si))
       break;
 
@@ -274,8 +274,8 @@ static_uninstall_route (afi_t afi, safi_t safi, struct prefix *p,
     }
 
   /* Check nexthop. */
-  if (rib->nexthop_num == 1)
-    rib_delnode (rn, rib);
+  if (re->nexthop_num == 1)
+    rib_delnode (rn, re);
   else
     {
       /* Mark this nexthop as inactive and reinstall the route. Then, delete
@@ -288,31 +288,31 @@ static_uninstall_route (afi_t afi, safi_t safi, struct prefix *p,
           if (IS_ZEBRA_DEBUG_RIB)
             {
               inet_ntop (p->family, &p->u.prefix, buf, INET6_ADDRSTRLEN);
-              zlog_debug ("%u:%s/%d: Modifying route rn %p, rib %p (type %d)",
-                          si->vrf_id, buf, p->prefixlen, rn, rib, rib->type);
+              zlog_debug ("%u:%s/%d: Modifying route rn %p, re %p (type %d)",
+                          si->vrf_id, buf, p->prefixlen, rn, re, re->type);
             }
         }
       UNSET_FLAG(nexthop->flags, NEXTHOP_FLAG_ACTIVE);
       if (CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB))
         {
           /* If there are other active nexthops, do an update. */
-          if (rib->nexthop_active_num > 1)
+          if (re->nexthop_active_num > 1)
             {
               /* Update route in kernel if it's in fib */
-              if (CHECK_FLAG(rib->status, RIB_ENTRY_SELECTED_FIB))
-                rib_install_kernel (rn, rib, rib);
+              if (CHECK_FLAG(re->status, ROUTE_ENTRY_SELECTED_FIB))
+                rib_install_kernel (rn, re, re);
               /* Update redistribution if it's selected */
-              if (CHECK_FLAG(rib->flags, ZEBRA_FLAG_SELECTED))
-                redistribute_update (p, (struct prefix*)src_p, rib, NULL);
+              if (CHECK_FLAG(re->flags, ZEBRA_FLAG_SELECTED))
+                redistribute_update (p, (struct prefix*)src_p, re, NULL);
             }
           else
             {
               /* Remove from redistribute if selected route becomes inactive */
-              if (CHECK_FLAG(rib->flags, ZEBRA_FLAG_SELECTED))
-                redistribute_delete (p, (struct prefix*)src_p, rib);
+              if (CHECK_FLAG(re->flags, ZEBRA_FLAG_SELECTED))
+                redistribute_delete (p, (struct prefix*)src_p, re);
               /* Remove from kernel if fib route becomes inactive */
-              if (CHECK_FLAG(rib->status, RIB_ENTRY_SELECTED_FIB))
-              rib_uninstall_kernel (rn, rib);
+              if (CHECK_FLAG(re->status, ROUTE_ENTRY_SELECTED_FIB))
+              rib_uninstall_kernel (rn, re);
             }
         }
 
@@ -329,7 +329,7 @@ static_uninstall_route (afi_t afi, safi_t safi, struct prefix *p,
          nh_p.prefixlen = IPV6_MAX_BITLEN;
          nh_p.u.prefix6 = nexthop->gate.ipv6;
        }
-      rib_nexthop_delete (rib, nexthop);
+      route_entry_nexthop_delete (re, nexthop);
       zebra_deregister_rnh_static_nh(si->vrf_id, &nh_p, rn);
       nexthop_free (nexthop);
     }
index 94e2506186fa0812d8befbe4090c84abe35b1580..2a759c2e79ea3e5ded70735979d80efa5ee90218 100644 (file)
@@ -334,10 +334,10 @@ zebra_vrf_table_with_table_id (afi_t afi, safi_t safi,
 static void
 zebra_rtable_node_cleanup (struct route_table *table, struct route_node *node)
 {
-  struct rib *rib, *next;
+  struct route_entry *re, *next;
 
-  RNODE_FOREACH_RIB_SAFE (node, rib, next)
-    rib_unlink (node, rib);
+  RNODE_FOREACH_RE_SAFE (node, re, next)
+    rib_unlink (node, re);
 
   if (node->info)
     XFREE (MTYPE_RIB_DEST, node->info);
index d0d761af95c31958282b1586df56354eb66783fb..c865a8ed1e45f744afb08792544a4569742a5c16 100644 (file)
@@ -321,7 +321,7 @@ DEFUN (show_ip_rpf_addr,
   int idx_ipv4 = 3;
   struct in_addr addr;
   struct route_node *rn;
-  struct rib *rib;
+  struct route_entry *re;
   int ret;
 
   ret = inet_aton (argv[idx_ipv4]->arg, &addr);
@@ -331,9 +331,9 @@ DEFUN (show_ip_rpf_addr,
       return CMD_WARNING;
     }
 
-  rib = rib_match_ipv4_multicast (VRF_DEFAULT, addr, &rn);
+  re = rib_match_ipv4_multicast (VRF_DEFAULT, addr, &rn);
 
-  if (rib)
+  if (re)
     vty_show_ip_route_detail (vty, rn, 1);
   else
     vty_out (vty, "%% No match for RPF lookup%s", VTY_NEWLINE);
@@ -640,13 +640,13 @@ DEFUN (no_ip_route_mask_flags,
 static void
 vty_show_ip_route_detail (struct vty *vty, struct route_node *rn, int mcast)
 {
-  struct rib *rib;
+  struct route_entry *re;
   struct nexthop *nexthop, *tnexthop;
   int recursing;
   char buf[SRCDEST2STR_BUFFER];
   struct zebra_vrf *zvrf;
 
-  RNODE_FOREACH_RIB (rn, rib)
+  RNODE_FOREACH_RE (rn, re)
     {
       const char *mcast_info = "";
       if (mcast)
@@ -660,42 +660,42 @@ vty_show_ip_route_detail (struct vty *vty, struct route_node *rn, int mcast)
       vty_out (vty, "Routing entry for %s%s%s",
               srcdest_rnode2str(rn, buf, sizeof(buf)), mcast_info,
               VTY_NEWLINE);
-      vty_out (vty, "  Known via \"%s", zebra_route_string (rib->type));
-      if (rib->instance)
-        vty_out (vty, "[%d]", rib->instance);
+      vty_out (vty, "  Known via \"%s", zebra_route_string (re->type));
+      if (re->instance)
+        vty_out (vty, "[%d]", re->instance);
       vty_out (vty, "\"");
-      vty_out (vty, ", distance %u, metric %u", rib->distance, rib->metric);
-      if (rib->tag)
-       vty_out (vty, ", tag %d", rib->tag);
-       if (rib->mtu)
-        vty_out (vty, ", mtu %u", rib->mtu);
-      if (rib->vrf_id != VRF_DEFAULT)
+      vty_out (vty, ", distance %u, metric %u", re->distance, re->metric);
+      if (re->tag)
+       vty_out (vty, ", tag %d", re->tag);
+       if (re->mtu)
+        vty_out (vty, ", mtu %u", re->mtu);
+      if (re->vrf_id != VRF_DEFAULT)
         {
-          zvrf = vrf_info_lookup(rib->vrf_id);
+          zvrf = vrf_info_lookup(re->vrf_id);
           vty_out (vty, ", vrf %s", zvrf_name (zvrf));
         }
-      if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_SELECTED))
+      if (CHECK_FLAG (re->flags, ZEBRA_FLAG_SELECTED))
        vty_out (vty, ", best");
-      if (rib->refcnt)
-       vty_out (vty, ", refcnt %ld", rib->refcnt);
-      if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_BLACKHOLE))
+      if (re->refcnt)
+       vty_out (vty, ", refcnt %ld", re->refcnt);
+      if (CHECK_FLAG (re->flags, ZEBRA_FLAG_BLACKHOLE))
        vty_out (vty, ", blackhole");
-      if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_REJECT))
+      if (CHECK_FLAG (re->flags, ZEBRA_FLAG_REJECT))
        vty_out (vty, ", reject");
       vty_out (vty, "%s", VTY_NEWLINE);
 
-      if (rib->type == ZEBRA_ROUTE_RIP
-         || rib->type == ZEBRA_ROUTE_OSPF
-         || rib->type == ZEBRA_ROUTE_ISIS
-         || rib->type == ZEBRA_ROUTE_NHRP
-         || rib->type == ZEBRA_ROUTE_TABLE
-         || rib->type == ZEBRA_ROUTE_BGP)
+      if (re->type == ZEBRA_ROUTE_RIP
+         || re->type == ZEBRA_ROUTE_OSPF
+         || re->type == ZEBRA_ROUTE_ISIS
+         || re->type == ZEBRA_ROUTE_NHRP
+         || re->type == ZEBRA_ROUTE_TABLE
+         || re->type == ZEBRA_ROUTE_BGP)
        {
          time_t uptime;
          struct tm *tm;
 
          uptime = time (NULL);
-         uptime -= rib->uptime;
+         uptime -= re->uptime;
          tm = gmtime (&uptime);
 
          vty_out (vty, "  Last update ");
@@ -713,7 +713,7 @@ vty_show_ip_route_detail (struct vty *vty, struct route_node *rn, int mcast)
          vty_out (vty, " ago%s", VTY_NEWLINE);
        }
 
-      for (ALL_NEXTHOPS_RO(rib->nexthop, nexthop, tnexthop, recursing))
+      for (ALL_NEXTHOPS_RO(re->nexthop, nexthop, tnexthop, recursing))
        {
           char addrstr[32];
 
@@ -728,7 +728,7 @@ vty_show_ip_route_detail (struct vty *vty, struct route_node *rn, int mcast)
              vty_out (vty, " %s", inet_ntoa (nexthop->gate.ipv4));
              if (nexthop->ifindex)
                vty_out (vty, ", via %s",
-                         ifindex2ifname (nexthop->ifindex, rib->vrf_id));
+                         ifindex2ifname (nexthop->ifindex, re->vrf_id));
              break;
            case NEXTHOP_TYPE_IPV6:
            case NEXTHOP_TYPE_IPV6_IFINDEX:
@@ -736,11 +736,11 @@ vty_show_ip_route_detail (struct vty *vty, struct route_node *rn, int mcast)
                       inet_ntop (AF_INET6, &nexthop->gate.ipv6, buf, BUFSIZ));
              if (nexthop->ifindex)
                vty_out (vty, ", via %s",
-                         ifindex2ifname (nexthop->ifindex, rib->vrf_id));
+                         ifindex2ifname (nexthop->ifindex, re->vrf_id));
              break;
            case NEXTHOP_TYPE_IFINDEX:
              vty_out (vty, " directly connected, %s",
-                      ifindex2ifname (nexthop->ifindex, rib->vrf_id));
+                      ifindex2ifname (nexthop->ifindex, re->vrf_id));
              break;
            case NEXTHOP_TYPE_BLACKHOLE:
              vty_out (vty, " directly connected, Null0");
@@ -796,7 +796,7 @@ vty_show_ip_route_detail (struct vty *vty, struct route_node *rn, int mcast)
 }
 
 static void
-vty_show_ip_route (struct vty *vty, struct route_node *rn, struct rib *rib,
+vty_show_ip_route (struct vty *vty, struct route_node *rn, struct route_entry *re,
                    json_object *json)
 {
   struct nexthop *nexthop, *tnexthop;
@@ -814,41 +814,41 @@ vty_show_ip_route (struct vty *vty, struct route_node *rn, struct rib *rib,
       json_nexthops = json_object_new_array();
 
       json_object_string_add(json_route, "prefix", srcdest_rnode2str (rn, buf, sizeof buf));
-      json_object_string_add(json_route, "protocol", zebra_route_string(rib->type));
+      json_object_string_add(json_route, "protocol", zebra_route_string(re->type));
 
-      if (rib->instance)
-        json_object_int_add(json_route, "instance", rib->instance);
+      if (re->instance)
+        json_object_int_add(json_route, "instance", re->instance);
 
-      if (rib->vrf_id)
-        json_object_int_add(json_route, "vrfId", rib->vrf_id);
+      if (re->vrf_id)
+        json_object_int_add(json_route, "vrfId", re->vrf_id);
 
-      if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_SELECTED))
+      if (CHECK_FLAG (re->flags, ZEBRA_FLAG_SELECTED))
         json_object_boolean_true_add(json_route, "selected");
 
-      if (rib->type != ZEBRA_ROUTE_CONNECT && rib->type != ZEBRA_ROUTE_KERNEL)
+      if (re->type != ZEBRA_ROUTE_CONNECT && re->type != ZEBRA_ROUTE_KERNEL)
         {
-          json_object_int_add(json_route, "distance", rib->distance);
-          json_object_int_add(json_route, "metric", rib->metric);
+          json_object_int_add(json_route, "distance", re->distance);
+          json_object_int_add(json_route, "metric", re->metric);
         }
 
-      if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_BLACKHOLE))
+      if (CHECK_FLAG (re->flags, ZEBRA_FLAG_BLACKHOLE))
         json_object_boolean_true_add(json_route, "blackhole");
 
-      if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_REJECT))
+      if (CHECK_FLAG (re->flags, ZEBRA_FLAG_REJECT))
         json_object_boolean_true_add(json_route, "reject");
 
-      if (rib->type == ZEBRA_ROUTE_RIP
-          || rib->type == ZEBRA_ROUTE_OSPF
-          || rib->type == ZEBRA_ROUTE_ISIS
-         || rib->type == ZEBRA_ROUTE_NHRP
-          || rib->type == ZEBRA_ROUTE_TABLE
-          || rib->type == ZEBRA_ROUTE_BGP)
+      if (re->type == ZEBRA_ROUTE_RIP
+          || re->type == ZEBRA_ROUTE_OSPF
+          || re->type == ZEBRA_ROUTE_ISIS
+         || re->type == ZEBRA_ROUTE_NHRP
+          || re->type == ZEBRA_ROUTE_TABLE
+          || re->type == ZEBRA_ROUTE_BGP)
         {
           time_t uptime;
           struct tm *tm;
 
           uptime = time (NULL);
-          uptime -= rib->uptime;
+          uptime -= re->uptime;
           tm = gmtime (&uptime);
 
           if (uptime < ONE_DAY_SECOND)
@@ -861,7 +861,7 @@ vty_show_ip_route (struct vty *vty, struct route_node *rn, struct rib *rib,
           json_object_string_add(json_route, "uptime", buf);
         }
 
-      for (ALL_NEXTHOPS_RO(rib->nexthop, nexthop, tnexthop, recursing))
+      for (ALL_NEXTHOPS_RO(re->nexthop, nexthop, tnexthop, recursing))
         {
           json_nexthop = json_object_new_object();
 
@@ -878,7 +878,7 @@ vty_show_ip_route (struct vty *vty, struct route_node *rn, struct rib *rib,
               if (nexthop->ifindex)
                 {
                   json_object_int_add(json_nexthop, "interfaceIndex", nexthop->ifindex);
-                  json_object_string_add(json_nexthop, "interfaceName", ifindex2ifname (nexthop->ifindex, rib->vrf_id));
+                  json_object_string_add(json_nexthop, "interfaceName", ifindex2ifname (nexthop->ifindex, re->vrf_id));
                 }
               break;
             case NEXTHOP_TYPE_IPV6:
@@ -889,14 +889,14 @@ vty_show_ip_route (struct vty *vty, struct route_node *rn, struct rib *rib,
               if (nexthop->ifindex)
                 {
                   json_object_int_add(json_nexthop, "interfaceIndex", nexthop->ifindex);
-                  json_object_string_add(json_nexthop, "interfaceName", ifindex2ifname (nexthop->ifindex, rib->vrf_id));
+                  json_object_string_add(json_nexthop, "interfaceName", ifindex2ifname (nexthop->ifindex, re->vrf_id));
                 }
               break;
 
             case NEXTHOP_TYPE_IFINDEX:
               json_object_boolean_true_add(json_nexthop, "directlyConnected");
               json_object_int_add(json_nexthop, "interfaceIndex", nexthop->ifindex);
-              json_object_string_add(json_nexthop, "interfaceName", ifindex2ifname (nexthop->ifindex, rib->vrf_id));
+              json_object_string_add(json_nexthop, "interfaceName", ifindex2ifname (nexthop->ifindex, re->vrf_id));
               break;
             case NEXTHOP_TYPE_BLACKHOLE:
               json_object_boolean_true_add(json_nexthop, "blackhole");
@@ -955,26 +955,26 @@ vty_show_ip_route (struct vty *vty, struct route_node *rn, struct rib *rib,
     }
 
   /* Nexthop information. */
-  for (ALL_NEXTHOPS_RO(rib->nexthop, nexthop, tnexthop, recursing))
+  for (ALL_NEXTHOPS_RO(re->nexthop, nexthop, tnexthop, recursing))
     {
-      if (nexthop == rib->nexthop)
+      if (nexthop == re->nexthop)
        {
          /* Prefix information. */
-         len = vty_out (vty, "%c", zebra_route_char (rib->type));
-          if (rib->instance)
-           len += vty_out (vty, "[%d]", rib->instance);
+         len = vty_out (vty, "%c", zebra_route_char (re->type));
+          if (re->instance)
+           len += vty_out (vty, "[%d]", re->instance);
           len += vty_out (vty, "%c%c %s",
-                         CHECK_FLAG (rib->flags, ZEBRA_FLAG_SELECTED)
+                         CHECK_FLAG (re->flags, ZEBRA_FLAG_SELECTED)
                          ? '>' : ' ',
                          CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB)
                          ? '*' : ' ',
                          srcdest_rnode2str (rn, buf, sizeof buf));
 
          /* Distance and metric display. */
-         if (rib->type != ZEBRA_ROUTE_CONNECT
-             && rib->type != ZEBRA_ROUTE_KERNEL)
-           len += vty_out (vty, " [%d/%d]", rib->distance,
-                           rib->metric);
+         if (re->type != ZEBRA_ROUTE_CONNECT
+             && re->type != ZEBRA_ROUTE_KERNEL)
+           len += vty_out (vty, " [%d/%d]", re->distance,
+                           re->metric);
        }
       else
        vty_out (vty, "  %c%*c",
@@ -989,7 +989,7 @@ vty_show_ip_route (struct vty *vty, struct route_node *rn, struct rib *rib,
          vty_out (vty, " via %s", inet_ntoa (nexthop->gate.ipv4));
          if (nexthop->ifindex)
            vty_out (vty, ", %s",
-                     ifindex2ifname (nexthop->ifindex, rib->vrf_id));
+                     ifindex2ifname (nexthop->ifindex, re->vrf_id));
          break;
         case NEXTHOP_TYPE_IPV6:
        case NEXTHOP_TYPE_IPV6_IFINDEX:
@@ -997,12 +997,12 @@ vty_show_ip_route (struct vty *vty, struct route_node *rn, struct rib *rib,
                   inet_ntop (AF_INET6, &nexthop->gate.ipv6, buf, BUFSIZ));
          if (nexthop->ifindex)
            vty_out (vty, ", %s",
-                     ifindex2ifname (nexthop->ifindex, rib->vrf_id));
+                     ifindex2ifname (nexthop->ifindex, re->vrf_id));
          break;
 
        case NEXTHOP_TYPE_IFINDEX:
          vty_out (vty, " is directly connected, %s",
-                  ifindex2ifname (nexthop->ifindex, rib->vrf_id));
+                  ifindex2ifname (nexthop->ifindex, re->vrf_id));
          break;
        case NEXTHOP_TYPE_BLACKHOLE:
          vty_out (vty, " is directly connected, Null0");
@@ -1049,23 +1049,23 @@ vty_show_ip_route (struct vty *vty, struct route_node *rn, struct rib *rib,
                                   nexthop->nh_label->label, buf, BUFSIZ, 1));
        }
 
-      if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_BLACKHOLE))
+      if (CHECK_FLAG (re->flags, ZEBRA_FLAG_BLACKHOLE))
                vty_out (vty, ", bh");
-      if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_REJECT))
+      if (CHECK_FLAG (re->flags, ZEBRA_FLAG_REJECT))
                vty_out (vty, ", rej");
 
-      if (rib->type == ZEBRA_ROUTE_RIP
-         || rib->type == ZEBRA_ROUTE_OSPF
-         || rib->type == ZEBRA_ROUTE_ISIS
-         || rib->type == ZEBRA_ROUTE_NHRP
-         || rib->type == ZEBRA_ROUTE_TABLE
-         || rib->type == ZEBRA_ROUTE_BGP)
+      if (re->type == ZEBRA_ROUTE_RIP
+         || re->type == ZEBRA_ROUTE_OSPF
+         || re->type == ZEBRA_ROUTE_ISIS
+         || re->type == ZEBRA_ROUTE_NHRP
+         || re->type == ZEBRA_ROUTE_TABLE
+         || re->type == ZEBRA_ROUTE_BGP)
        {
          time_t uptime;
          struct tm *tm;
 
          uptime = time (NULL);
-         uptime -= rib->uptime;
+         uptime -= re->uptime;
          tm = gmtime (&uptime);
 
          if (uptime < ONE_DAY_SECOND)
@@ -1097,7 +1097,7 @@ do_show_ip_route (struct vty *vty, const char *vrf_name, afi_t afi, safi_t safi,
 {
   struct route_table *table;
   struct route_node *rn;
-  struct rib *rib;
+  struct route_entry *re;
   int first = 1;
   struct zebra_vrf *zvrf = NULL;
   char buf[BUFSIZ];
@@ -1137,12 +1137,12 @@ do_show_ip_route (struct vty *vty, const char *vrf_name, afi_t afi, safi_t safi,
   /* Show all routes. */
   for (rn = route_top (table); rn; rn = route_next (rn))
     {
-      RNODE_FOREACH_RIB (rn, rib)
+      RNODE_FOREACH_RE (rn, re)
         {
-          if (use_fib && !CHECK_FLAG(rib->status, RIB_ENTRY_SELECTED_FIB))
+          if (use_fib && !CHECK_FLAG(re->status, ROUTE_ENTRY_SELECTED_FIB))
             continue;
 
-          if (tag && rib->tag != tag)
+          if (tag && re->tag != tag)
             continue;
 
           if (longer_prefix_p && ! prefix_match (longer_prefix_p, &rn->p))
@@ -1163,10 +1163,10 @@ do_show_ip_route (struct vty *vty, const char *vrf_name, afi_t afi, safi_t safi,
                 continue;
             }
 
-          if (type && rib->type != type)
+          if (type && re->type != type)
             continue;
 
-          if (ospf_instance_id && (rib->type != ZEBRA_ROUTE_OSPF || rib->instance != ospf_instance_id))
+          if (ospf_instance_id && (re->type != ZEBRA_ROUTE_OSPF || re->instance != ospf_instance_id))
             continue;
 
           if (use_json)
@@ -1190,7 +1190,7 @@ do_show_ip_route (struct vty *vty, const char *vrf_name, afi_t afi, safi_t safi,
                 }
             }
 
-          vty_show_ip_route (vty, rn, rib, json_prefix);
+          vty_show_ip_route (vty, rn, re, json_prefix);
         }
 
       if (json_prefix)
@@ -1567,7 +1567,7 @@ static void
 vty_show_ip_route_summary (struct vty *vty, struct route_table *table)
 {
   struct route_node *rn;
-  struct rib *rib;
+  struct route_entry *re;
 #define ZEBRA_ROUTE_IBGP  ZEBRA_ROUTE_MAX
 #define ZEBRA_ROUTE_TOTAL (ZEBRA_ROUTE_IBGP + 1)
   u_int32_t rib_cnt[ZEBRA_ROUTE_TOTAL + 1];
@@ -1578,25 +1578,25 @@ vty_show_ip_route_summary (struct vty *vty, struct route_table *table)
   memset (&rib_cnt, 0, sizeof(rib_cnt));
   memset (&fib_cnt, 0, sizeof(fib_cnt));
   for (rn = route_top (table); rn; rn = srcdest_route_next (rn))
-    RNODE_FOREACH_RIB (rn, rib)
+    RNODE_FOREACH_RE (rn, re)
       {
-        is_ibgp = (rib->type == ZEBRA_ROUTE_BGP &&
-                   CHECK_FLAG (rib->flags, ZEBRA_FLAG_IBGP));
+        is_ibgp = (re->type == ZEBRA_ROUTE_BGP &&
+                   CHECK_FLAG (re->flags, ZEBRA_FLAG_IBGP));
 
         rib_cnt[ZEBRA_ROUTE_TOTAL]++;
         if (is_ibgp)
           rib_cnt[ZEBRA_ROUTE_IBGP]++;
         else
-          rib_cnt[rib->type]++;
+          rib_cnt[re->type]++;
 
-        if (CHECK_FLAG (rib->flags, ZEBRA_FLAG_SELECTED))
+        if (CHECK_FLAG (re->flags, ZEBRA_FLAG_SELECTED))
           {
             fib_cnt[ZEBRA_ROUTE_TOTAL]++;
 
             if (is_ibgp)
               fib_cnt[ZEBRA_ROUTE_IBGP]++;
             else
-              fib_cnt[rib->type]++;
+              fib_cnt[re->type]++;
           }
       }
 
@@ -1642,7 +1642,7 @@ static void
 vty_show_ip_route_summary_prefix (struct vty *vty, struct route_table *table)
 {
   struct route_node *rn;
-  struct rib *rib;
+  struct route_entry *re;
   struct nexthop *nexthop;
 #define ZEBRA_ROUTE_IBGP  ZEBRA_ROUTE_MAX
 #define ZEBRA_ROUTE_TOTAL (ZEBRA_ROUTE_IBGP + 1)
@@ -1654,25 +1654,25 @@ vty_show_ip_route_summary_prefix (struct vty *vty, struct route_table *table)
   memset (&rib_cnt, 0, sizeof(rib_cnt));
   memset (&fib_cnt, 0, sizeof(fib_cnt));
   for (rn = route_top (table); rn; rn = srcdest_route_next (rn))
-    RNODE_FOREACH_RIB (rn, rib)
+    RNODE_FOREACH_RE (rn, re)
       {
 
        /*
         * In case of ECMP, count only once.
         */
        cnt = 0;
-       for (nexthop = rib->nexthop; (!cnt && nexthop); nexthop = nexthop->next)
+       for (nexthop = re->nexthop; (!cnt && nexthop); nexthop = nexthop->next)
          {
           cnt++;
           rib_cnt[ZEBRA_ROUTE_TOTAL]++;
-          rib_cnt[rib->type]++;
+          rib_cnt[re->type]++;
           if (CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB))
                {
                 fib_cnt[ZEBRA_ROUTE_TOTAL]++;
-             fib_cnt[rib->type]++;
+             fib_cnt[re->type]++;
             }
-             if (rib->type == ZEBRA_ROUTE_BGP &&
-                 CHECK_FLAG (rib->flags, ZEBRA_FLAG_IBGP))
+             if (re->type == ZEBRA_ROUTE_BGP &&
+                 CHECK_FLAG (re->flags, ZEBRA_FLAG_IBGP))
             {
                 rib_cnt[ZEBRA_ROUTE_IBGP]++;
                     if (CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB))
@@ -2816,7 +2816,7 @@ DEFUN (show_ipv6_mroute,
 {
   struct route_table *table;
   struct route_node *rn;
-  struct rib *rib;
+  struct route_entry *re;
   int first = 1;
   vrf_id_t vrf_id = VRF_DEFAULT;
 
@@ -2829,14 +2829,14 @@ DEFUN (show_ipv6_mroute,
 
   /* Show all IPv6 route. */
   for (rn = route_top (table); rn; rn = srcdest_route_next (rn))
-    RNODE_FOREACH_RIB (rn, rib)
+    RNODE_FOREACH_RE (rn, re)
       {
        if (first)
          {
           vty_out (vty, SHOW_ROUTE_V6_HEADER);
            first = 0;
          }
-       vty_show_ip_route (vty, rn, rib, NULL);
+       vty_show_ip_route (vty, rn, re, NULL);
       }
   return CMD_SUCCESS;
 }
@@ -2959,7 +2959,7 @@ DEFUN (show_ipv6_mroute_vrf_all,
 {
   struct route_table *table;
   struct route_node *rn;
-  struct rib *rib;
+  struct route_entry *re;
   struct vrf *vrf;
   struct zebra_vrf *zvrf;
   int first = 1;
@@ -2972,14 +2972,14 @@ DEFUN (show_ipv6_mroute_vrf_all,
 
       /* Show all IPv6 route. */
       for (rn = route_top (table); rn; rn = srcdest_route_next (rn))
-        RNODE_FOREACH_RIB (rn, rib)
+        RNODE_FOREACH_RE (rn, re)
           {
            if (first)
              {
                vty_out (vty, SHOW_ROUTE_V6_HEADER);
                first = 0;
              }
-           vty_show_ip_route (vty, rn, rib, NULL);
+           vty_show_ip_route (vty, rn, re, NULL);
           }
     }
   return CMD_SUCCESS;
index e93299d622e76cca16a7fb27f3e526213eee7e74..29cdb98082d93df2412b785c53895fcd1054007a 100644 (file)
@@ -608,7 +608,7 @@ zsend_interface_update (int cmd, struct zserv *client, struct interface *ifp)
  */
 int
 zsend_redistribute_route (int add, struct zserv *client, struct prefix *p,
-                          struct prefix *src_p, struct rib *rib)
+                          struct prefix *src_p, struct route_entry *re)
 {
   afi_t afi;
   int cmd;
@@ -658,12 +658,12 @@ zsend_redistribute_route (int add, struct zserv *client, struct prefix *p,
   stream_reset (s);
   memset(&dummy_nh, 0, sizeof(struct nexthop));
 
-  zserv_create_header (s, cmd, rib->vrf_id);
+  zserv_create_header (s, cmd, re->vrf_id);
   
   /* Put type and nexthop. */
-  stream_putc (s, rib->type);
-  stream_putw (s, rib->instance);
-  stream_putl (s, rib->flags);
+  stream_putc (s, re->type);
+  stream_putw (s, re->instance);
+  stream_putl (s, re->flags);
 
   /* marker for message flags field */
   messmark = stream_get_endp (s);
@@ -682,10 +682,10 @@ zsend_redistribute_route (int add, struct zserv *client, struct prefix *p,
       stream_write (s, (u_char *) & src_p->u.prefix, psize);
     }
 
-  for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
+  for (nexthop = re->nexthop; nexthop; nexthop = nexthop->next)
     {
       /* We don't send any nexthops when there's a multipath */
-      if (rib->nexthop_active_num > 1 && client->proto != ZEBRA_ROUTE_LDP)
+      if (re->nexthop_active_num > 1 && client->proto != ZEBRA_ROUTE_LDP)
        {
           SET_FLAG (zapi_flags, ZAPI_MESSAGE_NEXTHOP);
           SET_FLAG (zapi_flags, ZAPI_MESSAGE_IFINDEX);
@@ -764,22 +764,22 @@ zsend_redistribute_route (int add, struct zserv *client, struct prefix *p,
 
   /* Distance */
   SET_FLAG (zapi_flags, ZAPI_MESSAGE_DISTANCE);
-  stream_putc (s, rib->distance);
+  stream_putc (s, re->distance);
 
   /* Metric */
   SET_FLAG (zapi_flags, ZAPI_MESSAGE_METRIC);
-  stream_putl (s, rib->metric);
+  stream_putl (s, re->metric);
 
   /* Tag */
-  if (rib->tag)
+  if (re->tag)
     {
       SET_FLAG(zapi_flags, ZAPI_MESSAGE_TAG);
-      stream_putl(s, rib->tag);
+      stream_putl(s, re->tag);
     }
 
   /* MTU */
   SET_FLAG (zapi_flags, ZAPI_MESSAGE_MTU);
-  stream_putl (s, rib->mtu);
+  stream_putl (s, re->mtu);
 
   /* write real message flags value */
   stream_putc_at (s, messmark, zapi_flags);
@@ -1044,7 +1044,7 @@ zserv_fec_unregister (struct zserv *client, int sock, u_short length)
   Returns both route metric and protocol distance.
 */
 static int
-zsend_ipv4_nexthop_lookup_mrib (struct zserv *client, struct in_addr addr, struct rib *rib, struct zebra_vrf *zvrf)
+zsend_ipv4_nexthop_lookup_mrib (struct zserv *client, struct in_addr addr, struct route_entry *re, struct zebra_vrf *zvrf)
 {
   struct stream *s;
   unsigned long nump;
@@ -1059,17 +1059,17 @@ zsend_ipv4_nexthop_lookup_mrib (struct zserv *client, struct in_addr addr, struc
   zserv_create_header (s, ZEBRA_IPV4_NEXTHOP_LOOKUP_MRIB, zvrf_id (zvrf));
   stream_put_in_addr (s, &addr);
 
-  if (rib)
+  if (re)
     {
-      stream_putc (s, rib->distance);
-      stream_putl (s, rib->metric);
+      stream_putc (s, re->distance);
+      stream_putl (s, re->metric);
       num = 0;
       nump = stream_get_endp(s); /* remember position for nexthop_num */
       stream_putc (s, 0);        /* reserve room for nexthop_num */
       /* Only non-recursive routes are elegible to resolve the nexthop we
        * are looking up. Therefore, we will just iterate over the top
        * chain of nexthops. */
-      for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
+      for (nexthop = re->nexthop; nexthop; nexthop = nexthop->next)
        if (CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE))
            num += zsend_write_nexthop (s, nexthop);
     
@@ -1169,14 +1169,14 @@ zserv_nexthop_num_warn (const char *caller, const struct prefix *p, const unsign
 
 /* This function support multiple nexthop. */
 /* 
- * Parse the ZEBRA_IPV4_ROUTE_ADD sent from client. Update rib and
+ * Parse the ZEBRA_IPV4_ROUTE_ADD sent from client. Update re and
  * add kernel route. 
  */
 static int
 zread_ipv4_add (struct zserv *client, u_short length, struct zebra_vrf *zvrf)
 {
   int i;
-  struct rib *rib;
+  struct route_entry *re;
   struct prefix p;
   u_char message;
   struct in_addr nhop_addr;
@@ -1192,16 +1192,16 @@ zread_ipv4_add (struct zserv *client, u_short length, struct zebra_vrf *zvrf)
   /* Get input stream.  */
   s = client->ibuf;
 
-  /* Allocate new rib. */
-  rib = XCALLOC (MTYPE_RIB, sizeof (struct rib));
+  /* Allocate new re. */
+  re = XCALLOC (MTYPE_RE, sizeof (struct route_entry));
   
   /* Type, flags, message. */
-  rib->type = stream_getc (s);
-  rib->instance = stream_getw (s);
-  rib->flags = stream_getl (s);
+  re->type = stream_getc (s);
+  re->instance = stream_getw (s);
+  re->flags = stream_getl (s);
   message = stream_getc (s); 
   safi = stream_getw (s);
-  rib->uptime = time (NULL);
+  re->uptime = time (NULL);
 
   /* IPv4 prefix. */
   memset (&p, 0, sizeof (struct prefix_ipv4));
@@ -1210,7 +1210,7 @@ zread_ipv4_add (struct zserv *client, u_short length, struct zebra_vrf *zvrf)
   stream_get (&p.u.prefix4, s, PSIZE (p.prefixlen));
 
   /* VRF ID */
-  rib->vrf_id = zvrf_id (zvrf);
+  re->vrf_id = zvrf_id (zvrf);
 
   /* Nexthop parse. */
   if (CHECK_FLAG (message, ZAPI_MESSAGE_NEXTHOP))
@@ -1226,11 +1226,11 @@ zread_ipv4_add (struct zserv *client, u_short length, struct zebra_vrf *zvrf)
            {
            case NEXTHOP_TYPE_IFINDEX:
              ifindex = stream_getl (s);
-             rib_nexthop_ifindex_add (rib, ifindex);
+             route_entry_nexthop_ifindex_add (re, ifindex);
              break;
            case NEXTHOP_TYPE_IPV4:
               nhop_addr.s_addr = stream_get_ipv4 (s);
-              nexthop = rib_nexthop_ipv4_add (rib, &nhop_addr, NULL);
+              nexthop = route_entry_nexthop_ipv4_add (re, &nhop_addr, NULL);
               /* For labeled-unicast, each nexthop is followed by label. */
               if (CHECK_FLAG (message, ZAPI_MESSAGE_LABEL))
                 {
@@ -1241,13 +1241,13 @@ zread_ipv4_add (struct zserv *client, u_short length, struct zebra_vrf *zvrf)
            case NEXTHOP_TYPE_IPV4_IFINDEX:
              nhop_addr.s_addr = stream_get_ipv4 (s);
              ifindex = stream_getl (s);
-             rib_nexthop_ipv4_ifindex_add (rib, &nhop_addr, NULL, ifindex);
+             route_entry_nexthop_ipv4_ifindex_add (re, &nhop_addr, NULL, ifindex);
              break;
            case NEXTHOP_TYPE_IPV6:
              stream_forward_getp (s, IPV6_MAX_BYTELEN);
              break;
             case NEXTHOP_TYPE_BLACKHOLE:
-              rib_nexthop_blackhole_add (rib);
+              route_entry_nexthop_blackhole_add (re);
               break;
             }
        }
@@ -1255,27 +1255,27 @@ zread_ipv4_add (struct zserv *client, u_short length, struct zebra_vrf *zvrf)
 
   /* Distance. */
   if (CHECK_FLAG (message, ZAPI_MESSAGE_DISTANCE))
-    rib->distance = stream_getc (s);
+    re->distance = stream_getc (s);
 
   /* Metric. */
   if (CHECK_FLAG (message, ZAPI_MESSAGE_METRIC))
-    rib->metric = stream_getl (s);
+    re->metric = stream_getl (s);
     
   /* Tag */
   if (CHECK_FLAG (message, ZAPI_MESSAGE_TAG))
-    rib->tag = stream_getl (s);
+    re->tag = stream_getl (s);
   else
-    rib->tag = 0;
+    re->tag = 0;
 
   if (CHECK_FLAG (message, ZAPI_MESSAGE_MTU))
-    rib->mtu = stream_getl (s);
+    re->mtu = stream_getl (s);
   else
-    rib->mtu = 0;
+    re->mtu = 0;
 
   /* Table */
-  rib->table = zvrf->table_id;
+  re->table = zvrf->table_id;
 
-  ret = rib_add_multipath (AFI_IP, safi, &p, NULL, rib);
+  ret = rib_add_multipath (AFI_IP, safi, &p, NULL, re);
 
   /* Stats */
   if (ret > 0)
@@ -1384,11 +1384,11 @@ static int
 zread_ipv4_nexthop_lookup_mrib (struct zserv *client, u_short length, struct zebra_vrf *zvrf)
 {
   struct in_addr addr;
-  struct rib *rib;
+  struct route_entry *re;
 
   addr.s_addr = stream_get_ipv4 (client->ibuf);
-  rib = rib_match_ipv4_multicast (zvrf_id (zvrf), addr, NULL);
-  return zsend_ipv4_nexthop_lookup_mrib (client, addr, rib, zvrf);
+  re = rib_match_ipv4_multicast (zvrf_id (zvrf), addr, NULL);
+  return zsend_ipv4_nexthop_lookup_mrib (client, addr, re, zvrf);
 }
 
 /* Zebra server IPv6 prefix add function. */
@@ -1398,7 +1398,7 @@ zread_ipv4_route_ipv6_nexthop_add (struct zserv *client, u_short length, struct
   unsigned int i;
   struct stream *s;
   struct in6_addr nhop_addr;
-  struct rib *rib;
+  struct route_entry *re;
   u_char message;
   u_char nexthop_num;
   u_char nexthop_type;
@@ -1416,16 +1416,16 @@ zread_ipv4_route_ipv6_nexthop_add (struct zserv *client, u_short length, struct
 
   memset (&nhop_addr, 0, sizeof (struct in6_addr));
 
-  /* Allocate new rib. */
-  rib = XCALLOC (MTYPE_RIB, sizeof (struct rib));
+  /* Allocate new re. */
+  re = XCALLOC (MTYPE_RE, sizeof (struct route_entry));
 
   /* Type, flags, message. */
-  rib->type = stream_getc (s);
-  rib->instance = stream_getw (s);
-  rib->flags = stream_getl (s);
+  re->type = stream_getc (s);
+  re->instance = stream_getw (s);
+  re->flags = stream_getl (s);
   message = stream_getc (s);
   safi = stream_getw (s);
-  rib->uptime = time (NULL);
+  re->uptime = time (NULL);
 
   /* IPv4 prefix. */
   memset (&p, 0, sizeof (struct prefix_ipv4));
@@ -1434,10 +1434,10 @@ zread_ipv4_route_ipv6_nexthop_add (struct zserv *client, u_short length, struct
   stream_get (&p.u.prefix4, s, PSIZE (p.prefixlen));
 
   /* VRF ID */
-  rib->vrf_id = zvrf_id (zvrf);
+  re->vrf_id = zvrf_id (zvrf);
 
   /* We need to give nh-addr, nh-ifindex with the same next-hop object
-   * to the rib to ensure that IPv6 multipathing works; need to coalesce
+   * to the re to ensure that IPv6 multipathing works; need to coalesce
    * these. Clients should send the same number of paired set of
    * next-hop-addr/next-hop-ifindices. */
   if (CHECK_FLAG (message, ZAPI_MESSAGE_NEXTHOP))
@@ -1474,7 +1474,7 @@ zread_ipv4_route_ipv6_nexthop_add (struct zserv *client, u_short length, struct
               }
              break;
             case NEXTHOP_TYPE_BLACKHOLE:
-              rib_nexthop_blackhole_add (rib);
+              route_entry_nexthop_blackhole_add (re);
               break;
            }
        }
@@ -1484,43 +1484,43 @@ zread_ipv4_route_ipv6_nexthop_add (struct zserv *client, u_short length, struct
         {
          if ((i < nh_count) && !IN6_IS_ADDR_UNSPECIFIED (&nexthops[i])) {
             if ((i < if_count) && ifindices[i])
-              nexthop = rib_nexthop_ipv6_ifindex_add (rib, &nexthops[i], ifindices[i]);
+              nexthop = route_entry_nexthop_ipv6_ifindex_add (re, &nexthops[i], ifindices[i]);
             else
-             nexthop = rib_nexthop_ipv6_add (rib, &nexthops[i]);
+             nexthop = route_entry_nexthop_ipv6_add (re, &nexthops[i]);
 
            if (CHECK_FLAG (message, ZAPI_MESSAGE_LABEL))
               nexthop_add_labels (nexthop, nexthop->nh_label_type, 1, &labels[i]);
           }
           else {
             if ((i < if_count) && ifindices[i])
-             rib_nexthop_ifindex_add (rib, ifindices[i]);
+             route_entry_nexthop_ifindex_add (re, ifindices[i]);
             }
        }
     }
 
   /* Distance. */
   if (CHECK_FLAG (message, ZAPI_MESSAGE_DISTANCE))
-    rib->distance = stream_getc (s);
+    re->distance = stream_getc (s);
 
   /* Metric. */
   if (CHECK_FLAG (message, ZAPI_MESSAGE_METRIC))
-    rib->metric = stream_getl (s);
+    re->metric = stream_getl (s);
 
   /* Tag */
   if (CHECK_FLAG (message, ZAPI_MESSAGE_TAG))
-    rib->tag = stream_getl (s);
+    re->tag = stream_getl (s);
   else
-    rib->tag = 0;
+    re->tag = 0;
 
   if (CHECK_FLAG (message, ZAPI_MESSAGE_MTU))
-    rib->mtu = stream_getl (s);
+    re->mtu = stream_getl (s);
   else
-    rib->mtu = 0;
+    re->mtu = 0;
 
   /* Table */
-  rib->table = zvrf->table_id;
+  re->table = zvrf->table_id;
 
-  ret = rib_add_multipath (AFI_IP6, safi, &p, NULL, rib);
+  ret = rib_add_multipath (AFI_IP6, safi, &p, NULL, re);
   /* Stats */
   if (ret > 0)
     client->v4_route_add_cnt++;
@@ -1536,7 +1536,7 @@ zread_ipv6_add (struct zserv *client, u_short length, struct zebra_vrf *zvrf)
   unsigned int i;
   struct stream *s;
   struct in6_addr nhop_addr;
-  struct rib *rib;
+  struct route_entry *re;
   u_char message;
   u_char nexthop_num;
   u_char nexthop_type;
@@ -1555,16 +1555,16 @@ zread_ipv6_add (struct zserv *client, u_short length, struct zebra_vrf *zvrf)
 
   memset (&nhop_addr, 0, sizeof (struct in6_addr));
 
-  /* Allocate new rib. */
-  rib = XCALLOC (MTYPE_RIB, sizeof (struct rib));
+  /* Allocate new re. */
+  re = XCALLOC (MTYPE_RE, sizeof (struct route_entry));
 
   /* Type, flags, message. */
-  rib->type = stream_getc (s);
-  rib->instance = stream_getw (s);
-  rib->flags = stream_getl (s);
+  re->type = stream_getc (s);
+  re->instance = stream_getw (s);
+  re->flags = stream_getl (s);
   message = stream_getc (s);
   safi = stream_getw (s);
-  rib->uptime = time (NULL);
+  re->uptime = time (NULL);
 
   /* IPv6 prefix. */
   memset (&p, 0, sizeof (struct prefix_ipv6));
@@ -1584,7 +1584,7 @@ zread_ipv6_add (struct zserv *client, u_short length, struct zebra_vrf *zvrf)
     src_pp = NULL;
 
   /* We need to give nh-addr, nh-ifindex with the same next-hop object
-   * to the rib to ensure that IPv6 multipathing works; need to coalesce
+   * to the re to ensure that IPv6 multipathing works; need to coalesce
    * these. Clients should send the same number of paired set of
    * next-hop-addr/next-hop-ifindices. */
   if (CHECK_FLAG (message, ZAPI_MESSAGE_NEXTHOP))
@@ -1620,7 +1620,7 @@ zread_ipv6_add (struct zserv *client, u_short length, struct zebra_vrf *zvrf)
               }
              break;
             case NEXTHOP_TYPE_BLACKHOLE:
-              rib_nexthop_blackhole_add (rib);
+              route_entry_nexthop_blackhole_add (re);
               break;
            }
        }
@@ -1630,43 +1630,43 @@ zread_ipv6_add (struct zserv *client, u_short length, struct zebra_vrf *zvrf)
         {
          if ((i < nh_count) && !IN6_IS_ADDR_UNSPECIFIED (&nexthops[i])) {
             if ((i < if_count) && ifindices[i])
-              nexthop = rib_nexthop_ipv6_ifindex_add (rib, &nexthops[i], ifindices[i]);
+              nexthop = route_entry_nexthop_ipv6_ifindex_add (re, &nexthops[i], ifindices[i]);
             else
-             nexthop = rib_nexthop_ipv6_add (rib, &nexthops[i]);
+             nexthop = route_entry_nexthop_ipv6_add (re, &nexthops[i]);
             if (CHECK_FLAG (message, ZAPI_MESSAGE_LABEL))
               nexthop_add_labels (nexthop, nexthop->nh_label_type, 1, &labels[i]);
           }
           else {
             if ((i < if_count) && ifindices[i])
-             rib_nexthop_ifindex_add (rib, ifindices[i]);
+             route_entry_nexthop_ifindex_add (re, ifindices[i]);
           }
        }
     }
 
   /* Distance. */
   if (CHECK_FLAG (message, ZAPI_MESSAGE_DISTANCE))
-    rib->distance = stream_getc (s);
+    re->distance = stream_getc (s);
 
   /* Metric. */
   if (CHECK_FLAG (message, ZAPI_MESSAGE_METRIC))
-    rib->metric = stream_getl (s);
+    re->metric = stream_getl (s);
     
   /* Tag */
   if (CHECK_FLAG (message, ZAPI_MESSAGE_TAG))
-    rib->tag = stream_getl (s);
+    re->tag = stream_getl (s);
   else
-    rib->tag = 0;
+    re->tag = 0;
 
   if (CHECK_FLAG (message, ZAPI_MESSAGE_MTU))
-    rib->mtu = stream_getl (s);
+    re->mtu = stream_getl (s);
   else
-    rib->mtu = 0;
+    re->mtu = 0;
 
   /* VRF ID */
-  rib->vrf_id = zvrf_id (zvrf);
-  rib->table = zvrf->table_id;
+  re->vrf_id = zvrf_id (zvrf);
+  re->table = zvrf->table_id;
 
-  ret = rib_add_multipath (AFI_IP6, safi, &p, src_pp, rib);
+  ret = rib_add_multipath (AFI_IP6, safi, &p, src_pp, re);
   /* Stats */
   if (ret > 0)
     client->v6_route_add_cnt++;
index 2fafd040cfc49df619f3660464d902e8b734e886..dcc98d83f75c9a7206f9f6d56edd6fe830494391 100644 (file)
@@ -162,7 +162,7 @@ extern void nbr_connected_add_ipv6 (struct interface *, struct in6_addr *);
 extern void nbr_connected_delete_ipv6 (struct interface *, struct in6_addr *);
 extern int zsend_interface_update (int, struct zserv *, struct interface *);
 extern int zsend_redistribute_route (int, struct zserv *, struct prefix *,
-                                     struct prefix *, struct rib *);
+                                     struct prefix *, struct route_entry *);
 extern int zsend_router_id_update (struct zserv *, struct prefix *,
                                    vrf_id_t);
 extern int zsend_interface_vrf_update (struct zserv *, struct interface *,