summaryrefslogtreecommitdiffstats
path: root/src/vnet
AgeCommit message (Collapse)AuthorFilesLines
2018-06-05bond: send gratuitous arp when the active slave went down in active-backup modeSteven8-31/+107
- Modify the API send_ip6_na and send_ip4_garp to take sw_if_index instead of vnet_hw_interface_t and add call to build_ethernet_rewrite to support subinterface/vlan - Add code to bonding driver to send an event to bond_process when the first interface becomes active or when the active interface is down - Create a bond_process to walk the interface and the corresponding subinterfaces to send garp/ip6_na when an event is received. - Minor cleanup in bonding/node.c Note: dpdk bonding driver does not send garp/ip6_na for subinterfaces. There is no attempt to fix it here. But the infra is now done and should be easy to add the support. Change-Id: If3ecc4cd0fb3051330f7fa11ca0dab3e18557ce1 Signed-off-by: Steven <sluong@cisco.com>
2018-06-05VPP-1305: Add support for tagsJerome Tollet2-2/+18
Change-Id: I9e759037295fe675abe426e565a562b1ec1e7d33 Signed-off-by: Jerome Tollet <jtollet@cisco.com>
2018-06-05BIER CLI show commands; no crash on non-existant objects (VPP-1303)Neale Ranns3-6/+27
DBGvpp# sh bier disp entry DBGvpp# sh bier disp entry 0 No such BIER disp entry: 0 DBGvpp# sh bier disp table DBGvpp# sh bier disp table 0 No such BIER disp table: 0 DBGvpp# sh bier disp table 11 No such BIER disp table: 11 DBGvpp# DBGvpp# sh bier bift no BIFT entries DBGvpp# sh bier bift set 0 no BIFT entries DBGvpp# sh bier bift set 0 sd 0 bsl 0 no BIFT entries DBGvpp# DBGvpp# sh bier fib No BIER tables DBGvpp# sh bier fib 0 DBGvpp# sh bier fib 0 4 DBGvpp# sh bier fmask DBGvpp# sh bier fmask 2 No BIER f-mask 2 DBGvpp# sh bier imp DBGvpp# sh bier imp 0 No such BIER imposition: 0 Change-Id: Ibadac3441dd8a6d1b96bd9ee4358e28498875b95 Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-06-04ip4: optimize ip4_localFlorin Coras2-253/+319
"sh run" says the number of clocks for my tcp based throughput test dropped from ~43 to ~23 Change-Id: I719439ba7fc079ad36be1432c5d7cf74e3b70d73 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-06-04Remove unused GRE buffer meta-dataNeale Ranns1-6/+0
Change-Id: Ia8ef019742c13b1149916d51796cad6f50687162 Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-06-04flow:add enabled hw format functionEyal Bari2-0/+25
Change-Id: Ide1f76e9207b6022d5258a119f8d59cca85651b5 Signed-off-by: Eyal Bari <ebari@cisco.com>
2018-06-04ip: save fib index for buffer in ip lookupFlorin Coras5-114/+65
Avoids recomputing the fib index in ip local for locally delivered packets and should incur no extra cost when forwarding packets. Change-Id: Id826ffa8206392087327f154337eabc8a801b4d7 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-06-03Interface Tag: memset field in VOM, clear the tag in VPP on interface deleteNeale Ranns1-0/+1
Change-Id: Id97de732b5952d5d86202e7749c9e81cf8dbed87 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2018-06-01session: improve disconnect handlingFlorin Coras3-11/+37
If the caller is the session owning thread or the main thread with a worker barrier sync (cli/api) add an event to the pending disconnects vector in the session node and entirely avoid using the event queue. Useful for bursts of disconnects (like an app detach). If disconnects come from a processes, be willing to retry enqueueing the disconnect to the event queue multiple times. Change-Id: Ieece1f1091b713f94c41c703b6e805bc8498816a Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-05-31Improve L2FIB delete entry handling and "show l2fib" CLI optionsJohn Lo4-54/+69
Improve deletion of L2FIB MAC entry using l2fib_add_del API. If sw_if_index param specified in th API is non-zero, check that its value match that of the MAC entry to proceed with deletion. Improve "show l2fib" CLI to allow display of all entries, learned entries only, or added ovia CLI/API entries only. For added entry, show "no" under the age column to indicate entry does not age. Change-Id: I0bd2582c2b6bac268e551e4f8ca6dab2be4400ad Signed-off-by: John Lo <loj@cisco.com>
2018-05-30IPv6 for-us/receive multicast routes fixNeale Ranns1-0/+4
Change-Id: I5e29e16b4d45411b1a7c177b8d7156c5baefe6a1 Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-05-30session: fix v6 unbinds that use uri apiFlorin Coras1-2/+6
This api only supports default tables but v6 and v4 default tables are different. Change-Id: I7fe39251af99082278e84d7411511bdeca34e609 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-05-30session: fix session table retrievalFlorin Coras1-2/+2
Change-Id: If37d644a26132c42a04927f612eec5e891066451 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-05-30bonding: fix packet trace in bond-inputDamjan Marion1-5/+1
Change-Id: I00fc4a4553dabed7ef099227b8253ed4916ea5e4 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-05-29Add VLIB_NODE_FN() macro to simplify multiversioning of node functionsDamjan Marion3-72/+16
Change-Id: Ibab5e27277f618ceb2d543b9d6a1a5f191e7d1db Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-05-29af_packet: Add support for dump interfacesMohsin Kazmi4-1/+98
Change-Id: I8d8ecc80edb7665125ba625a3ce7b30d2dea88f0 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-05-29ipsec: fix IKEv2 crash when rsa cert is used for authenticationRadu Nicolau1-0/+1
Cause: EVP_MD_CTX object used but not initialized. Change-Id: I390b2acf580f16415685563fa52e56717efc7be7 Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
2018-05-28af-packet: Add support for loggingMohsin Kazmi3-38/+52
Change-Id: I4cc6a20b69cce2aa52768a27c5d455eb098224c8 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-05-28itf: Fix admin up down for AF_PACKET and vhost-userMohsin Kazmi3-12/+50
Change-Id: I84327197d59c72d0d046dd2cb4071bf74af6fc28 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-05-28Fix IP neighbor/arp pool full and static entry handlingJohn Lo2-166/+169
Move handling of IP neighbor pool full into main thread on entry creation and make sure static entriesare not deleted for reuse. Fix IPv6 neighbor handling on interface down and up so that static entries are not deleted. Change-Id: I073794949a41a5b86201e519ebe479febfc506c8 Signed-off-by: John Lo <loj@cisco.com>
2018-05-27proxy_arp: remove unused is_addMarek Gradzki1-2/+1
Change-Id: I1773d962b373693a737d39c0c97e8c53eb91545a Signed-off-by: Marek Gradzki <mgradzki@cisco.com>
2018-05-27ip4-input node reworkDamjan Marion2-125/+336
Gain is around 6 clocks per packet (22 to 16). Change-Id: Ia6f4293ea9062368a9a6b235c650591dbc0707d0 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-05-27bond-input performance optimizationDamjan Marion1-291/+261
Old code ~25 clocks/packet, new ~10. Change-Id: I202cd6cbafb1ab2296939634d674f7ffd28253fc Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-05-27VPP-1294: add missing feature arc constraintDave Barach5-51/+114
the ip4-dhcp-client-detect feature MUST run prior to nat44-out2in, or inbound dhcp broadcast packets will be dropped. Certain dhcp servers answer lease renewal dhcp-request packets with broadcast dhcp-acks, leading to unrecoverable lease loss. In detail, this constraint: VNET_FEATURE_INIT (ip4_snat_out2in, static) = { .arc_name = "ip4-unicast", .node_name = "nat44-out2in", .runs_after = VNET_FEATURES ("acl-plugin-in-ip4-fa"), }; doesn't get the job done: ip4-unicast: [17] nat44-out2in [23] ip4-dhcp-client-detect [26] ip4-not-enabled Add a proper constraint: VNET_FEATURE_INIT (ip4_snat_out2in, static) = { .arc_name = "ip4-unicast", .node_name = "nat44-out2in", .runs_after = VNET_FEATURES ("acl-plugin-in-ip4-fa", "ip4-dhcp-client-detect"), }; and the interface feature order is OK, at least in this regard: ip4-unicast: [17] ip4-dhcp-client-detect [18] nat44-out2in [26] ip4-not-enabled We need to carefully audit (especially) the ip4-unicast feature arc, which has [gasp] 37 features on it! Change-Id: I5e749ead7ab2a25d80839a331de6261e112977ad Signed-off-by: Dave Barach <dave@barachs.net>
2018-05-26Fix interface-rx-dpo-l2 node to setup l2_len in vnet bufferJohn Lo1-4/+16
Change-Id: Ic1fab1f3aba92bbdbfd281459562d1f9697ab465 Signed-off-by: John Lo <loj@cisco.com>
2018-05-26tcp: loss recovery improvements/fixesFlorin Coras8-146/+248
- fix newreno cwnd computation - reset snd_una_max on entering recovery - accept acks beyond snd_nxt but less than snd_congestion when in recovery - avoid entering fast recovery multiple times when using sacks - avoid as much as possible sending small segments when doing fast retransmit - more event logging Change-Id: I19dd151d7704e39d4eae06de3a26f5e124875366 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-05-25Add interface rx pcap tracingDave Barach1-15/+13
Should cost at most 1 clock per frame when not enabled. Add "pcap rx trace..." debug CLI, refactored "pcap tx trace" debug CLI to avoid duplicating code. Change-Id: I19ac75d1cf94a6a24c98facbf0753381d37963ea Signed-off-by: Dave Barach <dbarach@cisco.com>
2018-05-25Fix possible null pointer dereferenceJuraj Sloboda1-3/+14
Replace clib_warning with vlib_log_warn Change-Id: I6d0b8d97048b75f4418609264af0c14e19fad79b Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>
2018-05-25tcp: handle acks in close waitFlorin Coras2-1/+2
Thanks to Ning Li <muziding001@163.com> for reporting. Change-Id: I758bc6760ec5a9ec688172bc162a1873f96ab4f3 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-05-25bond: performance harvestingSteven4-133/+183
- hash is great. But it is a bit too slow for the DP. Use direct array indexing to quickly retrieve the slave interface. - the algorithm used by flow hash is great. But it is a bit too slow for the DP. Use l2_hash_hash() extracted from lb_hash.h which ECMP is using. It makes use of intrinsic crc32 instruction set. - shortcut modulo arithmetic when the operand is 2**x (where x up to 4) to avoid division instruction. - special case for link count == 1 in bond_tx_fn() - use clib_mem_unaligned to access data for the packet to avoid alignment error - Fix some typos for packet tracing. Change-Id: I8eae3ad497061c5473aa675ba894ee0211120d25 Signed-off-by: Steven <sluong@cisco.com>
2018-05-25ARP proxy dumpsNeale Ranns12-41/+279
Change-Id: I8335ebf266becf2f42bb3f28a17dfed8d9b08f97 Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-05-25VPP-1277: IPIP - Copy TOS/TC from inner packet to outer.Ole Troan5-18/+109
Add support for either copying TOS/TC from inner packet to outer, or set to fixed value. Change-Id: I716a95f875349acec94317b266c8cf9f2f81a785 Signed-off-by: Ole Troan <ot@cisco.com>
2018-05-24Rewrite of l2-output nodeDamjan Marion1-332/+280
Change-Id: I8cbd1eac80ae4aeb173d02786e9ccf3b4877304d Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-05-23VPP-1283: IPv6 PMTU missing MTU value in ICMP6 message.Ole Troan3-20/+32
Fix GRE/IPv6 setting of ip->payload_length (which has never worked). Change-Id: Ie68f1cc7bbb70489d6ec97356132c783f2345e1e Signed-off-by: Ole Troan <ot@cisco.com>
2018-05-23VPP-1283: IPv4 PMTU missing MTU value in ICMP4 message.Ole Troan2-32/+43
Change-Id: I7a4133c59ff45b0744b48e246a049d9f015026fc Signed-off-by: Ole Troan <ot@cisco.com>
2018-05-23VPPAPIGEN: Add union and enum support and IP4/IP6 address type.Ole Troan1-0/+37
Note: The Python, Java and C/C++ bindings must be updated before ip/ip_types.api can be used. ip_types.api: typedef ip4_address { u8 address[4]; }; typedef ip6_address { u8 address[16]; }; enum address_family { ADDRESS_IP4 = 0, ADDRESS_IP6, }; union address_union { vl_api_ip4_address_t ip4; vl_api_ip6_address_t ip6; }; typedef address { vl_api_address_family_t af; vl_api_address_union_t un; }; Change-Id: I22f67092f24db5bd650a03c6f446a84cd9fd1074 Signed-off-by: Ole Troan <ot@cisco.com>
2018-05-23tcp: cc improvements and fixesFlorin Coras5-26/+38
Change-Id: I6615bb612bcc3f795b5f822ea55209bb30ef35b5 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-05-22CSIT-928 dpdk/ipsec: performance improvementRadu Nicolau1-7/+5
Replace hash with a vector to improve performance. Plus other minor performance improvements. Change-Id: I3f0ebd909782ce3727f6360ce5ff5ddd131f8574 Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
2018-05-21tcp: unlock link-local adjacencies on connection cleanupFlorin Coras2-24/+56
Change-Id: I37705fb572045f42be4c2dabbd8460c8f8872167 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-05-20vector functions cleanup and improvementsDamjan Marion1-3/+2
Remove functions which have native C equivalent (i.e. _is_equal can be replaced with ==, _add with +) Add SSE4.2, AVX-512 implementations of splat, load_unaligned, store_unaligned, is_all_zero, is_equal, is_all_equal Change-Id: Ie80b0e482e7a76248ad79399c2576468532354cd Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-05-18IP unnumbered dumpNeale Ranns2-1/+92
Change-Id: I4f245fd225bcc563fafee2696cd039477d661c57 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2018-05-18IP table bind allowed only if table existsNeale Ranns1-30/+6
Change-Id: If01400e3434b25b2da36ba28ceb8444b216d0e38 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2018-05-18ARP: Ensure STATIC and DYANMIC ARP flags are mutually exclusive.Jon Loeliger1-3/+9
Change-Id: I44278dea2ee1daa147b0928bfe26e861907a209f Signed-off-by: Jon Loeliger <jdl@netgate.com>
2018-05-18IP address dump - don't send subnets for unnumbered interfacesNeale Ranns1-4/+6
Change-Id: I8c64a0d2f757d96ffa7fd042c23b0d814217c215 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2018-05-18session: add session process nodeFlorin Coras5-0/+85
Add a session process node that handles main thread tx and retransmit in order to avoid having a polling input node. Change-Id: I3357e987c023a84b533b32793e37ab4204420f64 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-05-18tap: remove the local vlib_log_info definitionMohsin Kazmi1-9/+3
Change-Id: Idff55a19d27fed0d57e222f38d2e16c5367911cb Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-05-17Fix failure during enable/disable of featuresMatthew Smith2-5/+5
vnet_feature_enable_disable_with_index() checks the return status of vnet_config_{add,del}_feature(). If the config string heap index returned is the same index that was in use prior to the add/delete, it is concluded that a failure occurred and processing of the feature stops. Sometimes the config index that is returned can legitimately be the same index that was in used before the add/delete. The old list of features can have its heap entry deallocated before a new entry for the new list is allocated. The heap entry for the new list can be the entry that was deallocated while deleting the old one. Make vnet_config_{add,del}_feature() return ~0 on failure. Look for that return value as an indication that an error occurred in vnet_enable_disable_feature_by_index(). Change-Id: I88bb3ff88a76971c1b5e5ece74784ce8ba78373c Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2018-05-17Fixes in IPv6 RD control planeJuraj Sloboda2-30/+59
Add default route to the VRF table in which the interface is bound. Add missing pool_put. Change-Id: Id76c7dbfbf9bcf18357f372f3eee9b931df1995e Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>
2018-05-17flow:redirect to nodeEyal Bari1-0/+8
Change-Id: I4b6577b496c56f27f07dd0066fcfdfd0cebb6f1a Signed-off-by: Eyal Bari <ebari@cisco.com>
2018-05-17tcp: handle link-local addressesFlorin Coras6-8/+75
Change-Id: I9ede6bc861350c7d9e78fa4d96cd584c2816d06f Signed-off-by: Florin Coras <fcoras@cisco.com>