X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fl2%2Fl2_output.c;h=31e3f067749b802147545ab322d271188358795e;hb=4d5b917;hp=1fa042ffd546e1108bea7e05e78c1df8fb283dbd;hpb=812b32dd8f637118bf65de2cdff0e95b421a963b;p=vpp.git diff --git a/src/vnet/l2/l2_output.c b/src/vnet/l2/l2_output.c index 1fa042ffd54..31e3f067749 100644 --- a/src/vnet/l2/l2_output.c +++ b/src/vnet/l2/l2_output.c @@ -60,7 +60,7 @@ format_l2_output_features (u8 * s, va_list * args) int i; for (i = L2OUTPUT_N_FEAT - 1; i >= 0; i--) if (feature_bitmap & (1 << i)) - s = format (s, "%10s (%s)\n", display_names[i], l2output_feat_names[i]); + s = format (s, "%17s (%s)\n", display_names[i], l2output_feat_names[i]); return s; } @@ -76,7 +76,6 @@ typedef struct u8 raw[12]; /* raw data */ } l2output_trace_t; -#ifndef CLIB_MARCH_VARIANT /* packet trace format function */ static u8 * format_l2output_trace (u8 * s, va_list * args) @@ -103,7 +102,6 @@ static char *l2output_error_strings[] = { foreach_l2output_error #undef _ }; -#endif /** * Check for split horizon violations. @@ -262,8 +260,12 @@ l2output_process_batch (vlib_main_t * vm, vlib_node_runtime_t * node, { u32 feature_bitmap = config->feature_bitmap & ~L2OUTPUT_FEAT_OUTPUT; if (config->shg == 0 && feature_bitmap == 0) - l2output_process_batch_inline (vm, node, config, b, cdo, next, n_left, - l2_efp, l2_vtr, l2_pbb, 0, 0); + { + if ((l2_efp | l2_vtr | l2_pbb) == 0) + return; + l2output_process_batch_inline (vm, node, config, b, cdo, next, n_left, + l2_efp, l2_vtr, l2_pbb, 0, 0); + } else if (config->shg == 0) l2output_process_batch_inline (vm, node, config, b, cdo, next, n_left, l2_efp, l2_vtr, l2_pbb, 0, 1); @@ -430,7 +432,6 @@ VLIB_NODE_FN (l2output_node) (vlib_main_t * vm, return frame->n_vectors; } -#ifndef CLIB_MARCH_VARIANT /* *INDENT-OFF* */ VLIB_REGISTER_NODE (l2output_node) = { .name = "l2-output", @@ -479,13 +480,12 @@ typedef enum * this sw_if_index, l2-output will send packets for this sw_if_index to the * l2-output-bad-intf node which just setup the proper drop reason before * sending packets to the error-drop node to drop the packet. Then, stale L2FIB - * entries for delted tunnels won't cause possible packet or memory corrpution. + * entries for deleted tunnels won't cause possible packet or memory corruption. */ -static vlib_node_registration_t l2output_bad_intf_node; -static uword -l2output_bad_intf_node_fn (vlib_main_t * vm, - vlib_node_runtime_t * node, vlib_frame_t * frame) +VLIB_NODE_FN (l2output_bad_intf_node) (vlib_main_t * vm, + vlib_node_runtime_t * node, + vlib_frame_t * frame) { u32 n_left_from, *from, *to_next; l2output_next_t next_index = 0; @@ -539,8 +539,7 @@ l2output_bad_intf_node_fn (vlib_main_t * vm, } /* *INDENT-OFF* */ -VLIB_REGISTER_NODE (l2output_bad_intf_node,static) = { - .function = l2output_bad_intf_node_fn, +VLIB_REGISTER_NODE (l2output_bad_intf_node) = { .name = "l2-output-bad-intf", .vector_size = sizeof (u32), .type = VLIB_NODE_TYPE_INTERNAL, @@ -555,8 +554,6 @@ VLIB_REGISTER_NODE (l2output_bad_intf_node,static) = { [0] = "error-drop", }, }; - -VLIB_NODE_FUNCTION_MULTIARCH (l2output_bad_intf_node, l2output_bad_intf_node_fn); /* *INDENT-ON* */ static clib_error_t * @@ -588,6 +585,7 @@ l2output_init (vlib_main_t * vm) VLIB_INIT_FUNCTION (l2output_init); +#ifndef CLIB_MARCH_VARIANT /** Create a mapping in the next node mapping table for the given sw_if_index. */ void l2output_create_output_node_mapping (vlib_main_t * vlib_main, @@ -614,7 +612,8 @@ l2output_intf_config (u32 sw_if_index) /** Enable (or disable) the feature in the bitmap for the given interface. */ void -l2output_intf_bitmap_enable (u32 sw_if_index, u32 feature_bitmap, u32 enable) +l2output_intf_bitmap_enable (u32 sw_if_index, + l2output_feat_masks_t feature_bitmap, u32 enable) { l2output_main_t *mp = &l2output_main; l2_output_config_t *config;