aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/mpls
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/mpls
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/mpls')
-rw-r--r--src/vnet/mpls/mpls_output.c12
-rw-r--r--src/vnet/mpls/mpls_tunnel.c5
2 files changed, 13 insertions, 4 deletions
diff --git a/src/vnet/mpls/mpls_output.c b/src/vnet/mpls/mpls_output.c
index 0dc12b8d5bd..22e6c1062c3 100644
--- a/src/vnet/mpls/mpls_output.c
+++ b/src/vnet/mpls/mpls_output.c
@@ -185,8 +185,12 @@ mpls_output_inline (vlib_main_t * vm,
}
if (is_midchain)
{
- adj0->sub_type.midchain.fixup_func(vm, adj0, p0);
- adj1->sub_type.midchain.fixup_func(vm, adj1, p1);
+ adj0->sub_type.midchain.fixup_func
+ (vm, adj0, p0,
+ adj0->sub_type.midchain.fixup_data);
+ adj1->sub_type.midchain.fixup_func
+ (vm, adj1, p1,
+ adj1->sub_type.midchain.fixup_data);
}
p0->error = error_node->errors[error0];
@@ -266,7 +270,9 @@ mpls_output_inline (vlib_main_t * vm,
}
if (is_midchain)
{
- adj0->sub_type.midchain.fixup_func(vm, adj0, p0);
+ adj0->sub_type.midchain.fixup_func
+ (vm, adj0, p0,
+ adj0->sub_type.midchain.fixup_data);
}
p0->error = error_node->errors[error0];
diff --git a/src/vnet/mpls/mpls_tunnel.c b/src/vnet/mpls/mpls_tunnel.c
index efd9e2dbc84..8ed2c409ce8 100644
--- a/src/vnet/mpls/mpls_tunnel.c
+++ b/src/vnet/mpls/mpls_tunnel.c
@@ -377,7 +377,8 @@ mpls_tunnel_admin_up_down (vnet_main_t * vnm,
static void
mpls_tunnel_fixup (vlib_main_t *vm,
ip_adjacency_t *adj,
- vlib_buffer_t *b0)
+ vlib_buffer_t *b0,
+ const void*data)
{
/*
* A no-op w.r.t. the header. but reset the 'have we pushed any
@@ -403,6 +404,7 @@ mpls_tunnel_update_adj (vnet_main_t * vnm,
case IP_LOOKUP_NEXT_ARP:
case IP_LOOKUP_NEXT_GLEAN:
adj_nbr_midchain_update_rewrite(ai, mpls_tunnel_fixup,
+ NULL,
ADJ_FLAG_NONE,
mpls_tunnel_build_rewrite_i());
break;
@@ -412,6 +414,7 @@ mpls_tunnel_update_adj (vnet_main_t * vnm,
* There's no MAC fixup, so the last 2 parameters are 0
*/
adj_mcast_midchain_update_rewrite(ai, mpls_tunnel_fixup,
+ NULL,
ADJ_FLAG_NONE,
mpls_tunnel_build_rewrite_i(),
0, 0);