diff options
Diffstat (limited to 'src/vnet/mpls')
-rw-r--r-- | src/vnet/mpls/mpls_output.c | 12 | ||||
-rw-r--r-- | src/vnet/mpls/mpls_tunnel.c | 5 |
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); |