summaryrefslogtreecommitdiff
path: root/zebra/rib.h
diff options
context:
space:
mode:
authorDenis Ovsienko <linux@pilot.org.ua>2008-06-02 12:03:22 +0000
committerDenis Ovsienko <linux@pilot.org.ua>2008-06-02 12:03:22 +0000
commite96f92034dad1a70c92ad4ad863a5259c122cecb (patch)
treec3b9bebef0fe2059182b31b43243289b5c7248e3 /zebra/rib.h
parenta15cfd16fcdec39588ce2f780671ba7c6de0b919 (diff)
+ initial edition of meta-queue for RIB updates processing (bug #431)
Diffstat (limited to 'zebra/rib.h')
-rw-r--r--zebra/rib.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/zebra/rib.h b/zebra/rib.h
index 9621f2c8..887ed3c2 100644
--- a/zebra/rib.h
+++ b/zebra/rib.h
@@ -40,7 +40,7 @@ struct rib
{
/* Status Flags for the *route_node*, but kept in the head RIB.. */
u_char rn_status;
-#define RIB_ROUTE_QUEUED (1 << 0)
+#define RIB_ROUTE_QUEUED(x) (1 << (x))
/* Link list. */
struct rib *next;
@@ -83,6 +83,20 @@ struct rib
u_char nexthop_fib_num;
};
+/* meta-queue structure:
+ * sub-queue 0: connected, kernel
+ * sub-queue 1: static
+ * sub-queue 2: RIP, RIPng, OSPF, OSPF6, IS-IS
+ * sub-queue 3: iBGP, eBGP
+ * sub-queue 4: any other origin (if any)
+ */
+#define MQ_SIZE 5
+struct meta_queue
+{
+ struct list *subq[MQ_SIZE];
+ u_int32_t size; /* sum of lengths of all subqueues */
+};
+
/* Static route information. */
struct static_ipv4
{