diff options
Diffstat (limited to 'vnet/vnet/lisp-gpe/ip_forward.c')
-rw-r--r-- | vnet/vnet/lisp-gpe/ip_forward.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/vnet/vnet/lisp-gpe/ip_forward.c b/vnet/vnet/lisp-gpe/ip_forward.c index 9d999faa0e7..a8d53ee3588 100644 --- a/vnet/vnet/lisp-gpe/ip_forward.c +++ b/vnet/vnet/lisp-gpe/ip_forward.c @@ -895,6 +895,12 @@ lgpe_ip4_lookup (vlib_main_t * vm, vlib_node_runtime_t * node, vnet_buffer (b0)->sw_if_index[VLIB_TX] = src_adj0->rewrite_header.sw_if_index; } + else + { + next0 = LGPE_IP4_LOOKUP_NEXT_LISP_CP_LOOKUP; + vnet_buffer (b0)->lisp.overlay_afi = LISP_AFI_IP; + } + if (src_fib_index1 != (u32) ~0) { ip4_src_fib_lookup_one (lgm, src_fib_index1, @@ -905,6 +911,11 @@ lgpe_ip4_lookup (vlib_main_t * vm, vlib_node_runtime_t * node, vnet_buffer (b1)->sw_if_index[VLIB_TX] = src_adj1->rewrite_header.sw_if_index; } + else + { + next1 = LGPE_IP4_LOOKUP_NEXT_LISP_CP_LOOKUP; + vnet_buffer (b1)->lisp.overlay_afi = LISP_AFI_IP; + } } vlib_validate_buffer_enqueue_x2(vm, node, next_index, to_next, @@ -949,6 +960,11 @@ lgpe_ip4_lookup (vlib_main_t * vm, vlib_node_runtime_t * node, vnet_buffer (b0)->sw_if_index[VLIB_TX] = src_adj0->rewrite_header.sw_if_index; } + else + { + next0 = LGPE_IP4_LOOKUP_NEXT_LISP_CP_LOOKUP; + vnet_buffer (b0)->lisp.overlay_afi = LISP_AFI_IP; + } vlib_validate_buffer_enqueue_x1(vm, node, next_index, to_next, n_left_to_next, bi0, next0); @@ -1111,6 +1127,12 @@ lgpe_ip6_lookup (vlib_main_t * vm, vlib_node_runtime_t * node, vnet_buffer (b0)->sw_if_index[VLIB_TX] = src_adj0->rewrite_header.sw_if_index; } + else + { + next0 = LGPE_IP4_LOOKUP_NEXT_LISP_CP_LOOKUP; + vnet_buffer (b0)->lisp.overlay_afi = LISP_AFI_IP6; + } + if (src_fib_index1 != (u32) ~0) { src_adj_index1 = ip6_src_fib_lookup (lgm, src_fib_index1, @@ -1121,6 +1143,11 @@ lgpe_ip6_lookup (vlib_main_t * vm, vlib_node_runtime_t * node, vnet_buffer (b1)->sw_if_index[VLIB_TX] = src_adj1->rewrite_header.sw_if_index; } + else + { + next1 = LGPE_IP4_LOOKUP_NEXT_LISP_CP_LOOKUP; + vnet_buffer (b1)->lisp.overlay_afi = LISP_AFI_IP6; + } } vlib_validate_buffer_enqueue_x2(vm, node, next_index, to_next, @@ -1166,6 +1193,11 @@ lgpe_ip6_lookup (vlib_main_t * vm, vlib_node_runtime_t * node, vnet_buffer (b0)->sw_if_index[VLIB_TX] = src_adj0->rewrite_header.sw_if_index; } + else + { + next0 = LGPE_IP4_LOOKUP_NEXT_LISP_CP_LOOKUP; + vnet_buffer (b0)->lisp.overlay_afi = LISP_AFI_IP6; + } vlib_validate_buffer_enqueue_x1(vm, node, next_index, to_next, n_left_to_next, bi0, next0); |