X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fip%2Fip6.h;h=5e16f9905344869d6ba6faaef3d99e7ca183b752;hb=59f71132edffcfa1b94c400736575bd55bdbd7d7;hp=575c6a0eec5251ac7777ba4a3872a307a1dd04c7;hpb=cbe25aab3be72154f2c706c39eeba6a77f34450f;p=vpp.git diff --git a/src/vnet/ip/ip6.h b/src/vnet/ip/ip6.h index 575c6a0eec5..5e16f990534 100644 --- a/src/vnet/ip/ip6.h +++ b/src/vnet/ip/ip6.h @@ -47,6 +47,7 @@ #include #include #include +#include #include #include #include @@ -253,6 +254,7 @@ extern vlib_node_registration_t ip6_rewrite_local_node; extern vlib_node_registration_t ip6_discover_neighbor_node; extern vlib_node_registration_t ip6_glean_node; extern vlib_node_registration_t ip6_midchain_node; +extern vlib_node_registration_t ip6_punt_node; extern void ip6_forward_next_trace (vlib_main_t * vm, vlib_node_runtime_t * node, @@ -608,6 +610,16 @@ vlib_buffer_push_ip6 (vlib_main_t * vm, vlib_buffer_t * b, 0 /* flow label */ ); } + +always_inline u32 +vlib_buffer_get_ip6_fib_index (vlib_buffer_t * b) +{ + u32 fib_index, sw_if_index; + sw_if_index = vnet_buffer (b)->sw_if_index[VLIB_RX]; + fib_index = vnet_buffer (b)->sw_if_index[VLIB_TX]; + return (fib_index == (u32) ~ 0) ? + vec_elt (ip6_main.fib_index_by_sw_if_index, sw_if_index) : fib_index; +} #endif /* included_ip_ip6_h */ /*