summaryrefslogtreecommitdiffstats
path: root/src/vnet
AgeCommit message (Collapse)AuthorFilesLines
2018-07-31vcl: add read/write udp supportFlorin Coras4-21/+38
Change-Id: Ie6171c12055cde6915856de340839f5da1b1b1da Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-07-30SIXRD: fix post introduction of the directed subnet broadcastNeale Ranns2-12/+4
Change-Id: I9ce801e9b257eaa6be0cbe2ad3bfe630717f8c67 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2018-07-30FIB: return entry prefix by const reference to avoid the copyNeale Ranns11-74/+56
Change-Id: I09b8406168df4b6b28df3ede24ee839681be0195 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2018-07-30Reverse the logic of flagging malformed packet in fragmentation code to ↵Rajesh Saluja1-1/+1
allow padding Change-Id: I051c137ae18fd436a798a12a56a9d12f8eaa2e08 Signed-off-by: Rajesh Saluja <rajsaluj@cisco.com>
2018-07-28session/dlmalloc: coverity fixesFlorin Coras1-1/+1
Change-Id: I17ffec018f5d2fb06a7a3af6d8bc6128ffee3ae6 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-07-27vcl: use events for epoll/select/read/writeFlorin Coras9-32/+46
Have vcl poll and wait on the event message queues as opposed to constantly polling the session fifos. This also adds event signaling to cut through sessions. On the downside, because we can't wait on multiple condvars, i.e., when we have multiple message queues because of cut-through registrations, we do timed waits. Change-Id: I29ade95dba449659fe46008bb1af502276a7c5fd Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-07-27Fix memory leak in processing of ICMPv6 RA event (VPP-1360)Juraj Sloboda1-1/+2
Change-Id: I7c3e5e91391b1c9b36e8ea8bacee9a107da1ae96 Signed-off-by: Juraj Sloboda <jsloboda@cisco.com>
2018-07-26Clean up dpdk plugin rx/tx pcap tracingDave Barach2-0/+6
Needed a spinlock to protect the data vector. Cleaned up debug cli so the output makes sense, and so that various parameters exist in one place. Removed a nonsense memset-to-zero which led to ultra-confusing results. Change-Id: I91cd14ce7fe84fd2eceab86e016b5ee001993be4 Signed-off-by: Dave Barach <dbarach@cisco.com>
2018-07-26L2 Flood: use the buffer clone API rather than buffer recycleNeale Ranns1-260/+168
Change-Id: I40e4efd8061369efc535f0d49b2f63668b6d1d15 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2018-07-24Create a unit-test pluginDave Barach1-1779/+0
Move the tcp unit test to the plugin Add a bihash unit test and a "make test" program to call it Adjust framework.py to load the plugin, which is disabled by default Change-Id: Ic229d386a56a9d28dbd54974f231149053ca8f93 Signed-off-by: Dave Barach <dave@barachs.net>
2018-07-23session: send rx events only if session readyFlorin Coras2-2/+9
Change-Id: I8d631121b104fb40c20701d4c1b428f2b71e5785 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-07-23L2 EFP: byteswap sw_if_index, enable flag can be u8 on .apiNeale Ranns3-4/+7
Change-Id: Ib99d02e84e468726feae4c386733da405b298e4f Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-07-23Update pipeline.h: use vlib_get_buffersDave Barach3-329/+215
It's not clear that fine-graind pipelining will ever produce optimal performance. That having been written, it's an easier coding model for folks interesting in decent results without having to manually implement 2 or 4 way fine-grained parallelism. Change-Id: Ida877292832eaf759ffbb6d2e16012f8fbd427e5 Signed-off-by: Dave Barach <dave@barachs.net>
2018-07-23fix vector index range checksEyal Bari8-8/+8
Change-Id: I63c36644c9d93f2c3ec6606ca0205b407499de4e Signed-off-by: Eyal Bari <ebari@cisco.com>
2018-07-21Loopback tx: support multiple tx intfcs per frameDave Barach1-153/+197
Can happen if code bypasses the per-interface output node, and dispatches packets directly to the tx node. Switch to vlib_get_buffers(...) ... vlib_buffer_enqueue_to_next (...), quad/single loop coding pattern. Change-Id: Ic0e5d3b9748230f4e545a54186e6e64e7a782bb1 Signed-off-by: Dave Barach <dave@barachs.net>
2018-07-21fix IP directed broadcast node declarationsMatthew Smith2-2/+2
The dev build ('make build') was failing because ip4_rewrite_bcast() and ip6_rewrite_bcast() are declared static and were not referenced. The node functions that were set for directed broadcast rewrite: ip4_rewrite_bcast_node - ip4_rewrite() ip6_rewrite_bcast_node - ip6_rewrite() Changed to: ip4_rewrite_bcast_node - ip4_rewrite_bcast() ip6_rewrite_bcast_node - ip6_rewrite_bcast() The release build ('make build-release') succeeds because there is a VLIB_NODE_FUNCTION_MULTIARCH() call referencing the function. That macro is empty for dev builds. Change-Id: I2a05f00ca43d0eae8ff2e3026991e69917003fe1 Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2018-07-20Add congestion drop in interface handoffDamjan Marion1-3/+27
This prevents deadlock in case when worker A sends to B and worker B sends to A Change-Id: Id9436960f932c58325fe4f5ef8ec67b50031aeda Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-07-20QOS: mark/record fix feature ordering c-n-p errorNeale Ranns1-5/+5
vnet_feature_arc_init:215: feature node 'mpls-qos-mark' not found (after 'vlan-mpls-qos-record', arc 'mpls-input') vnet_feature_arc_init:215: feature node 'ip6-qos-mark' not found (after 'vlan-ip6-qos-record', arc 'ip6-multicast') ...etc... Change-Id: I22cb98d57e2480f5978fff315b77b9cbb6a9f9dd Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2018-07-20IP directed broadcastNeale Ranns15-29/+279
with ip direct broadcast enable a packet to the interface's subnet broadcast address with be sent L2 broadcast on the interface. dissabled, it will be dropped. it is disabled by default, which preserves current behaviour Change-Id: If154cb92e64834e97a541b32624354348a0eafb3 Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-07-20QoS: marking and recording for MPLS and VLANNeale Ranns3-18/+267
Change-Id: Icec79aa9039d5d7835d311fde0b7c1a0c76c9eb1 Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-07-19Remove unused argument to vlib_feature_nextDamjan Marion19-76/+42
Change-Id: Ieb8b53977fc8484c19780941e232ee072b667de3 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-07-19session: coverity warningsFlorin Coras1-8/+10
Change-Id: I4505954c737e8c6a3d4177c6833f2b12099e6dd4 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-07-19Add a new communication channel between VPP and openssl enginePing Yu1-1/+1
Thus when engine buffer is full during a burst in performance tesing, this code will help VPP handle retry machansim. Change-Id: I0f9fc05d3dba8a54d34dca4c6137700d6c80f714 Signed-off-by: Ping Yu <ping.yu@intel.com>
2018-07-19Cleanup of handoff codeDamjan Marion5-341/+24
- removed handoff-dispatch node - removed some unused buffer metadata fields - enqueue to thread logic moved to inline function Change-Id: I7361e1d88f8cce74cd4fcec90d172eade1855cbd Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-07-19qos record:fix disable on interface deleteEyal Bari1-1/+1
handle the case where qos record was enabled more than once Change-Id: Ic901b2f5b400751e82d57655983d10457ec62243 Signed-off-by: Eyal Bari <ebari@cisco.com>
2018-07-19ip4-input and ip4-input-no-checksum should be siblingsNeale Ranns1-11/+1
each edge/arc from these nodes must be the same. Change-Id: Id5dace61bca0af71ad1df98583425226e81fd0de Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2018-07-18qos mark/record: fix disable-sw_if_index range checkEyal Bari2-2/+2
Change-Id: I2abb3ceebae3a32cee9aa2a999bd47c37719d3ac Signed-off-by: Eyal Bari <ebari@cisco.com> Signed-off-by: Igor Mikhailov (imichail) <imichail@cisco.com>
2018-07-18Add config option to use dlmalloc instead of mheapDave Barach3-0/+20
Configure w/ --enable-dlmalloc, see .../build-data/platforms/vpp.mk src/vppinfra/dlmalloc.[ch] are slightly modified versions of the well-known Doug Lea malloc. Main advantage: dlmalloc mspaces have no inherent size limit. Change-Id: I19b3f43f3c65bcfb82c1a265a97922d01912446e Signed-off-by: Dave Barach <dave@barachs.net>
2018-07-17loopback:fix delete to check interface classEyal Bari1-13/+6
Change-Id: Ia563b279e85b5da93f79db5a2a4d9b8c04f5be99 Signed-off-by: Eyal Bari <ebari@cisco.com>
2018-07-17session: send ctrl msg over mqFlorin Coras9-63/+521
Change-Id: I242056bc46ddb671064665916b2687860292dcb2 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-07-17session: use msg queue for eventsFlorin Coras16-310/+453
Change-Id: I3c58367eec2243fe19b75be78a175c5261863e9e Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-07-17session: make sure segment sizes are page alignedFlorin Coras1-1/+3
Change-Id: Ibbba75d069ca1bbf9e5a1b8bd2f405d32021c656 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-07-17VOM: support for pipesNeale Ranns2-10/+10
Change-Id: I5c381dfe2f926f94a34ee8ed8f1b9ec6038d5fe2 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>
2018-07-16Adjacency-BFD: assume BFD down on createNeale Ranns2-10/+17
Change-Id: I13279a1a96df457209fb25748a643c01b18ff4e0 Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-07-15VPP-1341: fix loopback interface graph arcsDave Barach4-66/+175
Remove broken special case from l2_input.c:set_int_l2_mode(), which turns out to confuse the graph dispatch engine. The loopback TX function needs to push packets to either ethernet-input or to l2-input, based on bridge / BVI configuration. Rather than overloading a single graph arc - and making vain attempts to reconfigure it - create both arcs and use the correct one. Rewrote the loopback tx function as an idosyncratic multi-arch quad/single loop fn. Change-Id: I15b56ce641d90a11e7b3c7d23859f40e168dd7b2 Signed-off-by: Dave Barach <dave@barachs.net>
2018-07-14Improve IP4 ARP and IP6 ND Events Notificationv18.10-rc0John Lo2-11/+32
For L2 ARP termination, use both brodcast ARP request and reply packets to provide MAC/IP binding events. For IP4/IP6 neighbor adress resolution, send resolution events if there is an address resolution attemp with a static neighbor entry where both IP and MAC matches. This allow probe of an IP neighbor with a static entry to confirm it is responding with a reply matching that of the static entry. Change-Id: Iffb923bb5aea3f9021436735d5ca06e7b24f966f Signed-off-by: John Lo <loj@cisco.com>
2018-07-13VPP-1338: fix ipsec api coverity warningsDave Barach1-4/+3
Remove useless unsigned comparisions: "(unsigned) value < 0", correct a couple of incorrect limit checks. Change-Id: I9606c4057df157f770d59535457cb9df1cfd1f35 Signed-off-by: Dave Barach <dave@barachs.net>
2018-07-12srv6: fix pointers in quad loopsFrancois Clad1-6/+6
Change-Id: I51c4bcbd456d2e7ffbdeef9cc8c7703d1c88b52e Signed-off-by: Francois Clad <fclad@cisco.com>
2018-07-11session: push tx notifications only if neededFlorin Coras1-1/+6
VPP-1340 Change-Id: Ia3f2fc054dbfb2ba912a768c70466e7042024e32 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-07-11avoid using thread local storage for thread indexDamjan Marion36-58/+59
It is cheaper to get thread index from vlib_main_t if available... Change-Id: I4582e160d06d9d7fccdc54271912f0635da79b50 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-07-11bridge-domain:fix no_flood countEyal Bari1-0/+3
no_flood count was not updated on removal might couase a negative insertion index when adding new members Change-Id: I2caf2c453dfef1a9f16fb8fa2e5af42b4e653a69 Signed-off-by: Eyal Bari <ebari@cisco.com>
2018-07-10VPP-1337: Dangling reference be gone!Dave Barach3-0/+6
Freeing the prefix and address vectors after signalling them from dhcpv6_client_node_fn to either the pd or iana report processes is absolutely wrong. The code has appeared to work by luck. This took three full days' worth of expert effort to root cause - in the context of an unrelated patch - and about one minute to fix. Change-Id: Ie589ab1a70ae83441ab4e8b6618a6d405741f53f Signed-off-by: Dave Barach <dave@barachs.net>
2018-07-10FIB path dump: fix next-hop-table ID for recursive routesNeale Ranns2-2/+3
Change-Id: I57b4ebca29c0b185770373e8878f89a9bd13b742 Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-07-09IGMP improvementsNeale Ranns8-24/+236
- Enable/Disable an interface for IGMP - improve logging - refactor common code - no orphaned timers - IGMP state changes in main thread only - Large groups split over multiple state-change reports - SSM range configuration API. - more tests Change-Id: If5674f1044e7e97274a711f47807c9ba689d7b9a Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-07-09vxlan:use bihash_16_8 for ipv4 lookupEyal Bari3-66/+76
Change-Id: I0d4630c88d6caacffcd073ebaa12766dfc893f70 Signed-off-by: Eyal Bari <ebari@cisco.com>
2018-07-09new pipe code does not use stdintsNeale Ranns1-2/+2
Change-Id: Idee565af852c7bb434b886fbf31c6e76315686c4 Signed-off-by: Neale Ranns <nranns@cisco.com>
2018-07-08Fix IPsec intf tx node setup at intf creationMatthew Smith1-2/+2
When using a DPDK cryptodev with IPsec, sending outbound packets results in a crash on division by zero if using an algorithm not supported by the OpenSSL ESP nodes. This includes AES-GCM and MD5. At IPsec intf creation time, the next node at slot IPSEC_OUTPUT_NEXT_ESP_ENCRYPT for ipsec_if_tx_node_fn is set to the node named esp-encrypt. This is the OpenSSL ESP encrypt function. If DPDK cryptodevs are configured, dpdk-esp-encrypt is the correct next node. Change to setting the next node according to the value in ipsec_main.esp_encrypt_node_index. That value is set to esp-encrypt by default. If DPDK cryptodevs are configured it gets set to dpdk-esp-encrypt. Change-Id: I83896c76b975d74aead247a162c85eccca9575a8 Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2018-07-08session/svm: fix coverity warningsFlorin Coras1-1/+5
Change-Id: Ic5daed1f6c23d9561a04e235dcbf257f190d066a Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-07-08vhost: Add multi-versioning supportMohsin Kazmi6-1534/+1667
It also refactors the vhost code which was in one big file vhost-user.c. Receive side code is in vhost_user_input.c and Transmit side code is in vhost_user_output.c Change-Id: I1b539b5008685889723e228265786a2a3e9f3a78 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2018-07-07PipesNeale Ranns11-7/+1199
A pipe resembles a unix pipe. Each end of the pipe is a full VPP interface. pipes can be used for e.g. packet recirculation, inter-BD, etc. Change-Id: I185bb9fb43dd233ff45da63ac1b85ae2e1ceca16 Signed-off-by: Neale Ranns <neale.ranns@cisco.com>