summaryrefslogtreecommitdiffstats
path: root/src/plugins/avf
AgeCommit message (Expand)AuthorFilesLines
2019-07-09vat: unload unused vat pluginsDave Barach1-19/+2
2019-06-25avf: fix clear hw statsFilip Tehlar3-2/+14
2019-06-18vppinfra: add format_hex_bytes_no_wrapDamjan Marion1-5/+5
2019-06-18avf: fix adminq enqueue errorsDamjan Marion2-5/+9
2019-06-18avf: add logging macros and improve loggingDamjan Marion3-13/+134
2019-06-14avf: update known issues section in README.mdDamjan Marion1-5/+1
2019-06-12avf: add README.md section about spoofing checkDamjan Marion1-0/+10
2019-06-05avf: enable promiscuous modeSteven Luong3-1/+18
2019-05-16init / exit function orderingDave Barach1-5/+6
2019-05-03plugins: clean up plugin descriptionsDave Wallace1-1/+1
2019-03-28Typos. A bunch of typos I've been collecting.Paul Vinciguerra1-3/+3
2019-02-22avf: fix eat own tail issue on txDamjan Marion1-3/+7
2019-02-22Add no-append flag to vlib_frame_tDamjan Marion1-0/+1
2019-02-19avf: fix feature arc, take twoDamjan Marion1-1/+2
2019-02-19avf: fix feature arcDamjan Marion1-0/+3
2019-02-14Add -fno-common compile optionBenoƮt Ganne1-1/+1
2019-02-09buffers: fix typoDamjan Marion1-1/+1
2019-02-06buffers: make buffer data size configurable from startup configDamjan Marion1-1/+1
2019-01-30buffers: add missing ref_count = 1 in driversDamjan Marion1-0/+1
2019-01-30buffers: major cleanup and improvementsDamjan Marion3-2/+10
2019-01-24avf: fix queue enable issueDamjan Marion1-8/+11
2019-01-20buffers: remove VLIB_BUFFER_DEFAULT_FREE_LIST macro and fl->n_data_bytesDamjan Marion1-1/+1
2019-01-18Add vlib_buffer_copy_indices inline functionDamjan Marion2-2/+2
2019-01-18deprecate clib_memcpy64_x4Damjan Marion1-9/+15
2019-01-07avf: allocate descriptor memory from local numaDamjan Marion2-14/+31
2018-12-29avf: tx dequeue optimizationsDamjan Marion3-11/+34
2018-12-29avf: chained buffers rx supportDamjan Marion4-44/+132
2018-12-28avf: chained buffers tx supportDamjan Marion2-104/+109
2018-12-26avf: optimize RX functionDamjan Marion3-100/+86
2018-12-23avf: optimize rx ring refillDamjan Marion1-76/+53
2018-12-23avf: new ethernet-input supportDamjan Marion3-183/+44
2018-12-23avf: add option to specify interface nameDamjan Marion4-0/+11
2018-11-14Remove c-11 memcpy checks from perf-critical codeDave Barach2-21/+21
2018-11-13vlib rename vlib_frame_args(...) to vlib_frame_scalar_args(..)Damjan Marion1-1/+1
2018-11-08vnet: store hw interface speed in kbps instead of using flagsDamjan Marion1-5/+7
2018-11-08avf: update virtchnl header fileDamjan Marion1-18/+32
2018-10-23Numa-aware, growable physical memory allocator (pmalloc)Damjan Marion4-55/+68
2018-10-23c11 safe string handling supportDave Barach4-13/+13
2018-10-22vlib: pci improvementsDamjan Marion2-16/+18
2018-10-22vlib: introduce vlib_buffer_get_{pa,va,current_va,current_pa} inlinesDamjan Marion3-45/+40
2018-10-19avf: fix crash in rss key calculationDamjan Marion1-1/+1
2018-09-27avf: may crash if failed to allocate buffers to ringSteven1-1/+1
2018-09-24avf: rename interface nameDamjan Marion2-2/+2
2018-09-24Trivial: Clean up some typos.Paul Vinciguerra2-3/+3
2018-09-04avf: fix random rss keyJakub Grajciar1-2/+2
2018-08-30avf: RSS supportJakub Grajciar6-19/+80
2018-08-28avf: deal willth tx ring full properlyDamjan Marion3-11/+52
2018-08-28avf: add missing rx_redirect_to_node handlerDamjan Marion1-0/+20
2018-08-27cmake: Fix plugins .h includesMohsin Kazmi1-0/+4
2018-08-27cmake: add missing vat pluginsDamjan Marion1-0/+3
mp;l2_table_index)) idx_cnt++; else if (unformat (input, "del")) is_add = 0; else break; } if (sw_if_index == ~0) return clib_error_return (0, "Interface must be specified."); if (!idx_cnt) return clib_error_return (0, "Table index should be specified."); if (idx_cnt > 1) return clib_error_return (0, "Only one table index per API is allowed."); rv = vnet_set_policer_classify_intfc(vm, sw_if_index, ip4_table_index, ip6_table_index, l2_table_index, is_add); switch (rv) { case 0: break; case VNET_API_ERROR_NO_MATCHING_INTERFACE: return clib_error_return (0, "No such interface"); case VNET_API_ERROR_NO_SUCH_ENTRY: return clib_error_return (0, "No such classifier table"); } return 0; } VLIB_CLI_COMMAND (set_policer_classify_command, static) = { .path = "set policer classify", .short_help = "set policer classify interface <int> [ip4-table <index>]\n" " [ip6-table <index>] [l2-table <index>] [del]", .function = set_policer_classify_command_fn, }; static uword unformat_table_type (unformat_input_t * input, va_list * va) { u32 * r = va_arg (*va, u32 *); u32 tid; if (unformat (input, "ip4")) tid = POLICER_CLASSIFY_TABLE_IP4; else if (unformat (input, "ip6")) tid = POLICER_CLASSIFY_TABLE_IP6; else if (unformat (input, "l2")) tid = POLICER_CLASSIFY_TABLE_L2; else return 0; *r = tid; return 1; } static clib_error_t * show_policer_classify_command_fn (vlib_main_t * vm, unformat_input_t * input, vlib_cli_command_t * cmd) { policer_classify_main_t * pcm = &policer_classify_main; u32 type = POLICER_CLASSIFY_N_TABLES; u32 * vec_tbl; int i; if (unformat (input, "type %U", unformat_table_type, &type)) ; else return clib_error_return (0, "Type must be specified.");; if (type == POLICER_CLASSIFY_N_TABLES) return clib_error_return (0, "Invalid table type."); vec_tbl = pcm->classify_table_index_by_sw_if_index[type]; if (vec_len(vec_tbl)) vlib_cli_output (vm, "%10s%20s\t\t%s", "Intfc idx", "Classify table", "Interface name"); else vlib_cli_output (vm, "No tables configured."); for (i = 0; i < vec_len (vec_tbl); i++) { if (vec_elt(vec_tbl, i) == ~0) continue; vlib_cli_output (vm, "%10d%20d\t\t%U", i, vec_elt(vec_tbl, i), format_vnet_sw_if_index_name, pcm->vnet_main, i); } return 0; } VLIB_CLI_COMMAND (show_policer_classify_command, static) = { .path = "show classify policer", .short_help = "show classify policer type [ip4|ip6|l2]", .function = show_policer_classify_command_fn, };