]> git.puffer.fish Git - matthieu/frr.git/commitdiff
zebra: route node first next node
authorChirag Shah <chirag@cumulusnetworks.com>
Wed, 25 Mar 2020 04:41:49 +0000 (21:41 -0700)
committerChirag Shah <chirag@cumulusnetworks.com>
Tue, 12 May 2020 21:31:37 +0000 (14:31 -0700)
Add macros for route entry first and next node walk.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
zebra/rib.h

index 1667f179096627e1b9f708041cfedcfcc2fde20c..0b4455038712b123bfe7465cad03de7319a43f7d 100644 (file)
@@ -251,12 +251,22 @@ DECLARE_LIST(re_list, struct route_entry, next);
             (re) && ((next) = re_list_next(&((dest)->routes), (re)), 1);      \
             (re) = (next))
 
+#define RE_DEST_FIRST_ROUTE(dest, re)                                          \
+       ((re) = (dest) ? re_list_first(&((dest)->routes)) : NULL)
+
+#define RE_DEST_NEXT_ROUTE(dest, re)                                           \
+       ((re) = (dest) ? re_list_next(&((dest)->routes), (re)) : NULL)
+
 #define RNODE_FOREACH_RE(rn, re)                                               \
        RE_DEST_FOREACH_ROUTE (rib_dest_from_rnode(rn), re)
 
 #define RNODE_FOREACH_RE_SAFE(rn, re, next)                                    \
        RE_DEST_FOREACH_ROUTE_SAFE (rib_dest_from_rnode(rn), re, next)
 
+#define RNODE_FIRST_RE(rn, re) RE_DEST_FIRST_ROUTE(rib_dest_from_rnode(rn), re)
+
+#define RNODE_NEXT_RE(rn, re) RE_DEST_NEXT_ROUTE(rib_dest_from_rnode(rn), re)
+
 #if defined(HAVE_RTADV)
 /* Structure which hold status of router advertisement. */
 struct rtadv {