summaryrefslogtreecommitdiffstats
path: root/src/vnet/adj/adj_midchain.c
diff options
context:
space:
mode:
authorNeale Ranns <nranns@cisco.com>2018-01-29 10:43:33 -0800
committerFlorin Coras <florin.coras@gmail.com>2018-01-30 08:54:29 +0000
commitdb14f5aff69311d13a0a90baa3567e92f3faa783 (patch)
tree2ee6edb0d8b82b840fdc90b62f782ea0b95bc8f0 /src/vnet/adj/adj_midchain.c
parentbb16d3ffecd357907d01f2785ac78edf0292cfd3 (diff)
Allow the provider of a midchain adjacency to pass context data that is returned in the fixup function
Change-Id: I458e6e03b03e27775df33a2fd302743126d6ac44 Signed-off-by: Neale Ranns <nranns@cisco.com>
Diffstat (limited to 'src/vnet/adj/adj_midchain.c')
-rw-r--r--src/vnet/adj/adj_midchain.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/vnet/adj/adj_midchain.c b/src/vnet/adj/adj_midchain.c
index 370fa4652f8..9fd3246b15a 100644
--- a/src/vnet/adj/adj_midchain.c
+++ b/src/vnet/adj/adj_midchain.c
@@ -460,6 +460,7 @@ adj_nbr_midchain_get_feature_node (ip_adjacency_t *adj)
void
adj_midchain_setup (adj_index_t adj_index,
adj_midchain_fixup_t fixup,
+ const void *data,
adj_flags_t flags)
{
u32 feature_index, tx_node;
@@ -471,6 +472,7 @@ adj_midchain_setup (adj_index_t adj_index,
adj = adj_get(adj_index);
adj->sub_type.midchain.fixup_func = fixup;
+ adj->sub_type.midchain.fixup_data = data;
adj->ia_flags |= flags;
arc_index = adj_midchain_get_feature_arc_index_for_link_type (adj);
@@ -503,6 +505,7 @@ adj_midchain_setup (adj_index_t adj_index,
void
adj_nbr_midchain_update_rewrite (adj_index_t adj_index,
adj_midchain_fixup_t fixup,
+ const void *fixup_data,
adj_flags_t flags,
u8 *rewrite)
{
@@ -522,7 +525,7 @@ adj_nbr_midchain_update_rewrite (adj_index_t adj_index,
*/
ASSERT(NULL != rewrite);
- adj_midchain_setup(adj_index, fixup, flags);
+ adj_midchain_setup(adj_index, fixup, fixup_data, flags);
/*
* update the rewirte with the workers paused.