diff options
author | Denis Ovsienko <linux@pilot.org.ua> | 2008-06-02 12:03:22 +0000 |
---|---|---|
committer | Denis Ovsienko <linux@pilot.org.ua> | 2008-06-02 12:03:22 +0000 |
commit | e96f92034dad1a70c92ad4ad863a5259c122cecb (patch) | |
tree | c3b9bebef0fe2059182b31b43243289b5c7248e3 /zebra/rib.h | |
parent | a15cfd16fcdec39588ce2f780671ba7c6de0b919 (diff) |
+ initial edition of meta-queue for RIB updates processing (bug #431)
Diffstat (limited to 'zebra/rib.h')
-rw-r--r-- | zebra/rib.h | 16 |
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 { |