summaryrefslogtreecommitdiffstats
path: root/plugins/ila-plugin/ila/ila.h
diff options
context:
space:
mode:
authorNeale Ranns <nranns@cisco.com>2016-08-25 15:29:12 +0100
committerDamjan Marion <dmarion.lists@gmail.com>2016-09-21 17:37:39 +0000
commit0bfe5d8c792abcdbcf27bfcc7b7b353fba04aee2 (patch)
treed600b0e2e693e766e722936744930d3bebac493c /plugins/ila-plugin/ila/ila.h
parent60537f3d83e83d0ce10a620ca99aad4eddf85f5e (diff)
A Protocol Independent Hierarchical FIB (VPP-352)
Main Enhancements: - Protocol Independent FIB API - Hierarchical FIB entries. Dynamic recursive route resolution. - Extranet Support. - Integration of IP and MPLS forwarding. - Separation of FIB and Adjacency databases. - Data-Plane Object forwarding model. Change-Id: I52dc815c0d0aa8b493e3cf6b978568f3cc82296c Signed-off-by: Neale Ranns <nranns@cisco.com>
Diffstat (limited to 'plugins/ila-plugin/ila/ila.h')
-rw-r--r--plugins/ila-plugin/ila/ila.h27
1 files changed, 22 insertions, 5 deletions
diff --git a/plugins/ila-plugin/ila/ila.h b/plugins/ila-plugin/ila/ila.h
index b800fdd7b7a..657511f00f2 100644
--- a/plugins/ila-plugin/ila/ila.h
+++ b/plugins/ila-plugin/ila/ila.h
@@ -18,6 +18,7 @@
#include <vnet/vnet.h>
#include <vnet/ip/ip.h>
+#include <vnet/fib/fib_node.h>
#include <vppinfra/bihash_24_8.h>
#include <vppinfra/bihash_template.h>
@@ -59,17 +60,32 @@ typedef enum {
} ila_direction_t;
typedef struct {
+ /**
+ * Fib Node base class
+ */
+ fib_node_t ila_fib_node;
ila_type_t type;
ip6_address_t sir_address;
ip6_address_t ila_address;
- u32 ila_adj_index;
+ ip6_address_t next_hop;
ila_csum_mode_t csum_mode;
ila_direction_t dir;
-} ila_entry_t;
-typedef struct {
- u32 entry_index;
-} ila_adj_data_t;
+ /**
+ * The FIB entry index for the next-hop
+ */
+ fib_node_index_t next_hop_fib_entry_index;
+
+ /**
+ * The child index on the FIB entry
+ */
+ u32 next_hop_child_index;
+
+ /**
+ * The next DPO in the grpah to follow
+ */
+ dpo_id_t ila_dpo;
+} ila_entry_t;
typedef struct {
ila_entry_t *entries; //Pool of ILA entries
@@ -87,6 +103,7 @@ typedef struct {
typedef struct {
ila_type_t type;
ip6_address_t sir_address;
+ ip6_address_t next_hop_address;
u64 locator;
u32 vnid;
u32 local_adj_index;