summaryrefslogtreecommitdiffstats
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2021-04-19ip: fix offload flags handlingAloys Augustin2-3/+5
The per-protocol offload flags only make sense if F_OFFLOAD is set on the vlib buffer main flags. vnet_calc_checksums_inline is called from many places which should do this check and don't, moving the check to this function is less error prone and shouldn't have an impact on performance since the function is always_inline. Type: fix Change-Id: I0297f109f31e409f07bfbaea3cd8b90c659658c4 Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
2021-04-19interface: interface-output end node reworkDamjan Marion9-75/+87
- rename node to more meaningful name - introduce lookup tables - enable multiarch - quad-loop node - enqqueue to next instead of enqueueing to node Type: improvement Change-Id: Ibb208047ae04bb6cfe56db558d3b8938bc14b4fe Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-04-18ip: remove dead code from ip_csumDamjan Marion1-1/+0
Type: fix Change-Id: I3b37257e86175743a7bac80c531491565f0a8dcd Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-04-18vppinfra: remove outdated and unused unix format functionsDamjan Marion2-486/+0
Type: refactor Change-Id: If1772980dbdbde1fbf3d1989daa40599e9f23e8c Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-04-18vppinfra: remove linux/syscall.hDamjan Marion13-163/+51
For portabiliy reasons it is better to have all wrapped in clib code. I.e. instead of using getcpu() we have clib_get_current_numa_node () and clib_get_current_cpu_id(). Type: refactor Change-Id: I29b52d7f29bc7f93873402c4070561f564b71c63 Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-04-17classify: honor pcap interface filter also when classify filter is usedBenoît Ganne3-135/+136
Type: fix Change-Id: Ic32550ee9c5d76d232d8b67a7810611f6c8b9177 Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-04-16tests: cpus awarenessKlement Sekera1-1/+14
Introduce MAX_CPUS parameters to control maximum number of CPUs used by VPP(s) during testing, with default value 'auto' corresponding to all CPUs available. Calculate test CPU requirements by taking into account the number of workers, so a test requires 1 (main thread) + # of worker CPUs. When running tests, keep track of both running test jobs (controlled by TEST_JOBS parameter) and free CPUs. This then causes two limits in the system - to not exceed number of jobs in parallel but also to not exceed number of CPUs available. Skip tests which require more CPUs than are available in system (or more than MAX_CPUS) and print a warning message. Type: improvement Change-Id: Ib8fda54e4c6a36179d64160bb87fbd3a0011762d Signed-off-by: Klement Sekera <ksekera@cisco.com>
2021-04-15vlib: make vlib_pending_frame_t smallerDamjan Marion1-3/+3
Type: improvement Change-Id: I8715631718dca9bc7d7b364451b137484aadd58e Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-04-15tcp: support for rate sample attr flagFlorin Coras2-1/+23
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I94b8063c9d8f9b811589c6815cb5c8ca6220f2b5
2021-04-15vrrp: refactor testPaul Vinciguerra1-36/+38
Move scapy packet generation code out of vpp object and into the test case. Type: test Change-Id: Ib4de7409eefb79fc59f9815bed3befe5ecde483c Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
2021-04-15vcl: validate fs before cleanupFlorin Coras1-2/+5
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I1d3677923ab28325380c4a9e8469da83077262a9
2021-04-15papi: fix ubuntu 1804 make test socket.close errorTianyu Li1-1/+1
make test failed on ubuntu 18.04 File "/vpp/src/vpp-api/python/vpp_papi/vpp_stats.py", line 135, in connect socket.close(mfd) AttributeError: module 'socket' has no attribute 'close' Due to ubuntu 18.04 using python3.6 and socket.close() is introduced since python3.7 Using os.close to replace socket.close as mfd is a memory fd Type: fix Signed-off-by: Tianyu Li <tianyu.li@arm.com> Change-Id: I6d980fc87ae6c77bbed416879f9b2fcd0a0abe6a
2021-04-15vppinfra: move bitmap format functions to .c file, add format_bitmap_listDamjan Marion3-120/+172
Type: improvement Change-Id: I9baa845ecab8655e0623453666092d2dbc674b0f Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-04-15avf: fix tx path segfaultRadu Nicolau1-0/+1
Type: fix Fixes: ca1812dbe714fc8e4de13f88df2d3b830d95a2c9 Signed-off-by: Radu Nicolau <radu.nicolau@intel.com> Change-Id: I657be40689caa0c9e202fb411da6323aafeab57e
2021-04-15vppinfra: correct intrinsic called by u16x16_from_u8x16Lijian.Zhang1-2/+2
u16x16_from_u8x16() and i16x16_from_i8x16() call intrisics _mm256_cvtepu8_epi64 and _mm256_cvtepi8_epi64. But they are not seems doing the right data conversion from the name of the wrappers. The correct intrinsics been called should be _mm256_cvtepu8_epi16 and _mm256_cvtepi8_epi16. Type: fix Change-Id: Id71de6ae1a266a370f11c33a46684202be766c43 Signed-off-by: Lijian Zhang <Lijian.Zhang@arm.com>
2021-04-15avf: remove the vxlan flow supportChenmin Sun2-1/+1
This patch fixes a vxlan flow type checking bug which is introduced in commit 7a016e87e473. It is the native avf instead of dpdk that doesn't support vxlan flow offloading. So this patch removes Vxlan flow supporting in native avf_plugin and adds the vxlan flow back to dpdk_plugin. Type: fix Signed-off-by: Chenmin Sun <chenmin.sun@intel.com> Change-Id: I1a72629cee462b890327c589c846f6d532b2d61d
2021-04-14session: fix next node add on transport registrationFlorin Coras1-7/+2
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I11eac12d2ae68a713e78ef68d09b692fce48c18e
2021-04-14vlib: fix access before check issue in foreach_vlib_main macroDamjan Marion1-9/+17
Type: fix Change-Id: Iefb150a60b39d419d7dde35c80fbcba3a3a0d1e1 Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-04-14misc: clang-12 supportDamjan Marion2-7/+11
Type: improvement Change-Id: Ie8ebbbcf5e93337036998d6ba8dac393b20ebc72 Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-04-14session tcp vcl: api to update connection attributesFlorin Coras14-44/+350
Type: feature Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ifdd6024daf044751895bb8d2deabad41d3a80c92
2021-04-14dpdk: add RSS capability flag to iavf PMD in dpdk_pluginChenmin Sun1-4/+4
Type: fix Signed-off-by: Chenmin Sun <chenmin.sun@intel.com> Change-Id: I215b660a466e0579918e49de543163fd28f95c22
2021-04-14rdma: remove redundant memory registrationBenoît Ganne1-6/+0
The memory region is already registered right above, looks like a copy/paste error. Type: fix Change-Id: I97aed821e719e1a34ac38c86d0473a8fdd671d4e Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-04-14nat: test dynamic translation between two vrfsFilip Varga1-3/+41
Adding test for NAT44-ED subplugin. Type: test Change-Id: I10ce3d3ca8cb976ee9879efe77cb600df0102147 Signed-off-by: Filip Varga <fivarga@cisco.com>
2021-04-14rdma: fix skip_ipv4_cksum behavior in scalar pathTianyu Li1-1/+1
Current rdma input L3 validating behavior for scalar path is: if any packet L3_OK flag matches, then unset skip_ip4_cksum. The correct behavior should be if any packet L3_OK NOT match, then unset skip_ip4_cksum. The logic is also different from the vector path. This patch fixes the wrong behavior for scalar path. Type: fix Signed-off-by: Tianyu Li <tianyu.li@arm.com> Change-Id: I5ca5ed3aa0c07d441f3c87b33f03ea8f7a3c9826
2021-04-14hsa: fix coverity warningsFlorin Coras1-2/+3
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I1c38abde67c2f9be22186359a39ebc3a769b4a7f
2021-04-14tls: fix coverity warningFlorin Coras1-1/+1
Type: fix Avoid complaint that we're potentially incrementing ii which could be null. Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I8511c07b1c2f260cc0e526d9aefeb4a051d98edf
2021-04-14flow: The type of vni in VxLAN flow should be u32Chenmin Sun3-10/+8
Type: fix Signed-off-by: Chenmin Sun <chenmin.sun@intel.com> Change-Id: I40732dfb4fee4a5cfd699a8badea13d070f6b367
2021-04-13avf: rework TX one-by-one loopDamjan Marion1-68/+63
Type: improvement Change-Id: I466fd0324d53e8d68b53a2c84d97a722be90f4a0 Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-04-13avf: avoid placeholder buffer alloc in datapathDamjan Marion3-31/+25
Type: improvement Change-Id: I0ad0fa42f056b5797ba71d6972a44273c13bb97e Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-04-13avf: avoid ring wrap in the tx pathDamjan Marion3-139/+122
Type: improvement Change-Id: I91ecf0bff2ddd43ab5cf0f03ed2882882154557b Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-04-12avf: avf flow bug fixChenmin Sun2-27/+2
This patch fixes the below bugs in avf flow: 1. remove the VXLAN flow as it is not yet supported 2. fix a typo in IPv6 flow 3. fix the wrong type of the AH flows Also did some cleanup in this patch Type: fix Signed-off-by: Chenmin Sun <chenmin.sun@intel.com> Change-Id: I5eae131f1e89071364a41b7006a00e8425089a4f
2021-04-12geneve: fix options len parsing as 32-bits wordsMohammed Hawari1-2/+3
See https://tools.ietf.org/html/rfc8926 3.4. second paragraph Opt Len Change-Id: I191d835651b2fa64eeb4ec4271497cf3342554be Signed-off-by: Mohammed Hawari <mohammed@hawari.fr> Type: fix
2021-04-12tests: support attaching to existing vppKlement Sekera3-7/+7
Introduce a new option DEBUG=attach to run a test against existing already running vpp. A new target 'make test-start-gdb' will spawn VPP in gdb for this purpose. Customization options explained in test-help. Type: improvement Change-Id: Ia160a85b33da3b2df292d44bb95729af9dd9da96 Signed-off-by: Klement Sekera <ksekera@cisco.com>
2021-04-09dpdk: selection of cryptodev engine data-pathFan Zhang8-2733/+2082
Type: improvement This patch combined cryptodev op and cryptodev raw API data paths into one and makes the engine run-timely select which data path is used: if all cryptodev devices support RTE_CRYPTODEV_FF_SYM_RAW_DP feature flag, the raw data path API is used, otherwise the traditional data path is used. Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com> Change-Id: Ibbd7c4405288bd9a48a34878954fd3040df7b4ad
2021-04-08devices: af_packet - use netlink to get/set mtuAloys Augustin3-23/+100
The /sys filesystem is not always accurate when switching network namespaces. Using netlink should work in more situations. Type: improvement Change-Id: I71611f14319820469ea7794eec5b7c6c70e2be6d Signed-off-by: Aloys Augustin <aloaugus@cisco.com>
2021-04-08memif: Use log_debug for clib_file_add and clib_file_delSteven Luong1-15/+24
It is more appropriate to use log_debug instead of log_warn when inoking clib_file_add and clib_file_del. Type: fix Signed-off-by: Steven Luong <sluong@cisco.com> Change-Id: I544d97037cfca3f22ce94242aef0c7b0fea2fa9b
2021-04-08avf: correctly set VL_API_AVF_DELETE is_mp_safeSteven Luong1-2/+3
Need to add msg_id_base with VL_API_AVF_DELETE to properly set the correct is_mp_safe variable. Type: fix Signed-off-by: Steven Luong <sluong@cisco.com> Change-Id: I20f6e9441727fb7ffc132965b93c0a90482e1a52
2021-04-08avf: crash on avf interface deleteSteven Luong1-1/+3
When deleting an avf interface which is not the very first interface that was created (dev_instance == 0), VPP crashes. The reason is every avf interface delete always removes the very first device instance due to ad->dev_instance was wiped out prior to the statement pool_put_index (am->devices, ad->dev_instance) Type: fix Signed-off-by: Steven Luong <sluong@cisco.com> Change-Id: I69bd1588aab9a176f8eef46be7aa5063f5d29482
2021-04-08vcl: use per worker mem bapi contextFlorin Coras2-0/+2
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I07920a61e64cf1556c6b795d573cbd6a74675c1c
2021-04-07vcl: fix worker cleanup cb functionFlorin Coras1-2/+8
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Ic1d88c01e48bb926932030c3c5a03f35e345e9eb
2021-04-07session: fix coverity warningFlorin Coras2-6/+6
Type: fix Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: Id2c06f49bcae1a26a2d16d58f9da7a4d3175bf3c
2021-04-07crypto: fix ops flags in crypto sw schedulerBenoît Ganne2-7/+4
The crypto op flags must be reset to frame flags minus invalid values depending of the operation, instead of forcing them to specific values. Type: fix Change-Id: Ib02c2a738bbca6962394b3c03088d516d0da56a0 Signed-off-by: Benoît Ganne <bganne@cisco.com>
2021-04-06tests: remove wrappersKlement Sekera1-75/+53
Improve the code by removing another kind of wrappers. Type: improvement Change-Id: I5292ef6c1761e3c6c2edd15f2aa625dac26c3732 Signed-off-by: Klement Sekera <ksekera@cisco.com>
2021-04-06session: basic support for interrupt modeFlorin Coras4-4/+176
Experimental support for session layer interrupt mode. When enabled (use-private-rx-mqs must be set) session queue node switches to interrupt state when lightly loaded, i.e., no events and less than 1 vector/dispatch. Because transport protocols require a periodic time update, when in interrupt state the session queue node workers register a timerfd with the unix-epoll-input node that when triggered signals, i.e., wakes up, the queue node. Under light load, the timer is set to trigger every 1ms whereas if no session is allocated, the worker moves to idle state and the timeout is set to 100ms. Type: feature Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I905b00777fbc025faf9c4074fce4c516cd139387
2021-04-06buffers: performance improvementRadu Nicolau1-7/+21
Initialize the local variables as to prevent first fall through one by one processing; skip prefetching rather than doing one by one when count below 12. Type: improvement Signed-off-by: Radu Nicolau <radu.nicolau@intel.com> Change-Id: If02935da081e24f7cfe408811ccf6922cf982092
2021-04-05tcp: time infra improvementsFlorin Coras12-47/+87
Type: improvement Signed-off-by: Florin Coras <fcoras@cisco.com> Change-Id: I998c0686f9f7dc556dda8b28e23bbed127d0aafc
2021-04-05vhost: Crash upon disconnectSteven Luong1-1/+1
Patch 24601 introduced description into template. In vhost_user_process, template is reused inside the while loop to call clib_file_add. But description is allocated outside of the loop only once. As a result, the same storage for description is being referenced by all instances of call to clib_file_add. As long as we don't call clib_file_del, we may be good with multiple fds sharing the same storage for the description. When one of the fds disconnects and frees the description, the other fds is holding onto the free memory pointer. Bad news eventually happens when another fd disconnects and frees the description that was already free previously. The fix is to move the allocation of description inside the loop to avoid sharing. Type: fix Fixes: gerrit.fd.io/r/c/vpp/+/24601 Signed-off-by: Steven Luong <sluong@cisco.com> Change-Id: Ie670931acdc2c7b851982d98fd0d837284a19036
2021-04-05arping: coverity woe on COPY_PASTE_ERRORSteven Luong1-1/+1
coverity is trying to outsmart human by guessing on COPY_PASTE_ERROR. Have it your way. Type: fix Signed-off-by: Steven Luong <sluong@cisco.com> Change-Id: I0239c9745e21384aebbaf9e977962746b81ded58
2021-04-05cnat: explicit BIHASH_USE_HEAP settingDave Barach1-0/+2
The session db (bihash_40_56_t) was inheriting BIHASH_USE_HEAP=1 from vppinfra/bihash_24_8.h through a convoluted set of #includes. Set BIHASH_USE_HEAP in cnat_bihash.h, to avoid a surprise long after anyone remembers the story. Type: improvement Signed-off-by: Dave Barach <dave@barachs.net> Change-Id: I8aa3be09b306fc99ba0b6baa5096a0a6829a8951
2021-04-05ip6-nd: Solicitation reply only if target is our link-localNeale Ranns1-4/+9
Type: fix The fib source IP6_ND is used for all link-local entries, hence solicitation responses were sent for a peer's address. Constrain the source check to also in clude the LOCAL flag, which indicates that the link-local address is ours. Signed-off-by: Neale Ranns <neale@graphiant.com> Change-Id: Iba7e66049e4d89ee3f36d77aeb09310b978d70de