On Tue, 11 Feb 2025 23:06:10 +0800 Wenbo Cao <caowe...@mucse.com> wrote:
> For This patchset just to support the basic chip init work > and user can just found the eth_dev, but can't control more. > For Now just support 2*10g nic,the chip can support > 2*10g,4*10g,4*1g,8*1g,8*10g. > The Feature rx side can support rx-cksum-offload,rss,vlan-filter > flow_clow,uncast_filter,mcast_filter,1588,Jumbo-frame > The Feature tx side can support tx-cksum-offload,tso,vxlan-tso > flow director base on ntuple pattern of tcp/udp/ip/ eth_hdr->type > for sriov is also support. > > Because of the chip design defect, for multiple-port mode > one pci-bdf will have multiple-port (max can have four ports) > so this code must be care of one bdf init multiple-port. > > v10: > * fixed mingw windows meson issue > * rnp not support windows for now. > * change ffs use osdep rte_fls_u32 > > v9: > * fixed commit log format check by devtools. > * fixed code compile issue. > > v8: > * fixed codespell issue. > * fixed MAINTAINERS file > > v7: > * add support nic basic feature such as rss vlan strip/filter, > * mtu-change recv/send scater-recv/mutltiple-send. > * fixed code rationality, advised by Ferruh Yigit. > v6: > * fixed the doc(rst) format problem advise by Thomas Monjalon > > v5: > * fixed the symbol name require by the style documentation > > v4: > * one patch has been forgot to upload :( > > v3: > * fixed http://dpdk.org/patch/129830 FreeBSD 13 compile Issue > * change iobar type to void suggest by Stephen Hemminger > * add KMOD_DEP support for vfio-pci > * change run-cmd argument parse check for invalid extra_args > > v2: > * fixed MAINTAIN maillist fullname format > * fixed driver/net/meson the order issue of new driver to driver list > * improve virtual point function usage suggest by Stephen Hemminger > > Wenbo Cao (28): > net/rnp: add skeleton > net/rnp: add ethdev probe and remove > net/rnp: add log > net/rnp: support mailbox basic operate > net/rnp: add device init and uninit > net/rnp: add get device information operation > net/rnp: add support MAC promisc mode > net/rnp: add queue setup and release operations > net/rnp: add queue stop and start operations > net/rnp: add support device start stop operations > net/rnp: add RSS support operations > net/rnp: add support link update operations > net/rnp: add support link setup operations > net/rnp: add Rx burst simple support > net/rnp: add Tx burst simple support > net/rnp: add MTU set operation > net/rnp: add Rx scatter segment version > net/rnp: add Tx multiple segment version > net/rnp: add support basic stats operation > net/rnp: add support xstats operation > net/rnp: add unicast MAC filter operation > net/rnp: add supported packet types > net/rnp: add support Rx checksum offload > net/rnp: add support Tx TSO offload > net/rnp: support VLAN offloads > net/rnp: add support VLAN filters operations > net/rnp: add queue info operation > net/rnp: support Rx/Tx burst mode info > > .mailmap | 1 + > MAINTAINERS | 6 + > doc/guides/nics/features/rnp.ini | 33 + > doc/guides/nics/index.rst | 1 + > doc/guides/nics/rnp.rst | 101 ++ > drivers/net/meson.build | 1 + > drivers/net/rnp/base/meson.build | 28 + > drivers/net/rnp/base/rnp_bdq_if.c | 398 ++++++ > drivers/net/rnp/base/rnp_bdq_if.h | 154 +++ > drivers/net/rnp/base/rnp_bitrev.h | 64 + > drivers/net/rnp/base/rnp_common.c | 103 ++ > drivers/net/rnp/base/rnp_common.h | 17 + > drivers/net/rnp/base/rnp_crc32.c | 37 + > drivers/net/rnp/base/rnp_crc32.h | 10 + > drivers/net/rnp/base/rnp_dma_regs.h | 68 + > drivers/net/rnp/base/rnp_eth_regs.h | 90 ++ > drivers/net/rnp/base/rnp_fw_cmd.c | 162 +++ > drivers/net/rnp/base/rnp_fw_cmd.h | 358 ++++++ > drivers/net/rnp/base/rnp_hw.h | 136 ++ > drivers/net/rnp/base/rnp_mac.c | 366 ++++++ > drivers/net/rnp/base/rnp_mac.h | 34 + > drivers/net/rnp/base/rnp_mac_regs.h | 207 +++ > drivers/net/rnp/base/rnp_mbx.c | 512 ++++++++ > drivers/net/rnp/base/rnp_mbx.h | 58 + > drivers/net/rnp/base/rnp_mbx_fw.c | 499 ++++++++ > drivers/net/rnp/base/rnp_mbx_fw.h | 24 + > drivers/net/rnp/base/rnp_osdep.h | 175 +++ > drivers/net/rnp/meson.build | 27 + > drivers/net/rnp/rnp.h | 258 ++++ > drivers/net/rnp/rnp_ethdev.c | 1845 +++++++++++++++++++++++++++ > drivers/net/rnp/rnp_link.c | 439 +++++++ > drivers/net/rnp/rnp_link.h | 38 + > drivers/net/rnp/rnp_logs.h | 36 + > drivers/net/rnp/rnp_rss.c | 367 ++++++ > drivers/net/rnp/rnp_rss.h | 43 + > drivers/net/rnp/rnp_rxtx.c | 1820 ++++++++++++++++++++++++++ > drivers/net/rnp/rnp_rxtx.h | 162 +++ > 37 files changed, 8678 insertions(+) > create mode 100644 doc/guides/nics/features/rnp.ini > create mode 100644 doc/guides/nics/rnp.rst > create mode 100644 drivers/net/rnp/base/meson.build > create mode 100644 drivers/net/rnp/base/rnp_bdq_if.c > create mode 100644 drivers/net/rnp/base/rnp_bdq_if.h > create mode 100644 drivers/net/rnp/base/rnp_bitrev.h > create mode 100644 drivers/net/rnp/base/rnp_common.c > create mode 100644 drivers/net/rnp/base/rnp_common.h > create mode 100644 drivers/net/rnp/base/rnp_crc32.c > create mode 100644 drivers/net/rnp/base/rnp_crc32.h > create mode 100644 drivers/net/rnp/base/rnp_dma_regs.h > create mode 100644 drivers/net/rnp/base/rnp_eth_regs.h > create mode 100644 drivers/net/rnp/base/rnp_fw_cmd.c > create mode 100644 drivers/net/rnp/base/rnp_fw_cmd.h > create mode 100644 drivers/net/rnp/base/rnp_hw.h > create mode 100644 drivers/net/rnp/base/rnp_mac.c > create mode 100644 drivers/net/rnp/base/rnp_mac.h > create mode 100644 drivers/net/rnp/base/rnp_mac_regs.h > create mode 100644 drivers/net/rnp/base/rnp_mbx.c > create mode 100644 drivers/net/rnp/base/rnp_mbx.h > create mode 100644 drivers/net/rnp/base/rnp_mbx_fw.c > create mode 100644 drivers/net/rnp/base/rnp_mbx_fw.h > create mode 100644 drivers/net/rnp/base/rnp_osdep.h > create mode 100644 drivers/net/rnp/meson.build > create mode 100644 drivers/net/rnp/rnp.h > create mode 100644 drivers/net/rnp/rnp_ethdev.c > create mode 100644 drivers/net/rnp/rnp_link.c > create mode 100644 drivers/net/rnp/rnp_link.h > create mode 100644 drivers/net/rnp/rnp_logs.h > create mode 100644 drivers/net/rnp/rnp_rss.c > create mode 100644 drivers/net/rnp/rnp_rss.h > create mode 100644 drivers/net/rnp/rnp_rxtx.c > create mode 100644 drivers/net/rnp/rnp_rxtx.h > Also the script devtools/test-meson-builds.sh that runs through different build options, eventually fails at: User defined options buildtype : debugoptimized check_includes : true cpu_instruction_set : nehalem default_library : shared enable_deprecated_libs: * examples : all libdir : lib werror : true Found ninja-1.12.1 at /usr/bin/ninja ninja: Entering directory `./build-x86-generic' [1751/6916] Compiling C object drivers/libtmp_rte_net_rnp.a.p/net_rnp_rnp_ethdev.c.o FAILED: drivers/libtmp_rte_net_rnp.a.p/net_rnp_rnp_ethdev.c.o cc -Idrivers/libtmp_rte_net_rnp.a.p -Idrivers -I../drivers -Idrivers/net/rnp -I../drivers/net/rnp -Idrivers/net/rnp/base -I../drivers/net/rnp/base -Ilib/ethdev -I../lib/ethdev -I. -I.. -Iconfig -I../config -Ilib/eal/include -I../lib/eal/include -Ilib/eal/linux/include -I../lib/eal/linux/include -Ilib/eal/x86/include -I../lib/eal/x86/include -I../kernel/linux -Ilib/eal/common -I../lib/eal/common -Ilib/eal -I../lib/eal -Ilib/kvargs -I../lib/kvargs -Ilib/log -I../lib/log -Ilib/metrics -I../lib/metrics -Ilib/telemetry -I../lib/telemetry -Ilib/net -I../lib/net -Ilib/mbuf -I../lib/mbuf -Ilib/mempool -I../lib/mempool -Ilib/ring -I../lib/ring -Ilib/meter -I../lib/meter -Idrivers/bus/pci -I../drivers/bus/pci -I../drivers/bus/pci/linux -Ilib/pci -I../lib/pci -Idrivers/bus/vdev -I../drivers/bus/vdev -I/usr/include/x86_64-linux-gnu -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -std=c11 -O2 -g -include rte_config.h -Wvla -Wcast-qual -Wdeprecated -Wformat -Wformat-nonliteral -Wformat-security -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wpointer-arith -Wsign-compare -Wstrict-prototypes -Wundef -Wwrite-strings -Wno-packed-not-aligned -Wno-missing-field-initializers -D_GNU_SOURCE -fPIC -march=nehalem -mrtm -DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API -Wno-format-truncation -Wno-address-of-packed-member -DRTE_LOG_DEFAULT_LOGTYPE=pmd.net.rnp -MD -MQ drivers/libtmp_rte_net_rnp.a.p/net_rnp_rnp_ethdev.c.o -MF drivers/libtmp_rte_net_rnp.a.p/net_rnp_rnp_ethdev.c.o.d -o drivers/libtmp_rte_net_rnp.a.p/net_rnp_rnp_ethdev.c.o -c ../drivers/net/rnp/rnp_ethdev.c In file included from ../lib/eal/x86/include/rte_atomic.h:11, from ../lib/eal/include/generic/rte_pause.h:19, from ../lib/eal/x86/include/rte_pause.h:8, from ../lib/eal/include/generic/rte_rwlock.h:31, from ../lib/eal/x86/include/rte_rwlock.h:8, from ../lib/eal/include/rte_eal_memconfig.h:10, from ../lib/eal/include/rte_memory.h:21, from ../lib/eal/include/rte_malloc.h:16, from ../lib/ethdev/ethdev_pci.h:9, from ../drivers/net/rnp/rnp_ethdev.c:5: In function ‘_mm_loadu_si128’, inlined from ‘rte_mov16’ at ../lib/eal/x86/include/rte_memcpy.h:113:9, inlined from ‘rte_mov32’ at ../lib/eal/x86/include/rte_memcpy.h:131:2, inlined from ‘rte_mov64’ at ../lib/eal/x86/include/rte_memcpy.h:149:2, inlined from ‘rte_mov128’ at ../lib/eal/x86/include/rte_memcpy.h:161:2, inlined from ‘rte_memcpy_generic’ at ../lib/eal/x86/include/rte_memcpy.h:615:4, inlined from ‘rte_memcpy’ at ../lib/eal/x86/include/rte_memcpy.h:757:10, inlined from ‘rnp_mbx_fw_reply_handler’ at ../drivers/net/rnp/rnp_ethdev.c:75:3, inlined from ‘rnp_process_fw_msg’ at ../drivers/net/rnp/rnp_ethdev.c:113:4, inlined from ‘rnp_dev_interrupt_handler’ at ../drivers/net/rnp/rnp_ethdev.c:130:2, inlined from ‘rnp_dev_interrupt_handler’ at ../drivers/net/rnp/rnp_ethdev.c:123:13: /usr/lib/gcc/x86_64-linux-gnu/14/include/emmintrin.h:706:10: error: array subscript 16 is outside array bounds of ‘uint32_t[64]’ {aka ‘unsigned int[64]’} [-Werror=array-bounds=] 706 | return *__P; | ^~~~ ../drivers/net/rnp/rnp_ethdev.c: In function ‘rnp_dev_interrupt_handler’: ../drivers/net/rnp/rnp_ethdev.c:103:18: note: at offset 256 into object ‘msgbuf’ of size 256 103 | uint32_t msgbuf[64]; | ^~~~~~ cc1: all warnings being treated as errors [1772/6916] Compiling C object lib/librte_pipeline.a.p/pipeline_rte_table_action.c.o ninja: build stopped: subcommand failed.