X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fadj%2Fadj_midchain.c;h=33da0ed829e1df46c3816393d7e673316cd214c5;hb=14053c9db;hp=f8a39494fb9321f20eb46a83d4bed78af5e74496;hpb=8feeaff56fa9a4fbdfc06131f28a1060ffd9645d;p=vpp.git diff --git a/src/vnet/adj/adj_midchain.c b/src/vnet/adj/adj_midchain.c index f8a39494fb9..33da0ed829e 100644 --- a/src/vnet/adj/adj_midchain.c +++ b/src/vnet/adj/adj_midchain.c @@ -69,22 +69,13 @@ adj_midchain_tx_inline (vlib_main_t * vm, while (n_left_from >= 8 && n_left_to_next > 4) { + const ip_adjacency_t *adj0, *adj1, *adj2, *adj3; + const dpo_id_t *dpo0, *dpo1, *dpo2, *dpo3; + vlib_buffer_t * b0, *b1, *b2, *b3; u32 bi0, adj_index0, next0; - const ip_adjacency_t * adj0; - const dpo_id_t *dpo0; - vlib_buffer_t * b0; u32 bi1, adj_index1, next1; - const ip_adjacency_t * adj1; - const dpo_id_t *dpo1; - vlib_buffer_t * b1; u32 bi2, adj_index2, next2; - const ip_adjacency_t * adj2; - const dpo_id_t *dpo2; - vlib_buffer_t * b2; u32 bi3, adj_index3, next3; - const ip_adjacency_t * adj3; - const dpo_id_t *dpo3; - vlib_buffer_t * b3; /* Prefetch next iteration. */ { @@ -522,16 +513,11 @@ adj_nbr_midchain_update_rewrite (adj_index_t adj_index, * one time only update. since we don't support changing the tunnel * src,dst, this is all we need. */ - ASSERT((adj->lookup_next_index == IP_LOOKUP_NEXT_ARP) || - (adj->lookup_next_index == IP_LOOKUP_NEXT_GLEAN) || - (adj->lookup_next_index == IP_LOOKUP_NEXT_BCAST)); - - /* - * tunnels can always provide a rewrite. - */ - ASSERT(NULL != rewrite); - - adj_midchain_setup(adj_index, fixup, fixup_data, flags); + if (adj->lookup_next_index != IP_LOOKUP_NEXT_MIDCHAIN || + adj->lookup_next_index != IP_LOOKUP_NEXT_MCAST_MIDCHAIN) + { + adj_midchain_setup(adj_index, fixup, fixup_data, flags); + } /* * update the rewrite with the workers paused. @@ -704,6 +690,8 @@ format_adj_midchain (u8* s, va_list *ap) ip_adjacency_t * adj = adj_get(index); s = format (s, "%U", format_vnet_link, adj->ia_link); + if (adj->rewrite_header.flags & VNET_REWRITE_HAS_FEATURES) + s = format(s, " [features]"); s = format (s, " via %U", format_ip46_address, &adj->sub_type.nbr.next_hop, adj_proto_to_46(adj->ia_nh_proto));