aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/interface_cli.c
AgeCommit message (Expand)AuthorFilesLines
2021-01-26interface: remove vnet_device_input_runtime_tMohammed Hawari1-98/+0
2021-01-22interface: fix rx-placement api/cli for new infraMohammed Hawari1-43/+34
2021-01-21interface: rx queue infra rework, part oneDamjan Marion1-20/+69
2020-12-15classify: add pcap/trace classfier mgmt API callsJon Loeliger1-5/+3
2020-12-14misc: refactor clib_bitmap_foreach macroDamjan Marion1-6/+6
2020-12-14misc: move to new pool_foreach macrosDamjan Marion1-10/+10
2020-11-13ethernet: mac must support 64-bits loadsBenoît Ganne1-2/+2
2020-10-08interface: shorten vnet_hw_if_rx_modeDamjan Marion1-11/+11
2020-10-08l2: input performanceNeale Ranns1-21/+2
2020-09-09interface: support configuring RSS steering queuesChenmin Sun1-0/+83
2020-09-02misc: fix pcap [rx|tx|drop] filename stem overflowBenoît Ganne1-1/+1
2020-08-06misc: harmonize namesDave Barach1-1/+2
2020-08-05interface: add pcap trace data preallocationDave Barach1-4/+46
2020-07-24interface: fix show/clear hardware-interfaces string overflowBenoît Ganne1-5/+19
2020-06-16interface: add minimal vpp pkt trace for error-dropDave Barach1-1/+1
2020-01-27classify: pcap / packet trace debug CLI bugsDave Barach1-1/+1
2020-01-14classify: Reduce the include dependencies on vnet_classify.hNeale Ranns1-0/+1
2019-12-19interface: Prevent bad inner-dot1q any exact-match configurationJon Loeliger1-3/+3
2019-11-12interface: Allow VLAN tag-rewrite on non-sub-interfaces too.Jon Loeliger1-2/+26
2019-10-09interface: callback to manage extra MAC addressesMatthew Smith1-0/+152
2019-09-26misc: add vnet classify filter set supportDave Barach1-7/+15
2019-09-23misc: unify pcap rx / tx / drop traceDave Barach1-65/+120
2019-09-23interface: use the correct condition for checking if the pcap fd is openAndrew Yourtchenko1-1/+1
2019-09-20misc: classifier-based packet trace filterDave Barach1-2/+19
2019-09-10misc: clean up "pcap [rx|tx] trace" debug CLIDave Barach1-168/+149
2019-08-20fix pcap_write functionJack Xu1-0/+2
2019-08-01interface: fix pcap tx/rx trace cli handlingJohn Lo1-9/+4
2019-05-17Add a debug-CLI leak-checkerDave Barach1-26/+14
2019-05-03mp_safe SW_INTERFACE_DUMP, SW_INTERFACE_DETAILS, SW_INTERFACE_TAG_ADD_DEL,Steven Luong1-0/+1
2019-04-16vpp-1647: fix typo in pcap_trace_command_internalDave Barach1-1/+1
2019-04-05fix pcap_trace cli output issueJack Xu1-2/+4
2019-02-26Move pcap rx/tx trace code out of the dpdk pluginDave Barach1-0/+286
2018-11-13L2 feautre bitmaps output verbose/non-verbose modeNeale Ranns1-2/+3
2018-10-23c11 safe string handling supportDave Barach1-1/+1
2018-09-26vnet: show interface rx-placement may display garbage charactersSteven1-1/+1
2018-09-24Trivial: Clean up some typos.Paul Vinciguerra1-4/+4
2018-08-24rx-placement: Add API call for interface rx-placementMohsin Kazmi1-23/+42
2018-07-20IP directed broadcastNeale Ranns1-0/+40
2018-06-11MTU: Software interface / Per-protocol MTU supportOle Troan1-14/+36
2018-05-27VPP-1294: add missing feature arc constraintDave Barach1-39/+51
2018-04-13Revert "MTU: Setting of MTU on software interface (instead of hardware interf...Damjan Marion1-20/+23
2018-04-13MTU: Setting of MTU on software interface (instead of hardware interface)Ole Troan1-23/+20
2018-03-18Remove unnumbered configuration on interface deleteNeale Ranns1-41/+13
2018-02-12Improve MTU handlingNeale Ranns1-6/+1
2018-01-13Improve "show xxx tunnel" and "show int addr" outputJohn Lo1-65/+45
2017-10-31Fix set interface mac address API to be endian neutralJohn Lo1-2/+2
2017-10-29devices: Add binary API for set interface <interface> rx-modeSteven1-18/+31
2017-10-04Set MAC address needs the HW interface indexNeale Ranns1-1/+3
2017-09-07Devices: Set interface rx-mode may cause SIGSEGV with nonexistent queueSteven1-2/+7
2017-08-15VPP-939: Update CLI Helptext for rx-placement commandsBilly McFall1-94/+264
>"invalid as address: '%U'", format_unformat_error, line_input); goto done; } if ((ret = lb_vip_find_index(&vip_prefix, vip_plen, &vip_index))) { error = clib_error_return (0, "lb_vip_find_index error %d", ret); goto done; } while (unformat_check_input (line_input) != UNFORMAT_END_OF_INPUT) { if (unformat(line_input, "%U", unformat_ip46_address, &as_addr, IP46_TYPE_ANY)) { vec_add1(as_array, as_addr); } else if (unformat(line_input, "del")) { del = 1; } else { error = clib_error_return (0, "parse error: '%U'", format_unformat_error, line_input); goto done; } } if (!vec_len(as_array)) { error = clib_error_return (0, "No AS address provided"); goto done; } lb_garbage_collection(); clib_warning("vip index is %d", vip_index); if (del) { if ((ret = lb_vip_del_ass(vip_index, as_array, vec_len(as_array)))) { error = clib_error_return (0, "lb_vip_del_ass error %d", ret); goto done; } } else { if ((ret = lb_vip_add_ass(vip_index, as_array, vec_len(as_array)))) { error = clib_error_return (0, "lb_vip_add_ass error %d", ret); goto done; } } done: unformat_free (line_input); vec_free(as_array); return error; } VLIB_CLI_COMMAND (lb_as_command, static) = { .path = "lb as", .short_help = "lb as <vip-prefix> [<address> [<address> [...]]] [del]", .function = lb_as_command_fn, }; static clib_error_t * lb_conf_command_fn (vlib_main_t * vm, unformat_input_t * input, vlib_cli_command_t * cmd) { lb_main_t *lbm = &lb_main; unformat_input_t _line_input, *line_input = &_line_input; ip4_address_t ip4 = lbm->ip4_src_address; ip6_address_t ip6 = lbm->ip6_src_address; u32 per_cpu_sticky_buckets = lbm->per_cpu_sticky_buckets; u32 per_cpu_sticky_buckets_log2 = 0; u32 flow_timeout = lbm->flow_timeout; int ret; clib_error_t *error = 0; if (!unformat_user (input, unformat_line_input, line_input)) return 0; while (unformat_check_input (line_input) != UNFORMAT_END_OF_INPUT) { if (unformat(line_input, "ip4-src-address %U", unformat_ip4_address, &ip4)) ; else if (unformat(line_input, "ip6-src-address %U", unformat_ip6_address, &ip6)) ; else if (unformat(line_input, "buckets %d", &per_cpu_sticky_buckets)) ; else if (unformat(line_input, "buckets-log2 %d", &per_cpu_sticky_buckets_log2)) { if (per_cpu_sticky_buckets_log2 >= 32) return clib_error_return (0, "buckets-log2 value is too high"); per_cpu_sticky_buckets = 1 << per_cpu_sticky_buckets_log2; } else if (unformat(line_input, "timeout %d", &flow_timeout)) ; else { error = clib_error_return (0, "parse error: '%U'", format_unformat_error, line_input); goto done; } } lb_garbage_collection(); if ((ret = lb_conf(&ip4, &ip6, per_cpu_sticky_buckets, flow_timeout))) { error = clib_error_return (0, "lb_conf error %d", ret); goto done; } done: unformat_free (line_input); return error; } VLIB_CLI_COMMAND (lb_conf_command, static) = { .path = "lb conf", .short_help = "lb conf [ip4-src-address <addr>] [ip6-src-address <addr>] [buckets <n>] [timeout <s>]", .function = lb_conf_command_fn, }; static clib_error_t * lb_show_command_fn (vlib_main_t * vm, unformat_input_t * input, vlib_cli_command_t * cmd) { vlib_cli_output(vm, "%U", format_lb_main); return NULL; } VLIB_CLI_COMMAND (lb_show_command, static) = { .path = "show lb", .short_help = "show lb", .function = lb_show_command_fn, }; static clib_error_t * lb_show_vips_command_fn (vlib_main_t * vm, unformat_input_t * input, vlib_cli_command_t * cmd) { unformat_input_t line_input; lb_main_t *lbm = &lb_main; lb_vip_t *vip; u8 verbose = 0; if (!unformat_user (input, unformat_line_input, &line_input)) return 0; if (unformat(&line_input, "verbose")) verbose = 1; pool_foreach(vip, lbm->vips, { vlib_cli_output(vm, "%U\n", verbose?format_lb_vip_detailed:format_lb_vip, vip); }); unformat_free (&line_input); return NULL; } VLIB_CLI_COMMAND (lb_show_vips_command, static) = { .path = "show lb vips", .short_help = "show lb vips [verbose]", .function = lb_show_vips_command_fn, };