X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;ds=inline;f=lib%2Flibrte_fib%2Frte_fib6.h;h=66c71c84c95925009aa469228c6a1ae3322c925c;hb=7c5e68cb267388314664eb14cf00d65c2569af74;hp=33221236bf9ff1287aefc424c48613728f3ab40d;hpb=40d41a8a7b342f2cb77ceb500dacea87421b9d49;p=dpdk.git diff --git a/lib/librte_fib/rte_fib6.h b/lib/librte_fib/rte_fib6.h index 33221236bf..66c71c84c9 100644 --- a/lib/librte_fib/rte_fib6.h +++ b/lib/librte_fib/rte_fib6.h @@ -14,15 +14,21 @@ #include +#ifdef __cplusplus +extern "C" { +#endif + #define RTE_FIB6_IPV6_ADDR_SIZE 16 /** Maximum depth value possible for IPv6 FIB. */ #define RTE_FIB6_MAXDEPTH 128 struct rte_fib6; +struct rte_rib6; /** Type of FIB struct */ enum rte_fib6_type { RTE_FIB6_DUMMY, /**< RIB6 tree based FIB */ + RTE_FIB6_TRIE, /**< TRIE based fib */ RTE_FIB6_TYPE_MAX }; @@ -40,12 +46,24 @@ enum rte_fib6_op { RTE_FIB6_DEL, }; +enum rte_fib_trie_nh_sz { + RTE_FIB6_TRIE_2B = 1, + RTE_FIB6_TRIE_4B, + RTE_FIB6_TRIE_8B +}; + /** FIB configuration structure */ struct rte_fib6_conf { enum rte_fib6_type type; /**< Type of FIB struct */ /** Default value returned on lookup if there is no route */ uint64_t default_nh; int max_routes; + union { + struct { + enum rte_fib_trie_nh_sz nh_sz; + uint32_t num_tbl8; + } trie; + }; }; /** @@ -176,4 +194,8 @@ __rte_experimental struct rte_rib6 * rte_fib6_get_rib(struct rte_fib6 *fib); +#ifdef __cplusplus +} +#endif + #endif /* _RTE_FIB6_H_ */