summaryrefslogtreecommitdiffstats
path: root/src/vnet/lisp-gpe
AgeCommit message (Expand)AuthorFilesLines
2019-05-16init / exit function orderingDave Barach1-1/+1
2019-04-08fixing typosJim Thompson1-1/+1
2018-12-07FIB recusrion loop checks traverse midchain adjacenciesNeale Ranns1-44/+10
2018-11-14Remove c-11 memcpy checks from perf-critical codeDave Barach1-1/+1
2018-10-23c11 safe string handling supportDave Barach7-30/+30
2018-10-22lisp-gpe: register udp port only if enabled (VPP-1468)Florin Coras1-5/+7
2018-09-25L2 BD: introduce a BD interface on which to send UU packetsNeale Ranns1-2/+2
2018-08-15Remove client_index field from replies in APIOndrej Fabry1-1/+0
2018-08-14Fix context field position in API definitionOndrej Fabry1-1/+1
2018-07-11avoid using thread local storage for thread indexDamjan Marion2-2/+2
2018-01-30Allow the provider of a midchain adjacency to pass context data that is retur...Neale Ranns1-1/+3
2018-01-23VPPAPIGEN: vppapigen replacement in Python PLY.Ole Troan1-1/+1
2018-01-11api: remove transport specific code from handlersFlorin Coras1-4/+4
2018-01-09api: refactor vlibmemoryFlorin Coras1-1/+1
2017-12-11ONE-33 "one statistics flush" throws assert when one counter not addedSwarup Nayak1-0/+3
2017-12-09BIER in non-MPLS netowrksNeale Ranns1-0/+2
2017-12-02gpe: fix gpe enable/disable commandFlorin Coras1-1/+1
2017-10-31LISP: add P-ITR/P-ETR/xTR API handlers, ONE-24Filip Tehlar6-9/+19
2017-10-24Add extern to *_main global variable declarations in header files.Dave Wallace1-1/+1
2017-10-09vppapigen: support per-file (major,minor,patch) version stampsDave Barach1-0/+2
2017-10-04[aarch64] Fixes CLI crashes on dpaa2 platform.Christophe Fontaine4-10/+10
2017-09-13gpe: initialize fib index for native forward entriesFlorin Coras1-4/+6
2017-09-11FIB table add/delete APINeale Ranns3-9/+22
2017-09-04LISP: re-fetch mapping before it expiresFilip Tehlar3-14/+58
2017-08-23Remove unused retval from gpe_native_fwd_rpath type definitionMarek Gradzki1-2/+0
2017-08-23gpe: add l2 lb countersFlorin Coras1-1/+5
2017-08-18gpe: fix sub-interface hash lookupFlorin Coras2-10/+10
2017-08-08L2 over MPLSNeale Ranns3-13/+15
2017-06-16LISP-GPE: add test CLI for NSHFilip Tehlar2-0/+132
2017-06-16Fix vni/dp_table endianness for gpe iface addition (VPP-882)Florin Coras1-6/+8
2017-06-16Fix gpe_native_fwd_rpaths_get (VPP-883)Florin Coras1-1/+3
2017-06-15Add VAT handlers for LISP-GPE APIFilip Tehlar2-11/+24
2017-06-09Fix gpe coverity issue (VPP-874)Florin Coras1-3/+8
2017-06-08LISP: add NSH supportFilip Tehlar2-4/+7
2017-06-08Add gpe native-forward static route supportFlorin Coras5-16/+402
2017-06-06Fix coverity issueFilip Tehlar1-0/+3
2017-06-05LISP-GPE: return index of newly created fwd entry, VPP-868Filip Tehlar4-2/+20
2017-06-05LISP: fix GPE entry dump, VPP-871Filip Tehlar1-5/+5
2017-05-26LISP: do not try to delete paths when fwd entry is negativeFilip Tehlar1-4/+7
2017-05-22LISP-GPE: add dump call for VNIs in useFilip Tehlar5-1/+74
2017-05-19Enforce Bridge Domain ID range to match 24-bit VNI rangeJohn Lo1-0/+6
2017-05-10completelly deprecate os_get_cpu_number, replace new occurencesDamjan Marion1-1/+1
2017-05-07Remove L2 GPE interface from bridge when deleting, VPP-833Florin Coras1-0/+6
2017-04-25"autoreply" flag: autogenerate standard xxx_reply_t messagesDave Barach1-44/+4
2017-04-24BD:unify bridge domain creation codeEyal Bari1-4/+3
2017-04-13Remove unsed parameter from fib_table_entry_special_add() (only used in FIB t...Neale Ranns1-2/+1
2017-04-13LISP: make statistics thread safeFilip Tehlar5-41/+65
2017-04-07MPLS McastNeale Ranns1-0/+1
2017-04-07Fix gpe dp args to allow for 32 bit bridge domain ids, VPP-690Florin Coras1-1/+1
2017-04-06Use thread local storage for thread indexDamjan Marion1-8/+8
="n">qos_source_t qs; FOR_EACH_QOS_SOURCE (qs) { while (qos_store_disable (sw_if_index, qs) == 0); } } return (NULL); } VNET_SW_INTERFACE_ADD_DEL_FUNCTION (qos_store_ip_interface_add_del); clib_error_t * qos_store_init (vlib_main_t * vm) { return 0; } VLIB_INIT_FUNCTION (qos_store_init); static clib_error_t * qos_store_cli (vlib_main_t * vm, unformat_input_t * input, vlib_cli_command_t * cmd) { vnet_main_t *vnm = vnet_get_main (); u32 sw_if_index, qs, value; u8 enable; qs = 0xff; enable = 1; sw_if_index = ~0; value = ~0; while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) { if (unformat (input, "%U", unformat_vnet_sw_interface, vnm, &sw_if_index)) ; else if (unformat (input, "%U", unformat_qos_source, &qs)) ; else if (unformat (input, "enable")) enable = 1; else if (unformat (input, "disable")) enable = 0; else if (unformat (input, "value &d", &value)) ; else break; } if (~0 == sw_if_index) return clib_error_return (0, "interface must be specified"); if (~0 == value) return clib_error_return (0, "value to be stored must be specified"); if (0xff == qs) return clib_error_return (0, "input location must be specified"); if (enable) qos_store_enable (sw_if_index, qs, value); else qos_store_disable (sw_if_index, qs); return (NULL); } /*? * Enable QoS bit storeing on an interface using the packet's input DSCP bits * Which input QoS bits to use are either; IP, MPLS or VLAN. If more than * one protocol is chosen (which is foolish) the higher layers override the * lower. * * @cliexpar * @cliexcmd{qos store ip GigEthernet0/1/0} ?*/ /* *INDENT-OFF* */ VLIB_CLI_COMMAND (qos_store_command, static) = { .path = "qos store", .short_help = "qos store <store-source> <INTERFACE> [disable]", .function = qos_store_cli, .is_mp_safe = 1, }; /* *INDENT-ON* */ static void qos_store_show_one_interface (vlib_main_t * vm, u32 sw_if_index) { u8 n_cfgs[QOS_N_SOURCES] = { }; qos_source_t qs; bool set; set = false; FOR_EACH_QOS_SOURCE (qs) { if (vec_len (qos_store_configs[qs]) <= sw_if_index) continue; if (0 != (n_cfgs[qs] = qos_store_configs[qs][sw_if_index].qst_n_cfgs)) set = true; } if (set) { vlib_cli_output (vm, " %U:", format_vnet_sw_if_index_name, vnet_get_main (), sw_if_index); FOR_EACH_QOS_SOURCE (qs) { if (n_cfgs[qs] != 0) vlib_cli_output (vm, " %U -> %d", format_qos_source, qs, qos_store_configs[qs][sw_if_index].qst_value); } } } static clib_error_t * qos_store_show (vlib_main_t * vm, unformat_input_t * input, vlib_cli_command_t * cmd) { vnet_main_t *vnm = vnet_get_main (); qos_source_t qs; u32 sw_if_index; sw_if_index = ~0; while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) { if (unformat (input, "%U", unformat_vnet_sw_interface, vnm, &sw_if_index)) ; } if (~0 == sw_if_index) { u32 ii, n_ints = 0; FOR_EACH_QOS_SOURCE (qs) { n_ints = clib_max (n_ints, vec_len (qos_store_configs[qs])); } for (ii = 0; ii < n_ints; ii++) { qos_store_show_one_interface (vm, ii); } } else qos_store_show_one_interface (vm, sw_if_index); return (NULL); } /*? * Show Egress Qos Maps * * @cliexpar * @cliexcmd{show qos egress map} ?*/ /* *INDENT-OFF* */ VLIB_CLI_COMMAND (qos_store_show_command, static) = { .path = "show qos store", .short_help = "show qos store [interface]", .function = qos_store_show, .is_mp_safe = 1, }; /* *INDENT-ON* */ /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */