X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Finterface_format.c;h=036ca53174c989c9a63158ca86eaa6fbc26e4d8e;hb=a840db21e8cce5f27f2a41bd245d59e6aeb8a932;hp=2b691a66071a6b7cd3203853d8806350f1e67071;hpb=c4665093cdb0a8122d9640b6f5b3acd627918f32;p=vpp.git diff --git a/src/vnet/interface_format.c b/src/vnet/interface_format.c index 2b691a66071..036ca53174c 100644 --- a/src/vnet/interface_format.c +++ b/src/vnet/interface_format.c @@ -42,6 +42,7 @@ #include #include #include +#include u8 * format_vtr (u8 * s, va_list * args) @@ -97,17 +98,17 @@ format_vnet_sw_interface_flags (u8 * s, va_list * args) } u8 * -format_vnet_hw_interface_rx_mode (u8 * s, va_list * args) +format_vnet_hw_if_rx_mode (u8 * s, va_list * args) { - vnet_hw_interface_rx_mode mode = va_arg (*args, vnet_hw_interface_rx_mode); + vnet_hw_if_rx_mode mode = va_arg (*args, vnet_hw_if_rx_mode); - if (mode == VNET_HW_INTERFACE_RX_MODE_POLLING) + if (mode == VNET_HW_IF_RX_MODE_POLLING) return format (s, "polling"); - if (mode == VNET_HW_INTERFACE_RX_MODE_INTERRUPT) + if (mode == VNET_HW_IF_RX_MODE_INTERRUPT) return format (s, "interrupt"); - if (mode == VNET_HW_INTERFACE_RX_MODE_ADAPTIVE) + if (mode == VNET_HW_IF_RX_MODE_ADAPTIVE) return format (s, "adaptive"); return format (s, "unknown"); @@ -142,9 +143,9 @@ format_vnet_hw_interface_rss_queues (u8 * s, va_list * args) if (bitmap) { /* *INDENT-OFF* */ - clib_bitmap_foreach (i, bitmap, ({ + clib_bitmap_foreach (i, bitmap) { s = format (s, "%u ", i); - })); + } /* *INDENT-ON* */ } @@ -181,8 +182,8 @@ format_vnet_hw_interface (u8 * s, va_list * args) { int hw_idx; s = format (s, "Slave-Idx:"); - clib_bitmap_foreach (hw_idx, hi->bond_info, s = - format (s, " %d", hw_idx)); + clib_bitmap_foreach (hw_idx, hi->bond_info) + s = format (s, " %d", hw_idx); } else if (dev_class->format_device_name) s = format (s, "%U", dev_class->format_device_name, hi->dev_instance); @@ -192,6 +193,21 @@ format_vnet_hw_interface (u8 * s, va_list * args) s = format (s, "\n%ULink speed: %U", format_white_space, indent + 2, format_vnet_hw_interface_link_speed, hi->link_speed); + if (vec_len (hi->rx_queue_indices)) + { + s = format (s, "\n%URX Queues:", format_white_space, indent + 2); + s = format (s, "\n%U%-6s%-15s%-10s", format_white_space, indent + 4, + "queue", "thread", "mode"); + for (int i = 0; i < vec_len (hi->rx_queue_indices); i++) + { + vnet_hw_if_rx_queue_t *rxq; + rxq = vnet_hw_if_get_rx_queue (vnm, hi->rx_queue_indices[i]); + s = format (s, "\n%U%-6u%-15U%-10U", format_white_space, indent + 4, + rxq->queue_id, format_vlib_thread_name_and_index, + rxq->thread_index, format_vnet_hw_if_rx_mode, rxq->mode); + } + } + if (hi->rss_queues) { s = format (s, "\n%URSS queues: %U", format_white_space, indent + 2, @@ -555,7 +571,7 @@ format_vnet_buffer_opaque (u8 * s, va_list * args) s = format (s, "l2.feature_bitmap_input: %U, L2.feature_bitmap_output: %U", - format_l2_input_features, o->l2.feature_bitmap, 0, + format_l2_input_feature_bitmap, o->l2.feature_bitmap, 0, format_l2_output_features, o->l2.feature_bitmap, 0); vec_add1 (s, '\n'); @@ -706,7 +722,7 @@ unformat_vnet_buffer_flags (unformat_input_t * input, va_list * args) while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) { /* Red herring, there is no such buffer flag */ - if (unformat (input, "avail8")) + if (unformat (input, "avail10")) return 0; #define _(bit,enum,str,verbose) \ else if (unformat (input, str)) \ @@ -724,6 +740,32 @@ unformat_vnet_buffer_flags (unformat_input_t * input, va_list * args) return rv; } +uword +unformat_vnet_buffer_offload_flags (unformat_input_t *input, va_list *args) +{ + u32 *flagp = va_arg (*args, u32 *); + int rv = 0; + u32 oflags = 0; + + while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) + { + if (0) + ; +#define _(bit, enum, str, verbose) \ + else if (unformat (input, str)) \ + { \ + oflags |= (1 << bit); \ + rv = 1; \ + } + foreach_vnet_buffer_offload_flag +#undef _ + else break; + } + if (rv) + *flagp = oflags; + return rv; +} + uword unformat_vnet_hw_interface (unformat_input_t * input, va_list * args) {