From 4c45595e3bb9f0b605e3102742831dad8915b309 Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Sun, 18 Oct 1998 22:24:41 +0000 Subject: o FIB flags now available for FIB users. o struct network: FIB flags used for kernel syncing. o struct network: `next' field deleted (historical relic). --- nest/route.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'nest/route.h') diff --git a/nest/route.h b/nest/route.h index 78f9446..39c6ef7 100644 --- a/nest/route.h +++ b/nest/route.h @@ -29,7 +29,7 @@ struct proto; struct fib_node { ip_addr prefix; /* In host order */ byte pxlen; - byte flags; /* ??? define them ??? */ + byte flags; /* User-defined */ byte pad0, pad1; /* ??? use ??? */ struct fib_node *next; /* Next in hash chain */ }; @@ -65,6 +65,7 @@ void fib_free(struct fib *); /* Destroy the fib */ * representing routes to given network. * Each of the RTE's contains variable data (the preference and protocol-dependent * metrics) and a pointer to a route attribute block common for many routes). + * It's guaranteed that there is at most one RTE for every (prefix,proto,source) triplet. */ typedef struct rtable { @@ -72,15 +73,16 @@ typedef struct rtable { byte tos; /* TOS for this table */ struct fib fib; char *name; /* Name of this table */ - /* FIXME: Data for kernel synchronization */ } rtable; typedef struct network { - struct fib_node n; + struct fib_node n; /* FIB flags hold kernel sync info (KRF_...) */ struct rte *routes; /* Available routes for this network */ - struct network *next; /* Next in Recalc Chain */ } net; +#define KRF_SEEN 1 /* Seen in kernel table during last scan */ +#define KRF_UPDATE 2 /* Need to update this entry */ + typedef struct rte { struct rte *next; struct rtattr *attrs; -- cgit v1.2.3