summaryrefslogtreecommitdiffstats
path: root/src/plugins/avf
AgeCommit message (Collapse)AuthorFilesLines
2021-05-19avf: improve elogsDamjan Marion4-2/+227
Change-Id: I6221e1a5924223865b3caf53590d3668965b564c Type: fix Fixes: b4ff07a Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-05-19avf: tx queue sharing fixes and improvementsDamjan Marion3-38/+36
Type: fix Change-Id: I16b6720174efd98c19751e0fff36df58968484d2 Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-05-19avf: print stats in separate log classDamjan Marion3-6/+38
Type: improvement Change-Id: Ia1a4b1b1acad989cbd47a805b900160ba0071071 Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-05-14avf: free spinlock on txq removalDamjan Marion1-0/+2
Type: fix Change-Id: I8e9a907a227f82b870a945b94731dc3204c23ee1 Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-05-12avf: avoid eating our own tailDamjan Marion1-0/+3
This happens in case we are not able to refill ring with new buffers. Type: fix Change-Id: I727e55c5b8482d9b8aeb4a9933a9a755fe21e55f Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-05-11interface: tx queue infraDamjan Marion3-7/+18
Type: improvement Change-Id: I415b2f980de10ca3154d2c8677c24792453eccd0 Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-05-08avf: fix coverityMohammed Hawari1-7/+4
Change-Id: I54025eb0e4ee861b2b2fed554b006405cba38bb9 Signed-off-by: Mohammed Hawari <mohammed@hawari.fr> Type: fix Fixes: bd376a8ce8425f45b23074398949e8055de29280
2021-05-07avf: Fix cksum offload / ipsecNathan Skrzypczak1-1/+6
VNET_BUFFER_F_OFFLOAD means 'check 2nd cacheline' but we can still have TCP_CKSUM=0 & UDP_CKSUM=0 Type: fix Change-Id: I42b5974f6d34b777aa959c06c67619a5c83c5805 Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
2021-05-06build: add FORCE_ON option for multiarch variantsDamjan Marion1-0/+2
Type: make Change-Id: I37fb925a9cc2dfc21dd7874f4b20a6943b28efc8 Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-05-06vlib: fix the offload flags sizeMohsin Kazmi1-1/+1
Type: fix Change-Id: I433fe3799975fe3ba00fa30226f6e8dae34e88fc Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2021-05-05avf: remove dead storeDamjan Marion1-1/+0
Type: fix Change-Id: Ic8d965aecea6b5b729e3f414235e676d62de779a Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-05-05vlib: move offload flags to 1st cacheline in vlib_buffer_tMohsin Kazmi1-1/+1
Type: improvement Some tests i.e. ipsec see performance regression when offload flags are moved to 2nd cacheline. This patch moves them back to 1st cacheline. Change-Id: I6ead45ff6d2c467b0d248f409e27c2ba31758741 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2021-05-04avf: fix simultaneous txq wrap and tx retryMohammed Hawari1-1/+2
Change-Id: Ic2b853cda98c3010d2abb5c7ada1b1f6c5bc9f74 Signed-off-by: Mohammed Hawari <mohammed@hawari.fr> Type: fix Fixes: ca1812dbe714fc8e4de13f88df2d3b830d95a2c9 Ticket: VPP-1980
2021-05-01vlib: refactor trajectory trace debug featureBenoît Ganne1-7/+0
trajectory trace has been broken for a while because we used to save the buffer trajectory in a vector pointed to in opaque2. This does not work well when opaque2 is copied (eg. because of a clone) as 2 buffers end up sharing the same vector. This dedicates a full cacheline in the buffer metadata instead when trajectory is compiled in. No dynamic allocation, no sharing, no tears. Type: refactor Change-Id: I6a028ca1b48d38f393a36979e5e452c2dd48ad3f Signed-off-by: Benoît Ganne <bganne@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-15avf: remove the vxlan flow supportChenmin Sun1-1/+0
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-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 Sun1-26/+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-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-01avf: disable VLAN stripping on E810 using V2 VLAN APIsDamjan Marion4-14/+201
Type: fix Change-Id: I9bb19a5c9b5b48825f19a4ac124a3628ceaa081d Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-03-31avf: improve capabilities handlingDamjan Marion5-39/+56
Type: improvement Change-Id: If35b40168414807e928cb3026633ae9d2fa703ed Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-03-30avf: fix coverity issuesChenmin Sun1-4/+4
CID #220403 ~ 220406 Type: fix Signed-off-by: Chenmin Sun <chenmin.sun@intel.com> Change-Id: Ibb65f9f2b17b9a9d45c077933b033ca3a65ae42f
2021-03-26vlib: introduce vlib_get_elog_main()Damjan Marion1-32/+26
Type: improvement Change-Id: I73383eb15186021cd6527d112da8443a0082f129 Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-03-26avf: flow support enhancementChenmin Sun1-49/+219
This patch enables ip4, ip6, ip6-n-tuple, l2tpv3 esp ah flows in avf plugin Type: improvement Signed-off-by: Chenmin Sun <chenmin.sun@intel.com> Change-Id: I92c6d4217a6cce4085ee83e8beb4b037c8d7da5f
2021-03-26avf: handle flow id in data pathChenmin Sun3-27/+122
Type: improvement Signed-off-by: Chenmin Sun <chenmin.sun@intel.com> Change-Id: I24fa52fee88dabad8f0b84446f796ee055819617
2021-03-26avf: add avf flow frameworkChenmin Sun7-34/+2430
This patch adds the flow support to VPP avf_plugin. Currently only IP4-N-TUPLE and GTPU flow are supported as a reference. More flows will be added later. Type: feature Signed-off-by: Chenmin Sun <chenmin.sun@intel.com> Change-Id: I563dbfacecd3eba31e8c3c7769142ea6adba54b6
2021-03-25avf: introduce program flow eventChenmin Sun3-37/+86
This patch introduces a 'program flow' virtchannel event. The parameter is_add is used to identify adding or deleting the rule from avf Type: improvement Signed-off-by: Chenmin Sun <chenmin.sun@intel.com> Change-Id: I1f5545ddc23e4494a25afa36ff601607405a8c3d
2021-03-19interface: add capabilities flagsMohsin Kazmi1-5/+4
Type: improvement This patch adds flags to represent the modern NICs capabilities. Change-Id: I96d38d9ab7eac55974d72795cd100d8337168e1e Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2021-03-05avf: don't memcpy if adminq output buffer size is 0Damjan Marion1-1/+1
Type: fix Change-Id: I0df14ff87d0bf51eeb392f72434febf6c4a2957a Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-02-15vlib: refactor checksum offload supportMohsin Kazmi1-8/+6
Type: refactor This patch refactors the offload flags in vlib_buffer_t. There are two main reasons behind this refactoring. First, offload flags are insufficient to represent outer and inner headers offloads. Second, room for these flags in first cacheline of vlib_buffer_t is also limited. This patch introduces a generic offload flag in first cacheline. And detailed offload flags in 2nd cacheline of the structure for performance optimization. Change-Id: Icc363a142fb9208ec7113ab5bbfc8230181f6004 Signed-off-by: Mohsin Kazmi <sykazmi@cisco.com>
2021-01-21avf: use write combining store for queues tail updateRadu Nicolau3-2/+13
Performance improvement: on supported platforms, currently only Intel Tremont, use a write combining store to update the tail pointers. Also, Tremont node variant is added for all. Type: improvement Signed-off-by: Radu Nicolau <radu.nicolau@intel.com> Change-Id: Ie9606e403b7d9655184f778e3ffee3027c8c9edd
2021-01-21interface: rx queue infra rework, part oneDamjan Marion3-18/+32
Type: improvement Change-Id: I4008cadfd5141f921afbdc09a3ebcd1dcf88eb29 Signed-off-by: Damjan Marion <damarion@cisco.com>
2021-01-19avf: fix l2_len for csum offloadMohammed Hawari1-4/+3
Use vlib_buffer_t::current_data instead of vnet_buffer_opaque_t::l2_hdr_offset to compute l2_len for checksum offload (l2_hdr_offset might be invalid if packet originates from an L3 interface) Change-Id: I2031ea6fd6a7af4b6e186751e119ebd6161641b5 Type: fix Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
2020-12-19avf: fix gcc compiling warning on ArmJieqiang Wang1-4/+4
Initializing struct avf_ip6_psh by {0} using gcc with O2 optimize option will trigger the -Werror=maybe-uninitialized compiling warning on Arm because gcc compiler will think some members of the struct avf_ip6_psh may not be initialized, which probably is a false positive in this case. The compiling error log is shown as below. Avoid this compiling warning by explicitly declaring the IPv6 src and dst ip in avf_ip6_psh as ip6_address_t. ccache /usr/lib/ccache/gcc-10 -DHAVE_FCNTL64 -DHAVE_GETCPU -DHAVE_MEMFD_CREATE -I/home/snowball/tasks/test_vpp_build/test-patch-9/vpp/src -I. -Iinclude -I/home/snowball/tasks/test_vpp_build/test-patch-9/vpp/src/plugins -Iplugins -Iplugins/avf -Wno-address-of-packed-member -g -fPIC -Werror -Wall -march=armv8-a+crc -O2 -fstack-protector -DFORTIFY_SOURCE=2 -fno-common -fPIC -DCLIB_MARCH_VARIANT=cortexa72 -march=armv8-a+crc+crypto -mtune=cortex-a72 -DCLIB_N_PREFETCHES=6 -MD -MT plugins/avf/CMakeFiles/avf_plugin_cortexa72.dir/output.c.o -MF plugins/avf/CMakeFiles/avf_plugin_cortexa72.dir/output.c.o.d -o plugins/avf/CMakeFiles/avf_plugin_cortexa72.dir/output.c.o -c /home/snowball/tasks/test_vpp_build/test-patch-9/vpp/src/plugins/avf/output.c In file included from /home/snowball/tasks/test_vpp_build/test-patch-9/vpp/src/vppinfra/vector_funcs.h:41, from /home/snowball/tasks/test_vpp_build/test-patch-9/vpp/src/vppinfra/vector.h:196, from /home/snowball/tasks/test_vpp_build/test-patch-9/vpp/src/vppinfra/string.h:48, from /home/snowball/tasks/test_vpp_build/test-patch-9/vpp/src/vppinfra/mem.h:49, from /home/snowball/tasks/test_vpp_build/test-patch-9/vpp/src/vppinfra/vec.h:42, from /home/snowball/tasks/test_vpp_build/test-patch-9/vpp/src/vppinfra/format.h:44, from /home/snowball/tasks/test_vpp_build/test-patch-9/vpp/src/vppinfra/elf.h:41, from /home/snowball/tasks/test_vpp_build/test-patch-9/vpp/src/vppinfra/elf_clib.h:41, from /home/snowball/tasks/test_vpp_build/test-patch-9/vpp/src/vlib/vlib.h:44, from /home/snowball/tasks/test_vpp_build/test-patch-9/vpp/src/plugins/avf/output.c:18: /home/snowball/tasks/test_vpp_build/test-patch-9/vpp/src/plugins/avf/output.c: In function ‘avf_device_class_tx_fn_cortexa72’: /home/snowball/tasks/test_vpp_build/test-patch-9/vpp/src/vppinfra/byte_order.h:59:10: error: ‘*((void *)&psh+32)’ may be used uninitialized in this function [-Werror=maybe-uninitialized] 59 | return __builtin_bswap16 (x); | ^~~~~~~~~~~~~~~~~~~~~ /home/snowball/tasks/test_vpp_build/test-patch-9/vpp/src/plugins/avf/output.c:115:23: note: ‘*((void *)&psh+32)’ was declared here 115 | struct avf_ip6_psh psh = { 0 }; | ^~~ Type: fix Change-Id: I2684b101b07823dfacc4a56cc29d152828d0cf37 Signed-off-by: Jieqiang Wang <jieqiang.wang@arm.com>
2020-12-18avf: optimized with NEON SIMD instructionLijian.Zhang1-1/+27
Optimize avf-input node processing function with NEON SIMD instruction. Type: improvement Change-Id: I3dd76ac659686209dda9b176fc426aeae639e99b Signed-off-by: Lijian Zhang <Lijian.Zhang@arm.com>
2020-12-14misc: move to new pool_foreach macrosDamjan Marion1-4/+4
Type: refactor Change-Id: Ie67dc579e88132ddb1ee4a34cb69f96920101772 Signed-off-by: Damjan Marion <damarion@cisco.com>
2020-12-04avf: fix coverity issueMohammed Hawari1-1/+2
Change-Id: I1b589c924326a98c4cabe5496ce72b20673b5153 Signed-off-by: Mohammed Hawari <mohammed@hawari.fr> Type: fix
2020-12-01avf: add TSO supportMohammed Hawari3-21/+120
Change-Id: Ica663e1d07225acf53fd74b0051a5a2a34174960 Signed-off-by: Mohammed Hawari <mohammed@hawari.fr> Type: improvement
2020-11-15avf: add L4 checksum offload supportMohammed Hawari3-6/+136
Change-Id: Ie90437cf597c5d53ab1cc41ea7db15b97614e2fc Signed-off-by: Mohammed Hawari <mohammed@hawari.fr> Type: improvement
2020-11-13avf: actually delete ethernet address if deletion was requestedAndrew Yourtchenko1-1/+1
fixes the coverity issue 214893. Type: fix Fixes: 1ab533cba2202e73c2296d7677d0b335f2afad7b Change-Id: I1159f5e23d1cdfcf6575c29d11e884703afee20f Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2020-11-12avf: don't switch process if already running process nodeDamjan Marion1-18/+25
Type: fix Change-Id: I82b11339402b5848b27c600f6484aaeee66cc888 Signed-off-by: Damjan Marion <damarion@cisco.com>
2020-11-09vlib: fix trace number accountingBenoît Ganne1-12/+16
When using classifier to filter traces, not all packets will be traced. In that case, we should only count traced packets. Type: fix Change-Id: I87d1e217b580ebff8c6ade7860eb43950420ae78 Signed-off-by: Benoît Ganne <bganne@cisco.com>
2020-10-26avf: use atomic store instead of barrierDamjan Marion2-4/+3
Type: improvement Change-Id: Ifea5f0c2fecb99fd320a2e1141f4b4f0d6a793ca Signed-off-by: Damjan Marion <damarion@cisco.com>
2020-10-26vlib: add VLIB_REGISTER_LOG_CLASS macroDamjan Marion2-10/+12
Type: improvement Change-Id: Iafcaeb88fa3569e042fb9cb270cf062b145416e2 Signed-off-by: Damjan Marion <damarion@cisco.com>
2020-10-09avf: add add_del_mac_address handlerDamjan Marion2-33/+89
Type: improvement Change-Id: I4d0b1cd87cf2f58a653f40a300da4b7a43348a06 Signed-off-by: Damjan Marion <damarion@cisco.com>
2020-10-08interface: shorten vnet_hw_if_rx_modeDamjan Marion1-2/+2
This is part of bigger refactor. Type: refactor Change-Id: I6fc2c0a1e2d217a70952901bcf775b8485bd3c20 Signed-off-by: Damjan Marion <damarion@cisco.com>
2020-09-30avf: check duplicate pci address upon create interfaceSteven Luong1-0/+13
Entering duplicate pci address when creating an avf interface causes crash in register_node (gdb) f 4 145 error_exit (1); (gdb) up 354 clib_error ("more than one node named `%v'", n->name); (gdb) p n $1 = (vlib_node_t *) 0x7fffbbe55de4 (gdb) p n->name $2 = (u8 *) 0x7fffbc410b10 "avf-0/4/a/0-tx" (gdb) The fix is to loop through the pci addresses in the avf interface pool and to reject the duplicate. Type: improvement Signed-off-by: Steven Luong <sluong@cisco.com> Change-Id: I4ed6fb630fb11982d85c5bb325d9f0d6beeaf023