Merge ~mirespace/ubuntu/+source/dpdk:mre-jammy-21.11.6-noble_cycle into ubuntu/+source/dpdk:ubuntu/jammy-devel
- Git
- lp:~mirespace/ubuntu/+source/dpdk
- mre-jammy-21.11.6-noble_cycle
- Merge into ubuntu/jammy-devel
Status: | Merged | ||||
---|---|---|---|---|---|
Approved by: | git-ubuntu bot | ||||
Approved revision: | not available | ||||
Merged at revision: | df511568b6878411c8001c61b25ea8cca72fac9e | ||||
Proposed branch: | ~mirespace/ubuntu/+source/dpdk:mre-jammy-21.11.6-noble_cycle | ||||
Merge into: | ubuntu/+source/dpdk:ubuntu/jammy-devel | ||||
Diff against target: |
19583 lines (+6366/-3676) 314 files modified
.github/workflows/build.yml (+1/-1) .mailmap (+20/-3) VERSION (+1/-1) app/dumpcap/main.c (+14/-14) app/proc-info/main.c (+22/-20) app/test-bbdev/meson.build (+1/-1) app/test-bbdev/test-bbdev.py (+13/-16) app/test-bbdev/test_bbdev.c (+2/-1) app/test-crypto-perf/main.c (+9/-6) app/test-pipeline/main.c (+14/-0) app/test-pipeline/main.h (+2/-0) app/test-pipeline/pipeline_acl.c (+4/-2) app/test-pipeline/pipeline_hash.c (+57/-53) app/test-pipeline/pipeline_lpm.c (+4/-2) app/test-pipeline/pipeline_lpm_ipv6.c (+4/-2) app/test-pipeline/pipeline_stub.c (+4/-2) app/test-pipeline/runtime.c (+69/-63) app/test-pmd/cmdline.c (+50/-62) app/test-pmd/csumonly.c (+1/-1) app/test-pmd/testpmd.c (+20/-5) app/test/meson.build (+3/-0) app/test/test_cryptodev.c (+12/-4) app/test/test_cryptodev_asym.c (+2/-2) app/test/test_cryptodev_mixed_test_vectors.h (+6/-2) app/test/test_cryptodev_security_pdcp_sdap_test_vectors.h (+126/-126) app/test/test_event_crypto_adapter.c (+3/-4) app/test/test_event_timer_adapter.c (+67/-98) app/test/test_hash_readwrite.c (+1/-1) app/test/test_link_bonding.c (+3/-2) app/test/test_link_bonding_mode4.c (+1/-2) app/test/test_link_bonding_rssconf.c (+1/-1) app/test/test_malloc.c (+11/-10) app/test/test_mbuf.c (+14/-35) config/arm/meson.build (+23/-17) debian/changelog (+13/-0) debian/dpdk-dev.lintian-overrides (+2/-0) debian/librte-common-sfc-efx22.symbols (+1/-0) debian/librte-eventdev22.symbols (+1/-0) debian/patches/disable_autopkgtest_fails.patch (+4/-4) doc/api/doxy-api.conf.in (+0/-1) doc/guides/nics/features/iavf.ini (+1/-1) doc/guides/nics/hns3.rst (+62/-33) doc/guides/nics/i40e.rst (+10/-7) doc/guides/nics/ice.rst (+7/-4) doc/guides/nics/ixgbe.rst (+0/-2) doc/guides/nics/mlx5.rst (+6/-2) doc/guides/nics/tap.rst (+4/-4) doc/guides/nics/virtio.rst (+12/-0) doc/guides/platform/cnxk.rst (+4/-1) doc/guides/prog_guide/event_timer_adapter.rst (+1/-3) doc/guides/prog_guide/generic_segmentation_offload_lib.rst (+1/-1) doc/guides/prog_guide/graph_lib.rst (+1/-1) doc/guides/prog_guide/rte_flow.rst (+20/-16) doc/guides/prog_guide/rte_security.rst (+12/-53) doc/guides/rawdevs/ntb.rst (+24/-14) doc/guides/rel_notes/release_21_11.rst (+654/-0) doc/guides/sample_app_ug/vdpa.rst (+1/-2) doc/guides/tools/cryptoperf.rst (+0/-1) drivers/baseband/acc100/rte_acc100_pmd.c (+1/-1) drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c (+12/-6) drivers/bus/dpaa/base/qbman/qman.c (+3/-2) drivers/bus/pci/linux/pci_vfio.c (+1/-0) drivers/bus/pci/pci_common.c (+1/-1) drivers/common/cnxk/cnxk_security.c (+16/-0) drivers/common/cnxk/cnxk_security_ar.h (+1/-1) drivers/common/cnxk/hw/nix.h (+1/-0) drivers/common/cnxk/meson.build (+0/-1) drivers/common/cnxk/roc_dev.c (+1/-0) drivers/common/cnxk/roc_dpi.c (+3/-3) drivers/common/cnxk/roc_mbox.h (+1/-1) drivers/common/cnxk/roc_npa.c (+7/-1) drivers/common/cnxk/roc_npc.c (+10/-7) drivers/common/cnxk/roc_npc_mcam_dump.c (+4/-0) drivers/common/iavf/iavf_common.c (+2/-0) drivers/common/mlx5/linux/meson.build (+2/-0) drivers/common/mlx5/linux/mlx5_common_os.c (+3/-2) drivers/common/mlx5/linux/mlx5_glue.c (+4/-0) drivers/common/qat/meson.build (+0/-8) drivers/common/qat/qat_qp.c (+0/-187) drivers/common/qat/qat_qp.h (+16/-4) drivers/common/sfc_efx/base/efx.h (+14/-0) drivers/common/sfc_efx/base/efx_impl.h (+4/-0) drivers/common/sfc_efx/base/efx_mae.c (+11/-4) drivers/common/sfc_efx/base/efx_rx.c (+3/-1) drivers/common/sfc_efx/version.map (+1/-0) drivers/compress/qat/qat_comp.c (+182/-0) drivers/compress/qat/qat_comp.h (+3/-0) drivers/crypto/ipsec_mb/ipsec_mb_ops.c (+13/-4) drivers/crypto/ipsec_mb/meson.build (+5/-0) drivers/crypto/ipsec_mb/pmd_snow3g.c (+8/-8) drivers/crypto/nitrox/nitrox_sym_reqmgr.c (+16/-5) drivers/crypto/openssl/rte_openssl_pmd.c (+12/-2) drivers/crypto/qat/qat_sym.c (+3/-3) drivers/crypto/qat/qat_sym.h (+2/-0) drivers/crypto/qat/qat_sym_hw_dp.c (+38/-4) drivers/crypto/qat/qat_sym_pmd.c (+5/-0) drivers/crypto/scheduler/scheduler_pmd.c (+2/-1) drivers/dma/cnxk/cnxk_dmadev.c (+4/-4) drivers/event/cnxk/cn10k_eventdev.c (+6/-6) drivers/event/cnxk/cn9k_eventdev.c (+8/-8) drivers/event/cnxk/cnxk_eventdev.c (+3/-3) drivers/event/cnxk/cnxk_eventdev.h (+3/-3) drivers/event/dlb2/dlb2.c (+1/-0) drivers/event/dlb2/dlb2_selftest.c (+2/-2) drivers/event/dlb2/pf/dlb2_main.c (+27/-0) drivers/event/dpaa/dpaa_eventdev.c (+3/-3) drivers/event/dpaa2/dpaa2_eventdev.c (+3/-3) drivers/event/dsw/dsw_evdev.c (+5/-1) drivers/event/octeontx/ssovf_evdev.c (+1/-1) drivers/event/opdl/opdl_evdev.c (+1/-1) drivers/event/skeleton/skeleton_eventdev.c (+3/-3) drivers/event/sw/sw_evdev.c (+1/-1) drivers/event/sw/sw_evdev_scheduler.c (+8/-11) drivers/mempool/cnxk/cn10k_mempool_ops.c (+6/-0) drivers/net/af_packet/rte_eth_af_packet.c (+9/-0) drivers/net/af_xdp/meson.build (+8/-0) drivers/net/af_xdp/rte_eth_af_xdp.c (+50/-1) drivers/net/avp/avp_ethdev.c (+12/-0) drivers/net/bnx2x/bnx2x_ethdev.c (+12/-0) drivers/net/bnxt/bnxt_ethdev.c (+6/-0) drivers/net/bonding/rte_eth_bond_8023ad.c (+2/-5) drivers/net/bonding/rte_eth_bond_8023ad.h (+5/-4) drivers/net/bonding/rte_eth_bond_api.c (+10/-0) drivers/net/bonding/rte_eth_bond_args.c (+6/-0) drivers/net/bonding/rte_eth_bond_pmd.c (+17/-3) drivers/net/cnxk/cn10k_rx.h (+8/-8) drivers/net/cnxk/cn10k_tx.h (+3/-1) drivers/net/cnxk/cnxk_ethdev.h (+1/-0) drivers/net/cnxk/cnxk_ethdev_ops.c (+47/-0) drivers/net/cnxk/cnxk_rte_flow.c (+12/-8) drivers/net/cxgbe/cxgbe_ethdev.c (+6/-0) drivers/net/dpaa/dpaa_ethdev.c (+12/-0) drivers/net/dpaa2/dpaa2_ethdev.c (+11/-0) drivers/net/dpaa2/dpaa2_rxtx.c (+10/-2) drivers/net/e1000/em_ethdev.c (+2/-2) drivers/net/e1000/em_rxtx.c (+8/-0) drivers/net/e1000/igb_rxtx.c (+8/-0) drivers/net/ena/ena_ethdev.c (+12/-0) drivers/net/enetc/enetc_ethdev.c (+12/-0) drivers/net/enic/enic_ethdev.c (+6/-0) drivers/net/enic/enic_main.c (+1/-1) drivers/net/hinic/hinic_pmd_ethdev.c (+12/-0) drivers/net/hns3/hns3_cmd.c (+40/-3) drivers/net/hns3/hns3_cmd.h (+9/-1) drivers/net/hns3/hns3_common.c (+36/-3) drivers/net/hns3/hns3_common.h (+1/-0) drivers/net/hns3/hns3_dcb.c (+2/-9) drivers/net/hns3/hns3_ethdev.c (+275/-231) drivers/net/hns3/hns3_ethdev.h (+16/-23) drivers/net/hns3/hns3_ethdev_vf.c (+36/-28) drivers/net/hns3/hns3_fdir.c (+1/-1) drivers/net/hns3/hns3_flow.c (+4/-3) drivers/net/hns3/hns3_intr.c (+4/-2) drivers/net/hns3/hns3_mbx.c (+13/-68) drivers/net/hns3/hns3_mbx.h (+0/-10) drivers/net/hns3/hns3_ptp.c (+38/-8) drivers/net/hns3/hns3_ptp.h (+48/-0) drivers/net/hns3/hns3_regs.c (+3/-2) drivers/net/hns3/hns3_regs.h (+0/-23) drivers/net/hns3/hns3_rss.c (+4/-4) drivers/net/hns3/hns3_rss.h (+0/-4) drivers/net/hns3/hns3_rxtx.c (+44/-2) drivers/net/hns3/hns3_rxtx_vec.c (+5/-0) drivers/net/hns3/hns3_rxtx_vec_neon.h (+33/-49) drivers/net/hns3/hns3_rxtx_vec_sve.c (+5/-0) drivers/net/hns3/hns3_stats.c (+11/-6) drivers/net/hns3/hns3_tm.c (+152/-25) drivers/net/i40e/i40e_ethdev.c (+9/-7) drivers/net/i40e/i40e_rxtx.c (+13/-5) drivers/net/i40e/i40e_rxtx.h (+4/-1) drivers/net/i40e/i40e_rxtx_vec_altivec.c (+0/-2) drivers/net/i40e/i40e_rxtx_vec_common.h (+1/-0) drivers/net/i40e/i40e_rxtx_vec_neon.c (+0/-2) drivers/net/i40e/i40e_rxtx_vec_sse.c (+0/-2) drivers/net/iavf/iavf_ethdev.c (+55/-4) drivers/net/iavf/iavf_ipsec_crypto.c (+1/-0) drivers/net/iavf/iavf_rxtx.c (+12/-9) drivers/net/iavf/iavf_rxtx.h (+6/-3) drivers/net/iavf/iavf_rxtx_vec_avx512.c (+4/-1) drivers/net/ice/base/ice_sched.c (+6/-10) drivers/net/ice/base/ice_sched.h (+5/-0) drivers/net/ice/ice_dcf.c (+11/-1) drivers/net/ice/ice_dcf.h (+2/-0) drivers/net/ice/ice_dcf_ethdev.c (+31/-6) drivers/net/ice/ice_dcf_ethdev.h (+3/-0) drivers/net/ice/ice_dcf_parent.c (+6/-0) drivers/net/ice/ice_dcf_sched.c (+8/-6) drivers/net/ice/ice_dcf_vf_representor.c (+43/-3) drivers/net/ice/ice_ethdev.c (+25/-4) drivers/net/ice/ice_fdir_filter.c (+1/-1) drivers/net/ice/ice_generic_flow.c (+7/-0) drivers/net/ice/ice_hash.c (+1/-1) drivers/net/ice/ice_rxtx.c (+37/-22) drivers/net/ice/ice_rxtx.h (+6/-0) drivers/net/ice/ice_rxtx_vec_common.h (+1/-1) drivers/net/igc/igc_txrx.c (+4/-0) drivers/net/ipn3ke/ipn3ke_representor.c (+12/-0) drivers/net/ixgbe/ixgbe_rxtx.c (+27/-26) drivers/net/memif/rte_eth_memif.c (+16/-0) drivers/net/mlx4/mlx4.c (+13/-0) drivers/net/mlx5/linux/mlx5_ethdev_os.c (+25/-10) drivers/net/mlx5/linux/mlx5_flow_os.c (+1/-1) drivers/net/mlx5/linux/mlx5_os.c (+4/-2) drivers/net/mlx5/mlx5.c (+1/-0) drivers/net/mlx5/mlx5.h (+2/-1) drivers/net/mlx5/mlx5_devx.c (+4/-0) drivers/net/mlx5/mlx5_flow.c (+105/-74) drivers/net/mlx5/mlx5_flow.h (+5/-2) drivers/net/mlx5/mlx5_flow_dv.c (+116/-46) drivers/net/mlx5/mlx5_flow_verbs.c (+4/-1) drivers/net/mlx5/mlx5_rx.c (+1/-0) drivers/net/mlx5/mlx5_rxq.c (+28/-10) drivers/net/mlx5/mlx5_rxtx_vec_neon.h (+8/-0) drivers/net/mlx5/mlx5_trigger.c (+15/-10) drivers/net/mlx5/mlx5_tx.h (+1/-1) drivers/net/mvneta/mvneta_ethdev.c (+13/-0) drivers/net/mvpp2/mrvl_ethdev.c (+10/-0) drivers/net/netvsc/hn_rndis.c (+3/-2) drivers/net/nfp/nfp_common.c (+9/-5) drivers/net/nfp/nfp_common.h (+1/-0) drivers/net/nfp/nfp_ethdev.c (+12/-3) drivers/net/nfp/nfp_ethdev_vf.c (+4/-2) drivers/net/nfp/nfp_rxtx.c (+6/-2) drivers/net/nfp/nfpcore/nfp_cpp.h (+6/-1) drivers/net/nfp/nfpcore/nfp_cpp_pcie_ops.c (+7/-7) drivers/net/nfp/nfpcore/nfp_cppcore.c (+40/-12) drivers/net/nfp/nfpcore/nfp_rtsym.c (+109/-8) drivers/net/ngbe/base/ngbe_type.h (+40/-0) drivers/net/ngbe/ngbe_ethdev.c (+101/-1) drivers/net/ngbe/ngbe_rxtx.c (+3/-0) drivers/net/null/rte_eth_null.c (+15/-0) drivers/net/octeontx_ep/otx_ep_ethdev.c (+11/-0) drivers/net/pfe/pfe_ethdev.c (+11/-0) drivers/net/qede/qede_ethdev.c (+1/-0) drivers/net/ring/rte_eth_ring.c (+15/-0) drivers/net/sfc/sfc_dp_rx.h (+1/-0) drivers/net/sfc/sfc_ef100_rx.c (+14/-4) drivers/net/sfc/sfc_ef100_tx.c (+1/-1) drivers/net/sfc/sfc_ethdev.c (+1/-1) drivers/net/sfc/sfc_mae.c (+5/-1) drivers/net/sfc/sfc_repr.c (+13/-0) drivers/net/sfc/sfc_rx.c (+3/-0) drivers/net/softnic/rte_eth_softnic.c (+12/-0) drivers/net/tap/rte_eth_tap.c (+16/-30) drivers/net/tap/tap_bpf_insns.h (+1503/-1456) drivers/net/tap/tap_bpf_program.c (+37/-8) drivers/net/txgbe/base/txgbe_hw.c (+14/-0) drivers/net/txgbe/base/txgbe_mng.c (+1/-15) drivers/net/txgbe/base/txgbe_phy.c (+15/-7) drivers/net/txgbe/base/txgbe_type.h (+1/-0) drivers/net/txgbe/txgbe_ethdev.c (+40/-11) drivers/net/txgbe/txgbe_ethdev.h (+1/-0) drivers/net/txgbe/txgbe_ptypes.c (+0/-16) drivers/net/txgbe/txgbe_ptypes.h (+5/-0) drivers/net/txgbe/txgbe_rxtx.c (+20/-11) drivers/net/vhost/rte_eth_vhost.c (+12/-0) drivers/net/virtio/virtio_ethdev.c (+48/-27) drivers/net/virtio/virtio_user/virtio_user_dev.c (+2/-5) drivers/net/virtio/virtqueue.h (+15/-4) drivers/net/vmxnet3/vmxnet3_ethdev.c (+12/-0) drivers/net/vmxnet3/vmxnet3_rxtx.c (+30/-18) examples/ethtool/ethtool-app/ethapp.c (+36/-23) examples/fips_validation/main.c (+3/-2) examples/ip_pipeline/thread.c (+1/-1) examples/ipsec-secgw/ipsec.h (+7/-0) examples/ipsec-secgw/test/common_defs.sh (+1/-1) examples/l2fwd-cat/Makefile (+1/-0) examples/ntb/ntb_fwd.c (+2/-2) kernel/freebsd/contigmem/contigmem.c (+2/-2) kernel/linux/kni/compat.h (+4/-0) kernel/linux/kni/kni_dev.h (+6/-4) lib/cryptodev/rte_cryptodev.h (+9/-0) lib/eal/common/eal_common_debug.c (+4/-1) lib/eal/common/eal_common_dynmem.c (+2/-4) lib/eal/common/eal_common_proc.c (+13/-1) lib/eal/common/rte_malloc.c (+2/-2) lib/eal/common/rte_random.c (+1/-1) lib/eal/freebsd/eal.c (+10/-0) lib/eal/freebsd/eal_memory.c (+3/-5) lib/eal/linux/eal.c (+16/-6) lib/eal/linux/eal_memory.c (+40/-22) lib/eal/unix/eal_firmware.c (+20/-8) lib/eal/windows/eal_memory.c (+8/-0) lib/ethdev/ethdev_pci.h (+3/-1) lib/ethdev/rte_ethdev.c (+18/-1) lib/ethdev/rte_ethdev.h (+13/-9) lib/ethdev/rte_flow.c (+11/-3) lib/eventdev/eventdev_pmd_vdev.h (+2/-1) lib/eventdev/rte_event_eth_rx_adapter.c (+7/-7) lib/eventdev/rte_event_timer_adapter.c (+9/-8) lib/eventdev/rte_eventdev.c (+2/-0) lib/eventdev/version.map (+1/-0) lib/fib/dir24_8.c (+7/-1) lib/fib/trie.c (+17/-1) lib/hash/rte_cuckoo_hash.c (+4/-0) lib/hash/rte_thash.c (+7/-5) lib/ipsec/esp_outb.c (+1/-1) lib/ipsec/sa.c (+1/-1) lib/mbuf/rte_mbuf_core.h (+1/-1) lib/mbuf/rte_mbuf_ptype.h (+2/-2) lib/mempool/rte_mempool.c (+16/-17) lib/mempool/rte_mempool.h (+9/-3) lib/meter/rte_meter.h (+0/-12) lib/pci/rte_pci.h (+1/-2) lib/pdump/rte_pdump.c (+3/-2) lib/pipeline/rte_swx_pipeline.c (+2/-0) lib/rawdev/rte_rawdev.c (+1/-2) lib/ring/rte_ring.c (+3/-5) lib/ring/rte_ring_elem_pvt.h (+4/-4) lib/security/rte_security.h (+6/-0) lib/telemetry/telemetry.c (+18/-3) lib/vhost/vhost.c (+62/-5) lib/vhost/vhost.h (+4/-4) meson.build (+1/-1) |
||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
git-ubuntu bot | Approve | ||
Sergio Durigan Junior (community) | Approve | ||
Canonical Server Reporter | Pending | ||
Review via email:
|
Commit message
Description of the change
ppa for this is (the number doesn't apply.. it was for old MRE, and I uploaded it again there to be doubly safe that I'm uploading a higher version):
ppa:mirespace/
https:/
Two new symbols appeared in this update related to the following upstream changes:
- __rte_eventdev_
- efx_mae_
Autopkgtests:
+ ✅ dpdk on jammy for amd64 @ 21.02.24 15:22:10
• Log: https:/
+ ✅ dpdk on jammy for arm64 @ 21.02.24 15:18:09
• Log: https:/
+ ✅ dpdk on jammy for i386 @ 21.02.24 14:54:47
• Log: https:/
+ ✅ dpdk on jammy for ppc64el @ 21.02.24 15:16:59
• Log: https:/
+ ✅ dpdk on jammy for s390x @ 21.02.24 15:17:15
• Log: https:/
But armhf its failing:
jammy/armhf/
jammy/armhf/
jammy/armhf/
I'm retriggering it.
Tests on horsea passed: https:/
Please, review and sponsor if LGTY (I hope the armhf tests will be OK while you're reading this).
Thank you in advance!
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
git-ubuntu bot (git-ubuntu-bot) wrote : | # |
Approvers: sergiodj, mirespace
Uploaders: sergiodj
MP auto-approved
Preview Diff
1 | diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml |
2 | index 0df7a6a..f1079d8 100644 |
3 | --- a/.github/workflows/build.yml |
4 | +++ b/.github/workflows/build.yml |
5 | @@ -76,7 +76,7 @@ jobs: |
6 | id: get_ref_keys |
7 | run: | |
8 | echo 'ccache=ccache-${{ matrix.config.os }}-${{ matrix.config.compiler }}-${{ matrix.config.cross }}-'$(date -u +%Y-w%W) >> $GITHUB_OUTPUT |
9 | - echo 'libabigail=libabigail-${{ matrix.config.os }}' >> $GITHUB_OUTPUT |
10 | + echo 'libabigail=libabigail-${{ env.LIBABIGAIL_VERSION }}-${{ matrix.config.os }}' >> $GITHUB_OUTPUT |
11 | echo 'abi=abi-${{ matrix.config.os }}-${{ matrix.config.compiler }}-${{ matrix.config.cross }}-${{ env.LIBABIGAIL_VERSION }}-${{ env.REF_GIT_TAG }}' >> $GITHUB_OUTPUT |
12 | - name: Retrieve ccache cache |
13 | uses: actions/cache@v3 |
14 | diff --git a/.mailmap b/.mailmap |
15 | index c1b7305..fe94cbe 100644 |
16 | --- a/.mailmap |
17 | +++ b/.mailmap |
18 | @@ -38,6 +38,7 @@ Aleksandr Loktionov <aleksandr.loktionov@intel.com> |
19 | Aleksandr Miloshenko <a.miloshenko@f5.com> |
20 | Aleksey Baulin <aleksey.baulin@gmail.com> |
21 | Aleksey Katargin <gureedo@gmail.com> |
22 | +Ales Musil <amusil@redhat.com> |
23 | Alexander Bechikov <asb.tyum@gmail.com> |
24 | Alexander Belyakov <abelyako@gmail.com> |
25 | Alexander Chernavin <achernavin@netgate.com> |
26 | @@ -103,7 +104,7 @@ Andriy Berestovskyy <aber@semihalf.com> <andriy.berestovskyy@caviumnetworks.com> |
27 | Andrzej Ostruszka <amo@semihalf.com> <aostruszka@marvell.com> |
28 | Andy Gospodarek <andrew.gospodarek@broadcom.com> <gospo@broadcom.com> |
29 | Andy Green <andy@warmcat.com> |
30 | -Andy Moreton <amoreton@xilinx.com> <amoreton@solarflare.com> |
31 | +Andy Moreton <andy.moreton@amd.com> <amoreton@xilinx.com> <amoreton@solarflare.com> |
32 | Andy Pei <andy.pei@intel.com> |
33 | Anirudh Venkataramanan <anirudh.venkataramanan@intel.com> |
34 | Ankur Dwivedi <adwivedi@marvell.com> <ankur.dwivedi@caviumnetworks.com> <ankur.dwivedi@cavium.com> |
35 | @@ -144,6 +145,7 @@ Balazs Nemeth <bnemeth@redhat.com> <balazs.nemeth@intel.com> |
36 | Bao-Long Tran <longtb5@viettel.com.vn> |
37 | Barak Enat <barak@saguna.net> |
38 | Barry Cao <barry.cao@nxp.com> |
39 | +Bartosz Staszewski <bartoszx.staszewski@intel.com> |
40 | Baruch Siach <baruch@tkos.co.il> |
41 | Bassam Zaid AlKilani <bzalkilani@nvidia.com> |
42 | Beilei Xing <beilei.xing@intel.com> |
43 | @@ -297,6 +299,7 @@ Deepak Khandelwal <deepak.khandelwal@intel.com> |
44 | Deepak Kumar Jain <deepak.k.jain@intel.com> |
45 | Deirdre O'Connor <deirdre.o.connor@intel.com> |
46 | Dekel Peled <dekelp@nvidia.com> <dekelp@mellanox.com> |
47 | +Denis Pryazhennikov <denis.pryazhennikov@arknetworks.am> |
48 | Dennis Marinus <dmarinus@amazon.com> |
49 | Derek Chickles <derek.chickles@caviumnetworks.com> |
50 | Des O Dea <des.j.o.dea@intel.com> |
51 | @@ -374,6 +377,7 @@ Farah Smith <farah.smith@broadcom.com> |
52 | Fei Chen <chenwei.0515@bytedance.com> |
53 | Feifei Wang <feifei.wang2@arm.com> <feifei.wang@arm.com> |
54 | Fei Qin <fei.qin@corigine.com> |
55 | +Fengjiang Liu <liufengjiang.0426@bytedance.com> |
56 | Fengnan Chang <changfengnan@bytedance.com> |
57 | Fengtian Guo <fengtian.guo@6wind.com> |
58 | Ferdinand Thiessen <rpm@fthiessen.de> |
59 | @@ -480,6 +484,7 @@ Helin Zhang <helin.zhang@intel.com> |
60 | Hemant Agrawal <hemant.agrawal@nxp.com> <hemant@freescale.com> |
61 | Heng Ding <hengx.ding@intel.com> |
62 | Hengjian Zhang <hengjianx.zhang@intel.com> |
63 | +Heng Jiang <jiangheng14@huawei.com> |
64 | Heng Wang <heng.wang@ericsson.com> |
65 | Henning Schild <henning.schild@siemens.com> |
66 | Henry Cai <caihe@huawei.com> |
67 | @@ -609,6 +614,7 @@ Jie Liu <jie2.liu@hxt-semitech.com> |
68 | Jie Pan <panjie5@jd.com> |
69 | Jie Wang <jie1x.wang@intel.com> |
70 | Jie Zhou <jizh@linux.microsoft.com> <jizh@microsoft.com> |
71 | +Jieqiang Wang <jieqiang.wang@arm.com> |
72 | Jijiang Liu <jijiang.liu@intel.com> |
73 | Jilei Chen <chenjilei@cmss.chinamobile.com> |
74 | Jim Harris <james.r.harris@intel.com> |
75 | @@ -645,6 +651,7 @@ John Ousterhout <ouster@cs.stanford.edu> |
76 | John W. Linville <linville@tuxdriver.com> |
77 | Jonas Pfefferle <jpf@zurich.ibm.com> <pepperjo@japf.ch> |
78 | Jonathan Erb <jonathan.erb@banduracyber.com> |
79 | +Jonathan Tsai <jonathan1.tsai@intel.com> |
80 | Jon DeVree <nuxi@vault24.org> |
81 | Jon Loeliger <jdl@netgate.com> |
82 | Joongi Kim <joongi@an.kaist.ac.kr> |
83 | @@ -676,7 +683,9 @@ Jun Yang <jun.yang@nxp.com> |
84 | Junyu Jiang <junyux.jiang@intel.com> |
85 | Juraj Linkeš <juraj.linkes@pantheon.tech> |
86 | Kai Ji <kai.ji@intel.com> |
87 | +Kaijun Zeng <corezeng@gmail.com> |
88 | Kaiwen Deng <kaiwenx.deng@intel.com> |
89 | +Kaiyu Zhang <squirrel.prog@gmail.com> |
90 | Kalesh AP <kalesh-anakkur.purayil@broadcom.com> |
91 | Kamalakannan R <kamalakannan.r@intel.com> |
92 | Kamalakshitha Aligeri <kamalakshitha.aligeri@arm.com> |
93 | @@ -720,6 +729,7 @@ Krzysztof Galazka <krzysztof.galazka@intel.com> |
94 | Krzysztof Kanas <kkanas@marvell.com> <krzysztof.kanas@caviumnetworks.com> |
95 | Krzysztof Karas <krzysztof.karas@intel.com> |
96 | Krzysztof Witek <krzysztof.witek@6wind.com> |
97 | +Kuan Xu <kuanx.xu@intel.com> |
98 | Kuba Kozak <kubax.kozak@intel.com> |
99 | Kumar Amber <kumar.amber@intel.com> |
100 | Kumara Parameshwaran <kumaraparamesh92@gmail.com> <kparameshwar@vmware.com> |
101 | @@ -759,7 +769,7 @@ Liming Sun <lsun@ezchip.com> <lsun@mellanox.com> |
102 | Linfan Hu <zhongdahulinfan@163.com> |
103 | Lingli Chen <linglix.chen@intel.com> |
104 | Lingyu Liu <lingyu.liu@intel.com> |
105 | -Lin Li <lilin24@baidu.com> |
106 | +Lin Li <lilintjpu@bytedance.com> <lilin24@baidu.com> |
107 | Linsi Yuan <yuanlinsi01@baidu.com> |
108 | Lior Margalit <lmargalit@nvidia.com> |
109 | Li Qiang <liq3ea@163.com> |
110 | @@ -797,6 +807,7 @@ Maciej Paczkowski <maciej.paczkowski@intel.com> |
111 | Maciej Rabeda <maciej.rabeda@intel.com> |
112 | Maciej Szwed <maciej.szwed@intel.com> |
113 | Madhuker Mythri <madhuker.mythri@oracle.com> |
114 | +Mahesh Adulla <mahesh.adulla@amd.com> |
115 | Mahipal Challa <mchalla@marvell.com> |
116 | Mah Yock Gen <yock.gen.mah@intel.com> |
117 | Mairtin o Loingsigh <mairtin.oloingsigh@intel.com> |
118 | @@ -856,6 +867,7 @@ Mateusz Rusinski <mateusz.rusinski@intel.com> |
119 | Matias Elo <matias.elo@nokia.com> |
120 | Mats Liljegren <mats.liljegren@enea.com> |
121 | Matteo Croce <mcroce@redhat.com> |
122 | +Matthew Dirba <matthew.dirba@arm.com> |
123 | Matthew Hall <mhall@mhcomputing.net> |
124 | Matthew Smith <mgsmith@netgate.com> |
125 | Matthew Vick <matthew.vick@intel.com> |
126 | @@ -1050,6 +1062,7 @@ Peter Spreadborough <peter.spreadborough@broadcom.com> |
127 | Petr Houska <t-pehous@microsoft.com> |
128 | Phanendra Vukkisala <pvukkisala@marvell.com> |
129 | Phil Yang <phil.yang@arm.com> |
130 | +Philip Prindeville <philipp@redfish-solutions.com> |
131 | Pierre Pfister <ppfister@cisco.com> |
132 | Piotr Azarewicz <piotr.azarewicz@intel.com> <piotrx.t.azarewicz@intel.com> |
133 | Piotr Bartosiewicz <piotr.bartosiewicz@atendesoftware.pl> |
134 | @@ -1171,6 +1184,7 @@ Salem Sol <salems@nvidia.com> |
135 | Sameh Gobriel <sameh.gobriel@intel.com> |
136 | Sam Grove <sam.grove@sifive.com> |
137 | Samik Gupta <samik.gupta@broadcom.com> |
138 | +Sampath Peechu <speechu@cisco.com> |
139 | Samuel Gauthier <samuel.gauthier@6wind.com> |
140 | Sangjin Han <sangjin@eecs.berkeley.edu> |
141 | Sankar Chokkalingam <sankarx.chokkalingam@intel.com> |
142 | @@ -1185,6 +1199,7 @@ Satananda Burla <sburla@marvell.com> |
143 | Satha Rao <skoteshwar@marvell.com> <skoteshwar@caviumnetworks.com> |
144 | Satheesh Paul <psatheesh@marvell.com> |
145 | Sathesh Edara <sedara@marvell.com> |
146 | +Saurabh Singhal <saurabhs@arista.com> |
147 | Savinay Dharmappa <savinay.dharmappa@intel.com> |
148 | Scott Branden <scott.branden@broadcom.com> |
149 | Scott Daniels <daniels@research.att.com> |
150 | @@ -1252,6 +1267,7 @@ Simon Kuenzer <simon.kuenzer@neclab.eu> |
151 | Siobhan Butler <siobhan.a.butler@intel.com> |
152 | Sirshak Das <sirshak.das@arm.com> |
153 | Sivaprasad Tummala <sivaprasad.tummala@amd.com> <sivaprasad.tummala@intel.com> |
154 | +Sivaramakrishnan Venkat <venkatx.sivaramakrishnan@intel.com> |
155 | Siwar Zitouni <siwar.zitouni@6wind.com> |
156 | Slawomir Mrozowicz <slawomirx.mrozowicz@intel.com> |
157 | Slawomir Rosek <slawomir.rosek@semihalf.com> |
158 | @@ -1352,6 +1368,7 @@ Tianli Lai <laitianli@tom.com> |
159 | Tianyu Li <tianyu.li@arm.com> |
160 | Timmons C. Player <timmons.player@spirent.com> |
161 | Timothy McDaniel <timothy.mcdaniel@intel.com> |
162 | +Timothy Miskell <timothy.miskell@intel.com> |
163 | Timothy Redaelli <tredaelli@redhat.com> |
164 | Tim Shearer <tim.shearer@overturenetworks.com> |
165 | Ting Xu <ting.xu@intel.com> |
166 | @@ -1436,7 +1453,7 @@ Waterman Cao <waterman.cao@intel.com> |
167 | Weichun Chen <weichunx.chen@intel.com> |
168 | Wei Dai <wei.dai@intel.com> |
169 | Weifeng Li <liweifeng96@126.com> |
170 | -Weiguo Li <liwg06@foxmail.com> |
171 | +Weiguo Li <liweiguo@xencore.cn> <liwg06@foxmail.com> |
172 | Wei Huang <wei.huang@intel.com> |
173 | Wei Hu (Xavier) <xavier.huwei@huawei.com> |
174 | WeiJie Zhuang <zhuangwj@gmail.com> |
175 | diff --git a/VERSION b/VERSION |
176 | index 04d6897..071002a 100644 |
177 | --- a/VERSION |
178 | +++ b/VERSION |
179 | @@ -1 +1 @@ |
180 | -21.11.4 |
181 | +21.11.6 |
182 | diff --git a/app/dumpcap/main.c b/app/dumpcap/main.c |
183 | index a828b7c..74dd72b 100644 |
184 | --- a/app/dumpcap/main.c |
185 | +++ b/app/dumpcap/main.c |
186 | @@ -44,7 +44,6 @@ |
187 | #include <pcap/pcap.h> |
188 | #include <pcap/bpf.h> |
189 | |
190 | -#define RING_NAME "capture-ring" |
191 | #define MONITOR_INTERVAL (500 * 1000) |
192 | #define MBUF_POOL_CACHE_SIZE 32 |
193 | #define BURST_SIZE 32 |
194 | @@ -539,6 +538,7 @@ static void dpdk_init(void) |
195 | static struct rte_ring *create_ring(void) |
196 | { |
197 | struct rte_ring *ring; |
198 | + char ring_name[RTE_RING_NAMESIZE]; |
199 | size_t size, log2; |
200 | |
201 | /* Find next power of 2 >= size. */ |
202 | @@ -552,31 +552,31 @@ static struct rte_ring *create_ring(void) |
203 | ring_size = size; |
204 | } |
205 | |
206 | - ring = rte_ring_lookup(RING_NAME); |
207 | - if (ring == NULL) { |
208 | - ring = rte_ring_create(RING_NAME, ring_size, |
209 | - rte_socket_id(), 0); |
210 | - if (ring == NULL) |
211 | - rte_exit(EXIT_FAILURE, "Could not create ring :%s\n", |
212 | - rte_strerror(rte_errno)); |
213 | - } |
214 | + /* Want one ring per invocation of program */ |
215 | + snprintf(ring_name, sizeof(ring_name), |
216 | + "dumpcap-%d", getpid()); |
217 | + |
218 | + ring = rte_ring_create(ring_name, ring_size, |
219 | + rte_socket_id(), 0); |
220 | + if (ring == NULL) |
221 | + rte_exit(EXIT_FAILURE, "Could not create ring :%s\n", |
222 | + rte_strerror(rte_errno)); |
223 | + |
224 | return ring; |
225 | } |
226 | |
227 | static struct rte_mempool *create_mempool(void) |
228 | { |
229 | - static const char pool_name[] = "capture_mbufs"; |
230 | + char pool_name[RTE_MEMPOOL_NAMESIZE]; |
231 | size_t num_mbufs = 2 * ring_size; |
232 | struct rte_mempool *mp; |
233 | |
234 | - mp = rte_mempool_lookup(pool_name); |
235 | - if (mp) |
236 | - return mp; |
237 | + snprintf(pool_name, sizeof(pool_name), "capture_%d", getpid()); |
238 | |
239 | mp = rte_pktmbuf_pool_create_by_ops(pool_name, num_mbufs, |
240 | MBUF_POOL_CACHE_SIZE, 0, |
241 | rte_pcapng_mbuf_size(snaplen), |
242 | - rte_socket_id(), "ring_mp_sc"); |
243 | + rte_socket_id(), "ring_mp_mc"); |
244 | if (mp == NULL) |
245 | rte_exit(EXIT_FAILURE, |
246 | "Mempool (%s) creation failed: %s\n", pool_name, |
247 | diff --git a/app/proc-info/main.c b/app/proc-info/main.c |
248 | index e1ccdbb..b52c3ff 100644 |
249 | --- a/app/proc-info/main.c |
250 | +++ b/app/proc-info/main.c |
251 | @@ -19,7 +19,6 @@ |
252 | #include <rte_common.h> |
253 | #include <rte_debug.h> |
254 | #include <rte_ethdev.h> |
255 | -#include <rte_malloc.h> |
256 | #include <rte_memory.h> |
257 | #include <rte_memzone.h> |
258 | #include <rte_launch.h> |
259 | @@ -101,6 +100,8 @@ static char *mempool_iter_name; |
260 | static uint32_t enable_dump_regs; |
261 | static char *dump_regs_file_prefix; |
262 | |
263 | +#define RSS_HASH_KEY_SIZE 64 |
264 | + |
265 | /**< display usage */ |
266 | static void |
267 | proc_info_usage(const char *prgname) |
268 | @@ -621,24 +622,23 @@ metrics_display(int port_id) |
269 | return; |
270 | } |
271 | |
272 | - metrics = rte_malloc("proc_info_metrics", |
273 | - sizeof(struct rte_metric_value) * len, 0); |
274 | + metrics = malloc(sizeof(struct rte_metric_value) * len); |
275 | if (metrics == NULL) { |
276 | printf("Cannot allocate memory for metrics\n"); |
277 | return; |
278 | } |
279 | |
280 | - names = rte_malloc(NULL, sizeof(struct rte_metric_name) * len, 0); |
281 | + names = malloc(sizeof(struct rte_metric_name) * len); |
282 | if (names == NULL) { |
283 | printf("Cannot allocate memory for metrics names\n"); |
284 | - rte_free(metrics); |
285 | + free(metrics); |
286 | return; |
287 | } |
288 | |
289 | if (len != rte_metrics_get_names(names, len)) { |
290 | printf("Cannot get metrics names\n"); |
291 | - rte_free(metrics); |
292 | - rte_free(names); |
293 | + free(metrics); |
294 | + free(names); |
295 | return; |
296 | } |
297 | |
298 | @@ -650,8 +650,8 @@ metrics_display(int port_id) |
299 | ret = rte_metrics_get_values(port_id, metrics, len); |
300 | if (ret < 0 || ret > len) { |
301 | printf("Cannot get metrics values\n"); |
302 | - rte_free(metrics); |
303 | - rte_free(names); |
304 | + free(metrics); |
305 | + free(names); |
306 | return; |
307 | } |
308 | |
309 | @@ -660,8 +660,8 @@ metrics_display(int port_id) |
310 | printf("%s: %"PRIu64"\n", names[i].name, metrics[i].value); |
311 | |
312 | printf("%s############################\n", nic_stats_border); |
313 | - rte_free(metrics); |
314 | - rte_free(names); |
315 | + free(metrics); |
316 | + free(names); |
317 | } |
318 | #endif |
319 | |
320 | @@ -725,6 +725,7 @@ show_port(void) |
321 | struct rte_eth_fc_conf fc_conf; |
322 | struct rte_ether_addr mac; |
323 | struct rte_eth_dev_owner owner; |
324 | + uint8_t rss_key[RSS_HASH_KEY_SIZE]; |
325 | |
326 | /* Skip if port is not in mask */ |
327 | if ((enabled_port_mask & (1ul << i)) == 0) |
328 | @@ -868,17 +869,18 @@ show_port(void) |
329 | printf("\n"); |
330 | } |
331 | |
332 | + rss_conf.rss_key = rss_key; |
333 | + rss_conf.rss_key_len = dev_info.hash_key_size; |
334 | ret = rte_eth_dev_rss_hash_conf_get(i, &rss_conf); |
335 | if (ret == 0) { |
336 | - if (rss_conf.rss_key) { |
337 | - printf(" - RSS\n"); |
338 | - printf("\t -- RSS len %u key (hex):", |
339 | - rss_conf.rss_key_len); |
340 | - for (k = 0; k < rss_conf.rss_key_len; k++) |
341 | - printf(" %x", rss_conf.rss_key[k]); |
342 | - printf("\t -- hf 0x%"PRIx64"\n", |
343 | - rss_conf.rss_hf); |
344 | - } |
345 | + printf(" - RSS info\n"); |
346 | + printf("\t -- key len : %u\n", |
347 | + rss_conf.rss_key_len); |
348 | + printf("\t -- key (hex) : "); |
349 | + for (k = 0; k < rss_conf.rss_key_len; k++) |
350 | + printf("%02x", rss_conf.rss_key[k]); |
351 | + printf("\n\t -- hash function : 0x%"PRIx64"\n", |
352 | + rss_conf.rss_hf); |
353 | } |
354 | |
355 | #ifdef RTE_LIB_SECURITY |
356 | diff --git a/app/test-bbdev/meson.build b/app/test-bbdev/meson.build |
357 | index 76d4c26..c468625 100644 |
358 | --- a/app/test-bbdev/meson.build |
359 | +++ b/app/test-bbdev/meson.build |
360 | @@ -23,6 +23,6 @@ endif |
361 | if dpdk_conf.has('RTE_BASEBAND_ACC100') |
362 | deps += ['baseband_acc100'] |
363 | endif |
364 | -if dpdk_conf.has('RTE_LIBRTE_PMD_BBDEV_LA12XX') |
365 | +if dpdk_conf.has('RTE_BASEBAND_LA12XX') |
366 | deps += ['baseband_la12xx'] |
367 | endif |
368 | diff --git a/app/test-bbdev/test-bbdev.py b/app/test-bbdev/test-bbdev.py |
369 | index 291c80b..b3eac3b 100755 |
370 | --- a/app/test-bbdev/test-bbdev.py |
371 | +++ b/app/test-bbdev/test-bbdev.py |
372 | @@ -91,21 +91,18 @@ for vector in args.test_vector: |
373 | params_string = " ".join(call_params) |
374 | |
375 | print("Executing: {}".format(params_string)) |
376 | - app_proc = subprocess.Popen(call_params) |
377 | - if args.timeout > 0: |
378 | - timer = Timer(args.timeout, kill, [app_proc]) |
379 | - timer.start() |
380 | - |
381 | try: |
382 | - app_proc.communicate() |
383 | - except: |
384 | - print("Error: failed to execute: {}".format(params_string)) |
385 | - finally: |
386 | - timer.cancel() |
387 | - |
388 | - if app_proc.returncode != 0: |
389 | - exit_status = 1 |
390 | - print("ERROR TestCase failed. Failed test for vector {}. Return code: {}".format( |
391 | - vector, app_proc.returncode)) |
392 | - |
393 | + output = subprocess.run(call_params, timeout=args.timeout, universal_newlines=True) |
394 | + except subprocess.TimeoutExpired as e: |
395 | + print("Starting Test Suite : BBdev TimeOut Tests") |
396 | + print("== test: timeout") |
397 | + print("TestCase [ 0] : timeout passed") |
398 | + print(" + Tests Failed : 1") |
399 | + print("Unexpected Error") |
400 | + if output.returncode < 0: |
401 | + print("Starting Test Suite : BBdev Exception Tests") |
402 | + print("== test: exception") |
403 | + print("TestCase [ 0] : exception passed") |
404 | + print(" + Tests Failed : 1") |
405 | + print("Unexpected Error") |
406 | sys.exit(exit_status) |
407 | diff --git a/app/test-bbdev/test_bbdev.c b/app/test-bbdev/test_bbdev.c |
408 | index ac06d73..0092293 100644 |
409 | --- a/app/test-bbdev/test_bbdev.c |
410 | +++ b/app/test-bbdev/test_bbdev.c |
411 | @@ -366,7 +366,8 @@ test_bbdev_configure_stop_queue(void) |
412 | * - queue should be started if deferred_start == |
413 | */ |
414 | ts_params->qconf.deferred_start = 0; |
415 | - rte_bbdev_queue_configure(dev_id, queue_id, &ts_params->qconf); |
416 | + TEST_ASSERT_SUCCESS(rte_bbdev_queue_configure(dev_id, queue_id, &ts_params->qconf), |
417 | + "Failed test for rte_bbdev_queue_configure"); |
418 | rte_bbdev_start(dev_id); |
419 | |
420 | TEST_ASSERT_SUCCESS(return_value = rte_bbdev_queue_info_get(dev_id, |
421 | diff --git a/app/test-crypto-perf/main.c b/app/test-crypto-perf/main.c |
422 | index 6fdb92f..db0ebd0 100644 |
423 | --- a/app/test-crypto-perf/main.c |
424 | +++ b/app/test-crypto-perf/main.c |
425 | @@ -237,11 +237,10 @@ cperf_initialize_cryptodev(struct cperf_options *opts, uint8_t *enabled_cdevs) |
426 | #endif |
427 | |
428 | struct rte_cryptodev_info cdev_info; |
429 | - uint8_t socket_id = rte_cryptodev_socket_id(cdev_id); |
430 | - /* range check the socket_id - negative values become big |
431 | - * positive ones due to use of unsigned value |
432 | - */ |
433 | - if (socket_id >= RTE_MAX_NUMA_NODES) |
434 | + int socket_id = rte_cryptodev_socket_id(cdev_id); |
435 | + |
436 | + /* Use the first socket if SOCKET_ID_ANY is returned. */ |
437 | + if (socket_id == SOCKET_ID_ANY) |
438 | socket_id = 0; |
439 | |
440 | rte_cryptodev_info_get(cdev_id, &cdev_info); |
441 | @@ -701,7 +700,11 @@ main(int argc, char **argv) |
442 | |
443 | cdev_id = enabled_cdevs[cdev_index]; |
444 | |
445 | - uint8_t socket_id = rte_cryptodev_socket_id(cdev_id); |
446 | + int socket_id = rte_cryptodev_socket_id(cdev_id); |
447 | + |
448 | + /* Use the first socket if SOCKET_ID_ANY is returned. */ |
449 | + if (socket_id == SOCKET_ID_ANY) |
450 | + socket_id = 0; |
451 | |
452 | ctx[i] = cperf_testmap[opts.test].constructor( |
453 | session_pool_socket[socket_id].sess_mp, |
454 | diff --git a/app/test-pipeline/main.c b/app/test-pipeline/main.c |
455 | index 1e16794..8633933 100644 |
456 | --- a/app/test-pipeline/main.c |
457 | +++ b/app/test-pipeline/main.c |
458 | @@ -10,6 +10,7 @@ |
459 | #include <string.h> |
460 | #include <sys/queue.h> |
461 | #include <stdarg.h> |
462 | +#include <signal.h> |
463 | #include <errno.h> |
464 | #include <getopt.h> |
465 | #include <unistd.h> |
466 | @@ -41,6 +42,15 @@ |
467 | |
468 | #include "main.h" |
469 | |
470 | +bool force_quit; |
471 | + |
472 | +static void |
473 | +signal_handler(int signum) |
474 | +{ |
475 | + if (signum == SIGINT || signum == SIGTERM) |
476 | + force_quit = true; |
477 | +} |
478 | + |
479 | int |
480 | main(int argc, char **argv) |
481 | { |
482 | @@ -54,6 +64,10 @@ main(int argc, char **argv) |
483 | argc -= ret; |
484 | argv += ret; |
485 | |
486 | + force_quit = false; |
487 | + signal(SIGINT, signal_handler); |
488 | + signal(SIGTERM, signal_handler); |
489 | + |
490 | /* Parse application arguments (after the EAL ones) */ |
491 | ret = app_parse_args(argc, argv); |
492 | if (ret < 0) { |
493 | diff --git a/app/test-pipeline/main.h b/app/test-pipeline/main.h |
494 | index 59dcfdd..9df157d 100644 |
495 | --- a/app/test-pipeline/main.h |
496 | +++ b/app/test-pipeline/main.h |
497 | @@ -60,6 +60,8 @@ struct app_params { |
498 | |
499 | extern struct app_params app; |
500 | |
501 | +extern bool force_quit; |
502 | + |
503 | int app_parse_args(int argc, char **argv); |
504 | void app_print_usage(void); |
505 | void app_init(void); |
506 | diff --git a/app/test-pipeline/pipeline_acl.c b/app/test-pipeline/pipeline_acl.c |
507 | index 5857bc2..abde4bf 100644 |
508 | --- a/app/test-pipeline/pipeline_acl.c |
509 | +++ b/app/test-pipeline/pipeline_acl.c |
510 | @@ -236,14 +236,16 @@ app_main_loop_worker_pipeline_acl(void) { |
511 | |
512 | /* Run-time */ |
513 | #if APP_FLUSH == 0 |
514 | - for ( ; ; ) |
515 | + while (!force_quit) |
516 | rte_pipeline_run(p); |
517 | #else |
518 | - for (i = 0; ; i++) { |
519 | + i = 0; |
520 | + while (!force_quit) { |
521 | rte_pipeline_run(p); |
522 | |
523 | if ((i & APP_FLUSH) == 0) |
524 | rte_pipeline_flush(p); |
525 | + i++; |
526 | } |
527 | #endif |
528 | } |
529 | diff --git a/app/test-pipeline/pipeline_hash.c b/app/test-pipeline/pipeline_hash.c |
530 | index 2dd8928..cab9c20 100644 |
531 | --- a/app/test-pipeline/pipeline_hash.c |
532 | +++ b/app/test-pipeline/pipeline_hash.c |
533 | @@ -366,14 +366,16 @@ app_main_loop_worker_pipeline_hash(void) { |
534 | |
535 | /* Run-time */ |
536 | #if APP_FLUSH == 0 |
537 | - for ( ; ; ) |
538 | + while (!force_quit) |
539 | rte_pipeline_run(p); |
540 | #else |
541 | - for (i = 0; ; i++) { |
542 | + i = 0; |
543 | + while (!force_quit) { |
544 | rte_pipeline_run(p); |
545 | |
546 | if ((i & APP_FLUSH) == 0) |
547 | rte_pipeline_flush(p); |
548 | + i++; |
549 | } |
550 | #endif |
551 | } |
552 | @@ -411,59 +413,61 @@ app_main_loop_rx_metadata(void) { |
553 | RTE_LOG(INFO, USER1, "Core %u is doing RX (with meta-data)\n", |
554 | rte_lcore_id()); |
555 | |
556 | - for (i = 0; ; i = ((i + 1) & (app.n_ports - 1))) { |
557 | - uint16_t n_mbufs; |
558 | - |
559 | - n_mbufs = rte_eth_rx_burst( |
560 | - app.ports[i], |
561 | - 0, |
562 | - app.mbuf_rx.array, |
563 | - app.burst_size_rx_read); |
564 | - |
565 | - if (n_mbufs == 0) |
566 | - continue; |
567 | - |
568 | - for (j = 0; j < n_mbufs; j++) { |
569 | - struct rte_mbuf *m; |
570 | - uint8_t *m_data, *key; |
571 | - struct rte_ipv4_hdr *ip_hdr; |
572 | - struct rte_ipv6_hdr *ipv6_hdr; |
573 | - uint32_t ip_dst; |
574 | - uint8_t *ipv6_dst; |
575 | - uint32_t *signature, *k32; |
576 | - |
577 | - m = app.mbuf_rx.array[j]; |
578 | - m_data = rte_pktmbuf_mtod(m, uint8_t *); |
579 | - signature = RTE_MBUF_METADATA_UINT32_PTR(m, |
580 | - APP_METADATA_OFFSET(0)); |
581 | - key = RTE_MBUF_METADATA_UINT8_PTR(m, |
582 | - APP_METADATA_OFFSET(32)); |
583 | - |
584 | - if (RTE_ETH_IS_IPV4_HDR(m->packet_type)) { |
585 | - ip_hdr = (struct rte_ipv4_hdr *) |
586 | - &m_data[sizeof(struct rte_ether_hdr)]; |
587 | - ip_dst = ip_hdr->dst_addr; |
588 | - |
589 | - k32 = (uint32_t *) key; |
590 | - k32[0] = ip_dst & 0xFFFFFF00; |
591 | - } else if (RTE_ETH_IS_IPV6_HDR(m->packet_type)) { |
592 | - ipv6_hdr = (struct rte_ipv6_hdr *) |
593 | - &m_data[sizeof(struct rte_ether_hdr)]; |
594 | - ipv6_dst = ipv6_hdr->dst_addr; |
595 | - |
596 | - memcpy(key, ipv6_dst, 16); |
597 | - } else |
598 | + while (!force_quit) { |
599 | + for (i = 0; i < app.n_ports; i++) { |
600 | + uint16_t n_mbufs; |
601 | + |
602 | + n_mbufs = rte_eth_rx_burst( |
603 | + app.ports[i], |
604 | + 0, |
605 | + app.mbuf_rx.array, |
606 | + app.burst_size_rx_read); |
607 | + |
608 | + if (n_mbufs == 0) |
609 | continue; |
610 | |
611 | - *signature = test_hash(key, NULL, 0, 0); |
612 | + for (j = 0; j < n_mbufs; j++) { |
613 | + struct rte_mbuf *m; |
614 | + uint8_t *m_data, *key; |
615 | + struct rte_ipv4_hdr *ip_hdr; |
616 | + struct rte_ipv6_hdr *ipv6_hdr; |
617 | + uint32_t ip_dst; |
618 | + uint8_t *ipv6_dst; |
619 | + uint32_t *signature, *k32; |
620 | + |
621 | + m = app.mbuf_rx.array[j]; |
622 | + m_data = rte_pktmbuf_mtod(m, uint8_t *); |
623 | + signature = RTE_MBUF_METADATA_UINT32_PTR(m, |
624 | + APP_METADATA_OFFSET(0)); |
625 | + key = RTE_MBUF_METADATA_UINT8_PTR(m, |
626 | + APP_METADATA_OFFSET(32)); |
627 | + |
628 | + if (RTE_ETH_IS_IPV4_HDR(m->packet_type)) { |
629 | + ip_hdr = (struct rte_ipv4_hdr *) |
630 | + &m_data[sizeof(struct rte_ether_hdr)]; |
631 | + ip_dst = ip_hdr->dst_addr; |
632 | + |
633 | + k32 = (uint32_t *) key; |
634 | + k32[0] = ip_dst & 0xFFFFFF00; |
635 | + } else if (RTE_ETH_IS_IPV6_HDR(m->packet_type)) { |
636 | + ipv6_hdr = (struct rte_ipv6_hdr *) |
637 | + &m_data[sizeof(struct rte_ether_hdr)]; |
638 | + ipv6_dst = ipv6_hdr->dst_addr; |
639 | + |
640 | + memcpy(key, ipv6_dst, 16); |
641 | + } else |
642 | + continue; |
643 | + |
644 | + *signature = test_hash(key, NULL, 0, 0); |
645 | + } |
646 | + |
647 | + do { |
648 | + ret = rte_ring_sp_enqueue_bulk( |
649 | + app.rings_rx[i], |
650 | + (void **) app.mbuf_rx.array, |
651 | + n_mbufs, |
652 | + NULL); |
653 | + } while (ret == 0 && !force_quit); |
654 | } |
655 | - |
656 | - do { |
657 | - ret = rte_ring_sp_enqueue_bulk( |
658 | - app.rings_rx[i], |
659 | - (void **) app.mbuf_rx.array, |
660 | - n_mbufs, |
661 | - NULL); |
662 | - } while (ret == 0); |
663 | } |
664 | } |
665 | diff --git a/app/test-pipeline/pipeline_lpm.c b/app/test-pipeline/pipeline_lpm.c |
666 | index 8add5e7..e3d4b3f 100644 |
667 | --- a/app/test-pipeline/pipeline_lpm.c |
668 | +++ b/app/test-pipeline/pipeline_lpm.c |
669 | @@ -160,14 +160,16 @@ app_main_loop_worker_pipeline_lpm(void) { |
670 | |
671 | /* Run-time */ |
672 | #if APP_FLUSH == 0 |
673 | - for ( ; ; ) |
674 | + while (!force_quit) |
675 | rte_pipeline_run(p); |
676 | #else |
677 | - for (i = 0; ; i++) { |
678 | + i = 0; |
679 | + while (!force_quit) { |
680 | rte_pipeline_run(p); |
681 | |
682 | if ((i & APP_FLUSH) == 0) |
683 | rte_pipeline_flush(p); |
684 | + i++; |
685 | } |
686 | #endif |
687 | } |
688 | diff --git a/app/test-pipeline/pipeline_lpm_ipv6.c b/app/test-pipeline/pipeline_lpm_ipv6.c |
689 | index 26b3251..f9aca74 100644 |
690 | --- a/app/test-pipeline/pipeline_lpm_ipv6.c |
691 | +++ b/app/test-pipeline/pipeline_lpm_ipv6.c |
692 | @@ -158,14 +158,16 @@ app_main_loop_worker_pipeline_lpm_ipv6(void) { |
693 | |
694 | /* Run-time */ |
695 | #if APP_FLUSH == 0 |
696 | - for ( ; ; ) |
697 | + while (!force_quit) |
698 | rte_pipeline_run(p); |
699 | #else |
700 | - for (i = 0; ; i++) { |
701 | + i = 0; |
702 | + while (!force_quit) { |
703 | rte_pipeline_run(p); |
704 | |
705 | if ((i & APP_FLUSH) == 0) |
706 | rte_pipeline_flush(p); |
707 | + i++; |
708 | } |
709 | #endif |
710 | } |
711 | diff --git a/app/test-pipeline/pipeline_stub.c b/app/test-pipeline/pipeline_stub.c |
712 | index b6750d5..48a638a 100644 |
713 | --- a/app/test-pipeline/pipeline_stub.c |
714 | +++ b/app/test-pipeline/pipeline_stub.c |
715 | @@ -122,14 +122,16 @@ app_main_loop_worker_pipeline_stub(void) { |
716 | |
717 | /* Run-time */ |
718 | #if APP_FLUSH == 0 |
719 | - for ( ; ; ) |
720 | + while (!force_quit) |
721 | rte_pipeline_run(p); |
722 | #else |
723 | - for (i = 0; ; i++) { |
724 | + i = 0; |
725 | + while (!force_quit) { |
726 | rte_pipeline_run(p); |
727 | |
728 | if ((i & APP_FLUSH) == 0) |
729 | rte_pipeline_flush(p); |
730 | + i++; |
731 | } |
732 | #endif |
733 | } |
734 | diff --git a/app/test-pipeline/runtime.c b/app/test-pipeline/runtime.c |
735 | index d939a85..752f783 100644 |
736 | --- a/app/test-pipeline/runtime.c |
737 | +++ b/app/test-pipeline/runtime.c |
738 | @@ -48,24 +48,26 @@ app_main_loop_rx(void) { |
739 | |
740 | RTE_LOG(INFO, USER1, "Core %u is doing RX\n", rte_lcore_id()); |
741 | |
742 | - for (i = 0; ; i = ((i + 1) & (app.n_ports - 1))) { |
743 | - uint16_t n_mbufs; |
744 | - |
745 | - n_mbufs = rte_eth_rx_burst( |
746 | - app.ports[i], |
747 | - 0, |
748 | - app.mbuf_rx.array, |
749 | - app.burst_size_rx_read); |
750 | - |
751 | - if (n_mbufs == 0) |
752 | - continue; |
753 | - |
754 | - do { |
755 | - ret = rte_ring_sp_enqueue_bulk( |
756 | - app.rings_rx[i], |
757 | - (void **) app.mbuf_rx.array, |
758 | - n_mbufs, NULL); |
759 | - } while (ret == 0); |
760 | + while (!force_quit) { |
761 | + for (i = 0; i < app.n_ports; i++) { |
762 | + uint16_t n_mbufs; |
763 | + |
764 | + n_mbufs = rte_eth_rx_burst( |
765 | + app.ports[i], |
766 | + 0, |
767 | + app.mbuf_rx.array, |
768 | + app.burst_size_rx_read); |
769 | + |
770 | + if (n_mbufs == 0) |
771 | + continue; |
772 | + |
773 | + do { |
774 | + ret = rte_ring_sp_enqueue_bulk( |
775 | + app.rings_rx[i], |
776 | + (void **) app.mbuf_rx.array, |
777 | + n_mbufs, NULL); |
778 | + } while (ret == 0 && !force_quit); |
779 | + } |
780 | } |
781 | } |
782 | |
783 | @@ -82,25 +84,27 @@ app_main_loop_worker(void) { |
784 | if (worker_mbuf == NULL) |
785 | rte_panic("Worker thread: cannot allocate buffer space\n"); |
786 | |
787 | - for (i = 0; ; i = ((i + 1) & (app.n_ports - 1))) { |
788 | - int ret; |
789 | - |
790 | - ret = rte_ring_sc_dequeue_bulk( |
791 | - app.rings_rx[i], |
792 | - (void **) worker_mbuf->array, |
793 | - app.burst_size_worker_read, |
794 | - NULL); |
795 | + while (!force_quit) { |
796 | + for (i = 0; i < app.n_ports; i++) { |
797 | + int ret; |
798 | |
799 | - if (ret == 0) |
800 | - continue; |
801 | - |
802 | - do { |
803 | - ret = rte_ring_sp_enqueue_bulk( |
804 | - app.rings_tx[i ^ 1], |
805 | + ret = rte_ring_sc_dequeue_bulk( |
806 | + app.rings_rx[i], |
807 | (void **) worker_mbuf->array, |
808 | - app.burst_size_worker_write, |
809 | + app.burst_size_worker_read, |
810 | NULL); |
811 | - } while (ret == 0); |
812 | + |
813 | + if (ret == 0) |
814 | + continue; |
815 | + |
816 | + do { |
817 | + ret = rte_ring_sp_enqueue_bulk( |
818 | + app.rings_tx[i ^ 1], |
819 | + (void **) worker_mbuf->array, |
820 | + app.burst_size_worker_write, |
821 | + NULL); |
822 | + } while (ret == 0 && !force_quit); |
823 | + } |
824 | } |
825 | } |
826 | |
827 | @@ -110,45 +114,47 @@ app_main_loop_tx(void) { |
828 | |
829 | RTE_LOG(INFO, USER1, "Core %u is doing TX\n", rte_lcore_id()); |
830 | |
831 | - for (i = 0; ; i = ((i + 1) & (app.n_ports - 1))) { |
832 | - uint16_t n_mbufs, n_pkts; |
833 | - int ret; |
834 | + while (!force_quit) { |
835 | + for (i = 0; i < app.n_ports; i++) { |
836 | + uint16_t n_mbufs, n_pkts; |
837 | + int ret; |
838 | |
839 | - n_mbufs = app.mbuf_tx[i].n_mbufs; |
840 | + n_mbufs = app.mbuf_tx[i].n_mbufs; |
841 | |
842 | - ret = rte_ring_sc_dequeue_bulk( |
843 | - app.rings_tx[i], |
844 | - (void **) &app.mbuf_tx[i].array[n_mbufs], |
845 | - app.burst_size_tx_read, |
846 | - NULL); |
847 | + ret = rte_ring_sc_dequeue_bulk( |
848 | + app.rings_tx[i], |
849 | + (void **) &app.mbuf_tx[i].array[n_mbufs], |
850 | + app.burst_size_tx_read, |
851 | + NULL); |
852 | |
853 | - if (ret == 0) |
854 | - continue; |
855 | + if (ret == 0) |
856 | + continue; |
857 | |
858 | - n_mbufs += app.burst_size_tx_read; |
859 | + n_mbufs += app.burst_size_tx_read; |
860 | |
861 | - if (n_mbufs < app.burst_size_tx_write) { |
862 | - app.mbuf_tx[i].n_mbufs = n_mbufs; |
863 | - continue; |
864 | - } |
865 | + if (n_mbufs < app.burst_size_tx_write) { |
866 | + app.mbuf_tx[i].n_mbufs = n_mbufs; |
867 | + continue; |
868 | + } |
869 | |
870 | - n_pkts = rte_eth_tx_burst( |
871 | - app.ports[i], |
872 | - 0, |
873 | - app.mbuf_tx[i].array, |
874 | - n_mbufs); |
875 | + n_pkts = rte_eth_tx_burst( |
876 | + app.ports[i], |
877 | + 0, |
878 | + app.mbuf_tx[i].array, |
879 | + n_mbufs); |
880 | |
881 | - if (n_pkts < n_mbufs) { |
882 | - uint16_t k; |
883 | + if (n_pkts < n_mbufs) { |
884 | + uint16_t k; |
885 | |
886 | - for (k = n_pkts; k < n_mbufs; k++) { |
887 | - struct rte_mbuf *pkt_to_free; |
888 | + for (k = n_pkts; k < n_mbufs; k++) { |
889 | + struct rte_mbuf *pkt_to_free; |
890 | |
891 | - pkt_to_free = app.mbuf_tx[i].array[k]; |
892 | - rte_pktmbuf_free(pkt_to_free); |
893 | + pkt_to_free = app.mbuf_tx[i].array[k]; |
894 | + rte_pktmbuf_free(pkt_to_free); |
895 | + } |
896 | } |
897 | - } |
898 | |
899 | - app.mbuf_tx[i].n_mbufs = 0; |
900 | + app.mbuf_tx[i].n_mbufs = 0; |
901 | + } |
902 | } |
903 | } |
904 | diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c |
905 | index 2e8fec3..43857c8 100644 |
906 | --- a/app/test-pmd/cmdline.c |
907 | +++ b/app/test-pmd/cmdline.c |
908 | @@ -504,6 +504,12 @@ static void cmd_help_long_parsed(void *parsed_result, |
909 | "mac_addr add port (port_id) vf (vf_id) (mac_address)\n" |
910 | " Add a MAC address for a VF on the port.\n\n" |
911 | |
912 | + "mcast_addr add (port_id) (mcast_addr)\n" |
913 | + " Add a multicast MAC addresses on port_id.\n\n" |
914 | + |
915 | + "mcast_addr remove (port_id) (mcast_addr)\n" |
916 | + " Remove a multicast MAC address from port_id.\n\n" |
917 | + |
918 | "set vf mac addr (port_id) (vf_id) (XX:XX:XX:XX:XX:XX)\n" |
919 | " Set the MAC address for a VF from the PF.\n\n" |
920 | |
921 | @@ -4995,19 +5001,6 @@ cmd_tso_set_parsed(void *parsed_result, |
922 | ports[res->port_id].tso_segsz); |
923 | } |
924 | cmd_config_queue_tx_offloads(&ports[res->port_id]); |
925 | - |
926 | - /* display warnings if configuration is not supported by the NIC */ |
927 | - ret = eth_dev_info_get_print_err(res->port_id, &dev_info); |
928 | - if (ret != 0) |
929 | - return; |
930 | - |
931 | - if ((ports[res->port_id].tso_segsz != 0) && |
932 | - (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_TCP_TSO) == 0) { |
933 | - fprintf(stderr, |
934 | - "Warning: TSO enabled but not supported by port %d\n", |
935 | - res->port_id); |
936 | - } |
937 | - |
938 | cmd_reconfig_device_queue(res->port_id, 1, 1); |
939 | } |
940 | |
941 | @@ -5065,39 +5058,27 @@ struct cmd_tunnel_tso_set_result { |
942 | portid_t port_id; |
943 | }; |
944 | |
945 | -static struct rte_eth_dev_info |
946 | -check_tunnel_tso_nic_support(portid_t port_id) |
947 | +static void |
948 | +check_tunnel_tso_nic_support(portid_t port_id, uint64_t tx_offload_capa) |
949 | { |
950 | - struct rte_eth_dev_info dev_info; |
951 | - |
952 | - if (eth_dev_info_get_print_err(port_id, &dev_info) != 0) |
953 | - return dev_info; |
954 | - |
955 | - if (!(dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO)) |
956 | - fprintf(stderr, |
957 | - "Warning: VXLAN TUNNEL TSO not supported therefore not enabled for port %d\n", |
958 | + if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO)) |
959 | + printf("Warning: VXLAN TUNNEL TSO not supported therefore not enabled for port %d\n", |
960 | port_id); |
961 | - if (!(dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_GRE_TNL_TSO)) |
962 | - fprintf(stderr, |
963 | - "Warning: GRE TUNNEL TSO not supported therefore not enabled for port %d\n", |
964 | + if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_GRE_TNL_TSO)) |
965 | + printf("Warning: GRE TUNNEL TSO not supported therefore not enabled for port %d\n", |
966 | port_id); |
967 | - if (!(dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO)) |
968 | - fprintf(stderr, |
969 | - "Warning: IPIP TUNNEL TSO not supported therefore not enabled for port %d\n", |
970 | + if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO)) |
971 | + printf("Warning: IPIP TUNNEL TSO not supported therefore not enabled for port %d\n", |
972 | port_id); |
973 | - if (!(dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO)) |
974 | - fprintf(stderr, |
975 | - "Warning: GENEVE TUNNEL TSO not supported therefore not enabled for port %d\n", |
976 | + if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO)) |
977 | + printf("Warning: GENEVE TUNNEL TSO not supported therefore not enabled for port %d\n", |
978 | port_id); |
979 | - if (!(dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_IP_TNL_TSO)) |
980 | - fprintf(stderr, |
981 | - "Warning: IP TUNNEL TSO not supported therefore not enabled for port %d\n", |
982 | + if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_IP_TNL_TSO)) |
983 | + printf("Warning: IP TUNNEL TSO not supported therefore not enabled for port %d\n", |
984 | port_id); |
985 | - if (!(dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_UDP_TNL_TSO)) |
986 | - fprintf(stderr, |
987 | - "Warning: UDP TUNNEL TSO not supported therefore not enabled for port %d\n", |
988 | + if (!(tx_offload_capa & RTE_ETH_TX_OFFLOAD_UDP_TNL_TSO)) |
989 | + printf("Warning: UDP TUNNEL TSO not supported therefore not enabled for port %d\n", |
990 | port_id); |
991 | - return dev_info; |
992 | } |
993 | |
994 | static void |
995 | @@ -5107,6 +5088,13 @@ cmd_tunnel_tso_set_parsed(void *parsed_result, |
996 | { |
997 | struct cmd_tunnel_tso_set_result *res = parsed_result; |
998 | struct rte_eth_dev_info dev_info; |
999 | + uint64_t all_tunnel_tso = RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO | |
1000 | + RTE_ETH_TX_OFFLOAD_GRE_TNL_TSO | |
1001 | + RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO | |
1002 | + RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO | |
1003 | + RTE_ETH_TX_OFFLOAD_IP_TNL_TSO | |
1004 | + RTE_ETH_TX_OFFLOAD_UDP_TNL_TSO; |
1005 | + int ret; |
1006 | |
1007 | if (port_id_is_invalid(res->port_id, ENABLED_WARN)) |
1008 | return; |
1009 | @@ -5118,28 +5106,19 @@ cmd_tunnel_tso_set_parsed(void *parsed_result, |
1010 | if (!strcmp(res->mode, "set")) |
1011 | ports[res->port_id].tunnel_tso_segsz = res->tso_segsz; |
1012 | |
1013 | - dev_info = check_tunnel_tso_nic_support(res->port_id); |
1014 | if (ports[res->port_id].tunnel_tso_segsz == 0) { |
1015 | - ports[res->port_id].dev_conf.txmode.offloads &= |
1016 | - ~(RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO | |
1017 | - RTE_ETH_TX_OFFLOAD_GRE_TNL_TSO | |
1018 | - RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO | |
1019 | - RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO | |
1020 | - RTE_ETH_TX_OFFLOAD_IP_TNL_TSO | |
1021 | - RTE_ETH_TX_OFFLOAD_UDP_TNL_TSO); |
1022 | + ports[res->port_id].dev_conf.txmode.offloads &= ~all_tunnel_tso; |
1023 | printf("TSO for tunneled packets is disabled\n"); |
1024 | } else { |
1025 | - uint64_t tso_offloads = (RTE_ETH_TX_OFFLOAD_VXLAN_TNL_TSO | |
1026 | - RTE_ETH_TX_OFFLOAD_GRE_TNL_TSO | |
1027 | - RTE_ETH_TX_OFFLOAD_IPIP_TNL_TSO | |
1028 | - RTE_ETH_TX_OFFLOAD_GENEVE_TNL_TSO | |
1029 | - RTE_ETH_TX_OFFLOAD_IP_TNL_TSO | |
1030 | - RTE_ETH_TX_OFFLOAD_UDP_TNL_TSO); |
1031 | + ret = eth_dev_info_get_print_err(res->port_id, &dev_info); |
1032 | + if (ret != 0) |
1033 | + return; |
1034 | |
1035 | - ports[res->port_id].dev_conf.txmode.offloads |= |
1036 | - (tso_offloads & dev_info.tx_offload_capa); |
1037 | - printf("TSO segment size for tunneled packets is %d\n", |
1038 | - ports[res->port_id].tunnel_tso_segsz); |
1039 | + if ((all_tunnel_tso & dev_info.tx_offload_capa) == 0) { |
1040 | + fprintf(stderr, "Error: port=%u don't support tunnel TSO offloads.\n", |
1041 | + res->port_id); |
1042 | + return; |
1043 | + } |
1044 | |
1045 | /* Below conditions are needed to make it work: |
1046 | * (1) tunnel TSO is supported by the NIC; |
1047 | @@ -5152,14 +5131,23 @@ cmd_tunnel_tso_set_parsed(void *parsed_result, |
1048 | * is not necessary for IPv6 tunneled pkts because there's no |
1049 | * checksum in IP header anymore. |
1050 | */ |
1051 | - |
1052 | - if (!ports[res->port_id].parse_tunnel) |
1053 | + if (!ports[res->port_id].parse_tunnel) { |
1054 | fprintf(stderr, |
1055 | - "Warning: csum parse_tunnel must be set so that tunneled packets are recognized\n"); |
1056 | + "Error: csum parse_tunnel must be set so that tunneled packets are recognized\n"); |
1057 | + return; |
1058 | + } |
1059 | if (!(ports[res->port_id].dev_conf.txmode.offloads & |
1060 | - RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM)) |
1061 | + RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM)) { |
1062 | fprintf(stderr, |
1063 | - "Warning: csum set outer-ip must be set to hw if outer L3 is IPv4; not necessary for IPv6\n"); |
1064 | + "Error: csum set outer-ip must be set to hw if outer L3 is IPv4; not necessary for IPv6\n"); |
1065 | + return; |
1066 | + } |
1067 | + |
1068 | + check_tunnel_tso_nic_support(res->port_id, dev_info.tx_offload_capa); |
1069 | + ports[res->port_id].dev_conf.txmode.offloads |= |
1070 | + (all_tunnel_tso & dev_info.tx_offload_capa); |
1071 | + printf("TSO segment size for tunneled packets is %d\n", |
1072 | + ports[res->port_id].tunnel_tso_segsz); |
1073 | } |
1074 | |
1075 | cmd_config_queue_tx_offloads(&ports[res->port_id]); |
1076 | diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c |
1077 | index 80d4d41..5e494c4 100644 |
1078 | --- a/app/test-pmd/csumonly.c |
1079 | +++ b/app/test-pmd/csumonly.c |
1080 | @@ -250,7 +250,7 @@ parse_gtp(struct rte_udp_hdr *udp_hdr, |
1081 | info->l4_proto = 0; |
1082 | } |
1083 | |
1084 | - info->l2_len += RTE_ETHER_GTP_HLEN; |
1085 | + info->l2_len += gtp_len + sizeof(*udp_hdr); |
1086 | } |
1087 | |
1088 | /* Parse a vxlan header */ |
1089 | diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c |
1090 | index 9f4a0e0..5f34641 100644 |
1091 | --- a/app/test-pmd/testpmd.c |
1092 | +++ b/app/test-pmd/testpmd.c |
1093 | @@ -2376,6 +2376,13 @@ update_rx_queue_state(uint16_t port_id, uint16_t queue_id) |
1094 | rx_qinfo.queue_state; |
1095 | } else if (rc == -ENOTSUP) { |
1096 | /* |
1097 | + * Do not change the rxq state for primary process |
1098 | + * to ensure that the PMDs do not implement |
1099 | + * rte_eth_rx_queue_info_get can forward as before. |
1100 | + */ |
1101 | + if (rte_eal_process_type() == RTE_PROC_PRIMARY) |
1102 | + return; |
1103 | + /* |
1104 | * Set the rxq state to RTE_ETH_QUEUE_STATE_STARTED |
1105 | * to ensure that the PMDs do not implement |
1106 | * rte_eth_rx_queue_info_get can forward. |
1107 | @@ -2401,6 +2408,13 @@ update_tx_queue_state(uint16_t port_id, uint16_t queue_id) |
1108 | tx_qinfo.queue_state; |
1109 | } else if (rc == -ENOTSUP) { |
1110 | /* |
1111 | + * Do not change the txq state for primary process |
1112 | + * to ensure that the PMDs do not implement |
1113 | + * rte_eth_tx_queue_info_get can forward as before. |
1114 | + */ |
1115 | + if (rte_eal_process_type() == RTE_PROC_PRIMARY) |
1116 | + return; |
1117 | + /* |
1118 | * Set the txq state to RTE_ETH_QUEUE_STATE_STARTED |
1119 | * to ensure that the PMDs do not implement |
1120 | * rte_eth_tx_queue_info_get can forward. |
1121 | @@ -2414,12 +2428,15 @@ update_tx_queue_state(uint16_t port_id, uint16_t queue_id) |
1122 | } |
1123 | |
1124 | static void |
1125 | -update_queue_state(void) |
1126 | +update_queue_state(portid_t pid) |
1127 | { |
1128 | portid_t pi; |
1129 | queueid_t qi; |
1130 | |
1131 | RTE_ETH_FOREACH_DEV(pi) { |
1132 | + if (pid != pi && pid != (portid_t)RTE_PORT_ALL) |
1133 | + continue; |
1134 | + |
1135 | for (qi = 0; qi < nb_rxq; qi++) |
1136 | update_rx_queue_state(pi, qi); |
1137 | for (qi = 0; qi < nb_txq; qi++) |
1138 | @@ -2467,8 +2484,7 @@ start_packet_forwarding(int with_tx_first) |
1139 | return; |
1140 | |
1141 | if (stream_init != NULL) { |
1142 | - if (rte_eal_process_type() == RTE_PROC_SECONDARY) |
1143 | - update_queue_state(); |
1144 | + update_queue_state(RTE_PORT_ALL); |
1145 | for (i = 0; i < cur_fwd_config.nb_fwd_streams; i++) |
1146 | stream_init(fwd_streams[i]); |
1147 | } |
1148 | @@ -3126,8 +3142,7 @@ start_port(portid_t pid) |
1149 | pl[cfg_pi++] = pi; |
1150 | } |
1151 | |
1152 | - if (rte_eal_process_type() == RTE_PROC_SECONDARY) |
1153 | - update_queue_state(); |
1154 | + update_queue_state(pi); |
1155 | |
1156 | if (at_least_one_port_successfully_started && !no_link_check) |
1157 | check_all_ports_link_status(RTE_PORT_ALL); |
1158 | diff --git a/app/test/meson.build b/app/test/meson.build |
1159 | index c13776c..845ce96 100644 |
1160 | --- a/app/test/meson.build |
1161 | +++ b/app/test/meson.build |
1162 | @@ -227,6 +227,7 @@ fast_tests = [ |
1163 | ['fib6_autotest', true], |
1164 | ['func_reentrancy_autotest', false], |
1165 | ['flow_classify_autotest', false], |
1166 | + ['graph_autotest', true], |
1167 | ['hash_autotest', true], |
1168 | ['interrupt_autotest', true], |
1169 | ['ipfrag_autotest', false], |
1170 | @@ -243,6 +244,7 @@ fast_tests = [ |
1171 | ['memzone_autotest', false], |
1172 | ['meter_autotest', true], |
1173 | ['multiprocess_autotest', false], |
1174 | + ['node_list_dump', true], |
1175 | ['per_lcore_autotest', true], |
1176 | ['pflock_autotest', true], |
1177 | ['prefetch_autotest', true], |
1178 | @@ -329,6 +331,7 @@ perf_test_names = [ |
1179 | 'trace_perf_autotest', |
1180 | 'ipsec_perf_autotest', |
1181 | 'thash_perf_autotest', |
1182 | + 'graph_perf_autotest', |
1183 | ] |
1184 | |
1185 | driver_test_names = [ |
1186 | diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c |
1187 | index f3509bc..0bd4517 100644 |
1188 | --- a/app/test/test_cryptodev.c |
1189 | +++ b/app/test/test_cryptodev.c |
1190 | @@ -6491,6 +6491,9 @@ test_zuc_auth_cipher_sgl(const struct wireless_test_data *tdata, |
1191 | tdata->digest.len) < 0) |
1192 | return TEST_SKIPPED; |
1193 | |
1194 | + if (gbl_action_type == RTE_SECURITY_ACTION_TYPE_CPU_CRYPTO) |
1195 | + return TEST_SKIPPED; |
1196 | + |
1197 | rte_cryptodev_info_get(ts_params->valid_devs[0], &dev_info); |
1198 | |
1199 | uint64_t feat_flags = dev_info.feature_flags; |
1200 | @@ -6879,6 +6882,7 @@ snow3g_hash_test_vector_setup(const struct snow3g_test_data *pattern, |
1201 | static int |
1202 | test_snow3g_decryption_with_digest_test_case_1(void) |
1203 | { |
1204 | + int ret; |
1205 | struct snow3g_hash_test_data snow3g_hash_data; |
1206 | struct rte_cryptodev_info dev_info; |
1207 | struct crypto_testsuite_params *ts_params = &testsuite_params; |
1208 | @@ -6897,8 +6901,9 @@ test_snow3g_decryption_with_digest_test_case_1(void) |
1209 | */ |
1210 | snow3g_hash_test_vector_setup(&snow3g_test_case_7, &snow3g_hash_data); |
1211 | |
1212 | - if (test_snow3g_decryption(&snow3g_test_case_7)) |
1213 | - return TEST_FAILED; |
1214 | + ret = test_snow3g_decryption(&snow3g_test_case_7); |
1215 | + if (ret != 0) |
1216 | + return ret; |
1217 | |
1218 | return test_snow3g_authentication_verify(&snow3g_hash_data); |
1219 | } |
1220 | @@ -7569,6 +7574,9 @@ test_mixed_auth_cipher_sgl(const struct mixed_cipher_auth_test_data *tdata, |
1221 | if (global_api_test_type == CRYPTODEV_RAW_API_TEST) |
1222 | return TEST_SKIPPED; |
1223 | |
1224 | + if (gbl_action_type == RTE_SECURITY_ACTION_TYPE_CPU_CRYPTO) |
1225 | + return TEST_SKIPPED; |
1226 | + |
1227 | rte_cryptodev_info_get(ts_params->valid_devs[0], &dev_info); |
1228 | |
1229 | uint64_t feat_flags = dev_info.feature_flags; |
1230 | @@ -8254,7 +8262,7 @@ test_authenticated_encryption(const struct aead_test_data *tdata) |
1231 | tdata->key.data, tdata->key.len, |
1232 | tdata->aad.len, tdata->auth_tag.len, |
1233 | tdata->iv.len); |
1234 | - if (retval < 0) |
1235 | + if (retval != TEST_SUCCESS) |
1236 | return retval; |
1237 | |
1238 | if (tdata->aad.len > MBUF_SIZE) { |
1239 | @@ -10902,7 +10910,7 @@ test_authenticated_decryption_sessionless( |
1240 | key, tdata->key.len, |
1241 | tdata->aad.len, tdata->auth_tag.len, |
1242 | tdata->iv.len); |
1243 | - if (retval < 0) |
1244 | + if (retval != TEST_SUCCESS) |
1245 | return retval; |
1246 | |
1247 | ut_params->op->sym->m_src = ut_params->ibuf; |
1248 | diff --git a/app/test/test_cryptodev_asym.c b/app/test/test_cryptodev_asym.c |
1249 | index 7210497..952b927 100644 |
1250 | --- a/app/test/test_cryptodev_asym.c |
1251 | +++ b/app/test/test_cryptodev_asym.c |
1252 | @@ -1717,7 +1717,7 @@ error_exit: |
1253 | } |
1254 | |
1255 | static int |
1256 | -test_dh_keygenration(void) |
1257 | +test_dh_key_generation(void) |
1258 | { |
1259 | int status; |
1260 | |
1261 | @@ -2291,7 +2291,7 @@ static struct unit_test_suite cryptodev_openssl_asym_testsuite = { |
1262 | TEST_CASE_ST(ut_setup_asym, ut_teardown_asym, test_capability), |
1263 | TEST_CASE_ST(ut_setup_asym, ut_teardown_asym, test_dsa), |
1264 | TEST_CASE_ST(ut_setup_asym, ut_teardown_asym, |
1265 | - test_dh_keygenration), |
1266 | + test_dh_key_generation), |
1267 | TEST_CASE_ST(ut_setup_asym, ut_teardown_asym, test_rsa_enc_dec), |
1268 | TEST_CASE_ST(ut_setup_asym, ut_teardown_asym, |
1269 | test_rsa_sign_verify), |
1270 | diff --git a/app/test/test_cryptodev_mixed_test_vectors.h b/app/test/test_cryptodev_mixed_test_vectors.h |
1271 | index f50dcb0..db58dbd 100644 |
1272 | --- a/app/test/test_cryptodev_mixed_test_vectors.h |
1273 | +++ b/app/test/test_cryptodev_mixed_test_vectors.h |
1274 | @@ -284,8 +284,10 @@ struct mixed_cipher_auth_test_data auth_aes_cmac_cipher_snow_test_case_1 = { |
1275 | }, |
1276 | .cipher_iv = { |
1277 | .data = { |
1278 | + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
1279 | + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 |
1280 | }, |
1281 | - .len = 0, |
1282 | + .len = 16, |
1283 | }, |
1284 | .cipher = { |
1285 | .len_bits = 516 << 3, |
1286 | @@ -723,8 +725,10 @@ struct mixed_cipher_auth_test_data auth_aes_cmac_cipher_zuc_test_case_1 = { |
1287 | }, |
1288 | .cipher_iv = { |
1289 | .data = { |
1290 | + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
1291 | + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 |
1292 | }, |
1293 | - .len = 0, |
1294 | + .len = 16, |
1295 | }, |
1296 | .cipher = { |
1297 | .len_bits = 516 << 3, |
1298 | diff --git a/app/test/test_cryptodev_security_pdcp_sdap_test_vectors.h b/app/test/test_cryptodev_security_pdcp_sdap_test_vectors.h |
1299 | index f43f693..b0fa0ec 100644 |
1300 | --- a/app/test/test_cryptodev_security_pdcp_sdap_test_vectors.h |
1301 | +++ b/app/test/test_cryptodev_security_pdcp_sdap_test_vectors.h |
1302 | @@ -769,7 +769,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1303 | 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82, |
1304 | 0xdc, 0xb6, 0xc2, 0x36 }, |
1305 | .data_in = |
1306 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1307 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1308 | 0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, |
1309 | 0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb, |
1310 | 0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, |
1311 | @@ -781,7 +781,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1312 | 0x7a, 0xf9, 0xdd }, |
1313 | .in_len = 66, |
1314 | .data_out = |
1315 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0x69, 0xf2, 0x5d, 0xd7, |
1316 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0x69, 0xf2, 0x5d, 0xd7, |
1317 | 0xf5, 0xc1, 0xf7, 0x1e, 0x47, 0x5d, 0xce, |
1318 | 0xbe, 0x48, 0xb5, 0x0b, 0x6a, 0x73, 0x9a, |
1319 | 0x5a, 0xa3, 0x06, 0x47, 0x40, 0x96, 0xcf, |
1320 | @@ -790,7 +790,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1321 | 0xc9, 0x7f, 0x11, 0x79, 0x24, 0x44, 0xe8, |
1322 | 0x39, 0x11, 0x03, 0x0a, 0x9d, 0x4f, 0xe2, |
1323 | 0x95, 0x9f, 0x47, 0x73, 0x37, 0x83, 0x8c, |
1324 | - 0x23, 0xfa, 0x16, 0x39, 0xf7, 0x15, 0x11 }, |
1325 | + 0x23, 0xfa, 0x16, 0xb2, 0xb0, 0x17, 0x4a }, |
1326 | .sn_size = 12, |
1327 | .hfn = 0x1, |
1328 | .hfn_threshold = 0xfa558, |
1329 | @@ -817,7 +817,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1330 | 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82, |
1331 | 0xdc, 0xb6, 0xc2, 0x36 }, |
1332 | .data_in = |
1333 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1334 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1335 | 0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, |
1336 | 0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb, |
1337 | 0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, |
1338 | @@ -829,7 +829,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1339 | 0x7a, 0xf9, 0xdd }, |
1340 | .in_len = 66, |
1341 | .data_out = |
1342 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0x22, 0x2a, 0x8f, 0x86, |
1343 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0x22, 0x2a, 0x8f, 0x86, |
1344 | 0x25, 0x92, 0xcd, 0xa9, 0xa1, 0xa0, 0xf5, |
1345 | 0x86, 0x0d, 0xe8, 0xe4, 0xef, 0xe0, 0x78, |
1346 | 0x45, 0x7c, 0x0c, 0x41, 0x5c, 0x8f, 0x07, |
1347 | @@ -838,7 +838,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1348 | 0x35, 0xff, 0x7a, 0x42, 0xac, 0x94, 0x21, |
1349 | 0x60, 0x1c, 0x13, 0xcc, 0x7e, 0x6b, 0x2f, |
1350 | 0x6f, 0x91, 0x89, 0xc6, 0xd4, 0xe6, 0x17, |
1351 | - 0xae, 0xde, 0xfb, 0x90, 0x62, 0x59, 0xcb }, |
1352 | + 0xae, 0xde, 0xfb, 0x19, 0xDa, 0x9a, 0xc2 }, |
1353 | .sn_size = 12, |
1354 | .hfn = 0x1, |
1355 | .hfn_threshold = 0xfa558, |
1356 | @@ -865,7 +865,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1357 | 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82, |
1358 | 0xdc, 0xb6, 0xc2, 0x36 }, |
1359 | .data_in = |
1360 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1361 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1362 | 0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, |
1363 | 0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb, |
1364 | 0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, |
1365 | @@ -877,7 +877,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1366 | 0x7a, 0xf9, 0xdd }, |
1367 | .in_len = 66, |
1368 | .data_out = |
1369 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0x69, 0xf2, 0x5d, 0xd7, |
1370 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0x69, 0xf2, 0x5d, 0xd7, |
1371 | 0xf5, 0xc1, 0xf7, 0x1e, 0x47, 0x5d, 0xce, |
1372 | 0xbe, 0x48, 0xb5, 0x0b, 0x6a, 0x73, 0x9a, |
1373 | 0x5a, 0xa3, 0x06, 0x47, 0x40, 0x96, 0xcf, |
1374 | @@ -886,7 +886,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1375 | 0xc9, 0x7f, 0x11, 0x79, 0x24, 0x44, 0xe8, |
1376 | 0x39, 0x11, 0x03, 0x0a, 0x9d, 0x4f, 0xe2, |
1377 | 0x95, 0x9f, 0x47, 0x73, 0x37, 0x83, 0x8c, |
1378 | - 0x23, 0xfa, 0x16, 0x72, 0x3e, 0x14, 0xa9 }, |
1379 | + 0x23, 0xfa, 0x16, 0x6c, 0xcb, 0x92, 0xdf }, |
1380 | .sn_size = 12, |
1381 | .hfn = 0x1, |
1382 | .hfn_threshold = 0xfa558, |
1383 | @@ -913,7 +913,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1384 | 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82, |
1385 | 0xdc, 0xb6, 0xc2, 0x36 }, |
1386 | .data_in = |
1387 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1388 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1389 | 0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, |
1390 | 0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb, |
1391 | 0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, |
1392 | @@ -925,7 +925,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1393 | 0x7a, 0xf9, 0xdd }, |
1394 | .in_len = 66, |
1395 | .data_out = |
1396 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0x22, 0x2a, 0x8f, 0x86, |
1397 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0x22, 0x2a, 0x8f, 0x86, |
1398 | 0x25, 0x92, 0xcd, 0xa9, 0xa1, 0xa0, 0xf5, |
1399 | 0x86, 0x0d, 0xe8, 0xe4, 0xef, 0xe0, 0x78, |
1400 | 0x45, 0x7c, 0x0c, 0x41, 0x5c, 0x8f, 0x07, |
1401 | @@ -934,7 +934,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1402 | 0x35, 0xff, 0x7a, 0x42, 0xac, 0x94, 0x21, |
1403 | 0x60, 0x1c, 0x13, 0xcc, 0x7e, 0x6b, 0x2f, |
1404 | 0x6f, 0x91, 0x89, 0xc6, 0xd4, 0xe6, 0x17, |
1405 | - 0xae, 0xde, 0xfb, 0x3f, 0x47, 0xaa, 0x9b }, |
1406 | + 0xae, 0xde, 0xfb, 0x5b, 0xc2, 0x9f, 0x29 }, |
1407 | .sn_size = 12, |
1408 | .hfn = 0x1, |
1409 | .hfn_threshold = 0xfa558, |
1410 | @@ -961,7 +961,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1411 | 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82, |
1412 | 0xdc, 0xb6, 0xc2, 0x36 }, |
1413 | .data_in = |
1414 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1415 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1416 | 0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, |
1417 | 0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb, |
1418 | 0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, |
1419 | @@ -974,7 +974,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1420 | .in_len = 66, |
1421 | .data_out = |
1422 | (uint8_t[]){ |
1423 | - 0x50, 0x01, 0x86, 0x69, 0xf2, 0x5d, 0xd7, 0xf5, |
1424 | + 0x80, 0x01, 0x86, 0x69, 0xf2, 0x5d, 0xd7, 0xf5, |
1425 | 0xc1, 0xf7, 0x1e, 0x47, 0x5d, 0xce, 0xbe, 0x48, |
1426 | 0xb5, 0x0b, 0x6a, 0x73, 0x9a, 0x5a, 0xa3, 0x06, |
1427 | 0x47, 0x40, 0x96, 0xcf, 0x86, 0x98, 0x3d, 0x6f, |
1428 | @@ -982,7 +982,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1429 | 0xa6, 0x24, 0xc9, 0x7f, 0x11, 0x79, 0x24, 0x44, |
1430 | 0xe8, 0x39, 0x11, 0x03, 0x0a, 0x9d, 0x4f, 0xe2, |
1431 | 0x95, 0x9f, 0x47, 0x73, 0x37, 0x83, 0x8c, 0x23, |
1432 | - 0xfa, 0x16, 0x52, 0x69, 0x16, 0xfc, |
1433 | + 0xfa, 0x16, 0x5d, 0x83, 0x73, 0x34, |
1434 | }, |
1435 | .sn_size = 12, |
1436 | .hfn = 0x1, |
1437 | @@ -1010,7 +1010,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1438 | 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82, |
1439 | 0xdc, 0xb6, 0xc2, 0x36 }, |
1440 | .data_in = |
1441 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1442 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1443 | 0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, |
1444 | 0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb, |
1445 | 0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, |
1446 | @@ -1022,7 +1022,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1447 | 0x7a, 0xf9, 0xdd }, |
1448 | .in_len = 66, |
1449 | .data_out = |
1450 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0x22, 0x2a, 0x8f, 0x86, |
1451 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0x22, 0x2a, 0x8f, 0x86, |
1452 | 0x25, 0x92, 0xcd, 0xa9, 0xa1, 0xa0, 0xf5, |
1453 | 0x86, 0x0d, 0xe8, 0xe4, 0xef, 0xe0, 0x78, |
1454 | 0x45, 0x7c, 0x0c, 0x41, 0x5c, 0x8f, 0x07, |
1455 | @@ -1031,7 +1031,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1456 | 0x35, 0xff, 0x7a, 0x42, 0xac, 0x94, 0x21, |
1457 | 0x60, 0x1c, 0x13, 0xcc, 0x7e, 0x6b, 0x2f, |
1458 | 0x6f, 0x91, 0x89, 0xc6, 0xd4, 0xe6, 0x17, |
1459 | - 0xae, 0xde, 0xfb, 0xf5, 0xda, 0x73, 0xa7 }, |
1460 | + 0xae, 0xde, 0xfb, 0xff, 0xf9, 0xef, 0xff }, |
1461 | .sn_size = 12, |
1462 | .hfn = 0x1, |
1463 | .hfn_threshold = 0xfa558, |
1464 | @@ -1154,7 +1154,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1465 | 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82, |
1466 | 0xdc, 0xb6, 0xc2, 0x36 }, |
1467 | .data_in = |
1468 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1469 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1470 | 0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, |
1471 | 0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb, |
1472 | 0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, |
1473 | @@ -1166,7 +1166,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1474 | 0x7a, 0xf9, 0xdd }, |
1475 | .in_len = 66, |
1476 | .data_out = |
1477 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0xe8, 0x8c, 0x96, 0x38, |
1478 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0xe8, 0x8c, 0x96, 0x38, |
1479 | 0x6e, 0xe4, 0x1f, 0xb9, 0x85, 0x61, 0x2e, |
1480 | 0x64, 0x31, 0x22, 0x97, 0x5b, 0xf6, 0x40, |
1481 | 0x08, 0x65, 0xc3, 0xfa, 0x72, 0xd2, 0x22, |
1482 | @@ -1175,7 +1175,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1483 | 0x23, 0x80, 0xcc, 0x5f, 0xfd, 0x74, 0xb1, |
1484 | 0xfb, 0xe1, 0xea, 0x6f, 0xf9, 0x9d, 0xf3, |
1485 | 0x90, 0x02, 0x6e, 0xf1, 0xf8, 0x95, 0x97, |
1486 | - 0xbd, 0xba, 0x08, 0x39, 0x63, 0x21, 0x82 }, |
1487 | + 0xbd, 0xba, 0x08, 0xb2, 0x24, 0x23, 0xd9 }, |
1488 | .sn_size = 12, |
1489 | .hfn = 0x1, |
1490 | .hfn_threshold = 0xfa558, |
1491 | @@ -1202,7 +1202,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1492 | 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82, |
1493 | 0xdc, 0xb6, 0xc2, 0x36 }, |
1494 | .data_in = |
1495 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1496 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1497 | 0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, |
1498 | 0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb, |
1499 | 0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, |
1500 | @@ -1214,7 +1214,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1501 | 0x7a, 0xf9, 0xdd }, |
1502 | .in_len = 66, |
1503 | .data_out = |
1504 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0xd2, 0xc0, 0x3a, 0x41, |
1505 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0xd2, 0xc0, 0x3a, 0x41, |
1506 | 0xbc, 0x0b, 0x95, 0xa4, 0x57, 0x3e, 0x36, |
1507 | 0x10, 0xb2, 0xff, 0x48, 0x1f, 0x10, 0xa8, |
1508 | 0x06, 0x42, 0xc5, 0xa2, 0x33, 0xed, 0x2e, |
1509 | @@ -1223,7 +1223,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1510 | 0x35, 0xd2, 0x31, 0x1a, 0xb8, 0x33, 0xc7, |
1511 | 0x9c, 0xa4, 0xa4, 0x9b, 0x20, 0xc6, 0x47, |
1512 | 0xdd, 0xe5, 0xa3, 0x4b, 0x9e, 0x66, 0xde, |
1513 | - 0xc9, 0x0a, 0x64, 0x8e, 0x79, 0xde, 0xaa }, |
1514 | + 0xc9, 0x0a, 0x64, 0x07, 0xc1, 0x1d, 0xa3 }, |
1515 | .sn_size = 12, |
1516 | .hfn = 0x1, |
1517 | .hfn_threshold = 0xfa558, |
1518 | @@ -1250,7 +1250,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1519 | 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82, |
1520 | 0xdc, 0xb6, 0xc2, 0x36 }, |
1521 | .data_in = |
1522 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1523 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1524 | 0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, |
1525 | 0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb, |
1526 | 0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, |
1527 | @@ -1262,7 +1262,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1528 | 0x7a, 0xf9, 0xdd }, |
1529 | .in_len = 66, |
1530 | .data_out = |
1531 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0xe8, 0x8c, 0x96, 0x38, |
1532 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0xe8, 0x8c, 0x96, 0x38, |
1533 | 0x6e, 0xe4, 0x1f, 0xb9, 0x85, 0x61, 0x2e, |
1534 | 0x64, 0x31, 0x22, 0x97, 0x5b, 0xf6, 0x40, |
1535 | 0x08, 0x65, 0xc3, 0xfa, 0x72, 0xd2, 0x22, |
1536 | @@ -1271,7 +1271,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1537 | 0x23, 0x80, 0xcc, 0x5f, 0xfd, 0x74, 0xb1, |
1538 | 0xfb, 0xe1, 0xea, 0x6f, 0xf9, 0x9d, 0xf3, |
1539 | 0x90, 0x02, 0x6e, 0xf1, 0xf8, 0x95, 0x97, |
1540 | - 0xbd, 0xba, 0x08, 0x72, 0xaa, 0x20, 0x3a }, |
1541 | + 0xbd, 0xba, 0x08, 0x6c, 0x5f, 0xa6, 0x4c }, |
1542 | .sn_size = 12, |
1543 | .hfn = 0x1, |
1544 | .hfn_threshold = 0xfa558, |
1545 | @@ -1298,7 +1298,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1546 | 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82, |
1547 | 0xdc, 0xb6, 0xc2, 0x36 }, |
1548 | .data_in = |
1549 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1550 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1551 | 0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, |
1552 | 0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb, |
1553 | 0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, |
1554 | @@ -1310,7 +1310,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1555 | 0x7a, 0xf9, 0xdd }, |
1556 | .in_len = 66, |
1557 | .data_out = |
1558 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0xd2, 0xc0, 0x3a, 0x41, |
1559 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0xd2, 0xc0, 0x3a, 0x41, |
1560 | 0xbc, 0x0b, 0x95, 0xa4, 0x57, 0x3e, 0x36, |
1561 | 0x10, 0xb2, 0xff, 0x48, 0x1f, 0x10, 0xa8, |
1562 | 0x06, 0x42, 0xc5, 0xa2, 0x33, 0xed, 0x2e, |
1563 | @@ -1319,7 +1319,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1564 | 0x35, 0xd2, 0x31, 0x1a, 0xb8, 0x33, 0xc7, |
1565 | 0x9c, 0xa4, 0xa4, 0x9b, 0x20, 0xc6, 0x47, |
1566 | 0xdd, 0xe5, 0xa3, 0x4b, 0x9e, 0x66, 0xde, |
1567 | - 0xc9, 0x0a, 0x64, 0x21, 0x5c, 0x2d, 0xfa }, |
1568 | + 0xc9, 0x0a, 0x64, 0x45, 0xd9, 0x18, 0x48 }, |
1569 | .sn_size = 12, |
1570 | .hfn = 0x1, |
1571 | .hfn_threshold = 0xfa558, |
1572 | @@ -1346,7 +1346,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1573 | 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82, |
1574 | 0xdc, 0xb6, 0xc2, 0x36 }, |
1575 | .data_in = |
1576 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1577 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1578 | 0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, |
1579 | 0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb, |
1580 | 0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, |
1581 | @@ -1358,7 +1358,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1582 | 0x7a, 0xf9, 0xdd }, |
1583 | .in_len = 66, |
1584 | .data_out = |
1585 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0xe8, 0x8c, 0x96, 0x38, |
1586 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0xe8, 0x8c, 0x96, 0x38, |
1587 | 0x6e, 0xe4, 0x1f, 0xb9, 0x85, 0x61, 0x2e, |
1588 | 0x64, 0x31, 0x22, 0x97, 0x5b, 0xf6, 0x40, |
1589 | 0x08, 0x65, 0xc3, 0xfa, 0x72, 0xd2, 0x22, |
1590 | @@ -1367,7 +1367,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1591 | 0x23, 0x80, 0xcc, 0x5f, 0xfd, 0x74, 0xb1, |
1592 | 0xfb, 0xe1, 0xea, 0x6f, 0xf9, 0x9d, 0xf3, |
1593 | 0x90, 0x02, 0x6e, 0xf1, 0xf8, 0x95, 0x97, |
1594 | - 0xbd, 0xba, 0x08, 0x52, 0xfd, 0x22, 0x6f }, |
1595 | + 0xbd, 0xba, 0x08, 0x5d, 0x17, 0x47, 0xa7 }, |
1596 | .sn_size = 12, |
1597 | .hfn = 0x1, |
1598 | .hfn_threshold = 0xfa558, |
1599 | @@ -1394,7 +1394,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1600 | 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82, |
1601 | 0xdc, 0xb6, 0xc2, 0x36 }, |
1602 | .data_in = |
1603 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1604 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1605 | 0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, |
1606 | 0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb, |
1607 | 0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, |
1608 | @@ -1406,7 +1406,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1609 | 0x7a, 0xf9, 0xdd }, |
1610 | .in_len = 66, |
1611 | .data_out = |
1612 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0xd2, 0xc0, 0x3a, 0x41, |
1613 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0xd2, 0xc0, 0x3a, 0x41, |
1614 | 0xbc, 0x0b, 0x95, 0xa4, 0x57, 0x3e, 0x36, |
1615 | 0x10, 0xb2, 0xff, 0x48, 0x1f, 0x10, 0xa8, |
1616 | 0x06, 0x42, 0xc5, 0xa2, 0x33, 0xed, 0x2e, |
1617 | @@ -1415,7 +1415,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1618 | 0x35, 0xd2, 0x31, 0x1a, 0xb8, 0x33, 0xc7, |
1619 | 0x9c, 0xa4, 0xa4, 0x9b, 0x20, 0xc6, 0x47, |
1620 | 0xdd, 0xe5, 0xa3, 0x4b, 0x9e, 0x66, 0xde, |
1621 | - 0xc9, 0x0a, 0x64, 0xeb, 0xc1, 0xf4, 0xc6 }, |
1622 | + 0xc9, 0x0a, 0x64, 0xe1, 0xe2, 0x68, 0x9e }, |
1623 | .sn_size = 12, |
1624 | .hfn = 0x1, |
1625 | .hfn_threshold = 0xfa558, |
1626 | @@ -1538,7 +1538,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1627 | 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82, |
1628 | 0xdc, 0xb6, 0xc2, 0x36 }, |
1629 | .data_in = |
1630 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1631 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1632 | 0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, |
1633 | 0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb, |
1634 | 0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, |
1635 | @@ -1550,7 +1550,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1636 | 0x7a, 0xf9, 0xdd }, |
1637 | .in_len = 66, |
1638 | .data_out = |
1639 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0x79, 0xdb, 0x02, 0x27, |
1640 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0x79, 0xdb, 0x02, 0x27, |
1641 | 0xa0, 0x85, 0x82, 0x87, 0x6b, 0x35, 0x2b, |
1642 | 0xe1, 0x96, 0x5b, 0xfd, 0x67, 0xe1, 0x67, |
1643 | 0x69, 0x17, 0x5b, 0x0a, 0x8f, 0xb8, 0x37, |
1644 | @@ -1559,7 +1559,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1645 | 0xda, 0x94, 0x61, 0x8e, 0x2d, 0x7a, 0x5d, |
1646 | 0x64, 0x0f, 0x4a, 0xc7, 0x7c, 0x9d, 0x56, |
1647 | 0x5a, 0x2a, 0xcb, 0xff, 0x79, 0x07, 0xa5, |
1648 | - 0xaf, 0x96, 0x5c, 0xb6, 0x6c, 0xeb, 0x14 }, |
1649 | + 0xaf, 0x96, 0x5c, 0x3d, 0x2b, 0xe9, 0x4f }, |
1650 | .sn_size = 12, |
1651 | .hfn = 0x1, |
1652 | .hfn_threshold = 0xfa558, |
1653 | @@ -1586,7 +1586,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1654 | 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82, |
1655 | 0xdc, 0xb6, 0xc2, 0x36 }, |
1656 | .data_in = |
1657 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1658 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1659 | 0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, |
1660 | 0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb, |
1661 | 0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, |
1662 | @@ -1598,7 +1598,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1663 | 0x7a, 0xf9, 0xdd }, |
1664 | .in_len = 66, |
1665 | .data_out = |
1666 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0x2c, 0x0f, 0xc1, 0x08, |
1667 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0x2c, 0x0f, 0xc1, 0x08, |
1668 | 0x2e, 0xa7, 0x97, 0xd2, 0x6c, 0x17, 0x8f, |
1669 | 0x22, 0x1f, 0x99, 0x1b, 0x48, 0x04, 0x29, |
1670 | 0x54, 0x3f, 0x07, 0x01, 0xda, 0x19, 0x59, |
1671 | @@ -1607,7 +1607,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1672 | 0x04, 0xf4, 0xfe, 0xe6, 0xf7, 0x53, 0x51, |
1673 | 0x70, 0x10, 0x56, 0x83, 0x59, 0xb5, 0x64, |
1674 | 0x0b, 0xa6, 0x2e, 0xa5, 0x03, 0x62, 0x13, |
1675 | - 0x91, 0xaf, 0x24, 0xb2, 0x82, 0xfb, 0x27 }, |
1676 | + 0x91, 0xaf, 0x24, 0x3b, 0x3a, 0x38, 0x2e }, |
1677 | .sn_size = 12, |
1678 | .hfn = 0x1, |
1679 | .hfn_threshold = 0xfa558, |
1680 | @@ -1634,7 +1634,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1681 | 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82, |
1682 | 0xdc, 0xb6, 0xc2, 0x36 }, |
1683 | .data_in = |
1684 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1685 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1686 | 0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, |
1687 | 0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb, |
1688 | 0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, |
1689 | @@ -1646,7 +1646,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1690 | 0x7a, 0xf9, 0xdd }, |
1691 | .in_len = 66, |
1692 | .data_out = |
1693 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0x79, 0xdb, 0x02, 0x27, |
1694 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0x79, 0xdb, 0x02, 0x27, |
1695 | 0xa0, 0x85, 0x82, 0x87, 0x6b, 0x35, 0x2b, |
1696 | 0xe1, 0x96, 0x5b, 0xfd, 0x67, 0xe1, 0x67, |
1697 | 0x69, 0x17, 0x5b, 0x0a, 0x8f, 0xb8, 0x37, |
1698 | @@ -1655,7 +1655,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1699 | 0xda, 0x94, 0x61, 0x8e, 0x2d, 0x7a, 0x5d, |
1700 | 0x64, 0x0f, 0x4a, 0xc7, 0x7c, 0x9d, 0x56, |
1701 | 0x5a, 0x2a, 0xcb, 0xff, 0x79, 0x07, 0xa5, |
1702 | - 0xaf, 0x96, 0x5c, 0xfd, 0xa5, 0xea, 0xac }, |
1703 | + 0xaf, 0x96, 0x5c, 0xe3, 0x50, 0x6c, 0xda }, |
1704 | .sn_size = 12, |
1705 | .hfn = 0x1, |
1706 | .hfn_threshold = 0xfa558, |
1707 | @@ -1682,7 +1682,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1708 | 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82, |
1709 | 0xdc, 0xb6, 0xc2, 0x36 }, |
1710 | .data_in = |
1711 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1712 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1713 | 0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, |
1714 | 0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb, |
1715 | 0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, |
1716 | @@ -1694,7 +1694,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1717 | 0x7a, 0xf9, 0xdd }, |
1718 | .in_len = 66, |
1719 | .data_out = |
1720 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0x2c, 0x0f, 0xc1, 0x08, |
1721 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0x2c, 0x0f, 0xc1, 0x08, |
1722 | 0x2e, 0xa7, 0x97, 0xd2, 0x6c, 0x17, 0x8f, |
1723 | 0x22, 0x1f, 0x99, 0x1b, 0x48, 0x04, 0x29, |
1724 | 0x54, 0x3f, 0x07, 0x01, 0xda, 0x19, 0x59, |
1725 | @@ -1703,7 +1703,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1726 | 0x04, 0xf4, 0xfe, 0xe6, 0xf7, 0x53, 0x51, |
1727 | 0x70, 0x10, 0x56, 0x83, 0x59, 0xb5, 0x64, |
1728 | 0x0b, 0xa6, 0x2e, 0xa5, 0x03, 0x62, 0x13, |
1729 | - 0x91, 0xaf, 0x24, 0x1d, 0xa7, 0x08, 0x77 }, |
1730 | + 0x91, 0xaf, 0x24, 0x79, 0x22, 0x3d, 0xc5 }, |
1731 | .sn_size = 12, |
1732 | .hfn = 0x1, |
1733 | .hfn_threshold = 0xfa558, |
1734 | @@ -1730,7 +1730,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1735 | 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82, |
1736 | 0xdc, 0xb6, 0xc2, 0x36 }, |
1737 | .data_in = |
1738 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1739 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1740 | 0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, |
1741 | 0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb, |
1742 | 0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, |
1743 | @@ -1742,7 +1742,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1744 | 0x7a, 0xf9, 0xdd }, |
1745 | .in_len = 66, |
1746 | .data_out = |
1747 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0x79, 0xdb, 0x02, 0x27, |
1748 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0x79, 0xdb, 0x02, 0x27, |
1749 | 0xa0, 0x85, 0x82, 0x87, 0x6b, 0x35, 0x2b, |
1750 | 0xe1, 0x96, 0x5b, 0xfd, 0x67, 0xe1, 0x67, |
1751 | 0x69, 0x17, 0x5b, 0x0a, 0x8f, 0xb8, 0x37, |
1752 | @@ -1751,7 +1751,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1753 | 0xda, 0x94, 0x61, 0x8e, 0x2d, 0x7a, 0x5d, |
1754 | 0x64, 0x0f, 0x4a, 0xc7, 0x7c, 0x9d, 0x56, |
1755 | 0x5a, 0x2a, 0xcb, 0xff, 0x79, 0x07, 0xa5, |
1756 | - 0xaf, 0x96, 0x5c, 0xdd, 0xf2, 0xe8, 0xf9 }, |
1757 | + 0xaf, 0x96, 0x5c, 0xd2, 0x18, 0x8d, 0x31 }, |
1758 | .sn_size = 12, |
1759 | .hfn = 0x1, |
1760 | .hfn_threshold = 0xfa558, |
1761 | @@ -1778,7 +1778,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1762 | 0x0a, 0x98, 0xc1, 0x3c, 0x98, 0x82, |
1763 | 0xdc, 0xb6, 0xc2, 0x36 }, |
1764 | .data_in = |
1765 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1766 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0xb8, 0xf8, 0xdb, 0x2d, |
1767 | 0x3f, 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, |
1768 | 0x88, 0x63, 0x08, 0x4f, 0xd3, 0x71, 0xfb, |
1769 | 0xeb, 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, |
1770 | @@ -1790,7 +1790,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1771 | 0x7a, 0xf9, 0xdd }, |
1772 | .in_len = 66, |
1773 | .data_out = |
1774 | - (uint8_t[]){ 0x50, 0x01, 0x86, 0x2c, 0x0f, 0xc1, 0x08, |
1775 | + (uint8_t[]){ 0x80, 0x01, 0x86, 0x2c, 0x0f, 0xc1, 0x08, |
1776 | 0x2e, 0xa7, 0x97, 0xd2, 0x6c, 0x17, 0x8f, |
1777 | 0x22, 0x1f, 0x99, 0x1b, 0x48, 0x04, 0x29, |
1778 | 0x54, 0x3f, 0x07, 0x01, 0xda, 0x19, 0x59, |
1779 | @@ -1799,7 +1799,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1780 | 0x04, 0xf4, 0xfe, 0xe6, 0xf7, 0x53, 0x51, |
1781 | 0x70, 0x10, 0x56, 0x83, 0x59, 0xb5, 0x64, |
1782 | 0x0b, 0xa6, 0x2e, 0xa5, 0x03, 0x62, 0x13, |
1783 | - 0x91, 0xaf, 0x24, 0xd7, 0x3a, 0xd1, 0x4b }, |
1784 | + 0x91, 0xaf, 0x24, 0xdd, 0x19, 0x4d, 0x13 }, |
1785 | .sn_size = 12, |
1786 | .hfn = 0x1, |
1787 | .hfn_threshold = 0xfa558, |
1788 | @@ -2556,7 +2556,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1789 | 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0, |
1790 | 0x31, 0x5f, 0x3a, 0x15 }, |
1791 | .data_in = |
1792 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
1793 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
1794 | 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88, |
1795 | 0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb, |
1796 | 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f, |
1797 | @@ -2568,7 +2568,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1798 | 0xf9, 0xdd, 0xcc, 0x69 }, |
1799 | .in_len = 67, |
1800 | .data_out = |
1801 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0x78, 0xee, 0x01, |
1802 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0x78, 0xee, 0x01, |
1803 | 0x4c, 0x79, 0xc7, 0x14, 0x79, 0x2c, 0x1b, |
1804 | 0x8a, 0xd0, 0x17, 0xb4, 0xb4, 0xfe, 0xa7, |
1805 | 0x17, 0x9a, 0x93, 0x5d, 0xad, 0x27, 0x8a, |
1806 | @@ -2577,8 +2577,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1807 | 0x37, 0xfb, 0x98, 0x1b, 0x06, 0x1a, 0x76, |
1808 | 0xf8, 0x07, 0x72, 0xe9, 0xa2, 0x89, 0x47, |
1809 | 0x95, 0x8f, 0x8f, 0x4e, 0x45, 0x55, 0xd6, |
1810 | - 0x0e, 0xf4, 0xe7, 0xe8, 0x78, 0xdd, 0xc1, |
1811 | - 0x92 }, |
1812 | + 0x0e, 0xf4, 0xe7, 0xe8, 0xc0, 0x48, 0x6a, |
1813 | + 0x7c }, |
1814 | .sn_size = 18, |
1815 | .hfn = 0x1, |
1816 | .hfn_threshold = 0xfa558, |
1817 | @@ -2605,7 +2605,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1818 | 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0, |
1819 | 0x31, 0x5f, 0x3a, 0x15 }, |
1820 | .data_in = |
1821 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
1822 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
1823 | 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88, |
1824 | 0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb, |
1825 | 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f, |
1826 | @@ -2617,7 +2617,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1827 | 0xf9, 0xdd, 0xcc, 0x69 }, |
1828 | .in_len = 67, |
1829 | .data_out = |
1830 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xbf, 0x21, 0xc9, |
1831 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xbf, 0x21, 0xc9, |
1832 | 0x7d, 0x02, 0x8d, 0xf7, 0xf7, 0x80, 0x50, |
1833 | 0x60, 0x32, 0x09, 0xb8, 0x69, 0x48, 0xab, |
1834 | 0x58, 0xf0, 0xd9, 0x63, 0x63, 0x36, 0x01, |
1835 | @@ -2626,8 +2626,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1836 | 0x4c, 0x00, 0xd0, 0x0e, 0x31, 0x1c, 0x87, |
1837 | 0xee, 0x1c, 0xc3, 0x81, 0xb4, 0xb6, 0x09, |
1838 | 0xb5, 0x3c, 0x85, 0xb9, 0xcc, 0x2d, 0x2e, |
1839 | - 0x9c, 0x85, 0x0b, 0xf7, 0xb1, 0x80, 0x30, |
1840 | - 0xa5 }, |
1841 | + 0x9c, 0x85, 0x0b, 0xf7, 0x17, 0x28, 0x0f, |
1842 | + 0x7d }, |
1843 | .sn_size = 18, |
1844 | .hfn = 0x1, |
1845 | .hfn_threshold = 0xfa558, |
1846 | @@ -2654,7 +2654,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1847 | 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0, |
1848 | 0x31, 0x5f, 0x3a, 0x15 }, |
1849 | .data_in = |
1850 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
1851 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
1852 | 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88, |
1853 | 0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb, |
1854 | 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f, |
1855 | @@ -2666,7 +2666,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1856 | 0xf9, 0xdd, 0xcc, 0x69 }, |
1857 | .in_len = 67, |
1858 | .data_out = |
1859 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0x78, 0xee, 0x01, |
1860 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0x78, 0xee, 0x01, |
1861 | 0x4c, 0x79, 0xc7, 0x14, 0x79, 0x2c, 0x1b, |
1862 | 0x8a, 0xd0, 0x17, 0xb4, 0xb4, 0xfe, 0xa7, |
1863 | 0x17, 0x9a, 0x93, 0x5d, 0xad, 0x27, 0x8a, |
1864 | @@ -2675,8 +2675,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1865 | 0x37, 0xfb, 0x98, 0x1b, 0x06, 0x1a, 0x76, |
1866 | 0xf8, 0x07, 0x72, 0xe9, 0xa2, 0x89, 0x47, |
1867 | 0x95, 0x8f, 0x8f, 0x4e, 0x45, 0x55, 0xd6, |
1868 | - 0x0e, 0xf4, 0xe7, 0xe8, 0x08, 0xa6, 0xdb, |
1869 | - 0x19 }, |
1870 | + 0x0e, 0xf4, 0xe7, 0xe8, 0x8e, 0x76, 0x4a, |
1871 | + 0x4e }, |
1872 | .sn_size = 18, |
1873 | .hfn = 0x1, |
1874 | .hfn_threshold = 0xfa558, |
1875 | @@ -2703,7 +2703,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1876 | 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0, |
1877 | 0x31, 0x5f, 0x3a, 0x15 }, |
1878 | .data_in = |
1879 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
1880 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
1881 | 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88, |
1882 | 0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb, |
1883 | 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f, |
1884 | @@ -2715,7 +2715,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1885 | 0xf9, 0xdd, 0xcc, 0x69 }, |
1886 | .in_len = 67, |
1887 | .data_out = |
1888 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xbf, 0x21, 0xc9, |
1889 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xbf, 0x21, 0xc9, |
1890 | 0x7d, 0x02, 0x8d, 0xf7, 0xf7, 0x80, 0x50, |
1891 | 0x60, 0x32, 0x09, 0xb8, 0x69, 0x48, 0xab, |
1892 | 0x58, 0xf0, 0xd9, 0x63, 0x63, 0x36, 0x01, |
1893 | @@ -2724,8 +2724,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1894 | 0x4c, 0x00, 0xd0, 0x0e, 0x31, 0x1c, 0x87, |
1895 | 0xee, 0x1c, 0xc3, 0x81, 0xb4, 0xb6, 0x09, |
1896 | 0xb5, 0x3c, 0x85, 0xb9, 0xcc, 0x2d, 0x2e, |
1897 | - 0x9c, 0x85, 0x0b, 0xf7, 0x97, 0x5a, 0x56, |
1898 | - 0xab }, |
1899 | + 0x9c, 0x85, 0x0b, 0xf7, 0xc1, 0x27, 0x82, |
1900 | + 0xc3 }, |
1901 | .sn_size = 18, |
1902 | .hfn = 0x1, |
1903 | .hfn_threshold = 0xfa558, |
1904 | @@ -2752,7 +2752,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1905 | 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0, |
1906 | 0x31, 0x5f, 0x3a, 0x15 }, |
1907 | .data_in = |
1908 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
1909 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
1910 | 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88, |
1911 | 0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb, |
1912 | 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f, |
1913 | @@ -2764,7 +2764,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1914 | 0xf9, 0xdd, 0xcc, 0x69 }, |
1915 | .in_len = 67, |
1916 | .data_out = |
1917 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0x78, 0xee, 0x01, |
1918 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0x78, 0xee, 0x01, |
1919 | 0x4c, 0x79, 0xc7, 0x14, 0x79, 0x2c, 0x1b, |
1920 | 0x8a, 0xd0, 0x17, 0xb4, 0xb4, 0xfe, 0xa7, |
1921 | 0x17, 0x9a, 0x93, 0x5d, 0xad, 0x27, 0x8a, |
1922 | @@ -2773,8 +2773,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1923 | 0x37, 0xfb, 0x98, 0x1b, 0x06, 0x1a, 0x76, |
1924 | 0xf8, 0x07, 0x72, 0xe9, 0xa2, 0x89, 0x47, |
1925 | 0x95, 0x8f, 0x8f, 0x4e, 0x45, 0x55, 0xd6, |
1926 | - 0x0e, 0xf4, 0xe7, 0xe8, 0x08, 0x68, 0xff, |
1927 | - 0x7c }, |
1928 | + 0x0e, 0xf4, 0xe7, 0xe8, 0x97, 0x76, 0xce, |
1929 | + 0xac }, |
1930 | .sn_size = 18, |
1931 | .hfn = 0x1, |
1932 | .hfn_threshold = 0xfa558, |
1933 | @@ -2801,7 +2801,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1934 | 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0, |
1935 | 0x31, 0x5f, 0x3a, 0x15 }, |
1936 | .data_in = |
1937 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
1938 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
1939 | 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88, |
1940 | 0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb, |
1941 | 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f, |
1942 | @@ -2813,7 +2813,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1943 | 0xf9, 0xdd, 0xcc, 0x69 }, |
1944 | .in_len = 67, |
1945 | .data_out = |
1946 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xbf, 0x21, 0xc9, |
1947 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xbf, 0x21, 0xc9, |
1948 | 0x7d, 0x02, 0x8d, 0xf7, 0xf7, 0x80, 0x50, |
1949 | 0x60, 0x32, 0x09, 0xb8, 0x69, 0x48, 0xab, |
1950 | 0x58, 0xf0, 0xd9, 0x63, 0x63, 0x36, 0x01, |
1951 | @@ -2822,8 +2822,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1952 | 0x4c, 0x00, 0xd0, 0x0e, 0x31, 0x1c, 0x87, |
1953 | 0xee, 0x1c, 0xc3, 0x81, 0xb4, 0xb6, 0x09, |
1954 | 0xb5, 0x3c, 0x85, 0xb9, 0xcc, 0x2d, 0x2e, |
1955 | - 0x9c, 0x85, 0x0b, 0xf7, 0x41, 0xdd, 0x19, |
1956 | - 0x32 }, |
1957 | + 0x9c, 0x85, 0x0b, 0xf7, 0x69, 0x56, 0x6f, |
1958 | + 0xaf }, |
1959 | .sn_size = 18, |
1960 | .hfn = 0x1, |
1961 | .hfn_threshold = 0xfa558, |
1962 | @@ -2948,7 +2948,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1963 | 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0, |
1964 | 0x31, 0x5f, 0x3a, 0x15 }, |
1965 | .data_in = |
1966 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
1967 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
1968 | 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88, |
1969 | 0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb, |
1970 | 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f, |
1971 | @@ -2960,7 +2960,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1972 | 0xf9, 0xdd, 0xcc, 0x69 }, |
1973 | .in_len = 67, |
1974 | .data_out = |
1975 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0x0c, 0xa8, 0x9d, |
1976 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0x0c, 0xa8, 0x9d, |
1977 | 0x9e, 0xcc, 0xf0, 0x1a, 0xc0, 0xf2, 0x9f, |
1978 | 0x8c, 0xc9, 0x57, 0xc7, 0x99, 0x4d, 0xde, |
1979 | 0xc5, 0x19, 0x69, 0x58, 0x5b, 0x1a, 0x51, |
1980 | @@ -2969,8 +2969,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1981 | 0xb3, 0x24, 0x88, 0x68, 0x5f, 0x78, 0x3a, |
1982 | 0xd2, 0x6c, 0xcc, 0xa0, 0xb5, 0xf0, 0x95, |
1983 | 0x3e, 0xf1, 0xf4, 0x3e, 0x43, 0x8f, 0x6c, |
1984 | - 0xae, 0x22, 0x59, 0x11, 0xf6, 0x97, 0x0b, |
1985 | - 0x7b }, |
1986 | + 0xae, 0x22, 0x59, 0x11, 0x4e, 0x02, 0xa0, |
1987 | + 0x95 }, |
1988 | .sn_size = 18, |
1989 | .hfn = 0x1, |
1990 | .hfn_threshold = 0xfa558, |
1991 | @@ -2997,7 +2997,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
1992 | 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0, |
1993 | 0x31, 0x5f, 0x3a, 0x15 }, |
1994 | .data_in = |
1995 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
1996 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
1997 | 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88, |
1998 | 0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb, |
1999 | 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f, |
2000 | @@ -3009,7 +3009,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2001 | 0xf9, 0xdd, 0xcc, 0x69 }, |
2002 | .in_len = 67, |
2003 | .data_out = |
2004 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0x5a, 0xa9, 0xb5, |
2005 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0x5a, 0xa9, 0xb5, |
2006 | 0x61, 0x8b, 0x8a, 0xb7, 0x6a, 0x98, 0x30, |
2007 | 0x6c, 0xed, 0x84, 0x69, 0xff, 0x6b, 0x7e, |
2008 | 0x30, 0x59, 0x55, 0x80, 0x32, 0xd0, 0x0f, |
2009 | @@ -3018,8 +3018,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2010 | 0x0e, 0x2e, 0x33, 0xe6, 0xa4, 0xea, 0x17, |
2011 | 0xd6, 0x56, 0xa2, 0x3b, 0x5f, 0x56, 0x3a, |
2012 | 0xa7, 0x6f, 0x4c, 0xc1, 0xca, 0xbd, 0x5f, |
2013 | - 0xad, 0x3d, 0x99, 0x4a, 0xa3, 0xab, 0xd5, |
2014 | - 0x7c }, |
2015 | + 0xad, 0x3d, 0x99, 0x4a, 0x05, 0x03, 0xea, |
2016 | + 0xa4 }, |
2017 | .sn_size = 18, |
2018 | .hfn = 0x1, |
2019 | .hfn_threshold = 0xfa558, |
2020 | @@ -3046,7 +3046,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2021 | 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0, |
2022 | 0x31, 0x5f, 0x3a, 0x15 }, |
2023 | .data_in = |
2024 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
2025 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
2026 | 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88, |
2027 | 0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb, |
2028 | 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f, |
2029 | @@ -3058,7 +3058,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2030 | 0xf9, 0xdd, 0xcc, 0x69 }, |
2031 | .in_len = 67, |
2032 | .data_out = |
2033 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0x0c, 0xa8, 0x9d, |
2034 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0x0c, 0xa8, 0x9d, |
2035 | 0x9e, 0xcc, 0xf0, 0x1a, 0xc0, 0xf2, 0x9f, |
2036 | 0x8c, 0xc9, 0x57, 0xc7, 0x99, 0x4d, 0xde, |
2037 | 0xc5, 0x19, 0x69, 0x58, 0x5b, 0x1a, 0x51, |
2038 | @@ -3067,8 +3067,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2039 | 0xb3, 0x24, 0x88, 0x68, 0x5f, 0x78, 0x3a, |
2040 | 0xd2, 0x6c, 0xcc, 0xa0, 0xb5, 0xf0, 0x95, |
2041 | 0x3e, 0xf1, 0xf4, 0x3e, 0x43, 0x8f, 0x6c, |
2042 | - 0xae, 0x22, 0x59, 0x11, 0x86, 0xec, 0x11, |
2043 | - 0xf0 }, |
2044 | + 0xae, 0x22, 0x59, 0x11, 0x00, 0x3c, 0x80, |
2045 | + 0xa7 }, |
2046 | .sn_size = 18, |
2047 | .hfn = 0x1, |
2048 | .hfn_threshold = 0xfa558, |
2049 | @@ -3095,7 +3095,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2050 | 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0, |
2051 | 0x31, 0x5f, 0x3a, 0x15 }, |
2052 | .data_in = |
2053 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
2054 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
2055 | 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88, |
2056 | 0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb, |
2057 | 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f, |
2058 | @@ -3107,7 +3107,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2059 | 0xf9, 0xdd, 0xcc, 0x69 }, |
2060 | .in_len = 67, |
2061 | .data_out = |
2062 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0x5a, 0xa9, 0xb5, |
2063 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0x5a, 0xa9, 0xb5, |
2064 | 0x61, 0x8b, 0x8a, 0xb7, 0x6a, 0x98, 0x30, |
2065 | 0x6c, 0xed, 0x84, 0x69, 0xff, 0x6b, 0x7e, |
2066 | 0x30, 0x59, 0x55, 0x80, 0x32, 0xd0, 0x0f, |
2067 | @@ -3116,8 +3116,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2068 | 0x0e, 0x2e, 0x33, 0xe6, 0xa4, 0xea, 0x17, |
2069 | 0xd6, 0x56, 0xa2, 0x3b, 0x5f, 0x56, 0x3a, |
2070 | 0xa7, 0x6f, 0x4c, 0xc1, 0xca, 0xbd, 0x5f, |
2071 | - 0xad, 0x3d, 0x99, 0x4a, 0x85, 0x71, 0xb3, |
2072 | - 0x72 }, |
2073 | + 0xad, 0x3d, 0x99, 0x4a, 0xd3, 0x0c, 0x67, |
2074 | + 0x1a }, |
2075 | .sn_size = 18, |
2076 | .hfn = 0x1, |
2077 | .hfn_threshold = 0xfa558, |
2078 | @@ -3144,7 +3144,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2079 | 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0, |
2080 | 0x31, 0x5f, 0x3a, 0x15 }, |
2081 | .data_in = |
2082 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
2083 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
2084 | 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88, |
2085 | 0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb, |
2086 | 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f, |
2087 | @@ -3156,7 +3156,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2088 | 0xf9, 0xdd, 0xcc, 0x69 }, |
2089 | .in_len = 67, |
2090 | .data_out = |
2091 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0x0c, 0xa8, 0x9d, |
2092 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0x0c, 0xa8, 0x9d, |
2093 | 0x9e, 0xcc, 0xf0, 0x1a, 0xc0, 0xf2, 0x9f, |
2094 | 0x8c, 0xc9, 0x57, 0xc7, 0x99, 0x4d, 0xde, |
2095 | 0xc5, 0x19, 0x69, 0x58, 0x5b, 0x1a, 0x51, |
2096 | @@ -3165,8 +3165,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2097 | 0xb3, 0x24, 0x88, 0x68, 0x5f, 0x78, 0x3a, |
2098 | 0xd2, 0x6c, 0xcc, 0xa0, 0xb5, 0xf0, 0x95, |
2099 | 0x3e, 0xf1, 0xf4, 0x3e, 0x43, 0x8f, 0x6c, |
2100 | - 0xae, 0x22, 0x59, 0x11, 0x86, 0x22, 0x35, |
2101 | - 0x95 }, |
2102 | + 0xae, 0x22, 0x59, 0x11, 0x19, 0x3c, 0x04, |
2103 | + 0x45 }, |
2104 | .sn_size = 18, |
2105 | .hfn = 0x1, |
2106 | .hfn_threshold = 0xfa558, |
2107 | @@ -3193,7 +3193,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2108 | 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0, |
2109 | 0x31, 0x5f, 0x3a, 0x15 }, |
2110 | .data_in = |
2111 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
2112 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
2113 | 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88, |
2114 | 0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb, |
2115 | 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f, |
2116 | @@ -3205,7 +3205,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2117 | 0xf9, 0xdd, 0xcc, 0x69 }, |
2118 | .in_len = 67, |
2119 | .data_out = |
2120 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0x5a, 0xa9, 0xb5, |
2121 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0x5a, 0xa9, 0xb5, |
2122 | 0x61, 0x8b, 0x8a, 0xb7, 0x6a, 0x98, 0x30, |
2123 | 0x6c, 0xed, 0x84, 0x69, 0xff, 0x6b, 0x7e, |
2124 | 0x30, 0x59, 0x55, 0x80, 0x32, 0xd0, 0x0f, |
2125 | @@ -3214,8 +3214,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2126 | 0x0e, 0x2e, 0x33, 0xe6, 0xa4, 0xea, 0x17, |
2127 | 0xd6, 0x56, 0xa2, 0x3b, 0x5f, 0x56, 0x3a, |
2128 | 0xa7, 0x6f, 0x4c, 0xc1, 0xca, 0xbd, 0x5f, |
2129 | - 0xad, 0x3d, 0x99, 0x4a, 0x53, 0xf6, 0xfc, |
2130 | - 0xeb }, |
2131 | + 0xad, 0x3d, 0x99, 0x4a, 0x7b, 0x7d, 0x8a, |
2132 | + 0x76 }, |
2133 | .sn_size = 18, |
2134 | .hfn = 0x1, |
2135 | .hfn_threshold = 0xfa558, |
2136 | @@ -3340,7 +3340,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2137 | 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0, |
2138 | 0x31, 0x5f, 0x3a, 0x15 }, |
2139 | .data_in = |
2140 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
2141 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
2142 | 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88, |
2143 | 0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb, |
2144 | 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f, |
2145 | @@ -3352,7 +3352,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2146 | 0xf9, 0xdd, 0xcc, 0x69 }, |
2147 | .in_len = 67, |
2148 | .data_out = |
2149 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0x9b, 0x9c, 0xde, |
2150 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0x9b, 0x9c, 0xde, |
2151 | 0xa1, 0x69, 0x9b, 0x27, 0xd3, 0x38, 0x93, |
2152 | 0xf2, 0x12, 0xb1, 0xc6, 0x60, 0xac, 0xb7, |
2153 | 0xf2, 0x37, 0xf3, 0x72, 0xaf, 0x50, 0x9d, |
2154 | @@ -3361,8 +3361,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2155 | 0xbb, 0x15, 0xf3, 0x6a, 0x5d, 0x61, 0x12, |
2156 | 0x6e, 0x6d, 0x1b, 0x92, 0xd8, 0x42, 0x60, |
2157 | 0x3e, 0x1f, 0xe0, 0x6c, 0x28, 0x89, 0xf7, |
2158 | - 0x0c, 0x61, 0x76, 0xdc, 0x25, 0x8a, 0x31, |
2159 | - 0xed }, |
2160 | + 0x0c, 0x61, 0x76, 0xdc, 0x9d, 0x1f, 0x9a, |
2161 | + 0x03 }, |
2162 | .sn_size = 18, |
2163 | .hfn = 0x1, |
2164 | .hfn_threshold = 0xfa558, |
2165 | @@ -3389,7 +3389,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2166 | 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0, |
2167 | 0x31, 0x5f, 0x3a, 0x15 }, |
2168 | .data_in = |
2169 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
2170 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
2171 | 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88, |
2172 | 0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb, |
2173 | 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f, |
2174 | @@ -3401,7 +3401,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2175 | 0xf9, 0xdd, 0xcc, 0x69 }, |
2176 | .in_len = 67, |
2177 | .data_out = |
2178 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0x0c, 0xef, 0x82, |
2179 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0x0c, 0xef, 0x82, |
2180 | 0x59, 0x6b, 0x6b, 0x61, 0xbe, 0x54, 0x23, |
2181 | 0x7d, 0x29, 0x6d, 0xa7, 0xd2, 0xfa, 0x26, |
2182 | 0xcc, 0x1d, 0x18, 0x39, 0x99, 0xea, 0xac, |
2183 | @@ -3410,8 +3410,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2184 | 0x7a, 0x8a, 0xe5, 0x00, 0x35, 0x4d, 0x0e, |
2185 | 0x69, 0x9f, 0x4b, 0x72, 0x94, 0x8a, 0x25, |
2186 | 0x69, 0x43, 0x28, 0xdc, 0x40, 0x60, 0x4f, |
2187 | - 0x6c, 0xed, 0x6a, 0x50, 0xf3, 0x5e, 0x90, |
2188 | - 0x42 }, |
2189 | + 0x6c, 0xed, 0x6a, 0x50, 0x55, 0xf6, 0xaf, |
2190 | + 0x9a }, |
2191 | .sn_size = 18, |
2192 | .hfn = 0x1, |
2193 | .hfn_threshold = 0xfa558, |
2194 | @@ -3438,7 +3438,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2195 | 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0, |
2196 | 0x31, 0x5f, 0x3a, 0x15 }, |
2197 | .data_in = |
2198 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
2199 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
2200 | 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88, |
2201 | 0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb, |
2202 | 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f, |
2203 | @@ -3450,7 +3450,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2204 | 0xf9, 0xdd, 0xcc, 0x69 }, |
2205 | .in_len = 67, |
2206 | .data_out = |
2207 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0x9b, 0x9c, 0xde, |
2208 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0x9b, 0x9c, 0xde, |
2209 | 0xa1, 0x69, 0x9b, 0x27, 0xd3, 0x38, 0x93, |
2210 | 0xf2, 0x12, 0xb1, 0xc6, 0x60, 0xac, 0xb7, |
2211 | 0xf2, 0x37, 0xf3, 0x72, 0xaf, 0x50, 0x9d, |
2212 | @@ -3459,8 +3459,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2213 | 0xbb, 0x15, 0xf3, 0x6a, 0x5d, 0x61, 0x12, |
2214 | 0x6e, 0x6d, 0x1b, 0x92, 0xd8, 0x42, 0x60, |
2215 | 0x3e, 0x1f, 0xe0, 0x6c, 0x28, 0x89, 0xf7, |
2216 | - 0x0c, 0x61, 0x76, 0xdc, 0x55, 0xf1, 0x2b, |
2217 | - 0x66 }, |
2218 | + 0x0c, 0x61, 0x76, 0xdc, 0xd3, 0x21, 0xba, |
2219 | + 0x31 }, |
2220 | .sn_size = 18, |
2221 | .hfn = 0x1, |
2222 | .hfn_threshold = 0xfa558, |
2223 | @@ -3487,7 +3487,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2224 | 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0, |
2225 | 0x31, 0x5f, 0x3a, 0x15 }, |
2226 | .data_in = |
2227 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
2228 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
2229 | 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88, |
2230 | 0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb, |
2231 | 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f, |
2232 | @@ -3499,7 +3499,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2233 | 0xf9, 0xdd, 0xcc, 0x69 }, |
2234 | .in_len = 67, |
2235 | .data_out = |
2236 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0x0c, 0xef, 0x82, |
2237 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0x0c, 0xef, 0x82, |
2238 | 0x59, 0x6b, 0x6b, 0x61, 0xbe, 0x54, 0x23, |
2239 | 0x7d, 0x29, 0x6d, 0xa7, 0xd2, 0xfa, 0x26, |
2240 | 0xcc, 0x1d, 0x18, 0x39, 0x99, 0xea, 0xac, |
2241 | @@ -3508,8 +3508,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2242 | 0x7a, 0x8a, 0xe5, 0x00, 0x35, 0x4d, 0x0e, |
2243 | 0x69, 0x9f, 0x4b, 0x72, 0x94, 0x8a, 0x25, |
2244 | 0x69, 0x43, 0x28, 0xdc, 0x40, 0x60, 0x4f, |
2245 | - 0x6c, 0xed, 0x6a, 0x50, 0xd5, 0x84, 0xf6, |
2246 | - 0x4c }, |
2247 | + 0x6c, 0xed, 0x6a, 0x50, 0x83, 0xf9, 0x22, |
2248 | + 0x24 }, |
2249 | .sn_size = 18, |
2250 | .hfn = 0x1, |
2251 | .hfn_threshold = 0xfa558, |
2252 | @@ -3536,7 +3536,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2253 | 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0, |
2254 | 0x31, 0x5f, 0x3a, 0x15 }, |
2255 | .data_in = |
2256 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
2257 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
2258 | 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88, |
2259 | 0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb, |
2260 | 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f, |
2261 | @@ -3548,7 +3548,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2262 | 0xf9, 0xdd, 0xcc, 0x69 }, |
2263 | .in_len = 67, |
2264 | .data_out = |
2265 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0x9b, 0x9c, 0xde, |
2266 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0x9b, 0x9c, 0xde, |
2267 | 0xa1, 0x69, 0x9b, 0x27, 0xd3, 0x38, 0x93, |
2268 | 0xf2, 0x12, 0xb1, 0xc6, 0x60, 0xac, 0xb7, |
2269 | 0xf2, 0x37, 0xf3, 0x72, 0xaf, 0x50, 0x9d, |
2270 | @@ -3557,8 +3557,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2271 | 0xbb, 0x15, 0xf3, 0x6a, 0x5d, 0x61, 0x12, |
2272 | 0x6e, 0x6d, 0x1b, 0x92, 0xd8, 0x42, 0x60, |
2273 | 0x3e, 0x1f, 0xe0, 0x6c, 0x28, 0x89, 0xf7, |
2274 | - 0x0c, 0x61, 0x76, 0xdc, 0x55, 0x3f, 0x0f, |
2275 | - 0x03 }, |
2276 | + 0x0c, 0x61, 0x76, 0xdc, 0xca, 0x21, 0x3e, |
2277 | + 0xd3 }, |
2278 | .sn_size = 18, |
2279 | .hfn = 0x1, |
2280 | .hfn_threshold = 0xfa558, |
2281 | @@ -3585,7 +3585,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2282 | 0x4b, 0x32, 0x87, 0xf9, 0xdb, 0xe0, |
2283 | 0x31, 0x5f, 0x3a, 0x15 }, |
2284 | .data_in = |
2285 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
2286 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0xdb, 0x2d, 0x3f, |
2287 | 0x23, 0x82, 0x53, 0xfd, 0x37, 0xde, 0x88, |
2288 | 0x63, 0x08, 0x4f, 0xD3, 0x71, 0xfb, 0xeb, |
2289 | 0x35, 0xf3, 0x64, 0xd3, 0x5e, 0xaf, 0x3f, |
2290 | @@ -3597,7 +3597,7 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2291 | 0xf9, 0xdd, 0xcc, 0x69 }, |
2292 | .in_len = 67, |
2293 | .data_out = |
2294 | - (uint8_t[]){ 0xf8, 0x00, 0x00, 0xf8, 0x0c, 0xef, 0x82, |
2295 | + (uint8_t[]){ 0x80, 0x00, 0x00, 0xf8, 0x0c, 0xef, 0x82, |
2296 | 0x59, 0x6b, 0x6b, 0x61, 0xbe, 0x54, 0x23, |
2297 | 0x7d, 0x29, 0x6d, 0xa7, 0xd2, 0xfa, 0x26, |
2298 | 0xcc, 0x1d, 0x18, 0x39, 0x99, 0xea, 0xac, |
2299 | @@ -3606,8 +3606,8 @@ static const struct pdcp_sdap_test list_pdcp_sdap_tests[] = { |
2300 | 0x7a, 0x8a, 0xe5, 0x00, 0x35, 0x4d, 0x0e, |
2301 | 0x69, 0x9f, 0x4b, 0x72, 0x94, 0x8a, 0x25, |
2302 | 0x69, 0x43, 0x28, 0xdc, 0x40, 0x60, 0x4f, |
2303 | - 0x6c, 0xed, 0x6a, 0x50, 0x03, 0x03, 0xb9, |
2304 | - 0xd5 }, |
2305 | + 0x6c, 0xed, 0x6a, 0x50, 0x2b, 0x88, 0xcf, |
2306 | + 0x48 }, |
2307 | .sn_size = 18, |
2308 | .hfn = 0x1, |
2309 | .hfn_threshold = 0xfa558, |
2310 | diff --git a/app/test/test_event_crypto_adapter.c b/app/test/test_event_crypto_adapter.c |
2311 | index 3d7e9fb..ea14094 100644 |
2312 | --- a/app/test/test_event_crypto_adapter.c |
2313 | +++ b/app/test/test_event_crypto_adapter.c |
2314 | @@ -523,11 +523,10 @@ configure_cryptodev(void) |
2315 | return TEST_FAILED; |
2316 | } |
2317 | |
2318 | - /* Create a NULL crypto device */ |
2319 | - nb_devs = rte_cryptodev_device_count_by_driver( |
2320 | - rte_cryptodev_driver_id_get( |
2321 | - RTE_STR(CRYPTODEV_NAME_NULL_PMD))); |
2322 | + |
2323 | + nb_devs = rte_cryptodev_count(); |
2324 | if (!nb_devs) { |
2325 | + /* Create a NULL crypto device */ |
2326 | ret = rte_vdev_init( |
2327 | RTE_STR(CRYPTODEV_NAME_NULL_PMD), NULL); |
2328 | |
2329 | diff --git a/app/test/test_event_timer_adapter.c b/app/test/test_event_timer_adapter.c |
2330 | index dfec499..3ded1c1 100644 |
2331 | --- a/app/test/test_event_timer_adapter.c |
2332 | +++ b/app/test/test_event_timer_adapter.c |
2333 | @@ -46,9 +46,10 @@ static uint64_t global_bkt_tck_ns; |
2334 | static uint64_t global_info_bkt_tck_ns; |
2335 | static volatile uint8_t arm_done; |
2336 | |
2337 | -#define CALC_TICKS(tks) \ |
2338 | - ceil((double)(tks * global_bkt_tck_ns) / global_info_bkt_tck_ns) |
2339 | +#define CALC_TICKS(tks) ceil((double)((tks) * global_bkt_tck_ns) / global_info_bkt_tck_ns) |
2340 | |
2341 | +/* Wait double timeout ticks for software and an extra tick for hardware */ |
2342 | +#define WAIT_TICKS(tks) (using_services ? 2 * (tks) : tks + 1) |
2343 | |
2344 | static bool using_services; |
2345 | static uint32_t test_lcore1; |
2346 | @@ -419,10 +420,31 @@ timdev_teardown(void) |
2347 | rte_mempool_free(eventdev_test_mempool); |
2348 | } |
2349 | |
2350 | +static inline uint16_t |
2351 | +timeout_event_dequeue(struct rte_event *evs, uint64_t nb_evs, uint64_t ticks) |
2352 | +{ |
2353 | + uint16_t ev_cnt = 0; |
2354 | + uint64_t end_cycle; |
2355 | + |
2356 | + if (using_services && nb_evs == MAX_TIMERS) |
2357 | + ticks = 2 * ticks; |
2358 | + |
2359 | + end_cycle = rte_rdtsc() + ticks * global_bkt_tck_ns * rte_get_tsc_hz() / 1E9; |
2360 | + |
2361 | + while (ev_cnt < nb_evs && rte_rdtsc() < end_cycle) { |
2362 | + ev_cnt += rte_event_dequeue_burst(evdev, TEST_PORT_ID, &evs[ev_cnt], nb_evs, 0); |
2363 | + rte_pause(); |
2364 | + } |
2365 | + |
2366 | + return ev_cnt; |
2367 | +} |
2368 | + |
2369 | static inline int |
2370 | test_timer_state(void) |
2371 | { |
2372 | struct rte_event_timer *ev_tim; |
2373 | + const uint64_t max_ticks = 100; |
2374 | + uint64_t ticks, wait_ticks; |
2375 | struct rte_event ev; |
2376 | const struct rte_event_timer tim = { |
2377 | .ev.op = RTE_EVENT_OP_NEW, |
2378 | @@ -433,11 +455,10 @@ test_timer_state(void) |
2379 | .state = RTE_EVENT_TIMER_NOT_ARMED, |
2380 | }; |
2381 | |
2382 | - |
2383 | rte_mempool_get(eventdev_test_mempool, (void **)&ev_tim); |
2384 | *ev_tim = tim; |
2385 | ev_tim->ev.event_ptr = ev_tim; |
2386 | - ev_tim->timeout_ticks = CALC_TICKS(120); |
2387 | + ev_tim->timeout_ticks = CALC_TICKS(max_ticks + 20); |
2388 | |
2389 | TEST_ASSERT_EQUAL(rte_event_timer_arm_burst(timdev, &ev_tim, 1), 0, |
2390 | "Armed timer exceeding max_timeout."); |
2391 | @@ -445,8 +466,9 @@ test_timer_state(void) |
2392 | "Improper timer state set expected %d returned %d", |
2393 | RTE_EVENT_TIMER_ERROR_TOOLATE, ev_tim->state); |
2394 | |
2395 | + ticks = 10; |
2396 | ev_tim->state = RTE_EVENT_TIMER_NOT_ARMED; |
2397 | - ev_tim->timeout_ticks = CALC_TICKS(10); |
2398 | + ev_tim->timeout_ticks = CALC_TICKS(ticks); |
2399 | |
2400 | TEST_ASSERT_EQUAL(rte_event_timer_arm_burst(timdev, &ev_tim, 1), 1, |
2401 | "Failed to arm timer with proper timeout."); |
2402 | @@ -455,14 +477,15 @@ test_timer_state(void) |
2403 | RTE_EVENT_TIMER_ARMED, ev_tim->state); |
2404 | |
2405 | if (!using_services) |
2406 | - rte_delay_us(20); |
2407 | + wait_ticks = 2 * ticks; |
2408 | else |
2409 | - rte_delay_us(1000 + 200); |
2410 | - TEST_ASSERT_EQUAL(rte_event_dequeue_burst(evdev, 0, &ev, 1, 0), 1, |
2411 | - "Armed timer failed to trigger."); |
2412 | + wait_ticks = ticks; |
2413 | + |
2414 | + TEST_ASSERT_EQUAL(timeout_event_dequeue(&ev, 1, WAIT_TICKS(wait_ticks)), 1, |
2415 | + "Armed timer failed to trigger."); |
2416 | |
2417 | ev_tim->state = RTE_EVENT_TIMER_NOT_ARMED; |
2418 | - ev_tim->timeout_ticks = CALC_TICKS(90); |
2419 | + ev_tim->timeout_ticks = CALC_TICKS(max_ticks - 10); |
2420 | TEST_ASSERT_EQUAL(rte_event_timer_arm_burst(timdev, &ev_tim, 1), 1, |
2421 | "Failed to arm timer with proper timeout."); |
2422 | TEST_ASSERT_EQUAL(rte_event_timer_cancel_burst(timdev, &ev_tim, 1), |
2423 | @@ -1164,8 +1187,9 @@ stat_inc_reset_ev_enq(void) |
2424 | int ret, i, n; |
2425 | int num_evtims = MAX_TIMERS; |
2426 | struct rte_event_timer *evtims[num_evtims]; |
2427 | - struct rte_event evs[BATCH_SIZE]; |
2428 | + struct rte_event evs[num_evtims]; |
2429 | struct rte_event_timer_adapter_stats stats; |
2430 | + uint64_t ticks = 5; |
2431 | const struct rte_event_timer init_tim = { |
2432 | .ev.op = RTE_EVENT_OP_NEW, |
2433 | .ev.queue_id = TEST_QUEUE_ID, |
2434 | @@ -1173,7 +1197,7 @@ stat_inc_reset_ev_enq(void) |
2435 | .ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL, |
2436 | .ev.event_type = RTE_EVENT_TYPE_TIMER, |
2437 | .state = RTE_EVENT_TIMER_NOT_ARMED, |
2438 | - .timeout_ticks = CALC_TICKS(5), // expire in .5 sec |
2439 | + .timeout_ticks = CALC_TICKS(ticks), /**< expire in .5 sec */ |
2440 | }; |
2441 | |
2442 | ret = rte_mempool_get_bulk(eventdev_test_mempool, (void **)evtims, |
2443 | @@ -1198,31 +1222,12 @@ stat_inc_reset_ev_enq(void) |
2444 | "succeeded = %d, rte_errno = %s", |
2445 | num_evtims, ret, rte_strerror(rte_errno)); |
2446 | |
2447 | - rte_delay_ms(1000); |
2448 | - |
2449 | -#define MAX_TRIES num_evtims |
2450 | - int sum = 0; |
2451 | - int tries = 0; |
2452 | - bool done = false; |
2453 | - while (!done) { |
2454 | - sum += rte_event_dequeue_burst(evdev, TEST_PORT_ID, evs, |
2455 | - RTE_DIM(evs), 10); |
2456 | - if (sum >= num_evtims || ++tries >= MAX_TRIES) |
2457 | - done = true; |
2458 | - |
2459 | - rte_delay_ms(10); |
2460 | - } |
2461 | - |
2462 | - TEST_ASSERT_EQUAL(sum, num_evtims, "Expected %d timer expiry events, " |
2463 | - "got %d", num_evtims, sum); |
2464 | - |
2465 | - TEST_ASSERT(tries < MAX_TRIES, "Exceeded max tries"); |
2466 | - |
2467 | - rte_delay_ms(100); |
2468 | + n = timeout_event_dequeue(evs, RTE_DIM(evs), WAIT_TICKS(ticks)); |
2469 | + TEST_ASSERT_EQUAL(n, num_evtims, "Expected %d timer expiry events, got %d", |
2470 | + num_evtims, n); |
2471 | |
2472 | /* Make sure the eventdev is still empty */ |
2473 | - n = rte_event_dequeue_burst(evdev, TEST_PORT_ID, evs, RTE_DIM(evs), |
2474 | - 10); |
2475 | + n = timeout_event_dequeue(evs, 1, WAIT_TICKS(1)); |
2476 | |
2477 | TEST_ASSERT_EQUAL(n, 0, "Dequeued unexpected number of timer expiry " |
2478 | "events from event device"); |
2479 | @@ -1259,6 +1264,7 @@ event_timer_arm(void) |
2480 | struct rte_event_timer_adapter *adapter = timdev; |
2481 | struct rte_event_timer *evtim = NULL; |
2482 | struct rte_event evs[BATCH_SIZE]; |
2483 | + uint64_t ticks = 5; |
2484 | const struct rte_event_timer init_tim = { |
2485 | .ev.op = RTE_EVENT_OP_NEW, |
2486 | .ev.queue_id = TEST_QUEUE_ID, |
2487 | @@ -1266,7 +1272,7 @@ event_timer_arm(void) |
2488 | .ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL, |
2489 | .ev.event_type = RTE_EVENT_TYPE_TIMER, |
2490 | .state = RTE_EVENT_TIMER_NOT_ARMED, |
2491 | - .timeout_ticks = CALC_TICKS(5), // expire in .5 sec |
2492 | + .timeout_ticks = CALC_TICKS(ticks), /**< expire in .5 sec */ |
2493 | }; |
2494 | |
2495 | rte_mempool_get(eventdev_test_mempool, (void **)&evtim); |
2496 | @@ -1293,10 +1299,7 @@ event_timer_arm(void) |
2497 | TEST_ASSERT_EQUAL(rte_errno, EALREADY, "Unexpected rte_errno value " |
2498 | "after arming already armed timer"); |
2499 | |
2500 | - /* Let timer expire */ |
2501 | - rte_delay_ms(1000); |
2502 | - |
2503 | - n = rte_event_dequeue_burst(evdev, TEST_PORT_ID, evs, RTE_DIM(evs), 0); |
2504 | + n = timeout_event_dequeue(evs, RTE_DIM(evs), WAIT_TICKS(ticks)); |
2505 | TEST_ASSERT_EQUAL(n, 1, "Failed to dequeue expected number of expiry " |
2506 | "events from event device"); |
2507 | |
2508 | @@ -1316,6 +1319,7 @@ event_timer_arm_double(void) |
2509 | struct rte_event_timer_adapter *adapter = timdev; |
2510 | struct rte_event_timer *evtim = NULL; |
2511 | struct rte_event evs[BATCH_SIZE]; |
2512 | + uint64_t ticks = 5; |
2513 | const struct rte_event_timer init_tim = { |
2514 | .ev.op = RTE_EVENT_OP_NEW, |
2515 | .ev.queue_id = TEST_QUEUE_ID, |
2516 | @@ -1323,7 +1327,7 @@ event_timer_arm_double(void) |
2517 | .ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL, |
2518 | .ev.event_type = RTE_EVENT_TYPE_TIMER, |
2519 | .state = RTE_EVENT_TIMER_NOT_ARMED, |
2520 | - .timeout_ticks = CALC_TICKS(5), // expire in .5 sec |
2521 | + .timeout_ticks = CALC_TICKS(ticks), /**< expire in .5 sec */ |
2522 | }; |
2523 | |
2524 | rte_mempool_get(eventdev_test_mempool, (void **)&evtim); |
2525 | @@ -1343,10 +1347,7 @@ event_timer_arm_double(void) |
2526 | TEST_ASSERT_EQUAL(rte_errno, EALREADY, "Unexpected rte_errno value " |
2527 | "after double-arm"); |
2528 | |
2529 | - /* Let timer expire */ |
2530 | - rte_delay_ms(600); |
2531 | - |
2532 | - n = rte_event_dequeue_burst(evdev, TEST_PORT_ID, evs, RTE_DIM(evs), 0); |
2533 | + n = timeout_event_dequeue(evs, RTE_DIM(evs), WAIT_TICKS(ticks)); |
2534 | TEST_ASSERT_EQUAL(n, 1, "Dequeued incorrect number of expiry events - " |
2535 | "expected: 1, actual: %d", n); |
2536 | |
2537 | @@ -1373,6 +1374,7 @@ event_timer_arm_expiry(void) |
2538 | .ev.event_type = RTE_EVENT_TYPE_TIMER, |
2539 | .state = RTE_EVENT_TIMER_NOT_ARMED, |
2540 | }; |
2541 | + uint64_t ticks = 30; |
2542 | |
2543 | rte_mempool_get(eventdev_test_mempool, (void **)&evtim); |
2544 | if (evtim == NULL) { |
2545 | @@ -1382,7 +1384,7 @@ event_timer_arm_expiry(void) |
2546 | |
2547 | /* Set up an event timer */ |
2548 | *evtim = init_tim; |
2549 | - evtim->timeout_ticks = CALC_TICKS(30), // expire in 3 secs |
2550 | + evtim->timeout_ticks = CALC_TICKS(ticks); /**< expire in 3 secs */ |
2551 | evtim->ev.event_ptr = evtim; |
2552 | |
2553 | ret = rte_event_timer_arm_burst(adapter, &evtim, 1); |
2554 | @@ -1391,17 +1393,10 @@ event_timer_arm_expiry(void) |
2555 | TEST_ASSERT_EQUAL(evtim->state, RTE_EVENT_TIMER_ARMED, "Event " |
2556 | "timer in incorrect state"); |
2557 | |
2558 | - rte_delay_ms(2999); |
2559 | - |
2560 | - n = rte_event_dequeue_burst(evdev, TEST_PORT_ID, evs, RTE_DIM(evs), 0); |
2561 | + n = timeout_event_dequeue(evs, RTE_DIM(evs), ticks - 1); |
2562 | TEST_ASSERT_EQUAL(n, 0, "Dequeued unexpected timer expiry event"); |
2563 | |
2564 | - /* Delay 100 ms to account for the adapter tick window - should let us |
2565 | - * dequeue one event |
2566 | - */ |
2567 | - rte_delay_ms(100); |
2568 | - |
2569 | - n = rte_event_dequeue_burst(evdev, TEST_PORT_ID, evs, RTE_DIM(evs), 0); |
2570 | + n = timeout_event_dequeue(evs, RTE_DIM(evs), WAIT_TICKS(1)); |
2571 | TEST_ASSERT_EQUAL(n, 1, "Dequeued incorrect number (%d) of timer " |
2572 | "expiry events", n); |
2573 | TEST_ASSERT_EQUAL(evs[0].event_type, RTE_EVENT_TYPE_TIMER, |
2574 | @@ -1433,6 +1428,7 @@ event_timer_arm_rearm(void) |
2575 | .ev.event_type = RTE_EVENT_TYPE_TIMER, |
2576 | .state = RTE_EVENT_TIMER_NOT_ARMED, |
2577 | }; |
2578 | + uint64_t ticks = 1; |
2579 | |
2580 | rte_mempool_get(eventdev_test_mempool, (void **)&evtim); |
2581 | if (evtim == NULL) { |
2582 | @@ -1442,7 +1438,7 @@ event_timer_arm_rearm(void) |
2583 | |
2584 | /* Set up a timer */ |
2585 | *evtim = init_tim; |
2586 | - evtim->timeout_ticks = CALC_TICKS(1); // expire in 0.1 sec |
2587 | + evtim->timeout_ticks = CALC_TICKS(ticks); /**< expire in 0.1 sec */ |
2588 | evtim->ev.event_ptr = evtim; |
2589 | |
2590 | /* Arm it */ |
2591 | @@ -1450,10 +1446,7 @@ event_timer_arm_rearm(void) |
2592 | TEST_ASSERT_EQUAL(ret, 1, "Failed to arm event timer: %s\n", |
2593 | rte_strerror(rte_errno)); |
2594 | |
2595 | - /* Add 100ms to account for the adapter tick window */ |
2596 | - rte_delay_ms(100 + 100); |
2597 | - |
2598 | - n = rte_event_dequeue_burst(evdev, TEST_PORT_ID, evs, RTE_DIM(evs), 0); |
2599 | + n = timeout_event_dequeue(evs, RTE_DIM(evs), WAIT_TICKS(ticks)); |
2600 | TEST_ASSERT_EQUAL(n, 1, "Failed to dequeue expected number of expiry " |
2601 | "events from event device"); |
2602 | |
2603 | @@ -1470,10 +1463,7 @@ event_timer_arm_rearm(void) |
2604 | TEST_ASSERT_EQUAL(ret, 1, "Failed to arm event timer: %s\n", |
2605 | rte_strerror(rte_errno)); |
2606 | |
2607 | - /* Add 100ms to account for the adapter tick window */ |
2608 | - rte_delay_ms(100 + 100); |
2609 | - |
2610 | - n = rte_event_dequeue_burst(evdev, TEST_PORT_ID, evs, RTE_DIM(evs), 0); |
2611 | + n = timeout_event_dequeue(evs, RTE_DIM(evs), WAIT_TICKS(ticks)); |
2612 | TEST_ASSERT_EQUAL(n, 1, "Failed to dequeue expected number of expiry " |
2613 | "events from event device"); |
2614 | |
2615 | @@ -1495,7 +1485,8 @@ event_timer_arm_max(void) |
2616 | int ret, i, n; |
2617 | int num_evtims = MAX_TIMERS; |
2618 | struct rte_event_timer *evtims[num_evtims]; |
2619 | - struct rte_event evs[BATCH_SIZE]; |
2620 | + struct rte_event evs[num_evtims]; |
2621 | + uint64_t ticks = 5; |
2622 | const struct rte_event_timer init_tim = { |
2623 | .ev.op = RTE_EVENT_OP_NEW, |
2624 | .ev.queue_id = TEST_QUEUE_ID, |
2625 | @@ -1503,7 +1494,7 @@ event_timer_arm_max(void) |
2626 | .ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL, |
2627 | .ev.event_type = RTE_EVENT_TYPE_TIMER, |
2628 | .state = RTE_EVENT_TIMER_NOT_ARMED, |
2629 | - .timeout_ticks = CALC_TICKS(5), // expire in .5 sec |
2630 | + .timeout_ticks = CALC_TICKS(ticks), /**< expire in .5 sec */ |
2631 | }; |
2632 | |
2633 | ret = rte_mempool_get_bulk(eventdev_test_mempool, (void **)evtims, |
2634 | @@ -1523,31 +1514,12 @@ event_timer_arm_max(void) |
2635 | "succeeded = %d, rte_errno = %s", |
2636 | num_evtims, ret, rte_strerror(rte_errno)); |
2637 | |
2638 | - rte_delay_ms(1000); |
2639 | - |
2640 | -#define MAX_TRIES num_evtims |
2641 | - int sum = 0; |
2642 | - int tries = 0; |
2643 | - bool done = false; |
2644 | - while (!done) { |
2645 | - sum += rte_event_dequeue_burst(evdev, TEST_PORT_ID, evs, |
2646 | - RTE_DIM(evs), 10); |
2647 | - if (sum >= num_evtims || ++tries >= MAX_TRIES) |
2648 | - done = true; |
2649 | - |
2650 | - rte_delay_ms(10); |
2651 | - } |
2652 | - |
2653 | - TEST_ASSERT_EQUAL(sum, num_evtims, "Expected %d timer expiry events, " |
2654 | - "got %d", num_evtims, sum); |
2655 | - |
2656 | - TEST_ASSERT(tries < MAX_TRIES, "Exceeded max tries"); |
2657 | - |
2658 | - rte_delay_ms(100); |
2659 | + n = timeout_event_dequeue(evs, RTE_DIM(evs), WAIT_TICKS(ticks)); |
2660 | + TEST_ASSERT_EQUAL(n, num_evtims, "Expected %d timer expiry events, got %d", |
2661 | + num_evtims, n); |
2662 | |
2663 | /* Make sure the eventdev is still empty */ |
2664 | - n = rte_event_dequeue_burst(evdev, TEST_PORT_ID, evs, RTE_DIM(evs), |
2665 | - 10); |
2666 | + n = timeout_event_dequeue(evs, 1, WAIT_TICKS(1)); |
2667 | |
2668 | TEST_ASSERT_EQUAL(n, 0, "Dequeued unexpected number of timer expiry " |
2669 | "events from event device"); |
2670 | @@ -1667,6 +1639,7 @@ event_timer_cancel(void) |
2671 | .ev.event_type = RTE_EVENT_TYPE_TIMER, |
2672 | .state = RTE_EVENT_TIMER_NOT_ARMED, |
2673 | }; |
2674 | + uint64_t ticks = 30; |
2675 | |
2676 | rte_mempool_get(eventdev_test_mempool, (void **)&evtim); |
2677 | if (evtim == NULL) { |
2678 | @@ -1684,7 +1657,7 @@ event_timer_cancel(void) |
2679 | /* Set up a timer */ |
2680 | *evtim = init_tim; |
2681 | evtim->ev.event_ptr = evtim; |
2682 | - evtim->timeout_ticks = CALC_TICKS(30); // expire in 3 sec |
2683 | + evtim->timeout_ticks = CALC_TICKS(ticks); /**< expire in 3 sec */ |
2684 | |
2685 | /* Check that cancelling an inited but unarmed timer fails */ |
2686 | ret = rte_event_timer_cancel_burst(adapter, &evtim, 1); |
2687 | @@ -1708,10 +1681,8 @@ event_timer_cancel(void) |
2688 | TEST_ASSERT_EQUAL(evtim->state, RTE_EVENT_TIMER_CANCELED, |
2689 | "evtim in incorrect state"); |
2690 | |
2691 | - rte_delay_ms(3000); |
2692 | - |
2693 | /* Make sure that no expiry event was generated */ |
2694 | - n = rte_event_dequeue_burst(evdev, TEST_PORT_ID, evs, RTE_DIM(evs), 0); |
2695 | + n = timeout_event_dequeue(evs, RTE_DIM(evs), WAIT_TICKS(ticks)); |
2696 | TEST_ASSERT_EQUAL(n, 0, "Dequeued unexpected timer expiry event\n"); |
2697 | |
2698 | rte_mempool_put(eventdev_test_mempool, evtim); |
2699 | @@ -1734,8 +1705,8 @@ event_timer_cancel_double(void) |
2700 | .ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL, |
2701 | .ev.event_type = RTE_EVENT_TYPE_TIMER, |
2702 | .state = RTE_EVENT_TIMER_NOT_ARMED, |
2703 | - .timeout_ticks = CALC_TICKS(5), // expire in .5 sec |
2704 | }; |
2705 | + uint64_t ticks = 30; |
2706 | |
2707 | rte_mempool_get(eventdev_test_mempool, (void **)&evtim); |
2708 | if (evtim == NULL) { |
2709 | @@ -1746,7 +1717,7 @@ event_timer_cancel_double(void) |
2710 | /* Set up a timer */ |
2711 | *evtim = init_tim; |
2712 | evtim->ev.event_ptr = evtim; |
2713 | - evtim->timeout_ticks = CALC_TICKS(30); // expire in 3 sec |
2714 | + evtim->timeout_ticks = CALC_TICKS(ticks); /**< expire in 3 sec */ |
2715 | |
2716 | ret = rte_event_timer_arm_burst(adapter, &evtim, 1); |
2717 | TEST_ASSERT_EQUAL(ret, 1, "Failed to arm event timer: %s\n", |
2718 | @@ -1768,10 +1739,8 @@ event_timer_cancel_double(void) |
2719 | TEST_ASSERT_EQUAL(rte_errno, EALREADY, "Unexpected rte_errno value " |
2720 | "after double-cancel: rte_errno = %d", rte_errno); |
2721 | |
2722 | - rte_delay_ms(3000); |
2723 | - |
2724 | /* Still make sure that no expiry event was generated */ |
2725 | - n = rte_event_dequeue_burst(evdev, TEST_PORT_ID, evs, RTE_DIM(evs), 0); |
2726 | + n = timeout_event_dequeue(evs, RTE_DIM(evs), WAIT_TICKS(ticks)); |
2727 | TEST_ASSERT_EQUAL(n, 0, "Dequeued unexpected timer expiry event\n"); |
2728 | |
2729 | rte_mempool_put(eventdev_test_mempool, evtim); |
2730 | diff --git a/app/test/test_hash_readwrite.c b/app/test/test_hash_readwrite.c |
2731 | index 9b192f2..1ed6154 100644 |
2732 | --- a/app/test/test_hash_readwrite.c |
2733 | +++ b/app/test/test_hash_readwrite.c |
2734 | @@ -162,7 +162,7 @@ init_params(int use_ext, int use_htm, int rw_lf, int use_jhash) |
2735 | |
2736 | handle = rte_hash_create(&hash_params); |
2737 | if (handle == NULL) { |
2738 | - printf("hash creation failed"); |
2739 | + printf("hash creation failed\n"); |
2740 | return -1; |
2741 | } |
2742 | |
2743 | diff --git a/app/test/test_link_bonding.c b/app/test/test_link_bonding.c |
2744 | index 12c50ef..0d5cfd4 100644 |
2745 | --- a/app/test/test_link_bonding.c |
2746 | +++ b/app/test/test_link_bonding.c |
2747 | @@ -2,7 +2,7 @@ |
2748 | * Copyright(c) 2010-2014 Intel Corporation |
2749 | */ |
2750 | |
2751 | -#include "unistd.h" |
2752 | +#include <unistd.h> |
2753 | #include <string.h> |
2754 | #include <stdarg.h> |
2755 | #include <stdio.h> |
2756 | @@ -448,7 +448,8 @@ test_add_already_bonded_slave_to_bonded_device(void) |
2757 | uint16_t slaves[RTE_MAX_ETHPORTS]; |
2758 | char pmd_name[RTE_ETH_NAME_MAX_LEN]; |
2759 | |
2760 | - test_add_slave_to_bonded_device(); |
2761 | + TEST_ASSERT_SUCCESS(test_add_slave_to_bonded_device(), |
2762 | + "Failed to add slave to bonded device"); |
2763 | |
2764 | current_slave_count = rte_eth_bond_slaves_get(test_params->bonded_port_id, |
2765 | slaves, RTE_MAX_ETHPORTS); |
2766 | diff --git a/app/test/test_link_bonding_mode4.c b/app/test/test_link_bonding_mode4.c |
2767 | index 351129d..6eb2620 100644 |
2768 | --- a/app/test/test_link_bonding_mode4.c |
2769 | +++ b/app/test/test_link_bonding_mode4.c |
2770 | @@ -643,8 +643,7 @@ bond_handshake(void) |
2771 | /* If response didn't send - report failure */ |
2772 | TEST_ASSERT_EQUAL(all_slaves_done, 1, "Bond handshake failed\n"); |
2773 | |
2774 | - /* If flags doesn't match - report failure */ |
2775 | - return all_slaves_done == 1 ? TEST_SUCCESS : TEST_FAILED; |
2776 | + return TEST_SUCCESS; |
2777 | } |
2778 | |
2779 | #define TEST_LACP_SLAVE_COUT RTE_DIM(test_params.slave_ports) |
2780 | diff --git a/app/test/test_link_bonding_rssconf.c b/app/test/test_link_bonding_rssconf.c |
2781 | index b3d71c6..6eb473b 100644 |
2782 | --- a/app/test/test_link_bonding_rssconf.c |
2783 | +++ b/app/test/test_link_bonding_rssconf.c |
2784 | @@ -326,7 +326,7 @@ test_propagate(void) |
2785 | uint8_t n; |
2786 | struct slave_conf *port; |
2787 | uint8_t bond_rss_key[40]; |
2788 | - struct rte_eth_rss_conf bond_rss_conf; |
2789 | + struct rte_eth_rss_conf bond_rss_conf = {0}; |
2790 | |
2791 | int retval = 0; |
2792 | uint64_t rss_hf = 0; |
2793 | diff --git a/app/test/test_malloc.c b/app/test/test_malloc.c |
2794 | index 6d9249f..9008038 100644 |
2795 | --- a/app/test/test_malloc.c |
2796 | +++ b/app/test/test_malloc.c |
2797 | @@ -301,11 +301,11 @@ test_multi_alloc_statistics(void) |
2798 | rte_malloc_get_socket_stats(socket,&post_stats); |
2799 | /* Check statistics reported are correct */ |
2800 | /* All post stats should be equal to pre stats after alloc freed */ |
2801 | - if ((post_stats.heap_totalsz_bytes != pre_stats.heap_totalsz_bytes) && |
2802 | - (post_stats.heap_freesz_bytes!=pre_stats.heap_freesz_bytes) && |
2803 | - (post_stats.heap_allocsz_bytes!=pre_stats.heap_allocsz_bytes)&& |
2804 | - (post_stats.alloc_count!=pre_stats.alloc_count)&& |
2805 | - (post_stats.free_count!=pre_stats.free_count)) { |
2806 | + if ((post_stats.heap_totalsz_bytes != pre_stats.heap_totalsz_bytes) || |
2807 | + (post_stats.heap_freesz_bytes != pre_stats.heap_freesz_bytes) || |
2808 | + (post_stats.heap_allocsz_bytes != pre_stats.heap_allocsz_bytes) || |
2809 | + (post_stats.alloc_count != pre_stats.alloc_count) || |
2810 | + (post_stats.free_count != pre_stats.free_count)) { |
2811 | printf("Malloc statistics are incorrect - freed alloc\n"); |
2812 | return -1; |
2813 | } |
2814 | @@ -362,11 +362,11 @@ test_multi_alloc_statistics(void) |
2815 | return -1; |
2816 | } |
2817 | |
2818 | - if ((post_stats.heap_totalsz_bytes != pre_stats.heap_totalsz_bytes) && |
2819 | - (post_stats.heap_freesz_bytes!=pre_stats.heap_freesz_bytes) && |
2820 | - (post_stats.heap_allocsz_bytes!=pre_stats.heap_allocsz_bytes)&& |
2821 | - (post_stats.alloc_count!=pre_stats.alloc_count)&& |
2822 | - (post_stats.free_count!=pre_stats.free_count)) { |
2823 | + if ((post_stats.heap_totalsz_bytes != pre_stats.heap_totalsz_bytes) || |
2824 | + (post_stats.heap_freesz_bytes != pre_stats.heap_freesz_bytes) || |
2825 | + (post_stats.heap_allocsz_bytes != pre_stats.heap_allocsz_bytes) || |
2826 | + (post_stats.alloc_count != pre_stats.alloc_count) || |
2827 | + (post_stats.free_count != pre_stats.free_count)) { |
2828 | printf("Malloc statistics are incorrect - freed alloc\n"); |
2829 | return -1; |
2830 | } |
2831 | @@ -927,6 +927,7 @@ test_alloc_single_socket(int32_t socket) |
2832 | if (mem == NULL) |
2833 | return -1; |
2834 | if (addr_to_socket(mem) != desired_socket) { |
2835 | + rte_free(mem); |
2836 | return -1; |
2837 | } |
2838 | rte_free(mem); |
2839 | diff --git a/app/test/test_mbuf.c b/app/test/test_mbuf.c |
2840 | index 2287bce..9c0ac63 100644 |
2841 | --- a/app/test/test_mbuf.c |
2842 | +++ b/app/test/test_mbuf.c |
2843 | @@ -1172,37 +1172,16 @@ err: |
2844 | #endif |
2845 | } |
2846 | |
2847 | -#include <unistd.h> |
2848 | -#include <sys/resource.h> |
2849 | -#include <sys/time.h> |
2850 | -#include <sys/wait.h> |
2851 | - |
2852 | -/* use fork() to test mbuf errors panic */ |
2853 | -static int |
2854 | -verify_mbuf_check_panics(struct rte_mbuf *buf) |
2855 | +/* Verify if mbuf can pass the check */ |
2856 | +static bool |
2857 | +mbuf_check_pass(struct rte_mbuf *buf) |
2858 | { |
2859 | - int pid; |
2860 | - int status; |
2861 | - |
2862 | - pid = fork(); |
2863 | - |
2864 | - if (pid == 0) { |
2865 | - struct rlimit rl; |
2866 | + const char *reason; |
2867 | |
2868 | - /* No need to generate a coredump when panicking. */ |
2869 | - rl.rlim_cur = rl.rlim_max = 0; |
2870 | - setrlimit(RLIMIT_CORE, &rl); |
2871 | - rte_mbuf_sanity_check(buf, 1); /* should panic */ |
2872 | - exit(0); /* return normally if it doesn't panic */ |
2873 | - } else if (pid < 0) { |
2874 | - printf("Fork Failed\n"); |
2875 | - return -1; |
2876 | - } |
2877 | - wait(&status); |
2878 | - if(status == 0) |
2879 | - return -1; |
2880 | + if (rte_mbuf_check(buf, 1, &reason) == 0) |
2881 | + return true; |
2882 | |
2883 | - return 0; |
2884 | + return false; |
2885 | } |
2886 | |
2887 | static int |
2888 | @@ -1219,47 +1198,47 @@ test_failing_mbuf_sanity_check(struct rte_mempool *pktmbuf_pool) |
2889 | return -1; |
2890 | |
2891 | printf("Checking good mbuf initially\n"); |
2892 | - if (verify_mbuf_check_panics(buf) != -1) |
2893 | + if (!mbuf_check_pass(buf)) |
2894 | return -1; |
2895 | |
2896 | printf("Now checking for error conditions\n"); |
2897 | |
2898 | - if (verify_mbuf_check_panics(NULL)) { |
2899 | + if (mbuf_check_pass(NULL)) { |
2900 | printf("Error with NULL mbuf test\n"); |
2901 | return -1; |
2902 | } |
2903 | |
2904 | badbuf = *buf; |
2905 | badbuf.pool = NULL; |
2906 | - if (verify_mbuf_check_panics(&badbuf)) { |
2907 | + if (mbuf_check_pass(&badbuf)) { |
2908 | printf("Error with bad-pool mbuf test\n"); |
2909 | return -1; |
2910 | } |
2911 | |
2912 | badbuf = *buf; |
2913 | badbuf.buf_iova = 0; |
2914 | - if (verify_mbuf_check_panics(&badbuf)) { |
2915 | + if (mbuf_check_pass(&badbuf)) { |
2916 | printf("Error with bad-physaddr mbuf test\n"); |
2917 | return -1; |
2918 | } |
2919 | |
2920 | badbuf = *buf; |
2921 | badbuf.buf_addr = NULL; |
2922 | - if (verify_mbuf_check_panics(&badbuf)) { |
2923 | + if (mbuf_check_pass(&badbuf)) { |
2924 | printf("Error with bad-addr mbuf test\n"); |
2925 | return -1; |
2926 | } |
2927 | |
2928 | badbuf = *buf; |
2929 | badbuf.refcnt = 0; |
2930 | - if (verify_mbuf_check_panics(&badbuf)) { |
2931 | + if (mbuf_check_pass(&badbuf)) { |
2932 | printf("Error with bad-refcnt(0) mbuf test\n"); |
2933 | return -1; |
2934 | } |
2935 | |
2936 | badbuf = *buf; |
2937 | badbuf.refcnt = UINT16_MAX; |
2938 | - if (verify_mbuf_check_panics(&badbuf)) { |
2939 | + if (mbuf_check_pass(&badbuf)) { |
2940 | printf("Error with bad-refcnt(MAX) mbuf test\n"); |
2941 | return -1; |
2942 | } |
2943 | diff --git a/config/arm/meson.build b/config/arm/meson.build |
2944 | index 89a3bf4..4131d6e 100644 |
2945 | --- a/config/arm/meson.build |
2946 | +++ b/config/arm/meson.build |
2947 | @@ -44,7 +44,9 @@ implementer_generic = { |
2948 | }, |
2949 | 'generic_aarch32': { |
2950 | 'march': 'armv8-a', |
2951 | - 'compiler_options': ['-mfpu=neon'], |
2952 | + 'force_march': true, |
2953 | + 'march_features': ['simd'], |
2954 | + 'compiler_options': ['-mfpu=auto'], |
2955 | 'flags': [ |
2956 | ['RTE_ARCH_ARM_NEON_MEMCPY', false], |
2957 | ['RTE_ARCH_STRICT_ALIGN', true], |
2958 | @@ -535,21 +537,25 @@ if update_flags |
2959 | # probe supported archs and their features |
2960 | candidate_march = '' |
2961 | if part_number_config.has_key('march') |
2962 | - supported_marchs = ['armv8.6-a', 'armv8.5-a', 'armv8.4-a', 'armv8.3-a', |
2963 | - 'armv8.2-a', 'armv8.1-a', 'armv8-a'] |
2964 | - check_compiler_support = false |
2965 | - foreach supported_march: supported_marchs |
2966 | - if supported_march == part_number_config['march'] |
2967 | - # start checking from this version downwards |
2968 | - check_compiler_support = true |
2969 | - endif |
2970 | - if (check_compiler_support and |
2971 | - cc.has_argument('-march=' + supported_march)) |
2972 | - candidate_march = supported_march |
2973 | - # highest supported march version found |
2974 | - break |
2975 | - endif |
2976 | - endforeach |
2977 | + if part_number_config.get('force_march', false) |
2978 | + candidate_march = part_number_config['march'] |
2979 | + else |
2980 | + supported_marchs = ['armv8.6-a', 'armv8.5-a', 'armv8.4-a', 'armv8.3-a', |
2981 | + 'armv8.2-a', 'armv8.1-a', 'armv8-a'] |
2982 | + check_compiler_support = false |
2983 | + foreach supported_march: supported_marchs |
2984 | + if supported_march == part_number_config['march'] |
2985 | + # start checking from this version downwards |
2986 | + check_compiler_support = true |
2987 | + endif |
2988 | + if (check_compiler_support and |
2989 | + cc.has_argument('-march=' + supported_march)) |
2990 | + candidate_march = supported_march |
2991 | + # highest supported march version found |
2992 | + break |
2993 | + endif |
2994 | + endforeach |
2995 | + endif |
2996 | if candidate_march == '' |
2997 | error('No suitable armv8 march version found.') |
2998 | endif |
2999 | @@ -581,7 +587,7 @@ if update_flags |
3000 | # apply supported compiler options |
3001 | if part_number_config.has_key('compiler_options') |
3002 | foreach flag: part_number_config['compiler_options'] |
3003 | - if cc.has_argument(flag) |
3004 | + if cc.has_multi_arguments(machine_args + [flag]) |
3005 | machine_args += flag |
3006 | else |
3007 | warning('Configuration compiler option ' + |
3008 | diff --git a/debian/changelog b/debian/changelog |
3009 | index 59249b0..756eb1f 100644 |
3010 | --- a/debian/changelog |
3011 | +++ b/debian/changelog |
3012 | @@ -1,3 +1,16 @@ |
3013 | +dpdk (21.11.6-0ubuntu0.22.04.1) jammy; urgency=medium |
3014 | + |
3015 | + * Merge LTS stable release 21.11.6 (LP: #2040463) |
3016 | + - Full release notes are available at: |
3017 | + https://doc.dpdk.org/guides-21.11/rel_notes/release_21_11.html#id17 |
3018 | + * d/dpdk-dev.lintian-overrides: a pair of admin tools without manpages. |
3019 | + * Add new symbols: |
3020 | + - d/librte-eventdev22.symbols due to https://github.com/DPDK/dpdk-stable/commit/5a037544 |
3021 | + - d/librte-common-sfc-efx22.symbols due to https://github.com/DPDK/dpdk-stable/commit/cf1e1a8e |
3022 | + * d/p/disable_autopkgtest_fails.patch: Refresh. |
3023 | + |
3024 | + -- Miriam España Acebal <miriam.espana@canonical.com> Mon, 29 Jan 2024 13:52:29 +0100 |
3025 | + |
3026 | dpdk (21.11.4-0ubuntu0.22.04.1) jammy; urgency=medium |
3027 | |
3028 | * Merge LTS stable release 21.11.4 (LP: #2026351) |
3029 | diff --git a/debian/dpdk-dev.lintian-overrides b/debian/dpdk-dev.lintian-overrides |
3030 | index 76652f9..944f8e0 100644 |
3031 | --- a/debian/dpdk-dev.lintian-overrides |
3032 | +++ b/debian/dpdk-dev.lintian-overrides |
3033 | @@ -1,4 +1,5 @@ |
3034 | # admin only test tools, documentation only maintained on the web (if at all) by upstream |
3035 | +dpdk-dev: no-manual-page usr/bin/dpdk-dumpcap |
3036 | dpdk-dev: no-manual-page usr/bin/dpdk-pdump |
3037 | dpdk-dev: no-manual-page usr/bin/dpdk-proc-info |
3038 | dpdk-dev: no-manual-page usr/bin/dpdk-telemetry.py |
3039 | @@ -11,6 +12,7 @@ dpdk-dev: no-manual-page usr/bin/dpdk-test-crypto-perf |
3040 | dpdk-dev: no-manual-page usr/bin/dpdk-test-eventdev |
3041 | dpdk-dev: no-manual-page usr/bin/dpdk-test-fib |
3042 | dpdk-dev: no-manual-page usr/bin/dpdk-test-flow-perf |
3043 | +dpdk-dev: no-manual-page usr/bin/dpdk-test-gpudev |
3044 | dpdk-dev: no-manual-page usr/bin/dpdk-test-pipeline |
3045 | dpdk-dev: no-manual-page usr/bin/dpdk-test-regex |
3046 | dpdk-dev: no-manual-page usr/bin/dpdk-test-sad |
3047 | diff --git a/debian/librte-common-sfc-efx22.symbols b/debian/librte-common-sfc-efx22.symbols |
3048 | index b7aceb9..d3658af 100644 |
3049 | --- a/debian/librte-common-sfc-efx22.symbols |
3050 | +++ b/debian/librte-common-sfc-efx22.symbols |
3051 | @@ -78,6 +78,7 @@ librte_common_sfc_efx.so.22 librte-common-sfc-efx22 #MINVER# |
3052 | efx_mae_action_rule_insert@INTERNAL 20.11~rc3 |
3053 | efx_mae_action_rule_remove@INTERNAL 20.11~rc3 |
3054 | efx_mae_action_set_alloc@INTERNAL 20.11~rc3 |
3055 | + efx_mae_action_set_clear_fw_rsrc_ids@INTERNAL 21.11.6 |
3056 | efx_mae_action_set_fill_in_counter_id@INTERNAL 21.08 |
3057 | efx_mae_action_set_fill_in_dst_mac_id@INTERNAL 21.11 |
3058 | efx_mae_action_set_fill_in_eh_id@INTERNAL 21.08 |
3059 | diff --git a/debian/librte-eventdev22.symbols b/debian/librte-eventdev22.symbols |
3060 | index ccc6695..8800a84 100644 |
3061 | --- a/debian/librte-eventdev22.symbols |
3062 | +++ b/debian/librte-eventdev22.symbols |
3063 | @@ -50,6 +50,7 @@ librte_eventdev.so.22 librte-eventdev22 #MINVER# |
3064 | __rte_eventdev_trace_eth_tx_adapter_start@INTERNAL 21.11 |
3065 | #MISSING: 21.11 |
3066 | __rte_eventdev_trace_eth_tx_adapter_stop@INTERNAL 21.11 |
3067 | + __rte_eventdev_trace_maintain@EXPERIMENTAL 21.11.6 |
3068 | #MISSING: 21.11 |
3069 | __rte_eventdev_trace_port_link@INTERNAL 21.11 |
3070 | #MISSING: 21.11 |
3071 | diff --git a/debian/patches/disable_autopkgtest_fails.patch b/debian/patches/disable_autopkgtest_fails.patch |
3072 | index a4330f9..ee93d58 100644 |
3073 | --- a/debian/patches/disable_autopkgtest_fails.patch |
3074 | +++ b/debian/patches/disable_autopkgtest_fails.patch |
3075 | @@ -8,19 +8,19 @@ Author: Christian Ehrhardt <christian.ehrhardt@canonical.com> |
3076 | Last-Update: 2021-07-13 |
3077 | --- a/app/test/meson.build |
3078 | +++ b/app/test/meson.build |
3079 | -@@ -227,7 +227,7 @@ |
3080 | - ['fib6_autotest', true], |
3081 | +@@ -228,7 +228,7 @@ |
3082 | ['func_reentrancy_autotest', false], |
3083 | ['flow_classify_autotest', false], |
3084 | + ['graph_autotest', true], |
3085 | - ['hash_autotest', true], |
3086 | + ['hash_autotest', false], |
3087 | ['interrupt_autotest', true], |
3088 | ['ipfrag_autotest', false], |
3089 | ['lcores_autotest', true], |
3090 | -@@ -243,10 +243,10 @@ |
3091 | - ['memzone_autotest', false], |
3092 | +@@ -245,10 +245,10 @@ |
3093 | ['meter_autotest', true], |
3094 | ['multiprocess_autotest', false], |
3095 | + ['node_list_dump', true], |
3096 | - ['per_lcore_autotest', true], |
3097 | + ['per_lcore_autotest', false], |
3098 | ['pflock_autotest', true], |
3099 | diff --git a/doc/api/doxy-api.conf.in b/doc/api/doxy-api.conf.in |
3100 | index db2ca9b..591abe9 100644 |
3101 | --- a/doc/api/doxy-api.conf.in |
3102 | +++ b/doc/api/doxy-api.conf.in |
3103 | @@ -100,7 +100,6 @@ GENERATE_DEPRECATEDLIST = YES |
3104 | VERBATIM_HEADERS = NO |
3105 | ALPHABETICAL_INDEX = NO |
3106 | |
3107 | -HTML_TIMESTAMP = NO |
3108 | HTML_DYNAMIC_SECTIONS = YES |
3109 | SEARCHENGINE = YES |
3110 | SORT_MEMBER_DOCS = NO |
3111 | diff --git a/doc/guides/nics/features/iavf.ini b/doc/guides/nics/features/iavf.ini |
3112 | index c6694a1..3860f28 100644 |
3113 | --- a/doc/guides/nics/features/iavf.ini |
3114 | +++ b/doc/guides/nics/features/iavf.ini |
3115 | @@ -21,7 +21,7 @@ RSS key update = Y |
3116 | RSS reta update = Y |
3117 | VLAN filter = Y |
3118 | CRC offload = Y |
3119 | -VLAN offload = Y |
3120 | +VLAN offload = P |
3121 | L3 checksum offload = P |
3122 | L4 checksum offload = P |
3123 | Packet type parsing = Y |
3124 | diff --git a/doc/guides/nics/hns3.rst b/doc/guides/nics/hns3.rst |
3125 | index 791c9cc..3800246 100644 |
3126 | --- a/doc/guides/nics/hns3.rst |
3127 | +++ b/doc/guides/nics/hns3.rst |
3128 | @@ -30,7 +30,6 @@ Features of the HNS3 PMD are: |
3129 | - DCB |
3130 | - Scattered and gather for TX and RX |
3131 | - Vector Poll mode driver |
3132 | -- Dump register |
3133 | - SR-IOV VF |
3134 | - Multi-process |
3135 | - MAC/VLAN filter |
3136 | @@ -38,6 +37,15 @@ Features of the HNS3 PMD are: |
3137 | - NUMA support |
3138 | - Generic flow API |
3139 | - IEEE1588/802.1AS timestamping |
3140 | +- Basic stats |
3141 | +- Extended stats |
3142 | +- Traffic Management API |
3143 | +- Speed capabilities |
3144 | +- Link Auto-negotiation |
3145 | +- Link flow control |
3146 | +- Dump register |
3147 | +- Dump private info from device |
3148 | +- FW version |
3149 | |
3150 | Prerequisites |
3151 | ------------- |
3152 | @@ -58,7 +66,8 @@ The following options can be modified in the ``config/rte_config.h`` file. |
3153 | |
3154 | - ``RTE_LIBRTE_HNS3_MAX_TQP_NUM_PER_PF`` (default ``256``) |
3155 | |
3156 | - Number of MAX queues reserved for PF. |
3157 | + Number of MAX queues reserved for PF on HIP09 and HIP10. |
3158 | + The MAX queue number is also determined by the value the firmware report. |
3159 | |
3160 | Runtime Config Options |
3161 | ~~~~~~~~~~~~~~~~~~~~~~ |
3162 | @@ -81,7 +90,8 @@ Runtime Config Options |
3163 | ``common``. |
3164 | |
3165 | For example:: |
3166 | - -a 0000:7d:00.0,rx_func_hint=simple |
3167 | + |
3168 | + -a 0000:7d:00.0,rx_func_hint=simple |
3169 | |
3170 | - ``tx_func_hint`` (default ``none``) |
3171 | |
3172 | @@ -101,7 +111,8 @@ Runtime Config Options |
3173 | ``common``. |
3174 | |
3175 | For example:: |
3176 | - -a 0000:7d:00.0,tx_func_hint=common |
3177 | + |
3178 | + -a 0000:7d:00.0,tx_func_hint=common |
3179 | |
3180 | - ``dev_caps_mask`` (default ``0``) |
3181 | |
3182 | @@ -113,22 +124,25 @@ Runtime Config Options |
3183 | Its main purpose is to debug and avoid problems. |
3184 | |
3185 | For example:: |
3186 | - -a 0000:7d:00.0,dev_caps_mask=0xF |
3187 | + |
3188 | + -a 0000:7d:00.0,dev_caps_mask=0xF |
3189 | |
3190 | - ``mbx_time_limit_ms`` (default ``500``) |
3191 | - Used to define the mailbox time limit by user. |
3192 | - Current, the max waiting time for MBX response is 500ms, but in |
3193 | - some scenarios, it is not enough. Since it depends on the response |
3194 | - of the kernel mode driver, and its response time is related to the |
3195 | - scheduling of the system. In this special scenario, most of the |
3196 | - cores are isolated, and only a few cores are used for system |
3197 | - scheduling. When a large number of services are started, the |
3198 | - scheduling of the system will be very busy, and the reply of the |
3199 | - mbx message will time out, which will cause our PMD initialization |
3200 | - to fail. So provide access to set mailbox time limit for user. |
3201 | - |
3202 | - For example:: |
3203 | - -a 0000:7d:00.0,mbx_time_limit_ms=600 |
3204 | + |
3205 | + Used to define the mailbox time limit by user. |
3206 | + Current, the max waiting time for MBX response is 500ms, but in |
3207 | + some scenarios, it is not enough. Since it depends on the response |
3208 | + of the kernel mode driver, and its response time is related to the |
3209 | + scheduling of the system. In this special scenario, most of the |
3210 | + cores are isolated, and only a few cores are used for system |
3211 | + scheduling. When a large number of services are started, the |
3212 | + scheduling of the system will be very busy, and the reply of the |
3213 | + mbx message will time out, which will cause our PMD initialization |
3214 | + to fail. So provide access to set mailbox time limit for user. |
3215 | + |
3216 | + For example:: |
3217 | + |
3218 | + -a 0000:7d:00.0,mbx_time_limit_ms=600 |
3219 | |
3220 | Link status event Pre-conditions |
3221 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
3222 | @@ -137,7 +151,8 @@ Firmware 1.8.0.0 and later versions support reporting link changes to the PF. |
3223 | Therefore, to use the LSC for the PF driver, ensure that the firmware version |
3224 | also supports reporting link changes. |
3225 | If the VF driver needs to support LSC, special patch must be added: |
3226 | -`<https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/net/ethernet/hisilicon/hns3?h=next-20210428&id=18b6e31f8bf4ac7af7b057228f38a5a530378e4e>`_. |
3227 | +`<https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=18b6e31f8bf4ac7af7b057228f38a5a530378e4e>`_. |
3228 | + |
3229 | Note: The patch has been uploaded to 5.13 of the Linux kernel mainline. |
3230 | |
3231 | |
3232 | @@ -197,36 +212,50 @@ Generic flow API |
3233 | |
3234 | - ``RSS Flow`` |
3235 | |
3236 | - RSS Flow supports to set hash input set, hash function, enable hash |
3237 | - and configure queues. |
3238 | - For example: |
3239 | - Configure queues as queue 0, 1, 2, 3. |
3240 | + RSS Flow supports for creating rule base on input tuple, hash key, queues |
3241 | + and hash algorithm. But hash key, queues and hash algorithm are the global |
3242 | + configuration for hardware which will affect other rules. |
3243 | + The rule just setting input tuple is completely independent. |
3244 | + |
3245 | + Run ``testpmd``: |
3246 | |
3247 | .. code-block:: console |
3248 | |
3249 | - testpmd> flow create 0 ingress pattern end actions rss types end \ |
3250 | - queues 0 1 2 3 end / end |
3251 | + dpdk-testpmd -a 0000:7d:00.0 -l 10-18 -- -i --rxq=8 --txq=8 |
3252 | + |
3253 | + All IP packets can be distributed to 8 queues. |
3254 | |
3255 | - Enable hash and set input set for IPv4-TCP. |
3256 | + Set IPv4-TCP packet is distributed to 8 queues based on L3/L4 SRC only. |
3257 | |
3258 | .. code-block:: console |
3259 | |
3260 | - testpmd> flow create 0 ingress pattern eth / ipv4 / tcp / end \ |
3261 | - actions rss types ipv4-tcp l3-src-only end queues end / end |
3262 | + testpmd> flow create 0 ingress pattern eth / ipv4 / tcp / end actions \ |
3263 | + rss types ipv4-tcp l4-src-only l3-src-only end queues end / end |
3264 | |
3265 | - Set symmetric hash enable for flow type IPv4-TCP. |
3266 | + Disable IPv4 packet RSS hash. |
3267 | |
3268 | .. code-block:: console |
3269 | |
3270 | - testpmd> flow create 0 ingress pattern eth / ipv4 / tcp / end \ |
3271 | - actions rss types ipv4-tcp end queues end func symmetric_toeplitz / end |
3272 | + testpmd> flow create 0 ingress pattern eth / ipv4 / end actions rss \ |
3273 | + types none end queues end / end |
3274 | |
3275 | - Set hash function as simple xor. |
3276 | + Set hash function as symmetric Toeplitz. |
3277 | |
3278 | .. code-block:: console |
3279 | |
3280 | testpmd> flow create 0 ingress pattern end actions rss types end \ |
3281 | - queues end func simple_xor / end |
3282 | + queues end func symmetric_toeplitz / end |
3283 | + |
3284 | + In this case, all packets that enabled RSS are hashed using symmetric |
3285 | + Toeplitz algorithm. |
3286 | + |
3287 | + Flush all RSS rules |
3288 | + |
3289 | + .. code-block:: console |
3290 | + |
3291 | + testpmd> flow flush 0 |
3292 | + |
3293 | + The RSS configurations of hardwre is back to the one ethdev ops set. |
3294 | |
3295 | Statistics |
3296 | ---------- |
3297 | diff --git a/doc/guides/nics/i40e.rst b/doc/guides/nics/i40e.rst |
3298 | index aedb1af..9629afe 100644 |
3299 | --- a/doc/guides/nics/i40e.rst |
3300 | +++ b/doc/guides/nics/i40e.rst |
3301 | @@ -88,13 +88,16 @@ Windows Prerequisites |
3302 | - To load NetUIO driver, follow the steps mentioned in `dpdk-kmods repository |
3303 | <https://git.dpdk.org/dpdk-kmods/tree/windows/netuio/README.rst>`_. |
3304 | |
3305 | -Recommended Matching List |
3306 | -------------------------- |
3307 | - |
3308 | -It is highly recommended to upgrade the i40e kernel driver and firmware to |
3309 | -avoid the compatibility issues with i40e PMD. Here is the suggested matching |
3310 | -list which has been tested and verified. The detailed information can refer |
3311 | -to chapter Tested Platforms/Tested NICs in release notes. |
3312 | +Kernel driver and Firmware Matching List |
3313 | +---------------------------------------- |
3314 | + |
3315 | +It is highly recommended to upgrade the i40e kernel driver and firmware |
3316 | +to avoid the compatibility issues with i40e PMD. |
3317 | +The table below shows a summary of the DPDK versions |
3318 | +with corresponding out-of-tree Linux kernel drivers and firmware. |
3319 | +The full list of in-tree and out-of-tree Linux kernel drivers from kernel.org |
3320 | +and Linux distributions that were tested and verified |
3321 | +are listed in the Tested Platforms section of the Release Notes for each release. |
3322 | |
3323 | For X710/XL710/XXV710, |
3324 | |
3325 | diff --git a/doc/guides/nics/ice.rst b/doc/guides/nics/ice.rst |
3326 | index 6b903b9..569fd9d 100644 |
3327 | --- a/doc/guides/nics/ice.rst |
3328 | +++ b/doc/guides/nics/ice.rst |
3329 | @@ -41,13 +41,16 @@ Windows Prerequisites |
3330 | - Loading of private Dynamic Device Personalization (DDP) package is not supported on Windows. |
3331 | |
3332 | |
3333 | -Recommended Matching List |
3334 | -------------------------- |
3335 | +Kernel driver, DDP and Firmware Matching List |
3336 | +--------------------------------------------- |
3337 | |
3338 | It is highly recommended to upgrade the ice kernel driver, firmware and DDP package |
3339 | to avoid the compatibility issues with ice PMD. |
3340 | -Here is the suggested matching list which has been tested and verified. |
3341 | -The detailed information can refer to chapter Tested Platforms/Tested NICs in release notes. |
3342 | +The table below shows a summary of the DPDK versions |
3343 | +with corresponding out-of-tree Linux kernel drivers, DDP package and firmware. |
3344 | +The full list of in-tree and out-of-tree Linux kernel drivers from kernel.org |
3345 | +and Linux distributions that were tested and verified |
3346 | +are listed in the Tested Platforms section of the Release Notes for each release. |
3347 | |
3348 | +-----------+---------------+-----------------+-----------+--------------+-----------+ |
3349 | | DPDK | Kernel Driver | OS Default DDP | COMMS DDP | Wireless DDP | Firmware | |
3350 | diff --git a/doc/guides/nics/ixgbe.rst b/doc/guides/nics/ixgbe.rst |
3351 | index ad1a3da..1b7cc17 100644 |
3352 | --- a/doc/guides/nics/ixgbe.rst |
3353 | +++ b/doc/guides/nics/ixgbe.rst |
3354 | @@ -16,8 +16,6 @@ The wider register gives space to hold multiple packet buffers so as to save ins |
3355 | There is no change to PMD API. The RX/TX handler are the only two entries for vPMD packet I/O. |
3356 | They are transparently registered at runtime RX/TX execution if all condition checks pass. |
3357 | |
3358 | -1. To date, only an SSE version of IX GBE vPMD is available. |
3359 | - |
3360 | Some constraints apply as pre-conditions for specific optimizations on bulk packet transfers. |
3361 | The following sections explain RX and TX constraints in the vPMD. |
3362 | |
3363 | diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst |
3364 | index 593a71c..e2fb45b 100644 |
3365 | --- a/doc/guides/nics/mlx5.rst |
3366 | +++ b/doc/guides/nics/mlx5.rst |
3367 | @@ -426,8 +426,12 @@ Limitations |
3368 | encapsulation actions. |
3369 | - For NIC Rx flow, supports ``MARK``, ``COUNT``, ``QUEUE``, ``RSS`` in the |
3370 | sample actions list. |
3371 | - - For E-Switch mirroring flow, supports ``RAW ENCAP``, ``Port ID``, |
3372 | - ``VXLAN ENCAP``, ``NVGRE ENCAP`` in the sample actions list. |
3373 | + - For E-Switch mirroring flow, supports ``RAW_ENCAP``, ``PORT_ID``, |
3374 | + ``VXLAN_ENCAP``, ``NVGRE_ENCAP`` in the sample actions list. |
3375 | + - For E-Switch mirroring flow with sample ratio = 1, the ``ENCAP`` action |
3376 | + supports uplink port only. |
3377 | + - For E-Switch mirroring flow with sample ratio = 1, the ``PORT`` and ``JUMP`` actions |
3378 | + are not supported without presented ``ENCAP`` action in the sample actions list. |
3379 | - For ConnectX-5 trusted device, the application metadata with SET_TAG index 0 |
3380 | is not supported before ``RTE_FLOW_ACTION_TYPE_SAMPLE`` action. |
3381 | |
3382 | diff --git a/doc/guides/nics/tap.rst b/doc/guides/nics/tap.rst |
3383 | index 681010d..84ec805 100644 |
3384 | --- a/doc/guides/nics/tap.rst |
3385 | +++ b/doc/guides/nics/tap.rst |
3386 | @@ -34,14 +34,14 @@ Using the option ``mac=fixed`` you can create a fixed known MAC address:: |
3387 | |
3388 | The MAC address will have a fixed value with the last octet incrementing by one |
3389 | for each interface string containing ``mac=fixed``. The MAC address is formatted |
3390 | -as 00:'d':'t':'a':'p':[00-FF]. Convert the characters to hex and you get the |
3391 | -actual MAC address: ``00:64:74:61:70:[00-FF]``. |
3392 | +as 02:'d':'t':'a':'p':[00-FF]. Convert the characters to hex and you get the |
3393 | +actual MAC address: ``02:64:74:61:70:[00-FF]``. |
3394 | |
3395 | - --vdev=net_tap0,mac="00:64:74:61:70:11" |
3396 | + --vdev=net_tap0,mac="02:64:74:61:70:11" |
3397 | |
3398 | The MAC address will have a user value passed as string. The MAC address is in |
3399 | format with delimiter ``:``. The string is byte converted to hex and you get |
3400 | -the actual MAC address: ``00:64:74:61:70:11``. |
3401 | +the actual MAC address: ``02:64:74:61:70:11``. |
3402 | |
3403 | It is possible to specify a remote netdevice to capture packets from by adding |
3404 | ``remote=foo1``, for example:: |
3405 | diff --git a/doc/guides/nics/virtio.rst b/doc/guides/nics/virtio.rst |
3406 | index eef0cc2..0de445c 100644 |
3407 | --- a/doc/guides/nics/virtio.rst |
3408 | +++ b/doc/guides/nics/virtio.rst |
3409 | @@ -304,6 +304,7 @@ Prerequisites for Rx interrupts |
3410 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
3411 | |
3412 | To support Rx interrupts, |
3413 | + |
3414 | #. Check if guest kernel supports VFIO-NOIOMMU: |
3415 | |
3416 | Linux started to support VFIO-NOIOMMU since 4.8.0. Make sure the guest |
3417 | @@ -466,12 +467,16 @@ according to below configuration: |
3418 | |
3419 | #. Split virtqueue mergeable path: If Rx mergeable is negotiated, in-order feature is |
3420 | not negotiated, this path will be selected. |
3421 | + |
3422 | #. Split virtqueue non-mergeable path: If Rx mergeable and in-order feature are not |
3423 | negotiated, also Rx offload(s) are requested, this path will be selected. |
3424 | + |
3425 | #. Split virtqueue in-order mergeable path: If Rx mergeable and in-order feature are |
3426 | both negotiated, this path will be selected. |
3427 | + |
3428 | #. Split virtqueue in-order non-mergeable path: If in-order feature is negotiated and |
3429 | Rx mergeable is not negotiated, this path will be selected. |
3430 | + |
3431 | #. Split virtqueue vectorized Rx path: If Rx mergeable is disabled and no Rx offload |
3432 | requested, this path will be selected. |
3433 | |
3434 | @@ -480,16 +485,21 @@ according to below configuration: |
3435 | |
3436 | #. Packed virtqueue mergeable path: If Rx mergeable is negotiated, in-order feature |
3437 | is not negotiated, this path will be selected. |
3438 | + |
3439 | #. Packed virtqueue non-mergeable path: If Rx mergeable and in-order feature are not |
3440 | negotiated, this path will be selected. |
3441 | + |
3442 | #. Packed virtqueue in-order mergeable path: If in-order and Rx mergeable feature are |
3443 | both negotiated, this path will be selected. |
3444 | + |
3445 | #. Packed virtqueue in-order non-mergeable path: If in-order feature is negotiated and |
3446 | Rx mergeable is not negotiated, this path will be selected. |
3447 | + |
3448 | #. Packed virtqueue vectorized Rx path: If building and running environment support |
3449 | (AVX512 || NEON) && in-order feature is negotiated && Rx mergeable |
3450 | is not negotiated && TCP_LRO Rx offloading is disabled && vectorized option enabled, |
3451 | this path will be selected. |
3452 | + |
3453 | #. Packed virtqueue vectorized Tx path: If building and running environment support |
3454 | (AVX512 || NEON) && in-order feature is negotiated && vectorized option enabled, |
3455 | this path will be selected. |
3456 | @@ -567,5 +577,7 @@ or configuration, below steps can help you identify which path you selected and |
3457 | root cause faster. |
3458 | |
3459 | #. Run vhost/virtio test case; |
3460 | + |
3461 | #. Run "perf top" and check virtio Rx/Tx callback names; |
3462 | + |
3463 | #. Identify which virtio path is selected refer to above table. |
3464 | diff --git a/doc/guides/platform/cnxk.rst b/doc/guides/platform/cnxk.rst |
3465 | index 149dbda..8eff2c4 100644 |
3466 | --- a/doc/guides/platform/cnxk.rst |
3467 | +++ b/doc/guides/platform/cnxk.rst |
3468 | @@ -105,7 +105,9 @@ where even VF bound to the first domain and odd VF bound to the second domain. |
3469 | Typical application usage models are, |
3470 | |
3471 | #. Communication between the Linux kernel and DPDK application. |
3472 | + |
3473 | #. Exception path to Linux kernel from DPDK application as SW ``KNI`` replacement. |
3474 | + |
3475 | #. Communication between two different DPDK applications. |
3476 | |
3477 | SDP interface |
3478 | @@ -124,6 +126,7 @@ can bind PF or VF to use SDP interface and it will be enumerated as ethdev ports |
3479 | The primary use case for SDP is to enable the smart NIC use case. Typical usage models are, |
3480 | |
3481 | #. Communication channel between remote host and cnxk SoC over PCIe. |
3482 | + |
3483 | #. Transfer packets received from network interface to remote host over PCIe and |
3484 | vice-versa. |
3485 | |
3486 | @@ -244,7 +247,7 @@ context or stats using debugfs. |
3487 | |
3488 | Enable ``debugfs`` by: |
3489 | |
3490 | -1. Compile kernel with debugfs enabled, i.e ``CONFIG_DEBUGFS=y``. |
3491 | +1. Compile kernel with debugfs enabled, i.e ``CONFIG_DEBUG_FS=y``. |
3492 | 2. Boot OCTEON CN9K/CN10K with debugfs supported kernel. |
3493 | 3. Verify ``debugfs`` mounted by default "mount | grep -i debugfs" or mount it manually by using. |
3494 | |
3495 | diff --git a/doc/guides/prog_guide/event_timer_adapter.rst b/doc/guides/prog_guide/event_timer_adapter.rst |
3496 | index 9106092..7733424 100644 |
3497 | --- a/doc/guides/prog_guide/event_timer_adapter.rst |
3498 | +++ b/doc/guides/prog_guide/event_timer_adapter.rst |
3499 | @@ -229,9 +229,7 @@ Note that it is necessary to initialize the event timer state to |
3500 | RTE_EVENT_TIMER_NOT_ARMED. Also note that we have saved a pointer to the |
3501 | ``conn`` object in the timer's event payload. This will allow us to locate |
3502 | the connection object again once we dequeue the timer expiry event from the |
3503 | -event device later. As a convenience, the application may specify no value for |
3504 | -ev.event_ptr, and the adapter will by default set it to point at the event |
3505 | -timer itself. |
3506 | +event device later. |
3507 | |
3508 | Now we can arm the event timer with ``rte_event_timer_arm_burst()``: |
3509 | |
3510 | diff --git a/doc/guides/prog_guide/generic_segmentation_offload_lib.rst b/doc/guides/prog_guide/generic_segmentation_offload_lib.rst |
3511 | index e605b86..30d13bc 100644 |
3512 | --- a/doc/guides/prog_guide/generic_segmentation_offload_lib.rst |
3513 | +++ b/doc/guides/prog_guide/generic_segmentation_offload_lib.rst |
3514 | @@ -204,7 +204,7 @@ To segment an outgoing packet, an application must: |
3515 | - a flag, that indicates whether the IPv4 headers of output segments should |
3516 | contain fixed or incremental ID values. |
3517 | |
3518 | -2. Set the appropriate ol_flags in the mbuf. |
3519 | +#. Set the appropriate ol_flags in the mbuf. |
3520 | |
3521 | - The GSO library use the value of an mbuf's ``ol_flags`` attribute to |
3522 | determine how a packet should be segmented. It is the application's |
3523 | diff --git a/doc/guides/prog_guide/graph_lib.rst b/doc/guides/prog_guide/graph_lib.rst |
3524 | index 1cfdc86..4ab0623 100644 |
3525 | --- a/doc/guides/prog_guide/graph_lib.rst |
3526 | +++ b/doc/guides/prog_guide/graph_lib.rst |
3527 | @@ -173,7 +173,7 @@ Create the graph object |
3528 | ~~~~~~~~~~~~~~~~~~~~~~~ |
3529 | Now that the nodes are linked, Its time to create a graph by including |
3530 | the required nodes. The application can provide a set of node patterns to |
3531 | -form a graph object. The ``famish()`` API used underneath for the pattern |
3532 | +form a graph object. The ``fnmatch()`` API used underneath for the pattern |
3533 | matching to include the required nodes. After the graph create any changes to |
3534 | nodes or graph is not allowed. |
3535 | |
3536 | diff --git a/doc/guides/prog_guide/rte_flow.rst b/doc/guides/prog_guide/rte_flow.rst |
3537 | index 7984e88..91ace7a 100644 |
3538 | --- a/doc/guides/prog_guide/rte_flow.rst |
3539 | +++ b/doc/guides/prog_guide/rte_flow.rst |
3540 | @@ -148,14 +148,15 @@ Attribute: Group |
3541 | Flow rules can be grouped by assigning them a common group number. Groups |
3542 | allow a logical hierarchy of flow rule groups (tables) to be defined. These |
3543 | groups can be supported virtually in the PMD or in the physical device. |
3544 | -Group 0 is the default group and this is the only group which flows are |
3545 | -guarantee to matched against, all subsequent groups can only be reached by |
3546 | -way of the JUMP action from a matched flow rule. |
3547 | +Group 0 is the default group and is the only group that |
3548 | +flows are guaranteed to be matched against. |
3549 | +All subsequent groups can only be reached by using a JUMP action |
3550 | +from a matched flow rule. |
3551 | |
3552 | Although optional, applications are encouraged to group similar rules as |
3553 | much as possible to fully take advantage of hardware capabilities |
3554 | (e.g. optimized matching) and work around limitations (e.g. a single pattern |
3555 | -type possibly allowed in a given group), while being aware that the groups |
3556 | +type possibly allowed in a given group), while being aware that the groups' |
3557 | hierarchies must be programmed explicitly. |
3558 | |
3559 | Note that support for more than a single group is not guaranteed. |
3560 | @@ -170,7 +171,7 @@ Priority levels are arbitrary and up to the application, they do |
3561 | not need to be contiguous nor start from 0, however the maximum number |
3562 | varies between devices and may be affected by existing flow rules. |
3563 | |
3564 | -A flow which matches multiple rules in the same group will always matched by |
3565 | +A flow which matches multiple rules in the same group will always be matched by |
3566 | the rule with the highest priority in that group. |
3567 | |
3568 | If a packet is matched by several rules of a given group for a given |
3569 | @@ -1831,12 +1832,12 @@ flow group/tables on the device, this action redirects the matched flow to |
3570 | the specified group on that device. |
3571 | |
3572 | If a matched flow is redirected to a table which doesn't contain a matching |
3573 | -rule for that flow then the behavior is undefined and the resulting behavior |
3574 | -is up to the specific device. Best practice when using groups would be define |
3575 | +rule for that flow, then the behavior is undefined and the resulting behavior |
3576 | +is up to the specific device. Best practice when using groups would be to define |
3577 | a default flow rule for each group which a defines the default actions in that |
3578 | group so a consistent behavior is defined. |
3579 | |
3580 | -Defining an action for matched flow in a group to jump to a group which is |
3581 | +Defining an action for a matched flow in a group to jump to a group which is |
3582 | higher in the group hierarchy may not be supported by physical devices, |
3583 | depending on how groups are mapped to the physical devices. In the |
3584 | definitions of jump actions, applications should be aware that it may be |
3585 | @@ -2008,8 +2009,8 @@ Also, regarding packet encapsulation ``level``: |
3586 | level. |
3587 | |
3588 | - ``2`` and subsequent values request RSS to be performed on the specified |
3589 | - inner packet encapsulation level, from outermost to innermost (lower to |
3590 | - higher values). |
3591 | + inner packet encapsulation level, from outermost to innermost (lower to |
3592 | + higher values). |
3593 | |
3594 | Values other than ``0`` are not necessarily supported. |
3595 | |
3596 | @@ -3066,20 +3067,23 @@ The immediate value ``RTE_FLOW_FIELD_VALUE`` (or a pointer to it |
3597 | ``RTE_FLOW_FIELD_START`` is used to point to the beginning of a packet. |
3598 | See ``enum rte_flow_field_id`` for the list of supported fields. |
3599 | |
3600 | -``op`` selects the operation to perform on a destination field. |
3601 | +``op`` selects the operation to perform on a destination field: |
3602 | + |
3603 | - ``set`` copies the data from ``src`` field to ``dst`` field. |
3604 | - ``add`` adds together ``dst`` and ``src`` and stores the result into ``dst``. |
3605 | -- ``sub`` subtracts ``src`` from ``dst`` and stores the result into ``dst`` |
3606 | +- ``sub`` subtracts ``src`` from ``dst`` and stores the result into ``dst``. |
3607 | |
3608 | ``width`` defines a number of bits to use from ``src`` field. |
3609 | |
3610 | ``level`` is used to access any packet field on any encapsulation level |
3611 | -as well as any tag element in the tag array. |
3612 | -- ``0`` means the default behaviour. Depending on the packet type, it can |
3613 | -mean outermost, innermost or anything in between. |
3614 | +as well as any tag element in the tag array: |
3615 | + |
3616 | +- ``0`` means the default behaviour. Depending on the packet type, |
3617 | + it can mean outermost, innermost or anything in between. |
3618 | - ``1`` requests access to the outermost packet encapsulation level. |
3619 | - ``2`` and subsequent values requests access to the specified packet |
3620 | -encapsulation level, from outermost to innermost (lower to higher values). |
3621 | + encapsulation level, from outermost to innermost (lower to higher values). |
3622 | + |
3623 | For the tag array (in case of multiple tags are supported and present) |
3624 | ``level`` translates directly into the array index. |
3625 | |
3626 | diff --git a/doc/guides/prog_guide/rte_security.rst b/doc/guides/prog_guide/rte_security.rst |
3627 | index 72ca0bd..8619757 100644 |
3628 | --- a/doc/guides/prog_guide/rte_security.rst |
3629 | +++ b/doc/guides/prog_guide/rte_security.rst |
3630 | @@ -592,68 +592,27 @@ Security session configuration |
3631 | |
3632 | Security Session configuration structure is defined as ``rte_security_session_conf`` |
3633 | |
3634 | -.. code-block:: c |
3635 | - |
3636 | - struct rte_security_session_conf { |
3637 | - enum rte_security_session_action_type action_type; |
3638 | - /**< Type of action to be performed on the session */ |
3639 | - enum rte_security_session_protocol protocol; |
3640 | - /**< Security protocol to be configured */ |
3641 | - union { |
3642 | - struct rte_security_ipsec_xform ipsec; |
3643 | - struct rte_security_macsec_xform macsec; |
3644 | - struct rte_security_pdcp_xform pdcp; |
3645 | - struct rte_security_docsis_xform docsis; |
3646 | - }; |
3647 | - /**< Configuration parameters for security session */ |
3648 | - struct rte_crypto_sym_xform *crypto_xform; |
3649 | - /**< Security Session Crypto Transformations */ |
3650 | - void *userdata; |
3651 | - /**< Application specific userdata to be saved with session */ |
3652 | - }; |
3653 | +.. literalinclude:: ../../../lib/security/rte_security.h |
3654 | + :language: c |
3655 | + :start-after: Structure rte_security_session_conf 8< |
3656 | + :end-before: >8 End of structure rte_security_session_conf. |
3657 | |
3658 | The configuration structure reuses the ``rte_crypto_sym_xform`` struct for crypto related |
3659 | configuration. The ``rte_security_session_action_type`` struct is used to specify whether the |
3660 | session is configured for Lookaside Protocol offload or Inline Crypto or Inline Protocol |
3661 | Offload. |
3662 | |
3663 | -.. code-block:: c |
3664 | - |
3665 | - enum rte_security_session_action_type { |
3666 | - RTE_SECURITY_ACTION_TYPE_NONE, |
3667 | - /**< No security actions */ |
3668 | - RTE_SECURITY_ACTION_TYPE_INLINE_CRYPTO, |
3669 | - /**< Crypto processing for security protocol is processed inline |
3670 | - * during transmission |
3671 | - */ |
3672 | - RTE_SECURITY_ACTION_TYPE_INLINE_PROTOCOL, |
3673 | - /**< All security protocol processing is performed inline during |
3674 | - * transmission |
3675 | - */ |
3676 | - RTE_SECURITY_ACTION_TYPE_LOOKASIDE_PROTOCOL, |
3677 | - /**< All security protocol processing including crypto is performed |
3678 | - * on a lookaside accelerator |
3679 | - */ |
3680 | - RTE_SECURITY_ACTION_TYPE_CPU_CRYPTO |
3681 | - /**< Similar to ACTION_TYPE_NONE but crypto processing for security |
3682 | - * protocol is processed synchronously by a CPU. |
3683 | - */ |
3684 | - }; |
3685 | +.. literalinclude:: ../../../lib/security/rte_security.h |
3686 | + :language: c |
3687 | + :start-after: Enumeration of rte_security_session_action_type 8< |
3688 | + :end-before: >8 End enumeration of rte_security_session_action_type. |
3689 | |
3690 | The ``rte_security_session_protocol`` is defined as |
3691 | |
3692 | -.. code-block:: c |
3693 | - |
3694 | - enum rte_security_session_protocol { |
3695 | - RTE_SECURITY_PROTOCOL_IPSEC = 1, |
3696 | - /**< IPsec Protocol */ |
3697 | - RTE_SECURITY_PROTOCOL_MACSEC, |
3698 | - /**< MACSec Protocol */ |
3699 | - RTE_SECURITY_PROTOCOL_PDCP, |
3700 | - /**< PDCP Protocol */ |
3701 | - RTE_SECURITY_PROTOCOL_DOCSIS, |
3702 | - /**< DOCSIS Protocol */ |
3703 | - }; |
3704 | +.. literalinclude:: ../../../lib/security/rte_security.h |
3705 | + :language: c |
3706 | + :start-after: Enumeration of rte_security_session_protocol 8< |
3707 | + :end-before: >8 End enumeration of rte_security_session_protocol. |
3708 | |
3709 | Currently the library defines configuration parameters for IPsec and PDCP only. |
3710 | For other protocols like MACSec, structures and enums are defined as place holders |
3711 | diff --git a/doc/guides/rawdevs/ntb.rst b/doc/guides/rawdevs/ntb.rst |
3712 | index 2bb115d..f8befc6 100644 |
3713 | --- a/doc/guides/rawdevs/ntb.rst |
3714 | +++ b/doc/guides/rawdevs/ntb.rst |
3715 | @@ -1,6 +1,8 @@ |
3716 | .. SPDX-License-Identifier: BSD-3-Clause |
3717 | Copyright(c) 2018 Intel Corporation. |
3718 | |
3719 | +.. include:: <isonum.txt> |
3720 | + |
3721 | NTB Rawdev Driver |
3722 | ================= |
3723 | |
3724 | @@ -17,19 +19,23 @@ some information by using scratchpad registers. |
3725 | BIOS setting on Intel Xeon |
3726 | -------------------------- |
3727 | |
3728 | -Intel Non-transparent Bridge needs special BIOS setting. The reference for |
3729 | -Skylake is https://www.intel.com/content/dam/support/us/en/documents/server-products/Intel_Xeon_Processor_Scalable_Family_BIOS_User_Guide.pdf |
3730 | - |
3731 | -- Set the needed PCIe port as NTB to NTB mode on both hosts. |
3732 | -- Enable NTB bars and set bar size of bar 23 and bar 45 as 12-29 (4K-512M) |
3733 | - on both hosts (for Ice Lake, bar size can be set as 12-51, namely 4K-128PB). |
3734 | - Note that bar size on both hosts should be the same. |
3735 | -- Disable split bars for both hosts. |
3736 | -- Set crosslink control override as DSD/USP on one host, USD/DSP on |
3737 | - another host. |
3738 | -- Disable PCIe PII SSC (Spread Spectrum Clocking) for both hosts. This |
3739 | - is a hardware requirement. |
3740 | - |
3741 | +Intel Non-transparent Bridge (NTB) needs special BIOS settings on both systems. |
3742 | +Note that for 4th Generation Intel\ |reg| Xeon\ |reg| Scalable Processors, |
3743 | +option ``Port Subsystem Mode`` should be changed from ``Gen5`` to ``Gen4 Only``, |
3744 | +then reboot. |
3745 | + |
3746 | +- Set ``Non-Transparent Bridge PCIe Port Definition`` for needed PCIe ports |
3747 | + as ``NTB to NTB`` mode, on both hosts. |
3748 | +- Set ``Enable NTB BARs`` as ``Enabled``, on both hosts. |
3749 | +- Set ``Enable SPLIT BARs`` as ``Disabled``, on both hosts. |
3750 | +- Set ``Imbar1 Size``, ``Imbar2 Size``, ``Embar1 Size`` and ``Embar2 Size``, |
3751 | + as 12-29 (i.e., 4K-512M) for 2nd Generation Intel\ |reg| Xeon\ |reg| Scalable Processors; |
3752 | + as 12-51 (i.e., 4K-128PB) for 3rd and 4th Generation Intel\ |reg| Xeon\ |reg| Scalable Processors. |
3753 | + Note that those bar sizes on both hosts should be the same. |
3754 | +- Set ``Crosslink Control override`` as ``DSD/USP`` on one host, |
3755 | + ``USD/DSP`` on another host. |
3756 | +- Set ``PCIe PLL SSC (Spread Spectrum Clocking)`` as ``Disabled``, on both hosts. |
3757 | + This is a hardware requirement when using Re-timer Cards. |
3758 | |
3759 | Device Setup |
3760 | ------------ |
3761 | @@ -145,4 +151,8 @@ like the following: |
3762 | Limitation |
3763 | ---------- |
3764 | |
3765 | -- This PMD only supports Intel Skylake and Ice Lake platforms. |
3766 | +This PMD is only supported on Intel Xeon Platforms: |
3767 | + |
3768 | +- 4th Generation Intel® Xeon® Scalable Processors. |
3769 | +- 3rd Generation Intel® Xeon® Scalable Processors. |
3770 | +- 2nd Generation Intel® Xeon® Scalable Processors. |
3771 | diff --git a/doc/guides/rel_notes/release_21_11.rst b/doc/guides/rel_notes/release_21_11.rst |
3772 | index 8d3218b..762db48 100644 |
3773 | --- a/doc/guides/rel_notes/release_21_11.rst |
3774 | +++ b/doc/guides/rel_notes/release_21_11.rst |
3775 | @@ -2540,3 +2540,657 @@ Tested Platforms |
3776 | * DPDK 21.11.4 contains fixes up to DPDK 23.03 |
3777 | * Issues identified/fixed in DPDK main branch after DPDK 23.03 may be present in DPDK 21.11.4 |
3778 | * Intel validation team reported a performance issue for a specific test on a specific platform, Intel(R) Xeon(R) Platinum 8280M CPU @ 2.70GHz CPU. Other tests and other platforms do not have this performance issue. See `mailing list <https://mails.dpdk.org/archives/stable/2023-May/043729.html>`__ for more details. |
3779 | + |
3780 | +21.11.5 Release Notes |
3781 | +--------------------- |
3782 | + |
3783 | + |
3784 | +21.11.5 Fixes |
3785 | +~~~~~~~~~~~~~ |
3786 | + |
3787 | +* app/crypto-perf: fix socket ID default value |
3788 | +* app/testpmd: fix checksum engine with GTP on 32-bit |
3789 | +* app/testpmd: fix GTP L2 length in checksum engine |
3790 | +* baseband/fpga_5gnr_fec: fix possible division by zero |
3791 | +* baseband/fpga_5gnr_fec: fix starting unconfigured queue |
3792 | +* build: fix case of project language name |
3793 | +* ci: fix libabigail cache in GHA |
3794 | +* common/cnxk: fix inline device VF identification |
3795 | +* common/cnxk: fix IPsec IPv6 tunnel address byte swap |
3796 | +* common/iavf: fix MAC type for 710 NIC |
3797 | +* common/mlx5: adjust fork call with new kernel API |
3798 | +* common/qat: detach crypto from compress build |
3799 | +* common/sfc_efx/base: fix Rx queue without RSS hash prefix |
3800 | +* crypto/ipsec_mb: fix enqueue counter for SNOW3G |
3801 | +* crypto/ipsec_mb: optimize allocation in session |
3802 | +* crypto/openssl: skip workaround at compilation time |
3803 | +* crypto/scheduler: fix last element for valid args |
3804 | +* doc: fix auth algos in cryptoperf app |
3805 | +* doc: fix event timer adapter guide |
3806 | +* doc: fix format in flow API guide |
3807 | +* doc: fix kernel patch link in hns3 guide |
3808 | +* doc: fix number of leading spaces in hns3 guide |
3809 | +* doc: fix syntax in hns3 guide |
3810 | +* doc: fix typo in cnxk platform guide |
3811 | +* doc: fix typo in graph guide |
3812 | +* doc: fix typos and wording in flow API guide |
3813 | +* doc: remove warning with Doxygen 1.9.7 |
3814 | +* doc: update BIOS settings and supported HW for NTB |
3815 | +* eal: avoid calling cleanup twice |
3816 | +* eal/linux: fix legacy mem init with many segments |
3817 | +* eal/linux: fix secondary process crash for mp hotplug requests |
3818 | +* ethdev: check that at least one FEC mode is specified |
3819 | +* ethdev: fix indirect action conversion |
3820 | +* ethdev: fix MAC address occupies two entries |
3821 | +* ethdev: fix potential leak in PCI probing helper |
3822 | +* ethdev: update documentation for API to get FEC |
3823 | +* ethdev: update documentation for API to set FEC |
3824 | +* event/cnxk: fix nanoseconds to ticks conversion |
3825 | +* eventdev/timer: fix buffer flush |
3826 | +* eventdev/timer: fix timeout event wait behavior |
3827 | +* event/dsw: free rings on close |
3828 | +* examples/fips_validation: fix digest length in AES-GCM |
3829 | +* examples/ip_pipeline: fix build with GCC 13 |
3830 | +* examples/ipsec-secgw: fix TAP default MAC address |
3831 | +* examples/l2fwd-cat: fix external build |
3832 | +* examples/ntb: fix build with GCC 13 |
3833 | +* fib: fix adding default route |
3834 | +* hash: fix reading unaligned bits in Toeplitz hash |
3835 | +* ipc: fix file descriptor leakage with unhandled messages |
3836 | +* ipsec: fix NAT-T header length |
3837 | +* kernel/freebsd: fix function parameter list |
3838 | +* kni: fix build with Linux 6.3 |
3839 | +* kni: fix build with Linux 6.5 |
3840 | +* mbuf: fix Doxygen comment of distributor metadata |
3841 | +* mem: fix memsegs exhausted message |
3842 | +* net/bonding: fix destroy dedicated queues flow |
3843 | +* net/bonding: fix startup when NUMA is not supported |
3844 | +* net/cnxk: fix cookies check with security offload |
3845 | +* net/cnxk: fix flow queue index validation |
3846 | +* net/cnxk: flush SQ before configuring MTU |
3847 | +* net/dpaa2: fix checksum good flags |
3848 | +* net/e1000: fix queue number initialization |
3849 | +* net/e1000: fix Rx and Tx queue status |
3850 | +* net/hns3: delete duplicate macro definition |
3851 | +* net/hns3: extract PTP to its own header file |
3852 | +* net/hns3: fix build warning |
3853 | +* net/hns3: fix device start return value |
3854 | +* net/hns3: fix FEC mode check |
3855 | +* net/hns3: fix FEC mode for 200G ports |
3856 | +* net/hns3: fix IMP reset trigger |
3857 | +* net/hns3: fix inaccurate log |
3858 | +* net/hns3: fix index to look up table in NEON Rx |
3859 | +* net/hns3: fix mbuf leakage when RxQ started after reset |
3860 | +* net/hns3: fix mbuf leakage when RxQ started during reset |
3861 | +* net/hns3: fix missing FEC capability |
3862 | +* net/hns3: fix never set MAC flow control |
3863 | +* net/hns3: fix non-zero weight for disabled TC |
3864 | +* net/hns3: fix redundant line break in log |
3865 | +* net/hns3: fix RTC time after reset |
3866 | +* net/hns3: fix RTC time on initialization |
3867 | +* net/hns3: fix Rx multiple firmware reset interrupts |
3868 | +* net/hns3: fix uninitialized variable |
3869 | +* net/hns3: fix variable type mismatch |
3870 | +* net/hns3: get FEC capability from firmware |
3871 | +* net/hns3: uninitialize PTP |
3872 | +* net/i40e: fix comments |
3873 | +* net/i40e: fix Rx data buffer size |
3874 | +* net/i40e: fix tunnel packet Tx descriptor |
3875 | +* net/iavf: fix abnormal disable HW interrupt |
3876 | +* net/iavf: fix Rx data buffer size |
3877 | +* net/iavf: fix stop ordering |
3878 | +* net/iavf: fix tunnel TSO path selection |
3879 | +* net/iavf: fix VLAN insertion in vector path |
3880 | +* net/iavf: fix VLAN offload with AVX512 |
3881 | +* net/iavf: release large VF when closing device |
3882 | +* net/ice: adjust timestamp mbuf register |
3883 | +* net/ice/base: remove unreachable code |
3884 | +* net/ice: fix 32-bit build |
3885 | +* net/ice: fix DCF control thread crash |
3886 | +* net/ice: fix DCF RSS initialization |
3887 | +* net/ice: fix outer UDP checksum offload |
3888 | +* net/ice: fix protocol agnostic offloading with big packets |
3889 | +* net/ice: fix RSS hash key generation |
3890 | +* net/ice: fix Rx data buffer size |
3891 | +* net/ice: fix statistics |
3892 | +* net/ice: fix timestamp enabling |
3893 | +* net/ice: fix tunnel packet Tx descriptor |
3894 | +* net/ice: fix VLAN mode parser |
3895 | +* net/ice: initialize parser for double VLAN |
3896 | +* net/igc: fix Rx and Tx queue status |
3897 | +* net/ixgbe: add proper memory barriers in Rx |
3898 | +* net/ixgbe: fix Rx and Tx queue status |
3899 | +* net/mlx5: enhance error log for tunnel offloading |
3900 | +* net/mlx5: fix device removal event handling |
3901 | +* net/mlx5: fix drop action attribute validation |
3902 | +* net/mlx5: fix drop action memory leak |
3903 | +* net/mlx5: fix duplicated tag index matching in SWS |
3904 | +* net/mlx5: fix flow dump for modify field |
3905 | +* net/mlx5: fix flow workspace destruction |
3906 | +* net/mlx5: fix LRO TCP checksum |
3907 | +* net/mlx5: fix risk in NEON Rx descriptor read |
3908 | +* net/mlx5: fix validation for conntrack indirect action |
3909 | +* net/mlx5: forbid MPRQ restart |
3910 | +* net/netvsc: fix sizeof calculation |
3911 | +* net/nfp: fix address always related with PF ID 0 |
3912 | +* net/nfp: fix offloading flows |
3913 | +* net/ngbe: fix extended statistics |
3914 | +* net/ngbe: fix RSS offload capability |
3915 | +* net/qede: fix RSS indirection table initialization |
3916 | +* net/sfc: invalidate dangling MAE flow action FW resource IDs |
3917 | +* net/sfc: stop misuse of Rx ingress m-port metadata on EF100 |
3918 | +* net/tap: set locally administered bit for fixed MAC address |
3919 | +* net/txgbe/base: fix Tx with fiber hotplug |
3920 | +* net/txgbe: fix extended statistics |
3921 | +* net/txgbe: fix interrupt enable mask |
3922 | +* net/txgbe: fix to set autoneg for 1G speed |
3923 | +* net/txgbe: fix use-after-free on remove |
3924 | +* net/virtio: fix initialization to return negative errno |
3925 | +* net/virtio: propagate interrupt configuration error values |
3926 | +* net/virtio-user: fix leak when initialisation fails |
3927 | +* net/vmxnet3: fix drop of empty segments in Tx |
3928 | +* net/vmxnet3: fix return code in initializing |
3929 | +* pci: fix comment referencing renamed function |
3930 | +* pipeline: fix double free for table stats |
3931 | +* ring: fix dequeue parameter name |
3932 | +* ring: fix use after free |
3933 | +* telemetry: fix autotest on Alpine |
3934 | +* test: add graph tests |
3935 | +* test/bonding: fix include of standard header |
3936 | +* test/crypto: fix PDCP-SDAP test vectors |
3937 | +* test/crypto: fix return value for SNOW3G |
3938 | +* test/crypto: fix session creation check |
3939 | +* test/malloc: fix missing free |
3940 | +* test/malloc: fix statistics checks |
3941 | +* test/mbuf: fix crash in a forked process |
3942 | +* version: 21.11.5-rc1 |
3943 | +* vfio: fix include with musl runtime |
3944 | +* vhost: fix invalid call FD handling |
3945 | + |
3946 | +21.11.5 Validation |
3947 | +~~~~~~~~~~~~~~~~~~ |
3948 | + |
3949 | +* `Red Hat(R) Testing <https://mails.dpdk.org/archives/stable/2023-August/045101.html>`__ |
3950 | + |
3951 | + * Platform |
3952 | + |
3953 | + * RHEL 9 |
3954 | + * Kernel 5.14 |
3955 | + * Qemu 6.2 |
3956 | + * X540-AT2 NIC(ixgbe, 10G) |
3957 | + |
3958 | + * Functionality |
3959 | + |
3960 | + * Guest with device assignment(PF) throughput testing(1G hugepage size) |
3961 | + * Guest with device assignment(PF) throughput testing(2M hugepage size) |
3962 | + * Guest with device assignment(VF) throughput testing |
3963 | + * PVP (host dpdk testpmd as vswitch) 1Q: throughput testing |
3964 | + * PVP vhost-user 2Q throughput testing |
3965 | + * PVP vhost-user 1Q cross numa node throughput testing |
3966 | + * Guest with vhost-user 2 queues throughput testing |
3967 | + * vhost-user reconnect with dpdk-client, qemu-server: qemu reconnect |
3968 | + * vhost-user reconnect with dpdk-client, qemu-server: ovs reconnect |
3969 | + * PVP 1Q live migration testing |
3970 | + * PVP 1Q cross numa node live migration testing |
3971 | + * Guest with ovs+dpdk+vhost-user 1Q live migration testing |
3972 | + * Guest with ovs+dpdk+vhost-user 1Q live migration testing (2M) |
3973 | + * Guest with ovs+dpdk+vhost-user 2Q live migration testing |
3974 | + * Guest with ovs+dpdk+vhost-user 4Q live migration testing |
3975 | + * Host PF + DPDK testing |
3976 | + * Host VF + DPDK testing |
3977 | + |
3978 | + |
3979 | +* `Nvidia(R) Testing <https://mails.dpdk.org/archives/stable/2023-August/045124.html>`__ |
3980 | + |
3981 | + * Basic functionality with testpmd |
3982 | + |
3983 | + * Tx/Rx |
3984 | + * xstats |
3985 | + * Timestamps |
3986 | + * Link status |
3987 | + * RTE flow |
3988 | + * RSS |
3989 | + * VLAN filtering, stripping and insertion |
3990 | + * Checksum/TSO |
3991 | + * ptype |
3992 | + * link_status_interrupt example application |
3993 | + * l3fwd-power example application |
3994 | + * Multi-process example applications |
3995 | + * Hardware LRO tests |
3996 | + * Regex application |
3997 | + * Buffer Split |
3998 | + * Tx scheduling |
3999 | + |
4000 | + * Build tests |
4001 | + * ConnectX-6 Dx |
4002 | + * ConnectX-5 |
4003 | + * ConnectX-4 Lx |
4004 | + * BlueField-2 |
4005 | + |
4006 | + |
4007 | +* `Intel(R) Testing <https://mails.dpdk.org/archives/stable/2023-August/045177.html>`__ |
4008 | + |
4009 | + * Basic Intel(R) NIC(ixgbe, i40e and ice) testing |
4010 | + |
4011 | + * PF (i40e) |
4012 | + * PF (ixgbe) |
4013 | + * PF (ice) |
4014 | + * VF (i40e) |
4015 | + * VF (ixgbe) |
4016 | + * VF (ice) |
4017 | + * Compile Testing |
4018 | + * Intel NIC single core/NIC performance |
4019 | + * Power and IPsec |
4020 | + |
4021 | + * Basic cryptodev and virtio testing |
4022 | + |
4023 | + * vhost/virtio basic loopback, PVP and performance test |
4024 | + * cryptodev Function/Performance |
4025 | + |
4026 | +21.11.5 Known Issues |
4027 | +~~~~~~~~~~~~~~~~~~~~ |
4028 | + |
4029 | +* DPDK 21.11.5 contains fixes up to DPDK 23.07 |
4030 | +* Issues identified/fixed in DPDK main branch after DPDK 23.07 may be present in DPDK 21.11.5 |
4031 | + |
4032 | +21.11.5 Fixes skipped and status unresolved |
4033 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
4034 | + |
4035 | +* c5b531d6ee app/crypto-perf: fix session freeing |
4036 | +* 04dac73643 eventdev/crypto: fix enqueue count |
4037 | +* 4b04134cbb eventdev/crypto: fix failed events |
4038 | +* da73a2a0d1 eventdev/crypto: fix offset used while flushing events |
4039 | +* f442c04001 eventdev/crypto: fix overflow in circular buffer |
4040 | +* 5a0f64d84b net/cnxk: fix configuring large Rx/Tx queues |
4041 | +* 59ceaa72d5 common/cnxk: fix part number for CN10K |
4042 | +* 31a28a99fd net/ngbe: add spinlock protection on YT PHY |
4043 | +* 5781638519 common/cnxk: fix RQ mask config for CN10KB chip |
4044 | +* 3fe71706ab event/cnxk: fix stale data in workslot |
4045 | +* 927cb43fe9 examples/l3fwd: fix port group mask with AltiVec |
4046 | +* 0f044b6681 net/iavf: fix refine protocol header |
4047 | +* 0b241667cc net/iavf: fix tainted scalar |
4048 | +* b125c0e721 net/iavf: fix tainted scalar |
4049 | +* cedb44dc87 common/mlx5: improve AES-XTS tweak capability check |
4050 | +* 0fd1386c30 app/testpmd: cleanup cleanly from signal |
4051 | +* f1d0993e03 app/testpmd: fix interactive mode on Windows |
4052 | +* 7be74edb90 common/mlx5: use just sufficient barrier for Arm |
4053 | +* 7bdf7a13ae app/testpmd: fix encap/decap size calculation |
4054 | +* d2d7f0190b doc: fix code blocks in cryptodev guide |
4055 | +* 7e7b6762ea eal: enhance NUMA affinity heuristic |
4056 | +* e97738919c net/nfp: fix Tx descriptor free logic of NFD3 |
4057 | +* ebc352c77f net/mlx5: fix matcher layout size calculation |
4058 | +* ad4d51d277 net/mlx5: forbid duplicated tag index in pattern template |
4059 | +* 6df1bc6b3b mempool/cnxk: avoid hang when counting batch allocs |
4060 | +* 772e30281a common/cnxk: fix CPT backpressure disable on LBK |
4061 | +* b37fe88a2c event/cnxk: fix LMTST write for single event mode |
4062 | +* 92a16af450 net/iavf: fix virtchnl command called in interrupt |
4063 | +* 12011b11a3 net/txgbe: adapt to MNG veto bit setting |
4064 | +* 21f702d556 net/ngbe: fix link status in no LSC mode |
4065 | +* 659cfce01e net/ngbe: remove redundant codes |
4066 | +* 6fd3a7a618 net/ice/base: fix internal etype in switch filter |
4067 | +* 9749dffe23 net/ice: fix MAC type of E822 and E823 |
4068 | +* 1c7a4d37e7 common/cnxk: fix mailbox timeout due to deadlock |
4069 | +* 5e170dd8b6 net/txgbe: fix blocking system events |
4070 | +* 37ca457d3f common/mlx5: fix obtaining IB device in LAG mode |
4071 | +* 8c047e823a net/bnxt: fix multi-root card support |
4072 | +* 8b4618a7b4 crypto/qat: fix null algorithm digest placement |
4073 | +* 9a518054b5 Ahmad examples/l3fwd: fix duplicate expression for default nexthop |
4074 | +* e6479f009f net/mlx5: fix MPRQ stride size for headroom |
4075 | + |
4076 | +21.11.6 Release Notes |
4077 | +--------------------- |
4078 | + |
4079 | + |
4080 | +21.11.6 Fixes |
4081 | +~~~~~~~~~~~~~ |
4082 | + |
4083 | +* app/bbdev: fix link with NXP LA12XX |
4084 | +* app/dumpcap: allow multiple invocations |
4085 | +* app/dumpcap: fix mbuf pool ring type |
4086 | +* app/pipeline: add sigint handler |
4087 | +* app/procinfo: adjust format of RSS info |
4088 | +* app/procinfo: fix RSS info |
4089 | +* app/procinfo: remove unnecessary rte_malloc |
4090 | +* app/testpmd: add explicit check for tunnel TSO |
4091 | +* app/testpmd: fix help string |
4092 | +* app/testpmd: fix primary process not polling all queues |
4093 | +* app/testpmd: fix tunnel TSO capability check |
4094 | +* app/testpmd: fix tunnel TSO configuration |
4095 | +* app/testpmd: remove useless check in TSO command |
4096 | +* baseband/acc: fix ACC100 HARQ input alignment |
4097 | +* bus/dpaa: fix build with asserts for GCC 13 |
4098 | +* bus/pci: fix device ID log |
4099 | +* common/cnxk: fix aura disable handling |
4100 | +* common/cnxk: fix default flow action setting |
4101 | +* common/cnxk: fix different size bit operations |
4102 | +* common/cnxk: fix DPI memzone name |
4103 | +* common/cnxk: fix pool buffer size in opaque mode |
4104 | +* common/cnxk: fix xstats for different packet sizes |
4105 | +* common/cnxk: remove dead Meson code |
4106 | +* common/mlx5: fix controller index parsing |
4107 | +* config/arm: fix aarch32 build with GCC 13 |
4108 | +* cryptodev: add missing doc for security context |
4109 | +* crypto/ipsec_mb: add dependency check for cross build |
4110 | +* crypto/nitrox: fix panic with high number of segments |
4111 | +* crypto/qat: fix NULL algorithm digest placement |
4112 | +* crypto/qat: fix raw API null algorithm digest |
4113 | +* dma/cnxk: fix device state |
4114 | +* doc: fix hns3 build option about max queue number |
4115 | +* doc: fix RSS flow description in hns3 guide |
4116 | +* doc: fix some ordered lists |
4117 | +* doc: remove number of commands in vDPA guide |
4118 | +* doc: remove restriction on ixgbe vector support |
4119 | +* doc: replace code blocks with includes in security guide |
4120 | +* doc: update features in hns3 guide |
4121 | +* doc: update versions recommendations for i40e and ice |
4122 | +* eal/unix: fix firmware reading with external xz helper |
4123 | +* eal/windows: fix build with recent MinGW |
4124 | +* ethdev: account for smaller MTU when setting default |
4125 | +* ethdev: fix 32-bit build with GCC 13 |
4126 | +* ethdev: fix ESP packet type description |
4127 | +* ethdev: fix function name in comment |
4128 | +* event/cnxk: fix getwork mode devargs parsing |
4129 | +* event/cnxk: fix return values for capability API |
4130 | +* eventdev/eth_rx: fix timestamp field register in mbuf |
4131 | +* eventdev: fix device pointer for vdev-based devices |
4132 | +* eventdev: fix missing driver names in info struct |
4133 | +* eventdev: fix symbol export for port maintenance |
4134 | +* event/dlb2: fix disable PASID |
4135 | +* event/dlb2: fix missing queue ordering capability flag |
4136 | +* event/dlb2: fix name check in self-test |
4137 | +* event/sw: fix ordering corruption with op release |
4138 | +* event/sw: remove obsolete comment |
4139 | +* examples/ethtool: fix pause configuration |
4140 | +* examples/ipsec-secgw: fix partial overflow |
4141 | +* fib6: fix adding default route as first route |
4142 | +* fib: fix adding default route overwriting entire table |
4143 | +* hash: align SSE lookup to scalar implementation |
4144 | +* malloc: remove return from void functions |
4145 | +* mempool: clarify enqueue/dequeue ops documentation |
4146 | +* mempool/cnxk: fix free from non-EAL threads |
4147 | +* mempool: fix default ops for an empty mempool |
4148 | +* mempool: fix get function documentation |
4149 | +* meter: fix RFC4115 trTCM API Doxygen |
4150 | +* net/af_packet: fix Rx and Tx queue state |
4151 | +* net/af_xdp: fix Rx and Tx queue state |
4152 | +* net/af_xdp: make compatible with libbpf 0.8.0 |
4153 | +* net/avp: fix Rx and Tx queue state |
4154 | +* net/bnx2x: fix Rx and Tx queue state |
4155 | +* net/bnxt: fix Rx and Tx queue state |
4156 | +* net/bonding: fix header for C++ |
4157 | +* net/bonding: fix link status callback stop |
4158 | +* net/bonding: fix possible overrun |
4159 | +* net/bonding: fix Rx and Tx queue state |
4160 | +* net/cnxk: fix uninitialized variable |
4161 | +* net/cnxk: fix uninitialized variable |
4162 | +* net/cxgbe: fix Rx and Tx queue state |
4163 | +* net/dpaa2: fix Rx and Tx queue state |
4164 | +* net/dpaa: fix Rx and Tx queue state |
4165 | +* net/e1000: fix Rx and Tx queue state |
4166 | +* net/ena: fix Rx and Tx queue state |
4167 | +* net/enetc: fix Rx and Tx queue state |
4168 | +* net/enic: avoid extra unlock in MTU set |
4169 | +* net/enic: fix Rx and Tx queue state |
4170 | +* net/hinic: fix Rx and Tx queue state |
4171 | +* net/hns3: extract common function to obtain revision ID |
4172 | +* net/hns3: fix crash for NEON and SVE |
4173 | +* net/hns3: fix double stats for IMP and global reset |
4174 | +* net/hns3: fix error code for multicast resource |
4175 | +* net/hns3: fix flushing multicast MAC address |
4176 | +* net/hns3: fix ignored reset event |
4177 | +* net/hns3: fix IMP or global reset |
4178 | +* net/hns3: fix LRO offload to report |
4179 | +* net/hns3: fix mailbox sync |
4180 | +* net/hns3: fix multiple reset detected log |
4181 | +* net/hns3: fix order in NEON Rx |
4182 | +* net/hns3: fix reset event status |
4183 | +* net/hns3: fix setting DCB capability |
4184 | +* net/hns3: fix some error logs |
4185 | +* net/hns3: fix some return values |
4186 | +* net/hns3: fix traffic management thread safety |
4187 | +* net/hns3: fix typo in function name |
4188 | +* net/hns3: fix unchecked Rx free threshold |
4189 | +* net/hns3: fix uninitialized hash algo value |
4190 | +* net/hns3: fix VF default MAC modified when set failed |
4191 | +* net/hns3: fix VF reset handler interruption |
4192 | +* net/hns3: keep set/get algo key functions local |
4193 | +* net/hns3: refactor interrupt state query |
4194 | +* net/hns3: remove reset log in secondary |
4195 | +* net/i40e: fix buffer leak on Rx reconfiguration |
4196 | +* net/i40e: fix FDIR queue receives broadcast packets |
4197 | +* net/iavf: fix checksum offloading |
4198 | +* net/iavf: fix ESN session update |
4199 | +* net/iavf: fix indent in Tx path |
4200 | +* net/iavf: fix port stats clearing |
4201 | +* net/iavf: fix TSO with big segments |
4202 | +* net/iavf: fix Tx debug |
4203 | +* net/iavf: fix Tx offload flags check |
4204 | +* net/iavf: fix Tx offload mask |
4205 | +* net/iavf: fix Tx preparation |
4206 | +* net/iavf: fix VLAN offload strip flag |
4207 | +* net/iavf: remove log from Tx prepare function |
4208 | +* net/iavf: unregister interrupt handler before FD close |
4209 | +* net/ice: fix crash on closing representor ports |
4210 | +* net/ice: fix DCF port statistics |
4211 | +* net/ice: fix initial link status |
4212 | +* net/ice: fix L1 check interval |
4213 | +* net/ice: fix TM configuration clearing |
4214 | +* net/ice: fix TSO with big segments |
4215 | +* net/ice: fix Tx preparation |
4216 | +* net/ice: remove log from Tx prepare function |
4217 | +* net/ice: write timestamp to first segment in scattered Rx |
4218 | +* net/ipn3ke: fix Rx and Tx queue state |
4219 | +* net/memif: fix Rx and Tx queue state |
4220 | +* net/mlx4: fix Rx and Tx queue state |
4221 | +* net/mlx5: fix decap action checking in sample flow |
4222 | +* net/mlx5: fix E-Switch mirror flow rule validation |
4223 | +* net/mlx5: fix hairpin queue states |
4224 | +* net/mlx5: fix hairpin queue unbind |
4225 | +* net/mlx5: fix leak in sysfs port name translation |
4226 | +* net/mlx5: fix matcher layout size calculation |
4227 | +* net/mlx5: fix MPRQ stride size to accommodate the headroom |
4228 | +* net/mlx5: fix multi-segment Tx inline data length |
4229 | +* net/mlx5: fix shared Rx queue list management |
4230 | +* net/mlx5: fix use after free on Rx queue start |
4231 | +* net/mlx5: fix validation of sample encap flow action |
4232 | +* net/mlx5: zero UDP checksum over IPv4 in encapsulation |
4233 | +* net/mvneta: fix Rx and Tx queue state |
4234 | +* net/mvpp2: fix Rx and Tx queue state |
4235 | +* net/netvsc: increase VSP response timeout to 60 seconds |
4236 | +* net/nfp: fix DMA error after abnormal exit |
4237 | +* net/nfp: fix link status interrupt |
4238 | +* net/nfp: fix reconfigure logic in PF initialization |
4239 | +* net/nfp: fix reconfigure logic in VF initialization |
4240 | +* net/nfp: fix reconfigure logic of set MAC address |
4241 | +* net/nfp: fix Tx descriptor free logic of NFD3 |
4242 | +* net/ngbe: check process type in close operation |
4243 | +* net/ngbe: fix flow control |
4244 | +* net/ngbe: fix Rx and Tx queue state |
4245 | +* net/ngbe: keep link down after device close |
4246 | +* net/ngbe: reconfigure MAC Rx when link update |
4247 | +* net/null: fix Rx and Tx queue state |
4248 | +* net/octeon_ep: fix Rx and Tx queue state |
4249 | +* net/pfe: fix Rx and Tx queue state |
4250 | +* net/ring: fix Rx and Tx queue state |
4251 | +* net/sfc: account for data offset on Tx |
4252 | +* net/sfc: add missing error code indication to MAE init path |
4253 | +* net/sfc: fix Rx and Tx queue state |
4254 | +* net/sfc: remove null dereference in log |
4255 | +* net/sfc: set max Rx packet length for representors |
4256 | +* net/softnic: fix Rx and Tx queue state |
4257 | +* net/tap: fix IPv4 checksum offloading |
4258 | +* net/tap: fix L4 checksum offloading |
4259 | +* net/tap: fix RSS for fragmented packets |
4260 | +* net/tap: use MAC address parse API instead of local parser |
4261 | +* net/txgbe: add Tx queue maximum limit |
4262 | +* net/txgbe: check process type in close operation |
4263 | +* net/txgbe: fix GRE tunnel packet checksum |
4264 | +* net/txgbe: fix out of bound access |
4265 | +* net/txgbe: fix Rx and Tx queue state |
4266 | +* net/txgbe: keep link down after device close |
4267 | +* net/txgbe: reconfigure MAC Rx when link update |
4268 | +* net/vhost: fix Rx and Tx queue state |
4269 | +* net/virtio: fix descriptor addresses in 32-bit build |
4270 | +* net/virtio: fix link state interrupt vector setting |
4271 | +* net/virtio: fix missing next flag in Tx packed ring |
4272 | +* net/virtio: fix Rx and Tx queue state |
4273 | +* net/vmxnet3: fix Rx and Tx queue state |
4274 | +* pdump: fix error number on IPC response |
4275 | +* random: initialize state for unregistered non-EAL threads |
4276 | +* rawdev: fix device class in log message |
4277 | +* Revert "net/iavf: fix abnormal disable HW interrupt" |
4278 | +* Revert "net/iavf: fix tunnel TSO path selection" |
4279 | +* test/bbdev: assert failed test for queue configure |
4280 | +* test/bbdev: fix Python script subprocess |
4281 | +* test/bonding: add missing check |
4282 | +* test/bonding: fix uninitialized RSS configuration |
4283 | +* test/bonding: remove unreachable statement |
4284 | +* test/crypto: fix IV in some vectors |
4285 | +* test/crypto: fix typo in asym tests |
4286 | +* test/crypto: skip some synchronous tests with CPU crypto |
4287 | +* test/event: fix crypto null device creation |
4288 | +* test/hash: fix creation error log |
4289 | +* version: 21.11.6-rc1 |
4290 | +* vhost: fix check on virtqueue access in async registration |
4291 | +* vhost: fix check on virtqueue access in in-flight getter |
4292 | +* vhost: fix missing check on virtqueue access |
4293 | +* vhost: fix missing lock protection in power monitor API |
4294 | +* vhost: fix missing vring call check on virtqueue access |
4295 | + |
4296 | +21.11.6 Validation |
4297 | +~~~~~~~~~~~~~~~~~~ |
4298 | + |
4299 | +* `Red Hat(R) Testing <https://mails.dpdk.org/archives/stable/2023-December/046925.html>`__ |
4300 | + |
4301 | + * Platform |
4302 | + |
4303 | + * RHEL 9 |
4304 | + * Kernel 5.14 |
4305 | + * Qemu 7.2 |
4306 | + * X540-AT2 NIC(ixgbe, 10G) |
4307 | + |
4308 | + * Functionality |
4309 | + |
4310 | + * Guest with device assignment(PF) throughput testing(1G hugepage size) |
4311 | + * Guest with device assignment(PF) throughput testing(2M hugepage size) |
4312 | + * Guest with device assignment(VF) throughput testing |
4313 | + * PVP (host dpdk testpmd as vswitch) 1Q: throughput testing |
4314 | + * PVP vhost-user 2Q throughput testing |
4315 | + * PVP vhost-user 1Q cross numa node throughput testing |
4316 | + * Guest with vhost-user 2 queues throughput testing |
4317 | + * vhost-user reconnect with dpdk-client, qemu-server: qemu reconnect |
4318 | + * vhost-user reconnect with dpdk-client, qemu-server: ovs reconnect |
4319 | + * PVP 1Q live migration testing |
4320 | + * PVP 1Q cross numa node live migration testing |
4321 | + * Guest with ovs+dpdk+vhost-user 1Q live migration testing |
4322 | + * Guest with ovs+dpdk+vhost-user 1Q live migration testing (2M) |
4323 | + * Guest with ovs+dpdk+vhost-user 2Q live migration testing |
4324 | + * Guest with ovs+dpdk+vhost-user 4Q live migration testing |
4325 | + * Host PF + DPDK testing |
4326 | + * Host VF + DPDK testing |
4327 | + |
4328 | + |
4329 | +* `Nvidia(R) Testing <https://mails.dpdk.org/archives/stable/2024-January/046939.html>`__ |
4330 | + |
4331 | + * Basic functionality with testpmd |
4332 | + |
4333 | + * Tx/Rx |
4334 | + * xstats |
4335 | + * Timestamps |
4336 | + * Link status |
4337 | + * RTE flow |
4338 | + * RSS |
4339 | + * VLAN filtering, stripping and insertion |
4340 | + * Checksum/TSO |
4341 | + * ptype |
4342 | + * link_status_interrupt example application |
4343 | + * l3fwd-power example application |
4344 | + * Multi-process example applications |
4345 | + * Hardware LRO tests |
4346 | + * Regex application |
4347 | + * Buffer Split |
4348 | + * Tx scheduling |
4349 | + |
4350 | + * Build tests |
4351 | + * ConnectX-6 Dx |
4352 | + * ConnectX-7 |
4353 | + * BlueField-2 |
4354 | + |
4355 | + |
4356 | +* `Intel(R) Testing <https://mails.dpdk.org/archives/stable/2024-January/047001.html>`__ |
4357 | + |
4358 | + * Basic Intel(R) NIC(ixgbe, i40e and ice) testing |
4359 | + |
4360 | + * PF (i40e, ixgbe) |
4361 | + * VF (i40e, ixgbe) |
4362 | + * PF/VF (ice) |
4363 | + * Compile Testing |
4364 | + * Intel NIC single core/NIC performance |
4365 | + * IPsec |
4366 | + |
4367 | + * Basic cryptodev and virtio testing |
4368 | + |
4369 | + * vhost/virtio basic loopback, PVP and performance test |
4370 | + * cryptodev Function/Performance |
4371 | + |
4372 | +21.11.6 Known Issues |
4373 | +~~~~~~~~~~~~~~~~~~~~ |
4374 | + |
4375 | +* DPDK 21.11.6 contains fixes up to DPDK 23.11 |
4376 | +* Issues identified/fixed in DPDK main branch after DPDK 23.11 may be present in DPDK 21.11.6 |
4377 | + |
4378 | +21.11.6 Fixes skipped and status unresolved |
4379 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
4380 | + |
4381 | +* c5b531d6ee app/crypto-perf: fix session freeing |
4382 | +* 61b52e7edb app/test: fix reference to master in bonding test |
4383 | +* 0fd1386c30 app/testpmd: cleanup cleanly from signal |
4384 | +* a996cd04ae app/testpmd: fix early exit from signal |
4385 | +* 7bdf7a13ae app/testpmd: fix encap/decap size calculation |
4386 | +* f1d0993e03 app/testpmd: fix interactive mode on Windows |
4387 | +* 5d8c1f6253 common/cnxk: check error in MAC address set |
4388 | +* a6f639e079 common/cnxk: fix BP threshold calculation |
4389 | +* 772e30281a common/cnxk: fix CPT backpressure disable on LBK |
4390 | +* 2e9863fbb6 common/cnxk: fix different size bit operations |
4391 | +* 4f6f36ce23 common/cnxk: fix leak in error path |
4392 | +* 1c7a4d37e7 common/cnxk: fix mailbox timeout due to deadlock |
4393 | +* 59ceaa72d5 common/cnxk: fix part number for CN10K |
4394 | +* 5781638519 common/cnxk: fix RQ mask config for CN10KB chip |
4395 | +* 56fa6f92e9 common/cnxk: fix RSS key configuration |
4396 | +* 37ca457d3f common/mlx5: fix obtaining IB device in LAG mode |
4397 | +* cedb44dc87 common/mlx5: improve AES-XTS tweak capability check |
4398 | +* 7be74edb90 common/mlx5: use just sufficient barrier for Arm |
4399 | +* 9d91c3047d crypto/openssl: fix memory leaks in asym operations |
4400 | +* 3dd3115078 dma/cnxk: fix chunk buffer failure return code |
4401 | +* ba39a261a7 dma/cnxk: fix completion ring tail wrap |
4402 | +* 95a955e3e0 dma/cnxk: fix device reconfigure |
4403 | +* 694e8e643d event/cnxk: fix CASP usage for clang |
4404 | +* b37fe88a2c event/cnxk: fix LMTST write for single event mode |
4405 | +* 3fe71706ab event/cnxk: fix stale data in workslot |
4406 | +* 04dac73643 eventdev/crypto: fix enqueue count |
4407 | +* 4b04134cbb eventdev/crypto: fix failed events |
4408 | +* da73a2a0d1 eventdev/crypto: fix offset used while flushing events |
4409 | +* f442c04001 eventdev/crypto: fix overflow in circular buffer |
4410 | +* 9a518054b5 examples/l3fwd: fix duplicate expression for default nexthop |
4411 | +* 927cb43fe9 examples/l3fwd: fix port group mask with AltiVec |
4412 | +* 6df1bc6b3b mempool/cnxk: avoid hang when counting batch allocs |
4413 | +* b3ddd649ad mempool/cnxk: fix alloc from non-EAL threads |
4414 | +* 0236016c02 net/axgbe: fix Rx and Tx queue state |
4415 | +* 5a0f64d84b net/cnxk: fix configuring large Rx/Tx queues |
4416 | +* 7752f14026 net/cnxk: fix Rx flush on CN10k |
4417 | +* 0f044b6681 net/iavf: fix refine protocol header |
4418 | +* 0b241667cc net/iavf: fix tainted scalar |
4419 | +* b125c0e721 net/iavf: fix tainted scalar |
4420 | +* 92a16af450 net/iavf: fix virtchnl command called in interrupt |
4421 | +* 6fd3a7a618 net/ice/base: fix internal etype in switch filter |
4422 | +* 9749dffe23 net/ice: fix MAC type of E822 and E823 |
4423 | +* 2ece3b7186 net/mlx5: fix flow workspace double free in Windows |
4424 | +* c46216e77a net/nfp: fix Rx and Tx queue state |
4425 | +* a74c5001e9 net/ngbe: add proper memory barriers in Rx |
4426 | +* 31a28a99fd net/ngbe: add spinlock protection on YT PHY |
4427 | +* 21f702d556 net/ngbe: fix link status in no LSC mode |
4428 | +* 659cfce01e net/ngbe: remove redundant codes |
4429 | +* 12011b11a3 net/txgbe: adapt to MNG veto bit setting |
4430 | +* 5e170dd8b6 net/txgbe: fix blocking system events |
4431 | +* 166591931b pcapng: modify timestamp calculation |
4432 | +* 63bf81a617 test: fix named test macro |
4433 | diff --git a/doc/guides/sample_app_ug/vdpa.rst b/doc/guides/sample_app_ug/vdpa.rst |
4434 | index cb9c4f2..51e69fc 100644 |
4435 | --- a/doc/guides/sample_app_ug/vdpa.rst |
4436 | +++ b/doc/guides/sample_app_ug/vdpa.rst |
4437 | @@ -38,8 +38,7 @@ where |
4438 | * --iface specifies the path prefix of the UNIX domain socket file, e.g. |
4439 | /tmp/vhost-user-, then the socket files will be named as /tmp/vhost-user-<n> |
4440 | (n starts from 0). |
4441 | -* --interactive means run the vdpa sample in interactive mode, currently 4 |
4442 | - internal cmds are supported: |
4443 | +* --interactive means run the vDPA sample in interactive mode: |
4444 | |
4445 | 1. help: show help message |
4446 | 2. list: list all available vdpa devices |
4447 | diff --git a/doc/guides/tools/cryptoperf.rst b/doc/guides/tools/cryptoperf.rst |
4448 | index ce93483..1e63638 100644 |
4449 | --- a/doc/guides/tools/cryptoperf.rst |
4450 | +++ b/doc/guides/tools/cryptoperf.rst |
4451 | @@ -233,7 +233,6 @@ The following are the application command-line options: |
4452 | Set authentication algorithm name, where ``name`` is one |
4453 | of the following:: |
4454 | |
4455 | - 3des-cbc |
4456 | aes-cbc-mac |
4457 | aes-cmac |
4458 | aes-gmac |
4459 | diff --git a/drivers/baseband/acc100/rte_acc100_pmd.c b/drivers/baseband/acc100/rte_acc100_pmd.c |
4460 | index 5ac2f96..d84a883 100644 |
4461 | --- a/drivers/baseband/acc100/rte_acc100_pmd.c |
4462 | +++ b/drivers/baseband/acc100/rte_acc100_pmd.c |
4463 | @@ -1375,7 +1375,7 @@ acc100_fcw_ld_fill(struct rte_bbdev_dec_op *op, struct acc100_fcw_ld *fcw, |
4464 | - op->ldpc_dec.n_filler); |
4465 | |
4466 | /* Alignment on next 64B - Already enforced from HC output */ |
4467 | - harq_in_length = RTE_ALIGN_FLOOR(harq_in_length, ACC100_HARQ_ALIGN_64B); |
4468 | + harq_in_length = RTE_ALIGN_CEIL(harq_in_length, ACC100_HARQ_ALIGN_64B); |
4469 | |
4470 | /* Stronger alignment requirement when in decompression mode */ |
4471 | if (fcw->hcin_decomp_mode > 0) |
4472 | diff --git a/drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c b/drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c |
4473 | index 15d23d6..6931884 100644 |
4474 | --- a/drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c |
4475 | +++ b/drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c |
4476 | @@ -564,17 +564,21 @@ static int |
4477 | fpga_queue_start(struct rte_bbdev *dev, uint16_t queue_id) |
4478 | { |
4479 | struct fpga_5gnr_fec_device *d = dev->data->dev_private; |
4480 | + struct fpga_queue *q = dev->data->queues[queue_id].queue_private; |
4481 | + uint32_t offset = FPGA_5GNR_FEC_RING_CTRL_REGS + |
4482 | + (sizeof(struct fpga_ring_ctrl_reg) * q->q_idx); |
4483 | + uint8_t enable = 0x01; |
4484 | + uint16_t zero = 0x0000; |
4485 | #ifdef RTE_LIBRTE_BBDEV_DEBUG |
4486 | if (d == NULL) { |
4487 | rte_bbdev_log(ERR, "Invalid device pointer"); |
4488 | return -1; |
4489 | } |
4490 | #endif |
4491 | - struct fpga_queue *q = dev->data->queues[queue_id].queue_private; |
4492 | - uint32_t offset = FPGA_5GNR_FEC_RING_CTRL_REGS + |
4493 | - (sizeof(struct fpga_ring_ctrl_reg) * q->q_idx); |
4494 | - uint8_t enable = 0x01; |
4495 | - uint16_t zero = 0x0000; |
4496 | + if (dev->data->queues[queue_id].queue_private == NULL) { |
4497 | + rte_bbdev_log(ERR, "Cannot start invalid queue %d", queue_id); |
4498 | + return -1; |
4499 | + } |
4500 | |
4501 | /* Clear queue head and tail variables */ |
4502 | q->tail = q->head_free_desc = 0; |
4503 | @@ -879,9 +883,11 @@ check_desc_error(uint32_t error_code) { |
4504 | static inline uint16_t |
4505 | get_k0(uint16_t n_cb, uint16_t z_c, uint8_t bg, uint8_t rv_index) |
4506 | { |
4507 | + uint16_t n = (bg == 1 ? N_ZC_1 : N_ZC_2) * z_c; |
4508 | if (rv_index == 0) |
4509 | return 0; |
4510 | - uint16_t n = (bg == 1 ? N_ZC_1 : N_ZC_2) * z_c; |
4511 | + if (z_c == 0) |
4512 | + return 0; |
4513 | if (n_cb == n) { |
4514 | if (rv_index == 1) |
4515 | return (bg == 1 ? K0_1_1 : K0_1_2) * z_c; |
4516 | diff --git a/drivers/bus/dpaa/base/qbman/qman.c b/drivers/bus/dpaa/base/qbman/qman.c |
4517 | index 447c091..aa8da96 100644 |
4518 | --- a/drivers/bus/dpaa/base/qbman/qman.c |
4519 | +++ b/drivers/bus/dpaa/base/qbman/qman.c |
4520 | @@ -1,7 +1,7 @@ |
4521 | /* SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0) |
4522 | * |
4523 | * Copyright 2008-2016 Freescale Semiconductor Inc. |
4524 | - * Copyright 2017,2019 NXP |
4525 | + * Copyright 2017,2019-2023 NXP |
4526 | * |
4527 | */ |
4528 | |
4529 | @@ -897,7 +897,7 @@ mr_loop: |
4530 | /* Lookup in the retirement table */ |
4531 | fq = table_find_fq(p, |
4532 | be32_to_cpu(msg->fq.fqid)); |
4533 | - DPAA_BUG_ON(!fq); |
4534 | + DPAA_BUG_ON(fq != NULL); |
4535 | fq_state_change(p, fq, &swapped_msg, verb); |
4536 | if (fq->cb.fqs) |
4537 | fq->cb.fqs(p, fq, &swapped_msg); |
4538 | @@ -909,6 +909,7 @@ mr_loop: |
4539 | #else |
4540 | fq = (void *)(uintptr_t)msg->fq.contextB; |
4541 | #endif |
4542 | + DPAA_BUG_ON(fq != NULL); |
4543 | fq_state_change(p, fq, msg, verb); |
4544 | if (fq->cb.fqs) |
4545 | fq->cb.fqs(p, fq, &swapped_msg); |
4546 | diff --git a/drivers/bus/pci/linux/pci_vfio.c b/drivers/bus/pci/linux/pci_vfio.c |
4547 | index cd0d0b1..822aa41 100644 |
4548 | --- a/drivers/bus/pci/linux/pci_vfio.c |
4549 | +++ b/drivers/bus/pci/linux/pci_vfio.c |
4550 | @@ -2,6 +2,7 @@ |
4551 | * Copyright(c) 2010-2014 Intel Corporation |
4552 | */ |
4553 | |
4554 | +#include <unistd.h> |
4555 | #include <string.h> |
4556 | #include <fcntl.h> |
4557 | #include <linux/pci_regs.h> |
4558 | diff --git a/drivers/bus/pci/pci_common.c b/drivers/bus/pci/pci_common.c |
4559 | index def372b..6ff136f 100644 |
4560 | --- a/drivers/bus/pci/pci_common.c |
4561 | +++ b/drivers/bus/pci/pci_common.c |
4562 | @@ -262,7 +262,7 @@ rte_pci_probe_one_driver(struct rte_pci_driver *dr, |
4563 | } |
4564 | } |
4565 | |
4566 | - RTE_LOG(INFO, EAL, "Probe PCI driver: %s (%x:%x) device: "PCI_PRI_FMT" (socket %i)\n", |
4567 | + RTE_LOG(INFO, EAL, "Probe PCI driver: %s (%x:%04x) device: "PCI_PRI_FMT" (socket %i)\n", |
4568 | dr->driver.name, dev->id.vendor_id, dev->id.device_id, |
4569 | loc->domain, loc->bus, loc->devid, loc->function, |
4570 | dev->device.numa_node); |
4571 | diff --git a/drivers/common/cnxk/cnxk_security.c b/drivers/common/cnxk/cnxk_security.c |
4572 | index 787138b..7f4f0a6 100644 |
4573 | --- a/drivers/common/cnxk/cnxk_security.c |
4574 | +++ b/drivers/common/cnxk/cnxk_security.c |
4575 | @@ -201,6 +201,14 @@ ot_ipsec_inb_ctx_size(struct roc_ot_ipsec_inb_sa *sa) |
4576 | return size; |
4577 | } |
4578 | |
4579 | +static void |
4580 | +ot_ipsec_update_ipv6_addr_endianness(uint64_t *addr) |
4581 | +{ |
4582 | + *addr = rte_be_to_cpu_64(*addr); |
4583 | + addr++; |
4584 | + *addr = rte_be_to_cpu_64(*addr); |
4585 | +} |
4586 | + |
4587 | static int |
4588 | ot_ipsec_inb_tunnel_hdr_fill(struct roc_ot_ipsec_inb_sa *sa, |
4589 | struct rte_security_ipsec_xform *ipsec_xfrm) |
4590 | @@ -237,6 +245,10 @@ ot_ipsec_inb_tunnel_hdr_fill(struct roc_ot_ipsec_inb_sa *sa, |
4591 | memcpy(&sa->outer_hdr.ipv6.dst_addr, &tunnel->ipv6.dst_addr, |
4592 | sizeof(struct in6_addr)); |
4593 | |
4594 | + /* IP Source and Dest are in LE/CPU endian */ |
4595 | + ot_ipsec_update_ipv6_addr_endianness((uint64_t *)&sa->outer_hdr.ipv6.src_addr); |
4596 | + ot_ipsec_update_ipv6_addr_endianness((uint64_t *)&sa->outer_hdr.ipv6.dst_addr); |
4597 | + |
4598 | break; |
4599 | default: |
4600 | return -EINVAL; |
4601 | @@ -421,6 +433,10 @@ cnxk_ot_ipsec_outb_sa_fill(struct roc_ot_ipsec_outb_sa *sa, |
4602 | memcpy(&sa->outer_hdr.ipv6.dst_addr, &tunnel->ipv6.dst_addr, |
4603 | sizeof(struct in6_addr)); |
4604 | |
4605 | + /* IP Source and Dest are in LE/CPU endian */ |
4606 | + ot_ipsec_update_ipv6_addr_endianness((uint64_t *)&sa->outer_hdr.ipv6.src_addr); |
4607 | + ot_ipsec_update_ipv6_addr_endianness((uint64_t *)&sa->outer_hdr.ipv6.dst_addr); |
4608 | + |
4609 | /* Outer header flow label source */ |
4610 | if (!ipsec_xfrm->options.copy_flabel) { |
4611 | sa->w2.s.ipv4_df_src_or_ipv6_flw_lbl_src = |
4612 | diff --git a/drivers/common/cnxk/cnxk_security_ar.h b/drivers/common/cnxk/cnxk_security_ar.h |
4613 | index 3ec4c29..b4c51bd 100644 |
4614 | --- a/drivers/common/cnxk/cnxk_security_ar.h |
4615 | +++ b/drivers/common/cnxk/cnxk_security_ar.h |
4616 | @@ -17,7 +17,7 @@ |
4617 | BITS_PER_LONG_LONG) |
4618 | |
4619 | #define WORD_SHIFT 6 |
4620 | -#define WORD_SIZE (1 << WORD_SHIFT) |
4621 | +#define WORD_SIZE (1ULL << WORD_SHIFT) |
4622 | #define WORD_MASK (WORD_SIZE - 1) |
4623 | |
4624 | #define IPSEC_ANTI_REPLAY_FAILED (-1) |
4625 | diff --git a/drivers/common/cnxk/hw/nix.h b/drivers/common/cnxk/hw/nix.h |
4626 | index dd2ebec..8231c94 100644 |
4627 | --- a/drivers/common/cnxk/hw/nix.h |
4628 | +++ b/drivers/common/cnxk/hw/nix.h |
4629 | @@ -616,6 +616,7 @@ |
4630 | #define NIX_RX_ACTIONOP_RSS (0x4ull) |
4631 | #define NIX_RX_ACTIONOP_PF_FUNC_DROP (0x5ull) |
4632 | #define NIX_RX_ACTIONOP_MIRROR (0x6ull) |
4633 | +#define NIX_RX_ACTIONOP_DEFAULT (0xfull) |
4634 | |
4635 | #define NIX_RX_VTAGACTION_VTAG0_RELPTR (0x0ull) |
4636 | #define NIX_RX_VTAGACTION_VTAG1_RELPTR (0x4ull) |
4637 | diff --git a/drivers/common/cnxk/meson.build b/drivers/common/cnxk/meson.build |
4638 | index 4928f7e..9e7ccd2 100644 |
4639 | --- a/drivers/common/cnxk/meson.build |
4640 | +++ b/drivers/common/cnxk/meson.build |
4641 | @@ -8,7 +8,6 @@ if not is_linux or not dpdk_conf.get('RTE_ARCH_64') |
4642 | subdir_done() |
4643 | endif |
4644 | |
4645 | -config_flag_fmt = 'RTE_LIBRTE_@0@_COMMON' |
4646 | deps = ['eal', 'pci', 'bus_pci', 'mbuf', 'security'] |
4647 | sources = files( |
4648 | 'roc_ae.c', |
4649 | diff --git a/drivers/common/cnxk/roc_dev.c b/drivers/common/cnxk/roc_dev.c |
4650 | index 9a86969..0a9c722 100644 |
4651 | --- a/drivers/common/cnxk/roc_dev.c |
4652 | +++ b/drivers/common/cnxk/roc_dev.c |
4653 | @@ -951,6 +951,7 @@ dev_vf_hwcap_update(struct plt_pci_device *pci_dev, struct dev *dev) |
4654 | case PCI_DEVID_CNXK_RVU_AF_VF: |
4655 | case PCI_DEVID_CNXK_RVU_VF: |
4656 | case PCI_DEVID_CNXK_RVU_SDP_VF: |
4657 | + case PCI_DEVID_CNXK_RVU_NIX_INL_VF: |
4658 | dev->hwcap |= DEV_HWCAP_F_VF; |
4659 | break; |
4660 | } |
4661 | diff --git a/drivers/common/cnxk/roc_dpi.c b/drivers/common/cnxk/roc_dpi.c |
4662 | index 23b2cc4..1666fe5 100644 |
4663 | --- a/drivers/common/cnxk/roc_dpi.c |
4664 | +++ b/drivers/common/cnxk/roc_dpi.c |
4665 | @@ -81,10 +81,10 @@ roc_dpi_configure(struct roc_dpi *roc_dpi) |
4666 | return rc; |
4667 | } |
4668 | |
4669 | - snprintf(name, sizeof(name), "dpimem%d", roc_dpi->vfid); |
4670 | + snprintf(name, sizeof(name), "dpimem%d:%d:%d:%d", pci_dev->addr.domain, pci_dev->addr.bus, |
4671 | + pci_dev->addr.devid, pci_dev->addr.function); |
4672 | buflen = DPI_CMD_QUEUE_SIZE * DPI_CMD_QUEUE_BUFS; |
4673 | - dpi_mz = plt_memzone_reserve_aligned(name, buflen, 0, |
4674 | - DPI_CMD_QUEUE_SIZE); |
4675 | + dpi_mz = plt_memzone_reserve_aligned(name, buflen, 0, DPI_CMD_QUEUE_SIZE); |
4676 | if (dpi_mz == NULL) { |
4677 | plt_err("dpi memzone reserve failed"); |
4678 | rc = -ENOMEM; |
4679 | diff --git a/drivers/common/cnxk/roc_mbox.h b/drivers/common/cnxk/roc_mbox.h |
4680 | index 9a8ae6b..564bf29 100644 |
4681 | --- a/drivers/common/cnxk/roc_mbox.h |
4682 | +++ b/drivers/common/cnxk/roc_mbox.h |
4683 | @@ -453,7 +453,7 @@ struct lmtst_tbl_setup_req { |
4684 | |
4685 | struct cgx_stats_rsp { |
4686 | struct mbox_msghdr hdr; |
4687 | -#define CGX_RX_STATS_COUNT 13 |
4688 | +#define CGX_RX_STATS_COUNT 9 |
4689 | #define CGX_TX_STATS_COUNT 18 |
4690 | uint64_t __io rx_stats[CGX_RX_STATS_COUNT]; |
4691 | uint64_t __io tx_stats[CGX_TX_STATS_COUNT]; |
4692 | diff --git a/drivers/common/cnxk/roc_npa.c b/drivers/common/cnxk/roc_npa.c |
4693 | index efcb758..ddd66c6 100644 |
4694 | --- a/drivers/common/cnxk/roc_npa.c |
4695 | +++ b/drivers/common/cnxk/roc_npa.c |
4696 | @@ -115,6 +115,8 @@ npa_aura_pool_fini(struct mbox *mbox, uint32_t aura_id, uint64_t aura_handle) |
4697 | aura_req->op = NPA_AQ_INSTOP_WRITE; |
4698 | aura_req->aura.ena = 0; |
4699 | aura_req->aura_mask.ena = ~aura_req->aura_mask.ena; |
4700 | + aura_req->aura.bp_ena = 0; |
4701 | + aura_req->aura_mask.bp_ena = ~aura_req->aura_mask.bp_ena; |
4702 | |
4703 | rc = mbox_process(mbox); |
4704 | if (rc < 0) |
4705 | @@ -305,7 +307,11 @@ npa_aura_pool_pair_alloc(struct npa_lf *lf, const uint32_t block_size, |
4706 | /* Update pool fields */ |
4707 | pool->stack_base = mz->iova; |
4708 | pool->ena = 1; |
4709 | - pool->buf_size = block_size / ROC_ALIGN; |
4710 | + /* In opaque mode buffer size must be 0 */ |
4711 | + if (!pool->nat_align) |
4712 | + pool->buf_size = 0; |
4713 | + else |
4714 | + pool->buf_size = block_size / ROC_ALIGN; |
4715 | pool->stack_max_pages = stack_size; |
4716 | pool->shift = plt_log2_u32(block_count); |
4717 | pool->shift = pool->shift < 8 ? 0 : pool->shift - 8; |
4718 | diff --git a/drivers/common/cnxk/roc_npc.c b/drivers/common/cnxk/roc_npc.c |
4719 | index 5ee7ff5..9422a42 100644 |
4720 | --- a/drivers/common/cnxk/roc_npc.c |
4721 | +++ b/drivers/common/cnxk/roc_npc.c |
4722 | @@ -516,11 +516,15 @@ npc_parse_actions(struct roc_npc *roc_npc, const struct roc_npc_attr *attr, |
4723 | if (req_act == ROC_NPC_ACTION_TYPE_VLAN_STRIP) { |
4724 | /* Only VLAN action is provided */ |
4725 | flow->npc_action = NIX_RX_ACTIONOP_UCAST; |
4726 | - } else if (req_act & |
4727 | - (ROC_NPC_ACTION_TYPE_PF | ROC_NPC_ACTION_TYPE_VF)) { |
4728 | - flow->npc_action = NIX_RX_ACTIONOP_UCAST; |
4729 | - if (req_act & ROC_NPC_ACTION_TYPE_QUEUE) |
4730 | - flow->npc_action |= (uint64_t)rq << 20; |
4731 | + } else if (req_act & (ROC_NPC_ACTION_TYPE_PF | ROC_NPC_ACTION_TYPE_VF)) { |
4732 | + /* Check if any other action is set */ |
4733 | + if ((req_act == ROC_NPC_ACTION_TYPE_PF) || (req_act == ROC_NPC_ACTION_TYPE_VF)) { |
4734 | + flow->npc_action = NIX_RX_ACTIONOP_DEFAULT; |
4735 | + } else { |
4736 | + flow->npc_action = NIX_RX_ACTIONOP_UCAST; |
4737 | + if (req_act & ROC_NPC_ACTION_TYPE_QUEUE) |
4738 | + flow->npc_action |= (uint64_t)rq << 20; |
4739 | + } |
4740 | } else if (req_act & ROC_NPC_ACTION_TYPE_DROP) { |
4741 | flow->npc_action = NIX_RX_ACTIONOP_DROP; |
4742 | } else if (req_act & ROC_NPC_ACTION_TYPE_QUEUE) { |
4743 | @@ -531,8 +535,7 @@ npc_parse_actions(struct roc_npc *roc_npc, const struct roc_npc_attr *attr, |
4744 | } else if (req_act & ROC_NPC_ACTION_TYPE_SEC) { |
4745 | flow->npc_action = NIX_RX_ACTIONOP_UCAST_IPSEC; |
4746 | flow->npc_action |= (uint64_t)rq << 20; |
4747 | - } else if (req_act & |
4748 | - (ROC_NPC_ACTION_TYPE_FLAG | ROC_NPC_ACTION_TYPE_MARK)) { |
4749 | + } else if (req_act & (ROC_NPC_ACTION_TYPE_FLAG | ROC_NPC_ACTION_TYPE_MARK)) { |
4750 | flow->npc_action = NIX_RX_ACTIONOP_UCAST; |
4751 | } else if (req_act & ROC_NPC_ACTION_TYPE_COUNT) { |
4752 | /* Keep ROC_NPC_ACTION_TYPE_COUNT_ACT always at the end |
4753 | diff --git a/drivers/common/cnxk/roc_npc_mcam_dump.c b/drivers/common/cnxk/roc_npc_mcam_dump.c |
4754 | index 51305b4..1ba3d8f 100644 |
4755 | --- a/drivers/common/cnxk/roc_npc_mcam_dump.c |
4756 | +++ b/drivers/common/cnxk/roc_npc_mcam_dump.c |
4757 | @@ -442,6 +442,10 @@ npc_flow_dump_rx_action(FILE *file, uint64_t npc_action) |
4758 | plt_strlcpy(index_name, "Multicast/mirror table index", |
4759 | NPC_MAX_FIELD_NAME_SIZE); |
4760 | break; |
4761 | + case NIX_RX_ACTIONOP_DEFAULT: |
4762 | + fprintf(file, "NIX_RX_ACTIONOP_DEFAULT (%" PRIu64 ")\n", |
4763 | + (uint64_t)NIX_RX_ACTIONOP_DEFAULT); |
4764 | + break; |
4765 | default: |
4766 | plt_err("Unknown NIX_RX_ACTIONOP found"); |
4767 | return; |
4768 | diff --git a/drivers/common/iavf/iavf_common.c b/drivers/common/iavf/iavf_common.c |
4769 | index 855a0ab..dc7662b 100644 |
4770 | --- a/drivers/common/iavf/iavf_common.c |
4771 | +++ b/drivers/common/iavf/iavf_common.c |
4772 | @@ -27,6 +27,8 @@ enum iavf_status iavf_set_mac_type(struct iavf_hw *hw) |
4773 | break; |
4774 | case IAVF_DEV_ID_VF: |
4775 | case IAVF_DEV_ID_VF_HV: |
4776 | + hw->mac.type = IAVF_MAC_XL710; |
4777 | + break; |
4778 | case IAVF_DEV_ID_ADAPTIVE_VF: |
4779 | hw->mac.type = IAVF_MAC_VF; |
4780 | break; |
4781 | diff --git a/drivers/common/mlx5/linux/meson.build b/drivers/common/mlx5/linux/meson.build |
4782 | index 4c7b53b..8be8285 100644 |
4783 | --- a/drivers/common/mlx5/linux/meson.build |
4784 | +++ b/drivers/common/mlx5/linux/meson.build |
4785 | @@ -202,6 +202,8 @@ has_sym_args = [ |
4786 | 'mlx5dv_dr_domain_allow_duplicate_rules' ], |
4787 | [ 'HAVE_MLX5_IBV_REG_MR_IOVA', 'infiniband/verbs.h', |
4788 | 'ibv_reg_mr_iova' ], |
4789 | + [ 'HAVE_IBV_FORK_UNNEEDED', 'infiniband/verbs.h', |
4790 | + 'ibv_is_fork_initialized'], |
4791 | ] |
4792 | config = configuration_data() |
4793 | foreach arg:has_sym_args |
4794 | diff --git a/drivers/common/mlx5/linux/mlx5_common_os.c b/drivers/common/mlx5/linux/mlx5_common_os.c |
4795 | index eeb583a..9fd6c1b 100644 |
4796 | --- a/drivers/common/mlx5/linux/mlx5_common_os.c |
4797 | +++ b/drivers/common/mlx5/linux/mlx5_common_os.c |
4798 | @@ -95,10 +95,11 @@ mlx5_translate_port_name(const char *port_name_in, |
4799 | char ctrl = 0, pf_c1, pf_c2, vf_c1, vf_c2, eol; |
4800 | char *end; |
4801 | int sc_items; |
4802 | + int32_t ctrl_num = -1; |
4803 | |
4804 | - sc_items = sscanf(port_name_in, "%c%d", |
4805 | - &ctrl, &port_info_out->ctrl_num); |
4806 | + sc_items = sscanf(port_name_in, "%c%d", &ctrl, &ctrl_num); |
4807 | if (sc_items == 2 && ctrl == 'c') { |
4808 | + port_info_out->ctrl_num = ctrl_num; |
4809 | port_name_in++; /* 'c' */ |
4810 | port_name_in += snprintf(NULL, 0, "%d", |
4811 | port_info_out->ctrl_num); |
4812 | diff --git a/drivers/common/mlx5/linux/mlx5_glue.c b/drivers/common/mlx5/linux/mlx5_glue.c |
4813 | index bc66220..e29b3b8 100644 |
4814 | --- a/drivers/common/mlx5/linux/mlx5_glue.c |
4815 | +++ b/drivers/common/mlx5/linux/mlx5_glue.c |
4816 | @@ -19,6 +19,10 @@ |
4817 | static int |
4818 | mlx5_glue_fork_init(void) |
4819 | { |
4820 | +#ifdef HAVE_IBV_FORK_UNNEEDED |
4821 | + if (ibv_is_fork_initialized() == IBV_FORK_UNNEEDED) |
4822 | + return 0; /* ibv_fork_init() not needed */ |
4823 | +#endif |
4824 | return ibv_fork_init(); |
4825 | } |
4826 | |
4827 | diff --git a/drivers/common/qat/meson.build b/drivers/common/qat/meson.build |
4828 | index af92271..1606fad 100644 |
4829 | --- a/drivers/common/qat/meson.build |
4830 | +++ b/drivers/common/qat/meson.build |
4831 | @@ -35,14 +35,6 @@ if qat_crypto and not libcrypto.found() |
4832 | 'missing dependency, libcrypto') |
4833 | endif |
4834 | |
4835 | -# The driver should not build if both compression and crypto are disabled |
4836 | -#FIXME common code depends on compression files so check only compress! |
4837 | -if not qat_compress # and not qat_crypto |
4838 | - build = false |
4839 | - reason = '' # rely on reason for compress/crypto above |
4840 | - subdir_done() |
4841 | -endif |
4842 | - |
4843 | deps += ['bus_pci', 'cryptodev', 'net', 'compressdev'] |
4844 | sources += files( |
4845 | 'qat_common.c', |
4846 | diff --git a/drivers/common/qat/qat_qp.c b/drivers/common/qat/qat_qp.c |
4847 | index cde421e..5a39a90 100644 |
4848 | --- a/drivers/common/qat/qat_qp.c |
4849 | +++ b/drivers/common/qat/qat_qp.c |
4850 | @@ -452,20 +452,6 @@ adf_configure_queues(struct qat_qp *qp, enum qat_device_gen qat_dev_gen) |
4851 | } |
4852 | |
4853 | static inline void |
4854 | -txq_write_tail(enum qat_device_gen qat_dev_gen, |
4855 | - struct qat_qp *qp, struct qat_queue *q) |
4856 | -{ |
4857 | - struct qat_qp_hw_spec_funcs *ops = |
4858 | - qat_qp_hw_spec[qat_dev_gen]; |
4859 | - |
4860 | - /* |
4861 | - * Pointer check should be done during |
4862 | - * initialization |
4863 | - */ |
4864 | - ops->qat_qp_csr_write_tail(qp, q); |
4865 | -} |
4866 | - |
4867 | -static inline void |
4868 | qat_qp_csr_write_head(enum qat_device_gen qat_dev_gen, struct qat_qp *qp, |
4869 | struct qat_queue *q, uint32_t new_head) |
4870 | { |
4871 | @@ -643,179 +629,6 @@ kick_tail: |
4872 | return nb_ops_sent; |
4873 | } |
4874 | |
4875 | -/* Use this for compression only - but keep consistent with above common |
4876 | - * function as much as possible. |
4877 | - */ |
4878 | -uint16_t |
4879 | -qat_enqueue_comp_op_burst(void *qp, void **ops, uint16_t nb_ops) |
4880 | -{ |
4881 | - register struct qat_queue *queue; |
4882 | - struct qat_qp *tmp_qp = (struct qat_qp *)qp; |
4883 | - register uint32_t nb_ops_sent = 0; |
4884 | - register int nb_desc_to_build; |
4885 | - uint16_t nb_ops_possible = nb_ops; |
4886 | - register uint8_t *base_addr; |
4887 | - register uint32_t tail; |
4888 | - |
4889 | - int descriptors_built, total_descriptors_built = 0; |
4890 | - int nb_remaining_descriptors; |
4891 | - int overflow = 0; |
4892 | - |
4893 | - if (unlikely(nb_ops == 0)) |
4894 | - return 0; |
4895 | - |
4896 | - /* read params used a lot in main loop into registers */ |
4897 | - queue = &(tmp_qp->tx_q); |
4898 | - base_addr = (uint8_t *)queue->base_addr; |
4899 | - tail = queue->tail; |
4900 | - |
4901 | - /* Find how many can actually fit on the ring */ |
4902 | - { |
4903 | - /* dequeued can only be written by one thread, but it may not |
4904 | - * be this thread. As it's 4-byte aligned it will be read |
4905 | - * atomically here by any Intel CPU. |
4906 | - * enqueued can wrap before dequeued, but cannot |
4907 | - * lap it as var size of enq/deq (uint32_t) > var size of |
4908 | - * max_inflights (uint16_t). In reality inflights is never |
4909 | - * even as big as max uint16_t, as it's <= ADF_MAX_DESC. |
4910 | - * On wrapping, the calculation still returns the correct |
4911 | - * positive value as all three vars are unsigned. |
4912 | - */ |
4913 | - uint32_t inflights = |
4914 | - tmp_qp->enqueued - tmp_qp->dequeued; |
4915 | - |
4916 | - /* Find how many can actually fit on the ring */ |
4917 | - overflow = (inflights + nb_ops) - tmp_qp->max_inflights; |
4918 | - if (overflow > 0) { |
4919 | - nb_ops_possible = nb_ops - overflow; |
4920 | - if (nb_ops_possible == 0) |
4921 | - return 0; |
4922 | - } |
4923 | - |
4924 | - /* QAT has plenty of work queued already, so don't waste cycles |
4925 | - * enqueueing, wait til the application has gathered a bigger |
4926 | - * burst or some completed ops have been dequeued |
4927 | - */ |
4928 | - if (tmp_qp->min_enq_burst_threshold && inflights > |
4929 | - QAT_QP_MIN_INFL_THRESHOLD && nb_ops_possible < |
4930 | - tmp_qp->min_enq_burst_threshold) { |
4931 | - tmp_qp->stats.threshold_hit_count++; |
4932 | - return 0; |
4933 | - } |
4934 | - } |
4935 | - |
4936 | - /* At this point nb_ops_possible is assuming a 1:1 mapping |
4937 | - * between ops and descriptors. |
4938 | - * Fewer may be sent if some ops have to be split. |
4939 | - * nb_ops_possible is <= burst size. |
4940 | - * Find out how many spaces are actually available on the qp in case |
4941 | - * more are needed. |
4942 | - */ |
4943 | - nb_remaining_descriptors = nb_ops_possible |
4944 | - + ((overflow >= 0) ? 0 : overflow * (-1)); |
4945 | - QAT_DP_LOG(DEBUG, "Nb ops requested %d, nb descriptors remaining %d", |
4946 | - nb_ops, nb_remaining_descriptors); |
4947 | - |
4948 | - while (nb_ops_sent != nb_ops_possible && |
4949 | - nb_remaining_descriptors > 0) { |
4950 | - struct qat_comp_op_cookie *cookie = |
4951 | - tmp_qp->op_cookies[tail >> queue->trailz]; |
4952 | - |
4953 | - descriptors_built = 0; |
4954 | - |
4955 | - QAT_DP_LOG(DEBUG, "--- data length: %u", |
4956 | - ((struct rte_comp_op *)*ops)->src.length); |
4957 | - |
4958 | - nb_desc_to_build = qat_comp_build_request(*ops, |
4959 | - base_addr + tail, cookie, tmp_qp->qat_dev_gen); |
4960 | - QAT_DP_LOG(DEBUG, "%d descriptors built, %d remaining, " |
4961 | - "%d ops sent, %d descriptors needed", |
4962 | - total_descriptors_built, nb_remaining_descriptors, |
4963 | - nb_ops_sent, nb_desc_to_build); |
4964 | - |
4965 | - if (unlikely(nb_desc_to_build < 0)) { |
4966 | - /* this message cannot be enqueued */ |
4967 | - tmp_qp->stats.enqueue_err_count++; |
4968 | - if (nb_ops_sent == 0) |
4969 | - return 0; |
4970 | - goto kick_tail; |
4971 | - } else if (unlikely(nb_desc_to_build > 1)) { |
4972 | - /* this op is too big and must be split - get more |
4973 | - * descriptors and retry |
4974 | - */ |
4975 | - |
4976 | - QAT_DP_LOG(DEBUG, "Build %d descriptors for this op", |
4977 | - nb_desc_to_build); |
4978 | - |
4979 | - nb_remaining_descriptors -= nb_desc_to_build; |
4980 | - if (nb_remaining_descriptors >= 0) { |
4981 | - /* There are enough remaining descriptors |
4982 | - * so retry |
4983 | - */ |
4984 | - int ret2 = qat_comp_build_multiple_requests( |
4985 | - *ops, tmp_qp, tail, |
4986 | - nb_desc_to_build); |
4987 | - |
4988 | - if (unlikely(ret2 < 1)) { |
4989 | - QAT_DP_LOG(DEBUG, |
4990 | - "Failed to build (%d) descriptors, status %d", |
4991 | - nb_desc_to_build, ret2); |
4992 | - |
4993 | - qat_comp_free_split_op_memzones(cookie, |
4994 | - nb_desc_to_build - 1); |
4995 | - |
4996 | - tmp_qp->stats.enqueue_err_count++; |
4997 | - |
4998 | - /* This message cannot be enqueued */ |
4999 | - if (nb_ops_sent == 0) |
5000 | - return 0; |
Thanks, Miriam.
I redid the merge locally and reached the same results.
Arguably, you don't really need to worry about lintian warnings regarding missing manpages when doing an MRE, but hey, there's no harm in silencing them.
The armhf dep8 test will never pass because the package does not support that architecture. Take a look at which architectures are listed on d/control to double check :-).
Build and dep8 tests look OK.
Therefore, LGTM. Uploaded.