summaryrefslogtreecommitdiffstats
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
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 Bari12-20/+15
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-20bihash: give hint to CPU that we are spinlockingDamjan Marion2-4/+6
Change-Id: I78c0a6da5d8fc63c1ced43589c42abc15ab12b16 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-07-20Add congestion drop in interface handoffDamjan Marion4-24/+84
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-20Fine-grained add / delete lockingDave Barach9-354/+234
Add a bucket-level lock bit. Use a spinlock only when actually allocating, freeing, or splitting a bucket. Should improve multi-thread add/del performance. Change-Id: I3e40e2a8371685457f340d6584dea14e3207f2b0 Signed-off-by: Dave Barach <dave@barachs.net>
2018-07-20physmem: fix alloc when dlmaloc is usedDamjan Marion1-1/+5
Change-Id: I4b6cdf95ac694c8408eb6cf3259b335a8148b5aa Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-07-20fix issue with missing sample_main in sample pluginDamjan Marion1-0/+2
Change-Id: Ia17511e3997cdcf1d0991e62e8e2d3fb8812d133 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 Ranns16-29/+280
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-20avf: don't enable interrupts before interface is admin upDamjan Marion1-1/+0
Change-Id: I0fc19dd109e569f2c407a85e8fa32758e06676b8 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-07-20NAT44: in+out interface in STN setup improvement (VPP-1344)Matus Fabian1-8/+26
Change-Id: Iad7e0337a577ef8a0dfb7bde1968cc115d176043 Signed-off-by: Matus Fabian <matfabia@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-20avf: Support interrupt modeSteven2-1/+5
DBGvpp# set interface rx-mode AVF0/4/2/0 interrupt set interface rx-mode AVF0/4/2/0 interrupt DBGvpp# sh int rx sh int rx Thread 0 (vpp_main): node dpdk-input: FortyGigabitEthernet6/0/0 queue 0 (polling) node avf-input: AVF0/4/2/0 queue 0 (interrupt) DBGvpp# sh int addr sh int addr AVF0/4/2/0 (up): L3 133.1.1.10/24 FortyGigabitEthernet6/0/0 (dn): VirtualEthernet0/0/0 (up): L3 192.168.42.1/24 DBGvpp# clear run clear run DBGvpp# clear interfaces clear interfaces DBGvpp# sh int rx sh int rx Thread 0 (vpp_main): node dpdk-input: FortyGigabitEthernet6/0/0 queue 0 (polling) node avf-input: AVF0/4/2/0 queue 0 (interrupt) DBGvpp# ping 133.1.1.3 repeat 1 ping 133.1.1.3 repeat 1 64 bytes from 133.1.1.3: icmp_seq=1 ttl=64 time=.6237 ms Statistics: 1 sent, 1 received, 0% packet loss DBGvpp# sh int sh int Name Idx State MTU (L3/IP4/IP6/MPLS) Counter Count AVF0/4/2/0 5 up 9000/0/0/0 rx packets 1 rx bytes 98 tx packets 1 tx bytes 98 drops 1 ip4 1 FortyGigabitEthernet6/0/0 1 down 9000/0/0/0 VirtualEthernet0/0/0 2 up 9000/0/0/0 local0 0 down 9000/0/0/0 DBGvpp# sh run sh run Time 41.9, average vectors/node 1.00, last 128 main loops 0.00 per node 0.00 vector rates in 2.3858e-2, out 2.3858e-2, drop 2.3858e-2, punt 0.0000e0 Name State Calls Vectors Suspends Clocks Vectors/Call AVF0/4/2/0-output active 1 1 0 1.24e4 1.00 AVF0/4/2/0-tx active 1 1 0 4.28e4 1.00 api-rx-from-ring any wait 0 0 2 6.94e4 0.00 avf-input interrupt wa 1 1 0 1.09e4 1.00 avf-process any wait 0 0 47 1.01e4 0.00 ... DBGvpp# DBGvpp# set interface rx-mode AVF0/4/2/0 polling set interface rx-mode AVF0/4/2/0 polling DBGvpp# sh int rx sh int rx Thread 0 (vpp_main): node dpdk-input: FortyGigabitEthernet6/0/0 queue 0 (polling) node avf-input: AVF0/4/2/0 queue 0 (polling) DBGvpp# ping 133.1.1.3 repeat 1 ping 133.1.1.3 repeat 1 64 bytes from 133.1.1.3: icmp_seq=1 ttl=64 time=.2038 ms Statistics: 1 sent, 1 received, 0% packet loss DBGvpp# Change-Id: Ib7d2b505ae4bb74a052263af766ca37d9df7bfe4 Signed-off-by: Steven <sluong@cisco.com>
2018-07-19Fix coverity warning / legitimate minor bugDave Barach1-1/+1
Of the form "if ((foo & 0x10) == 1)", as opposed to "if (foo & 0x10)" Change-Id: I6a6d276aeed4af7c1c6c78546ee68d598d54d7db Signed-off-by: Dave Barach <dave@barachs.net>
2018-07-19dpdk: fix Mellanox Connect-X3 VF IDMatthew Smith1-1/+1
Fix a typo from previous patch. Change 0x104 to 0x1004. Change-Id: I82230a8a0ec01567eb1d4bc12ac02062c2a98347 Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2018-07-19Remove unused argument to vlib_feature_nextDamjan Marion27-109/+63
Change-Id: Ieb8b53977fc8484c19780941e232ee072b667de3 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-07-19session: coverity warningsFlorin Coras2-20/+17
Change-Id: I4505954c737e8c6a3d4177c6833f2b12099e6dd4 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-07-19Add a new communication channel between VPP and openssl enginePing Yu4-20/+60
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 Marion6-341/+110
- 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-19Fix IPv6 csum calculation in GTP-U encapsulationAndreas Schultz1-24/+25
The length field is included in the checksum. Therefor, we need to update it before calculating the checksum. Change-Id: Id23234efb80ea3747a0f8a5c7bf8621748d27635 Signed-off-by: Andreas Schultz <andreas.schultz@travelping.com>
2018-07-19dpdk: set log write fd to non-blockingMatthew Smith1-7/+15
If a PMD writes too many log messages using rte_vlog(), the pipe for logging can fill and then rte_vlog() will block on fflush() while it waits for something to read from the other side of the pipe. That will never happen since the process node that would read the other side of the pipe runs in the same thread. Set the write fd to non-blocking before the call to rte_openlog_stream(). If the pipe is full, calls to write() or fflush() will fail but execution will continue. Change-Id: I0e5d710629633acda5617ff29897d6582c255d57 Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2018-07-19dpdk: add device IDs for Mellanox ConnectX-3Matthew Smith1-1/+6
Recognize the PF and VF device IDs for the Mellanox adapter used on Azure. Change-Id: Ic7b36b37ac93db2b696354ffe6fa2b6d62ee3801 Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2018-07-19PAPI: Remove logging calls from pack/unpackOle Troan1-18/+0
This slowed down the decoder. Improved from 16s to 13s for 1000 dump/details messages. Change-Id: Iae78136b020cdd9344f3b2170ce426d0f074b6e6 Signed-off-by: Ole Troan <ot@cisco.com>
2018-07-19gbp: Add support for ACLMohsin Kazmi6-58/+178
Change-Id: I7513c41307e62068ab5d9739cac393675c6066f8 Signed-off-by: Mohsin Kazmi <sykazmi@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-18DPDK: coverity scan warningsMarco Varlese2-7/+4
This patch addresses the coverity scan warnings reported for the DPDK plugin. Change-Id: Ie7ac7ffcf4a6c63245eae0f9910a193ab1e318a8 Signed-off-by: Marco Varlese <marco.varlese@suse.de>
2018-07-18svm: make message queue more compactFlorin Coras2-18/+31
Change-Id: Id45957163c2b95a2300a8ac9104fc92b9cc928ed Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-07-18Change configure.ac to match the release tag on masterEd Warnicke1-1/+1
Change-Id: I7e53b563fb801dd8508af47452ad44d4837cb68d Signed-off-by: Ed Warnicke <hagbard@gmail.com>
2018-07-18Add config option to use dlmalloc instead of mheapDave Barach46-105/+7451
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-18vpp-api: improve naming for easier debuggingKlement Sekera1-2/+2
Change-Id: I487ccf2adabfbd22dac9f492ecff679d38046724 Signed-off-by: Klement Sekera <ksekera@cisco.com>
2018-07-18VPP crash when run "lb set interface nat4 in <intc>" VPP-1343Hongjun Ni1-1/+1
Change-Id: I23be9c29227e7dd1bb11b5b7fa910bb61c2be6c9 Signed-off-by: Hongjun Ni <hongjun.ni@intel.com> (cherry picked from commit b4b2488202ff4282cc4a7bd779cc33934286c5cd)
2018-07-18Fix GTP-U length header field in encodingAndreas Schultz2-11/+23
The length in the GTPU header does not specify the length of the payload. It does specify the number of bytes following the fixed part (the first 8 bytes) of the GTPU header (see 3GPP TS 29.060, Sect. 9.3.1). Change-Id: I8ce73df015e1cf1f38d306666962c0058756111c Signed-off-by: Andreas Schultz <andreas.schultz@travelping.com>
2018-07-18Fix GTP-U header in 4x IPv4 vector encapsulationAndreas Schultz1-1/+1
The fourth GTP-U packet had a wrong reference, leading to data corruption. Change-Id: Id82f87368183d5e8b7047133c5ea799f2a9cb43c Signed-off-by: Andreas Schultz <andreas.schultz@travelping.com>
2018-07-18vppinfra: increase max bihash arena size to 512GBDamjan Marion2-11/+21
Change-Id: Ic636297df4c03303fdcb176669f0268d80e22123 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-07-17memif: vectorized buffer enqueue in input nodeDamjan Marion1-146/+121
Change-Id: If6970788396c85415634f12304f49eed0d812281 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-07-17Bump the VPP version in configure.acNeale Ranns1-1/+1
How many engineers does it take to change a lightbulb? Change-Id: I28a34e0ae49ce4f95b12a342c4664198a20f4574 Signed-off-by: Neale Ranns <neale.ranns@cisco.com> 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 Coras13-524/+977
Change-Id: I242056bc46ddb671064665916b2687860292dcb2 Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-07-17session: use msg queue for eventsFlorin Coras27-400/+773
Change-Id: I3c58367eec2243fe19b75be78a175c5261863e9e Signed-off-by: Florin Coras <fcoras@cisco.com>
2018-07-17session: make sure segment sizes are page alignedFlorin Coras2-3/+6
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-16acl-plugin: fix coverity errors 186574,186575,186576,186577,183451Andrew Yourtchenko1-20/+1
Fix the copypaste-triggered errors in load-from-file ACL test code. Also, add an explicit exit(1) after clib_error() to convince coverity that code path is terminal indeed. Change-Id: I1deedb49144559c9183449005ada0433c24db18a Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2018-07-16vppinfra: AVX2 interleave functionsDamjan Marion1-3/+14
Change-Id: I8688f700fccd87484da3e202ca3a070cc14eb267 Signed-off-by: Damjan Marion <damarion@cisco.com>
2018-07-16Enable openssl TLS async support in client for HW acclerationPing Yu1-0/+15
Change-Id: I003e41786c549c6451a1e9e178f5871d32c20e6e Signed-off-by: Ping Yu <ping.yu@intel.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>