Merge ~arif-ali/ubuntu/+source/dpdk:noble-23.11.4 into ubuntu/+source/dpdk:ubuntu/noble-devel

Proposed by Arif Ali
Status: Merged
Merged at revision: 15c455e0b6963096c5d281fcf1a1a263857e734b
Proposed branch: ~arif-ali/ubuntu/+source/dpdk:noble-23.11.4
Merge into: ubuntu/+source/dpdk:ubuntu/noble-devel
Diff against target: 26555 lines (+5814/-3965)
481 files modified
.github/workflows/build.yml (+38/-0)
.mailmap (+29/-4)
VERSION (+1/-1)
app/dumpcap/main.c (+10/-6)
app/proc-info/main.c (+3/-2)
app/test-bbdev/test_vectors/fft_byp_28.data (+24/-24)
app/test-pmd/cmdline.c (+265/-254)
app/test-pmd/cmdline_flow.c (+1/-13)
app/test-pmd/config.c (+8/-5)
app/test/test_common.c (+17/-14)
app/test/test_cryptodev.c (+36/-2)
app/test/test_cryptodev.h (+0/-1)
app/test/test_cryptodev_aes_test_vectors.h (+3/-3)
app/test/test_dmadev_api.c (+12/-4)
app/test/test_eal_flags.c (+2/-2)
app/test/test_event_crypto_adapter.c (+10/-14)
app/test/test_event_dma_adapter.c (+4/-1)
app/test/test_event_eth_rx_adapter.c (+1/-1)
app/test/test_eventdev.c (+1/-0)
app/test/test_link_bonding.c (+35/-41)
app/test/test_link_bonding_rssconf.c (+0/-1)
app/test/test_pcapng.c (+10/-2)
app/test/test_power_cpufreq.c (+18/-3)
app/test/test_ring_stress_impl.h (+1/-1)
app/test/test_security_inline_proto_vectors.h (+5/-3)
buildtools/get-numa-count.py (+1/-1)
buildtools/get-test-suites.py (+2/-2)
config/meson.build (+8/-5)
debian/changelog (+8/-0)
dev/null (+0/-870)
devtools/check-meson.py (+1/-1)
devtools/git-log-fixes.sh (+1/-1)
doc/guides/nics/e1000em.rst (+5/-0)
doc/guides/nics/features.rst (+21/-14)
doc/guides/nics/features/gve.ini (+1/-0)
doc/guides/nics/features/mana.ini (+0/-1)
doc/guides/nics/features/netvsc.ini (+0/-1)
doc/guides/nics/features/virtio.ini (+0/-1)
doc/guides/nics/features/vmxnet3.ini (+0/-1)
doc/guides/nics/igb.rst (+13/-0)
doc/guides/nics/igc.rst (+5/-0)
doc/guides/nics/ionic.rst (+13/-5)
doc/guides/nics/ixgbe.rst (+17/-5)
doc/guides/nics/mlx5.rst (+71/-0)
doc/guides/rel_notes/release_23_11.rst (+589/-0)
drivers/baseband/acc/acc_common.h (+1/-1)
drivers/baseband/acc/rte_acc100_pmd.c (+11/-47)
drivers/baseband/acc/rte_vrb_pmd.c (+16/-59)
drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c (+7/-7)
drivers/baseband/la12xx/bbdev_la12xx.c (+3/-2)
drivers/baseband/turbo_sw/bbdev_turbo_software.c (+2/-2)
drivers/bus/cdx/cdx_vfio.c (+4/-4)
drivers/bus/dpaa/base/fman/fman.c (+27/-2)
drivers/bus/dpaa/base/fman/fman_hw.c (+5/-4)
drivers/bus/dpaa/base/qbman/qman.c (+31/-23)
drivers/bus/dpaa/include/fman.h (+2/-1)
drivers/bus/fslmc/fslmc_bus.c (+4/-4)
drivers/bus/fslmc/fslmc_vfio.c (+5/-5)
drivers/bus/fslmc/portal/dpaa2_hw_dpci.c (+2/-2)
drivers/bus/fslmc/qbman/qbman_debug.c (+32/-17)
drivers/bus/ifpga/ifpga_bus.c (+4/-4)
drivers/bus/pci/pci_common.c (+2/-12)
drivers/bus/vdev/vdev.c (+1/-20)
drivers/bus/vdev/vdev_params.c (+1/-1)
drivers/bus/vmbus/vmbus_common.c (+1/-1)
drivers/common/cnxk/cnxk_security.c (+1/-1)
drivers/common/cnxk/roc_bphy_cgx.c (+6/-6)
drivers/common/cnxk/roc_dev.c (+8/-10)
drivers/common/cnxk/roc_dev_priv.h (+2/-0)
drivers/common/cnxk/roc_dpi_priv.h (+1/-1)
drivers/common/cnxk/roc_ie_ot.c (+1/-0)
drivers/common/cnxk/roc_irq.c (+1/-1)
drivers/common/cnxk/roc_model.c (+1/-1)
drivers/common/cnxk/roc_nix_inl.c (+8/-0)
drivers/common/cnxk/roc_nix_mac.c (+0/-10)
drivers/common/cnxk/roc_nix_ops.c (+10/-10)
drivers/common/cnxk/roc_nix_tm.c (+1/-1)
drivers/common/cnxk/roc_nix_tm_mark.c (+1/-1)
drivers/common/cnxk/roc_nix_tm_ops.c (+1/-1)
drivers/common/cnxk/roc_nix_tm_utils.c (+1/-1)
drivers/common/cnxk/roc_npa.h (+1/-1)
drivers/common/cnxk/roc_npc.c (+2/-1)
drivers/common/cnxk/roc_platform.c (+1/-1)
drivers/common/cnxk/roc_sso.c (+8/-1)
drivers/common/cnxk/roc_tim.c (+1/-1)
drivers/common/cpt/cpt_ucode.h (+2/-2)
drivers/common/dpaax/caamflib/desc/pdcp.h (+10/-0)
drivers/common/dpaax/caamflib/rta/operation_cmd.h (+0/-4)
drivers/common/iavf/iavf_prototype.h (+1/-0)
drivers/common/iavf/version.map (+1/-0)
drivers/common/idpf/base/idpf_osdep.h (+8/-2)
drivers/common/idpf/idpf_common_device.c (+1/-2)
drivers/common/idpf/idpf_common_logs.h (+1/-4)
drivers/common/idpf/idpf_common_rxtx_avx512.c (+15/-4)
drivers/common/mlx5/mlx5_common_utils.h (+1/-1)
drivers/common/mlx5/mlx5_devx_cmds.c (+1/-0)
drivers/common/mlx5/mlx5_devx_cmds.h (+1/-0)
drivers/common/mlx5/mlx5_prm.h (+30/-3)
drivers/common/mlx5/windows/mlx5_win_defs.h (+0/-12)
drivers/common/nfp/nfp_common_ctrl.h (+1/-0)
drivers/common/octeontx/octeontx_mbox.c (+2/-2)
drivers/common/qat/meson.build (+1/-1)
drivers/common/qat/qat_device.c (+1/-5)
drivers/common/qat/qat_pf2vf.c (+2/-2)
drivers/common/qat/qat_qp.c (+1/-1)
drivers/compress/isal/isal_compress_pmd.c (+39/-39)
drivers/compress/mlx5/mlx5_compress.c (+2/-2)
drivers/compress/octeontx/otx_zip.h (+6/-6)
drivers/compress/octeontx/otx_zip_pmd.c (+7/-7)
drivers/compress/zlib/zlib_pmd.c (+13/-13)
drivers/compress/zlib/zlib_pmd_ops.c (+2/-2)
drivers/crypto/bcmfs/bcmfs_device.c (+2/-2)
drivers/crypto/bcmfs/bcmfs_qp.c (+1/-1)
drivers/crypto/bcmfs/bcmfs_sym_pmd.c (+1/-1)
drivers/crypto/bcmfs/bcmfs_sym_session.c (+1/-1)
drivers/crypto/caam_jr/caam_jr.c (+16/-16)
drivers/crypto/caam_jr/caam_jr_uio.c (+3/-3)
drivers/crypto/ccp/ccp_dev.c (+1/-1)
drivers/crypto/ccp/rte_ccp_pmd.c (+1/-1)
drivers/crypto/cnxk/cn9k_cryptodev_ops.c (+2/-0)
drivers/crypto/cnxk/cnxk_se.h (+4/-4)
drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c (+26/-25)
drivers/crypto/dpaa2_sec/dpaa2_sec_raw_dp.c (+8/-8)
drivers/crypto/dpaa_sec/dpaa_sec.c (+15/-16)
drivers/crypto/dpaa_sec/dpaa_sec_log.h (+1/-1)
drivers/crypto/dpaa_sec/dpaa_sec_raw_dp.c (+3/-3)
drivers/crypto/ipsec_mb/ipsec_mb_private.c (+2/-2)
drivers/crypto/ipsec_mb/ipsec_mb_private.h (+1/-1)
drivers/crypto/ipsec_mb/meson.build (+1/-1)
drivers/crypto/ipsec_mb/pmd_aesni_mb.c (+14/-14)
drivers/crypto/ipsec_mb/pmd_snow3g.c (+2/-2)
drivers/crypto/mlx5/mlx5_crypto_gcm.c (+1/-1)
drivers/crypto/mlx5/mlx5_crypto_xts.c (+1/-1)
drivers/crypto/octeontx/otx_cryptodev_hw_access.h (+3/-3)
drivers/crypto/openssl/rte_openssl_pmd.c (+39/-46)
drivers/crypto/openssl/rte_openssl_pmd_ops.c (+22/-22)
drivers/crypto/qat/qat_asym.c (+42/-3)
drivers/crypto/qat/qat_sym_session.c (+7/-8)
drivers/crypto/scheduler/scheduler_pmd_ops.c (+1/-1)
drivers/crypto/uadk/uadk_crypto_pmd.c (+4/-4)
drivers/crypto/virtio/virtio_cryptodev.c (+7/-9)
drivers/crypto/virtio/virtio_rxtx.c (+1/-2)
drivers/dma/dpaa/dpaa_qdma.c (+20/-20)
drivers/dma/dpaa2/dpaa2_qdma.c (+5/-5)
drivers/dma/hisilicon/hisi_dmadev.c (+3/-3)
drivers/dma/idxd/idxd_common.c (+1/-1)
drivers/dma/idxd/idxd_pci.c (+4/-4)
drivers/dma/ioat/ioat_dmadev.c (+7/-7)
drivers/event/cnxk/cn10k_eventdev.c (+46/-0)
drivers/event/cnxk/cn9k_eventdev.c (+31/-0)
drivers/event/cnxk/cnxk_eventdev.c (+1/-1)
drivers/event/cnxk/cnxk_eventdev_adptr.c (+1/-1)
drivers/event/cnxk/cnxk_tim_evdev.c (+1/-1)
drivers/event/dlb2/dlb2.c (+110/-110)
drivers/event/dlb2/dlb2_xstats.c (+3/-3)
drivers/event/dlb2/pf/dlb2_main.c (+26/-26)
drivers/event/dlb2/pf/dlb2_pf.c (+10/-10)
drivers/event/dpaa/dpaa_eventdev.c (+5/-5)
drivers/event/dpaa2/dpaa2_eventdev.c (+7/-7)
drivers/event/octeontx/ssovf_evdev.c (+13/-3)
drivers/event/octeontx/timvf_evdev.c (+1/-1)
drivers/event/opdl/opdl_evdev.c (+15/-15)
drivers/event/opdl/opdl_test.c (+58/-58)
drivers/event/sw/sw_evdev.c (+11/-11)
drivers/event/sw/sw_evdev_xstats.c (+2/-2)
drivers/mempool/dpaa2/dpaa2_hw_mempool.c (+4/-4)
drivers/mempool/octeontx/octeontx_fpavf.c (+10/-12)
drivers/mempool/octeontx/rte_mempool_octeontx.c (+3/-3)
drivers/ml/cnxk/cn10k_ml_dev.c (+16/-16)
drivers/ml/cnxk/cnxk_ml_ops.c (+18/-14)
drivers/ml/cnxk/mvtvm_ml_model.c (+1/-1)
drivers/net/af_packet/rte_eth_af_packet.c (+15/-15)
drivers/net/atlantic/atl_rxtx.c (+2/-2)
drivers/net/atlantic/hw_atl/hw_atl_utils.c (+6/-6)
drivers/net/axgbe/axgbe_ethdev.c (+1/-1)
drivers/net/bnx2x/bnx2x.c (+11/-16)
drivers/net/bnx2x/bnx2x_stats.c (+0/-4)
drivers/net/bnxt/bnxt_ethdev.c (+15/-8)
drivers/net/bnxt/bnxt_txr.c (+12/-5)
drivers/net/bnxt/tf_core/cfa_tcam_mgr.c (+8/-3)
drivers/net/bnxt/tf_core/tf_msg.c (+15/-15)
drivers/net/bnxt/tf_core/tf_sram_mgr.c (+2/-2)
drivers/net/bnxt/tf_ulp/bnxt_tf_pmd_shim.c (+14/-2)
drivers/net/bonding/rte_eth_bond_8023ad.c (+2/-2)
drivers/net/bonding/rte_eth_bond_8023ad.h (+3/-0)
drivers/net/bonding/rte_eth_bond_alb.c (+1/-1)
drivers/net/bonding/rte_eth_bond_api.c (+2/-2)
drivers/net/bonding/rte_eth_bond_pmd.c (+25/-6)
drivers/net/cnxk/cn10k_ethdev.c (+16/-2)
drivers/net/cnxk/cn10k_ethdev_sec.c (+10/-0)
drivers/net/cnxk/cn10k_tx.h (+5/-2)
drivers/net/cnxk/cn9k_ethdev.c (+15/-2)
drivers/net/cnxk/cn9k_tx.h (+5/-2)
drivers/net/cnxk/cnxk_ethdev.c (+3/-3)
drivers/net/cnxk/cnxk_ethdev.h (+11/-0)
drivers/net/cnxk/cnxk_ethdev_devargs.c (+1/-1)
drivers/net/cnxk/cnxk_ethdev_mcs.c (+7/-7)
drivers/net/cnxk/cnxk_ethdev_ops.c (+1/-1)
drivers/net/cnxk/cnxk_ethdev_sec.c (+1/-1)
drivers/net/cnxk/version.map (+1/-0)
drivers/net/cpfl/cpfl_ethdev.c (+1/-1)
drivers/net/cpfl/cpfl_flow_engine_fxp.c (+6/-0)
drivers/net/cpfl/cpfl_flow_parser.c (+23/-14)
drivers/net/cpfl/cpfl_fxp_rule.c (+4/-4)
drivers/net/dpaa/dpaa_ethdev.c (+4/-2)
drivers/net/dpaa/dpaa_rxtx.c (+4/-5)
drivers/net/dpaa2/dpaa2_ethdev.c (+9/-10)
drivers/net/dpaa2/dpaa2_flow.c (+18/-18)
drivers/net/dpaa2/dpaa2_mux.c (+2/-2)
drivers/net/dpaa2/dpaa2_recycle.c (+3/-3)
drivers/net/dpaa2/dpaa2_rxtx.c (+10/-10)
drivers/net/dpaa2/dpaa2_sparser.c (+4/-4)
drivers/net/dpaa2/dpaa2_tm.c (+24/-17)
drivers/net/e1000/base/e1000_80003es2lan.c (+1/-1)
drivers/net/e1000/base/e1000_82575.c (+4/-2)
drivers/net/e1000/base/e1000_api.c (+1/-0)
drivers/net/e1000/base/e1000_base.c (+2/-1)
drivers/net/e1000/base/e1000_defines.h (+1/-0)
drivers/net/e1000/base/e1000_ich8lan.c (+2/-0)
drivers/net/e1000/base/e1000_mac.c (+7/-5)
drivers/net/e1000/base/e1000_nvm.c (+2/-2)
drivers/net/e1000/base/e1000_phy.c (+12/-13)
drivers/net/e1000/base/e1000_vf.c (+7/-5)
drivers/net/e1000/base/meson.build (+1/-2)
drivers/net/e1000/em_ethdev.c (+83/-0)
drivers/net/e1000/igb_ethdev.c (+179/-3)
drivers/net/ena/base/ena_plat_dpdk.h (+1/-9)
drivers/net/enetc/enetc_ethdev.c (+2/-2)
drivers/net/enetfec/enet_ethdev.c (+2/-3)
drivers/net/enetfec/enet_uio.c (+5/-5)
drivers/net/enic/enic_ethdev.c (+10/-10)
drivers/net/enic/enic_flow.c (+10/-10)
drivers/net/enic/enic_vf_representor.c (+8/-8)
drivers/net/failsafe/failsafe_args.c (+1/-1)
drivers/net/failsafe/failsafe_eal.c (+1/-1)
drivers/net/failsafe/failsafe_ether.c (+2/-2)
drivers/net/failsafe/failsafe_intr.c (+3/-3)
drivers/net/gve/base/gve_adminq.c (+1/-1)
drivers/net/gve/base/gve_osdep.h (+36/-12)
drivers/net/gve/gve_ethdev.c (+140/-28)
drivers/net/gve/gve_ethdev.h (+6/-1)
drivers/net/gve/gve_rx.c (+1/-1)
drivers/net/gve/gve_rx_dqo.c (+29/-57)
drivers/net/gve/gve_tx_dqo.c (+8/-3)
drivers/net/hinic/base/hinic_pmd_eqs.c (+1/-1)
drivers/net/hinic/base/hinic_pmd_mbox.c (+3/-3)
drivers/net/hinic/base/hinic_pmd_niccfg.c (+4/-4)
drivers/net/hinic/hinic_pmd_ethdev.c (+2/-2)
drivers/net/hinic/hinic_pmd_flow.c (+7/-7)
drivers/net/hns3/hns3_cmd.c (+13/-9)
drivers/net/hns3/hns3_cmd.h (+2/-2)
drivers/net/hns3/hns3_common.c (+1/-1)
drivers/net/hns3/hns3_common.h (+1/-1)
drivers/net/hns3/hns3_dump.c (+10/-6)
drivers/net/hns3/hns3_ethdev.c (+30/-4)
drivers/net/hns3/hns3_ethdev.h (+0/-2)
drivers/net/hns3/hns3_fdir.c (+1/-0)
drivers/net/hns3/hns3_flow.c (+6/-1)
drivers/net/hns3/hns3_intr.c (+14/-8)
drivers/net/hns3/hns3_intr.h (+1/-1)
drivers/net/hns3/hns3_ptp.c (+1/-1)
drivers/net/hns3/hns3_regs.c (+5/-13)
drivers/net/hns3/hns3_rxtx.c (+1/-1)
drivers/net/i40e/base/i40e_adminq.c (+17/-2)
drivers/net/i40e/base/i40e_common.c (+4/-38)
drivers/net/i40e/base/i40e_devids.h (+2/-1)
drivers/net/i40e/base/i40e_diag.c (+6/-6)
drivers/net/i40e/base/i40e_nvm.c (+8/-8)
drivers/net/i40e/i40e_ethdev.c (+17/-20)
drivers/net/i40e/i40e_flow.c (+65/-12)
drivers/net/i40e/i40e_pf.c (+4/-4)
drivers/net/i40e/i40e_rxtx.c (+12/-12)
drivers/net/i40e/i40e_rxtx_vec_avx2.c (+1/-1)
drivers/net/i40e/i40e_rxtx_vec_avx512.c (+8/-1)
drivers/net/i40e/meson.build (+3/-0)
drivers/net/iavf/iavf_ethdev.c (+20/-41)
drivers/net/iavf/iavf_rxtx.c (+9/-7)
drivers/net/iavf/iavf_rxtx.h (+2/-0)
drivers/net/iavf/iavf_rxtx_vec_avx2.c (+1/-1)
drivers/net/iavf/iavf_rxtx_vec_avx512.c (+7/-0)
drivers/net/iavf/iavf_rxtx_vec_neon.c (+2/-6)
drivers/net/iavf/iavf_vchnl.c (+3/-2)
drivers/net/iavf/meson.build (+3/-0)
drivers/net/ice/base/ice_adminq_cmd.h (+1/-1)
drivers/net/ice/base/ice_controlq.c (+21/-2)
drivers/net/ice/base/ice_nvm.c (+24/-12)
drivers/net/ice/base/ice_switch.c (+0/-2)
drivers/net/ice/ice_dcf_ethdev.c (+2/-2)
drivers/net/ice/ice_dcf_vf_representor.c (+7/-7)
drivers/net/ice/ice_ethdev.c (+26/-22)
drivers/net/ice/ice_fdir_filter.c (+1/-1)
drivers/net/ice/ice_generic_flow.c (+26/-15)
drivers/net/ice/ice_hash.c (+4/-4)
drivers/net/ice/ice_rxtx.c (+16/-1)
drivers/net/ice/ice_rxtx_vec_avx2.c (+1/-1)
drivers/net/ice/ice_rxtx_vec_avx512.c (+7/-0)
drivers/net/ice/meson.build (+3/-0)
drivers/net/igc/base/igc_defines.h (+1/-0)
drivers/net/igc/base/igc_i225.c (+16/-8)
drivers/net/igc/base/igc_mac.c (+6/-4)
drivers/net/igc/base/igc_nvm.c (+2/-2)
drivers/net/igc/base/igc_phy.c (+3/-5)
drivers/net/igc/igc_ethdev.c (+96/-0)
drivers/net/igc/igc_txrx.c (+26/-0)
drivers/net/ionic/ionic_osdep.h (+22/-8)
drivers/net/ipn3ke/ipn3ke_ethdev.c (+2/-2)
drivers/net/ipn3ke/ipn3ke_flow.c (+11/-12)
drivers/net/ipn3ke/ipn3ke_representor.c (+10/-10)
drivers/net/ipn3ke/ipn3ke_tm.c (+3/-7)
drivers/net/ixgbe/base/ixgbe_82599.c (+5/-3)
drivers/net/ixgbe/ixgbe_ethdev.c (+244/-10)
drivers/net/ixgbe/ixgbe_ipsec.c (+12/-12)
drivers/net/ixgbe/ixgbe_pf.c (+9/-9)
drivers/net/ixgbe/ixgbe_rxtx.h (+1/-1)
drivers/net/ixgbe/rte_pmd_ixgbe.c (+4/-4)
drivers/net/mana/mana.c (+59/-44)
drivers/net/mana/mana.h (+1/-5)
drivers/net/mana/meson.build (+3/-1)
drivers/net/mana/mp.c (+1/-1)
drivers/net/memif/rte_eth_memif.c (+10/-2)
drivers/net/mlx4/mlx4.c (+2/-2)
drivers/net/mlx5/hws/mlx5dr.h (+3/-1)
drivers/net/mlx5/hws/mlx5dr_action.c (+55/-10)
drivers/net/mlx5/hws/mlx5dr_context.c (+6/-3)
drivers/net/mlx5/hws/mlx5dr_definer.c (+28/-20)
drivers/net/mlx5/hws/mlx5dr_definer.h (+12/-6)
drivers/net/mlx5/linux/mlx5_os.c (+10/-3)
drivers/net/mlx5/mlx5.c (+5/-1)
drivers/net/mlx5/mlx5.h (+6/-4)
drivers/net/mlx5/mlx5_ethdev.c (+4/-0)
drivers/net/mlx5/mlx5_flow.c (+2/-1)
drivers/net/mlx5/mlx5_flow.h (+11/-5)
drivers/net/mlx5/mlx5_flow_aso.c (+3/-3)
drivers/net/mlx5/mlx5_flow_dv.c (+24/-13)
drivers/net/mlx5/mlx5_flow_flex.c (+116/-78)
drivers/net/mlx5/mlx5_flow_hw.c (+60/-33)
drivers/net/mlx5/mlx5_flow_meter.c (+4/-2)
drivers/net/mlx5/mlx5_hws_cnt.c (+29/-20)
drivers/net/mlx5/mlx5_rx.c (+1/-1)
drivers/net/mlx5/mlx5_rx.h (+1/-0)
drivers/net/mlx5/mlx5_rxq.c (+22/-5)
drivers/net/mlx5/mlx5_rxtx.c (+80/-0)
drivers/net/mlx5/mlx5_rxtx_vec.c (+3/-0)
drivers/net/mlx5/mlx5_rxtx_vec_altivec.h (+7/-8)
drivers/net/mlx5/mlx5_rxtx_vec_neon.h (+13/-14)
drivers/net/mlx5/mlx5_rxtx_vec_sse.h (+4/-5)
drivers/net/mlx5/mlx5_trace.h (+6/-3)
drivers/net/mlx5/mlx5_trigger.c (+2/-2)
drivers/net/mlx5/mlx5_tx.c (+4/-4)
drivers/net/mlx5/mlx5_tx.h (+49/-4)
drivers/net/mlx5/mlx5_txpp.c (+2/-9)
drivers/net/mlx5/mlx5_txq.c (+8/-0)
drivers/net/mlx5/tools/mlx5_trace.py (+12/-5)
drivers/net/mlx5/windows/mlx5_os.c (+5/-3)
drivers/net/mvneta/mvneta_ethdev.c (+6/-0)
drivers/net/netvsc/hn_ethdev.c (+21/-17)
drivers/net/netvsc/hn_rxtx.c (+81/-12)
drivers/net/netvsc/hn_vf.c (+12/-1)
drivers/net/nfb/nfb_rx.c (+1/-1)
drivers/net/nfb/nfb_tx.c (+1/-1)
drivers/net/nfp/flower/nfp_conntrack.c (+4/-2)
drivers/net/nfp/flower/nfp_flower_ctrl.c (+14/-0)
drivers/net/nfp/flower/nfp_flower_representor.c (+4/-4)
drivers/net/nfp/flower/nfp_flower_representor.h (+2/-0)
drivers/net/nfp/nfp_ethdev.c (+30/-11)
drivers/net/nfp/nfp_flow.c (+0/-1)
drivers/net/nfp/nfp_ipsec.c (+2/-13)
drivers/net/nfp/nfp_net_common.c (+5/-5)
drivers/net/nfp/nfp_net_common.h (+2/-0)
drivers/net/ngbe/base/ngbe_hw.c (+1/-1)
drivers/net/ngbe/base/ngbe_regs.h (+2/-0)
drivers/net/ngbe/ngbe_ethdev.c (+45/-30)
drivers/net/ngbe/ngbe_pf.c (+5/-5)
drivers/net/octeon_ep/cnxk_ep_tx.c (+1/-1)
drivers/net/octeon_ep/cnxk_ep_vf.c (+6/-6)
drivers/net/octeon_ep/otx2_ep_vf.c (+9/-9)
drivers/net/octeon_ep/otx_ep_common.h (+1/-1)
drivers/net/octeon_ep/otx_ep_ethdev.c (+40/-40)
drivers/net/octeon_ep/otx_ep_mbox.c (+15/-18)
drivers/net/octeon_ep/otx_ep_rxtx.c (+37/-37)
drivers/net/octeon_ep/otx_ep_vf.c (+10/-10)
drivers/net/octeontx/base/octeontx_pkovf.c (+1/-1)
drivers/net/octeontx/octeontx_ethdev.c (+2/-2)
drivers/net/pcap/pcap_ethdev.c (+25/-18)
drivers/net/pfe/pfe_ethdev.c (+11/-11)
drivers/net/pfe/pfe_hif.c (+6/-6)
drivers/net/pfe/pfe_hif_lib.c (+1/-1)
drivers/net/qede/base/ecore_dcbx.c (+4/-4)
drivers/net/qede/qede_debug.c (+5/-0)
drivers/net/qede/qede_rxtx.c (+33/-33)
drivers/net/sfc/sfc_flow_rss.c (+2/-2)
drivers/net/sfc/sfc_mae.c (+9/-14)
drivers/net/sfc/sfc_repr.c (+0/-4)
drivers/net/tap/rte_eth_tap.c (+4/-3)
drivers/net/tap/tap_netlink.c (+2/-1)
drivers/net/thunderx/base/nicvf_mbox.c (+21/-21)
drivers/net/thunderx/nicvf_ethdev.c (+1/-1)
drivers/net/txgbe/base/txgbe_mng.c (+1/-0)
drivers/net/txgbe/base/txgbe_phy.c (+2/-6)
drivers/net/txgbe/base/txgbe_regs.h (+1/-1)
drivers/net/txgbe/txgbe_ethdev.c (+12/-2)
drivers/net/txgbe/txgbe_ipsec.c (+12/-12)
drivers/net/txgbe/txgbe_pf.c (+10/-10)
drivers/net/txgbe/txgbe_rxtx.c (+1/-2)
drivers/net/virtio/virtio_user/virtio_user_dev.c (+1/-1)
drivers/net/virtio/virtio_user_ethdev.c (+1/-0)
drivers/net/vmxnet3/vmxnet3_ethdev.c (+24/-15)
drivers/net/vmxnet3/vmxnet3_ethdev.h (+2/-2)
drivers/net/vmxnet3/vmxnet3_rxtx.c (+1/-1)
drivers/raw/cnxk_gpio/cnxk_gpio_selftest.c (+15/-9)
drivers/raw/dpaa2_cmdif/dpaa2_cmdif.c (+7/-7)
drivers/raw/ifpga/afu_pmd_n3000.c (+1/-1)
drivers/raw/ifpga/base/opae_intel_max10.c (+9/-2)
drivers/raw/ifpga/ifpga_rawdev.c (+51/-51)
drivers/regex/cn9k/cn9k_regexdev.c (+1/-1)
drivers/vdpa/ifc/ifcvf_vdpa.c (+5/-5)
drivers/vdpa/nfp/nfp_vdpa.c (+1/-1)
drivers/vdpa/nfp/nfp_vdpa_core.c (+21/-4)
dts/tests/TestSuite_smoke_tests.py (+1/-1)
examples/eventdev_pipeline/pipeline_worker_generic.c (+8/-4)
examples/ipsec-secgw/event_helper.c (+1/-1)
examples/ipsec-secgw/ipsec-secgw.c (+4/-2)
examples/ipsec-secgw/ipsec_process.c (+2/-1)
examples/ipsec-secgw/sa.c (+2/-2)
examples/l2fwd-event/l2fwd_event.c (+1/-0)
examples/l3fwd-power/main.c (+23/-22)
examples/l3fwd/l3fwd_altivec.h (+5/-1)
examples/l3fwd/l3fwd_common.h (+7/-0)
examples/l3fwd/l3fwd_em_hlm.h (+1/-1)
examples/l3fwd/l3fwd_em_sequential.h (+1/-1)
examples/l3fwd/l3fwd_fib.c (+1/-1)
examples/l3fwd/l3fwd_lpm_altivec.h (+1/-1)
examples/l3fwd/l3fwd_lpm_neon.h (+1/-1)
examples/l3fwd/l3fwd_lpm_sse.h (+1/-1)
examples/l3fwd/l3fwd_neon.h (+5/-1)
examples/l3fwd/l3fwd_sse.h (+5/-1)
examples/l3fwd/main.c (+3/-2)
examples/ntb/ntb_fwd.c (+4/-1)
examples/ptpclient/ptpclient.c (+1/-1)
examples/vhost_blk/vhost_blk.c (+1/-1)
examples/vhost_crypto/main.c (+2/-2)
lib/bpf/bpf_convert.c (+1/-1)
lib/dmadev/rte_dmadev.c (+1/-1)
lib/eal/common/eal_common_dev.c (+7/-6)
lib/eal/common/eal_common_devargs.c (+1/-1)
lib/eal/common/eal_common_lcore.c (+13/-5)
lib/eal/linux/eal_dev.c (+0/-3)
lib/eal/linux/eal_memory.c (+1/-0)
lib/eal/unix/meson.build (+5/-0)
lib/eal/unix/rte_thread.c (+25/-0)
lib/eal/x86/include/rte_io.h (+1/-1)
lib/eal/x86/include/rte_vect.h (+0/-2)
lib/ethdev/rte_ethdev.c (+26/-6)
lib/ethdev/rte_ethdev.h (+7/-1)
lib/eventdev/rte_event_dma_adapter.c (+3/-3)
lib/eventdev/rte_event_eth_rx_adapter.c (+1/-1)
lib/fib/dir24_8.c (+2/-2)
lib/fib/trie.c (+6/-4)
lib/gro/rte_gro.c (+1/-1)
lib/hash/rte_thash.c (+25/-1)
lib/member/rte_member_ht.c (+1/-1)
lib/mempool/rte_mempool.c (+3/-1)
lib/pcapng/rte_pcapng.c (+11/-11)
lib/pdump/rte_pdump.c (+3/-0)
lib/power/power_acpi_cpufreq.c (+5/-1)
lib/power/power_amd_pstate_cpufreq.c (+5/-1)
lib/power/power_common.c (+22/-0)
lib/power/power_common.h (+1/-0)
lib/power/power_cppc_cpufreq.c (+6/-2)
lib/power/power_pstate_cpufreq.c (+5/-1)
lib/power/rte_power_pmd_mgmt.c (+6/-5)
lib/rcu/rte_rcu_qsbr.c (+8/-8)
lib/stack/rte_stack_lf_c11.h (+1/-1)
lib/vhost/rte_vhost.h (+2/-0)
lib/vhost/socket.c (+20/-8)
lib/vhost/vdpa.c (+1/-0)
lib/vhost/vduse.c (+2/-1)
lib/vhost/vhost.c (+3/-2)
lib/vhost/vhost_crypto.c (+22/-3)
lib/vhost/vhost_user.c (+4/-2)
lib/vhost/virtio_net.c (+19/-1)
Reviewer Review Type Date Requested Status
Christian Ehrhardt (community) Approve
git-ubuntu import Pending
Review via email: mp+485420@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Christian Ehrhardt (paelzer) wrote :

Review Symbols:
+ = OK
! = Not OK
? = Question
N = Not applicable
S = Skipped

* Changelog:
  - [+] Changelog entry has correct version and targeted codename
  - [+] Correct formatting of changelog items
  - [+] Bug references correct
  - [N] Old content and logical tag match as expected (Package Merge)

* Git/maintenance:
  - [+] Commits are properly split (more important on -dev than on SRUs)

* New patches:
  - [+] No new patches added or dropped (it is odd that the security fix of Oracular isn't here, but it would now be in the new stable release, so it is fine to go forward)

* Many other sections are skipped as they do not apply
* I've compared the content with 23.11.4 upstream content to ensure the source was updates nice, and git can be so nice ... :-)

$ git diff v23.11.4 --dirstat
 100.0% debian/

* Build/Test:
  - we do not have a PPA, but Arif has tested those elsewhere IIRC and we will run testing on both sides so this is fine

This LGTM, thanks for also pulling the upstream release notes into the changelog as I usually did.

review: Approve
Revision history for this message
Christian Ehrhardt (paelzer) wrote :

FYI: I was surprised for a second why this branch follows a different naming scheme, but this isn't anything that breaks sponsoring this

Revision history for this message
Christian Ehrhardt (paelzer) wrote :

The former stuck in proposed upload was a stable backport itself and pointing to the same release, hence we should use just the latest changelog stanza (no -v to include both) as the new supersedes the old (leaving the old in there still is correct as it IMHO represents the history of how this went)

Revision history for this message
Christian Ehrhardt (paelzer) wrote :

Without a PPA and without a repo that has the pristine tar for it I need to ensure I get the right/your tarball. For this one I've reused what I've done for oracular.

Revision history for this message
Christian Ehrhardt (paelzer) wrote :

Uploading dpdk_23.11.4-0ubuntu0.24.04.1.dsc
Uploading dpdk_23.11.4.orig.tar.xz
Uploading dpdk_23.11.4-0ubuntu0.24.04.1.debian.tar.xz
Uploading dpdk_23.11.4-0ubuntu0.24.04.1_source.buildinfo
Uploading dpdk_23.11.4-0ubuntu0.24.04.1_source.changes

Revision history for this message
Arif Ali (arif-ali) wrote :

> FYI: I was surprised for a second why this branch follows a different naming
> scheme, but this isn't anything that breaks sponsoring this

It was the first one I did as an MR, and then found how people were actually doing it. Which then I followed that process :)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 6b35c56..056b15c 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -152,6 +152,44 @@ jobs:
152 build/meson-logs/meson-log.txt152 build/meson-logs/meson-log.txt
153 build/meson-logs/testlog.txt153 build/meson-logs/testlog.txt
154154
155 windows-vm-builds:
156 name: ${{ join(matrix.config.*, '-') }}
157 runs-on: ${{ matrix.config.os }}
158 strategy:
159 fail-fast: false
160 matrix:
161 config:
162 - os: windows-2022
163 compiler: msvc
164
165 steps:
166 - name: Checkout sources
167 uses: actions/checkout@v4
168 - name: Set up Python
169 uses: actions/setup-python@v5
170 with:
171 python-version: '3.x'
172 - name: Install dependencies
173 run: python -m pip install meson==1.6.1 ninja
174 - name: Configure
175 shell: cmd
176 run: |
177 call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" -host_arch=amd64 -arch=amd64
178 meson setup -Denable_stdatomic=true build
179 - name: Build
180 shell: cmd
181 run: |
182 call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" -host_arch=amd64 -arch=amd64
183 meson compile -C build
184 - name: Upload logs on failure
185 if: failure()
186 uses: actions/upload-artifact@v4
187 with:
188 name: meson-logs-${{ join(matrix.config.*, '-') }}
189 path: |
190 build/.ninja_log
191 build/meson-logs/meson-log.txt
192
155 prepare-container-images:193 prepare-container-images:
156 name: ${{ join(matrix.config.*, '-') }}194 name: ${{ join(matrix.config.*, '-') }}
157 runs-on: ubuntu-latest195 runs-on: ubuntu-latest
diff --git a/.mailmap b/.mailmap
index f288314..20fa4a2 100644
--- a/.mailmap
+++ b/.mailmap
@@ -80,6 +80,7 @@ Amaranath Somalapuram <asomalap@amd.com>
80Amine Kherbouche <amine.kherbouche@6wind.com>80Amine Kherbouche <amine.kherbouche@6wind.com>
81Amin Tootoonchian <amint@icsi.berkeley.edu>81Amin Tootoonchian <amint@icsi.berkeley.edu>
82Ami Sabo <amis@radware.com>82Ami Sabo <amis@radware.com>
83Amir Avivi <amir.avivi@intel.com>
83Amit Bernstein <amitbern@amazon.com>84Amit Bernstein <amitbern@amazon.com>
84Amit Gupta <agupta3@marvell.com>85Amit Gupta <agupta3@marvell.com>
85Amit Prakash Shukla <amitprakashs@marvell.com>86Amit Prakash Shukla <amitprakashs@marvell.com>
@@ -177,6 +178,7 @@ Bert van Leeuwen <bert.vanleeuwen@netronome.com>
177Bhagyada Modali <bhagyada.modali@amd.com>178Bhagyada Modali <bhagyada.modali@amd.com>
178Bharat Mota <bmota@vmware.com>179Bharat Mota <bmota@vmware.com>
179Bill Hong <bhong@brocade.com>180Bill Hong <bhong@brocade.com>
181Bill Xiang <xiangwencheng@dayudpu.com>
180Billy McFall <bmcfall@redhat.com>182Billy McFall <bmcfall@redhat.com>
181Billy O'Mahony <billy.o.mahony@intel.com>183Billy O'Mahony <billy.o.mahony@intel.com>
182Bing Zhao <bingz@nvidia.com> <bingz@mellanox.com> <bing.zhao@hxt-semitech.com>184Bing Zhao <bingz@nvidia.com> <bingz@mellanox.com> <bing.zhao@hxt-semitech.com>
@@ -211,6 +213,7 @@ Chandubabu Namburu <chandu@amd.com>
211Chang Miao <chang.miao@corigine.com>213Chang Miao <chang.miao@corigine.com>
212Changchun Ouyang <changchun.ouyang@intel.com>214Changchun Ouyang <changchun.ouyang@intel.com>
213Changpeng Liu <changpeng.liu@intel.com>215Changpeng Liu <changpeng.liu@intel.com>
216Changqi Dingluo <dingluochangqi.ck@bytedance.com>
214Changqing Wu <changqingx.wu@intel.com>217Changqing Wu <changqingx.wu@intel.com>
215Chaoyong He <chaoyong.he@corigine.com>218Chaoyong He <chaoyong.he@corigine.com>
216Chao Zhu <chaozhu@linux.vnet.ibm.com> <bjzhuc@cn.ibm.com>219Chao Zhu <chaozhu@linux.vnet.ibm.com> <bjzhuc@cn.ibm.com>
@@ -229,6 +232,7 @@ Cheng Peng <cheng.peng5@zte.com.cn>
229Chengwen Feng <fengchengwen@huawei.com>232Chengwen Feng <fengchengwen@huawei.com>
230Chenmin Sun <chenmin.sun@intel.com>233Chenmin Sun <chenmin.sun@intel.com>
231Chenming Chang <ccm@ccm.ink>234Chenming Chang <ccm@ccm.ink>
235Chenxingyu Wang <wangchenxingyu@huawei.com>
232Chenxu Di <chenxux.di@intel.com>236Chenxu Di <chenxux.di@intel.com>
233Chenyu Huang <chenyux.huang@intel.com>237Chenyu Huang <chenyux.huang@intel.com>
234Cheryl Houser <chouser@vmware.com>238Cheryl Houser <chouser@vmware.com>
@@ -334,6 +338,7 @@ Dheemanth Mallikarjun <dheemanthm@vmware.com>
334Diana Wang <na.wang@corigine.com>338Diana Wang <na.wang@corigine.com>
335Didier Pallard <didier.pallard@6wind.com>339Didier Pallard <didier.pallard@6wind.com>
336Dilshod Urazov <dilshod.urazov@oktetlabs.ru>340Dilshod Urazov <dilshod.urazov@oktetlabs.ru>
341Dima Ruinskiy <dima.ruinskiy@intel.com>
337Ding Zhi <zhi.ding@6wind.com>342Ding Zhi <zhi.ding@6wind.com>
338Diogo Behrens <diogo.behrens@huawei.com>343Diogo Behrens <diogo.behrens@huawei.com>
339Dirk-Holger Lenz <dirk.lenz@ng4t.com>344Dirk-Holger Lenz <dirk.lenz@ng4t.com>
@@ -438,7 +443,7 @@ Gargi Sau <gargi.sau@intel.com>
438Gary Mussar <gmussar@ciena.com>443Gary Mussar <gmussar@ciena.com>
439Gaurav Singh <gaurav1086@gmail.com>444Gaurav Singh <gaurav1086@gmail.com>
440Gautam Dawar <gdawar@solarflare.com>445Gautam Dawar <gdawar@solarflare.com>
441Gavin Hu <gavin.hu@arm.com> <gavin.hu@linaro.org>446Gavin Hu <gahu@nvidia.com> <gavin.hu@arm.com> <gavin.hu@linaro.org>
442Geoffrey Le Gourriérec <geoffrey.le_gourrierec@6wind.com>447Geoffrey Le Gourriérec <geoffrey.le_gourrierec@6wind.com>
443Geoffrey Lv <geoffrey.lv@gmail.com>448Geoffrey Lv <geoffrey.lv@gmail.com>
444Geoff Thorpe <geoff.thorpe@nxp.com>449Geoff Thorpe <geoff.thorpe@nxp.com>
@@ -580,6 +585,7 @@ Jacek Naczyk <jacek.naczyk@intel.com>
580Jacek Piasecki <jacekx.piasecki@intel.com>585Jacek Piasecki <jacekx.piasecki@intel.com>
581Jacek Siuda <jck@semihalf.com>586Jacek Siuda <jck@semihalf.com>
582Jacob Keller <jacob.e.keller@intel.com>587Jacob Keller <jacob.e.keller@intel.com>
588Jakub Buchocki <jakubx.buchocki@intel.com>
583Jakub Chylkowski <jakubx.chylkowski@intel.com>589Jakub Chylkowski <jakubx.chylkowski@intel.com>
584Jakub Grajciar <jgrajcia@cisco.com>590Jakub Grajciar <jgrajcia@cisco.com>
585Jakub Neruda <neruda@netcope.com>591Jakub Neruda <neruda@netcope.com>
@@ -636,6 +642,7 @@ Jia He <justin.he@arm.com> <jia.he@hxt-semitech.com>
636Jianbo Liu <jianbo.liu@arm.com> <jianbo.liu@linaro.org>642Jianbo Liu <jianbo.liu@arm.com> <jianbo.liu@linaro.org>
637Jianfeng Tan <jianfeng.tan@intel.com>643Jianfeng Tan <jianfeng.tan@intel.com>
638Jiangu Zhao <zhaojg@arraynetworks.com.cn>644Jiangu Zhao <zhaojg@arraynetworks.com.cn>
645Jianping Zhao <zhao305149619@gmail.com>
639Jianwei Ma <jianwei.ma@intel.com>646Jianwei Ma <jianwei.ma@intel.com>
640Jianwei Mei <jianweix.mei@intel.com>647Jianwei Mei <jianweix.mei@intel.com>
641Jiaqi Min <jiaqix.min@intel.com>648Jiaqi Min <jiaqix.min@intel.com>
@@ -710,10 +717,11 @@ Julien Aube <julien_dpdk@jaube.fr>
710Julien Castets <jcastets@scaleway.com>717Julien Castets <jcastets@scaleway.com>
711Julien Courtat <julien.courtat@6wind.com>718Julien Courtat <julien.courtat@6wind.com>
712Julien Cretin <julien.cretin@trust-in-soft.com>719Julien Cretin <julien.cretin@trust-in-soft.com>
720Julien Hascoet <ju.hascoet@gmail.com>
713Julien Massonneau <julien.massonneau@6wind.com>721Julien Massonneau <julien.massonneau@6wind.com>
714Julien Meunier <julien.meunier@nokia.com> <julien.meunier@6wind.com>722Julien Meunier <julien.meunier@nokia.com> <julien.meunier@6wind.com>
715Július Milan <jmilan.dev@gmail.com>723Július Milan <jmilan.dev@gmail.com>
716Junfeng Guo <junfeng.guo@intel.com>724Junfeng Guo <junfengg@nvidia.com> <junfeng.guo@intel.com>
717Junjie Chen <junjie.j.chen@intel.com>725Junjie Chen <junjie.j.chen@intel.com>
718Junjie Wan <wanjunjie@bytedance.com>726Junjie Wan <wanjunjie@bytedance.com>
719Jun Qiu <jun.qiu@jaguarmicro.com>727Jun Qiu <jun.qiu@jaguarmicro.com>
@@ -767,7 +775,7 @@ Kirill Rybalchenko <kirill.rybalchenko@intel.com>
767Kishore Padmanabha <kishore.padmanabha@broadcom.com>775Kishore Padmanabha <kishore.padmanabha@broadcom.com>
768Klaus Degner <kd@allegro-packets.com>776Klaus Degner <kd@allegro-packets.com>
769Kommula Shiva Shankar <kshankar@marvell.com>777Kommula Shiva Shankar <kshankar@marvell.com>
770Konstantin Ananyev <konstantin.v.ananyev@yandex.ru> <konstantin.ananyev@huawei.com> <konstantin.ananyev@intel.com>778Konstantin Ananyev <konstantin.ananyev@huawei.com> <konstantin.v.ananyev@yandex.ru> <konstantin.ananyev@intel.com>
771Krishna Murthy <krishna.j.murthy@intel.com>779Krishna Murthy <krishna.j.murthy@intel.com>
772Krzysztof Galazka <krzysztof.galazka@intel.com>780Krzysztof Galazka <krzysztof.galazka@intel.com>
773Krzysztof Kanas <kkanas@marvell.com> <krzysztof.kanas@caviumnetworks.com>781Krzysztof Kanas <kkanas@marvell.com> <krzysztof.kanas@caviumnetworks.com>
@@ -859,6 +867,7 @@ Mahesh Adulla <mahesh.adulla@amd.com>
859Mahipal Challa <mchalla@marvell.com>867Mahipal Challa <mchalla@marvell.com>
860Mah Yock Gen <yock.gen.mah@intel.com>868Mah Yock Gen <yock.gen.mah@intel.com>
861Mairtin o Loingsigh <mairtin.oloingsigh@intel.com>869Mairtin o Loingsigh <mairtin.oloingsigh@intel.com>
870Malcolm Bumgardner <mbumgard@cisco.com>
862Mallesham Jatharakonda <mjatharakonda@oneconvergence.com>871Mallesham Jatharakonda <mjatharakonda@oneconvergence.com>
863Mallesh Koujalagi <malleshx.koujalagi@intel.com>872Mallesh Koujalagi <malleshx.koujalagi@intel.com>
864Malvika Gupta <malvika.gupta@arm.com>873Malvika Gupta <malvika.gupta@arm.com>
@@ -967,6 +976,7 @@ Michal Swiatkowski <michal.swiatkowski@intel.com>
967Michal Wilczynski <michal.wilczynski@intel.com>976Michal Wilczynski <michal.wilczynski@intel.com>
968Michel Machado <michel@digirati.com.br>977Michel Machado <michel@digirati.com.br>
969Miguel Bernal Marin <miguel.bernal.marin@linux.intel.com>978Miguel Bernal Marin <miguel.bernal.marin@linux.intel.com>
979Mihai Brodschi <mihai.brodschi@broadcom.com>
970Mihai Pogonaru <pogonarumihai@gmail.com>980Mihai Pogonaru <pogonarumihai@gmail.com>
971Mike Baucom <michael.baucom@broadcom.com>981Mike Baucom <michael.baucom@broadcom.com>
972Mike Pattrick <mkp@redhat.com>982Mike Pattrick <mkp@redhat.com>
@@ -975,6 +985,7 @@ Mike Stolarchuk <mike.stolarchuk@bigswitch.com>
975Mike Ximing Chen <mike.ximing.chen@intel.com>985Mike Ximing Chen <mike.ximing.chen@intel.com>
976Milena Olech <milena.olech@intel.com>986Milena Olech <milena.olech@intel.com>
977Min Cao <min.cao@intel.com>987Min Cao <min.cao@intel.com>
988Minggang Li (Gavin) <gavinl@nvidia.com>
978Minghuan Lian <minghuan.lian@nxp.com>989Minghuan Lian <minghuan.lian@nxp.com>
979Mingjin Ye <mingjinx.ye@intel.com>990Mingjin Ye <mingjinx.ye@intel.com>
980Mingshan Zhang <mingshan.zhang@intel.com>991Mingshan Zhang <mingshan.zhang@intel.com>
@@ -1018,6 +1029,7 @@ Natanael Copa <ncopa@alpinelinux.org>
1018Nathan Brown <nathan.brown@arm.com>1029Nathan Brown <nathan.brown@arm.com>
1019Nathan Law <nlaw@brocade.com>1030Nathan Law <nlaw@brocade.com>
1020Nathan Skrzypczak <nathan.skrzypczak@gmail.com>1031Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
1032Nawal Kishor <nkishor@marvell.com>
1021Neel Patel <neel.patel@amd.com> <neel@pensando.io>1033Neel Patel <neel.patel@amd.com> <neel@pensando.io>
1022Neil Horman <nhorman@tuxdriver.com>1034Neil Horman <nhorman@tuxdriver.com>
1023Nelio Laranjeiro <nelio.laranjeiro@6wind.com>1035Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
@@ -1025,6 +1037,7 @@ Nelson Escobar <neescoba@cisco.com>
1025Nemanja Marjanovic <nemanja.marjanovic@intel.com>1037Nemanja Marjanovic <nemanja.marjanovic@intel.com>
1026Netanel Belgazal <netanel@amazon.com>1038Netanel Belgazal <netanel@amazon.com>
1027Netanel Gonen <netanelg@mellanox.com>1039Netanel Gonen <netanelg@mellanox.com>
1040Niall Meade <niall.meade@intel.com>
1028Niall Power <niall.power@intel.com>1041Niall Power <niall.power@intel.com>
1029Nicholas Pratte <npratte@iol.unh.edu>1042Nicholas Pratte <npratte@iol.unh.edu>
1030Nick Connolly <nick.connolly@arm.com> <nick.connolly@mayadata.io>1043Nick Connolly <nick.connolly@arm.com> <nick.connolly@mayadata.io>
@@ -1046,6 +1059,7 @@ Nipun Gupta <nipun.gupta@amd.com> <nipun.gupta@nxp.com>
1046Nir Efrati <nir.efrati@intel.com>1059Nir Efrati <nir.efrati@intel.com>
1047Nirmoy Das <ndas@suse.de>1060Nirmoy Das <ndas@suse.de>
1048Nithin Dabilpuram <ndabilpuram@marvell.com> <nithin.dabilpuram@caviumnetworks.com>1061Nithin Dabilpuram <ndabilpuram@marvell.com> <nithin.dabilpuram@caviumnetworks.com>
1062Nithinsen Kaithakadan <nkaithakadan@marvell.com>
1049Nitin Saxena <nitin.saxena@caviumnetworks.com>1063Nitin Saxena <nitin.saxena@caviumnetworks.com>
1050Nitzan Weller <nitzanwe@mellanox.com>1064Nitzan Weller <nitzanwe@mellanox.com>
1051Nizan Zorea <nizan.zorea@intel.com>1065Nizan Zorea <nizan.zorea@intel.com>
@@ -1053,9 +1067,11 @@ Noa Ezra <noae@mellanox.com>
1053Nobuhiro Miki <nmiki@yahoo-corp.jp>1067Nobuhiro Miki <nmiki@yahoo-corp.jp>
1054Norbert Ciosek <norbertx.ciosek@intel.com>1068Norbert Ciosek <norbertx.ciosek@intel.com>
1055Odi Assli <odia@nvidia.com>1069Odi Assli <odia@nvidia.com>
1070Ofer Dagan <ofer.d@claroty.com>
1056Ognjen Joldzic <ognjen.joldzic@gmail.com>1071Ognjen Joldzic <ognjen.joldzic@gmail.com>
1057Ola Liljedahl <ola.liljedahl@arm.com>1072Ola Liljedahl <ola.liljedahl@arm.com>
1058Oleg Polyakov <olegp123@walla.co.il>1073Oleg Polyakov <olegp123@walla.co.il>
1074Oleksandr Nahnybida <oleksandrn@interfacemasters.com>
1059Olga Shern <olgas@nvidia.com> <olgas@mellanox.com>1075Olga Shern <olgas@nvidia.com> <olgas@mellanox.com>
1060Olivier Gournet <ogournet@corp.free.fr>1076Olivier Gournet <ogournet@corp.free.fr>
1061Olivier Matz <olivier.matz@6wind.com>1077Olivier Matz <olivier.matz@6wind.com>
@@ -1115,13 +1131,14 @@ Peng Yu <penyu@amazon.com>
1115Peng Zhang <peng.zhang@corigine.com> <peng1x.zhang@intel.com>1131Peng Zhang <peng.zhang@corigine.com> <peng1x.zhang@intel.com>
1116Pengzhen Liu <liupengzhen3@huawei.com>1132Pengzhen Liu <liupengzhen3@huawei.com>
1117Peter Mccarthy <peter.mccarthy@intel.com>1133Peter Mccarthy <peter.mccarthy@intel.com>
1134Peter Morrow <peter@graphiant.com>
1118Peter Nilsson <peter.j.nilsson@ericsson.com>1135Peter Nilsson <peter.j.nilsson@ericsson.com>
1119Peter Spreadborough <peter.spreadborough@broadcom.com>1136Peter Spreadborough <peter.spreadborough@broadcom.com>
1120Petr Houska <t-pehous@microsoft.com>1137Petr Houska <t-pehous@microsoft.com>
1121Phanendra Vukkisala <pvukkisala@marvell.com>1138Phanendra Vukkisala <pvukkisala@marvell.com>
1122Phil Yang <phil.yang@arm.com>1139Phil Yang <phil.yang@arm.com>
1123Philip Prindeville <philipp@redfish-solutions.com>1140Philip Prindeville <philipp@redfish-solutions.com>
1124Pier Damouny <pdamouny@nvidia.com>1141Pier Damouny <pdamouny@nvidia.com>
1125Pierre Pfister <ppfister@cisco.com>1142Pierre Pfister <ppfister@cisco.com>
1126Piotr Azarewicz <piotr.azarewicz@intel.com> <piotrx.t.azarewicz@intel.com>1143Piotr Azarewicz <piotr.azarewicz@intel.com> <piotrx.t.azarewicz@intel.com>
1127Piotr Bartosiewicz <piotr.bartosiewicz@atendesoftware.pl>1144Piotr Bartosiewicz <piotr.bartosiewicz@atendesoftware.pl>
@@ -1135,6 +1152,7 @@ Pradeep Satyanarayana <pradeep@us.ibm.com>
1135Prashant Bhole <bhole_prashant_q7@lab.ntt.co.jp>1152Prashant Bhole <bhole_prashant_q7@lab.ntt.co.jp>
1136Prashant Upadhyaya <prashant.upadhyaya@aricent.com> <praupadhyaya@gmail.com>1153Prashant Upadhyaya <prashant.upadhyaya@aricent.com> <praupadhyaya@gmail.com>
1137Prateek Agarwal <prateekag@cse.iitb.ac.in>1154Prateek Agarwal <prateekag@cse.iitb.ac.in>
1155Praveen Kaligineedi <pkaligineedi@google.com>
1138Praveen Shetty <praveen.shetty@intel.com>1156Praveen Shetty <praveen.shetty@intel.com>
1139Pravin Pathak <pravin.pathak@intel.com>1157Pravin Pathak <pravin.pathak@intel.com>
1140Prince Takkar <ptakkar@marvell.com>1158Prince Takkar <ptakkar@marvell.com>
@@ -1172,6 +1190,7 @@ Rahul Gupta <rahul.gupta@broadcom.com>
1172Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>1190Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
1173Rahul Shah <rahul.r.shah@intel.com>1191Rahul Shah <rahul.r.shah@intel.com>
1174Raja Zidane <rzidane@nvidia.com>1192Raja Zidane <rzidane@nvidia.com>
1193Rajesh Mudimadugula <rmudimadugul@marvell.com>
1175Rajesh Ravi <rajesh.ravi@broadcom.com>1194Rajesh Ravi <rajesh.ravi@broadcom.com>
1176Rakesh Kudurumalla <rkudurumalla@marvell.com> <rkudurumalla@caviumnetworks.com>1195Rakesh Kudurumalla <rkudurumalla@marvell.com> <rkudurumalla@caviumnetworks.com>
1177Ralf Hoffmann <ralf.hoffmann@allegro-packets.com>1196Ralf Hoffmann <ralf.hoffmann@allegro-packets.com>
@@ -1255,6 +1274,7 @@ Sampath Peechu <speechu@cisco.com>
1255Samuel Gauthier <samuel.gauthier@6wind.com>1274Samuel Gauthier <samuel.gauthier@6wind.com>
1256Sandilya Bhagi <sbhagi@solarflare.com>1275Sandilya Bhagi <sbhagi@solarflare.com>
1257Sangjin Han <sangjin@eecs.berkeley.edu>1276Sangjin Han <sangjin@eecs.berkeley.edu>
1277Sangtani Parag Satishbhai <parag-satishbhai.sangtani@broadcom.com>
1258Sankar Chokkalingam <sankarx.chokkalingam@intel.com>1278Sankar Chokkalingam <sankarx.chokkalingam@intel.com>
1259Santoshkumar Karanappa Rastapur <santosh.rastapur@broadcom.com>1279Santoshkumar Karanappa Rastapur <santosh.rastapur@broadcom.com>
1260Santosh Shukla <santosh.shukla@caviumnetworks.com> <sshukla@mvista.com>1280Santosh Shukla <santosh.shukla@caviumnetworks.com> <sshukla@mvista.com>
@@ -1298,6 +1318,7 @@ Shally Verma <shallyv@marvell.com> <shally.verma@caviumnetworks.com>
1298Shani Peretz <shperetz@nvidia.com>1318Shani Peretz <shperetz@nvidia.com>
1299Shannon Nelson <snelson@pensando.io>1319Shannon Nelson <snelson@pensando.io>
1300Shannon Zhao <zhaoshenglong@huawei.com>1320Shannon Zhao <zhaoshenglong@huawei.com>
1321Shaokai Zhang <felix.zhang@jaguarmicro.com>
1301Shaopeng He <shaopeng.he@intel.com>1322Shaopeng He <shaopeng.he@intel.com>
1302Shaowei Sun <1819846787@qq.com>1323Shaowei Sun <1819846787@qq.com>
1303Sharmila Podury <sharmila.podury@att.com>1324Sharmila Podury <sharmila.podury@att.com>
@@ -1447,6 +1468,7 @@ Timmons C. Player <timmons.player@spirent.com>
1447Timothy McDaniel <timothy.mcdaniel@intel.com>1468Timothy McDaniel <timothy.mcdaniel@intel.com>
1448Timothy Miskell <timothy.miskell@intel.com>1469Timothy Miskell <timothy.miskell@intel.com>
1449Timothy Redaelli <tredaelli@redhat.com>1470Timothy Redaelli <tredaelli@redhat.com>
1471Tim Martin <timothym@nvidia.com>
1450Tim Shearer <tim.shearer@overturenetworks.com>1472Tim Shearer <tim.shearer@overturenetworks.com>
1451Ting-Kai Ku <ting-kai.ku@intel.com>1473Ting-Kai Ku <ting-kai.ku@intel.com>
1452Ting Xu <ting.xu@intel.com>1474Ting Xu <ting.xu@intel.com>
@@ -1484,6 +1506,7 @@ Vadim Suraev <vadim.suraev@gmail.com>
1484Vakul Garg <vakul.garg@nxp.com>1506Vakul Garg <vakul.garg@nxp.com>
1485Vamsi Attunuru <vattunuru@marvell.com>1507Vamsi Attunuru <vattunuru@marvell.com>
1486Vanshika Shukla <vanshika.shukla@nxp.com>1508Vanshika Shukla <vanshika.shukla@nxp.com>
1509Varun Lakkur Ambaji Rao <varun.la@gmail.com>
1487Varun Sethi <v.sethi@nxp.com>1510Varun Sethi <v.sethi@nxp.com>
1488Vasily Philipov <vasilyf@mellanox.com>1511Vasily Philipov <vasilyf@mellanox.com>
1489Veerasenareddy Burru <vburru@marvell.com>1512Veerasenareddy Burru <vburru@marvell.com>
@@ -1596,6 +1619,7 @@ Xieming Katty <katty.xieming@huawei.com>
1596Xinfeng Zhao <xinfengx.zhao@intel.com>1619Xinfeng Zhao <xinfengx.zhao@intel.com>
1597Xingguang He <xingguang.he@intel.com>1620Xingguang He <xingguang.he@intel.com>
1598Xingyou Chen <niatlantice@gmail.com>1621Xingyou Chen <niatlantice@gmail.com>
1622Xinying Yu <xinying.yu@corigine.com>
1599Xin Long <longxin.xl@alibaba-inc.com>1623Xin Long <longxin.xl@alibaba-inc.com>
1600Xi Zhang <xix.zhang@intel.com>1624Xi Zhang <xix.zhang@intel.com>
1601Xuan Ding <xuan.ding@intel.com>1625Xuan Ding <xuan.ding@intel.com>
@@ -1612,6 +1636,7 @@ Yahui Cao <yahui.cao@intel.com>
1612Yajun Wu <yajunw@nvidia.com>1636Yajun Wu <yajunw@nvidia.com>
1613Yangchao Zhou <zhouyates@gmail.com>1637Yangchao Zhou <zhouyates@gmail.com>
1614Yanglong Wu <yanglong.wu@intel.com>1638Yanglong Wu <yanglong.wu@intel.com>
1639Yang Ming <ming.1.yang@nokia-sbell.com>
1615Yang Zhang <zy107165@alibaba-inc.com>1640Yang Zhang <zy107165@alibaba-inc.com>
1616Yanjie Xu <yanjie.xu@intel.com>1641Yanjie Xu <yanjie.xu@intel.com>
1617Yan Xia <yanx.xia@intel.com>1642Yan Xia <yanx.xia@intel.com>
diff --git a/VERSION b/VERSION
index d1bc17f..ccebe8d 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
123.11.2123.11.4
diff --git a/app/dumpcap/main.c b/app/dumpcap/main.c
index 76c7475..5eaab63 100644
--- a/app/dumpcap/main.c
+++ b/app/dumpcap/main.c
@@ -93,7 +93,6 @@ struct interface {
93 struct rte_bpf_prm *bpf_prm;93 struct rte_bpf_prm *bpf_prm;
94 char name[RTE_ETH_NAME_MAX_LEN];94 char name[RTE_ETH_NAME_MAX_LEN];
9595
96 struct rte_rxtx_callback *rx_cb[RTE_MAX_QUEUES_PER_PORT];
97 const char *ifname;96 const char *ifname;
98 const char *ifdescr;97 const char *ifdescr;
99};98};
@@ -874,7 +873,7 @@ static ssize_t
874pcap_write_packets(pcap_dumper_t *dumper,873pcap_write_packets(pcap_dumper_t *dumper,
875 struct rte_mbuf *pkts[], uint16_t n)874 struct rte_mbuf *pkts[], uint16_t n)
876{875{
877 uint8_t temp_data[RTE_MBUF_DEFAULT_BUF_SIZE];876 uint8_t temp_data[RTE_ETHER_MAX_JUMBO_FRAME_LEN];
878 struct pcap_pkthdr header;877 struct pcap_pkthdr header;
879 uint16_t i;878 uint16_t i;
880 size_t total = 0;879 size_t total = 0;
@@ -883,14 +882,19 @@ pcap_write_packets(pcap_dumper_t *dumper,
883882
884 for (i = 0; i < n; i++) {883 for (i = 0; i < n; i++) {
885 struct rte_mbuf *m = pkts[i];884 struct rte_mbuf *m = pkts[i];
885 size_t len, caplen;
886886
887 header.len = rte_pktmbuf_pkt_len(m);887 len = caplen = rte_pktmbuf_pkt_len(m);
888 header.caplen = RTE_MIN(header.len, sizeof(temp_data));888 if (unlikely(!rte_pktmbuf_is_contiguous(m) && len > sizeof(temp_data)))
889 caplen = sizeof(temp_data);
890
891 header.len = len;
892 header.caplen = caplen;
889893
890 pcap_dump((u_char *)dumper, &header,894 pcap_dump((u_char *)dumper, &header,
891 rte_pktmbuf_read(m, 0, header.caplen, temp_data));895 rte_pktmbuf_read(m, 0, caplen, temp_data));
892896
893 total += sizeof(header) + header.len;897 total += sizeof(header) + caplen;
894 }898 }
895899
896 return total;900 return total;
diff --git a/app/proc-info/main.c b/app/proc-info/main.c
index b672aae..4a55870 100644
--- a/app/proc-info/main.c
+++ b/app/proc-info/main.c
@@ -2166,11 +2166,11 @@ main(int argc, char **argv)
21662166
2167 if (mem_info) {2167 if (mem_info) {
2168 meminfo_display();2168 meminfo_display();
2169 return 0;2169 goto cleanup;
2170 }2170 }
21712171
2172 if (eventdev_xstats() > 0)2172 if (eventdev_xstats() > 0)
2173 return 0;2173 goto cleanup;
21742174
2175 nb_ports = rte_eth_dev_count_avail();2175 nb_ports = rte_eth_dev_count_avail();
2176 if (nb_ports == 0)2176 if (nb_ports == 0)
@@ -2251,6 +2251,7 @@ main(int argc, char **argv)
2251 RTE_ETH_FOREACH_DEV(i)2251 RTE_ETH_FOREACH_DEV(i)
2252 rte_eth_dev_close(i);2252 rte_eth_dev_close(i);
22532253
2254cleanup:
2254 ret = rte_eal_cleanup();2255 ret = rte_eal_cleanup();
2255 if (ret)2256 if (ret)
2256 printf("Error from rte_eal_cleanup(), %d\n", ret);2257 printf("Error from rte_eal_cleanup(), %d\n", ret);
diff --git a/app/test-bbdev/test_vectors/fft_9.data b/app/test-bbdev/test_vectors/fft_9.data
2257deleted file mode 1006442258deleted file mode 100644
index 6088707..0000000
--- a/app/test-bbdev/test_vectors/fft_9.data
+++ /dev/null
@@ -1,870 +0,0 @@
1# SPDX-License-Identifier: BSD-3-Clause
2# Copyright(c) 2021 Intel Corporation
3op_type =
4RTE_BBDEV_OP_FFT
5
6input0 =
70xF62CFB88, 0xF17CFB18, 0xF6C0FA9F, 0xF773F742, 0xFCCBFAF0, 0xF908F8A6, 0xFFB3F496, 0x04C1FAC6,
80x07C5019B, 0x017D0139, 0x00F60299, 0x06ABFF06, 0x04E003A0, 0xFF740CAA, 0xF96F1004, 0xF5330D1C,
90xF5520BB9, 0xF327062F, 0xF0BF067D, 0xF29D036F, 0xEF50FFDF, 0xF1D6FE10, 0xEB1AFC5B, 0xEEAFF8ED,
100xEF6AF3FA, 0xEE50F275, 0xF325F63D, 0xF5D0EF1B, 0xF515F101, 0xFB83F18E, 0xF8DEEE63, 0xFA9DF473,
110xFB24ED8F, 0xFFBDEEDD, 0xFBF7F5FD, 0xFC56F8D8, 0x024BF447, 0x0538F24F, 0xFD20F8FB, 0xFBA9F239,
120xFB76F52A, 0xF9E8EE9A, 0xFE68F339, 0xFC76F468, 0xF9D3F4F8, 0xFAECE946, 0x063DEC57, 0x0B23EEAD,
130x094EECCE, 0x0C99EBB7, 0x11F0F617, 0x0CF2F4A6, 0x1319F6AA, 0x0D35FCA7, 0x11D4F94A, 0x14AFFA25,
140x11ACFFDF, 0x0FA302EA, 0x1275FEDB, 0x100F0703, 0x09E906BE, 0x04BD066D, 0x0A2508A8, 0x03B206B6,
150x056605D9, 0xFD1606AB, 0xFC8EFED8, 0x015102AD, 0x01BA0079, 0x012FFF86, 0xFB7EF61F, 0x06F9FC05,
160x05D0FF12, 0x0241FCBF, 0x05E6FDDE, 0x0654FDCC, 0x0788FBC7, 0x0783FBB1, 0x087EFAFA, 0x07D80833,
170x01CB05B9, 0x047A03C9, 0x082C070F, 0x017401A3, 0x0A3F0185, 0x02A90167, 0x0353FE02, 0x0566FFDF,
180x074E0487, 0x075CFC6D, 0x07470020, 0x0ACC019F, 0x0B85074E, 0x11EF03C3, 0x0E2D0508, 0x0B5E04CA,
190x0BB8088A, 0x0E85091F, 0x0B601078, 0x0CAE0DFA, 0x0F0E1394, 0x03A51A51, 0x033D1B87, 0xFEEB1855,
200xFDAC15F8, 0xF8AA17FD, 0xF0AC1377, 0xF15014C7, 0xF2850DF0, 0xF2AD0EB2, 0xF1500B90, 0xEC8305FB,
210xF4BC061B, 0xF11D033D, 0xF4BB087D, 0xF1EEFFD8, 0xF4BCFF91, 0xFCFF0393, 0xF31A04FC, 0xF6840257,
220xF7ECFE51, 0xF919FC35, 0xF5E3FCC3, 0xF5C60450, 0xF4A401C9, 0xF40CFD64, 0xF42B001D, 0xF4D30090,
230xF135F8EB, 0xF832F985, 0xF30EFAF2, 0xF50FF9E5, 0xF791F5BF, 0xFA0FF9A8, 0xF862F834, 0xF996F8AB,
240xFD1BF578, 0xFD28F73F, 0x0249FB2B, 0xFC90FE71, 0x0256014E, 0x0126FD72, 0x010802F3, 0x00A700E2,
250xFD4B046E, 0xFB3506FD, 0x015CFFFB, 0xFB9B081A, 0xF8A80A3A, 0xF6F20360, 0xF58C0218, 0xF88DF9DB,
260xF560FFDC, 0xF2010176, 0xEC58FCB9, 0xECF2F791, 0xEE47F641, 0xEE25F73B, 0xF700F8FA, 0xF15CF0E4,
270xF459EE9C, 0xF80DF177, 0xFA14F139, 0xFAF8EFD5, 0xF9BFEF89, 0xFCE8F0FD, 0xFBE1F0B8, 0x027CF069,
280xFCF5F137, 0x00D4F1CC, 0x0286EB70, 0x07F4EA47, 0x05BDF0B0, 0x056DEF6A, 0x05A5F263, 0x0E2AEC8B,
290x12A4F393, 0x0B71ED91, 0x107EF77D, 0x0D58F5C0, 0x11B1F636, 0x1198FB57, 0x1280FD41, 0x1452FB53,
300x0ED505D3, 0x0C0E0460, 0x0F7603BF, 0x11BB0840, 0x0FC30688, 0x08350A31, 0x06E505E3, 0x05140870,
310x09A60E87, 0x03910CEF, 0xFD560A8E, 0xFDB50C43, 0x02630357, 0xFE7B0924, 0xF91E0652, 0xFD94FFE2,
320xFFD7FD51, 0x01AA02E1, 0xFB8103A0, 0xFD23FB37, 0x05DCFBE3, 0x021500C0, 0x0408FDAE, 0x01720146,
330x0518FC2D, 0x04F9FE57, 0x0EA7FBCD, 0x0462FBA7, 0x0825F9B6, 0x0E47FECE, 0x0F020108, 0x0B39005E,
340x096701C1, 0x0B11027B, 0x0B270492, 0x08C20939, 0x070E09D8, 0x0B3B05CB, 0x0BDF099F, 0x07DC0B11,
350x08790B54, 0x02D50B5A, 0x06360F48, 0x08B610AB, 0x02611070, 0x01CF1436, 0x013D0C5C, 0xFB341474,
360x00E70F6D, 0xFBD414C2, 0xF7301127, 0xF83912C1, 0xF85E0B23, 0xF5D60B8A, 0xF4B60E18, 0xF51F0F86,
370xF2C30AFF, 0xFA9A0953, 0xF42F0797, 0xEFDA0D45, 0xF3370866, 0xF4A70203, 0xEF7206CE, 0xF66B0471,
380xF4B200E2, 0xF346FDF8, 0xF55BFEE1, 0xF1C6FC0D, 0xF89A018A, 0xF824FFFD, 0xF820FD32, 0xF129019D,
390xF356FF5E, 0xF7B70043, 0xF4490050, 0xF373F9BC, 0xF672FEA7, 0xF655F6EF, 0xF85EF696, 0xFCFDFAE0,
400xF80CF769, 0xFC94F3B6, 0xFB72FAEA, 0xFD45F600, 0x0376F540, 0xFC84FBBF, 0xFEA8FF8B, 0xFC17FE78,
410x0228FFC6, 0x004C0143, 0xF6740170, 0xFA6E0265, 0xFD5AFEE3, 0xFAF90113, 0xF7EA02FF, 0xF71B050A,
420xF1920113, 0xF446FC35, 0xF4470038, 0xF257FFAF, 0xF157F7D4, 0xF886FDBA, 0xF440F432, 0xF6F6F387,
430xF6F6F316, 0xF8ECF681, 0xFDDFF4BE, 0xFA82F870, 0x02C3F6D8, 0x00B5ED53, 0xFF54F5B6, 0x007AF986,
440x01A7F540, 0x00B4F5BD, 0xFE30F669, 0xFBDBFA3D, 0xFC22F23B, 0xFDEAF123, 0x044BF0EC, 0x069CF57D,
450x074FF59B, 0x04F1F354, 0x02E9F0E0, 0x0A52F558, 0x1029F647, 0x0A2AFC4F, 0x0AAFF38F, 0x0D9EF7C8,
460x167EF8FD, 0x0C42FE65, 0x0EA7F8FD, 0x124EFCF7, 0x14ABFEBB, 0x09800444, 0x07990B81, 0x0605057D,
470x056900B9, 0x072607E4, 0x06580651, 0x030103D7, 0x02A203AC, 0x01240323, 0xFE5DFD2E, 0xFD10FF1B,
480xFF9EFCFC, 0x0402F8C1, 0x01AAF84A, 0x044DFB7B, 0x07EEF58B, 0x061AFD52, 0x0596FC0F, 0x05ECFADA,
490x0A9A0143, 0x0D840441, 0x0998033D, 0x0D66059E, 0x0D2A0019, 0x0FDA0629, 0x09A50394, 0x080F054E,
500x06580A16, 0x070408EB, 0x05BC0555, 0x09170CB0, 0x03200D3E, 0x051F09A3, 0x05420466, 0x045F0106,
510x01A108B3, 0x069C0AF4, 0xFF7108B4, 0x03020862, 0x06BD0D9D, 0x05721289, 0xFE6D1340, 0xFD920936,
520xFECC0F9C, 0xFF9A1319, 0xFEE60C67, 0xFD3C0C12, 0xFA670B18, 0xFF0E0A37, 0xF8E90F0C, 0xFA950A82,
530xF87C07AC, 0xF4100C46, 0xF60A0CF8, 0xF33E05C3, 0xF3D0FFF1, 0xF2DA074A, 0xF6AD0542, 0xF6860216,
540xF2FE00D3, 0xF8BE005E, 0xF898054C, 0xF4520483, 0xF6060027, 0xF98301BA, 0xFF1702B5, 0xF56502DC,
550xFBB30118, 0xFB60FF11, 0xF8EAFE99, 0xFBEFFF19, 0xFBB1FEA7, 0xF3BAFD54, 0xF99DF969, 0xFFE10262,
560xFA13FD27, 0xF443FFBB, 0xF85CFE6E, 0xFA82FFD0, 0xFD24FF81, 0xF67C01C4, 0xFAC9FEAE, 0xF6FA0229,
570xF56703F1, 0xF71100C2, 0xF347FF38, 0xF8CDF942, 0xF3CAF96F, 0xF5F2FAFF, 0xF542F9D2, 0xF869FBAB,
580xFBA6F8E7, 0xF9A1F147, 0x0050F264, 0xFD3AF3A5, 0x0780F986, 0x06A8004D, 0xFFE4FC48, 0xF6E9FB83,
590x0133F8B5, 0x024FF9E9, 0xFC570589, 0xFFBFFD2C, 0xFB2BF952, 0x00A0FA26, 0x0231F689, 0x0454F8FF,
600x0723F8ED, 0x036BFBB4, 0x0780FDDD, 0x0503FDBB, 0x05D6FFCD, 0xFD33FF83, 0xFD6FFAF9, 0x049DF9C4,
610x038AFA93, 0x080CFBC6, 0x03A2FBD8, 0x0643FCD5, 0x0D8AFF08, 0x0F2E0813, 0x07060D8D, 0xFF530B8E,
620xFC59028D, 0xFA6105D9, 0xFF6F071E, 0xFBDF08D7, 0xF97E00C0, 0xF8CCFE1C, 0x00BBFD7A, 0x08FF030B,
630xFAA603F5, 0xFC75FE4A, 0xFBECF8B5, 0x0789FB77, 0x0A69012A, 0x02D40145, 0xFECAFCB9, 0x06C0FD4B,
640x078FFF2E, 0x05480284, 0x05C709A4, 0x038707D7, 0xFE8A08D5, 0xFE6D0D52, 0x01CF00FC, 0x051F063C,
650xFD150C96, 0xFE660A55, 0x00290DC3, 0x074D0ED2, 0x02110CB7, 0xF94005CC, 0xFD8D06A7, 0x01F204FC,
660x002807F5, 0x031F0E5C, 0xFA6E0782, 0xFDE00A43, 0x05FE0B30, 0x01F10971, 0xFD6C125A, 0xF9551453,
670xF90B10F6, 0xEED90FDF, 0xF1750A5E, 0xEFCA0849, 0xF2D10CF7, 0xEC13073D, 0xF858025D, 0xFB520191,
680xF40800EC, 0xF593052D, 0xF1DF05A9, 0xF2FB04F4, 0xEE2404CC, 0xE9C500E0, 0xF214FD2E, 0xF5E6F533,
690xFA1BF631, 0xFB2CFB19, 0xF55CFE97, 0xF5140378, 0xFB85FF65, 0xF67D02A4, 0xF967076D, 0xF5830893,
700xF17A0959, 0xED3E01A5, 0xF02301B6, 0xF5FE00F4, 0xF914FFAD, 0xED07FD70, 0xF508FE84, 0xF790FBD6,
710xF501FEA0, 0xF817F748, 0xF39AFD8C, 0xF9DAF571, 0xFBCFFAE5, 0xFDA6FA5A, 0xFC5EF927, 0xF5A90009,
720xF906FC1C, 0xF741FF6D, 0xF95B0070, 0xF5DB021A, 0xF55BF85F, 0xF61FFD65, 0xF798FC9A, 0xFB1FFA94,
730xF7ECFC7F, 0xF602FF23, 0xF1B2FBA0, 0xED04FF93, 0xEE31FC87, 0xED59F7F2, 0xF1D5ED9A, 0xF75FF263,
740xF797EEBA, 0x0074F0E1, 0x0390EE61, 0xFE91F59C, 0x0708F8D7, 0xFAC7FBE3, 0x0634FDAE, 0x056CFCA6,
750x026AFCFB, 0xFCEBF457, 0x04F6F827, 0x03ABF2C0, 0x00FFFA09, 0x00A6F799, 0x04EFFB37, 0x07EB00D1,
760x0209FCC1, 0xFF45F9A3, 0x021AFAA4, 0x026CF85A, 0x0382FC38, 0x0397F9A8, 0x03FFF784, 0x046CF929,
770x0948FD40, 0x05F1FED5, 0x0CD6003C, 0x0B36FE7F, 0x09CB009E, 0x070E07AA, 0x027400A5, 0x0996FC87,
780x050E0956, 0x07750630, 0x007C0B62, 0xFEDD04D8, 0x00040264, 0x00F000E7, 0xFE010492, 0xFD7E0008,
790x00B100AB, 0x04700276, 0x00CFFF64, 0x07EF054B, 0x08A601C7, 0x084302DE, 0x05BF08D0, 0x02780776,
800xF8EB070D, 0x049701D7, 0x034B0541, 0x034A0931, 0x061D091C, 0x07DA08B0, 0x015D10D3, 0x06980B55,
810xFC580BC3, 0x03940BF8, 0xFF8B0BCE, 0xF9870867, 0xF33B0889, 0xF83E0651, 0xFE1300C2, 0xFFD905A2,
820xFFDC09BC, 0xFDD60DAD, 0xFF9E03D8, 0xFF0A075D, 0xFF4B1046, 0x05360FB7, 0xF84811EC, 0xFA5E0B86,
830xFCAD092A, 0xFE3B0DD3, 0xFFE00C60, 0xF7471296, 0xF5AD0D6A, 0xFBB60B8D, 0xF64B0BA9, 0xF33C0D50,
840xF04F099A, 0xEF720174, 0xF9200A86, 0xEF5E0BA6, 0xF53C0782, 0xF06A054C, 0xEB250789, 0xF03D08E1,
850xEEC2FF52, 0xE7F6FB5A, 0xEFC3FA72, 0xEFCFFCF8, 0xF05EF9EB, 0xF257FDFD, 0xF9E80036, 0xF4190998,
860xF1BA0025, 0xF4CCFC80, 0xF30101DC, 0xF2920503, 0xF0B5018E, 0xEE1EFC67, 0xF315F529, 0xFC45F421,
870xFF9EFF4D, 0x0018FAE6, 0xF46100BC, 0xF7E8F880, 0xFA79038A, 0xF82BFED7, 0xF40D00E9, 0xF39CFB71,
880xF6FEFDE1, 0xF731FE37, 0xFA72F876, 0xFADCFBA7, 0xF9D7FD8D, 0xF99EFF50, 0xF6CC0552, 0xF62F03EF,
890xF109FE82, 0xF2C0FDC2, 0xF00EFBD9, 0xF352F631, 0xF431FA4F, 0xF1E5F8BE, 0xF3DFF7F8, 0xF6A4F0CD,
900xF4D2F089, 0x0114F634, 0xFB30F79B, 0xFBE2ED25, 0xFEDCF0DB, 0x087AF438, 0x012CF5D1, 0x074CFF17,
910x018BFF6F, 0x00F0F93E, 0x03EAF550, 0x0240FA47, 0x01E7FE7D, 0x01C50089, 0x041BFBC4, 0x02ECF9F9,
920x06EFFCA3, 0x0351FFFA, 0x03D6052A, 0x024F09A5, 0x002006C2, 0xFDDB05CA, 0xFD30FF1E, 0x02190393,
930xF886FCFB, 0x01E0FDB4, 0x024900D1, 0x018F052E, 0x03860646, 0x0543060E, 0x00F60892, 0x034C0AFA,
940xF88A0BFF, 0xFAA10B76, 0xF2D50570, 0xF26EFD3E, 0xF34DFEC1, 0xF849FDE7, 0xF74EFF99, 0xF5FDFDB3,
950xF8F7FE85, 0xF5EFFC0E, 0x0131F8D2, 0x002BFB2C, 0xF9E7005B, 0xFE05FC4F, 0x02B9F6D9, 0x0CF1F65D,
960x0C7A0229, 0x0424044B, 0x064D0266, 0x0E830254, 0x082005D2, 0x07E00865, 0x053904F7, 0x06070445,
970x040C0A8D, 0x031405D0, 0x034F0EDC, 0xFE690E40, 0xF8DF091A, 0xF9DF073F, 0xF7A9068A, 0xFAFC064C,
980xF67E0773, 0xFEBE03A6, 0xFA57FFCC, 0x00C70559, 0x01BA0734, 0xF8BD0838, 0xF68906D0, 0xFBC207FF,
990xFB7C1164, 0xF7E60DAA, 0xF0520FB4, 0xED7A0546, 0xF81BFEEF, 0xF90E030C, 0xF79B0252, 0xF75C09BD,
1000xF6C207A8, 0xF60602D5, 0xF7DFFEE9, 0xF118028E, 0xF392FF9C, 0xF0CDFA76, 0xF143F847, 0xFD71F875,
1010xF927F8D4, 0xFEDBF728, 0xFBC3FB01, 0x03480316, 0xFF82061B, 0xFFBD0042, 0xF9BD023C, 0xFF790250,
1020xFFA90598, 0xFE350268, 0xFC77067A, 0xFA22040B, 0xF198062D, 0xFD78FB8D, 0xFC61FFAA, 0x009A0D61,
1030xF909058A, 0xF1A8FE82, 0xF71DFE16, 0xF865FECE, 0xFDA50158, 0xF784FF86, 0xF9200453, 0xF68803AF,
1040xF0DC037C, 0xF2FFFE8B, 0xF7E0FB00, 0xFB33FD5E, 0xF833FC81, 0xF4F5F5F1, 0xFD1C00FC, 0x002BFECD,
1050xF6C501EA, 0xFC670232, 0xF9BFFF3E, 0xF60D03BC, 0xF30E0096, 0xF0A0F3B6, 0xF3FEF84F, 0xF8A5F6A6,
1060xFFB6F42B, 0x0363F524, 0xFFBDF4E1, 0xFF60FAD5, 0x05C3FCC3, 0x014FF92F, 0x0316FB2D, 0xFC2401B3,
1070x00FAFD4C, 0xFE3CF99F, 0x00E30278, 0x0129FDB0, 0xFD07FA13, 0xFFB2FC56, 0x0051FA95, 0x069602FF,
1080x048905A6, 0x01D704F1, 0x0056FC54, 0xFBFEFC08, 0x04EDFC6B, 0x0087030B, 0x016AFAA2, 0x01EFFDB1,
1090x0987F995, 0x0879FF4D, 0x0B0CFFB7, 0x070C02CC, 0x05C804E1, 0xFB6AFF68, 0xFF28FCFF, 0x013700F0,
1100x0558FD07, 0x03D200E8, 0x06E7FB15, 0x052B03FD, 0x07FFFD0D, 0x0600FD6C, 0x05F80493, 0x06340137,
1110x033706F3, 0x068D0A83, 0x02340294, 0x03CCFC2A, 0x0CEA0110, 0x0CC00A77, 0x0A8A0B85, 0x050508C7,
1120x0BF2080B, 0x0CF91173, 0x05AF139F, 0x01CA1434, 0x009F0F28, 0xFC8811E2, 0xF1C411B6, 0xF5170F9C,
1130xF1C20B05, 0xF5090A39, 0xF3B01083, 0xEE0F0DF9, 0xEFFE0501, 0xEF8705C5, 0xF0C60249, 0xF032FC82,
1140xF428FDE5, 0xF2B0F831, 0xF062FB83, 0xF409FB84, 0xF4EEF536, 0xF001F338, 0xE92BF63D, 0xF68CF331,
1150xF5F1EDA3, 0xFCB0F31E, 0xFCF9F227, 0xFB35F0FF, 0xFA9CF276, 0x0103F82E, 0xFC00F65D, 0xFED5F6AD,
1160xF832F562, 0x006CF06F, 0xFB3CF573, 0x01F1EACA, 0x0192EB60, 0x0A01F591, 0x08EAF8B2, 0x0758FD12,
1170x07D8FBA3, 0x0C26FE82, 0x02AEFDDF, 0x05AE0070, 0x04890509, 0x018600C3, 0xFE230726, 0xF7EE0261,
1180xF812FE65, 0xFDA3019E, 0x00450448, 0xFACD0296, 0xEE8200D0, 0xEDC2F945, 0xF216FBD3, 0xF364FA2E,
1190xF0D1F58B, 0xEF72F270, 0xF414EED5, 0xF97FEF9C, 0xF466EC1B, 0xF96AE958, 0xFDC7E810, 0xFCC1EB22,
1200x02D5F0E6, 0x043BEF6F, 0x0BE6E959, 0x0A78EEF4, 0x0D36F0B9, 0x0AA4F329, 0x0926F6F9, 0x090CF37F,
1210x0AA9F3F9, 0x0B5DF02C, 0x0BB3F3FA, 0x10F7EE6B, 0x0CEBF93A, 0x1159F769, 0x0D3EF3A2, 0x0F69F89C,
1220x17CBF891, 0x16AD047B, 0x11EB01EB, 0x0B27FF61, 0x0EF00029, 0x0D380085, 0x0CDB034E, 0x08D001EB,
1230x152D01EA, 0x143B0736, 0x0F3F08B0, 0x0B220BA9, 0x0FA908A7, 0x04D70FF3, 0x0319128D, 0xF98A1148,
1240xFA030F36, 0xF412019A, 0xF7E10932, 0xFB10021B, 0xF8770325, 0xF941FF1E, 0xFB37FD19, 0x0076FE06,
1250x0710FE7A, 0xFA5D02A0, 0xF7C702CB, 0xFFF5FD46, 0x0368FA69, 0x00D9F9BF, 0x02C2F84A, 0xFB2EFA4E,
1260x072EF77F, 0x04B2FAA2, 0x09F6FE8D, 0x08C7FE58, 0x0B3D0083, 0x0BD701BF, 0x08C1045D, 0x0A0900B1,
1270x07110445, 0x0A810487, 0x075605A4, 0x0804053D, 0x0F850765, 0x05FD0A16, 0x021107A2, 0x0367063E,
1280x07D204F4, 0x0B610FD1, 0x05D41208, 0xFB40152E, 0xFE0A09F3, 0xFE9F0D80, 0xF9E413D0, 0xF01A1358,
1290xF16B0CC8, 0xF2C9FEF1, 0xF03E04FD, 0xEF5E0565, 0xEF650660, 0xF05E04D8, 0xF162FFC3, 0xF08AFFEB,
1300xEB77FEC1, 0xEAACFD0F, 0xEE97F425, 0xEC0AF22B, 0xED72F746, 0xECC0F344, 0xF20CECB6, 0xF963ED11,
1310xFB69EB40, 0xFCC9ECA8, 0x0011F0C8, 0x041CF440, 0xFD85F827, 0xFC65F6D2, 0x0576EFB3, 0x0337F3A2,
1320x00AFFB09, 0xFC9CFA7A, 0x01C9F46D, 0x02B3F1D3, 0x0511FA2C, 0x03FBFA26, 0x03A4FB6F, 0x06DDF6AE,
1330x0797FA46, 0x06910082, 0x02EC0456, 0x075DFFF6, 0xFE5E00D7, 0x06B0FE4B, 0xFB69012D, 0xFC7FFEDF,
1340xFA0BF977, 0x0139FAC3, 0xFE76FB3C, 0x020DFE19, 0xF784FC35, 0xF91CFDCE, 0xFBB6F74E, 0xFEEEFE68,
1350x00ACFD45, 0xFCE402B4, 0xF571FBDC, 0xF88DF661, 0xF312F12B, 0xFB53F0AA, 0xFFC8F00E, 0x005DF1A0,
1360xFD36EDE4, 0x01C8F2D8, 0x0504F0D8, 0x0451F3B1, 0xFE5DF804, 0x03C2F566, 0x02C7F116, 0x080CEEC0,
1370x070FF56A, 0x093AF3A1, 0x0CAEF352, 0x0ECDEE80, 0x0F0FF592, 0x0C71F98A, 0x1153FD52, 0x1333FF76,
1380x167D01CF, 0x0FD701A5, 0x0D0400B0, 0x0DD50277, 0x101EFDF4, 0x14710215, 0x10A107CB, 0x0BD70A69,
1390x05950A54, 0x0B1B089C, 0x0D4904CC, 0x0A230DEA, 0x01EB07D0, 0x055A0631, 0xFBD70DF9, 0xFF710B5A,
1400xFB530BC8, 0xF9F907E9, 0xFFDE058E, 0xF8C305A9, 0xF761007B, 0xF730FA2C, 0x0149FA16, 0x0190FBDB,
1410xFD2DF948, 0xFC42FC29, 0x00A2FBD5, 0x035CFC54, 0x0746FA89, 0x01F4F92A, 0x0228F819, 0x066CF2EA,
1420x088DF62E, 0x0A86F661, 0x092BF9F5, 0x100CFB7D, 0x159300A5, 0x141904E6, 0x0DC6040E, 0x0C8B03B5,
1430x0E850500, 0x0AA60930, 0x09740B88, 0x04AE09B8, 0x0BE20703, 0x0DA7081A, 0x0B010C13, 0x08FF10D1,
1440x0ABC0CE1, 0x03881736, 0x045517B4, 0x011A10BD, 0xFBDA0CDA, 0xFC901452, 0xF70A11A4, 0xF39E16C3,
1450xF4B30BE6, 0xF23A08FA, 0xF41D0CD9, 0xECFF099A, 0xED1C06C0, 0xF2FF00C5, 0xF25FFBCB, 0xF0EBFEF6,
1460xF1510048, 0xFB71FA59, 0xF414FB17, 0xEFC5FA14, 0xF4B1FEC7, 0xF791F888, 0xF71CF550, 0xFC8AF78A,
1470xFFCAF59A, 0xFD99FB2C, 0x024DF92C, 0xFF61FACA, 0x031EFEE4, 0x053200E6, 0x00240305, 0xFA850144,
1480xF9F602B3, 0xF642F9EC, 0xF6EA00F6, 0xF84DFE3C, 0xF4EDFAA1, 0xFE62FC1B, 0xFA67035E, 0xF7A501FB,
1490xFC350341, 0xF8D2FC0A, 0xF99E0349, 0xF85A007F, 0xF25A00CC, 0xF58AFA28, 0xF742FA73, 0xF901FB79,
1500xF7C20062, 0xFADCF6CD, 0xF6FEF882, 0xF44CFE65, 0x002CFB4F, 0xFA5CFFF2, 0xF38CFE56, 0xF001FB20,
1510xF1B7F591, 0xF352F67E, 0xF504F4D2, 0xF83FF383, 0xFA0BF226, 0xF223F58E, 0xFAACEDDE, 0x00A5EAD0,
1520xFBB5F04C, 0xFB66F131, 0xFBF1E7C8, 0x03A1EA7B, 0x0454EF37, 0x02E4EE75, 0xFDA4EB72, 0x07D1EA88,
1530x0AA1EBCA, 0x0381EFC2, 0x02C2F05F, 0x0AE6E94D, 0x1307EB15, 0x11FAEF3C, 0x10BDF1C0, 0x0CE2F60E,
1540x0FADF456, 0x1310FC34, 0x1157FD76, 0x0FD50049, 0x0F71FE77, 0x0B47FA90, 0x103CFFCD, 0x0749FBA8,
1550x1354FA24, 0x0E65FFB3, 0x0A6303B1, 0x07B302CD, 0x0BDF0BB4, 0x05120848, 0x059106A3, 0xFA260772,
1560xFD5200CC, 0xFE99024E, 0xFC66FDD6, 0xFD520066, 0x00D2FE8C, 0x01DEFAF2, 0x033EFEC8, 0x0234FDF6,
1570xFF9DFF7F, 0xFE94FD17, 0x02E6F88D, 0x02B7F9A1, 0x0436F9CD, 0x040FFF63, 0x0153FA5F, 0x052EF764,
1580x0657FB3F, 0x0967005A, 0x0ABDFE55, 0x0965FEA4, 0x0FEEFDE1, 0x0AADFF83, 0x13C00455, 0x08750631,
1590x0E1A0DF9, 0x0DAE095E, 0x056C0629, 0x0C110D56, 0x0B700981, 0x060F082B, 0x07FD087B, 0x07AF10A8,
1600x018D03A9, 0x019D0465, 0xFDAB08BD, 0xFA33014E, 0xFFD00387, 0xF94C0135, 0xFFE70279, 0xF77B0358,
1610xF56F0307, 0xF367FB02, 0xF8B0FD66, 0xF954FFB8, 0xF67900E6, 0xF22CF748, 0xF048F201, 0xF02CF3A2,
1620xF1FFEAA1, 0xF841E83F, 0xFB0FE94A, 0xFA48EF01, 0xFEECEE4B, 0x01AEE5FC, 0x0610E8CF, 0x0805E848,
1630x0D55EE76, 0x0A1DF475, 0x0905F405, 0x0976EDCE, 0x0853F679, 0x0A56F4A8, 0x0E2BF634, 0x138AF843,
1640x0EE1F81F, 0x0AB3FC46, 0x0A6AFCAD, 0x0C7CFE82, 0x12910090, 0x088B0167, 0x048006A4, 0x0A1F028A,
1650x042501BF, 0x07810124, 0x05860043, 0xFE4C022D, 0xF976FC63, 0x03ECFDD5, 0x03EDFFF3, 0x036D0164,
1660xFB08018D, 0x007603D2, 0x0187FC30, 0xF857041D, 0xFCF3F952, 0xF932FE3E, 0xF9D6FAF0, 0xF960F638,
1670xFB62F2C6, 0xFC57EFC6, 0xFF50EE8F, 0x0781F073, 0x0752F477, 0x0879F164, 0x08B9F666, 0x04E3F4BB,
1680x009DF154, 0x0994F617, 0x0CEBF63F, 0x0BD5F456, 0x09EFF66C, 0x0A5DF4EB, 0x135FF3CA, 0x1088FC05,
1690x14BA057A, 0x0C280250, 0x0B9D028C, 0x0A2C06A5, 0x0DEB08A2, 0x0A0006A0, 0x01F40B54, 0x043A030D,
1700x0407FEEB, 0x0238FFC6, 0xFEA20786, 0x02370385, 0x0768FBD5, 0xFD0D01A9, 0x052803E2, 0x01FBFD7A,
1710xFB16003B, 0xFC200115, 0x03D802E6, 0xFD4106C1, 0xFC190006, 0xFBE302D1, 0xFCF6FCCA, 0x0000FAD7,
1720x0239FCBA, 0x0190FF7F, 0x01C70257, 0x033F011E, 0xFB8CFDAB, 0x001AFBF8, 0x00C00057, 0xF911FCFE,
1730xF5FAFBCC, 0xF812FC34, 0x0257F740, 0xFF3FF890, 0xFB7EF8B6, 0xFEEBF802, 0x015CF6C1, 0x066AF7D4,
1740x03B0FBAE, 0x0170FB8D, 0x0316FA51, 0xFD6FFAAF, 0x03B8F996, 0xFA3CFE9D, 0xF8CCFDB7, 0x01A6F7C9,
1750x06BFF5E4, 0x08B4FBFB, 0x0589FC60, 0xFE84FB31, 0x0233FC54, 0x0714FA63, 0xFF09003C, 0x015D01D0,
1760xFD29FF7A, 0xFADCFEDB, 0xFD91F75C, 0xFD21FB6F, 0xFFC1FAA1, 0x004DFCBD, 0xFCF40229, 0xFFBCFCD0,
1770x018AF45E, 0x01FEFC28, 0xFE740371, 0xFBCCFCB7, 0xF913FEAD, 0xF700FC15, 0xFAF9FBF5, 0xF288FB11,
1780xF6C2FC68, 0xFA87F937, 0xF9C0F034, 0xF7CEF985, 0xFA01F75F, 0xF7BAEEA2, 0x04CDF17E, 0x0161F48F,
1790xFE67F3F1, 0xFBCEF416, 0xF993ECE7, 0x060FE91B, 0x0282EE99, 0x0382F22E, 0x036AEABA, 0x06F0EA62,
1800x08DCEB0D, 0x1043F103, 0x0EEBF557, 0x0BF6FA22, 0x0E3BF771, 0x09D6F92A, 0x0CFAF70F, 0x0D39FCDD,
1810x0E04FB9D, 0x0AA9FC14, 0x0B2E01AD, 0x082FFEFB, 0x05BEFD3C, 0x0968FB4B, 0x0C13FE9E, 0x0524044B,
1820x02E804B0, 0x07AAFC23, 0xFF4F046D, 0xFBD6F8E2, 0xFF50FA85, 0xFBA200D8, 0xFFFBFCE4, 0xFB31FDCD,
1830xFEFBF8FA, 0xFFAAF666, 0x0771FA08, 0x04D8FAC1, 0x030FFB5F, 0xFADEF807, 0x05E3F3B8, 0x043FF4BD,
1840x0536F317, 0xFE1EF575, 0xFF0FF0B3, 0x0334F351, 0x0218F427, 0x07A3F25D, 0x042AEFB5, 0x0648EFCB,
1850x11E6F295, 0x0D39F5FC, 0x0DAFF2B6, 0x0B3CF41D, 0x10C4FBCD, 0x0C32FFA2, 0x0C2902C8, 0x0B6A05F3,
1860x12BE0090, 0x0E0D01DF, 0x138000D2, 0x0E19024D, 0x0CA80C5C, 0x0A8509DA, 0x0BC410C2, 0x07B30C72,
1870x05AE0D5C, 0x01C71189, 0xFF2E1193, 0xF3FD0A4F, 0xF709059D, 0xF78B05CF, 0xF6E30941, 0xF72D0669,
1880xF58701AD, 0xF9550331, 0xF8D6FF65, 0xFB47FE6B, 0xF901F9FF, 0xF964FD51, 0xFBE9F8D4, 0xF908FC20,
1890xF524FA29, 0xFA07F620, 0xFE8DF95A, 0x0089F944, 0x00C5FD31, 0xFC62F0FB, 0xFE7AF3BD, 0x066DF793,
1900x03F4FD88, 0x00EAFA21, 0x02C9FE45, 0x01D7F9E6, 0xFF8BFCA0, 0x0539FF48, 0x0031FC68, 0xFF53F9EF,
1910x031BFBB2, 0x0303FC1B, 0xFB44FB62, 0xFF43FC5A, 0x0539FB70, 0xFD8903F3, 0xFC1CFD2B, 0xFB1601E5,
1920xFAA7FBCA, 0xFDC9FCB8, 0xF708FBAD, 0xF6A4FB0E, 0xF732F7FC, 0xF342F3F1, 0xFB91F336, 0xFCB2EF95,
1930xFCA4F397, 0xFE9DF866, 0xFD2DF7E9, 0xFF4CF745, 0xFB7FF1F6, 0x0025F489, 0xFF88F635, 0x01B6F002,
1940x0001F624, 0x038FEF3F, 0x01E2F00B, 0x0618EDDF, 0x09ADF5E6, 0x0617F5FF, 0x050BF571, 0x089FF045,
1950x06A2FA1A, 0x0865F5DA, 0x060BF6E3, 0x0797F84B, 0x025CF5FD, 0xFF71F787, 0x00A8F8B4, 0x0773F63B,
1960x0444FC4E, 0x0A8CFA46, 0x05E5FEDB, 0x05AEFCAC, 0x0595F8AB, 0x043DFD99, 0x06B802B4, 0x0CCC059D,
1970xFF440159, 0x03FBFAB0, 0x01CA00B9, 0xFEE9FCB4, 0x040AFA3F, 0x00A6F9A6, 0x0434FB9B, 0x0282FEEB,
1980x039EFBC0, 0xFE2DFB16, 0x05E7FEB0, 0xFF59FBFA, 0x0020FAD7, 0x0022FB54, 0xFE65F7BC, 0x0284F20E,
1990x04D0F8BB, 0x05C9F164, 0x02F1F398, 0x052EF61B, 0x054EF90D, 0x0774F0B6, 0x04FDF895, 0x09C4F82C,
2000x0B2DFAD1, 0x0087F78B, 0x08A9F6D7, 0x0507F454, 0x065EF617, 0x0E5EFAD8, 0x0A56F815, 0x0B63F9E9,
2010x0C90F9FA, 0x0CA7FD02, 0x0E2DFE2C, 0x0FA00456, 0x07C5023B, 0x0AAA029A, 0x07390507, 0x06620367,
2020x08D50791, 0x09BE0978, 0x018A0D75, 0x0793070E, 0x05BD06C8, 0x094F081A, 0x04480E95, 0xFA490E4D,
2030xF63D0513, 0xF3C206F2, 0xF56E0110, 0xF17E0631, 0xEF65FF30, 0xEAFDFD0D, 0xF194FC0D, 0xF53FF907,
2040xEF61F9ED, 0xFB09F297, 0xFA8EEFFB, 0xFFCBF24D, 0xF6B4F51E, 0xF3FAF56D, 0xF8DEED37, 0x0125F14A,
2050x02D6F16F, 0x0178F1E4, 0x00DEF2D6, 0x0356F13B, 0x0BD9ECE4, 0x0C5FF1C1, 0x0BB2FB6C, 0x0B22FE0F,
2060x0AEFF94B, 0x0AD3FEDB, 0x07BAFF43, 0x03D5FE91, 0x0C480067, 0x07D00168, 0x054902AA, 0xFD22FFF0,
2070x074203CE, 0xFE79FF6D, 0x0442028C, 0x01350020, 0xFDF808EF, 0x008606C4, 0xF6E20886, 0xF6B20184,
2080xFB1BFD82, 0xF758FF8F, 0xF65B0045, 0xF0150335, 0xEE0CF9FB, 0xF653F160, 0xF781F40A, 0xF7E9F5B4,
2090xF249F98B, 0xF47EF23B, 0xFC1CEDCC, 0xFBEEEACD, 0xFAE1EEDA, 0xFEE8EECE, 0xFDFCE950, 0xFE19ECEB,
2100x0277E5C8, 0x01C2E963, 0x06A2E7EC, 0x08BFEF64, 0x161BEB76, 0x0D16F010, 0x0A33F259, 0x1042F616,
2110xFC9D118B, 0xFE3708FF, 0xFB5107CB, 0xF72110D4, 0xF4E60FFC, 0xF8F000A3, 0xF80A030D, 0xF68C0575,
2120xF9070746, 0xF8F9FF89, 0xFA49FF50, 0xF94AFE4E, 0xFA4AFB07, 0xF960FE93, 0xFCE2F7DD, 0xFC24F775,
2130x062CF543, 0x0870FBDB, 0x0B10FC9C, 0x0BBB057E, 0x0A33019F, 0x137C03A2, 0x0E96081D, 0x0AAD08A0,
2140x00B20D85, 0x086C0CD0, 0x05430D7E, 0x06D30A95, 0x05D40EEA, 0xFEA90FB0, 0xFFA0128A, 0xFC0C170B,
2150xF64C1284, 0xF5941833, 0xF4430F56, 0xEFE60DC9, 0xF59D0D3B, 0xF4AD07A7, 0xF2E80B8E, 0xF3820935,
2160xF1070691, 0xF1290737, 0xF184045E, 0xEED5FCDD, 0xECE1028F, 0xE9F101A8, 0xEC25FF88, 0xF343F8D3,
2170xF66BFC19, 0xF0F5FB52, 0xF2B1F6A1, 0xF5F7F52F, 0xF68AF594, 0xF14AF05C, 0xFB6EF17C, 0xF33CF104,
2180xFA26EBA6, 0xFE61EB0E, 0x02FFEF52, 0x0594EC0D, 0x0BC5EC6F, 0x0D26EDAF, 0x1346F2B5, 0x1154F3DF,
2190x0F2FF7E7, 0x1093FABB, 0x1214FABC, 0x14ADFD59, 0x12D901E3, 0x0F3303AE, 0x1442089E, 0x11E5095B,
2200x0FAB0D58, 0x0E450CB4, 0x0AF0121F, 0xFFBE1048, 0x026A0C74, 0x038B0E1E, 0xFBD60F7A, 0xF99C073D,
2210xFAD60CB4, 0xF9FB06BE, 0xF5FB03EB, 0xF8800454, 0xF65D07EB, 0xF4C30149, 0xF495FECA, 0xF95EFA5B,
2220xF77FF4B1, 0xFD49F5E9, 0xFE38F76C, 0xFA4BF455, 0xFFA5F297, 0x0097F792, 0xFF25FB93, 0x0278F32D,
2230x03E5F1F1, 0x0AE9F583, 0x0424FA13, 0x08ECF5DA, 0x0DCEF33D, 0x1402F217, 0x0FE9F5E4, 0x1288F850,
2240x1219FA6E, 0x16C2FD56, 0x1352006B, 0x19D4FB8A, 0x16510304, 0x1B4D09A9, 0x17760DBC, 0x198D086A,
2250x18AA0F1B, 0x17531018, 0x135A1306, 0x10E518D4, 0x0C141D1F, 0x059116FD, 0x04F617B3, 0x07B61B44,
2260xFC391B01, 0xFD861AE0, 0xF9D1188D, 0xF53F171E, 0xF2DA13C7, 0xF3B8125C, 0xF0830B1A, 0xF1D908BD,
2270xF1DC09B5, 0xEDCF0782, 0xF3A101BF, 0xF56AF9A9, 0xF584FD21, 0xFA7E00C7, 0xFF15FC47, 0xFA92FBA1,
2280xF98FFBD4, 0xFF88F3EB, 0x004EF7A9, 0x01B4F85F, 0x0274F87A, 0x073DFB46, 0x06EA01DC, 0x0548FFD9,
2290x0B7B00D4, 0x03C6FE95, 0x0995FFF8, 0x01B702D9, 0x054100B9, 0x03E30222, 0x0410031D, 0x08880271,
2300x07E303ED, 0x09A807C9, 0x0B5608DC, 0x06800B51, 0x05060B52, 0x00E51119, 0x03920A46, 0x03C30DA4,
2310x085F133D, 0x00C91189, 0xFFA30CBF, 0xF8DC1266, 0xF8701296, 0xF1F61479, 0xF2AA154F, 0xEDA009FE,
2320xEE4A0860, 0xEFA80A4F, 0xEED8029F, 0xED5FFBC4, 0xEDFA0013, 0xF318FB40, 0xEDE8FD23, 0xEFD9F261,
2330xF707F790, 0xF3FFF6C6, 0xF67DEB8D, 0xF92DEAFD, 0x01C8F49D, 0x0139F5EF, 0xFD68F506, 0x06FEF328,
2340x06F4F1B2, 0x0611F8BE, 0x072FF62B, 0x0842FEBD, 0x0554FCE1, 0x0BD1FA63, 0x04DEF782, 0x0541F8F1,
2350x061DFBA9, 0x03F9FA85, 0x098AFA15, 0x0D13FC8D, 0x05B902FB, 0x065AFBFD, 0x0D2B0102, 0x0D320003,
2360x0C280411, 0x0AFB02F1, 0x0C4E0A6F, 0x0AC90508, 0x0ED1061E, 0x0E650B24, 0x07580F5F, 0x01CE1601,
2370x00140E8F, 0x00E3099A, 0x00700DA6, 0xF9AF09ED, 0xF76E0C95, 0xF64F08C4, 0xF1ED0765, 0xF4CE00A6,
2380xF729FDFA, 0xF7E8FAEC, 0xF918FB03, 0xF590F748, 0xFCEDF5CD, 0xFA53F7D5, 0xFD7EF0C6, 0x011EF022,
2390x0C53EDA8, 0x0B31FA76, 0x0A69FE10, 0x09BBF6B4, 0x0C30F53F, 0x0D1AFACF, 0x0D66FABB, 0x0DA4FE19,
2400x0DECFFC5, 0x0E59F9E0, 0x11FE003C, 0x12D304A3, 0x126C08A7, 0x0E480670, 0x0ED70911, 0x115106E6,
2410x0D850EA5, 0x0DD60C3B, 0x0C840771, 0x0F3A0C37, 0x0DAD125B, 0x0AFE1231, 0x0BC915EC, 0x08341504,
2420x024E16B4, 0x04C31380, 0x011212D8, 0xFCE30D7E, 0xFABA1197, 0xF8B70BE1, 0xFB1F09D6, 0xF4C20C7F,
2430xF3F40829, 0xF7060761, 0xF0250924, 0xF0C40182, 0xF888FDBA, 0xFF22FD6F, 0xF84D028F, 0xFD02FC5E,
2440x0017FB68, 0x0338FCE0, 0x0880040E, 0x03650041, 0x08370472, 0x0AE301B9, 0x0C25046E, 0x09140356,
2450x05690B0E, 0x085F0B71, 0x096205FE, 0x04170C41, 0x09BD07F5, 0x05420A4D, 0x001513B0, 0x022A13C1,
2460xFDA80CA7, 0xFFCF0DA2, 0xF8A50B21, 0x00360951, 0x016A0DD4, 0xFB8307C2, 0xFF9E0D4F, 0xFE6311F0,
2470xFD2E1548, 0xF3C20EAE, 0xF0290C9A, 0xEE5A0F5B, 0xF2C207B6, 0xF4190847, 0xF42F02B8, 0xEF90065D,
2480xF177012D, 0xF482FF77, 0xEF590545, 0xF175FE7E, 0xEF34FAD9, 0xF184FB9F, 0xF292F1FF, 0xF47AF40C,
2490xF89CF31C, 0xFDADF336, 0x0124F683, 0xFF1EF95F, 0xFE2CF754, 0x013DF7F5, 0x05BCF8E4, 0x01A8F921,
2500x047AFD08, 0xFF8DFF4B, 0xFD7DFDD2, 0xFFB2FA44, 0x007EFCC6, 0x018AFCD8, 0x05A2FECC, 0x01BD0314,
2510x00CB020E, 0x06AF0047, 0xFFEBFE02, 0x036EFC11, 0xFF43FB37, 0x0795FF19, 0x08D20115, 0x05D80017,
2520x05880087, 0x0A7C062A, 0x043DFF12, 0x0359FE81, 0x07870999, 0x02B7072E, 0xFF0405DC, 0xFD0600A5,
2530x023E0457, 0x03E60B0B, 0xFA300402, 0xF77A05F4, 0xF052FF3A, 0xF46AFE8D, 0xF729FD1C, 0xF290FAD7,
2540xF968F591, 0xF95CF1F9, 0xFA53F227, 0xFE1CF0BE, 0x01F4F371, 0x0193EF9C, 0xFFD2EAD7, 0x0358EE9F,
2550x08B8F1DF, 0x0E3FF4D2, 0x0B3BF80D, 0x0DEBF687, 0x1385F531, 0x0FD2FD38, 0x16CAF73C, 0x14F400E7,
2560x0C81FE0A, 0x13B2FD3C, 0x118E0317, 0x127C001E, 0x11C906CE, 0x0B5B0625, 0x0F9A0278, 0x12D80BA7,
2570x0DF80ED8, 0x0C7008CD, 0x11F8090D, 0x0FC60E8A, 0x0D96102C, 0x078A12A2, 0x06C71243, 0x05FA13F5,
2580x0A6F1108, 0x0DD91B05, 0x0336193F, 0x0600162B, 0xFB8013EE, 0xFA4C1829, 0xF52C1142, 0xF3330EE5,
2590xEE38123A, 0xEB6C09D5, 0xF24902A0, 0xF35702C9, 0xF4DFFD51, 0xEFC602C8, 0xF7E6FBC3, 0xF637F721,
2600xFC50FB1B, 0xFE1AFA4C, 0x003AF567, 0x01A1F0EC, 0x08B6F3CB, 0x0E1AF545, 0x12D5FBA5, 0x0B43FBD9,
2610x11AD0494, 0x100C026D, 0x0F21032A, 0x12C80B2A, 0x08E711C2, 0x0A7D0F94, 0x0C751081, 0x04E50FB9,
2620xF93EE851, 0xFCAFEC99, 0xFDFBE850, 0x022CF06A, 0x0569EF6A, 0x082CEF30, 0x012AEE1A, 0x0B09EEE9,
2630x0A04F0E9, 0x12CDF7D8, 0x142CF83C, 0x120A00A1, 0x138E067C, 0x0F9A0915, 0x0AC91168, 0x0B660FF6,
2640x050713F7, 0x042812BA, 0xFB541896, 0xF4AD11E3, 0xF7DA0C39, 0xF59A0ADC, 0xEE1F0C7D, 0xEE790839,
2650xE8E10935, 0xEBA701CC, 0xE3C5FF71, 0xE20BFF1C, 0xE5A3F68E, 0xE7B9F777, 0xE465F183, 0xE4C5F044,
2660xE97AE9E1, 0xF261DEEA, 0xF931E618, 0xF842E642, 0xF87AE382, 0x0254DFD0, 0x0828E606, 0x0041E548,
2670x09D6E549, 0x0D4DE6B2, 0x13D6E525, 0x137EE896, 0x139FE760, 0x150EE72F, 0x1D26EE03, 0x2185EEC3,
2680x1E9EF50A, 0x230FFE2B, 0x25E7FB78, 0x236EFEDA, 0x2568057E, 0x219D07D0, 0x1FC40DF0, 0x245A1145,
2690x1A9F1A50, 0x121F18DC, 0x12EC1690, 0x113A17E8, 0x0B9521FE, 0x03B91CED, 0x039F182F, 0x043016B8,
2700x01921A7F, 0xF0E0185E, 0xF2911590, 0xF3B90D97, 0xF51B13C8, 0xEDEE09C9, 0xF1E20676, 0xEE5601AB,
2710xF29BF6BD, 0xFB42FA87, 0xFCB7FA70, 0xFF33FAF4, 0x0012FB34, 0x00DDFCED, 0x00C1F9F5, 0x03CFFD47,
2720x008FFB21, 0x04C6FB1C, 0x096B0242, 0x060DFCDB, 0x0990FA70, 0x0C300019, 0x0B9B02BC, 0x107A04F2,
2730x0D9706D4, 0x0DB70D86, 0x0B890D97, 0x0C040ACF, 0x0FB107D9, 0x0C9811C6, 0x09A80EE5, 0x0B671480,
2740x08F81447, 0x040D171D, 0x02EF168E, 0x080E1797, 0x046713D5, 0xFF472002, 0xFC0E1D35, 0xFA7A1AC7,
2750xF8CF1D17, 0xEE6B1C36, 0xECBA1997, 0xE85B1D31, 0xE7011420, 0xE9561017, 0xE3640C37, 0xE4D00777,
2760xE8500791, 0xEF2804CB, 0xE64D03B7, 0xE81A06C9, 0xE6C90159, 0xE4D501EE, 0xEAE4013C, 0xE5470083,
2770xE72AF94F, 0xE895F7FA, 0xEAD9F6E4, 0xEBC7F38D, 0xF2AFF8CE, 0xF783F396, 0xF75FF378, 0xF721F8FC,
2780xF545F6EC, 0xF516F47D, 0xF95EF3C6, 0xFAF4F923, 0xF95AF34B, 0x000EEDA1, 0x028AF3E0, 0xFE4BF58A,
2790x06CEF569, 0x09A5F3E7, 0x0C5EF7B9, 0x0E49FA3A, 0x08D104DC, 0x07AE01FA, 0x053304C6, 0x0793FF7F,
2800x064E0A38, 0xFE440596, 0x022804BE, 0x0444085B, 0x0009081C, 0xFC4F0859, 0xF5520355, 0xF8370231,
2810xFF57049E, 0xF4CE084C, 0xF1C40302, 0xEFFBFA02, 0xF2DDFF85, 0xF51AFAEA, 0xEDF3F836, 0xF187F74E,
2820xF4BBFBEC, 0xF3C7F837, 0xF13FEDE7, 0xF442F02D, 0xFAC1EB66, 0x02EFEC28, 0xFFF4EC3F, 0x034FEF22,
2830xFE8DEC54, 0x020EEA1B, 0xFF87EAAD, 0x07B0F70D, 0x0BDBEAFD, 0x174AE5CE, 0x0BD3EC35, 0x123DEBEA,
2840x14C5EDA4, 0x1D68EDC1, 0x1DD5F6C2, 0x234EF8E7, 0x21CFFF87, 0x1C3E06F9, 0x1AE80156, 0x1CFF074E,
2850x1FC80A34, 0x1B7A0F81, 0x19730E14, 0x166B179E, 0x192D16B9, 0x14DA191E, 0x0F651952, 0x106013F9,
2860x09281BF0, 0x026A1DBC, 0xFC0E184F, 0xF8E5170C, 0xF9501453, 0xFB4D1B97, 0xF7BA1112, 0xF54612F6,
2870xF6BE0AFB, 0xF4340C6C, 0xF20A101C, 0xF6E90782, 0xF3A406F3, 0xF7A60338, 0xF124065F, 0xF1CF0349,
2880xF2E6FCD3, 0xF9EDFC96, 0xFB70FB8B, 0xFDF2FFA7, 0xFA4EF6E6, 0x0106F7EF, 0x0302F8FE, 0x0918F2CE,
2890x0679F4DF, 0x11F2F8C7, 0x1427FD14, 0x0FA90664, 0x12F507C6, 0x137F07F9, 0x14DF09D3, 0x111D0C1D,
2900x09280FE0, 0x0D2F13A0, 0x0FDA1274, 0x107419D8, 0x0D641A94, 0x041F1E7C, 0x0857220F, 0x018D2601,
2910xF96E2E93, 0xEEED22F9, 0xEDF122C5, 0xE8E612A6, 0xED9A1685, 0xEBF410E2, 0xE39A0D5D, 0xE6820B09,
2920xE70A0790, 0xE786048D, 0xE3C106EA, 0xE5F5FD26, 0xE155FD58, 0xEC17FDE0, 0xE941FBA3, 0xE938F410,
2930xEA95F9CB, 0xEE03F211, 0xF88EF467, 0xF46DF64D, 0xF972EEF5, 0xFAC0F4F3, 0xF819F2F9, 0xFC7CEFFC,
2940x008EF24C, 0x0568F104, 0x02DDF835, 0x0208F642, 0x017BFDA3, 0x0474FB4B, 0x03D100E0, 0xFE6DF9C6,
2950x0602FE30, 0x035BFC25, 0x07A7F9AE, 0x0906083A, 0x0AE90969, 0x057C06F6, 0xFFA60ABF, 0x002609A9,
2960xFE5A114B, 0xF8170B67, 0xF5750BD5, 0xF3EB0660, 0xEF4E04B6, 0xF0C201DD, 0xEFAB0027, 0xF265FBEA,
2970xEEA2FF23, 0xEFA3FBDC, 0xF3E00259, 0xECFE0201, 0xEA3DF558, 0xF2ABF1E7, 0xFA0CEF15, 0xEF19F241,
2980xF26BEE10, 0xF660E56C, 0xF8FDE7BF, 0x0149E38A, 0x0160E856, 0x032AED98, 0x0BCDEFE1, 0x0B31F1B6,
2990x05FAF194, 0x08B7EB2E, 0x13ADED8E, 0x0EFAF25E, 0x1112F34E, 0x134DEFE4, 0x1554F2FC, 0x14DFF67F,
3000x1989F8D3, 0x19F6FBDC, 0x161BFEE2, 0x192502C7, 0x1A6E076C, 0x1B0205ED, 0x137C0620, 0x16DE08BE,
3010x1678139A, 0x0E0715E8, 0x0E6A1705, 0x0CDA1335, 0x0AEF0DA6, 0x0D3713AC, 0x08121764, 0x035819FC,
3020xFE1E19C1, 0xFFC818D2, 0xF6EE18A2, 0xF3F21190, 0xF04413AA, 0xF1881017, 0xEF15071B, 0xE9C2003D,
3030xF238003E, 0xF4330088, 0xF654FD53, 0xF653FCE9, 0xFA26F87E, 0x0008F993, 0xF9F2F6C6, 0xF716FC2E,
3040xFE6BF20F, 0xFF55F1CB, 0x015FF741, 0x01F7F6DF, 0x063FF0E3, 0x0C6FF8E3, 0x139FF893, 0x15FE01E1,
3050x1515FF14, 0x17B90109, 0x16B103F8, 0x17720735, 0x17280831, 0x1C630EA2, 0x1678108A, 0x13EA11B6,
3060x129517E7, 0x11771F01, 0x0C8622CC, 0x063120C7, 0x057422A9, 0x0463288E, 0xFBCD29D0, 0xF4CF29E9,
3070xF0DE2ACD, 0xECAF2571, 0xE7562335, 0xE3411DBF, 0xD8AA1B67, 0xDCF812A2, 0xD8030FE6, 0xD69B0979,
3080xDB4E011D, 0xE081FF40, 0xDA72FD2C, 0xDF78FE51, 0xE178F4D8, 0xE573F211, 0xE350F16F, 0xE4FAED2A,
3090xE6A0E727, 0xF0B0E5F5, 0xF297E26A, 0xFA83EA3C, 0xFA17E8A5, 0xFB6EDF78, 0x04A7E4EC, 0x0D13EF6A,
3100x0885F3BF, 0x0A28F2F3, 0x1081F475, 0x04D3F6EB, 0x0BBAFB4D, 0x0696FAB0, 0x0EBBFCFE, 0x109BFFB7,
3110x0E050309, 0x0C9D0584, 0x0B78091B, 0x0A490DEC, 0x04F90EBB, 0x02F41577, 0xFD1213E8, 0xF7AF1205,
3120xF9660EC2, 0xF14D1376, 0xEBAF1039, 0xF12A0BAF, 0xF1240BF5, 0xEA9C0C10, 0xE67D0108, 0xE61DFFE0,
3130xFF6313FA, 0xFF541A0C, 0xFED818E8, 0xF9B71169, 0xFF5A1691, 0xFA5D1C69, 0xF88118F8, 0xF9501C79,
3140xF2B218C4, 0xEF0B1999, 0xEC9D185D, 0xECB91370, 0xE8131882, 0xE4660F2B, 0xEA8F0D4A, 0xEEFC0A0F,
3150xE46108A4, 0xE7CA0C1C, 0xE7610475, 0xEAD8F989, 0xF00AFC14, 0xF00AFD85, 0xF37FFC37, 0xF543F69D,
3160x000DF6F2, 0xFB6BFA94, 0xFFCEFFC8, 0xFCE102E7, 0xFEB9034C, 0x03CC0773, 0xFC0E047F, 0xFF830297,
3170x01B00441, 0xFB5E079C, 0x00830C93, 0xFBE90C09, 0xFD860DE7, 0xF6CD092C, 0xF1D40959, 0xFC500AA1,
3180xF2FB074B, 0xF701097F, 0xF5B3094C, 0xF18606EE, 0xF6C30095, 0xF7F30683, 0xF9740753, 0xF2080724,
3190xEE620B28, 0xEE67067D, 0xEFDE0468, 0xEB6B070F, 0xEA5E015E, 0xF2420379, 0xE7290345, 0xE41AFEEC,
3200xE8E3F837, 0xE2B8F621, 0xEB51F18E, 0xEA56EE19, 0xEE5FEF06, 0xE8ECE76D, 0xF51AE62D, 0xFB4DE82C,
3210xFDE3E231, 0x009EE06B, 0x09F0E6C7, 0x0B03E834, 0x0DF0EDDA, 0x0F7DEB2C, 0x179BF08C, 0x19DCF040,
3220x1AAAFA4F, 0x13500057, 0x15E7FFE8, 0x1A0405A5, 0x1760083F, 0x141F0C97, 0x0F250A66, 0x0EB70BE6,
3230x05220F29, 0x0579101D, 0x035B1035, 0x047F0A00, 0xFFBF0B0F, 0xFAF707F4, 0x00840783, 0x01810772,
3240x001306D0, 0xFB8307B8, 0xF992040E, 0xFC9A0766, 0x02120914, 0xFF2002D1, 0xFA1A04F4, 0xFC8AFE4A,
3250xFDF300D0, 0xFED604AB, 0x000005B3, 0xFDA4FFB8, 0xFC130510, 0x0117F9C9, 0x025AFDF7, 0x032BFB79,
3260x0466FF7A, 0x09DDFD7C, 0x09F60055, 0x0921FCE1, 0x07B9FD95, 0x0BE3FCC2, 0x09510037, 0x1236F97D,
3270x165302FB, 0x16C509B7, 0x15780C34, 0x13D1067C, 0x187E0C18, 0x13CA153F, 0x12F01B86, 0x07E92089,
3280x08B01B0C, 0x07C61E57, 0x00D21F88, 0xFA5C1D5D, 0xFBF01A3B, 0xFC021632, 0xF617196D, 0xF1D21367,
3290xF122162B, 0xF34A1126, 0xEF80105A, 0xF0640C08, 0xF1600C28, 0xF4E40C23, 0xF4920AE0, 0xF0E6077A,
3300xF74B0407, 0xFED40C13, 0xFA7B0DAE, 0xF439165A, 0xF2040CB4, 0xF7F70A43, 0xFB121109, 0xF9800DF1,
3310xEF041318, 0xEFCA0CDC, 0xF01409C4, 0xECD608C2, 0xEF3607DA, 0xF30608A4, 0xF2DB0447, 0xF2E9FF9D,
3320xF47C0186, 0xF2B6FEEB, 0xF1360154, 0xFA320176, 0xFD3CFF20, 0xFAE2FB17, 0xFDEF07CE, 0xFB51061C,
3330xFA5803FA, 0xFDD7056A, 0xFD0B0437, 0xFF490496, 0xFDCE05BB, 0xFBCE092E, 0xFB25037A, 0xF92509AE,
3340xF9880E77, 0xFDC3063A, 0xF5F805A4, 0xF4E203D8, 0xF89E05F9, 0xF38F0712, 0xF1E6083C, 0xEECB049B,
3350xEEE301B1, 0xFAFCFF64, 0xF62401EE, 0xF4B60621, 0xF5A90067, 0xF730FE5F, 0xF536F9F5, 0xF734FF49,
3360xF5720333, 0xF455FE9E, 0xEE7BFD8F, 0xFB93FAD9, 0xF907F8DA, 0xF2DFFD34, 0xF107F8EB, 0xF669F97B,
3370xF7B6F440, 0xF66DF65E, 0xF85CF30E, 0xF324ECAE, 0xFC08EDD6, 0x03AFF01C, 0x031AF494, 0x02F9F1BD,
3380x0882EEEA, 0x0A48F37F, 0x0E95F05D, 0x1427F172, 0x0F930021, 0x0D15FF92, 0x126FF9BF, 0x1250FDB1,
3390x1345000F, 0x13CF089A, 0x0F5C0B8B, 0x084C0D30, 0x0CB00C42, 0x0C851158, 0xFFE11339, 0x04470CD8,
3400x05250F61, 0x020B11CC, 0xFC1D0E7B, 0xF7C20F7D, 0x006A0D36, 0xFBE4045C, 0xFE9C0ADB, 0x01F91124,
3410xFA370D8F, 0xF76C021C, 0xFAC2FF19, 0xFBF40159, 0x03E9FEC9, 0xFE660457, 0xF6E90534, 0xFE27FE71,
3420x003400D1, 0x0299FD90, 0x00640296, 0xFE7EFF61, 0x0043FDF3, 0x02C1F9CA, 0x0C090027, 0x0B9E05D5,
3430x0CB4FF5A, 0x0CE80365, 0x0F950154, 0x150D0915, 0x141608A4, 0x0B8F0B40, 0x0C791097, 0x12BE0B35,
3440x0D4B1035, 0x09551441, 0x030B1919, 0x04D61950, 0x05D8172A, 0xFE611E67, 0xFF821B9C, 0xFB351C78,
3450xFA341B0D, 0xF7E717AA, 0xF44D106F, 0xF3AE17CB, 0xED841049, 0xEC74129F, 0xF0690DB1, 0xF5150A62,
3460xF8170D20, 0xF18C0E10, 0xF13B0AC4, 0xF2AD0471, 0xF63406C0, 0xF3510B07, 0xF44D0978, 0xF1580C12,
3470xF76F0479, 0xF4FE06D7, 0xF2AE068E, 0xEB210B8E, 0xECCF02DE, 0xF241040E, 0xF7AE01C0, 0xF74601A9,
3480xF927FF3B, 0xFC7701BF, 0xF713FFF6, 0xFF2C0018, 0xFB86FFC5, 0x02050098, 0xFB390910, 0xF7960A18,
3490xFC6405D0, 0xF8C106BC, 0xFB7608D3, 0xFAA80C0D, 0xF5A10FE4, 0xF53C10CC, 0xF19C1027, 0xFA870F04,
3500xEC2A0FC4, 0xE99D06A1, 0xEB8206CD, 0xE1C6099F, 0xE73C02B4, 0xE85BFCB0, 0xE382FCE0, 0xEB57FB6C,
3510xECF2FC0B, 0xEF0AF7C7, 0xF146F6F1, 0xEF09F4AE, 0xEE80F2AF, 0xF7C5EEBE, 0xFB9CF2DD, 0xFC8BF882,
3520xF885F593, 0xF95FF579, 0xF7B0F8CE, 0xFEB8F949, 0xF7C8FA59, 0xFAF7F582, 0xFF01F027, 0xFE94F4D0,
3530xFD68F161, 0x0215F177, 0x02BFEDA0, 0x042AF11B, 0x0624EDCF, 0x0379F737, 0x0481EE7D, 0x0575EF18,
3540x102EF5F4, 0x0EEEF09B, 0x10EAFC93, 0x0D9CFA9C, 0x123CFBD1, 0x0F8903C0, 0x0F600304, 0x1479091D,
3550x0D920332, 0x0B810B84, 0x052F0C6E, 0x05910696, 0x0AA40789, 0x0BC005DA, 0x04C109D4, 0x016D09C4,
3560xFFE80CE9, 0xFD4D0866, 0x077406D5, 0x02C704D5, 0xFC890315, 0x00810277, 0x0386FE1C, 0x027402AA,
3570x022F0208, 0x0472018B, 0x03660832, 0x06B9FDBB, 0x070F0520, 0x0603063E, 0x07C2034F, 0x05BFFF30,
3580x07E40251, 0x0A0503B1, 0x0884FE1E, 0x0A170594, 0x0B1301C2, 0x035505DF, 0x0C6001DF, 0x0B400326,
3590x0805006F, 0x0D86003E, 0x134E05C4, 0x11050A47, 0x0FEF0E5E, 0x11B61060, 0x12A9161B, 0x105C1356,
3600x11D91857, 0x13C11FCE, 0x0A74219D, 0x058A1B28, 0x06341916, 0x087121E9, 0x09DC2079, 0xFF6E23FB,
3610xF2321C03, 0xF3A91A28, 0xF15E2014, 0xF2E12175, 0xEDC61CAB, 0xE3B31575, 0xEE6A163F, 0xE7421668,
3620xE56D12CF, 0xE3C60D25, 0xEDF30D93, 0xEE4602E4, 0xE9F20645, 0xEEBB0171, 0xED6CFE29, 0xEF030236,
3630xF1BBFFB3, 0xF581F904, 0xF570FBCE, 0xFB4DFCEF, 0xF59205C3, 0xF9DFFC49, 0xF99F0060, 0xFC1E0001,
3640x0C1E04EE, 0x0A19025F, 0x06E70439, 0x0ACD0567, 0x0B5805A4, 0x0B990CF4, 0x078A13EA, 0xFDC50C9F,
3650x04090A99, 0x06940977, 0x01A70D56, 0xF87C0D0E, 0xFB5B0AC5, 0xF90A0BB8, 0xF367061E, 0xF1880544,
3660xF218FE11, 0x01C000B8, 0xFDBD021F, 0xF96506DE, 0xF758FE03, 0xFB61F604, 0xFC8FF9FF, 0xFF330218,
3670x01E3FE24, 0x0199FADE, 0x0604FBDD, 0x003EFD2C, 0x05C8FA41, 0x06A9FC04, 0x0894FB77, 0x07AAFE5A,
3680x0B2803B4, 0x060B048F, 0x0CD60201, 0x081A02B6, 0x073E09C6, 0x08F308CF, 0x08DD085B, 0x0A190B32,
3690x065B0C19, 0x0A0207F0, 0x09C50AF6, 0x09571054, 0x04C716D1, 0x00FC14C4, 0x03F210CB, 0x01CF1048,
3700x00021A8F, 0xF61418DA, 0xF6DD17BC, 0xF31615D1, 0xEFD61563, 0xF48613EB, 0xF1310D75, 0xEB640E34,
3710xEB320E90, 0xEE3C04A9, 0xE8E307CC, 0xEAD9085F, 0xE3C20658, 0xE9610031, 0xE799FCFA, 0xE62CFEF9,
3720xE947FBCF, 0xF1F3F4CE, 0xEEEBF59E, 0xF3BBF38C, 0xF31CF13B, 0xF3FCF085, 0xF629F572, 0xFDFEF3C1,
3730xFC33F47F, 0xF89CF46A, 0xF9ECF821, 0xFB5BF30D, 0xFF5BF820, 0x00EAFA94, 0xFFDB0188, 0x02A9FC82,
3740x02C0FAF2, 0xFF950069, 0x06D6FC2F, 0x031FFF9B, 0x07610689, 0xF9710D13, 0xF7F006E5, 0xF9780698,
3750xFF74049B, 0xF31B056E, 0xF5F3080F, 0xF67401A3, 0xF323FE99, 0xF058FEC1, 0xF5D40167, 0xF465FDA6,
3760xF79DFB4B, 0xFAB7FE59, 0xF317FD78, 0xF0F6FA44, 0xEF27F4E8, 0xF756F297, 0xF706F36A, 0xF584F683,
3770xF410F186, 0xF73FF462, 0xFFBAEA40, 0xFB68ECD6, 0xFD67F19D, 0xFDC5ED46, 0x0108F3E1, 0xFF2DF92D,
3780xFA9DF0D0, 0xFFF6F413, 0x067DECA6, 0x0720F5B8, 0x0DB4F057, 0x0682F07C, 0x0E24F01B, 0x0E4FF4DC,
3790x0BF2F50B, 0x111AF404, 0x139DF90A, 0x0DC2FBB6, 0x109EFDDD, 0x101BFBF9, 0x0F7B03C7, 0x0FFB06BA,
3800x104A0726, 0x0D8E0720, 0x0CBC0111, 0x07FE053F, 0x0715089C, 0x0C7F0B66, 0x0AAB0C6E, 0x00C209F7,
3810x04380774, 0x0B030AC1, 0x04A20C07, 0x054B0A89, 0xFFC40A72, 0xFF3808DE, 0x0082077F, 0x031700E8,
3820xFF040282, 0xFBF00A7F, 0xFB3605A4, 0xF83006A2, 0xFD4D06B8, 0xFB230740, 0xF99B0851, 0xFEEC0529,
3830xFB790634, 0xF7A3FF51, 0xF934005E, 0xFC79FB92, 0xFF700284, 0xFCE0019D, 0xFF3AFA7E, 0x0651FAC0,
3840x0482FF0A, 0x04DC0139, 0x06A6FC3C, 0x09ADFF6F, 0x0E7A054E, 0x022E0733, 0x0DE90038, 0x0FDF076E,
3850x0E050DEF, 0x0CB41543, 0x06EF161E, 0xFF641777, 0x058115C2, 0x01AF1C06, 0xFBFE1C98, 0xFBCA1850,
3860xF845157F, 0xF15915E3, 0xF06C167D, 0xEDB513ED, 0xEED71361, 0xF00A0D9D, 0xEB450EC6, 0xEAFA0CA7,
3870xE887077C, 0xEDEB0606, 0xEE92028C, 0xED050605, 0xEDB1057F, 0xEE7E0581, 0xE9E3068D, 0xED5FF90A,
3880xEA0AFD54, 0xEE84FF91, 0xEE69FE1C, 0xECD7FAA6, 0xEC16F798, 0xEFBCF605, 0xF3A8F9B9, 0xF37AF92F,
3890xF1C0F65B, 0xF3E3F37C, 0xEF5BFA70, 0xF7ACF111, 0xF1E9EF7C, 0xF692EDF7, 0xFAFFEEAD, 0xFE84EAC4,
3900x014AF3C3, 0xFDEFF769, 0x0721F5C9, 0x024EF290, 0x03A9F9F3, 0x00C2020E, 0xF9D500B5, 0xFEBCFF79,
3910xFCB3088D, 0xF93B0752, 0xF9640306, 0xF3A60311, 0xF5AC00EB, 0xF65CFFDB, 0xF6EBFF67, 0xF48C0329,
3920xF584FCC1, 0xEFBFFC76, 0xF159F83C, 0xF446F5B8, 0xF3ADF55A, 0xF42AF3DB, 0xF8C3F7AA, 0xF6D7F8C0,
3930xF9E3F36D, 0xF6C4F166, 0xF957F356, 0xFFCEF516, 0xFDAAF3BA, 0xF9D5F48C, 0x013EF0DA, 0x0301F145,
3940xFDF9F264, 0x02D0F4D4, 0x02C5F35B, 0x023FF4BC, 0x066EF1D0, 0x063CEBF5, 0x0684ED5A, 0x0AC0F465,
3950x0F2DF1D1, 0x0F5CF3CD, 0x0ACCF68D, 0x1305FC13, 0x138900BD, 0x12B603C9, 0x0AE50561, 0x0B28047D,
3960x0D6C03AB, 0x0AA00945, 0x0B1C0BA4, 0x0605105B, 0x06090B4A, 0x039A136C, 0xFE3D0B3D, 0xFC190EF2,
3970xF87E097D, 0xFAEF07AE, 0xF3F90858, 0xEE140881, 0xF132014F, 0xF7A003CB, 0xF6C101FA, 0xF1540172,
3980xF908FCA9, 0xF577F6A5, 0xFD2FF597, 0xFDEEFCE3, 0xF8BCF8C1, 0xFC97F982, 0xF94BF30A, 0xFBC3F7FD,
3990xFB6DF6E8, 0x0177F3BA, 0x036BF366, 0x042CFB26, 0x00D8FA96, 0x0197F395, 0x07FAF61C, 0x0FB2FCB0,
4000x0C7CFA6A, 0x0D99FC2C, 0x085EFDCA, 0x0B99000F, 0x0B1E01F8, 0x0AA20645, 0x0B9806F6, 0x09BC0B9E,
4010x05470A5B, 0x01810A9B, 0x07F50966, 0x038E0561, 0x06650E04, 0x03491089, 0xFE2A1020, 0xF8E60C7E,
4020xF97110A8, 0xF6590FFB, 0xF35C0A99, 0xF0F20CBA, 0xEB820724, 0xEE6204A7, 0xEC3EFCF7, 0xF580FF55,
4030xF691FD75, 0xF028FD1F, 0xF36D0020, 0xF3F2F71F, 0xF785F9D3, 0xF7E3F987, 0xF754F957, 0xFC51F932,
4040xFA2DFCD7, 0xF7E8FB34, 0xFB0CF1FD, 0x0167F8A6, 0xFDCBFE0D, 0xFEC5FAA6, 0x01F7FE1F, 0xFA2EF859,
4050xFE76F8E6, 0x041DFEB8, 0x0023FBBF, 0x0079FE5B, 0x0593FB38, 0x0557FBD7, 0x0224FA5F, 0x05B8FDB7,
4060x089E0309, 0x07FE0131, 0x07FD090F, 0x04C90324, 0x075505A7, 0x0BA10AE6, 0x02FA0BAB, 0xFDE50E89,
4070xFFF80BBC, 0xF9F20DA7, 0xFAF90DC9, 0xF8640A7A, 0xF92F0E00, 0xF5740ACD, 0xF1120F17, 0xEBCA067E,
4080xEEBF00D5, 0xEE4E05EB, 0xF0E9FDEF, 0xEE6504C5, 0xECF0FAD3, 0xF66CFAD5, 0xEDC0F4A7, 0xF273F4E9,
4090xEFA2F545, 0xF578F562, 0xF942F379, 0xF95FF490, 0xF55DF462, 0xFEB8ED72, 0x0121F5C5, 0x01AAF8CE,
4100xFD78F957, 0xF6DFF2ED, 0xF969F142, 0xFF6DF1A8, 0x0810F784, 0x03A2F957, 0x0983F64A, 0x0B8DF51D,
4110x0868F2E1, 0x0D37F5F5, 0x0F01F588, 0x0B32016F, 0x108C02BA, 0x0EEA054C, 0x0D570A27, 0x10B3036A,
4120x12A50AB5, 0x0DE20FC2, 0x05B31421, 0x07EC14D3, 0x032C125F, 0xFEF8111C, 0xF82811C6, 0xF8670CD5,
4130xF96C0D76, 0xF1400D9B, 0xF1EC07C5, 0xEC7D0522, 0xEA3C02F1, 0xEB040569, 0xEA95FB0E, 0xEC76FAC0,
4140xF0E6F7EA, 0xF4FBF785, 0xFE1AF489, 0x0194F342, 0xFFEAFA85, 0x0084F2A3, 0xFE99FA9D, 0x03B1FAF2
415
416output0 =
4170xFBF20264, 0xFB14007E, 0xFB2CFE4A, 0xFC4DFC44, 0xFE49FAE0, 0x00C8FA6A, 0x035DFB04, 0x05A0FC9A,
4180x073DFEFC, 0x07FE01E1, 0x07C604FB, 0x069407F9, 0x04780A90, 0x019E0C78, 0xFE460D7C, 0xFAC30D7F,
4190xF76D0C87, 0xF4920ABC, 0xF2660861, 0xF0F705C1, 0xF032031B, 0xEFF40096, 0xF018FE3A, 0xF089FC01,
4200xF149F9E3, 0xF265F7E6, 0xF3E8F626, 0xF5C7F4CE, 0xF7DFF402, 0xF9F6F3D2, 0xFBD1F42E, 0xFD45F4EA,
4210xFE45F5CF, 0xFEE4F6AE, 0xFF40F774, 0xFF73F824, 0xFF81F8CD, 0xFF55F976, 0xFED3FA07, 0xFDF1FA4E,
4220xFCC8FA07, 0xFBA1F900, 0xFAE5F731, 0xFAFDF4D4, 0xFC2CF259, 0xFE71F049, 0x0182EF1F, 0x04E1EF1F,
4230x0802F040, 0x0A77F239, 0x0C0FF499, 0x0CDBF6F3, 0x0D1EF903, 0x0D27FABC, 0x0D31FC43, 0x0D47FDD3,
4240x0D49FF9B, 0x0CF801A7, 0x0C1903D5, 0x0A8B05DE, 0x0859076F, 0x05BB0845, 0x0302083E, 0x00840762,
4250xFE8805DC, 0xFD3703EE, 0xFC9C01DD, 0xFCA7FFE4, 0xFD36FE2F, 0xFE24FCD6, 0xFF49FBE1, 0x0088FB4C,
4260x01CAFB0E, 0x0300FB1B, 0x0422FB6D, 0x0525FBFF, 0x05FBFCCF, 0x0690FDD6, 0x06CCFF02, 0x069B002F,
4270x05FB012F, 0x050101CC, 0x03E101E0, 0x02E0015D, 0x0248005E, 0x024CFF21, 0x02F8FDF7, 0x0431FD2C,
4280x05B5FCF1, 0x073AFD4B, 0x0886FE18, 0x0980FF22, 0x0A390037, 0x0AD70143, 0x0B84025A, 0x0C4F03AA,
4290x0D1C056B, 0x0DAA07BD, 0x0DA30A96, 0x0CBC0DB9, 0x0ACD10C4, 0x07E61348, 0x044714E9, 0x00511572,
4300xFC7014DE, 0xF9021355, 0xF6431119, 0xF4510E76, 0xF32C0BB2, 0xF2BC0908, 0xF2E306A0, 0xF3790495,
4310xF45A02F3, 0xF55F01BC, 0xF66B00E8, 0xF7650064, 0xF842001F, 0xF8FC0006, 0xF993000F, 0xFA080034,
4320xFA550071, 0xFA7100BD, 0xFA510108, 0xF9F20138, 0xF9620130, 0xF8BA00D8, 0xF8210028, 0xF7BEFF2B,
4330xF7AEFDFE, 0xF7FEFCC6, 0xF8A7FBA6, 0xF998FAB8, 0xFABCFA0A, 0xFBFFF99E, 0xFD56F976, 0xFEBAF997,
4340x001FFA08, 0x0171FAD5, 0x0292FBFE, 0x0363FD7A, 0x03C6FF2E, 0x03AC00F2, 0x0316029D, 0x021A040D,
4350x00D2052C, 0xFF5E05F4, 0xFDD4066B, 0xFC410698, 0xFAAA0684, 0xF911062E, 0xF77A0590, 0xF5EE04A2,
4360xF47F035C, 0xF34601BE, 0xF25DFFCF, 0xF1DFFDA3, 0xF1E2FB57, 0xF270F913, 0xF385F706, 0xF508F55A,
4370xF6CEF430, 0xF8A0F392, 0xFA46F370, 0xFB95F3A0, 0xFC80F3EA, 0xFD15F416, 0xFD7EF3FE, 0xFDF2F39A,
4380xFEA0F300, 0xFFA2F25B, 0x00F7F1D9, 0x0284F19F, 0x0426F1B8, 0x05BEF21D, 0x073BF2BA, 0x08A0F37E,
4390x09F7F463, 0x0B47F575, 0x0C8AF6C5, 0x0DAAF860, 0x0E85FA45, 0x0EFBFC5D, 0x0EFEFE84, 0x0E910090,
4400x0DCB0263, 0x0CCE03F1, 0x0BB50540, 0x0A8E0662, 0x09550767, 0x07FC0857, 0x066F0925, 0x04A809B8,
4410x02AF09F1, 0x009E09B4, 0xFE9D08F3, 0xFCDA07B2, 0xFB7D0607, 0xFAA70419, 0xFA650218, 0xFAB00036,
4420xFB6FFE9F, 0xFC79FD70, 0xFD9BFCB1, 0xFEA8FC50, 0xFF83FC29, 0x0026FC0E, 0x00A8FBD9, 0x0132FB77,
4430x01F3FAF7, 0x030AFA7F, 0x0478FA47, 0x061DFA82, 0x07BEFB48, 0x091CFC90, 0x0A05FE2E, 0x0A64FFE3,
4440x0A4C0175, 0x09E802BB, 0x096D03AE, 0x09050466, 0x08C40507, 0x08A305B8, 0x08870690, 0x08520790,
4450x07EA08A9, 0x074809C3, 0x066E0ACA, 0x05680BB0, 0x04400C72, 0x02FA0D0F, 0x01970D84, 0x00170DC5,
4460xFE840DC3, 0xFCEF0D73, 0xFB770CCF, 0xFA380BE6, 0xF94A0AD1, 0xF8B309B8, 0xF86408BE, 0xF83E07FB,
4470xF8190771, 0xF7D4070D, 0xF75D06A9, 0xF6BB061E, 0xF60F054A, 0xF5850426, 0xF54E02C4, 0xF58B0151,
4480xF6400009, 0xF74EFF25, 0xF87EFEC8, 0xF989FEF2, 0xFA31FF7F, 0xFA55002F, 0xF9F700BA, 0xF93F00E5,
4490xF86A0093, 0xF7BAFFC9, 0xF760FEAB, 0xF771FD69, 0xF7EBFC33, 0xF8B8FB28, 0xF9C2FA58, 0xFAF7F9C8,
4500xFC4EF97D, 0xFDBCF983, 0xFF31F9EB, 0x008BFAC2, 0x019DFC04, 0x023CFD92, 0x024EFF39, 0x01D700BF,
4510x00FA01F1, 0xFFED02BD, 0xFEDF0330, 0xFDEB036E, 0xFD09039D, 0xFC1803CE, 0xFAF503F0, 0xF99003D7,
4520xF7FE034B, 0xF677022B, 0xF549007A, 0xF4B1FE68, 0xF4CEFC42, 0xF58FFA56, 0xF6C0F8D9, 0xF821F7DC,
4530xF97EF749, 0xFAC2F702, 0xFBEFF6EC, 0xFD11F704, 0xFE26F75C, 0xFF11F803, 0xFFA1F8F0, 0xFFAAF9F6,
4540xFF1EFAC5, 0xFE22FB0A, 0xFD11FA8D, 0xFC5AF955, 0xFC5DF7AA, 0xFD3FF600, 0xFEDDF4CE, 0x00D7F460,
4550x02B7F4B8, 0x041FF594, 0x04F3F68F, 0x055CF74B, 0x05B5F7A1, 0x0658F7B0, 0x0775F7CD, 0x08F9F85F,
4560x0A8DF9AA, 0x0BC0FBB3, 0x0C30FE37, 0x0BB200C7, 0x0A6002F3, 0x088B0471, 0x06920532, 0x04C2055C,
4570x033B052B, 0x01ED04D4, 0x00B50465, 0xFF7803C8, 0xFE3C02D6, 0xFD2E016F, 0xFC8FFF97, 0xFC9CFD80,
4580xFD6FFB7A, 0xFEF1F9DB, 0x00E6F8E0, 0x02FBF89D, 0x04E7F8FE, 0x067DF9D2, 0x07B1FAE2, 0x0890FC07,
4590x0933FD2F, 0x09A9FE5B, 0x09F7FF90, 0x0A1500D1, 0x09FA0214, 0x09A3034A, 0x09140462, 0x08570550,
4600x077A060B, 0x06860690, 0x058706D7, 0x048C06D5, 0x03B20687, 0x031D05F7, 0x02F20547, 0x034004AF,
4610x03F50474, 0x04D604C8, 0x058F05BC, 0x05CA072B, 0x055008C3, 0x04210A1D, 0x02790AE4, 0x00BA0AF0,
4620xFF480A5C, 0xFE660976, 0xFE1A08A2, 0xFE2D0831, 0xFE440842, 0xFE0808B2, 0xFD470934, 0xFC0D096B,
4630xFA970917, 0xF93E0825, 0xF85106BC, 0xF7FB0524, 0xF83403AC, 0xF8D0028B, 0xF99201D3, 0xFA480173,
4640xFAD90149, 0xFB450135, 0xFB9C0127, 0xFBE9011F, 0xFC2F0125, 0xFC65013D, 0xFC80015E, 0xFC7B0178,
4650xFC610179, 0xFC480159, 0xFC460120, 0xFC6400E6, 0xFC9D00BF, 0xFCDF00B8, 0xFD1300CE, 0xFD3000F0,
4660xFD3C010E, 0xFD440123, 0xFD56013C, 0xFD6F0170, 0xFD7101D1, 0xFD340255, 0xFC9502D5, 0xFB8E030E,
4670xFA4702BB, 0xF91401B8, 0xF8580013, 0xF865FE16, 0xF95AFC33, 0xFB13FADD, 0xFD30FA65, 0xFF36FAD7,
4680xFA04FDBF, 0xFB68FC07, 0xFD74FB2D, 0xFF99FB6A, 0x0142FC9D, 0x0208FE5D, 0x01CA001D, 0x00B8015B,
4690xFF3801C5, 0xFDC50149, 0xFCCE0013, 0xFC98FE79, 0xFD3AFCE6, 0xFE96FBBE, 0x0063FB4E, 0x023EFBBA,
4700x03B7FCF1, 0x0471FEAC, 0x043B0077, 0x032801CC, 0x01960238, 0x001E018E, 0xFF66FFFB, 0xFFE8FE10,
4710x01BBFC92, 0x047CFC42, 0x0766FD91, 0x0987006D, 0x0A19043C, 0x08C6080B, 0x05CF0ADD, 0x01F30C00,
4720xFE2E0B49, 0xFB63091F, 0xFA0E0647, 0xFA24039A, 0xFB2D01B4, 0xFC8000C4, 0xFD8B008F, 0xFE12009B,
4730xFE340072, 0xFE55FFDC, 0xFEDFFEF6, 0x000DFE1F, 0x01C8FDCA, 0x03B8FE45, 0x0561FF97, 0x065B017E,
4740x067C0389, 0x05DD0549, 0x04CF0677, 0x03B2070A, 0x02D2072C, 0x024B0722, 0x020E072B, 0x01EF0768,
4750x01BC07D7, 0x01570859, 0x00B908C7, 0xFFF608FE, 0xFF3008EC, 0xFE900894, 0xFE3A0809, 0xFE4A0775,
4760xFEC9070D, 0xFFA30713, 0x00A007BF, 0x0165092D, 0x01850B45, 0x009E0DB0, 0xFE850FE1, 0xFB601136,
4770xF7AE112F, 0xF42D0F9D, 0xF1A50CC1, 0xF09C0943, 0xF12B0601, 0xF2EC03C4, 0xF51702FA, 0xF6C8038B,
4780xF75304E5, 0xF6840629, 0xF4AF0687, 0xF2930584, 0xF116032E, 0xF0ED0012, 0xF25AFD0F, 0xF51DFB01,
4790xF884FA7C, 0xFBAFFB9C, 0xFDD6FE03, 0xFE8500FF, 0xFDBA03C5, 0xFBD005B2, 0xF9630672, 0xF7100608,
4800xF55004C4, 0xF45B0317, 0xF424016F, 0xF4710014, 0xF4F7FF1F, 0xF578FE76, 0xF5DAFDEB, 0xF62DFD4F,
4810xF69CFC90, 0xF759FBC3, 0xF87DFB23, 0xF9F3FAF6, 0xFB78FB72, 0xFCAAFC9C, 0xFD2CFE3D, 0xFCCDFFE6,
4820xFBA3011B, 0xFA0E017E, 0xF89800F8, 0xF7C2FFCF, 0xF7C9FE88, 0xF88AFDBC, 0xF985FDD0, 0xFA0BFEC3,
4830xF989001E, 0xF7CF011E, 0xF53200F7, 0xF27BFF2E, 0xF0A6FBD0, 0xF088F781, 0xF279F346, 0xF633F034,
4840xFAE1EF0D, 0xFF69EFFF, 0x02CAF29C, 0x0470F602, 0x0458F934, 0x0304FB67, 0x013EFC43, 0xFFCDFBEE,
4850xFF32FAE8, 0xFF8BF9D2, 0x0099F934, 0x01EBF950, 0x0307FA1A, 0x0399FB4D, 0x0388FC86, 0x02EEFD6D,
4860x0211FDC8, 0x0141FD8A, 0x00CCFCCF, 0x00E5FBD3, 0x01A0FAE4, 0x02E3FA50, 0x0479FA4F, 0x0612FAF9,
4870x075FFC3A, 0x0827FDDC, 0x0857FF94, 0x0807011E, 0x076D0256, 0x06BE033F, 0x061B03FC, 0x057E04B6,
4880x04BD057E, 0x03AD063A, 0x023A06AB, 0x00880684, 0xFEEF0595, 0xFDE403EE, 0xFDC801E7, 0xFEBD000B,
4890x008FFEE9, 0x02BBFEDF, 0x049FFFEE, 0x05B401BF, 0x05BD03BC, 0x04DE054B, 0x038C0608, 0x025C05E7,
4900x01C70534, 0x02020474, 0x02E8042A, 0x041004AD, 0x04F20607, 0x051B07F4, 0x044D09FB, 0x02950B97,
4910x00420C5C, 0xFDCF0C15, 0xFBC00ACE, 0xFA8408D3, 0xFA56069D, 0xFB3404B0, 0xFCDA0382, 0xFED10358,
4920x00940433, 0x01AF05D0, 0x01E107BD, 0x01360978, 0xFFF90AA3, 0xFE9A0B1D, 0xFD7E0B10, 0xFCD90AD5,
4930xFC950ACE, 0xFC630B33, 0xFBDF0BF9, 0xFAC80CD0, 0xF91D0D4B, 0xF72D0D13, 0xF56E0C17, 0xF44D0A95,
4940xF3F60908, 0xF43D07EF, 0xF4AA078D, 0xF4B107CC, 0xF3F4083A, 0xF26F083B, 0xF086074C, 0xEEE30541,
4950xEE32025F, 0xEED8FF47, 0xF0CDFCC2, 0xF397FB71, 0xF673FB97, 0xF89BFD01, 0xF986FF1B, 0xF9120122,
4960xF78A0262, 0xF587026F, 0xF3BE013E, 0xF2CCFF21, 0xF30AFCAB, 0xF47DFA85, 0xF6D1F941, 0xF977F935,
4970xFBC7FA61, 0xFD2FFC70, 0xFD5CFECB, 0xFC5700C4, 0xFA8401C9, 0xF88C0196, 0xF7210050, 0xF6C6FE7C,
4980xF79AFCD5, 0xF94AFC08, 0xFB2AFC72, 0xFC75FDFD, 0xFC970022, 0xFB66021D, 0xF92F0337, 0xF6950309,
4990xF454019B, 0xF2F5FF5B, 0xF2A4FCE2, 0xF32FFAB4, 0xF42FF90F, 0xF541F7E0, 0xF63AF6E3, 0xF733F5D5,
5000xF872F4A5, 0xFA3AF387, 0xFC97F2DC, 0xFF4BF306, 0x01DEF430, 0x03CBF634, 0x04B6F8A0, 0x0496FAE3,
5010x03B7FC7F, 0x0298FD39, 0x01C0FD2C, 0x0188FCB2, 0x0205FC44, 0x0307FC49, 0x0431FCF9, 0x051EFE53,
5020x05790023, 0x05150216, 0x03EF03CD, 0x023004F0, 0x00270541, 0xFE3F04A6, 0xFCEC0341, 0xFC8F016C,
5030xFD53FFB5, 0xFF0FFEBD, 0x0143FF02, 0x033000AD, 0x040E0378, 0x035606B0, 0x00F4096C, 0xFD5A0AD5,
5040xF95F0A74, 0xF5FA085D, 0xF3E80524, 0xF36E01A3, 0xF44FFEAB, 0xF5EEFCB3, 0xF797FBBD, 0xF8CCFB65,
5050xF975FB1D, 0xF9DAFA78, 0xFA76F95A, 0xFBB6F805, 0xFDC0F6F6, 0x0060F6AB, 0x031DF767, 0x056DF91D,
5060x06EDFB72, 0x077FFDEC, 0x074F001E, 0x06B201D5, 0x06000318, 0x0569041F, 0x04EA0526, 0x04590654,
5070x037907A1, 0x022108DA, 0x004E09B8, 0xFE2A09F4, 0xFC040968, 0xFA3D0817, 0xF92C0639, 0xF9080429,
5080xF9D7025E, 0xFB660148, 0xFD4B0137, 0xFEF9023F, 0xFFE4042A, 0xFFA9067C, 0xFE31088F, 0xFBC209C4,
5090xF8F009B6, 0xF6730861, 0xF4E80626, 0xF49B03B0, 0xF56A01B5, 0xF6CF00B7, 0xF81400CE, 0xF89801A2,
5100xF80F028C, 0xF69E02D7, 0xF4D30206, 0xF36B0002, 0xF311FD2B, 0xF41EFA2F, 0xF67EF7D1, 0xF9B5F6A8,
5110xFD12F6F0, 0xFFE4F882, 0x01AEFAE8, 0x024AFD86, 0x01DEFFD2, 0x00CC0173, 0xFF840254, 0xFE650298,
5120xFDA00287, 0xFD34026A, 0xFCFC0275, 0xFCC002B3, 0xFC53030A, 0xFBA8034B, 0xFAD40345, 0xFA0B02E4,
5130xF986023B, 0xF969017E, 0xF9AB00F6, 0xFA1800D8, 0xFA5B012F, 0xFA2601C9, 0xF9550245, 0xF80D0239,
5140xF6B6015C, 0xF5DAFFB8, 0xF5ECFDAB, 0xF718FBD3, 0xF91CFAD7, 0xFB5DFB1F, 0xFD11FCA8, 0xFD8EFEF4,
5150xFC890134, 0xFA3C028D, 0xF7540265, 0xF4BA0098, 0xF343FD8B, 0xF36CFA02, 0xF535F6E0, 0xF82BF4DF,
5160xFB92F459, 0xFEAAF540, 0x00E1F729, 0x01F7F982, 0x01FAFBB7, 0x0137FD61, 0x0013FE4D, 0xFEF3FE81,
5170xFE24FE28, 0xFDD2FD88, 0xFE04FCE9, 0xFE9DFC8F, 0xFF67FCA3, 0x001DFD2F, 0x007DFE14, 0x0061FF15,
5180xFFCAFFE8, 0xFEE8004F, 0xFE030031, 0xFD69FFA6, 0xFD47FEEF, 0xFD9DFE5D, 0xFE39FE2E, 0xFECDFE73,
5190x05D2FCB5, 0x06AFFEB0, 0x067500D9, 0x0538028D, 0x03660351, 0x01A002FF, 0x007801D7, 0x00430058,
5200x00FBFF18, 0x024DFE89, 0x03BAFED3, 0x04CBFFD8, 0x05330140, 0x04E3029D, 0x04060392, 0x02F003E8,
5210x0201039B, 0x019002DA, 0x01D101F7, 0x02CB015A, 0x044D0167, 0x05F90262, 0x0750045B, 0x07D4071C,
5220x07300A34, 0x054F0D10, 0x026E0F25, 0xFF05101C, 0xFBA60FEB, 0xF8C80ED5, 0xF6A00D47, 0xF51C0BAD,
5230xF3F60A41, 0xF2E008FF, 0xF1AF07AD, 0xF077060A, 0xEF7D03F4, 0xEF12018A, 0xEF64FF21, 0xF05DFD22,
5240xF1A4FBD3, 0xF2C2FB33, 0xF35CFAF3, 0xF35CFA96, 0xF308F9AD, 0xF2E3F80E, 0xF374F5EE, 0xF507F3D9,
5250xF782F270, 0xFA66F22E, 0xFCFCF32B, 0xFE9FF50C, 0xFEF7F723, 0xFE24F8AF, 0xFCACF922, 0xFB50F851,
5260xFAC4F686, 0xFB72F45F, 0xFD60F297, 0x0030F1C9, 0x0348F244, 0x0601F3FF, 0x07DBF6A2, 0x0893F9AE,
5270x082EFC9D, 0x06E8FF08, 0x051D00B5, 0x032C019E, 0x016101E9, 0xFFE601D0, 0xFEBB0195, 0xFDC10166,
5280xFCC60153, 0xFB9A0148, 0xFA220113, 0xF8680077, 0xF69AFF45, 0xF500FD67, 0xF3E4FAF5, 0xF37CF825,
5290xF3E0F543, 0xF500F294, 0xF6B4F04A, 0xF8CBEE7B, 0xFB20ED27, 0xFD9CEC48, 0x0034EBDF, 0x02D9EBF6,
5300x0570EC9E, 0x07CAEDDF, 0x09ABEFA5, 0x0AE2F1BF, 0x0B58F3DD, 0x0B1DF5AC, 0x0A70F6E6, 0x09A9F76E,
5310x0923F755, 0x0928F6D9, 0x09D5F652, 0x0B1BF61D, 0x0CBDF680, 0x0E66F79D, 0x0FBAF969, 0x106BFBAA,
5320x1051FE09, 0x0F740022, 0x0E0D01A0, 0x0C7F0253, 0x0B3A0245, 0x0AA101BE, 0x0AE20138, 0x0BE4013A,
5330x0D430232, 0x0E61044B, 0x0E990754, 0x0D6F0AC5, 0x0ABB0DDE, 0x06C10FDD, 0x02221039, 0xFDB00ECA,
5340xFA380BD9, 0xF8460807, 0xF8010420, 0xF92800E3, 0xFB2BFECC, 0xFD5BFDFB, 0xFF1AFE35, 0x000CFF00,
5350x0021FFCE, 0xFF95002B, 0xFED3FFD6, 0xFE50FED8, 0xFE66FD70, 0xFF3BFC04, 0x00BCFAF9, 0x02A6FA9B,
5360x049AFB03, 0x063FFC1A, 0x0758FDA3, 0x07D4FF4E, 0x07C700D9, 0x0763021B, 0x06DA030E, 0x065303C4,
5370x05DA045A, 0x056B04E4, 0x04FC0567, 0x048905DB, 0x041E063D, 0x03D20695, 0x03AF0705, 0x03AA07BA,
5380x039208DA, 0x03190A6B, 0x01F00C3C, 0xFFE70DEF, 0xFD0A0F0B, 0xF9AA0F27, 0xF64D0E14, 0xF3810BEF,
5390xF1B40923, 0xF1070640, 0xF14703D2, 0xF1FF022E, 0xF2A50156, 0xF2C90100, 0xF23D00B1, 0xF123FFEE,
5400xEFD9FE66, 0xEEDDFC0B, 0xEE9DF913, 0xEF59F5E2, 0xF11AF2ED, 0xF3B0F099, 0xF6CBEF28, 0xFA0BEEB2,
5410xFD16EF29, 0xFFA5F060, 0x0185F218, 0x02A0F406, 0x02FCF5DE, 0x02BCF75E, 0x021CF854, 0x0167F8B1,
5420x00E6F887, 0x00D1F80B, 0x013DF784, 0x021DF738, 0x033FF75E, 0x0461F809, 0x0544F92C, 0x05B5FA9F,
5430x059FFC2B, 0x0503FD99, 0x03F9FEBA, 0x02A4FF6D, 0x012FFFA0, 0xFFCAFF51, 0xFEA4FE8B, 0xFDE6FD71,
5440xFDADFC32, 0xFDFEFB0F, 0xFEBEFA46, 0xFFB1FA07, 0x0089FA5D, 0x00F2FB29, 0x00B5FC20, 0xFFC5FCDE,
5450xFE50FD01, 0xFCB3FC48, 0xFB66FAAE, 0xFADAF86A, 0xFB54F5ED, 0xFCD6F3BC, 0xFF1FF250, 0x01B5F1ED,
5460x040DF291, 0x05B0F3EF, 0x0664F589, 0x063AF6D6, 0x058DF76B, 0x04E0F724, 0x04B6F627, 0x0567F4DF,
5470x0702F3D5, 0x0949F385, 0x0BC3F432, 0x0DECF5D5, 0x0F58F821, 0x0FDCFAA1, 0x0F8FFCE2, 0x0EC3FE97,
5480x0DDBFFB3, 0x0D28005F, 0x0CCC00E6, 0x0CB40192, 0x0CAA028A, 0x0C6C03C8, 0x0BD00524, 0x0AD00663,
5490x098A075A, 0x082A07FD, 0x06D7085E, 0x059A08A0, 0x045E08E0, 0x02FA091E, 0x01500936, 0xFF5E08ED,
5500xFD4C0808, 0xFB680669, 0xFA0F0422, 0xF98C017A, 0xF9FCFED6, 0xFB45FCA3, 0xFD16FB31, 0xFF03FA9B,
5510x00A3FABE, 0x01B1FB49, 0x0220FBD4, 0x021EFC01, 0x0206FB9E, 0x0241FAB2, 0x0326F981, 0x04DDF878,
5520x074AF80E, 0x0A15F8A2, 0x0CB9FA59, 0x0EACFD0D, 0x0F850056, 0x0F1F03A1, 0x0DA5065B, 0x0B88081B,
5530x095E08C4, 0x07B4088D, 0x06DF07EF, 0x06E5077A, 0x077C07A8, 0x082408B2, 0x08550A7F, 0x07B10CB4,
5540x061A0ED2, 0x03BE1067, 0x00F91132, 0xFE30112F, 0xFBAF108F, 0xF98C0F96, 0xF7B60E77, 0xF6040D42,
5550xF45A0BDC, 0xF2C20A1B, 0xF16F07E3, 0xF0A80542, 0xF0A70278, 0xF179FFE6, 0xF2EEFDE9, 0xF4A6FCB6,
5560xF631FC40, 0xF73EFC3A, 0xF7BAFC38, 0xF7DDFBD7, 0xF80EFAED, 0xF8C0F99F, 0xFA3BF854, 0xFC78F793,
5570xFF21F7CF, 0x01A3F938, 0x0363FBA7, 0x03F2FEA5, 0x032C018E, 0x014703C8, 0xFEBF04EA, 0xFC2A04DA,
5580xFA1303CB, 0xF8D00228, 0xF876006E, 0xF8DCFF0D, 0xF9ACFE48, 0xFA81FE31, 0xFB02FEA7, 0xFAF5FF61,
5590xFA490008, 0xF91D0047, 0xF7B7FFE4, 0xF673FECE, 0xF5ACFD28, 0xF5A1FB41, 0xF663F981, 0xF7C4F850,
5600xF965F7F0, 0xFACEF866, 0xFB92F978, 0xFB76FAB4, 0xFA83FB9C, 0xF907FBC9, 0xF777FB10, 0xF64AF98D,
5610xF5D3F794, 0xF624F58F, 0xF716F3DC, 0xF85BF2A9, 0xF9A6F1EF, 0xFAC4F182, 0xFBB1F129, 0xFC88F0BF,
5620xFD74F040, 0xFE90EFC9, 0xFFDBEF83, 0x0133EF8A, 0x0268EFDD, 0x0355F057, 0x03F6F0C1, 0x046BF0EB,
5630x04F3F0C0, 0x05D0F058, 0x072EEFF2, 0x090FEFE2, 0x0B41F076, 0x0D6EF1D8, 0x0F2DF400, 0x1025F6AD,
5640x1027F979, 0x0F3FFBEC, 0x0DB4FDA4, 0x0BF9FE70, 0x0A8EFE61, 0x09D8FDCD, 0x0A01FD35, 0x0AE0FD21,
5650x0C08FDF3, 0x0CDCFFBD, 0x0CCB0235, 0x0B8204C5, 0x090B06BD, 0x05D60786, 0x029506E0, 0x000304F7,
5660xFEA30253, 0xFE96FFAB, 0xFF96FDA2, 0x0114FC90, 0x0277FC6D, 0x0351FCE0, 0x0384FD6B, 0x0340FDA8,
5670x02E4FD6B, 0x02C7FCCD, 0x0316FC12, 0x03C5FB84, 0x04A0FB4A, 0x0570FB5C, 0x0618FB92, 0x06A8FBC1,
5680x074AFBDE, 0x0827FC07, 0x0944FC79, 0x0A78FD6B, 0x0B74FEF2, 0x0BE700EF, 0x0BA10311, 0x0AA504FE,
5690x09290670, 0x077B0752, 0x05D907BA, 0x045B07D9, 0x02F507D3, 0x018607AB, 0xFFFF0740, 0xFE740667,
5700xFFB4FF1B, 0xFEF80021, 0xFDCE00CD, 0xFC7500FA, 0xFB3200AF, 0xFA35001D, 0xF981FF7F, 0xF8F3FF04,
5710xF851FEB3, 0xF768FE6B, 0xF625FDEA, 0xF4A2FCEA, 0xF323FB3B, 0xF200F8D6, 0xF18BF5E4, 0xF1FFF2B0,
5720xF36AEF99, 0xF5B4ECF8, 0xF8A3EB14, 0xFBE9EA15, 0xFF32EA01, 0x0231EABF, 0x04AAEC1D, 0x067EEDD7,
5730x07ABEFA6, 0x084FF14C, 0x089CF2A3, 0x08CDF3A5, 0x0916F46A, 0x0991F520, 0x0A38F5F9, 0x0AEAF71B,
5740x0B78F892, 0x0BAFFA4F, 0x0B70FC28, 0x0AB2FDEB, 0x0985FF6A, 0x08080083, 0x06640126, 0x04C10151,
5750x0343010E, 0x020A0072, 0x012EFF9E, 0x00BFFEB9, 0x00B6FDF5, 0x00F9FD81, 0x0150FD7D, 0x0176FDEA,
5760x0127FEA1, 0x0039FF55, 0xFEAFFFA6, 0xFCC2FF3B, 0xFADCFDE0, 0xF979FB9E, 0xF905F8BF, 0xF9BFF5C2,
5770xFB9BF336, 0xFE47F194, 0x013DF11F, 0x03EBF1C8, 0x05DAF33B, 0x06D4F4F5, 0x06EEF66D, 0x0686F73F,
5780x061BF74B, 0x0628F6BE, 0x06FCF603, 0x089AF59E, 0x0ABEF602, 0x0CECF76B, 0x0E9CF9CB, 0x0F61FCD0,
5790x0F07FFFE, 0x0D9F02D4, 0x0B7304F0, 0x08E90624, 0x06670679, 0x0434061C, 0x0277054B, 0x0135043E,
5800x0063031E, 0xFFF50205, 0xFFDD0106, 0x0013003A, 0x007FFFBA, 0x00FDFF9B, 0x015BFFDC, 0x01660061,
5810x010100F0, 0x00350143, 0xFF330121, 0xFE4A0077, 0xFDCAFF65, 0xFDE5FE36, 0xFE99FD47, 0xFFADFCE8,
5820x00C3FD3C, 0x0179FE2E, 0x0187FF74, 0x00D700AA, 0xFF8B0171, 0xFDED018D, 0xFC5A00EF, 0xFB25FFB3,
5830xFA83FE18, 0xFA8AFC66, 0xFB2EFAE4, 0xFC4BF9CA, 0xFDACF93C, 0xFF11F949, 0x003BF9E6, 0x00EDFAEB,
5840x0104FC18, 0x007AFD1C, 0xFF76FDAB, 0xFE43FD90, 0xFD42FCC6, 0xFCCCFB7E, 0xFD18FA14, 0xFE1EF8F5,
5850xFF9FF87F, 0x0131F8DC, 0x0260F9FA, 0x02D7FB88, 0x0279FD16, 0x0167FE3A, 0xFFF7FEAC, 0xFE91FE5E,
5860xFD91FD78, 0xFD2BFC4A, 0xFD66FB2C, 0xFE1AFA65, 0xFF07FA1C, 0xFFEEFA56, 0x0097FAF9, 0x00E3FBDE,
5870x00C4FCDE, 0x003BFDD1, 0xFF4FFE97, 0xFE10FF0F, 0xFC97FF1E, 0xFB07FEAB, 0xF994FDAC, 0xF875FC2E,
5880xF7DDFA59, 0xF7E6F86E, 0xF888F6B6, 0xF997F56E, 0xFACAF4B3, 0xFBD3F477, 0xFC76F482, 0xFCA5F483,
5890xFC80F42B, 0xFC54F34D, 0xFC7CF1EC, 0xFD46F042, 0xFED8EEAD, 0x011CED94, 0x03CCED43, 0x0681EDDB,
5900x08D9EF42, 0x0A8EF135, 0x0B85F35D, 0x0BD3F56B, 0x0BA7F72C, 0x0B39F890, 0x0AB9F9A1, 0x0A40FA77,
5910x09D8FB2D, 0x097CFBD5, 0x0928FC79, 0x08D4FD21, 0x0878FDD7, 0x0802FE9F, 0x075DFF76, 0x066F0045,
5920x052E00E7, 0x03A6012A, 0x020200E6, 0x0087000C, 0xFF79FEB9, 0xFF0AFD2B, 0xFF40FBB8, 0xFFF2FAAA,
5930x00D5FA28, 0x0197FA29, 0x01FCFA78, 0x01F4FACE, 0x019BFAE9, 0x0125FAAC, 0x00CAFA1C, 0x00ABF95A,
5940x00CBF88B, 0x011AF7C4, 0x0186F700, 0x0213F62E, 0x02DAF545, 0x0406F455, 0x05B3F394, 0x07D9F34D,
5950x0A3EF3C6, 0x0C80F51C, 0x0E37F72D, 0x0F17F9A1, 0x0F15FBFF, 0x0E6EFDE0, 0x0D8DFF10, 0x0CEAFFA9,
5960x0CD00006, 0x0D46009F, 0x0E0401DD, 0x0E9203E8, 0x0E6E069C, 0x0D40098E, 0x0AF60C34, 0x07C90E0F,
5970x042B0ED0, 0x009B0E6D, 0xFD870D19, 0xFB300B2A, 0xF9A108FD, 0xF8C106DC, 0xF86104F2, 0xF854034F,
5980xF87801ED, 0xF8B700C4, 0xF905FFCB, 0xF957FEFC, 0xF9A3FE4D, 0xF9E0FDB3, 0xFA0CFD1A, 0xFA33FC6F,
5990xFA6CFBA7, 0xFAD3FACB, 0xFB7FF9F3, 0xFC74F946, 0xFDA2F8EB, 0xFEE1F8FC, 0xFFFFF97E, 0x00CDFA5A,
6000x012BFB63, 0x0114FC65, 0x009DFD30, 0xFFEEFDA4, 0xFF35FDBB, 0xFE9DFD83, 0xFE41FD1C, 0xFE2DFCAD,
6010xFE56FC5B, 0xFEA3FC43, 0xFEF0FC74, 0xFF14FCEC, 0xFEE9FD93, 0xFE53FE42, 0xFD4AFEC1, 0xFBE2FED7,
6020xFA4EFE52, 0xF8D8FD1D, 0xF7D3FB4A, 0xF785F914, 0xF80FF6D8, 0xF961F4F9, 0xFB3AF3CB, 0xFD32F372,
6030xFEE1F3DA, 0xFFF8F4BA, 0x005BF5AC, 0x002DF64F, 0xFFBAF666, 0xFF64F5E9, 0xFF7AF508, 0x0024F415,
6040x0155F365, 0x02D6F334, 0x045BF397, 0x059FF479, 0x0679F5A8, 0x06DFF6EC, 0x06E0F816, 0x069BF90D,
6050x062DF9C9, 0x05A9FA4B, 0x051FFA96, 0x049BFAAB, 0x042FFA89, 0x03F0FA39, 0x03F7F9D2, 0x044DF978,
6060x04EBF955, 0x05ACF990, 0x065DFA38, 0x06C3FB3E, 0x06B2FC76, 0x0618FD9E, 0x0507FE76, 0x03B2FEC9,
6070x025FFE86, 0x0155FDBF, 0x00C7FCA8, 0x00CBFB88, 0x014DFAA5, 0x0219FA36, 0x02E8FA4C, 0x0370FAD0,
6080x0381FB8A, 0x030DFC2C, 0x0234FC6E, 0x0139FC21, 0x0070FB41, 0x0020F9F9, 0x0073F892, 0x0165F762,
6090x02C7F6AD, 0x044DF696, 0x05ABF711, 0x06A8F7F2, 0x072CF8F9, 0x0741F9EB, 0x070AFA9D, 0x06B4FAFD,
6100x0669FB0F, 0x0649FAE5, 0x0669FA98, 0x06D6FA46, 0x0795FA11, 0x089CFA1F, 0x09D0FA96, 0x0B01FB8E,
6110x0BF1FD08, 0x0C66FEE0, 0x0C3B00D9, 0x0B7302A4, 0x0A3A03FE, 0x08DC04C9, 0x07AA0517, 0x06D90525,
6120x06710546, 0x064705C0, 0x060A06B3, 0x0566080D, 0x041E098B, 0x021F0AD5, 0xFF890B96, 0xFC9B0B95,
6130xF9A30ABA, 0xF6EE0910, 0xF4B806BA, 0xF32E03E7, 0xF26C00D0, 0xF27DFDB5, 0xF357FADA, 0xF4D6F87F,
6140xF6BAF6D3, 0xF8AEF5E3, 0xFA64F590, 0xFBA7F593, 0xFC72F596, 0xFCF6F550, 0xFD86F4A3, 0xFE79F3AA,
6150x0004F2B5, 0x0227F225, 0x04A6F24D, 0x0720F353, 0x0930F523, 0x0A8CF779, 0x0B1CF9FD, 0x0AEFFC60,
6160x0A35FE6B, 0x09220009, 0x07E2013B, 0x06940209, 0x05510282, 0x042C02B1, 0x033C02AD, 0x028C0297,
6170x0216029A, 0x01B802D9, 0x013D0361, 0x006B041A, 0xFF1D04CB, 0xFD550527, 0xFB4104F0, 0xF92E040B,
6180xF7690287, 0xF624009A, 0xF56EFE85, 0xF531FC7A, 0xF54AFA90, 0xF59EF8C3, 0xF62AF706, 0xF6F9F559,
6190xF817F3D1, 0xF97CF28D, 0xFB04F1A9, 0xFC7DF11F, 0xFDC1F0C5, 0xFED4F05A, 0xFFECEFAD, 0x0161EEBD,
6200x0387EDD0, 0x0678ED62, 0x09F7EDFF, 0x0D73EFFF, 0x102DF35C, 0x1180F7A2, 0x1119FC0C, 0x0F1FFFC4,
6210x09F7080F, 0x07C60A68, 0x04E00BB1, 0x01E00BBC, 0xFF5E0AB7, 0xFDB80917, 0xFCF8076B, 0xFCD2061F,
6220xFCD40555, 0xFC9804D9, 0xFBF90445, 0xFB27032F, 0xFA930165, 0xFAC2FF0C, 0xFC13FC9D, 0xFE89FABE,
6230x01CAFA06, 0x052CFAC5, 0x07F4FCE1, 0x098FFFDF, 0x09C6030E, 0x08C805BE, 0x0717077E, 0x0556083D,
6240x04070843, 0x03650811, 0x03500829, 0x036108D9, 0x03190A1F, 0x02150BA8, 0x00360CF2, 0xFDB40D81,
6250xFB040D0C, 0xF8B60B9B, 0xF7370986, 0xF6B50750, 0xF709057D, 0xF7CF0461, 0xF8890406, 0xF8D10430,
6260xF8790476, 0xF7990472, 0xF67C03E0, 0xF58202BA, 0xF4F70131, 0xF4FAFF95, 0xF570FE33, 0xF61DFD3A,
6270xF6B5FCA6, 0xF700FC4B, 0xF6EAFBE1, 0xF68CFB25, 0xF622F9EA, 0xF5F7F828, 0xF652F5FD, 0xF765F3A8,
6280xF942F178, 0xFBD8EFBF, 0xFEF3EEC2, 0x0244EEA9, 0x0570EF79, 0x0826F10C, 0x0A2CF31A, 0x0B77F54B,
6290x0C28F751, 0x0C84F902, 0x0CD6FA64, 0x0D52FBAC, 0x0DFCFD25, 0x0E9FFF11, 0x0EE2017E, 0x0E690441,
6300x0D0006F5, 0x0AB20921, 0x07D20A61, 0x04DC0A8F, 0x024D09CF, 0x00740880, 0xFF5C0716, 0xFECE05ED,
6310xFE6D0526, 0xFDE604A0, 0xFD130410, 0xFC0C0326, 0xFB1C01B3, 0xFA9CFFC4, 0xFACFFD9E, 0xFBC4FBA2,
6320xFD4EFA28, 0xFF1AF962, 0x00C7F949, 0x0211F9A7, 0x02DAFA2D, 0x0336FA90, 0x0359FAA1, 0x0383FA58,
6330x03E8F9CB, 0x04A6F926, 0x05BFF897, 0x0723F847, 0x08B2F84C, 0x0A4BF8AD, 0x0BD0F961, 0x0D2EFA58,
6340x0E5FFB7C, 0x0F66FCBA, 0x1051FE0D, 0x112FFF7A, 0x12030116, 0x12BF02F7, 0x1342052E, 0x136007B4,
6350x12ED0A6B, 0x11D10D1C, 0x10130F87, 0x0DD51178, 0x0B5112D4, 0x08BE139E, 0x064213F5, 0x03E813FC,
6360x01A313CC, 0xFF5C1365, 0xFD0712AF, 0xFAB21185, 0xF8870FCF, 0xF6C30D8D, 0xF5A10AE4, 0xF5450816,
6370xF5AE0573, 0xF6B6033F, 0xF81A01A3, 0xF99300A1, 0xFAE50019, 0xFBF1FFD7, 0xFCBDFFA5, 0xFD67FF5D,
6380xFE1FFEF7, 0xFF0CFE8B, 0x0041FE4A, 0x01ABFE6A, 0x0315FF14, 0x0433004C, 0x04BA01E6, 0x047D038D,
6390x038804D8, 0x021E056E, 0x00B10526, 0xFFBE041F, 0xFF9B02B9, 0x005F017B, 0x01CC00DE, 0x036B0125,
6400x04B40240, 0x054803D5, 0x05130564, 0x04500683, 0x036F0709, 0x02DB0721, 0x02C60732, 0x030D07AE,
6410x034608D8, 0x02E80A9B, 0x018F0C8D, 0xFF290E12, 0xFC070E9D, 0xF8BF0DE4, 0xF5F10C02, 0xF4130963,
6420xF3430698, 0xF34A041C, 0xF3C4022A, 0xF44A00B2, 0xF4A6FF6F, 0xF4E2FE16, 0xF537FC7D, 0xF5ECFAAF,
6430xF72DF8E9, 0xF8F9F777, 0xFB20F696, 0xFD5BF65D, 0xFF68F6BE, 0x011DF78E, 0x026BF8A3, 0x0351F9DB,
6440x03D3FB1F, 0x03EFFC5B, 0x03A3FD70, 0x02FAFE35, 0x021AFE7F, 0x013EFE3C, 0x00AFFD78, 0x00A3FC6B,
6450x012BFB5F, 0x022BFA9B, 0x0369FA48, 0x04A4FA61, 0x05B2FABF, 0x0692FB34, 0x0765FBA0, 0x0854FC0F,
6460x0978FCAC, 0x0ABFFDB3, 0x0BEEFF4C, 0x0CB30177, 0x0CC40403, 0x0BF80699, 0x0A5B08DB, 0x08220A7E,
6470x05980B5F, 0x030A0B80, 0x00AF0AFD, 0xFEA50A00, 0xFCF708AB, 0xFBA40719, 0xFAAC0559, 0xFA100377,
6480xF9D4017F, 0xF9FBFF7D, 0xFA8EFD82, 0xFB92FBA0, 0xFD0EF9F5, 0xFEFDF8AA, 0x0148F7ED, 0x03B9F7E8,
6490x0601F8A9, 0x07CAFA13, 0x08D2FBD7, 0x0909FD89, 0x08A5FEC0, 0x080CFF42, 0x07BAFF21, 0x0806FEB5,
6500x08FDFE7D, 0x0A5AFEE5, 0x0B9D0018, 0x0C4701E0, 0x0C1603C2, 0x0B270530, 0x09EE05CF, 0x090405A3,
6510x08DE0512, 0x099504BD, 0x0AD50532, 0x0BFF06AF, 0x0C6D0901, 0x0BB90B98, 0x09EA0DC6, 0x076C0F07,
6520x04DB0F36, 0x02C20E93, 0x015C0D97, 0x008B0CBB, 0xFFF20C39, 0xFF2F0BFB, 0xFE110BAF, 0xFCAF0AF6,
6530xFB60099C, 0xFA8B07B1, 0xFA780582, 0xFB310375, 0xFC8801DF, 0xFE3100E5, 0xFFEA007F, 0x018B008E,
6540x030E00F8, 0x047101B8, 0x05A702D9, 0x0687045C, 0x06E00624, 0x069707EE, 0x05BC096D, 0x04920A65,
6550x03730AD7, 0x02A50AFF, 0x022F0B38, 0x01D10BCC, 0x01210CC0, 0xFFC60DC4, 0xFDB30E50, 0xFB430DE6,
6560xF91F0C57, 0xF7F709F1, 0xF832076D, 0xF9AA05A8, 0xFBB60546, 0xFD5E0663, 0xFDCA087A, 0xFC980A9B,
6570xFA0E0BCB, 0xF6FD0B69, 0xF4680976, 0xF318068C, 0xF34C039A, 0xF4A60179, 0xF65F0093, 0xF7A200C0,
6580xF7EC0161, 0xF73E01AF, 0xF6120118, 0xF51DFF77, 0xF501FD21, 0xF607FAB0, 0xF810F8C8, 0xFAAFF7D4,
6590xFD58F7EE, 0xFF99F8E5, 0x0133FA65, 0x021FFC1B, 0x026EFDCB, 0x023EFF50, 0x01A50094, 0x00B9017E,
6600xFF9C01F5, 0xFE8001EF, 0xFD9B017B, 0xFD1700CC, 0xFCF40022, 0xFD0BFFAF, 0xFD1BFF7F, 0xFCEDFF67,
6610xFC78FF20, 0xFBEDFE66, 0xFBAAFD28, 0xFC0AFB9C, 0xFD39FA30, 0xFF11F95F, 0x0124F978, 0x02E8FA75,
6620x03F2FC02, 0x0423FD98, 0x03B7FEC5, 0x031EFF5B, 0x02C3FF85, 0x02D5FFA9, 0x0324002F, 0x03420146,
6630x02B402BA, 0x0136040B, 0xFEEB049D, 0xFC500402, 0xFA16022E, 0xF8D3FF7A, 0xF8CBFC86, 0xF9DDF9F3,
6640xFB98F825, 0xFD75F727, 0xFF18F6B6, 0x006AF676, 0x0198F623, 0x02EBF5B3, 0x0495F55D, 0x0692F56B,
6650x08A4F617, 0x0A74F763, 0x0BBAF919, 0x0C60FAE6, 0x0C85FC7F, 0x0C68FDC2, 0x0C45FEBC, 0x0C37FF98,
6660x0C30007C, 0x0C0D016F, 0x0BB40256, 0x0B2D0305, 0x0AA5035F, 0x0A580372, 0x0A6C0374, 0x0ADD03AD,
6670x0B740453, 0x0BE3056B, 0x0BEC06C7, 0x0B810818, 0x0ACE0922, 0x0A1F09D8, 0x09B40A6D, 0x09930B3B,
6680x09790C92, 0x08EE0E85, 0x077910CC, 0x04DE12D8, 0x01411400, 0xFD2813C8, 0xF94D1210, 0xF65C0F26,
6690xF4B90BA4, 0xF45D0838, 0xF4EE055F, 0xF5E60344, 0xF6D701BD, 0xF7940070, 0xF836FF0B, 0xF908FD6A,
6700xFA58FBAB, 0xFC50FA1D, 0xFEE0F91B, 0x01C8F8EA, 0x04B0F9A2, 0x0747FB35, 0x0950FD7A, 0x0AA2003F,
6710x0B240358, 0x0AB8068F, 0x094A09A0, 0x06D80C30, 0x038D0DD5, 0xFFC90E37, 0xFC1C0D2C, 0xF9230AD9,
6720xF8490132, 0xF8E1FDFD, 0xFA6EFB73, 0xFC76F9C2, 0xFE90F8CC, 0x0093F849, 0x0295F805, 0x04CAF7FF,
6730x0752F877, 0x0A0FF9C6, 0x0C98FC31, 0x0E58FFB2, 0x0EC603E6, 0x0D9E0828, 0x0AFE0BBE, 0x075F0E1D,
6740x036A0F0D, 0xFFBF0EB8, 0xFCC50D86, 0xFA930BF3, 0xF9000A60, 0xF7C508F8, 0xF69E07B3, 0xF5680667,
6750xF42504E6, 0xF2EE0312, 0xF1E700DE, 0xF134FE51, 0xF0F5FB76, 0xF149F864, 0xF250F540, 0xF41FF240,
6760xF6B4EFAD, 0xF9EAEDD4, 0xFD70ECEE, 0x00DFED05, 0x03D2EDEE, 0x0609EF4E, 0x0780F0B7, 0x086DF1CF,
6770x092EF26C, 0x0A21F2A4, 0x0B80F2BC, 0x0D51F307, 0x0F69F3C9, 0x1185F51F, 0x1365F6F7, 0x14E4F928,
6780x1601FB88, 0x16CBFE00, 0x17550093, 0x179A0350, 0x177E0645, 0x16D70963, 0x157F0C7D, 0x136C0F50,
6790x10BA1193, 0x0DA71317, 0x0A8413CD, 0x079713D4, 0x050A1363, 0x02DF12BB, 0x00F7120A, 0xFF1F115A,
6800xFD2B108F, 0xFB0C0F71, 0xF8E10DC1, 0xF6F00B52, 0xF59E0827, 0xF54D047A, 0xF63F00BB, 0xF877FD7A,
6810xFBADFB3F, 0xFF5BFA62, 0x02DDFAF0, 0x059AFCA1, 0x0738FEEC, 0x07B0012F, 0x074E02E6, 0x069803D1,
6820x06120407, 0x061803E2, 0x06B803DC, 0x07B70458, 0x08AC057E, 0x092F072E, 0x09040912, 0x082D0AC5,
6830x06E80BFE, 0x05890CA7, 0x045A0CE1, 0x037B0CEC, 0x02DD0D04, 0x02530D45, 0x01AF0DA6, 0x00DF0E01,
6840xFFF30E2F, 0xFF160E27, 0xFE6D0E05, 0xFE010E00, 0xFDAE0E4E, 0xFD290F03, 0xFC1F0FFE, 0xFA5A10E8,
6850xF7DE114E, 0xF4F510C7, 0xF21E0F21, 0xEFE80C73, 0xEEC8091E, 0xEEEE05B7, 0xF03E02D4, 0xF24E00EC,
6860xF48F002C, 0xF66F0077, 0xF783016B, 0xF7A40285, 0xF6F10342, 0xF5C5034B, 0xF4960281, 0xF3D3010A,
6870xF3C8FF3C, 0xF484FD86, 0xF5DCFC4E, 0xF774FBCF, 0xF8E4FC0E, 0xF9CDFCD9, 0xF9FAFDD2, 0xF96FFE8F,
6880xF864FEB6, 0xF736FE14, 0xF650FCAB, 0xF60FFAB3, 0xF6A9F885, 0xF827F68C, 0xFA5DF528, 0xFCFAF49B,
6890xFF9CF4FB, 0x01E0F631, 0x037CF7FD, 0x0449FA06, 0x0452FBEF, 0x03C7FD70, 0x02F3FE63, 0x0224FECE,
6900x0195FEDB, 0x015BFECB, 0x0165FED9, 0x0182FF27, 0x017AFFB0, 0x0126004F, 0x008000CD, 0xFFA400FC,
6910xFEC600CB, 0xFE18004A, 0xFDB4FFA8, 0xFD91FF12, 0xFD89FEA5, 0xFD6EFE59, 0xFD26FE05, 0xFCBAFD76,
6920xFC5BFC89, 0xFC4EFB42, 0xFCCAF9D7, 0xFDDEF89B, 0xFF5FF7E0, 0x00F5F7D4, 0x0235F865, 0x02D3F943,
6930x02BCF9F8, 0x0229FA18, 0x018BF965, 0x016AF7ED, 0x0230F60A, 0x0407F447, 0x06C9F32E, 0x0A0CF323,
6940x0D45F440, 0x0FF4F659, 0x11CAF90B, 0x12B6FBE2, 0x12E2FE7E, 0x129A00AD, 0x122C026C, 0x11D203E2,
6950x119E0548, 0x118106CE, 0x11500891, 0x10DB0A90, 0x0FF80CAE, 0x0E910EC0, 0x0CA6108E, 0x0A4F11E9,
6960x07B612AB, 0x051512C5, 0x02A8123F, 0x00A4113C, 0xFF270FF2, 0xFE360EA3, 0xFDB30D87, 0xFD680CC0,
6970xFD190C4A, 0xFC950C05, 0xFBCB0BB8, 0xFACE0B30, 0xF9CB0A4E, 0xF8F60916, 0xF87407AA, 0xF84B0636,
6980xF86404DB, 0xF89C039C, 0xF8DE025E, 0xF93800FB, 0xF9DEFF5D, 0xFB13FD9E, 0xFD0DFC0A, 0xFFC7FB15,
6990x02F4FB29, 0x060BFC7D, 0x086AFEF1, 0x09980208, 0x09720511, 0x08460763, 0x06B308A0, 0x057708DD,
7000x051908A0, 0x05B608AB, 0x06EA09B0, 0x07EC0C04, 0x07E00F74, 0x0624134D, 0x02961696, 0xFDA51864,
7010xF831182E, 0xF33F15F4, 0xEFA5123F, 0xEDCC0DEB, 0xED9C09D8, 0xEE9006A8, 0xEFF80494, 0xF136036D,
7020xF1F202C2, 0xF22B0216, 0xF2230115, 0xF23BFFAB, 0xF2C2FE03, 0xF3D5FC6E, 0xF55EFB3B, 0xF718FA96,
7030xF8B9FA7F, 0xFA07FAC7, 0xFAF3FB2D, 0xFB95FB78, 0xFC26FB90, 0xFCDAFB86, 0xFDD0FB8F, 0xFEF6FBEA,
7040x0015FCC1, 0x00DAFE11, 0x00FEFFA2, 0x00670112, 0xFF3701F9, 0xFDD00211, 0xFCB40155, 0xFC550011,
7050xFCECFECD, 0xFE57FE20, 0x001EFE7B, 0x019AFFF7, 0x0229024C, 0x016A04DD, 0xFF6206F2, 0xFC7707F0,
7060xF951078D, 0xF6A005E1, 0xF4E5035A, 0xF450008D, 0xF4C2FE04, 0xF5E0FC1C, 0xF73EFAEF, 0xF87FFA64,
7070xF968FA3D, 0xF9E8FA38, 0xFA08FA16, 0xF9E9F9A8, 0xF9BBF8CE, 0xF9BCF77C, 0xFA30F5C2, 0xFB5AF3D7,
7080xFD5CF218, 0x0025F0F3, 0x0363F0CD, 0x0693F1D1, 0x0923F3E0, 0x0AA2F688, 0x0AF4F92B, 0x0A55FB34,
7090x094DFC4D, 0x0875FC7D, 0x0841FC24, 0x08D0FBC8, 0x09EBFBDF, 0x0B26FC9E, 0x0C17FDEA, 0x0C85FF70,
7100x0C7E00D7, 0x0C4401F0, 0x0C2002CA, 0x0C3703A4, 0x0C6E04C7, 0x0C7A0650, 0x0C08081D, 0x0AF109D4,
7110x09530B13, 0x078E0B9D, 0x06140B85, 0x05350B29, 0x04F10B07, 0x04EE0B85, 0x04A00CBA, 0x03810E5D,
7120x01520FD9, 0xFE361086, 0xFAAE0FED, 0xF76C0DEF, 0xF5120AD2, 0xF4080720, 0xF45C037E, 0xF5CE0078,
7130xF7EEFE60, 0xFA42FD47, 0xFC60FD0C, 0xFE02FD68, 0xFF08FE07, 0xFF7BFE93, 0xFF87FEC6, 0xFF78FE75,
7140xFFA6FD9E, 0x0067FC75, 0x01E8FB55, 0x0421FAAF, 0x06C6FAE0, 0x0961FC0E, 0x0B79FE17, 0x0CC00098,
7150x0D30031A, 0x0D08053E, 0x0CB006E8, 0x0C820845, 0x0C9E09AF, 0x0CDB0B7F, 0x0CDE0DD9, 0x0C43109E,
7160x0AD51373, 0x08A015F1, 0x05E917D5, 0x0309191B, 0x003519F4, 0xFD661AA3, 0xFA5F1B44, 0xF6D61BB1,
7170xF2AC1B84, 0xEE111A42, 0xE9861798, 0xE5B8138B, 0xE33F0E83, 0xE261092B, 0xE300043B, 0xE4A7002F,
7180xE6BDFD2E, 0xE8C3FB08, 0xEA78F95E, 0xEBE2F7D2, 0xED34F62B, 0xEEABF463, 0xF070F294, 0xF293F0E3,
7190xF511EF6A, 0xF7E8EE40, 0xFB1DED81, 0xFEAAED5A, 0x026EEE0B, 0x0616EFC6, 0x0928F28F, 0x0B2AF61E,
7200x0BCFF9E5, 0x0B2AFD36, 0x09AFFF84, 0x0814009E, 0x070800CB, 0x06EE00AA, 0x07B000F5, 0x08C80230,
7210x097E046E, 0x0936074E, 0x07B00A26, 0x051F0C4F, 0x02040D69, 0xFEEF0D76, 0xFC3E0CC2, 0xF9FF0BAB,
7220xF8020A64, 0xF61208D9, 0xF42A06BF, 0xF29903D2, 0xF1EB000F, 0xF2A9FBDC, 0xF517F7F6, 0xF8FEF532,
7230x09A104D6, 0x092507A7, 0x080A09FC, 0x06A60BCC, 0x05330D3F, 0x03B50E88, 0x02090FC2, 0x000110D7,
7240xFD8C118D, 0xFAC9119D, 0xF80610E1, 0xF59D0F67, 0xF3D20D70, 0xF2B10B54, 0xF2100957, 0xF1AC078C,
7250xF15205D0, 0xF10003E1, 0xF0F1018F, 0xF184FEE4, 0xF309FC30, 0xF595F9F7, 0xF8E5F8C2, 0xFC6DF8E2,
7260xFF81FA4E, 0x0198FC9F, 0x0279FF33, 0x024D0171, 0x018A02F6, 0x00B803BC, 0x003D040E, 0x0032045A,
7270x006304FF, 0x006A0618, 0xFFE70778, 0xFEB108B6, 0xFCE80963, 0xFAF10937, 0xF9490834, 0xF85806A4,
7280xF84804FE, 0xF8FB03BC, 0xFA16032C, 0xFB2C0360, 0xFBDC042A, 0xFBF5053B, 0xFB790641, 0xFA8F0703,
7290xF969076C, 0xF82F0788, 0xF6EE076A, 0xF59A0721, 0xF42506A0, 0xF28705CA, 0xF0D50474, 0xEF3E0280,
7300xEE05FFEA, 0xED6BFCCE, 0xEDA2F964, 0xEEBFF5F6, 0xF0B7F2CD, 0xF368F021, 0xF6A5EE1A, 0xFA3DECCB,
7310xFE05EC3B, 0x01D6EC69, 0x058CED54, 0x0903EEF4, 0x0C14F139, 0x0E9BF409, 0x107EF73E, 0x11AFFAAD,
7320x122DFE2D, 0x1205019D, 0x114104E5, 0x0FE907F0, 0x0E020AA6, 0x0B920CE6, 0x08AE0E84, 0x05830F55,
7330x02570F3F, 0xFF7C0E49, 0xFD430CA3, 0xFBDB0A9F, 0xFB47089E, 0xFB5B06F3, 0xFBCA05C8, 0xFC42051B,
7340xFC8C04BC, 0xFC9A0470, 0xFC850406, 0xFC7C036F, 0xFCA702C1, 0xFD0F022A, 0xFD9B01D0, 0xFE1901BD,
7350xFE5C01D6, 0xFE5201E2, 0xFE1701AA, 0xFDE60110, 0xFE040027, 0xFE9AFF2A, 0xFFA8FE62, 0x00FAFE0B,
7360x0245FE31, 0x0349FEAB, 0x03EDFF30, 0x0455FF77, 0x04D0FF60, 0x05B8FF09, 0x0745FEC9, 0x0971FF13,
7370x0BF1004D, 0x0E4302A6, 0x0FDD0600, 0x105109FC, 0x0F710E12, 0x0D5311B8, 0x0A451486, 0x06B11647,
7380x030016F9, 0xFF8416BE, 0xFC7115CD, 0xF9DD145C, 0xF7CB1298, 0xF63610A3, 0xF5110E94, 0xF4540C79,
7390xF3F70A5A, 0xF3FC083C, 0xF46C0629, 0xF5520433, 0xF6B9027D, 0xF89A0138, 0xFAD50098, 0xFD2B00C7,
7400xFF4A01CD, 0x00DC038A, 0x01A005B7, 0x018007F6, 0x009109EC, 0xFF100B58, 0xFD450C1F, 0xFB750C4B,
7410xF9C90BFE, 0xF8510B58, 0xF70C0A6F, 0xF5FA0947, 0xF52907DD, 0xF4B20639, 0xF4B40475, 0xF53F02C2,
7420xF6490159, 0xF7A80068, 0xF91F0002, 0xFA72001B, 0xFB780088, 0xFC270118, 0xFC8F01A2, 0xFCCD0213,
7430xFCFC026F, 0xFD2802C4, 0xFD4F0320, 0xFD630388, 0xFD5C03F5, 0xFD38045A, 0xFCFE04AF, 0xFCB504F3,
7440xFC62052A, 0xFBFD0558, 0xFB7D0571, 0xFAE30563, 0xFA3E0516, 0xF9B2047E, 0xF96A03A7, 0xF98802BA,
7450xFA1201F0, 0xFAE90182, 0xFBD2018E, 0xFC8B020A, 0xFCE002CD, 0xFCC40396, 0xFC4C042F, 0xFBA6047C,
7460xFAFE0484, 0xFA6E0463, 0xF9EE043B, 0xF9630416, 0xF8AE03E4, 0xF7C4037A, 0xF6BD02A9, 0xF5CF0156,
7470xF53CFF84, 0xF53EFD60, 0xF5F1FB2C, 0xF74EF92E, 0xF930F79C, 0xFB64F693, 0xFDBBF615, 0x000FF618,
7480x0249F68B, 0x045BF75E, 0x0638F886, 0x07D6F9F5, 0x092DFB9E, 0x0A39FD73, 0x0AFAFF68, 0x0B71017A,
7490x0B9703A8, 0x0B5805EF, 0x0A9C083B, 0x094C0A62, 0x076C0C29, 0x051F0D53, 0x02AC0DB8, 0x006B0D5B,
7500xFEA80C6D, 0xFD880B42, 0xFCF90A33, 0xFCBD0979, 0xFC840919, 0xFC1008E8, 0xFB53089C, 0xFA7307F6,
7510xF9BB06E2, 0xF9710581, 0xF9B80420, 0xFA7A0312, 0xFB6E028C, 0xFC3A0288, 0xFC9B02CA, 0xFC8102F7,
7520xFC1B02BC, 0xFBBE01F7, 0xFBC900BF, 0xFC76FF5E, 0xFDCFFE32, 0xFFA5FD89, 0x01ACFD8B, 0x039BFE31,
7530x053AFF54, 0x067800C3, 0x07590259, 0x07E90404, 0x083305BD, 0x08330783, 0x07DF094B, 0x07340B00,
7540x06390C8B, 0x04FF0DDB, 0x039B0EEE, 0x021A0FC9, 0x007A1073, 0xFEB210E8, 0xFCBB110F, 0xFAA210C7,
7550xF88E0FF1, 0xF6BC0E85, 0xF56C0CA1, 0xF4C80A82, 0xF4D80874, 0xF57B06BD, 0xF6750582, 0xF78604C7,
7560xF8810470, 0xF9560458, 0xFA0A0467, 0xFAAA0496, 0xFB3704F1, 0xFB9F0585, 0xFBBD064D, 0xFB6E0726,
7570xFAA407D5, 0xF9790818, 0xF82A07C0, 0xF70C06C3, 0xF66F0548, 0xF685039C, 0xF754021A, 0xF8B10113,
7580xFA5400B6, 0xFBE8010B, 0xFD2601EE, 0xFDE50324, 0xFE1D046B, 0xFDE8058D, 0xFD72066C, 0xFCEB0709,
7590xFC760780, 0xFC1C07FC, 0xFBC308A5, 0xFB3B098E, 0xFA450AA3, 0xF8B40BAA, 0xF67C0C4C, 0xF3C90C2E,
7600xF0F50B13, 0xEE7708F3, 0xECBE0605, 0xEC0B02B3, 0xEC64FF75, 0xED8EFCAF, 0xEF2DFA8F, 0xF0E9F908,
7610xF292F7E6, 0xF42AF6ED, 0xF5DCF605, 0xF7D7F547, 0xFA29F4F4, 0xFCA6F555, 0xFEEDF691, 0x008AF888,
7620x0125FAD7, 0x00AEFCF1, 0xFF65FE51, 0xFDCCFEAE, 0xFC74FE13, 0xFBCDFCD8, 0xFBF8FB7D, 0xFCCCFA75,
7630xFDE8F9F9, 0xFEE8F9FB, 0xFF91FA34, 0xFFEAFA4D, 0x0031FA0C, 0x00BDF975, 0x01D4F8C4, 0x0385F85A,
7640x05A1F893, 0x07CBF9A4, 0x0994FB84, 0x0AA6FDF3, 0x0AD6008F, 0x0A3202F6, 0x08EF04DC, 0x075B061F,
7650x05BE06C1, 0x045306E5, 0x033606BC, 0x02680678, 0x01D4063D, 0x0157061E, 0x00CC0611, 0x001C05FB,
7660xFF4A05B0, 0xFE74050D, 0xFDD00404, 0xFD9A02AC, 0xFDFF0142, 0xFF010016, 0x0072FF76, 0x01FFFF89,
7670x03460043, 0x0401015F, 0x041A0280, 0x03B9034F, 0x032E039F, 0x02D00380, 0x02D40333, 0x03370308,
7680x03C10339, 0x042303C7, 0x041E047C, 0x03A804FF, 0x02F70500, 0x02700462, 0x027D034F, 0x035F022C,
7690x05110178, 0x0744019E, 0x097B02C9, 0x0B3A04DD, 0x0C2A0783, 0x0C310A4C, 0x0B730CD8, 0x0A350EF2,
7700x08BF1099, 0x073E11E9, 0x05BE130C, 0x042E141C, 0x0271151B, 0x007615F4, 0xFE381689, 0xFBCB16BE,
7710xF9481684, 0xF6CB15D8, 0xF46C14BC, 0xF2401339, 0xF05B1156, 0xEED20F21, 0xEDB90CAD, 0xED200A17,
7720xED0B0782, 0xED6E050F, 0xEE3702D6, 0xEF4E00E5, 0xF0A0FF3D, 0xF222FDE2, 0xF3CAFCD8, 0xF58DFC2C,
7730xF752FBE7, 0xF8FBFC0C, 0xFA65FC8B, 0xFB73FD44, 0xFC22FE0C, 0xFC7FFEBC, 0xFCADFF3E, 0xFCCEFF93,
7740x0429FC0A, 0x0619FD70, 0x0767FF76, 0x07EC01C0, 0x07B103F8, 0x06E305E6, 0x05B60773, 0x044F08A6,
7750x02BA0988, 0x00F70A17, 0xFF0B0A3B, 0xFD1009D7, 0xFB3A08DA, 0xF9C80751, 0xF8F1056D, 0xF8CC0378,
7760xF94701BD, 0xFA2A0071, 0xFB34FFA1, 0xFC28FF36, 0xFCECFF04, 0xFD83FEDC, 0xFE07FEA3, 0xFE99FE59,
7770xFF4EFE0D, 0x002BFDD9, 0x0127FDD1, 0x0231FE00, 0x033AFE68, 0x0435FF08, 0x0514FFE0, 0x05C700EB,
7780x063D021D, 0x0666035F, 0x06400490, 0x05DD058F, 0x05620646, 0x04FC06BA, 0x04D1070A, 0x04EE076A,
7790x0540080B, 0x05990910, 0x05C00A79, 0x05840C2D, 0x04CA0DFE, 0x038E0FBA, 0x01E01139, 0xFFD81263,
7800xFD8F1325, 0xFB1D1374, 0xF89C1344, 0xF6301290, 0xF4031160, 0xF23C0FD4, 0xF0F00E1F, 0xF0140C7A,
7810xEF7D0B0D, 0xEEEE09DE, 0xEE3408CA, 0xED3E078E, 0xEC2D05EA, 0xEB4B03BA, 0xEAEE0112, 0xEB59FE36,
7820xEC9BFB8C, 0xEE88F96E, 0xF0CDF811, 0xF30CF774, 0xF501F766, 0xF691F7A3, 0xF7CCF7F3, 0xF8D8F83A,
7830xF9D7F87E, 0xFAD2F8D5, 0xFBC0F94E, 0xFC89F9E6, 0xFD27FA88, 0xFDA7FB1D, 0xFE26FB9F, 0xFEC2FC28,
7840xFF7FFCE8, 0x0037FE0D, 0x00A2FFA8, 0x00730197, 0xFF750387, 0xFDAC050D, 0xFB5905C9, 0xF8E9058F,
7850xF6D00473, 0xF56402C2, 0xF4C000E3, 0xF4C8FF33, 0xF53BFDEC, 0xF5CDFD17, 0xF646FC99, 0xF68AFC47,
7860xF699FBF8, 0xF680FB90, 0xF652FAFD, 0xF623FA35, 0xF60BF92F, 0xF629F7EC, 0xF6A4F67D, 0xF79AF50D,
7870xF911F3DB, 0xFAE8F328, 0xFCD6F31F, 0xFE82F3B8, 0xFF9DF4B9, 0x0009F5C1, 0xFFE5F66A, 0xFF87F673,
7880xFF5BF5D9, 0xFFBBF4D7, 0x00CBF3D1, 0x0272F328, 0x0465F317, 0x064FF3A5, 0x07EEF4A7, 0x092FF5E1,
7890x0A25F721, 0x0AF5F85B, 0x0BB9F9A1, 0x0C6EFB12, 0x0CF0FCBF, 0x0D13FE9A, 0x0CBB0071, 0x0BF00207,
7900x0AE0032D, 0x09D103D7, 0x08FD0427, 0x087F0459, 0x084604A9, 0x08230539, 0x07DD0604, 0x074F06E3,
7910x067707A5, 0x05710820, 0x046A084B, 0x038A0836, 0x02E20805, 0x026D07D9, 0x021407C7, 0x01C007CF,
7920x016107E9, 0x00F2080A, 0x0071082D, 0xFFD8084D, 0xFF1F0864, 0xFE3C085D, 0xFD310818, 0xFC180774,
7930xFB21065F, 0xFA8704E3, 0xFA7E032F, 0xFB160188, 0xFC3A0036, 0xFDB0FF66, 0xFF35FF1C, 0x0096FF38,
7940x01C1FF86, 0x02D0FFDC, 0x03F00032, 0x054A00AA, 0x06E30183, 0x089302FC, 0x0A060537, 0x0ADD081F,
7950x0AC80B6E, 0x09A70EBA, 0x07911197, 0x04CF13B5, 0x01BD14F5, 0xFEB21567, 0xFBE9153B, 0xF97314AB,
7960xF74613DF, 0xF54C12EB, 0xF37311C8, 0xF1BF1064, 0xF0480EB6, 0xEF330CC6, 0xEE9D0AB8, 0xEE9308C1,
7970xEEFE071C, 0xEFAE05F2, 0xF05D0552, 0xF0C9051F, 0xF0C30521, 0xF045050B, 0xEF72049B, 0xEE8E03AC,
7980xEDE60245, 0xEDB60098, 0xEE12FEF1, 0xEEDDFD9C, 0xEFD5FCC4, 0xF0A5FC65, 0xF10EFC48, 0xF0FAFC17,
7990xF08EFB7C, 0xF01AFA44, 0xF006F871, 0xF0A7F641, 0xF22CF416, 0xF487F261, 0xF777F17A, 0xFA99F191,
8000xFD86F2A3, 0xFFE5F485, 0x017EF6F1, 0x0239F995, 0x021BFC27, 0x0142FE65, 0xFFDB001D, 0xFE200132,
8010xFC51019E, 0xFAAA0174, 0xF95500E0, 0xF8600015, 0xF7BFFF43, 0xF74DFE85, 0xF6E5FDD5, 0xF674FD18,
8020xF604FC28, 0xF5BBFAF2, 0xF5CDF985, 0xF65BF810, 0xF766F6D7, 0xF8C0F614, 0xFA20F5DD, 0xFB3EF615,
8030xFBF2F67D, 0xFC43F6CA, 0xFC67F6CB, 0xFCA4F67E, 0xFD2BF611, 0xFE01F5CA, 0xFEF5F5DA, 0xFFBCF647,
8040x001AF6D9, 0x0002F737, 0xFFAFF70C, 0xFF8EF636, 0x0014F4E3, 0x018BF386, 0x03ECF2B0, 0x06D9F2DD,
8050x09BDF43B, 0x0C03F6A1, 0x0D47F999, 0x0D7DFC94, 0x0CE5FF1F, 0x0BED010B, 0x0AF80273, 0x0A3A03A1,
8060x09A204E5, 0x08F2066B, 0x07DC0823, 0x062F09CC, 0x03ED0B10, 0x014B0BAC, 0xFE980B82, 0xFC220AA8,
8070xFA19094D, 0xF88A07A8, 0xF76B05DF, 0xF6AC0404, 0xF649021A, 0xF64D002C, 0xF6C3FE53, 0xF7A8FCB9,
8080xF8E1FB87, 0xFA37FAD7, 0xFB6CFA9C, 0xFC51FAAB, 0xFCDDFAC4, 0xFD2BFAB0, 0xFD72FA56, 0xFDEAF9C2,
8090xFEB6F923, 0xFFD4F8AE, 0x0123F887, 0x0278F8B7, 0x03B2F92C, 0x04CBF9C8, 0x05D1FA79, 0x06D8FB48,
8100x07E8FC51, 0x08E6FDB5, 0x099FFF7F, 0x09D50195, 0x096403B5, 0x0851058B, 0x06D606D1, 0x054D076F,
8110x04130787, 0x035B076C, 0x031D0785, 0x0311081E, 0x02CA094B, 0x01E20AD8, 0x001D0C5B, 0xFD860D53,
8120xFA6F0D57, 0xF7570C39, 0xF4C30A10, 0xF31A0733, 0xF285041B, 0xF2F0013D, 0xF416FEF1, 0xF59CFD59,
8130xF72CFC6D, 0xF88CFBFE, 0xF9A4FBD5, 0xFA7DFBC2, 0xFB33FBA9, 0xFBE3FB86, 0xFCA1FB67, 0xFD71FB62,
8140xFE48FB89, 0xFF0FFBE3, 0xFFB0FC69, 0x0019FD07, 0x0047FDA3, 0x0042FE24, 0x001DFE78, 0xFFF3FE99,
8150xFFD9FE8B, 0xFFE3FE5A, 0x001FFE19, 0x0093FDDD, 0x013DFDBB, 0x0219FDCA, 0x0318FE22, 0x0421FED4,
8160x0510FFED, 0x05BE0166, 0x06030328, 0x05C60509, 0x050206D8, 0x03C90866, 0x023F0997, 0x008E0A62,
8170xFED40AD5, 0xFD210B04, 0xFB6F0B01, 0xF9B00ACC, 0xF7DF0A51, 0xF6060977, 0xF4480827, 0xF2D60664,
8180xF1DD044E, 0xF174021A, 0xF1920002, 0xF212FE2C, 0xF2C3FCA4, 0xF382FB53, 0xF448FA18, 0xF52AF8DB,
8190xF64EF7A5, 0xF7CDF69C, 0xF99DF5FD, 0xFB85F5FA, 0xFD32F69A, 0xFE50F7AE, 0xFEB1F8D9, 0xFE65F9AA,
8200xFDC0F9CC, 0xFD38F926, 0xFD40F7E9, 0xFE1AF67F, 0xFFC3F561, 0x01F5F4EE, 0x0444F54A, 0x0651F659,
8210x07E6F7D0, 0x0907F965, 0x09E4FAEB, 0x0AB5FC6A, 0x0B94FE14, 0x0C690025, 0x0CED02C0, 0x0CC505CE,
8220x0BAA0902, 0x098C0BE9, 0x069C0E17, 0x033B0F48, 0xFFDD0F7A, 0xFCD90EE1, 0xFA570DD0, 0xF8420C92,
8230xF6690B47, 0xF49709DB, 0xF2BE0817, 0xF10505C0, 0xEFBE02B9, 0xEF51FF22, 0xF00EFB56, 0xF20EF7DC,
8240xF523F53C, 0xF8DDF3DC, 0xFCAAF3E2, 0xFFF9F529, 0x025EF752, 0x03AAF9DF, 0x03EDFC55, 0x0368FE5A
825
826
827in_sequence_size =
828408
829
830in_leading_padding =
8310
832
833out_sequence_size =
834408
835
836out_leading_depadding =
8370
838
839window_index =
8402, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
841
842cs_bitmap =
8431
844
845num_antennas_log2 =
8463
847
848ifft_log2 =
8499
850
851fft_log2 =
8529
853
854cs_time_adjustment =
8550
856
857ifft_shift =
8584
859
860fft_shift =
8615
862
863ncs_reciprocal =
8645461
865
866op_flags =
867RTE_BBDEV_FFT_CS_ADJUSTMENT, RTE_BBDEV_FFT_WINDOWING
868
869expected_status =
870OK
diff --git a/app/test-bbdev/test_vectors/fft_byp_28.data b/app/test-bbdev/test_vectors/fft_byp_28.data
index bc875fc..7b7ca7a 100644
--- a/app/test-bbdev/test_vectors/fft_byp_28.data
+++ b/app/test-bbdev/test_vectors/fft_byp_28.data
@@ -30,30 +30,30 @@ input0 =
300xF7B50127, 0x0C83E9D9, 0x046B181F, 0x08B612A4, 0x024E0B91, 0x01000207, 0xFC97F83A, 0xF8B40DD4300xF7B50127, 0x0C83E9D9, 0x046B181F, 0x08B612A4, 0x024E0B91, 0x01000207, 0xFC97F83A, 0xF8B40DD4
3131
32output0 =32output0 =
330xFFF0FE8A, 0x01B3FE2F, 0x020EFFF3, 0x000C005A, 0x0040012B, 0xFF70015F, 0xFF40FD66, 0x0120FCAD,330xFFF0FE8A, 0x01B3FE2F, 0x020EFFF3, 0xFC0901D2, 0x027501DE, 0xFF660279, 0x00ADFA89, 0xFE72FF52,
340x01DAFE8E, 0xFF05FFC8, 0x00EE0080, 0x00350269, 0x0094FCA0, 0x0398FD13, 0x03240016, 0xFF7AFEFE,340x0450FD29, 0xFB34FF92, 0x032C0136, 0xFE780346, 0x01BFFAC9, 0x00DDFF9A, 0x068FFF1F, 0xFB6DFF18,
350x006401AB, 0xFDB70295, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,350x02D9034F, 0xFCFF0289, 0x0101FEA7, 0xFD2D016A, 0x02E40068, 0x00000000, 0x00000000, 0x00000000,
360xFB2C034A, 0xFC8F0175, 0xFE6402D8, 0x00810097, 0x015C007D, 0x01760158, 0xFAB702B3, 0xFBC0008C,360xFB2C034A, 0xFC8F0175, 0xFE6402D8, 0x0054FD1C, 0xFFA403AA, 0x02E1000F, 0xFBBE06CD, 0xFB8FFDEA,
370xFDE80195, 0x0050FFB2, 0x012BFFF2, 0x00EB00CD, 0xFAB30041, 0xFCDDFFFF, 0xFD200228, 0xFFD70030,370xFF910362, 0x0031FCA4, 0x00BA02DD, 0x0138FE72, 0xFBC80412, 0xFC67FD73, 0xFEDA0415, 0x00D3FD1C,
380x004A0030, 0x004A00A4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,380xFDCA02DA, 0x0260FF7E, 0x0055046F, 0x0033FCD9, 0x0115029F, 0x00000000, 0x00000000, 0x00000000,
390x0157004F, 0x01B2FFA3, 0x025EFFFE, 0xFE5D048C, 0xFAC301F3, 0xFD5BFE59, 0xFFE10181, 0x0151FF78,390x0157004F, 0x01B2FFA3, 0x025EFFFE, 0xFF090623, 0xFAA8024A, 0xFF63FD71, 0xFD3DFEE3, 0x025000C5,
400x035B00E8, 0xFE3C030C, 0xFB1CFFA5, 0xFE84FC85, 0xFDB80124, 0x0063FF8B, 0x01FC0236, 0xFEEE01EE,400x010A0140, 0xFEFA0575, 0xFA6BFF7D, 0x0177FCA0, 0xFC05FF1E, 0x01D500C8, 0xFFC20139, 0xFE1A0397,
410xFD31FF7F, 0xFFA1FDC2, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,410xFD29003C, 0x020FFDE0, 0xFE3FFCB4, 0x00740264, 0xFEA4FEEA, 0x00000000, 0x00000000, 0x00000000,
420x034202FC, 0xFFFF0471, 0xFE8B012F, 0x002B0237, 0x00A10164, 0x017301DA, 0x029803A6, 0xFE8A03A1,420x034202FC, 0xFFFF0471, 0xFE8B012F, 0xFF440324, 0x0224032D, 0x02A6FF74, 0x04D00629, 0xFC86FEE6,
430xFE8EFF93, 0xFECC031E, 0xFF180338, 0xFEFE0385, 0x0199041C, 0xFE1B02C8, 0xFF6EFF4A, 0xFEAE0180,430xFE59041B, 0xFD140405, 0x00830542, 0x008401C8, 0x034707AB, 0xFCCEFCE1, 0xFE6304CE, 0xFD2A022A,
440xFE6A0189, 0xFE610144, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,440xFF88041C, 0x0080FF16, 0x005502F2, 0x0006FB55, 0xFE420451, 0x00000000, 0x00000000, 0x00000000,
450x0143FD7B, 0x03030124, 0xFF5B02E4, 0x00A6FFE1, 0x001901AD, 0xFE4D0120, 0x0109FD68, 0x01A90075,450x0143FD7B, 0x03030124, 0xFF5B02E4, 0x0064FE8F, 0xFDE7013A, 0xFEBA0406, 0x01DFFF4B, 0x023F00C1,
460xFE9C0115, 0x01AB0028, 0xFF9D0119, 0xFEACFF0B, 0x01C2FCFD, 0x0211000C, 0xFF02005C, 0x00D600A9,460x0035FF5C, 0x01D9FF2E, 0xFD26FFAA, 0xFEB902C3, 0x020FFF39, 0x02F600F7, 0x0144FE3F, 0x00DEFE9B,
470xFFAD0038, 0x001EFF0E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,470xFE25FE61, 0xFDC20265, 0xFFA00261, 0x00D00119, 0x02A9FE77, 0x00000000, 0x00000000, 0x00000000,
480x0180FE7E, 0x0186FED1, 0x0133FED6, 0xFE52FFE6, 0xFFCB00C9, 0xFEE70242, 0x00ACFE85, 0x019DFF6D,480x0180FE7E, 0x0186FED1, 0x0133FED6, 0xFF9B01B2, 0xFD94FF7A, 0x019B0480, 0xFD99FFDF, 0x02210198,
490x00B5005F, 0xFF0501FC, 0xFE9100E4, 0xFFA90070, 0x00D0FDE8, 0x017DFEDA, 0x008AFF87, 0xFDF101B9,490x03B600C2, 0xFFE6037E, 0xFC71FF70, 0x01D90323, 0xFDA0FE73, 0x00DE01A8, 0x04810088, 0xFE5A033B,
500xFE30001D, 0xFFCD005C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,500xFBEDFDBF, 0x01340495, 0xFC67FFF8, 0xFE9A0247, 0x03A402B8, 0x00000000, 0x00000000, 0x00000000,
510x032A0018, 0x0472FEFA, 0x05900042, 0x0034FE3D, 0x00AEFF8E, 0xFF5D0008, 0x031F0119, 0x055100BB,510x032A0018, 0x0472FEFA, 0x05900042, 0xFEF6FE6B, 0x0155FDD4, 0xFD290258, 0x02FE0438, 0x077BFE5F,
520x05AE02EC, 0x0036FE6A, 0x00100002, 0xFE78FFDC, 0x03D40175, 0x04410261, 0x035502CE, 0x00A0FE4E,520x0447033F, 0xFEC5FC97, 0xFF6EFFE3, 0xFD27020C, 0x03810467, 0x05140185, 0x0498032B, 0x0001FE27,
530x001EFFCF, 0xFE9DFF4C, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,530x014EFE85, 0xFBFD0004, 0xFE8E0309, 0x018BFE07, 0xFF8601E0, 0x00000000, 0x00000000, 0x00000000,
540xFF8AFE0D, 0x01F3FFD6, 0x002A023F, 0x005FFF16, 0x020C003C, 0x00E601EA, 0x003DFE48, 0x025A00FD,540xFF8AFE0D, 0x01F3FFD6, 0x002A023F, 0x0341029B, 0x01F2FC54, 0x009D030A, 0xFE5FFE5B, 0x039B01AC,
550xFFA5031A, 0x004C0068, 0x011500DC, 0x00A101A5, 0x0087FD60, 0x01BC01B5, 0xFD6602EA, 0x006A01B3,550xFF260308, 0x023404C9, 0x01D3FCFC, 0x006402DF, 0x0043FC95, 0x02E90289, 0xFC41012D, 0x020E070B,
560x00090192, 0x002A0131, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000560x01D0FD78, 0xFFA001E1, 0xFEA900C2, 0x022801E2, 0x007CFD4D, 0x00000000, 0x00000000, 0x00000000
5757
5858
59in_sequence_size =59in_sequence_size =
diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index d9304e4..d40f0fb 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -3120,6 +3120,9 @@ cmd_config_dcb_parsed(void *parsed_result,
3120 uint8_t pfc_en;3120 uint8_t pfc_en;
3121 int ret;3121 int ret;
31223122
3123 if (port_id_is_invalid(port_id, ENABLED_WARN))
3124 return;
3125
3123 port = &ports[port_id];3126 port = &ports[port_id];
3124 /** Check if the port is not started **/3127 /** Check if the port is not started **/
3125 if (port->port_status != RTE_PORT_STOPPED) {3128 if (port->port_status != RTE_PORT_STOPPED) {
@@ -6322,6 +6325,9 @@ cmd_priority_flow_ctrl_set_parsed(void *parsed_result,
6322 int rx_fc_enable, tx_fc_enable;6325 int rx_fc_enable, tx_fc_enable;
6323 int ret;6326 int ret;
63246327
6328 if (port_id_is_invalid(res->port_id, ENABLED_WARN))
6329 return;
6330
6325 /*6331 /*
6326 * Rx on/off, flow control is enabled/disabled on RX side. This can indicate6332 * Rx on/off, flow control is enabled/disabled on RX side. This can indicate
6327 * the RTE_ETH_FC_TX_PAUSE, Transmit pause frame at the Rx side.6333 * the RTE_ETH_FC_TX_PAUSE, Transmit pause frame at the Rx side.
@@ -11049,7 +11055,7 @@ cmd_rx_offload_get_configuration_parsed(
11049 struct cmd_rx_offload_get_configuration_result *res = parsed_result;11055 struct cmd_rx_offload_get_configuration_result *res = parsed_result;
11050 struct rte_eth_dev_info dev_info;11056 struct rte_eth_dev_info dev_info;
11051 portid_t port_id = res->port_id;11057 portid_t port_id = res->port_id;
11052 struct rte_port *port = &ports[port_id];11058 struct rte_port *port;
11053 struct rte_eth_conf dev_conf;11059 struct rte_eth_conf dev_conf;
11054 uint64_t port_offloads;11060 uint64_t port_offloads;
11055 uint64_t queue_offloads;11061 uint64_t queue_offloads;
@@ -11057,12 +11063,13 @@ cmd_rx_offload_get_configuration_parsed(
11057 int q;11063 int q;
11058 int ret;11064 int ret;
1105911065
11060 printf("Rx Offloading Configuration of port %d :\n", port_id);
11061
11062 ret = eth_dev_conf_get_print_err(port_id, &dev_conf);11066 ret = eth_dev_conf_get_print_err(port_id, &dev_conf);
11063 if (ret != 0)11067 if (ret != 0)
11064 return;11068 return;
1106511069
11070 port = &ports[port_id];
11071 printf("Rx Offloading Configuration of port %d :\n", port_id);
11072
11066 port_offloads = dev_conf.rxmode.offloads;11073 port_offloads = dev_conf.rxmode.offloads;
11067 printf(" Port :");11074 printf(" Port :");
11068 print_rx_offloads(port_offloads);11075 print_rx_offloads(port_offloads);
@@ -11163,12 +11170,17 @@ static void
11163config_port_rx_offload(portid_t port_id, char *name, bool on)11170config_port_rx_offload(portid_t port_id, char *name, bool on)
11164{11171{
11165 struct rte_eth_dev_info dev_info;11172 struct rte_eth_dev_info dev_info;
11166 struct rte_port *port = &ports[port_id];11173 struct rte_port *port;
11167 uint16_t nb_rx_queues;11174 uint16_t nb_rx_queues;
11168 uint64_t offload;11175 uint64_t offload;
11169 int q;11176 int q;
11170 int ret;11177 int ret;
1117111178
11179 ret = eth_dev_info_get_print_err(port_id, &dev_info);
11180 if (ret != 0)
11181 return;
11182
11183 port = &ports[port_id];
11172 if (port->port_status != RTE_PORT_STOPPED) {11184 if (port->port_status != RTE_PORT_STOPPED) {
11173 fprintf(stderr,11185 fprintf(stderr,
11174 "Error: Can't config offload when Port %d is not stopped\n",11186 "Error: Can't config offload when Port %d is not stopped\n",
@@ -11176,10 +11188,6 @@ config_port_rx_offload(portid_t port_id, char *name, bool on)
11176 return;11188 return;
11177 }11189 }
1117811190
11179 ret = eth_dev_info_get_print_err(port_id, &dev_info);
11180 if (ret != 0)
11181 return;
11182
11183 if (!strcmp(name, "all")) {11191 if (!strcmp(name, "all")) {
11184 offload = dev_info.rx_offload_capa;11192 offload = dev_info.rx_offload_capa;
11185 } else {11193 } else {
@@ -11365,10 +11373,15 @@ cmd_config_per_queue_rx_offload_parsed(void *parsed_result,
11365 struct rte_eth_dev_info dev_info;11373 struct rte_eth_dev_info dev_info;
11366 portid_t port_id = res->port_id;11374 portid_t port_id = res->port_id;
11367 uint16_t queue_id = res->queue_id;11375 uint16_t queue_id = res->queue_id;
11368 struct rte_port *port = &ports[port_id];11376 struct rte_port *port;
11369 uint64_t offload;11377 uint64_t offload;
11370 int ret;11378 int ret;
1137111379
11380 ret = eth_dev_info_get_print_err(port_id, &dev_info);
11381 if (ret != 0)
11382 return;
11383
11384 port = &ports[port_id];
11372 if (port->port_status != RTE_PORT_STOPPED) {11385 if (port->port_status != RTE_PORT_STOPPED) {
11373 fprintf(stderr,11386 fprintf(stderr,
11374 "Error: Can't config offload when Port %d is not stopped\n",11387 "Error: Can't config offload when Port %d is not stopped\n",
@@ -11376,10 +11389,6 @@ cmd_config_per_queue_rx_offload_parsed(void *parsed_result,
11376 return;11389 return;
11377 }11390 }
1137811391
11379 ret = eth_dev_info_get_print_err(port_id, &dev_info);
11380 if (ret != 0)
11381 return;
11382
11383 if (queue_id >= dev_info.nb_rx_queues) {11392 if (queue_id >= dev_info.nb_rx_queues) {
11384 fprintf(stderr,11393 fprintf(stderr,
11385 "Error: input queue_id should be 0 ... %d\n",11394 "Error: input queue_id should be 0 ... %d\n",
@@ -11567,7 +11576,7 @@ cmd_tx_offload_get_configuration_parsed(
11567 struct cmd_tx_offload_get_configuration_result *res = parsed_result;11576 struct cmd_tx_offload_get_configuration_result *res = parsed_result;
11568 struct rte_eth_dev_info dev_info;11577 struct rte_eth_dev_info dev_info;
11569 portid_t port_id = res->port_id;11578 portid_t port_id = res->port_id;
11570 struct rte_port *port = &ports[port_id];11579 struct rte_port *port;
11571 struct rte_eth_conf dev_conf;11580 struct rte_eth_conf dev_conf;
11572 uint64_t port_offloads;11581 uint64_t port_offloads;
11573 uint64_t queue_offloads;11582 uint64_t queue_offloads;
@@ -11575,12 +11584,12 @@ cmd_tx_offload_get_configuration_parsed(
11575 int q;11584 int q;
11576 int ret;11585 int ret;
1157711586
11578 printf("Tx Offloading Configuration of port %d :\n", port_id);
11579
11580 ret = eth_dev_conf_get_print_err(port_id, &dev_conf);11587 ret = eth_dev_conf_get_print_err(port_id, &dev_conf);
11581 if (ret != 0)11588 if (ret != 0)
11582 return;11589 return;
1158311590
11591 printf("Tx Offloading Configuration of port %d :\n", port_id);
11592 port = &ports[port_id];
11584 port_offloads = dev_conf.txmode.offloads;11593 port_offloads = dev_conf.txmode.offloads;
11585 printf(" Port :");11594 printf(" Port :");
11586 print_tx_offloads(port_offloads);11595 print_tx_offloads(port_offloads);
@@ -11685,12 +11694,17 @@ static void
11685config_port_tx_offload(portid_t port_id, char *name, bool on)11694config_port_tx_offload(portid_t port_id, char *name, bool on)
11686{11695{
11687 struct rte_eth_dev_info dev_info;11696 struct rte_eth_dev_info dev_info;
11688 struct rte_port *port = &ports[port_id];11697 struct rte_port *port;
11689 uint16_t nb_tx_queues;11698 uint16_t nb_tx_queues;
11690 uint64_t offload;11699 uint64_t offload;
11691 int q;11700 int q;
11692 int ret;11701 int ret;
1169311702
11703 ret = eth_dev_info_get_print_err(port_id, &dev_info);
11704 if (ret != 0)
11705 return;
11706
11707 port = &ports[port_id];
11694 if (port->port_status != RTE_PORT_STOPPED) {11708 if (port->port_status != RTE_PORT_STOPPED) {
11695 fprintf(stderr,11709 fprintf(stderr,
11696 "Error: Can't config offload when Port %d is not stopped\n",11710 "Error: Can't config offload when Port %d is not stopped\n",
@@ -11698,10 +11712,6 @@ config_port_tx_offload(portid_t port_id, char *name, bool on)
11698 return;11712 return;
11699 }11713 }
1170011714
11701 ret = eth_dev_info_get_print_err(port_id, &dev_info);
11702 if (ret != 0)
11703 return;
11704
11705 if (!strcmp(name, "all")) {11715 if (!strcmp(name, "all")) {
11706 offload = dev_info.tx_offload_capa;11716 offload = dev_info.tx_offload_capa;
11707 } else {11717 } else {
@@ -11891,10 +11901,15 @@ cmd_config_per_queue_tx_offload_parsed(void *parsed_result,
11891 struct rte_eth_dev_info dev_info;11901 struct rte_eth_dev_info dev_info;
11892 portid_t port_id = res->port_id;11902 portid_t port_id = res->port_id;
11893 uint16_t queue_id = res->queue_id;11903 uint16_t queue_id = res->queue_id;
11894 struct rte_port *port = &ports[port_id];11904 struct rte_port *port;
11895 uint64_t offload;11905 uint64_t offload;
11896 int ret;11906 int ret;
1189711907
11908 ret = eth_dev_info_get_print_err(port_id, &dev_info);
11909 if (ret != 0)
11910 return;
11911
11912 port = &ports[port_id];
11898 if (port->port_status != RTE_PORT_STOPPED) {11913 if (port->port_status != RTE_PORT_STOPPED) {
11899 fprintf(stderr,11914 fprintf(stderr,
11900 "Error: Can't config offload when Port %d is not stopped\n",11915 "Error: Can't config offload when Port %d is not stopped\n",
@@ -11902,10 +11917,6 @@ cmd_config_per_queue_tx_offload_parsed(void *parsed_result,
11902 return;11917 return;
11903 }11918 }
1190411919
11905 ret = eth_dev_info_get_print_err(port_id, &dev_info);
11906 if (ret != 0)
11907 return;
11908
11909 if (queue_id >= dev_info.nb_tx_queues) {11920 if (queue_id >= dev_info.nb_tx_queues) {
11910 fprintf(stderr,11921 fprintf(stderr,
11911 "Error: input queue_id should be 0 ... %d\n",11922 "Error: input queue_id should be 0 ... %d\n",
@@ -13047,240 +13058,240 @@ static cmdline_parse_inst_t cmd_config_tx_affinity_map = {
1304713058
13048/* list of instructions */13059/* list of instructions */
13049static cmdline_parse_ctx_t builtin_ctx[] = {13060static cmdline_parse_ctx_t builtin_ctx[] = {
13050 (cmdline_parse_inst_t *)&cmd_help_brief,13061 &cmd_help_brief,
13051 (cmdline_parse_inst_t *)&cmd_help_long,13062 &cmd_help_long,
13052 (cmdline_parse_inst_t *)&cmd_quit,13063 &cmd_quit,
13053 (cmdline_parse_inst_t *)&cmd_load_from_file,13064 &cmd_load_from_file,
13054 (cmdline_parse_inst_t *)&cmd_showport,13065 &cmd_showport,
13055 (cmdline_parse_inst_t *)&cmd_showqueue,13066 &cmd_showqueue,
13056 (cmdline_parse_inst_t *)&cmd_showeeprom,13067 &cmd_showeeprom,
13057 (cmdline_parse_inst_t *)&cmd_showportall,13068 &cmd_showportall,
13058 (cmdline_parse_inst_t *)&cmd_representor_info,13069 &cmd_representor_info,
13059 (cmdline_parse_inst_t *)&cmd_showdevice,13070 &cmd_showdevice,
13060 (cmdline_parse_inst_t *)&cmd_showcfg,13071 &cmd_showcfg,
13061 (cmdline_parse_inst_t *)&cmd_showfwdall,13072 &cmd_showfwdall,
13062 (cmdline_parse_inst_t *)&cmd_start,13073 &cmd_start,
13063 (cmdline_parse_inst_t *)&cmd_start_tx_first,13074 &cmd_start_tx_first,
13064 (cmdline_parse_inst_t *)&cmd_start_tx_first_n,13075 &cmd_start_tx_first_n,
13065 (cmdline_parse_inst_t *)&cmd_set_link_up,13076 &cmd_set_link_up,
13066 (cmdline_parse_inst_t *)&cmd_set_link_down,13077 &cmd_set_link_down,
13067 (cmdline_parse_inst_t *)&cmd_reset,13078 &cmd_reset,
13068 (cmdline_parse_inst_t *)&cmd_set_numbers,13079 &cmd_set_numbers,
13069 (cmdline_parse_inst_t *)&cmd_set_log,13080 &cmd_set_log,
13070 (cmdline_parse_inst_t *)&cmd_set_rxoffs,13081 &cmd_set_rxoffs,
13071 (cmdline_parse_inst_t *)&cmd_set_rxpkts,13082 &cmd_set_rxpkts,
13072 (cmdline_parse_inst_t *)&cmd_set_rxhdrs,13083 &cmd_set_rxhdrs,
13073 (cmdline_parse_inst_t *)&cmd_set_txpkts,13084 &cmd_set_txpkts,
13074 (cmdline_parse_inst_t *)&cmd_set_txsplit,13085 &cmd_set_txsplit,
13075 (cmdline_parse_inst_t *)&cmd_set_txtimes,13086 &cmd_set_txtimes,
13076 (cmdline_parse_inst_t *)&cmd_set_fwd_list,13087 &cmd_set_fwd_list,
13077 (cmdline_parse_inst_t *)&cmd_set_fwd_mask,13088 &cmd_set_fwd_mask,
13078 (cmdline_parse_inst_t *)&cmd_set_fwd_mode,13089 &cmd_set_fwd_mode,
13079 (cmdline_parse_inst_t *)&cmd_set_fwd_retry_mode,13090 &cmd_set_fwd_retry_mode,
13080 (cmdline_parse_inst_t *)&cmd_set_burst_tx_retry,13091 &cmd_set_burst_tx_retry,
13081 (cmdline_parse_inst_t *)&cmd_set_promisc_mode_one,13092 &cmd_set_promisc_mode_one,
13082 (cmdline_parse_inst_t *)&cmd_set_promisc_mode_all,13093 &cmd_set_promisc_mode_all,
13083 (cmdline_parse_inst_t *)&cmd_set_allmulti_mode_one,13094 &cmd_set_allmulti_mode_one,
13084 (cmdline_parse_inst_t *)&cmd_set_allmulti_mode_all,13095 &cmd_set_allmulti_mode_all,
13085 (cmdline_parse_inst_t *)&cmd_set_flush_rx,13096 &cmd_set_flush_rx,
13086 (cmdline_parse_inst_t *)&cmd_set_link_check,13097 &cmd_set_link_check,
13087 (cmdline_parse_inst_t *)&cmd_vlan_offload,13098 &cmd_vlan_offload,
13088 (cmdline_parse_inst_t *)&cmd_vlan_tpid,13099 &cmd_vlan_tpid,
13089 (cmdline_parse_inst_t *)&cmd_rx_vlan_filter_all,13100 &cmd_rx_vlan_filter_all,
13090 (cmdline_parse_inst_t *)&cmd_rx_vlan_filter,13101 &cmd_rx_vlan_filter,
13091 (cmdline_parse_inst_t *)&cmd_tx_vlan_set,13102 &cmd_tx_vlan_set,
13092 (cmdline_parse_inst_t *)&cmd_tx_vlan_set_qinq,13103 &cmd_tx_vlan_set_qinq,
13093 (cmdline_parse_inst_t *)&cmd_tx_vlan_reset,13104 &cmd_tx_vlan_reset,
13094 (cmdline_parse_inst_t *)&cmd_tx_vlan_set_pvid,13105 &cmd_tx_vlan_set_pvid,
13095 (cmdline_parse_inst_t *)&cmd_csum_set,13106 &cmd_csum_set,
13096 (cmdline_parse_inst_t *)&cmd_csum_show,13107 &cmd_csum_show,
13097 (cmdline_parse_inst_t *)&cmd_csum_tunnel,13108 &cmd_csum_tunnel,
13098 (cmdline_parse_inst_t *)&cmd_csum_mac_swap,13109 &cmd_csum_mac_swap,
13099 (cmdline_parse_inst_t *)&cmd_tso_set,13110 &cmd_tso_set,
13100 (cmdline_parse_inst_t *)&cmd_tso_show,13111 &cmd_tso_show,
13101 (cmdline_parse_inst_t *)&cmd_tunnel_tso_set,13112 &cmd_tunnel_tso_set,
13102 (cmdline_parse_inst_t *)&cmd_tunnel_tso_show,13113 &cmd_tunnel_tso_show,
13103#ifdef RTE_LIB_GRO13114#ifdef RTE_LIB_GRO
13104 (cmdline_parse_inst_t *)&cmd_gro_enable,13115 &cmd_gro_enable,
13105 (cmdline_parse_inst_t *)&cmd_gro_flush,13116 &cmd_gro_flush,
13106 (cmdline_parse_inst_t *)&cmd_gro_show,13117 &cmd_gro_show,
13107#endif13118#endif
13108#ifdef RTE_LIB_GSO13119#ifdef RTE_LIB_GSO
13109 (cmdline_parse_inst_t *)&cmd_gso_enable,13120 &cmd_gso_enable,
13110 (cmdline_parse_inst_t *)&cmd_gso_size,13121 &cmd_gso_size,
13111 (cmdline_parse_inst_t *)&cmd_gso_show,13122 &cmd_gso_show,
13112#endif13123#endif
13113 (cmdline_parse_inst_t *)&cmd_link_flow_control_set,13124 &cmd_link_flow_control_set,
13114 (cmdline_parse_inst_t *)&cmd_link_flow_control_set_rx,13125 &cmd_link_flow_control_set_rx,
13115 (cmdline_parse_inst_t *)&cmd_link_flow_control_set_tx,13126 &cmd_link_flow_control_set_tx,
13116 (cmdline_parse_inst_t *)&cmd_link_flow_control_set_hw,13127 &cmd_link_flow_control_set_hw,
13117 (cmdline_parse_inst_t *)&cmd_link_flow_control_set_lw,13128 &cmd_link_flow_control_set_lw,
13118 (cmdline_parse_inst_t *)&cmd_link_flow_control_set_pt,13129 &cmd_link_flow_control_set_pt,
13119 (cmdline_parse_inst_t *)&cmd_link_flow_control_set_xon,13130 &cmd_link_flow_control_set_xon,
13120 (cmdline_parse_inst_t *)&cmd_link_flow_control_set_macfwd,13131 &cmd_link_flow_control_set_macfwd,
13121 (cmdline_parse_inst_t *)&cmd_link_flow_control_set_autoneg,13132 &cmd_link_flow_control_set_autoneg,
13122 (cmdline_parse_inst_t *)&cmd_link_flow_control_show,13133 &cmd_link_flow_control_show,
13123 (cmdline_parse_inst_t *)&cmd_priority_flow_control_set,13134 &cmd_priority_flow_control_set,
13124 (cmdline_parse_inst_t *)&cmd_queue_priority_flow_control_set,13135 &cmd_queue_priority_flow_control_set,
13125 (cmdline_parse_inst_t *)&cmd_config_dcb,13136 &cmd_config_dcb,
13126 (cmdline_parse_inst_t *)&cmd_read_rxd_txd,13137 &cmd_read_rxd_txd,
13127 (cmdline_parse_inst_t *)&cmd_stop,13138 &cmd_stop,
13128 (cmdline_parse_inst_t *)&cmd_mac_addr,13139 &cmd_mac_addr,
13129 (cmdline_parse_inst_t *)&cmd_set_fwd_eth_peer,13140 &cmd_set_fwd_eth_peer,
13130 (cmdline_parse_inst_t *)&cmd_set_qmap,13141 &cmd_set_qmap,
13131 (cmdline_parse_inst_t *)&cmd_set_xstats_hide_zero,13142 &cmd_set_xstats_hide_zero,
13132 (cmdline_parse_inst_t *)&cmd_set_record_core_cycles,13143 &cmd_set_record_core_cycles,
13133 (cmdline_parse_inst_t *)&cmd_set_record_burst_stats,13144 &cmd_set_record_burst_stats,
13134 (cmdline_parse_inst_t *)&cmd_operate_port,13145 &cmd_operate_port,
13135 (cmdline_parse_inst_t *)&cmd_operate_specific_port,13146 &cmd_operate_specific_port,
13136 (cmdline_parse_inst_t *)&cmd_operate_attach_port,13147 &cmd_operate_attach_port,
13137 (cmdline_parse_inst_t *)&cmd_operate_detach_port,13148 &cmd_operate_detach_port,
13138 (cmdline_parse_inst_t *)&cmd_operate_detach_device,13149 &cmd_operate_detach_device,
13139 (cmdline_parse_inst_t *)&cmd_set_port_setup_on,13150 &cmd_set_port_setup_on,
13140 (cmdline_parse_inst_t *)&cmd_config_speed_all,13151 &cmd_config_speed_all,
13141 (cmdline_parse_inst_t *)&cmd_config_speed_specific,13152 &cmd_config_speed_specific,
13142 (cmdline_parse_inst_t *)&cmd_config_loopback_all,13153 &cmd_config_loopback_all,
13143 (cmdline_parse_inst_t *)&cmd_config_loopback_specific,13154 &cmd_config_loopback_specific,
13144 (cmdline_parse_inst_t *)&cmd_config_rx_tx,13155 &cmd_config_rx_tx,
13145 (cmdline_parse_inst_t *)&cmd_config_mtu,13156 &cmd_config_mtu,
13146 (cmdline_parse_inst_t *)&cmd_config_max_pkt_len,13157 &cmd_config_max_pkt_len,
13147 (cmdline_parse_inst_t *)&cmd_config_max_lro_pkt_size,13158 &cmd_config_max_lro_pkt_size,
13148 (cmdline_parse_inst_t *)&cmd_config_rx_mode_flag,13159 &cmd_config_rx_mode_flag,
13149 (cmdline_parse_inst_t *)&cmd_config_rss,13160 &cmd_config_rss,
13150 (cmdline_parse_inst_t *)&cmd_config_rxtx_ring_size,13161 &cmd_config_rxtx_ring_size,
13151 (cmdline_parse_inst_t *)&cmd_config_rxtx_queue,13162 &cmd_config_rxtx_queue,
13152 (cmdline_parse_inst_t *)&cmd_config_deferred_start_rxtx_queue,13163 &cmd_config_deferred_start_rxtx_queue,
13153 (cmdline_parse_inst_t *)&cmd_setup_rxtx_queue,13164 &cmd_setup_rxtx_queue,
13154 (cmdline_parse_inst_t *)&cmd_config_rss_reta,13165 &cmd_config_rss_reta,
13155 (cmdline_parse_inst_t *)&cmd_showport_reta,13166 &cmd_showport_reta,
13156 (cmdline_parse_inst_t *)&cmd_showport_macs,13167 &cmd_showport_macs,
13157 (cmdline_parse_inst_t *)&cmd_show_port_flow_transfer_proxy,13168 &cmd_show_port_flow_transfer_proxy,
13158 (cmdline_parse_inst_t *)&cmd_config_burst,13169 &cmd_config_burst,
13159 (cmdline_parse_inst_t *)&cmd_config_thresh,13170 &cmd_config_thresh,
13160 (cmdline_parse_inst_t *)&cmd_config_threshold,13171 &cmd_config_threshold,
13161 (cmdline_parse_inst_t *)&cmd_set_uc_hash_filter,13172 &cmd_set_uc_hash_filter,
13162 (cmdline_parse_inst_t *)&cmd_set_uc_all_hash_filter,13173 &cmd_set_uc_all_hash_filter,
13163 (cmdline_parse_inst_t *)&cmd_vf_mac_addr_filter,13174 &cmd_vf_mac_addr_filter,
13164 (cmdline_parse_inst_t *)&cmd_queue_rate_limit,13175 &cmd_queue_rate_limit,
13165 (cmdline_parse_inst_t *)&cmd_tunnel_udp_config,13176 &cmd_tunnel_udp_config,
13166 (cmdline_parse_inst_t *)&cmd_showport_rss_hash,13177 &cmd_showport_rss_hash,
13167 (cmdline_parse_inst_t *)&cmd_showport_rss_hash_key,13178 &cmd_showport_rss_hash_key,
13168 (cmdline_parse_inst_t *)&cmd_showport_rss_hash_algo,13179 &cmd_showport_rss_hash_algo,
13169 (cmdline_parse_inst_t *)&cmd_config_rss_hash_key,13180 &cmd_config_rss_hash_key,
13170 (cmdline_parse_inst_t *)&cmd_cleanup_txq_mbufs,13181 &cmd_cleanup_txq_mbufs,
13171 (cmdline_parse_inst_t *)&cmd_dump,13182 &cmd_dump,
13172 (cmdline_parse_inst_t *)&cmd_dump_one,13183 &cmd_dump_one,
13173 (cmdline_parse_inst_t *)&cmd_flow,13184 &cmd_flow,
13174 (cmdline_parse_inst_t *)&cmd_show_port_meter_cap,13185 &cmd_show_port_meter_cap,
13175 (cmdline_parse_inst_t *)&cmd_add_port_meter_profile_srtcm,13186 &cmd_add_port_meter_profile_srtcm,
13176 (cmdline_parse_inst_t *)&cmd_add_port_meter_profile_trtcm,13187 &cmd_add_port_meter_profile_trtcm,
13177 (cmdline_parse_inst_t *)&cmd_add_port_meter_profile_trtcm_rfc4115,13188 &cmd_add_port_meter_profile_trtcm_rfc4115,
13178 (cmdline_parse_inst_t *)&cmd_del_port_meter_profile,13189 &cmd_del_port_meter_profile,
13179 (cmdline_parse_inst_t *)&cmd_create_port_meter,13190 &cmd_create_port_meter,
13180 (cmdline_parse_inst_t *)&cmd_enable_port_meter,13191 &cmd_enable_port_meter,
13181 (cmdline_parse_inst_t *)&cmd_disable_port_meter,13192 &cmd_disable_port_meter,
13182 (cmdline_parse_inst_t *)&cmd_del_port_meter,13193 &cmd_del_port_meter,
13183 (cmdline_parse_inst_t *)&cmd_del_port_meter_policy,13194 &cmd_del_port_meter_policy,
13184 (cmdline_parse_inst_t *)&cmd_set_port_meter_profile,13195 &cmd_set_port_meter_profile,
13185 (cmdline_parse_inst_t *)&cmd_set_port_meter_dscp_table,13196 &cmd_set_port_meter_dscp_table,
13186 (cmdline_parse_inst_t *)&cmd_set_port_meter_vlan_table,13197 &cmd_set_port_meter_vlan_table,
13187 (cmdline_parse_inst_t *)&cmd_set_port_meter_in_proto,13198 &cmd_set_port_meter_in_proto,
13188 (cmdline_parse_inst_t *)&cmd_get_port_meter_in_proto,13199 &cmd_get_port_meter_in_proto,
13189 (cmdline_parse_inst_t *)&cmd_get_port_meter_in_proto_prio,13200 &cmd_get_port_meter_in_proto_prio,
13190 (cmdline_parse_inst_t *)&cmd_set_port_meter_stats_mask,13201 &cmd_set_port_meter_stats_mask,
13191 (cmdline_parse_inst_t *)&cmd_show_port_meter_stats,13202 &cmd_show_port_meter_stats,
13192 (cmdline_parse_inst_t *)&cmd_mcast_addr,13203 &cmd_mcast_addr,
13193 (cmdline_parse_inst_t *)&cmd_mcast_addr_flush,13204 &cmd_mcast_addr_flush,
13194 (cmdline_parse_inst_t *)&cmd_set_vf_vlan_anti_spoof,13205 &cmd_set_vf_vlan_anti_spoof,
13195 (cmdline_parse_inst_t *)&cmd_set_vf_mac_anti_spoof,13206 &cmd_set_vf_mac_anti_spoof,
13196 (cmdline_parse_inst_t *)&cmd_set_vf_vlan_stripq,13207 &cmd_set_vf_vlan_stripq,
13197 (cmdline_parse_inst_t *)&cmd_set_vf_vlan_insert,13208 &cmd_set_vf_vlan_insert,
13198 (cmdline_parse_inst_t *)&cmd_set_tx_loopback,13209 &cmd_set_tx_loopback,
13199 (cmdline_parse_inst_t *)&cmd_set_all_queues_drop_en,13210 &cmd_set_all_queues_drop_en,
13200 (cmdline_parse_inst_t *)&cmd_set_vf_traffic,13211 &cmd_set_vf_traffic,
13201 (cmdline_parse_inst_t *)&cmd_set_vf_rxmode,13212 &cmd_set_vf_rxmode,
13202 (cmdline_parse_inst_t *)&cmd_vf_rate_limit,13213 &cmd_vf_rate_limit,
13203 (cmdline_parse_inst_t *)&cmd_vf_rxvlan_filter,13214 &cmd_vf_rxvlan_filter,
13204 (cmdline_parse_inst_t *)&cmd_set_vf_mac_addr,13215 &cmd_set_vf_mac_addr,
13205 (cmdline_parse_inst_t *)&cmd_set_vxlan,13216 &cmd_set_vxlan,
13206 (cmdline_parse_inst_t *)&cmd_set_vxlan_tos_ttl,13217 &cmd_set_vxlan_tos_ttl,
13207 (cmdline_parse_inst_t *)&cmd_set_vxlan_with_vlan,13218 &cmd_set_vxlan_with_vlan,
13208 (cmdline_parse_inst_t *)&cmd_set_nvgre,13219 &cmd_set_nvgre,
13209 (cmdline_parse_inst_t *)&cmd_set_nvgre_with_vlan,13220 &cmd_set_nvgre_with_vlan,
13210 (cmdline_parse_inst_t *)&cmd_set_l2_encap,13221 &cmd_set_l2_encap,
13211 (cmdline_parse_inst_t *)&cmd_set_l2_encap_with_vlan,13222 &cmd_set_l2_encap_with_vlan,
13212 (cmdline_parse_inst_t *)&cmd_set_l2_decap,13223 &cmd_set_l2_decap,
13213 (cmdline_parse_inst_t *)&cmd_set_l2_decap_with_vlan,13224 &cmd_set_l2_decap_with_vlan,
13214 (cmdline_parse_inst_t *)&cmd_set_mplsogre_encap,13225 &cmd_set_mplsogre_encap,
13215 (cmdline_parse_inst_t *)&cmd_set_mplsogre_encap_with_vlan,13226 &cmd_set_mplsogre_encap_with_vlan,
13216 (cmdline_parse_inst_t *)&cmd_set_mplsogre_decap,13227 &cmd_set_mplsogre_decap,
13217 (cmdline_parse_inst_t *)&cmd_set_mplsogre_decap_with_vlan,13228 &cmd_set_mplsogre_decap_with_vlan,
13218 (cmdline_parse_inst_t *)&cmd_set_mplsoudp_encap,13229 &cmd_set_mplsoudp_encap,
13219 (cmdline_parse_inst_t *)&cmd_set_mplsoudp_encap_with_vlan,13230 &cmd_set_mplsoudp_encap_with_vlan,
13220 (cmdline_parse_inst_t *)&cmd_set_mplsoudp_decap,13231 &cmd_set_mplsoudp_decap,
13221 (cmdline_parse_inst_t *)&cmd_set_mplsoudp_decap_with_vlan,13232 &cmd_set_mplsoudp_decap_with_vlan,
13222 (cmdline_parse_inst_t *)&cmd_set_conntrack_common,13233 &cmd_set_conntrack_common,
13223 (cmdline_parse_inst_t *)&cmd_set_conntrack_dir,13234 &cmd_set_conntrack_dir,
13224 (cmdline_parse_inst_t *)&cmd_show_vf_stats,13235 &cmd_show_vf_stats,
13225 (cmdline_parse_inst_t *)&cmd_clear_vf_stats,13236 &cmd_clear_vf_stats,
13226 (cmdline_parse_inst_t *)&cmd_show_port_supported_ptypes,13237 &cmd_show_port_supported_ptypes,
13227 (cmdline_parse_inst_t *)&cmd_set_port_ptypes,13238 &cmd_set_port_ptypes,
13228 (cmdline_parse_inst_t *)&cmd_show_port_tm_cap,13239 &cmd_show_port_tm_cap,
13229 (cmdline_parse_inst_t *)&cmd_show_port_tm_level_cap,13240 &cmd_show_port_tm_level_cap,
13230 (cmdline_parse_inst_t *)&cmd_show_port_tm_node_cap,13241 &cmd_show_port_tm_node_cap,
13231 (cmdline_parse_inst_t *)&cmd_show_port_tm_node_type,13242 &cmd_show_port_tm_node_type,
13232 (cmdline_parse_inst_t *)&cmd_show_port_tm_node_stats,13243 &cmd_show_port_tm_node_stats,
13233 (cmdline_parse_inst_t *)&cmd_add_port_tm_node_shaper_profile,13244 &cmd_add_port_tm_node_shaper_profile,
13234 (cmdline_parse_inst_t *)&cmd_del_port_tm_node_shaper_profile,13245 &cmd_del_port_tm_node_shaper_profile,
13235 (cmdline_parse_inst_t *)&cmd_add_port_tm_node_shared_shaper,13246 &cmd_add_port_tm_node_shared_shaper,
13236 (cmdline_parse_inst_t *)&cmd_del_port_tm_node_shared_shaper,13247 &cmd_del_port_tm_node_shared_shaper,
13237 (cmdline_parse_inst_t *)&cmd_add_port_tm_node_wred_profile,13248 &cmd_add_port_tm_node_wred_profile,
13238 (cmdline_parse_inst_t *)&cmd_del_port_tm_node_wred_profile,13249 &cmd_del_port_tm_node_wred_profile,
13239 (cmdline_parse_inst_t *)&cmd_set_port_tm_node_shaper_profile,13250 &cmd_set_port_tm_node_shaper_profile,
13240 (cmdline_parse_inst_t *)&cmd_add_port_tm_nonleaf_node,13251 &cmd_add_port_tm_nonleaf_node,
13241 (cmdline_parse_inst_t *)&cmd_add_port_tm_nonleaf_node_pmode,13252 &cmd_add_port_tm_nonleaf_node_pmode,
13242 (cmdline_parse_inst_t *)&cmd_add_port_tm_leaf_node,13253 &cmd_add_port_tm_leaf_node,
13243 (cmdline_parse_inst_t *)&cmd_del_port_tm_node,13254 &cmd_del_port_tm_node,
13244 (cmdline_parse_inst_t *)&cmd_set_port_tm_node_parent,13255 &cmd_set_port_tm_node_parent,
13245 (cmdline_parse_inst_t *)&cmd_suspend_port_tm_node,13256 &cmd_suspend_port_tm_node,
13246 (cmdline_parse_inst_t *)&cmd_resume_port_tm_node,13257 &cmd_resume_port_tm_node,
13247 (cmdline_parse_inst_t *)&cmd_port_tm_hierarchy_commit,13258 &cmd_port_tm_hierarchy_commit,
13248 (cmdline_parse_inst_t *)&cmd_port_tm_mark_ip_ecn,13259 &cmd_port_tm_mark_ip_ecn,
13249 (cmdline_parse_inst_t *)&cmd_port_tm_mark_ip_dscp,13260 &cmd_port_tm_mark_ip_dscp,
13250 (cmdline_parse_inst_t *)&cmd_port_tm_mark_vlan_dei,13261 &cmd_port_tm_mark_vlan_dei,
13251 (cmdline_parse_inst_t *)&cmd_cfg_tunnel_udp_port,13262 &cmd_cfg_tunnel_udp_port,
13252 (cmdline_parse_inst_t *)&cmd_rx_offload_get_capa,13263 &cmd_rx_offload_get_capa,
13253 (cmdline_parse_inst_t *)&cmd_rx_offload_get_configuration,13264 &cmd_rx_offload_get_configuration,
13254 (cmdline_parse_inst_t *)&cmd_config_per_port_rx_offload,13265 &cmd_config_per_port_rx_offload,
13255 (cmdline_parse_inst_t *)&cmd_config_all_port_rx_offload,13266 &cmd_config_all_port_rx_offload,
13256 (cmdline_parse_inst_t *)&cmd_config_per_queue_rx_offload,13267 &cmd_config_per_queue_rx_offload,
13257 (cmdline_parse_inst_t *)&cmd_tx_offload_get_capa,13268 &cmd_tx_offload_get_capa,
13258 (cmdline_parse_inst_t *)&cmd_tx_offload_get_configuration,13269 &cmd_tx_offload_get_configuration,
13259 (cmdline_parse_inst_t *)&cmd_config_per_port_tx_offload,13270 &cmd_config_per_port_tx_offload,
13260 (cmdline_parse_inst_t *)&cmd_config_all_port_tx_offload,13271 &cmd_config_all_port_tx_offload,
13261 (cmdline_parse_inst_t *)&cmd_config_per_queue_tx_offload,13272 &cmd_config_per_queue_tx_offload,
13262#ifdef RTE_LIB_BPF13273#ifdef RTE_LIB_BPF
13263 (cmdline_parse_inst_t *)&cmd_operate_bpf_ld_parse,13274 &cmd_operate_bpf_ld_parse,
13264 (cmdline_parse_inst_t *)&cmd_operate_bpf_unld_parse,13275 &cmd_operate_bpf_unld_parse,
13265#endif13276#endif
13266 (cmdline_parse_inst_t *)&cmd_config_tx_metadata_specific,13277 &cmd_config_tx_metadata_specific,
13267 (cmdline_parse_inst_t *)&cmd_show_tx_metadata,13278 &cmd_show_tx_metadata,
13268 (cmdline_parse_inst_t *)&cmd_show_rx_tx_desc_status,13279 &cmd_show_rx_tx_desc_status,
13269 (cmdline_parse_inst_t *)&cmd_show_rx_queue_desc_used_count,13280 &cmd_show_rx_queue_desc_used_count,
13270 (cmdline_parse_inst_t *)&cmd_set_raw,13281 &cmd_set_raw,
13271 (cmdline_parse_inst_t *)&cmd_show_set_raw,13282 &cmd_show_set_raw,
13272 (cmdline_parse_inst_t *)&cmd_show_set_raw_all,13283 &cmd_show_set_raw_all,
13273 (cmdline_parse_inst_t *)&cmd_config_tx_dynf_specific,13284 &cmd_config_tx_dynf_specific,
13274 (cmdline_parse_inst_t *)&cmd_show_fec_mode,13285 &cmd_show_fec_mode,
13275 (cmdline_parse_inst_t *)&cmd_set_fec_mode,13286 &cmd_set_fec_mode,
13276 (cmdline_parse_inst_t *)&cmd_set_rxq_avail_thresh,13287 &cmd_set_rxq_avail_thresh,
13277 (cmdline_parse_inst_t *)&cmd_show_capability,13288 &cmd_show_capability,
13278 (cmdline_parse_inst_t *)&cmd_set_flex_is_pattern,13289 &cmd_set_flex_is_pattern,
13279 (cmdline_parse_inst_t *)&cmd_set_flex_spec_pattern,13290 &cmd_set_flex_spec_pattern,
13280 (cmdline_parse_inst_t *)&cmd_show_port_cman_capa,13291 &cmd_show_port_cman_capa,
13281 (cmdline_parse_inst_t *)&cmd_show_port_cman_config,13292 &cmd_show_port_cman_config,
13282 (cmdline_parse_inst_t *)&cmd_set_port_cman_config,13293 &cmd_set_port_cman_config,
13283 (cmdline_parse_inst_t *)&cmd_config_tx_affinity_map,13294 &cmd_config_tx_affinity_map,
13284 NULL,13295 NULL,
13285};13296};
1328613297
diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c
index 7e6e06a..661c72c 100644
--- a/app/test-pmd/cmdline_flow.c
+++ b/app/test-pmd/cmdline_flow.c
@@ -105,7 +105,6 @@ enum index {
105 HASH,105 HASH,
106106
107 /* Flex arguments */107 /* Flex arguments */
108 FLEX_ITEM_INIT,
109 FLEX_ITEM_CREATE,108 FLEX_ITEM_CREATE,
110 FLEX_ITEM_DESTROY,109 FLEX_ITEM_DESTROY,
111110
@@ -1249,7 +1248,6 @@ struct parse_action_priv {
1249 })1248 })
12501249
1251static const enum index next_flex_item[] = {1250static const enum index next_flex_item[] = {
1252 FLEX_ITEM_INIT,
1253 FLEX_ITEM_CREATE,1251 FLEX_ITEM_CREATE,
1254 FLEX_ITEM_DESTROY,1252 FLEX_ITEM_DESTROY,
1255 ZERO,1253 ZERO,
@@ -3932,15 +3930,6 @@ static const struct token token_list[] = {
3932 .next = NEXT(next_flex_item),3930 .next = NEXT(next_flex_item),
3933 .call = parse_flex,3931 .call = parse_flex,
3934 },3932 },
3935 [FLEX_ITEM_INIT] = {
3936 .name = "init",
3937 .help = "flex item init",
3938 .args = ARGS(ARGS_ENTRY(struct buffer, args.flex.token),
3939 ARGS_ENTRY(struct buffer, port)),
3940 .next = NEXT(NEXT_ENTRY(COMMON_FLEX_TOKEN),
3941 NEXT_ENTRY(COMMON_PORT_ID)),
3942 .call = parse_flex
3943 },
3944 [FLEX_ITEM_CREATE] = {3933 [FLEX_ITEM_CREATE] = {
3945 .name = "create",3934 .name = "create",
3946 .help = "flex item create",3935 .help = "flex item create",
@@ -10720,7 +10709,6 @@ parse_flex(struct context *ctx, const struct token *token,
10720 switch (ctx->curr) {10709 switch (ctx->curr) {
10721 default:10710 default:
10722 break;10711 break;
10723 case FLEX_ITEM_INIT:
10724 case FLEX_ITEM_CREATE:10712 case FLEX_ITEM_CREATE:
10725 case FLEX_ITEM_DESTROY:10713 case FLEX_ITEM_DESTROY:
10726 out->command = ctx->curr;10714 out->command = ctx->curr;
@@ -12123,7 +12111,7 @@ comp_names_to_index(struct context *ctx, const struct token *token,
12123 RTE_SET_USED(token);12111 RTE_SET_USED(token);
12124 if (!buf)12112 if (!buf)
12125 return names_size;12113 return names_size;
12126 if (names[ent] && ent < names_size)12114 if (ent < names_size && names[ent] != NULL)
12127 return rte_strscpy(buf, names[ent], size);12115 return rte_strscpy(buf, names[ent], size);
12128 return -1;12116 return -1;
1212912117
diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
index 40e4e83..a70086c 100644
--- a/app/test-pmd/config.c
+++ b/app/test-pmd/config.c
@@ -2219,7 +2219,7 @@ port_meter_policy_add(portid_t port_id, uint32_t policy_id,
2219 for (act_n = 0, start = act;2219 for (act_n = 0, start = act;
2220 act->type != RTE_FLOW_ACTION_TYPE_END; act++)2220 act->type != RTE_FLOW_ACTION_TYPE_END; act++)
2221 act_n++;2221 act_n++;
2222 if (act_n && act->type == RTE_FLOW_ACTION_TYPE_END)2222 if (act_n > 0)
2223 policy.actions[i] = start;2223 policy.actions[i] = start;
2224 else2224 else
2225 policy.actions[i] = NULL;2225 policy.actions[i] = NULL;
@@ -3913,8 +3913,10 @@ port_flow_aged(portid_t port_id, uint8_t destroy)
3913 }3913 }
3914 type = (enum age_action_context_type *)contexts[idx];3914 type = (enum age_action_context_type *)contexts[idx];
3915 switch (*type) {3915 switch (*type) {
3916 case ACTION_AGE_CONTEXT_TYPE_FLOW:3916 case ACTION_AGE_CONTEXT_TYPE_FLOW: {
3917 uint64_t flow_id;
3917 ctx.pf = container_of(type, struct port_flow, age_type);3918 ctx.pf = container_of(type, struct port_flow, age_type);
3919 flow_id = ctx.pf->id;
3918 printf("%-20s\t%" PRIu64 "\t%" PRIu32 "\t%" PRIu323920 printf("%-20s\t%" PRIu64 "\t%" PRIu32 "\t%" PRIu32
3919 "\t%c%c%c\t\n",3921 "\t%c%c%c\t\n",
3920 "Flow",3922 "Flow",
@@ -3925,9 +3927,10 @@ port_flow_aged(portid_t port_id, uint8_t destroy)
3925 ctx.pf->rule.attr->egress ? 'e' : '-',3927 ctx.pf->rule.attr->egress ? 'e' : '-',
3926 ctx.pf->rule.attr->transfer ? 't' : '-');3928 ctx.pf->rule.attr->transfer ? 't' : '-');
3927 if (destroy && !port_flow_destroy(port_id, 1,3929 if (destroy && !port_flow_destroy(port_id, 1,
3928 &ctx.pf->id, false))3930 &flow_id, false))
3929 total++;3931 total++;
3930 break;3932 break;
3933 }
3931 case ACTION_AGE_CONTEXT_TYPE_INDIRECT_ACTION:3934 case ACTION_AGE_CONTEXT_TYPE_INDIRECT_ACTION:
3932 ctx.pia = container_of(type,3935 ctx.pia = container_of(type,
3933 struct port_indirect_action, age_type);3936 struct port_indirect_action, age_type);
@@ -6906,8 +6909,8 @@ port_dcb_info_display(portid_t port_id)
6906 printf("\n TC : ");6909 printf("\n TC : ");
6907 for (i = 0; i < dcb_info.nb_tcs; i++)6910 for (i = 0; i < dcb_info.nb_tcs; i++)
6908 printf("\t%4d", i);6911 printf("\t%4d", i);
6909 printf("\n Priority : ");6912 printf("\n Prio2TC : ");
6910 for (i = 0; i < dcb_info.nb_tcs; i++)6913 for (i = 0; i < RTE_ETH_DCB_NUM_USER_PRIORITIES; i++)
6911 printf("\t%4d", dcb_info.prio_tc[i]);6914 printf("\t%4d", dcb_info.prio_tc[i]);
6912 printf("\n BW percent :");6915 printf("\n BW percent :");
6913 for (i = 0; i < dcb_info.nb_tcs; i++)6916 for (i = 0; i < dcb_info.nb_tcs; i++)
diff --git a/app/test/test_common.c b/app/test/test_common.c
index 21eb228..6dbd7fc 100644
--- a/app/test/test_common.c
+++ b/app/test/test_common.c
@@ -9,11 +9,12 @@
9#include <rte_common.h>9#include <rte_common.h>
10#include <rte_bitops.h>10#include <rte_bitops.h>
11#include <rte_hexdump.h>11#include <rte_hexdump.h>
12#include <rte_random.h>
12#include <rte_pause.h>13#include <rte_pause.h>
1314
14#include "test.h"15#include "test.h"
1516
16#define MAX_NUM 1 << 2017#define MAX_NUM (1 << 20)
1718
18#define FAIL(x)\19#define FAIL(x)\
19 {printf(x "() test failed!\n");\20 {printf(x "() test failed!\n");\
@@ -218,19 +219,21 @@ test_align(void)
218 }219 }
219 }220 }
220221
221 for (p = 1; p <= MAX_NUM / 2; p++) {222 /* testing the whole space of 2^20^2 takes too long. */
222 for (i = 1; i <= MAX_NUM / 2; i++) {223 for (j = 1; j <= MAX_NUM ; j++) {
223 val = RTE_ALIGN_MUL_CEIL(i, p);224 i = rte_rand_max(MAX_NUM - 1) + 1;
224 if (val % p != 0 || val < i)225 p = rte_rand_max(MAX_NUM - 1) + 1;
225 FAIL_ALIGN("RTE_ALIGN_MUL_CEIL", i, p);226
226 val = RTE_ALIGN_MUL_FLOOR(i, p);227 val = RTE_ALIGN_MUL_CEIL(i, p);
227 if (val % p != 0 || val > i)228 if (val % p != 0 || val < i)
228 FAIL_ALIGN("RTE_ALIGN_MUL_FLOOR", i, p);229 FAIL_ALIGN("RTE_ALIGN_MUL_CEIL", i, p);
229 val = RTE_ALIGN_MUL_NEAR(i, p);230 val = RTE_ALIGN_MUL_FLOOR(i, p);
230 if (val % p != 0 || ((val != RTE_ALIGN_MUL_CEIL(i, p))231 if (val % p != 0 || val > i)
231 & (val != RTE_ALIGN_MUL_FLOOR(i, p))))232 FAIL_ALIGN("RTE_ALIGN_MUL_FLOOR", i, p);
232 FAIL_ALIGN("RTE_ALIGN_MUL_NEAR", i, p);233 val = RTE_ALIGN_MUL_NEAR(i, p);
233 }234 if (val % p != 0 || ((val != RTE_ALIGN_MUL_CEIL(i, p))
235 & (val != RTE_ALIGN_MUL_FLOOR(i, p))))
236 FAIL_ALIGN("RTE_ALIGN_MUL_NEAR", i, p);
234 }237 }
235238
236 return 0;239 return 0;
diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c
index 6cd38ae..fb5a3e7 100644
--- a/app/test/test_cryptodev.c
+++ b/app/test/test_cryptodev.c
@@ -12270,6 +12270,8 @@ test_authenticated_encryption_oop(const struct aead_test_data *tdata)
12270 struct crypto_testsuite_params *ts_params = &testsuite_params;12270 struct crypto_testsuite_params *ts_params = &testsuite_params;
12271 struct crypto_unittest_params *ut_params = &unittest_params;12271 struct crypto_unittest_params *ut_params = &unittest_params;
1227212272
12273 uint32_t i;
12274 uint8_t *buffer_oop;
12273 int retval;12275 int retval;
12274 uint8_t *ciphertext, *auth_tag;12276 uint8_t *ciphertext, *auth_tag;
12275 uint16_t plaintext_pad_len;12277 uint16_t plaintext_pad_len;
@@ -12342,6 +12344,16 @@ test_authenticated_encryption_oop(const struct aead_test_data *tdata)
12342 ut_params->op->sym->cipher.data.offset);12344 ut_params->op->sym->cipher.data.offset);
12343 auth_tag = ciphertext + plaintext_pad_len;12345 auth_tag = ciphertext + plaintext_pad_len;
1234412346
12347 /* Check if the data within the offset range is not overwritten in the OOP */
12348 buffer_oop = rte_pktmbuf_mtod(ut_params->obuf, uint8_t *);
12349 for (i = 0; i < ut_params->op->sym->cipher.data.offset; i++) {
12350 if (buffer_oop[i]) {
12351 RTE_LOG(ERR, USER1, "Incorrect value of the output buffer header\n");
12352 debug_hexdump(stdout, "Incorrect value:", buffer_oop, ut_params->op->sym->cipher.data.offset);
12353 return TEST_FAILED;
12354 }
12355 }
12356
12345 debug_hexdump(stdout, "ciphertext:", ciphertext, tdata->ciphertext.len);12357 debug_hexdump(stdout, "ciphertext:", ciphertext, tdata->ciphertext.len);
12346 debug_hexdump(stdout, "auth tag:", auth_tag, tdata->auth_tag.len);12358 debug_hexdump(stdout, "auth tag:", auth_tag, tdata->auth_tag.len);
1234712359
@@ -12374,6 +12386,8 @@ test_authenticated_decryption_oop(const struct aead_test_data *tdata)
12374 struct crypto_testsuite_params *ts_params = &testsuite_params;12386 struct crypto_testsuite_params *ts_params = &testsuite_params;
12375 struct crypto_unittest_params *ut_params = &unittest_params;12387 struct crypto_unittest_params *ut_params = &unittest_params;
1237612388
12389 uint32_t i;
12390 uint8_t *buffer_oop;
12377 int retval;12391 int retval;
12378 uint8_t *plaintext;12392 uint8_t *plaintext;
12379 struct rte_cryptodev_info dev_info;12393 struct rte_cryptodev_info dev_info;
@@ -12447,6 +12461,18 @@ test_authenticated_decryption_oop(const struct aead_test_data *tdata)
1244712461
12448 debug_hexdump(stdout, "plaintext:", plaintext, tdata->ciphertext.len);12462 debug_hexdump(stdout, "plaintext:", plaintext, tdata->ciphertext.len);
1244912463
12464 /* Check if the data within the offset range is not overwritten in the OOP */
12465 buffer_oop = rte_pktmbuf_mtod(ut_params->obuf, uint8_t *);
12466 for (i = 0; i < ut_params->op->sym->cipher.data.offset; i++) {
12467 if (buffer_oop[i]) {
12468 RTE_LOG(ERR, USER1,
12469 "Incorrect value of the output buffer header\n");
12470 debug_hexdump(stdout, "Incorrect value:", buffer_oop,
12471 ut_params->op->sym->cipher.data.offset);
12472 return TEST_FAILED;
12473 }
12474 }
12475
12450 /* Validate obuf */12476 /* Validate obuf */
12451 TEST_ASSERT_BUFFERS_ARE_EQUAL(12477 TEST_ASSERT_BUFFERS_ARE_EQUAL(
12452 plaintext,12478 plaintext,
@@ -13625,6 +13651,10 @@ test_enq_callback_setup(void)
13625 uint16_t qp_id = 0;13651 uint16_t qp_id = 0;
13626 int j = 0;13652 int j = 0;
1362713653
13654 /* Skip test if synchronous API is used */
13655 if (gbl_action_type == RTE_SECURITY_ACTION_TYPE_CPU_CRYPTO)
13656 return TEST_SKIPPED;
13657
13628 /* Verify the crypto capabilities for which enqueue/dequeue is done. */13658 /* Verify the crypto capabilities for which enqueue/dequeue is done. */
13629 cap_idx.type = RTE_CRYPTO_SYM_XFORM_AUTH;13659 cap_idx.type = RTE_CRYPTO_SYM_XFORM_AUTH;
13630 cap_idx.algo.auth = RTE_CRYPTO_AUTH_NULL;13660 cap_idx.algo.auth = RTE_CRYPTO_AUTH_NULL;
@@ -13727,7 +13757,7 @@ test_enq_callback_setup(void)
13727 "qp %u on cryptodev %u",13757 "qp %u on cryptodev %u",
13728 qp_id, ts_params->valid_devs[0]);13758 qp_id, ts_params->valid_devs[0]);
1372913759
13730 TEST_ASSERT(deq_cb_called == true, "Crypto dequeue callback not called");13760 TEST_ASSERT(enq_cb_called == true, "Crypto enqueue callback not called");
1373113761
13732 return TEST_SUCCESS;13762 return TEST_SUCCESS;
13733}13763}
@@ -13746,6 +13776,10 @@ test_deq_callback_setup(void)
13746 uint16_t qp_id = 0;13776 uint16_t qp_id = 0;
13747 int j = 0;13777 int j = 0;
1374813778
13779 /* Skip test if synchronous API is used */
13780 if (gbl_action_type == RTE_SECURITY_ACTION_TYPE_CPU_CRYPTO)
13781 return TEST_SKIPPED;
13782
13749 /* Verify the crypto capabilities for which enqueue/dequeue is done. */13783 /* Verify the crypto capabilities for which enqueue/dequeue is done. */
13750 cap_idx.type = RTE_CRYPTO_SYM_XFORM_AUTH;13784 cap_idx.type = RTE_CRYPTO_SYM_XFORM_AUTH;
13751 cap_idx.algo.auth = RTE_CRYPTO_AUTH_NULL;13785 cap_idx.algo.auth = RTE_CRYPTO_AUTH_NULL;
@@ -13848,7 +13882,7 @@ test_deq_callback_setup(void)
13848 "qp %u on cryptodev %u",13882 "qp %u on cryptodev %u",
13849 qp_id, ts_params->valid_devs[0]);13883 qp_id, ts_params->valid_devs[0]);
1385013884
13851 TEST_ASSERT(enq_cb_called == true, "Crypto enqueue callback not called");13885 TEST_ASSERT(deq_cb_called == true, "Crypto dequeue callback not called");
1385213886
13853 return TEST_SUCCESS;13887 return TEST_SUCCESS;
13854}13888}
diff --git a/app/test/test_cryptodev.h b/app/test/test_cryptodev.h
index f2c417a..feee8c3 100644
--- a/app/test/test_cryptodev.h
+++ b/app/test/test_cryptodev.h
@@ -90,7 +90,6 @@ struct crypto_testsuite_params {
90 struct rte_mempool *large_mbuf_pool;90 struct rte_mempool *large_mbuf_pool;
91 struct rte_mempool *op_mpool;91 struct rte_mempool *op_mpool;
92 struct rte_mempool *session_mpool;92 struct rte_mempool *session_mpool;
93 struct rte_mempool *session_priv_mpool;
94 struct rte_cryptodev_config conf;93 struct rte_cryptodev_config conf;
95 struct rte_cryptodev_qp_conf qp_conf;94 struct rte_cryptodev_qp_conf qp_conf;
9695
diff --git a/app/test/test_cryptodev_aes_test_vectors.h b/app/test/test_cryptodev_aes_test_vectors.h
index 7127156..505e603 100644
--- a/app/test/test_cryptodev_aes_test_vectors.h
+++ b/app/test/test_cryptodev_aes_test_vectors.h
@@ -833,11 +833,11 @@ static const struct blockcipher_test_data aes_test_data_19 = {
833 },833 },
834 .plaintext = {834 .plaintext = {
835 .data = plaintext_aes192ecb_192bytes,835 .data = plaintext_aes192ecb_192bytes,
836 .len = 64836 .len = 192
837 },837 },
838 .ciphertext = {838 .ciphertext = {
839 .data = ciphertext_aes192ecb_192bytes,839 .data = ciphertext_aes192ecb_192bytes,
840 .len = 64840 .len = 192
841 }841 }
842};842};
843843
@@ -5103,7 +5103,7 @@ static const struct blockcipher_test_case aes_cipheronly_test_cases[] = {
5103 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,5103 .op_mask = BLOCKCIPHER_TEST_OP_ENCRYPT,
5104 },5104 },
5105 {5105 {
5106 .test_descr = "AES-256-ECB Decryption (192-byte plaintext)",5106 .test_descr = "AES-256-ECB Decryption (256-byte plaintext)",
5107 .test_data = &aes_test_data_20,5107 .test_data = &aes_test_data_20,
5108 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,5108 .op_mask = BLOCKCIPHER_TEST_OP_DECRYPT,
5109 },5109 },
diff --git a/app/test/test_dmadev_api.c b/app/test/test_dmadev_api.c
index 4a181af..0e66784 100644
--- a/app/test/test_dmadev_api.c
+++ b/app/test/test_dmadev_api.c
@@ -441,7 +441,9 @@ test_dma_completed(void)
441 setup_memory();441 setup_memory();
442442
443 /* Check enqueue without submit */443 /* Check enqueue without submit */
444 ret = rte_dma_copy(test_dev_id, 0, (rte_iova_t)src, (rte_iova_t)dst,444 ret = rte_dma_copy(test_dev_id, 0,
445 rte_malloc_virt2iova(src),
446 rte_malloc_virt2iova(dst),
445 TEST_MEMCPY_SIZE, 0);447 TEST_MEMCPY_SIZE, 0);
446 RTE_TEST_ASSERT_EQUAL(ret, 0, "Failed to enqueue copy, %d", ret);448 RTE_TEST_ASSERT_EQUAL(ret, 0, "Failed to enqueue copy, %d", ret);
447 rte_delay_us_sleep(TEST_WAIT_US_VAL);449 rte_delay_us_sleep(TEST_WAIT_US_VAL);
@@ -463,7 +465,9 @@ test_dma_completed(void)
463 setup_memory();465 setup_memory();
464466
465 /* Check for enqueue with submit */467 /* Check for enqueue with submit */
466 ret = rte_dma_copy(test_dev_id, 0, (rte_iova_t)src, (rte_iova_t)dst,468 ret = rte_dma_copy(test_dev_id, 0,
469 rte_malloc_virt2iova(src),
470 rte_malloc_virt2iova(dst),
467 TEST_MEMCPY_SIZE, RTE_DMA_OP_FLAG_SUBMIT);471 TEST_MEMCPY_SIZE, RTE_DMA_OP_FLAG_SUBMIT);
468 RTE_TEST_ASSERT_EQUAL(ret, 1, "Failed to enqueue copy, %d", ret);472 RTE_TEST_ASSERT_EQUAL(ret, 1, "Failed to enqueue copy, %d", ret);
469 rte_delay_us_sleep(TEST_WAIT_US_VAL);473 rte_delay_us_sleep(TEST_WAIT_US_VAL);
@@ -498,7 +502,9 @@ test_dma_completed_status(void)
498 RTE_TEST_ASSERT_SUCCESS(ret, "Failed to start, %d", ret);502 RTE_TEST_ASSERT_SUCCESS(ret, "Failed to start, %d", ret);
499503
500 /* Check for enqueue with submit */504 /* Check for enqueue with submit */
501 ret = rte_dma_copy(test_dev_id, 0, (rte_iova_t)src, (rte_iova_t)dst,505 ret = rte_dma_copy(test_dev_id, 0,
506 rte_malloc_virt2iova(src),
507 rte_malloc_virt2iova(dst),
502 TEST_MEMCPY_SIZE, RTE_DMA_OP_FLAG_SUBMIT);508 TEST_MEMCPY_SIZE, RTE_DMA_OP_FLAG_SUBMIT);
503 RTE_TEST_ASSERT_EQUAL(ret, 0, "Failed to enqueue copy, %d", ret);509 RTE_TEST_ASSERT_EQUAL(ret, 0, "Failed to enqueue copy, %d", ret);
504 rte_delay_us_sleep(TEST_WAIT_US_VAL);510 rte_delay_us_sleep(TEST_WAIT_US_VAL);
@@ -517,7 +523,9 @@ test_dma_completed_status(void)
517 RTE_TEST_ASSERT_EQUAL(cpl_ret, 0, "Failed to completed status");523 RTE_TEST_ASSERT_EQUAL(cpl_ret, 0, "Failed to completed status");
518524
519 /* Check for enqueue with submit again */525 /* Check for enqueue with submit again */
520 ret = rte_dma_copy(test_dev_id, 0, (rte_iova_t)src, (rte_iova_t)dst,526 ret = rte_dma_copy(test_dev_id, 0,
527 rte_malloc_virt2iova(src),
528 rte_malloc_virt2iova(dst),
521 TEST_MEMCPY_SIZE, RTE_DMA_OP_FLAG_SUBMIT);529 TEST_MEMCPY_SIZE, RTE_DMA_OP_FLAG_SUBMIT);
522 RTE_TEST_ASSERT_EQUAL(ret, 1, "Failed to enqueue copy, %d", ret);530 RTE_TEST_ASSERT_EQUAL(ret, 1, "Failed to enqueue copy, %d", ret);
523 rte_delay_us_sleep(TEST_WAIT_US_VAL);531 rte_delay_us_sleep(TEST_WAIT_US_VAL);
diff --git a/app/test/test_eal_flags.c b/app/test/test_eal_flags.c
index 6cb4b06..767cf14 100644
--- a/app/test/test_eal_flags.c
+++ b/app/test/test_eal_flags.c
@@ -677,8 +677,8 @@ test_missing_c_flag(void)
677677
678 if (rte_lcore_is_enabled(0) && rte_lcore_is_enabled(1) &&678 if (rte_lcore_is_enabled(0) && rte_lcore_is_enabled(1) &&
679 rte_lcore_is_enabled(2) && rte_lcore_is_enabled(3) &&679 rte_lcore_is_enabled(2) && rte_lcore_is_enabled(3) &&
680 rte_lcore_is_enabled(3) && rte_lcore_is_enabled(5) &&680 rte_lcore_is_enabled(4) && rte_lcore_is_enabled(5) &&
681 rte_lcore_is_enabled(4) && rte_lcore_is_enabled(7) &&681 rte_lcore_is_enabled(6) && rte_lcore_is_enabled(7) &&
682 launch_proc(argv29) != 0) {682 launch_proc(argv29) != 0) {
683 printf("Error - "683 printf("Error - "
684 "process did not run ok with valid corelist value\n");684 "process did not run ok with valid corelist value\n");
diff --git a/app/test/test_event_crypto_adapter.c b/app/test/test_event_crypto_adapter.c
index 0c56744..e733df7 100644
--- a/app/test/test_event_crypto_adapter.c
+++ b/app/test/test_event_crypto_adapter.c
@@ -1154,21 +1154,17 @@ configure_cryptodev(void)
11541154
1155static inline void1155static inline void
1156evdev_set_conf_values(struct rte_event_dev_config *dev_conf,1156evdev_set_conf_values(struct rte_event_dev_config *dev_conf,
1157 struct rte_event_dev_info *info)1157 const struct rte_event_dev_info *info)
1158{1158{
1159 memset(dev_conf, 0, sizeof(struct rte_event_dev_config));1159 *dev_conf = (struct rte_event_dev_config) {
1160 dev_conf->dequeue_timeout_ns = info->min_dequeue_timeout_ns;1160 .dequeue_timeout_ns = info->min_dequeue_timeout_ns,
1161 dev_conf->nb_event_ports = NB_TEST_PORTS;1161 .nb_event_ports = NB_TEST_PORTS,
1162 dev_conf->nb_event_queues = NB_TEST_QUEUES;1162 .nb_event_queues = NB_TEST_QUEUES,
1163 dev_conf->nb_event_queue_flows = info->max_event_queue_flows;1163 .nb_event_queue_flows = info->max_event_queue_flows,
1164 dev_conf->nb_event_port_dequeue_depth =1164 .nb_event_port_dequeue_depth = info->max_event_port_dequeue_depth,
1165 info->max_event_port_dequeue_depth;1165 .nb_event_port_enqueue_depth = info->max_event_port_enqueue_depth,
1166 dev_conf->nb_event_port_enqueue_depth =1166 .nb_events_limit = info->max_num_events,
1167 info->max_event_port_enqueue_depth;1167 };
1168 dev_conf->nb_event_port_enqueue_depth =
1169 info->max_event_port_enqueue_depth;
1170 dev_conf->nb_events_limit =
1171 info->max_num_events;
1172}1168}
11731169
1174static int1170static int
diff --git a/app/test/test_event_dma_adapter.c b/app/test/test_event_dma_adapter.c
index 35b417b..de0d671 100644
--- a/app/test/test_event_dma_adapter.c
+++ b/app/test/test_event_dma_adapter.c
@@ -276,7 +276,10 @@ test_op_forward_mode(void)
276 memset(&ev[i], 0, sizeof(struct rte_event));276 memset(&ev[i], 0, sizeof(struct rte_event));
277 ev[i].event = 0;277 ev[i].event = 0;
278 ev[i].event_type = RTE_EVENT_TYPE_DMADEV;278 ev[i].event_type = RTE_EVENT_TYPE_DMADEV;
279 ev[i].queue_id = TEST_DMA_EV_QUEUE_ID;279 if (params.internal_port_op_fwd)
280 ev[i].queue_id = TEST_APP_EV_QUEUE_ID;
281 else
282 ev[i].queue_id = TEST_DMA_EV_QUEUE_ID;
280 ev[i].sched_type = RTE_SCHED_TYPE_ATOMIC;283 ev[i].sched_type = RTE_SCHED_TYPE_ATOMIC;
281 ev[i].flow_id = 0xAABB;284 ev[i].flow_id = 0xAABB;
282 ev[i].event_ptr = op;285 ev[i].event_ptr = op;
diff --git a/app/test/test_event_eth_rx_adapter.c b/app/test/test_event_eth_rx_adapter.c
index 0233c87..9a60e34 100644
--- a/app/test/test_event_eth_rx_adapter.c
+++ b/app/test/test_event_eth_rx_adapter.c
@@ -230,7 +230,6 @@ testsuite_setup(void)
230 }230 }
231231
232 struct rte_event_dev_config config = {232 struct rte_event_dev_config config = {
233 .nb_event_queues = 1,
234 .nb_event_ports = 1,233 .nb_event_ports = 1,
235 };234 };
236235
@@ -242,6 +241,7 @@ testsuite_setup(void)
242 dev_info.max_event_port_enqueue_depth;241 dev_info.max_event_port_enqueue_depth;
243 config.nb_events_limit =242 config.nb_events_limit =
244 dev_info.max_num_events;243 dev_info.max_num_events;
244 config.nb_event_queues = dev_info.max_event_queues;
245 err = rte_event_dev_configure(TEST_DEV_ID, &config);245 err = rte_event_dev_configure(TEST_DEV_ID, &config);
246 TEST_ASSERT(err == 0, "Event device initialization failed err %d\n",246 TEST_ASSERT(err == 0, "Event device initialization failed err %d\n",
247 err);247 err);
diff --git a/app/test/test_eventdev.c b/app/test/test_eventdev.c
index e4e234d..9a6c8f4 100644
--- a/app/test/test_eventdev.c
+++ b/app/test/test_eventdev.c
@@ -1189,6 +1189,7 @@ test_eventdev_profile_switch(void)
1189 ev.op = RTE_EVENT_OP_NEW;1189 ev.op = RTE_EVENT_OP_NEW;
1190 ev.flow_id = 0;1190 ev.flow_id = 0;
1191 ev.u64 = 0xBADF00D0;1191 ev.u64 = 0xBADF00D0;
1192 ev.sched_type = RTE_SCHED_TYPE_PARALLEL;
1192 rc = rte_event_enqueue_burst(TEST_DEV_ID, 0, &ev, 1);1193 rc = rte_event_enqueue_burst(TEST_DEV_ID, 0, &ev, 1);
1193 TEST_ASSERT(rc == 1, "Failed to enqueue event");1194 TEST_ASSERT(rc == 1, "Failed to enqueue event");
1194 ev.queue_id = 1;1195 ev.queue_id = 1;
diff --git a/app/test/test_link_bonding.c b/app/test/test_link_bonding.c
index 4d54706..19b0647 100644
--- a/app/test/test_link_bonding.c
+++ b/app/test/test_link_bonding.c
@@ -792,7 +792,7 @@ test_set_primary_member(void)
792 &read_mac_addr),792 &read_mac_addr),
793 "Failed to get mac address (port %d)",793 "Failed to get mac address (port %d)",
794 test_params->bonding_port_id);794 test_params->bonding_port_id);
795 TEST_ASSERT_SUCCESS(memcmp(&read_mac_addr, &read_mac_addr,795 TEST_ASSERT_SUCCESS(memcmp(expected_mac_addr, &read_mac_addr,
796 sizeof(read_mac_addr)),796 sizeof(read_mac_addr)),
797 "bonding port mac address not set to that of primary port\n");797 "bonding port mac address not set to that of primary port\n");
798798
@@ -2246,54 +2246,48 @@ test_activebackup_rx_burst(void)
2246 virtual_ethdev_add_mbufs_to_rx_queue(test_params->member_port_ids[i],2246 virtual_ethdev_add_mbufs_to_rx_queue(test_params->member_port_ids[i],
2247 &gen_pkt_burst[0], burst_size);2247 &gen_pkt_burst[0], burst_size);
22482248
2249 /* Expect burst if this was the active port, zero otherwise */
2250 unsigned int rx_expect
2251 = (test_params->member_port_ids[i] == primary_port) ? burst_size : 0;
2252
2249 /* Call rx burst on bonding device */2253 /* Call rx burst on bonding device */
2250 TEST_ASSERT_EQUAL(rte_eth_rx_burst(test_params->bonding_port_id, 0,2254 unsigned int rx_count = rte_eth_rx_burst(test_params->bonding_port_id, 0,
2251 &rx_pkt_burst[0], MAX_PKT_BURST), burst_size,2255 &rx_pkt_burst[0], MAX_PKT_BURST);
2252 "rte_eth_rx_burst failed");2256 TEST_ASSERT_EQUAL(rx_count, rx_expect,
2257 "rte_eth_rx_burst (%u) not as expected (%u)",
2258 rx_count, rx_expect);
22532259
2254 if (test_params->member_port_ids[i] == primary_port) {2260 /* Verify bonding device rx count */
2255 /* Verify bonding device rx count */2261 rte_eth_stats_get(test_params->bonding_port_id, &port_stats);
2256 rte_eth_stats_get(test_params->bonding_port_id, &port_stats);2262 TEST_ASSERT_EQUAL(port_stats.ipackets, rx_expect,
2257 TEST_ASSERT_EQUAL(port_stats.ipackets, (uint64_t)burst_size,2263 "Bonding Port (%d) ipackets value (%u) not as expected (%u)",
2258 "Bonding Port (%d) ipackets value (%u) not as expected (%d)",
2259 test_params->bonding_port_id,2264 test_params->bonding_port_id,
2260 (unsigned int)port_stats.ipackets, burst_size);2265 (unsigned int)port_stats.ipackets, rx_expect);
22612266
2262 /* Verify bonding member devices rx count */2267 for (j = 0; j < test_params->bonding_member_count; j++) {
2263 for (j = 0; j < test_params->bonding_member_count; j++) {2268 rte_eth_stats_get(test_params->member_port_ids[j], &port_stats);
2264 rte_eth_stats_get(test_params->member_port_ids[j], &port_stats);2269 if (i == j) {
2265 if (i == j) {2270 TEST_ASSERT_EQUAL(port_stats.ipackets, rx_expect,
2266 TEST_ASSERT_EQUAL(port_stats.ipackets, (uint64_t)burst_size,2271 "Member Port (%d) ipackets (%u) not as expected (%d)",
2267 "Member Port (%d) ipackets value (%u) not as "2272 test_params->member_port_ids[i],
2268 "expected (%d)",2273 (unsigned int)port_stats.ipackets, rx_expect);
2269 test_params->member_port_ids[i],2274
2270 (unsigned int)port_stats.ipackets,2275 /* reset member device stats */
2271 burst_size);2276 rte_eth_stats_reset(test_params->member_port_ids[j]);
2272 } else {2277 } else {
2273 TEST_ASSERT_EQUAL(port_stats.ipackets, 0,
2274 "Member Port (%d) ipackets value (%u) not as "
2275 "expected (%d)\n",
2276 test_params->member_port_ids[i],
2277 (unsigned int)port_stats.ipackets, 0);
2278 }
2279 }
2280 } else {
2281 for (j = 0; j < test_params->bonding_member_count; j++) {
2282 rte_eth_stats_get(test_params->member_port_ids[j], &port_stats);
2283 TEST_ASSERT_EQUAL(port_stats.ipackets, 0,2278 TEST_ASSERT_EQUAL(port_stats.ipackets, 0,
2284 "Member Port (%d) ipackets value (%u) not as expected "2279 "Member Port (%d) ipackets (%u) not as expected (%d)",
2285 "(%d)", test_params->member_port_ids[i],2280 test_params->member_port_ids[i],
2286 (unsigned int)port_stats.ipackets, 0);2281 (unsigned int)port_stats.ipackets, 0);
2287 }2282 }
2288 }2283 }
22892284
2290 /* free mbufs */2285 /* extract packets queued to inactive member */
2291 for (i = 0; i < MAX_PKT_BURST; i++) {2286 if (rx_count == 0)
2292 if (rx_pkt_burst[i] != NULL) {2287 rx_count = rte_eth_rx_burst(test_params->member_port_ids[i], 0,
2293 rte_pktmbuf_free(rx_pkt_burst[i]);2288 rx_pkt_burst, MAX_PKT_BURST);
2294 rx_pkt_burst[i] = NULL;2289 if (rx_count > 0)
2295 }2290 rte_pktmbuf_free_bulk(rx_pkt_burst, rx_count);
2296 }
22972291
2298 /* reset bonding device stats */2292 /* reset bonding device stats */
2299 rte_eth_stats_reset(test_params->bonding_port_id);2293 rte_eth_stats_reset(test_params->bonding_port_id);
diff --git a/app/test/test_link_bonding_rssconf.c b/app/test/test_link_bonding_rssconf.c
index 3c9c824..2cb689b 100644
--- a/app/test/test_link_bonding_rssconf.c
+++ b/app/test/test_link_bonding_rssconf.c
@@ -616,7 +616,6 @@ test_setup(void)
616 mac_addr.addr_bytes[5] = 0x10 + port->port_id;616 mac_addr.addr_bytes[5] = 0x10 + port->port_id;
617 rte_eth_dev_default_mac_addr_set(port->port_id, &mac_addr);617 rte_eth_dev_default_mac_addr_set(port->port_id, &mac_addr);
618618
619 rte_eth_dev_info_get(port->port_id, &port->dev_info);
620 retval = rte_eth_dev_info_get(port->port_id, &port->dev_info);619 retval = rte_eth_dev_info_get(port->port_id, &port->dev_info);
621 TEST_ASSERT((retval == 0),620 TEST_ASSERT((retval == 0),
622 "Error during getting device (port %u) info: %s\n",621 "Error during getting device (port %u) info: %s\n",
diff --git a/app/test/test_pcapng.c b/app/test/test_pcapng.c
index 89535ef..5cdde05 100644
--- a/app/test/test_pcapng.c
+++ b/app/test/test_pcapng.c
@@ -102,6 +102,14 @@ mbuf1_prepare(struct dummy_mbuf *dm, uint32_t plen)
102 pkt.udp.dgram_len = rte_cpu_to_be_16(plen);102 pkt.udp.dgram_len = rte_cpu_to_be_16(plen);
103103
104 memcpy(rte_pktmbuf_mtod(dm->mb, void *), &pkt, sizeof(pkt));104 memcpy(rte_pktmbuf_mtod(dm->mb, void *), &pkt, sizeof(pkt));
105
106 /* Idea here is to create mbuf chain big enough that after mbuf deep copy they won't be
107 * compressed into single mbuf to properly test store of chained mbufs
108 */
109 dummy_mbuf_prep(&dm->mb[1], dm->buf[1], sizeof(dm->buf[1]), pkt_len);
110 dummy_mbuf_prep(&dm->mb[2], dm->buf[2], sizeof(dm->buf[2]), pkt_len);
111 rte_pktmbuf_chain(&dm->mb[0], &dm->mb[1]);
112 rte_pktmbuf_chain(&dm->mb[0], &dm->mb[2]);
105}113}
106114
107static int115static int
@@ -117,7 +125,7 @@ test_setup(void)
117125
118 /* Make a pool for cloned packets */126 /* Make a pool for cloned packets */
119 mp = rte_pktmbuf_pool_create_by_ops("pcapng_test_pool",127 mp = rte_pktmbuf_pool_create_by_ops("pcapng_test_pool",
120 MAX_BURST, 0, 0,128 MAX_BURST * 32, 0, 0,
121 rte_pcapng_mbuf_size(pkt_len) + 128,129 rte_pcapng_mbuf_size(pkt_len) + 128,
122 SOCKET_ID_ANY, "ring_mp_sc");130 SOCKET_ID_ANY, "ring_mp_sc");
123 if (mp == NULL) {131 if (mp == NULL) {
@@ -155,7 +163,7 @@ fill_pcapng_file(rte_pcapng_t *pcapng, unsigned int num_packets)
155 for (i = 0; i < burst_size; i++) {163 for (i = 0; i < burst_size; i++) {
156 struct rte_mbuf *mc;164 struct rte_mbuf *mc;
157165
158 mc = rte_pcapng_copy(port_id, 0, orig, mp, pkt_len,166 mc = rte_pcapng_copy(port_id, 0, orig, mp, rte_pktmbuf_pkt_len(orig),
159 RTE_PCAPNG_DIRECTION_IN, NULL);167 RTE_PCAPNG_DIRECTION_IN, NULL);
160 if (mc == NULL) {168 if (mc == NULL) {
161 fprintf(stderr, "Cannot copy packet\n");169 fprintf(stderr, "Cannot copy packet\n");
diff --git a/app/test/test_power_cpufreq.c b/app/test/test_power_cpufreq.c
index 619b281..edbd344 100644
--- a/app/test/test_power_cpufreq.c
+++ b/app/test/test_power_cpufreq.c
@@ -9,6 +9,7 @@
9#include <string.h>9#include <string.h>
10#include <inttypes.h>10#include <inttypes.h>
11#include <rte_cycles.h>11#include <rte_cycles.h>
12#include <rte_lcore.h>
1213
13#include "test.h"14#include "test.h"
1415
@@ -46,9 +47,10 @@ test_power_caps(void)
4647
47static uint32_t total_freq_num;48static uint32_t total_freq_num;
48static uint32_t freqs[TEST_POWER_FREQS_NUM_MAX];49static uint32_t freqs[TEST_POWER_FREQS_NUM_MAX];
50static uint32_t cpu_id;
4951
50static int52static int
51check_cur_freq(unsigned int lcore_id, uint32_t idx, bool turbo)53check_cur_freq(__rte_unused unsigned int lcore_id, uint32_t idx, bool turbo)
52{54{
53#define TEST_POWER_CONVERT_TO_DECIMAL 1055#define TEST_POWER_CONVERT_TO_DECIMAL 10
54#define MAX_LOOP 10056#define MAX_LOOP 100
@@ -62,13 +64,13 @@ check_cur_freq(unsigned int lcore_id, uint32_t idx, bool turbo)
62 int i;64 int i;
6365
64 if (snprintf(fullpath, sizeof(fullpath),66 if (snprintf(fullpath, sizeof(fullpath),
65 TEST_POWER_SYSFILE_CPUINFO_FREQ, lcore_id) < 0) {67 TEST_POWER_SYSFILE_CPUINFO_FREQ, cpu_id) < 0) {
66 return 0;68 return 0;
67 }69 }
68 f = fopen(fullpath, "r");70 f = fopen(fullpath, "r");
69 if (f == NULL) {71 if (f == NULL) {
70 if (snprintf(fullpath, sizeof(fullpath),72 if (snprintf(fullpath, sizeof(fullpath),
71 TEST_POWER_SYSFILE_SCALING_FREQ, lcore_id) < 0) {73 TEST_POWER_SYSFILE_SCALING_FREQ, cpu_id) < 0) {
72 return 0;74 return 0;
73 }75 }
74 f = fopen(fullpath, "r");76 f = fopen(fullpath, "r");
@@ -497,6 +499,19 @@ test_power_cpufreq(void)
497{499{
498 int ret = -1;500 int ret = -1;
499 enum power_management_env env;501 enum power_management_env env;
502 rte_cpuset_t lcore_cpus;
503
504 lcore_cpus = rte_lcore_cpuset(TEST_POWER_LCORE_ID);
505 if (CPU_COUNT(&lcore_cpus) != 1) {
506 printf("Power management doesn't support lcore %u mapping to %u CPUs\n",
507 TEST_POWER_LCORE_ID,
508 CPU_COUNT(&lcore_cpus));
509 return TEST_SKIPPED;
510 }
511 for (cpu_id = 0; cpu_id < CPU_SETSIZE; cpu_id++) {
512 if (CPU_ISSET(cpu_id, &lcore_cpus))
513 break;
514 }
500515
501 /* Test initialisation of a valid lcore */516 /* Test initialisation of a valid lcore */
502 ret = rte_power_init(TEST_POWER_LCORE_ID);517 ret = rte_power_init(TEST_POWER_LCORE_ID);
diff --git a/app/test/test_ring_stress_impl.h b/app/test/test_ring_stress_impl.h
index 62f046a..3730919 100644
--- a/app/test/test_ring_stress_impl.h
+++ b/app/test/test_ring_stress_impl.h
@@ -295,7 +295,7 @@ mt1_init(struct rte_ring **rng, void **data, uint32_t num)
295 *data = elm;295 *data = elm;
296296
297 /* alloc ring */297 /* alloc ring */
298 nr = 2 * num;298 nr = rte_align32pow2(2 * num);
299 sz = rte_ring_get_memsize(nr);299 sz = rte_ring_get_memsize(nr);
300 r = rte_zmalloc(NULL, sz, __alignof__(*r));300 r = rte_zmalloc(NULL, sz, __alignof__(*r));
301 if (r == NULL) {301 if (r == NULL) {
diff --git a/app/test/test_security_inline_proto_vectors.h b/app/test/test_security_inline_proto_vectors.h
index 3ac7558..0b4093d 100644
--- a/app/test/test_security_inline_proto_vectors.h
+++ b/app/test/test_security_inline_proto_vectors.h
@@ -498,10 +498,12 @@ test_vector_payload_populate(struct ip_reassembly_test_packet *pkt,
498 if (extra_data_sum) {498 if (extra_data_sum) {
499 proto = hdr->proto;499 proto = hdr->proto;
500 p += sizeof(struct rte_ipv6_hdr);500 p += sizeof(struct rte_ipv6_hdr);
501 while (proto != IPPROTO_FRAGMENT &&501 while (proto != IPPROTO_FRAGMENT) {
502 (proto = rte_ipv6_get_next_ext(p, proto, &ext_len) >= 0))502 proto = rte_ipv6_get_next_ext(p, proto, &ext_len);
503 if (proto < 0)
504 break;
503 p += ext_len;505 p += ext_len;
504506 }
505 /* Found fragment header, update the frag offset */507 /* Found fragment header, update the frag offset */
506 if (proto == IPPROTO_FRAGMENT) {508 if (proto == IPPROTO_FRAGMENT) {
507 frag_ext = (struct rte_ipv6_fragment_ext *)p;509 frag_ext = (struct rte_ipv6_fragment_ext *)p;
diff --git a/buildtools/get-numa-count.py b/buildtools/get-numa-count.py
index 2f24388..f8bea5b 100644
--- a/buildtools/get-numa-count.py
+++ b/buildtools/get-numa-count.py
@@ -11,7 +11,7 @@ import re
11if os.name == 'posix':11if os.name == 'posix':
12 if os.path.isdir('/sys/devices/system/node'):12 if os.path.isdir('/sys/devices/system/node'):
13 numa_nodes = glob.glob('/sys/devices/system/node/node*')13 numa_nodes = glob.glob('/sys/devices/system/node/node*')
14 numa_nodes.sort(key=lambda l: int(re.findall('\d+', l)[0]))14 numa_nodes.sort(key=lambda l: int(re.findall(r'\d+', l)[0]))
15 print(int(os.path.basename(numa_nodes[-1])[4:]) + 1)15 print(int(os.path.basename(numa_nodes[-1])[4:]) + 1)
16 else:16 else:
17 subprocess.run(['sysctl', '-n', 'vm.ndomains'], check=False)17 subprocess.run(['sysctl', '-n', 'vm.ndomains'], check=False)
diff --git a/buildtools/get-test-suites.py b/buildtools/get-test-suites.py
index c61f6a2..fd22d25 100644
--- a/buildtools/get-test-suites.py
+++ b/buildtools/get-test-suites.py
@@ -6,10 +6,10 @@ import sys
6import re6import re
77
8input_list = sys.argv[1:]8input_list = sys.argv[1:]
9test_def_regex = re.compile("REGISTER_([A-Z]+)_TEST\s*\(\s*([a-z0-9_]+)")9test_def_regex = re.compile(r"REGISTER_([A-Z]+)_TEST\s*\(\s*([a-z0-9_]+)")
10test_suites = {}10test_suites = {}
11# track tests not in any test suite.11# track tests not in any test suite.
12non_suite_regex = re.compile("REGISTER_TEST_COMMAND\s*\(\s*([a-z0-9_]+)")12non_suite_regex = re.compile(r"REGISTER_TEST_COMMAND\s*\(\s*([a-z0-9_]+)")
13non_suite_tests = []13non_suite_tests = []
1414
15def get_fast_test_params(test_name, ln):15def get_fast_test_params(test_name, ln):
diff --git a/config/meson.build b/config/meson.build
index 898b719..394d612 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -303,7 +303,7 @@ endif
303# enable extra warnings and disable any unwanted warnings303# enable extra warnings and disable any unwanted warnings
304# -Wall is added by default at warning level 1, and -Wextra304# -Wall is added by default at warning level 1, and -Wextra
305# at warning level 2 (DPDK default)305# at warning level 2 (DPDK default)
306warning_flags = [306global_cflags = [
307 # additional warnings in alphabetical order307 # additional warnings in alphabetical order
308 '-Wcast-qual',308 '-Wcast-qual',
309 '-Wdeprecated',309 '-Wdeprecated',
@@ -324,22 +324,25 @@ warning_flags = [
324 '-Wno-address-of-packed-member',324 '-Wno-address-of-packed-member',
325 '-Wno-packed-not-aligned',325 '-Wno-packed-not-aligned',
326 '-Wno-missing-field-initializers',326 '-Wno-missing-field-initializers',
327
328 # guarantee that all non-initialized parts of structure/union are zero
329 '-fzero-init-padding-bits=all',
327]330]
328if cc.get_id() == 'gcc' and cc.version().version_compare('>=10.0')331if cc.get_id() == 'gcc' and cc.version().version_compare('>=10.0')
329# FIXME: Bugzilla 396332# FIXME: Bugzilla 396
330 warning_flags += '-Wno-zero-length-bounds'333 global_cflags += '-Wno-zero-length-bounds'
331endif334endif
332if not dpdk_conf.get('RTE_ARCH_64')335if not dpdk_conf.get('RTE_ARCH_64')
333# for 32-bit, don't warn about casting a 32-bit pointer to 64-bit int - it's fine!!336# for 32-bit, don't warn about casting a 32-bit pointer to 64-bit int - it's fine!!
334 warning_flags += '-Wno-pointer-to-int-cast'337 global_cflags += '-Wno-pointer-to-int-cast'
335endif338endif
336if cc.get_id() == 'intel'339if cc.get_id() == 'intel'
337 warning_ids = [181, 188, 2203, 2279, 2557, 3179, 3656]340 warning_ids = [181, 188, 2203, 2279, 2557, 3179, 3656]
338 foreach i:warning_ids341 foreach i:warning_ids
339 warning_flags += '-diag-disable=@0@'.format(i)342 global_cflags += '-diag-disable=@0@'.format(i)
340 endforeach343 endforeach
341endif344endif
342foreach arg: warning_flags345foreach arg: global_cflags
343 if cc.has_argument(arg)346 if cc.has_argument(arg)
344 add_project_arguments(arg, language: 'c')347 add_project_arguments(arg, language: 'c')
345 endif348 endif
diff --git a/debian/changelog b/debian/changelog
index 7f1b84b..0fa6cbf 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
1dpdk (23.11.4-0ubuntu0.24.04.1) noble; urgency=medium
2
3 * Merge LTS stable release 23.11.4 (LP: #2067480)
4 - Full release notes are available at:
5 https://doc.dpdk.org/guides-23.11/rel_notes/release_23_11.html#id9
6
7 -- Arif Ali <arif.ali@canonical.com> Tue, 06 May 2025 06:56:35 +0000
8
1dpdk (23.11.2-0ubuntu0.24.04.1) noble; urgency=medium9dpdk (23.11.2-0ubuntu0.24.04.1) noble; urgency=medium
210
3 * Merge LTS stable release 23.11.2 (LP: #2067480)11 * Merge LTS stable release 23.11.2 (LP: #2067480)
diff --git a/devtools/check-meson.py b/devtools/check-meson.py
index 4b23388..9a33d8b 100755
--- a/devtools/check-meson.py
+++ b/devtools/check-meson.py
@@ -51,7 +51,7 @@ def check_indentation(filename, contents):
51 code, comments = split_code_comments(line)51 code, comments = split_code_comments(line)
52 if not code.strip():52 if not code.strip():
53 continue53 continue
54 if re.match('^ *\t', code):54 if re.match(r'^ *\t', code):
55 print(f'Error parsing {filename}:{lineno}, got some tabulation')55 print(f'Error parsing {filename}:{lineno}, got some tabulation')
56 if code.endswith('files('):56 if code.endswith('files('):
57 if infiles:57 if infiles:
diff --git a/devtools/git-log-fixes.sh b/devtools/git-log-fixes.sh
index 8a4a847..4690dd4 100755
--- a/devtools/git-log-fixes.sh
+++ b/devtools/git-log-fixes.sh
@@ -68,7 +68,7 @@ origin_version () # <origin_hash> ...
68{68{
69 for origin in $* ; do69 for origin in $* ; do
70 # check hash is valid70 # check hash is valid
71 git rev-parse -q --verify $1 >&- || continue71 git rev-parse -q --verify $origin >&- || continue
72 # get version of this bug origin72 # get version of this bug origin
73 local origver=$(commit_version $origin)73 local origver=$(commit_version $origin)
74 local roothashes="$(origin_filter $origin)"74 local roothashes="$(origin_filter $origin)"
diff --git a/doc/guides/nics/e1000em.rst b/doc/guides/nics/e1000em.rst
index 5e752a2..ed4f57e 100644
--- a/doc/guides/nics/e1000em.rst
+++ b/doc/guides/nics/e1000em.rst
@@ -153,3 +153,8 @@ The following are known limitations:
153#. Qemu e1000 only supports one interrupt source, so link and Rx interrupt should be exclusive.153#. Qemu e1000 only supports one interrupt source, so link and Rx interrupt should be exclusive.
154154
155#. Qemu e1000 does not support interrupt auto-clear, application should disable interrupt immediately when woken up.155#. Qemu e1000 does not support interrupt auto-clear, application should disable interrupt immediately when woken up.
156
157Secondary Process Support
158-------------------------
159
160Control plane operations are currently not supported in secondary processes.
diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst
index cf9fabb..d5147c5 100644
--- a/doc/guides/nics/features.rst
+++ b/doc/guides/nics/features.rst
@@ -149,6 +149,7 @@ Queue start/stop
149----------------149----------------
150150
151Supports starting/stopping a specific Rx/Tx queue of a port.151Supports starting/stopping a specific Rx/Tx queue of a port.
152This is required for use deferred start configuration option.
152153
153* **[implements] eth_dev_ops**: ``rx_queue_start``, ``rx_queue_stop``, ``tx_queue_start``,154* **[implements] eth_dev_ops**: ``rx_queue_start``, ``rx_queue_stop``, ``tx_queue_start``,
154 ``tx_queue_stop``.155 ``tx_queue_stop``.
@@ -716,14 +717,32 @@ Basic stats
716Support basic statistics such as: ipackets, opackets, ibytes, obytes,717Support basic statistics such as: ipackets, opackets, ibytes, obytes,
717imissed, ierrors, oerrors, rx_nombuf.718imissed, ierrors, oerrors, rx_nombuf.
718719
719And per queue stats: q_ipackets, q_opackets, q_ibytes, q_obytes, q_errors.
720
721These apply to all drivers.720These apply to all drivers.
722721
723* **[implements] eth_dev_ops**: ``stats_get``, ``stats_reset``.722* **[implements] eth_dev_ops**: ``stats_get``, ``stats_reset``.
724* **[related] API**: ``rte_eth_stats_get``, ``rte_eth_stats_reset()``.723* **[related] API**: ``rte_eth_stats_get``, ``rte_eth_stats_reset()``.
725724
726725
726.. _nic_features_stats_per_queue:
727
728Stats per queue
729---------------
730
731Supports per queue stats: q_ipackets, q_opackets, q_ibytes, q_obytes, q_errors.
732Statistics only supplied for first ``RTE_ETHDEV_QUEUE_STAT_CNTRS`` (16) queues.
733If driver does not support this feature the per queue stats will be zero.
734
735* **[implements] eth_dev_ops**: ``stats_get``, ``stats_reset``.
736* **[related] API**: ``rte_eth_stats_get``, ``rte_eth_stats_reset()``.
737
738May also support configuring per-queue stat counter mapping.
739Used by some drivers to workaround HW limitations.
740
741* **[implements] eth_dev_ops**: ``queue_stats_mapping_set``.
742* **[related] API**: ``rte_eth_dev_set_rx_queue_stats_mapping()``,
743 ``rte_eth_dev_set_tx_queue_stats_mapping()``.
744
745
727.. _nic_features_extended_stats:746.. _nic_features_extended_stats:
728747
729Extended stats748Extended stats
@@ -738,18 +757,6 @@ Supports Extended Statistics, changes from driver to driver.
738 ``rte_eth_xstats_get_names_by_id()``, ``rte_eth_xstats_get_id_by_name()``.757 ``rte_eth_xstats_get_names_by_id()``, ``rte_eth_xstats_get_id_by_name()``.
739758
740759
741.. _nic_features_stats_per_queue:
742
743Stats per queue
744---------------
745
746Supports configuring per-queue stat counter mapping.
747
748* **[implements] eth_dev_ops**: ``queue_stats_mapping_set``.
749* **[related] API**: ``rte_eth_dev_set_rx_queue_stats_mapping()``,
750 ``rte_eth_dev_set_tx_queue_stats_mapping()``.
751
752
753.. _nic_features_congestion_management:760.. _nic_features_congestion_management:
754761
755Congestion management762Congestion management
diff --git a/doc/guides/nics/features/gve.ini b/doc/guides/nics/features/gve.ini
index 838edd4..b28aecf 100644
--- a/doc/guides/nics/features/gve.ini
+++ b/doc/guides/nics/features/gve.ini
@@ -6,6 +6,7 @@
6[Features]6[Features]
7Speed capabilities = Y7Speed capabilities = Y
8Link status = Y8Link status = Y
9Queue start/stop = Y
9MTU update = Y10MTU update = Y
10TSO = Y11TSO = Y
11RSS hash = Y12RSS hash = Y
diff --git a/doc/guides/nics/features/mana.ini b/doc/guides/nics/features/mana.ini
index 42fd332..db555ff 100644
--- a/doc/guides/nics/features/mana.ini
+++ b/doc/guides/nics/features/mana.ini
@@ -8,7 +8,6 @@ Speed capabilities = P
8Link status = P8Link status = P
9Removal event = Y9Removal event = Y
10Rx interrupt = Y10Rx interrupt = Y
11Queue start/stop = Y
12RSS hash = Y11RSS hash = Y
13L3 checksum offload = Y12L3 checksum offload = Y
14L4 checksum offload = Y13L4 checksum offload = Y
diff --git a/doc/guides/nics/features/netvsc.ini b/doc/guides/nics/features/netvsc.ini
index de8c698..32df77a 100644
--- a/doc/guides/nics/features/netvsc.ini
+++ b/doc/guides/nics/features/netvsc.ini
@@ -7,7 +7,6 @@
7Speed capabilities = P7Speed capabilities = P
8Link status = Y8Link status = Y
9Free Tx mbuf on demand = Y9Free Tx mbuf on demand = Y
10Queue start/stop = Y
11Scattered Rx = Y10Scattered Rx = Y
12Promiscuous mode = Y11Promiscuous mode = Y
13Allmulticast mode = Y12Allmulticast mode = Y
diff --git a/doc/guides/nics/features/virtio.ini b/doc/guides/nics/features/virtio.ini
index a5eab49..f0a1a56 100644
--- a/doc/guides/nics/features/virtio.ini
+++ b/doc/guides/nics/features/virtio.ini
@@ -8,7 +8,6 @@ Speed capabilities = P
8Link status = Y8Link status = Y
9Link status event = Y9Link status event = Y
10Rx interrupt = Y10Rx interrupt = Y
11Queue start/stop = Y
12Scattered Rx = P11Scattered Rx = P
13Promiscuous mode = Y12Promiscuous mode = Y
14Allmulticast mode = Y13Allmulticast mode = Y
diff --git a/doc/guides/nics/features/vmxnet3.ini b/doc/guides/nics/features/vmxnet3.ini
index 971695f..749887d 100644
--- a/doc/guides/nics/features/vmxnet3.ini
+++ b/doc/guides/nics/features/vmxnet3.ini
@@ -7,7 +7,6 @@
7Speed capabilities = P7Speed capabilities = P
8Link status = Y8Link status = Y
9Link status event = Y9Link status event = Y
10Queue start/stop = Y
11MTU update = Y10MTU update = Y
12LRO = Y11LRO = Y
13TSO = Y12TSO = Y
diff --git a/doc/guides/nics/igb.rst b/doc/guides/nics/igb.rst
index e3a91c3..3f7a415 100644
--- a/doc/guides/nics/igb.rst
+++ b/doc/guides/nics/igb.rst
@@ -31,3 +31,16 @@ Features of the IGB PMD are:
31* Checksum offload31* Checksum offload
32* TCP segmentation offload32* TCP segmentation offload
33* Jumbo frames supported33* Jumbo frames supported
34
35Secondary Process Support
36-------------------------
37
38IGB Physical Function Driver
39~~~~~~~~~~~~~~~~~~~~~~~~~~~~
40
41Control plane operations are currently not supported in secondary processes.
42
43IGB Virtual Function Driver
44~~~~~~~~~~~~~~~~~~~~~~~~~~~
45
46Control plane operations are currently not supported in secondary processes.
diff --git a/doc/guides/nics/igc.rst b/doc/guides/nics/igc.rst
index c5af806..07a1b12 100644
--- a/doc/guides/nics/igc.rst
+++ b/doc/guides/nics/igc.rst
@@ -104,3 +104,8 @@ Add a rule to enable ipv4-udp RSS:
104.. code-block:: console104.. code-block:: console
105105
106 testpmd> flow create 0 ingress pattern end actions rss types ipv4-udp end / end106 testpmd> flow create 0 ingress pattern end actions rss types ipv4-udp end / end
107
108Secondary Process Support
109-------------------------
110
111Control plane operations are currently not supported in secondary processes.
diff --git a/doc/guides/nics/ionic.rst b/doc/guides/nics/ionic.rst
index e0eb1b5..a991a2c 100644
--- a/doc/guides/nics/ionic.rst
+++ b/doc/guides/nics/ionic.rst
@@ -7,11 +7,19 @@ IONIC Driver
7The ionic driver provides support for AMD Pensando server adapters.7The ionic driver provides support for AMD Pensando server adapters.
8It currently supports the below models:8It currently supports the below models:
99
10- DSC-25 dual-port 25G Distributed Services Card `(pdf) <https://pensandoio.secure.force.com/DownloadFile?id=a0L4T000004IKurUAG>`__10- DSC-25 dual-port 25G Distributed Services Card
11- DSC-100 dual-port 100G Distributed Services Card `(pdf) <https://pensandoio.secure.force.com/DownloadFile?id=a0L4T000004IKuwUAG>`__11 `(pdf) <https://pensandoio.secure.force.com/DownloadFile?id=a0L4T000004IKurUAG>`__
12- DSC-200 dual-port 200G Distributed Services Card `(pdf) <https://www.amd.com/system/files/documents/pensando-dsc-200-product-brief.pdf>`__12- DSC-100 dual-port 100G Distributed Services Card
1313 `(pdf) <https://pensandoio.secure.force.com/DownloadFile?id=a0L4T000004IKuwUAG>`__
14Please visit the AMD Pensando web site at https://www.amd.com/en/accelerators/pensando for more information.14- DSC2-200 dual-port 200G Distributed Services Card
15 `(pdf) <https://www.amd.com/content/dam/amd/en/documents/pensando-technical-docs/product-briefs/pensando-elba-product-brief.pdf>`__
16- DSC3-400 dual-port 400G Distributed Services Card
17 `(pdf) <https://www.amd.com/content/dam/amd/en/documents/pensando-technical-docs/product-briefs/pensando-dsc3-product-brief.pdf>`__
18
19Please visit the
20`AMD Pensando Networking
21<https://www.amd.com/en/products/accelerators/pensando.html>`_
22web site for more information.
1523
16Identifying the Adapter24Identifying the Adapter
17-----------------------25-----------------------
diff --git a/doc/guides/nics/ixgbe.rst b/doc/guides/nics/ixgbe.rst
index 14573b5..d54c20e 100644
--- a/doc/guides/nics/ixgbe.rst
+++ b/doc/guides/nics/ixgbe.rst
@@ -68,13 +68,11 @@ Ensure that the following pre-conditions are satisfied:
6868
69* (rxq->nb_rx_desc % rxq->rx_free_thresh) == 069* (rxq->nb_rx_desc % rxq->rx_free_thresh) == 0
7070
71* rxq->nb_rx_desc < (IXGBE_MAX_RING_DESC - RTE_PMD_IXGBE_RX_MAX_BURST)71* rxq->nb_rx_desc >= IXGBE_MIN_RING_DESC
7272
73These conditions are checked in the code.73* rxq->nb_rx_desc <= IXGBE_MAX_RING_DESC
7474
75Scattered packets are not supported in this mode.75These conditions are checked in the code.
76If an incoming packet is greater than the maximum acceptable length of one "mbuf" data size (by default, the size is 2 KB),
77vPMD for RX would be disabled.
7876
79By default, IXGBE_MAX_RING_DESC is set to 4096 and RTE_PMD_IXGBE_RX_MAX_BURST is set to 32.77By default, IXGBE_MAX_RING_DESC is set to 4096 and RTE_PMD_IXGBE_RX_MAX_BURST is set to 32.
8078
@@ -459,3 +457,17 @@ show bypass config
459Show the bypass configuration for a bypass enabled NIC using the lowest port on the NIC::457Show the bypass configuration for a bypass enabled NIC using the lowest port on the NIC::
460458
461 testpmd> show bypass config (port_id)459 testpmd> show bypass config (port_id)
460
461
462Secondary Process Support
463-------------------------
464
465IXGBE Physical Function Driver
466~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
467
468Control plane operations are currently not supported in secondary processes.
469
470IXGBE Virtual Function Driver
471~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
472
473Control plane operations are currently not supported in secondary processes.
diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
index 2c59b24..d1c3284 100644
--- a/doc/guides/nics/mlx5.rst
+++ b/doc/guides/nics/mlx5.rst
@@ -1874,6 +1874,77 @@ directly but neither destroyed nor flushed.
1874The application should re-create the flows as required after the port restart.1874The application should re-create the flows as required after the port restart.
18751875
18761876
1877Notes for flow counters
1878-----------------------
1879
1880mlx5 PMD supports the ``COUNT`` flow action,
1881which provides an ability to count packets (and bytes)
1882matched against a given flow rule.
1883This section describes the high level overview of
1884how this support is implemented and limitations.
1885
1886HW steering flow engine
1887~~~~~~~~~~~~~~~~~~~~~~~
1888
1889Flow counters are allocated from HW in bulks.
1890A set of bulks forms a flow counter pool managed by PMD.
1891When flow counters are queried from HW,
1892each counter is identified by an offset in a given bulk.
1893Querying HW flow counter requires sending a request to HW,
1894which will request a read of counter values for given offsets.
1895HW will asynchronously provide these values through a DMA write.
1896
1897In order to optimize HW to SW communication,
1898these requests are handled in a separate counter service thread
1899spawned by mlx5 PMD.
1900This service thread will refresh the counter values stored in memory,
1901in cycles, each spanning ``svc_cycle_time`` milliseconds.
1902By default, ``svc_cycle_time`` is set to 500.
1903When applications query the ``COUNT`` flow action,
1904PMD returns the values stored in host memory.
1905
1906mlx5 PMD manages 3 global rings of allocated counter offsets:
1907
1908- ``free`` ring - Counters which were not used at all.
1909- ``wait_reset`` ring - Counters which were used in some flow rules,
1910 but were recently freed (flow rule was destroyed
1911 or an indirect action was destroyed).
1912 Since the count value might have changed
1913 between the last counter service thread cycle and the moment it was freed,
1914 the value in host memory might be stale.
1915 During the next service thread cycle,
1916 such counters will be moved to ``reuse`` ring.
1917- ``reuse`` ring - Counters which were used at least once
1918 and can be reused in new flow rules.
1919
1920When counters are assigned to a flow rule (or allocated to indirect action),
1921the PMD first tries to fetch a counter from ``reuse`` ring.
1922If it's empty, the PMD fetches a counter from ``free`` ring.
1923
1924The counter service thread works as follows:
1925
1926#. Record counters stored in ``wait_reset`` ring.
1927#. Read values of all counters which were used at least once
1928 or are currently in use.
1929#. Move recorded counters from ``wait_reset`` to ``reuse`` ring.
1930#. Sleep for ``(query time) - svc_cycle_time`` milliseconds
1931#. Repeat.
1932
1933Because freeing a counter (by destroying a flow rule or destroying indirect action)
1934does not immediately make it available for the application,
1935the PMD might return:
1936
1937- ``ENOENT`` if no counter is available in ``free``, ``reuse``
1938 or ``wait_reset`` rings.
1939 No counter will be available until the application releases some of them.
1940- ``EAGAIN`` if no counter is available in ``free`` and ``reuse`` rings,
1941 but there are counters in ``wait_reset`` ring.
1942 This means that after the next service thread cycle new counters will be available.
1943
1944The application has to be aware that flow rule create or indirect action create
1945might need be retried.
1946
1947
1877Notes for hairpin1948Notes for hairpin
1878-----------------1949-----------------
18791950
diff --git a/doc/guides/rel_notes/release_23_11.rst b/doc/guides/rel_notes/release_23_11.rst
index 538e06a..4de4b68 100644
--- a/doc/guides/rel_notes/release_23_11.rst
+++ b/doc/guides/rel_notes/release_23_11.rst
@@ -1410,3 +1410,592 @@ Tested Platforms
1410* Failed to add vdev when launch dpdk-pdump with vdev secondary process1410* Failed to add vdev when launch dpdk-pdump with vdev secondary process
14111411
1412 Fix available in upstream.1412 Fix available in upstream.
1413
141423.11.3 Release Notes
1415---------------------
1416
1417
141823.11.3 Fixes
1419~~~~~~~~~~~~~
1420
1421* 23.11.3-rc1
1422* Revert "test/bonding: fix loop on members"
1423* app/dumpcap: fix handling of jumbo frames
1424* app/dumpcap: remove unused struct array
1425* app/procinfo: fix leak on exit
1426* app/testpmd: avoid potential outside of array reference
1427* app/testpmd: fix aged flow destroy
1428* app/testpmd: remove flex item init command leftover
1429* app/testpmd: remove redundant policy action condition
1430* app/testpmd: remove unnecessary cast
1431* baseband/acc: fix access to deallocated mem
1432* baseband/acc: fix ring memory allocation
1433* baseband/acc: fix soft output bypass RM
1434* baseband/la12xx: fix use after free in modem config
1435* bpf: fix free function mismatch if convert fails
1436* build: remove version check on compiler links function
1437* bus/dpaa: fix PFDRs leaks due to FQRNIs
1438* bus/dpaa: fix VSP for 1G fm1-mac9 and 10
1439* bus/dpaa: fix lock condition during error handling
1440* bus/dpaa: fix the fman details status
1441* bus/fslmc: fix Coverity warnings in QBMAN
1442* bus/vdev: revert fix devargs in secondary process
1443* common/cnxk: fix CPT HW word size for outbound SA
1444* common/cnxk: fix IRQ reconfiguration
1445* common/cnxk: fix MAC address change with active VF
1446* common/cnxk: fix base log level
1447* common/cnxk: fix build on Ubuntu 24.04
1448* common/cnxk: fix double free of flow aging resources
1449* common/cnxk: fix inline CTX write
1450* common/dpaax/caamflib: enable fallthrough warnings
1451* common/dpaax/caamflib: fix PDCP SNOW-ZUC watchdog
1452* common/idpf: fix AVX-512 pointer copy on 32-bit
1453* common/idpf: fix use after free in mailbox init
1454* common/mlx5: fix error CQE handling for 128 bytes CQE
1455* common/mlx5: fix misalignment
1456* common/qat: fix use after free in device probe
1457* crypto/bcmfs: fix free function mismatch
1458* crypto/dpaa2_sec: fix memory leak
1459* crypto/openssl: fix 3DES-CTR with big endian CPUs
1460* crypto/openssl: fix potential string overflow
1461* crypto/qat: fix ECDSA session handling
1462* crypto/qat: fix modexp/inv length
1463* crypto/scheduler: fix session size computation
1464* dev: fix callback lookup when unregistering device
1465* devtools: fix check of multiple commits fixed at once
1466* dma/idxd: fix free function mismatch in device probe
1467* dmadev: fix potential null pointer access
1468* doc: correct definition of stats per queue feature
1469* drivers: remove redundant newline from logs
1470* eal/unix: optimize thread creation
1471* eal/x86: fix 32-bit write combining store
1472* ethdev: fix overflow in descriptor count
1473* ethdev: verify queue ID in Tx done cleanup
1474* event/cnxk: fix OOP handling in event mode
1475* event/cnxk: fix Rx timestamp handling
1476* event/cnxk: fix free function mismatch in port config
1477* event/octeontx: fix possible integer overflow
1478* eventdev: fix possible array underflow/overflow
1479* examples/eventdev: fix queue crash with generic pipeline
1480* examples/ipsec-secgw: fix dequeue count from cryptodev
1481* examples/l2fwd-event: fix spinlock handling
1482* examples/l3fwd-power: fix options parsing overflow
1483* examples/l3fwd: fix read beyond boundaries
1484* examples/ntb: check info query return
1485* examples/vhost: fix free function mismatch
1486* fib6: add runtime checks in AVX512 lookup
1487* fib: fix AVX512 lookup
1488* hash: fix thash LFSR initialization
1489* log: remove per line log helper
1490* member: fix choice of bucket for displacement
1491* ml/cnxk: fix handling of TVM model I/O
1492* net/bnx2x: fix always true expression
1493* net/bnx2x: fix duplicate branch
1494* net/bnx2x: fix possible infinite loop at startup
1495* net/bnx2x: remove dead conditional
1496* net/bnxt/tf_core: fix TCAM manager data corruption
1497* net/bnxt/tf_core: fix Thor TF EM key size check
1498* net/bnxt/tf_core: fix WC TCAM multi-slice delete
1499* net/bnxt/tf_core: fix slice count in case of HA entry move
1500* net/bnxt: fix TCP and UDP checksum flags
1501* net/bnxt: fix bad action offset in Tx BD
1502* net/bnxt: fix reading SFF-8436 SFP EEPROMs
1503* net/cnxk: fix OOP handling for inbound packets
1504* net/cnxk: fix Rx offloads to handle timestamp
1505* net/cnxk: fix Rx timestamp handling for VF
1506* net/cnxk: fix build on Ubuntu 24.04
1507* net/cnxk: fix use after free in mempool create
1508* net/cpfl: add checks for flow action types
1509* net/cpfl: fix forwarding to physical port
1510* net/cpfl: fix invalid free in JSON parser
1511* net/cpfl: fix parsing protocol ID mask field
1512* net/dpaa2: fix memory corruption in TM
1513* net/dpaa2: remove unnecessary check for null before free
1514* net/dpaa: fix reallocate mbuf handling
1515* net/dpaa: fix typecasting channel ID
1516* net/e1000/base: fix fallthrough in switch
1517* net/e1000: fix link status crash in secondary process
1518* net/e1000: fix use after free in filter flush
1519* net/ena: revert redefining memcpy
1520* net/gve/base: fix build with Fedora Rawhide
1521* net/gve: add IO memory barriers before reading descriptors
1522* net/gve: always attempt Rx refill on DQ
1523* net/gve: fix Tx for chained mbuf
1524* net/gve: fix mbuf allocation memory leak for DQ Rx
1525* net/gve: fix queue setup and stop
1526* net/gve: fix refill logic causing memory corruption
1527* net/hns3: fix dump counter of registers
1528* net/hns3: fix error code for repeatedly create counter
1529* net/hns3: fix fully use hardware flow director table
1530* net/hns3: register VLAN flow match mode parameter
1531* net/hns3: remove ROH devices
1532* net/hns3: remove some basic address dump
1533* net/hns3: restrict tunnel flow rule to one header
1534* net/hns3: verify reset type from firmware
1535* net/i40e/base: add missing X710TL device check
1536* net/i40e/base: fix DDP loading with reserved track ID
1537* net/i40e/base: fix blinking X722 with X557 PHY
1538* net/i40e/base: fix loop bounds
1539* net/i40e/base: fix misleading debug logs and comments
1540* net/i40e/base: fix repeated register dumps
1541* net/i40e/base: fix setting flags in init function
1542* net/i40e/base: fix unchecked return value
1543* net/i40e: check register read for outer VLAN
1544* net/i40e: fix AVX-512 pointer copy on 32-bit
1545* net/iavf: add segment-length check to Tx prep
1546* net/iavf: delay VF reset command
1547* net/iavf: fix AVX-512 pointer copy on 32-bit
1548* net/iavf: fix crash when link is unstable
1549* net/iavf: preserve MAC address with i40e PF Linux driver
1550* net/ice/base: add bounds check
1551* net/ice/base: fix VLAN replay after reset
1552* net/ice/base: fix iteration of TLVs in Preserved Fields Area
1553* net/ice/base: fix link speed for 200G
1554* net/ice: detect stopping a flow director queue twice
1555* net/ice: fix AVX-512 pointer copy on 32-bit
1556* net/igc: fix Rx buffers when timestamping enabled
1557* net/ionic: fix build with Fedora Rawhide
1558* net/ixgbe/base: fix unchecked return value
1559* net/ixgbe: fix link status delay on FreeBSD
1560* net/mana: support rdma-core via pkg-config
1561* net/memif: fix buffer overflow in zero copy Rx
1562* net/mlx5/hws: fix allocation of STCs
1563* net/mlx5/hws: fix flex item as tunnel header
1564* net/mlx5/hws: fix range definer error recovery
1565* net/mlx5: add flex item query for tunnel mode
1566* net/mlx5: fix GRE flow item translation for root table
1567* net/mlx5: fix Rx queue control management
1568* net/mlx5: fix Rx queue reference count in flushing flows
1569* net/mlx5: fix SQ flow item size
1570* net/mlx5: fix SWS meter state initialization
1571* net/mlx5: fix Tx tracing to use single clock source
1572* net/mlx5: fix counter query loop getting stuck
1573* net/mlx5: fix default RSS flows creation order
1574* net/mlx5: fix flex item header length field translation
1575* net/mlx5: fix flex item tunnel mode
1576* net/mlx5: fix indirect list flow action callback invocation
1577* net/mlx5: fix memory leak in metering
1578* net/mlx5: fix miniCQEs number calculation
1579* net/mlx5: fix next protocol validation after flex item
1580* net/mlx5: fix non full word sample fields in flex item
1581* net/mlx5: fix non-template flow action validation
1582* net/mlx5: fix number of supported flex parsers
1583* net/mlx5: fix real time counter reading from PCI BAR
1584* net/mlx5: fix reported Rx/Tx descriptor limits
1585* net/mlx5: fix shared Rx queue control release
1586* net/mlx5: fix shared queue port number in vector Rx
1587* net/mlx5: fix trace script for multiple burst completion
1588* net/mlx5: workaround list management of Rx queue control
1589* net/mvneta: fix possible out-of-bounds write
1590* net/netvsc: fix using Tx queue higher than Rx queues
1591* net/netvsc: force Tx VLAN offload on 801.2Q packet
1592* net/nfb: fix use after free
1593* net/nfp: do not set IPv6 flag in transport mode
1594* net/nfp: fix double free in flow destroy
1595* net/nfp: fix link change return value
1596* net/nfp: fix pause frame setting check
1597* net/nfp: fix representor port link status update
1598* net/nfp: fix type declaration of some variables
1599* net/nfp: notify flower firmware about PF speed
1600* net/ngbe: fix driver load bit to inform firmware
1601* net/ngbe: fix interrupt lost in legacy or MSI mode
1602* net/ngbe: reconfigure more MAC Rx registers
1603* net/ngbe: restrict configuration of VLAN strip offload
1604* net/pcap: fix blocking Rx
1605* net/pcap: set live interface as non-blocking
1606* net/sfc: fix use after free in debug logs
1607* net/tap: avoid memcpy with null argument
1608* net/tap: restrict maximum number of MP FDs
1609* net/txgbe: fix SWFW mbox
1610* net/txgbe: fix VF-PF mbox interrupt
1611* net/txgbe: fix a mass of interrupts
1612* net/txgbe: fix driver load bit to inform firmware
1613* net/txgbe: remove outer UDP checksum capability
1614* net/virtio-user: reset used index counter
1615* net/virtio: fix Rx checksum calculation
1616* net/vmxnet3: fix crash after configuration failure
1617* net/vmxnet3: fix potential out of bounds stats access
1618* net/vmxnet3: support larger MTU with version 6
1619* pcapng: avoid potential unaligned data
1620* pcapng: fix handling of chained mbufs
1621* power: enable CPPC
1622* power: fix log message when checking lcore ID
1623* power: fix mapped lcore ID
1624* raw/ifpga/base: fix use after free
1625* raw/ifpga: fix free function mismatch in interrupt config
1626* rcu: fix implicit conversion in bit shift
1627* test/bonding: fix MAC address comparison
1628* test/bonding: fix loop on members
1629* test/bonding: remove redundant info query
1630* test/crypto: fix synchronous API calls
1631* test/eal: fix lcore check
1632* test/eal: fix loop coverage for alignment macros
1633* test/event: avoid duplicate initialization
1634* test/event: fix schedule type
1635* test/event: fix target event queue
1636* test/security: fix IPv6 extension loop
1637* vdpa/nfp: fix hardware initialization
1638* vdpa/nfp: fix reconfiguration
1639* vdpa: update used flags in used ring relay
1640* version: 23.11.3-rc1
1641* vhost: fix deadlock in Rx async path
1642* vhost: fix offset while mapping log base address
1643* vhost: restrict set max queue pair API to VDUSE
1644
164523.11.3 Validation
1646~~~~~~~~~~~~~~~~~~
1647
1648* RedHat Testing:
1649
1650 * Test scenarios:
1651
1652 * VM with device assignment(PF) throughput testing(1G hugepage size)
1653 * VM with device assignment(PF) throughput testing(2M hugepage size)
1654 * VM with device assignment(VF) throughput testing
1655 * PVP (host dpdk testpmd as vswitch) 1Q: throughput testing
1656 * PVP vhost-user 2Q throughput testing
1657 * PVP vhost-user 1Q - cross numa node throughput testing
1658 * VM with vhost-user 2 queues throughput testing
1659 * vhost-user reconnect with dpdk-client, qemu-server(qemu reconnect)
1660 * vhost-user reconnect with dpdk-client, qemu-server(ovs reconnect)
1661 * PVP reconnect with dpdk-client, qemu-server
1662 * PVP 1Q live migration testing
1663 * PVP 1Q cross numa node live migration testing
1664 * VM with ovs+dpdk+vhost-user 1Q live migration testing
1665 * VM with ovs+dpdk+vhost-user 1Q live migration testing (2M)
1666 * VM with ovs+dpdk+vhost-user 2Q live migration testing
1667 * VM with ovs+dpdk+vhost-user 4Q live migration testing
1668 * Host PF + DPDK testing
1669 * Host VF + DPDK testing
1670
1671 * Test Versions and device:
1672
1673 * RHEL 9.4
1674 * qemu-kvm-8.2.0
1675 * kernel 5.14
1676 * libvirt 10.0
1677 * openvswitch 3.1
1678 * X540-AT2 NIC(ixgbe, 10G)
1679
1680* Nvidia(R) Testing:
1681
1682 * Test scenarios:
1683
1684 * Send and receive multiple types of traffic.
1685 * testpmd xstats counter test.
1686 * testpmd timestamp test.
1687 * Changing/checking link status through testpmd.
1688 * rte_flow tests (https://doc.dpdk.org/guides/nics/mlx5.html#supported-hardware-offloads)
1689 * RSS tests.
1690 * VLAN filtering, stripping, and insertion tests.
1691 * Checksum and TSO tests.
1692 * ptype tests.
1693 * link_status_interrupt example application tests.
1694 * l3fwd-power example application tests.
1695 * Multi-process example applications tests.
1696 * Hardware LRO tests.
1697 * Buffer Split tests.
1698 * Tx scheduling tests.
1699
1700 * Test platform:
1701
1702 * NIC: ConnectX-6 Dx / OS: Ubuntu 22.04 / Driver: MLNX_OFED_LINUX-24.10-1.1.4.0 / Firmware: 22.43.2026
1703 * NIC: ConnectX-7 / OS: Ubuntu 22.04 / Driver: MLNX_OFED_LINUX-24.10-1.1.4.0 / Firmware: 28.43.2026
1704 * DPU: BlueField-2 / DOCA SW version: 2.9.1 / Firmware: 24.43.2026
1705
1706 * OS/driver combinations:
1707
1708 * Debian 12 with MLNX_OFED_LINUX-24.10-1.1.4.0.
1709 * Ubuntu 22.04 with MLNX_OFED_LINUX-24.10-1.1.4.0.
1710 * Ubuntu 24.04 with MLNX_OFED_LINUX-24.10-1.1.4.0.
1711 * Ubuntu 24.04 with rdma-core v50.0.
1712 * Fedora 40 with rdma-core v48.0.
1713 * Fedora 42 (Rawhide) with rdma-core v51.0.
1714 * OpenSUSE Leap 15.6 with rdma-core v49.1.
1715
1716* Intel(R) Testing:
1717
1718 * Basic NIC testing
1719
1720 * Build & CFLAG compile: cover the build test combination with latest GCC/Clang version and the popular OS revision such as Ubuntu24.10, Ubuntu22.04, Fedora40, RHEL8.10, RHEL9.4, FreeBSD14.1, SUSE15, openEuler22.03-SP2, OpenAnolis8.9 etc.
1721 * PF(i40e, ixgbe): test scenarios including RTE_FLOW/TSO/Jumboframe/checksum offload/VLAN/VXLAN, etc.
1722 * VF(i40e, ixgbe): test scenarios including VF-RTE_FLOW/TSO/Jumboframe/checksum offload/VLAN/VXLAN, etc.
1723 * PF/VF(ice): test scenarios including Switch features/Package Management/Flow Director/Advanced Tx/Advanced RSS/ACL/DCF/Flexible Descriptor, etc.
1724 * Intel NIC single core/NIC performance: test scenarios including PF/VF single core performance test, etc.
1725 * IPsec: test scenarios including ipsec/ipsec-gw/ipsec library basic test - QAT&SW/FIB library, etc.
1726
1727 * Basic cryptodev and virtio testing
1728
1729 * Virtio: both function and performance test are covered. Such as PVP/Virtio_loopback/virtio-user loopback/virtio-net VM2VM perf testing/VMAWARE ESXI 8.0, etc.
1730 * Cryptodev Function test: Cryptodev API testing/CompressDev ISA-L/QAT/ZLIB PMD Testing/FIPS, etc.
1731 * Cryptodev Performance test: test scenarios including Throughput Performance/Cryptodev Latency, etc.
1732
173323.11.3 Known Issues
1734~~~~~~~~~~~~~~~~~~~~
1735
1736* Start dpdk-pdump in VM with virtio-0.95 protocol failed
1737
1738 Fix available in upstream.
1739
1740* Failed to add vdev when launch dpdk-pdump with vdev secondary process
1741
1742 Fix available in upstream.
1743
174423.11.4 Release Notes
1745---------------------
1746
1747
174823.11.4 Fixes
1749~~~~~~~~~~~~~
1750
1751* app/testpmd: avoid crash in DCB config
1752* app/testpmd: fix out-of-bound reference in offload config
1753* app/testpmd: show all DCB priority TC map
1754* build: force GCC 15 to initialize padding bits
1755* buildtools: fix some Python regex syntax warnings
1756* bus/pci: fix registered device name
1757* ci: build with MSVC in GHA
1758* common/cnxk: fix DPI mailbox structure
1759* common/cnxk: fix atomic load in batch ops
1760* common/cnxk: fix inbound IPsec SA setup
1761* common/cnxk: fix null check
1762* common/idpf: fix void function returning a value
1763* crypto/cnxk: fix asymmetric operation status code
1764* crypto/cnxk: fix build with GCC 15
1765* crypto/dpaa2_sec: fix bitmask truncation
1766* crypto/dpaa_sec: fix bitmask truncation
1767* crypto/openssl: fix CMAC auth context update
1768* crypto/openssl: validate incorrect RSA signature
1769* crypto/qat: fix SM3 state size
1770* crypto/virtio: fix data queues iteration
1771* crypto/virtio: fix redundant queue free
1772* doc: fix feature flags for queue start/stop
1773* doc: update ionic driver guide
1774* eal/linux: fix memseg length in legacy mem init
1775* eal/linux: remove useless assignments
1776* eal/x86: fix some intrinsics header include for Windows
1777* eal: fix devargs layers parsing out of bounds
1778* eal: fix undetected NUMA nodes
1779* ethdev: fix functions available in new device event
1780* event/dpaa: fix bitmask truncation
1781* eventdev: fix format string data type in log messages
1782* examples/ipsec-secgw: fix IV length in CTR 192/256
1783* examples/ipsec-secgw: fix cryptodev and eventdev IDs
1784* examples/l3fwd: fix socket ID check
1785* examples/ptpclient: fix message parsing
1786* examples/vhost_crypto: fix user callbacks
1787* fix ptp
1788* gro: fix unprocessed IPv4 packets
1789* mempool: fix errno in empty create
1790* net/af_packet: fix socket close on device stop
1791* net/bnxt: fix crash when representor is re-attached
1792* net/bnxt: fix indication of allocation
1793* net/bonding: fix dedicated queue setup
1794* net/cnxk: fix NIX send header L3 type
1795* net/cpfl: fix representor parsing log
1796* net/dpaa2: fix bitmask truncation
1797* net/dpaa: fix bitmask truncation
1798* net/e1000/base: correct mPHY access logic
1799* net/e1000/base: fix MAC address hash bit shift
1800* net/e1000/base: fix NVM data type in bit shift
1801* net/e1000/base: fix bitwise operation type
1802* net/e1000/base: fix data type in MAC hash
1803* net/e1000/base: fix iterator type
1804* net/e1000/base: fix reset for 82580
1805* net/e1000/base: fix semaphore timeout value
1806* net/e1000/base: fix unchecked return
1807* net/e1000/base: fix uninitialized variable
1808* net/e1000/base: skip management check for 82575
1809* net/e1000: fix crashes in secondary processes
1810* net/enetfec: remove useless assignment
1811* net/gve: allocate Rx QPL pages using malloc
1812* net/hinic: fix flow type bitmask overflow
1813* net/hns3: fix copper port initialization
1814* net/hns3: fix mbuf freeing in simple Tx path
1815* net/hns3: fix reset timeout
1816* net/hns3: remove PVID info dump for VF
1817* net/hns3: rename RAS module
1818* net/iavf: check interrupt registration failure
1819* net/iavf: fix crash on app exit on FreeBSD
1820* net/iavf: fix mbuf release in Arm multi-process
1821* net/iavf: remove reset of Tx prepare function pointer
1822* net/ice: fix dropped packets when using VRRP
1823* net/ice: fix flow engines order
1824* net/ice: fix flows handling
1825* net/ice: fix memory leak in scalar Rx
1826* net/igc/base: fix LTR for i225
1827* net/igc/base: fix MAC address hash bit shift
1828* net/igc/base: fix NVM data type in bit shift
1829* net/igc/base: fix bitwise operation type
1830* net/igc/base: fix data type in MAC hash
1831* net/igc/base: fix deadlock when writing i225 register
1832* net/igc/base: fix infinite loop
1833* net/igc/base: fix iterator type
1834* net/igc/base: fix semaphore timeout value
1835* net/igc/base: fix typo in LTR calculation
1836* net/igc/base: fix unused value
1837* net/igc/base: increase PHY power up delay
1838* net/igc/base: reset loop variable
1839* net/intel: fix build with icx
1840* net/intel: fix void functions returning a value
1841* net/ixgbe: fix crashes in secondary processes
1842* net/ixgbe: fix minimum Rx/Tx descriptors
1843* net/mana: fix multi-process tracking
1844* net/mlx5/hws: fix DV FT type convert
1845* net/mlx5/hws: fix GTP flags matching
1846* net/mlx5/hws: fix crash using represented port without ID
1847* net/mlx5/hws: fix fragmented packet type matching
1848* net/mlx5: adjust actions per rule limitation
1849* net/mlx5: fix GRE flow match with SWS
1850* net/mlx5: fix GRE matching on root table
1851* net/mlx5: fix IPIP tunnel verification
1852* net/mlx5: fix LACP packet handling in isolated mode
1853* net/mlx5: fix Netlink socket leak
1854* net/mlx5: fix actions translation error overwrite
1855* net/mlx5: fix flush of non-template flow rules
1856* net/mlx5: fix hairpin queue release
1857* net/mlx5: fix hardware packet type translation
1858* net/mlx5: fix leak in HWS flow counter action
1859* net/mlx5: fix polling CQEs
1860* net/netvsc: remove device if its net devices removed
1861* net/netvsc: scan all net devices under the PCI device
1862* net/nfp: fix VF link speed problem
1863* net/nfp: fix misuse of function return values
1864* net/nfp: fix multi-PF control flag
1865* net/nfp: fix multiple PFs check from NSP
1866* net/octeon_ep: remove useless assignment
1867* net/qede: fix debug messages array
1868* net/qede: fix nested loops
1869* net/sfc: remove unnecessary assignment
1870* net/thunderx/base: fix build with GCC 15
1871* net/txgbe: remove useless condition for SW-FW sync
1872* pdump: clear statistics when enabled
1873* raw/cnxk_gpio: fix file descriptor leak
1874* stack: fix pop in C11 implementation
1875* test/bbdev: update FFT test vectors
1876* test/bonding: fix active backup receive test
1877* test/crypto: fix AES-ECB test lengths
1878* test/crypto: fix backport merge
1879* test/crypto: fix callback setup tests
1880* test/crypto: fix check for OOP header data
1881* test/crypto: remove unused variable
1882* test/dma: fix pointers in IOVA as PA mode
1883* test/event: fix number of queues in eventdev conf
1884* test/ring: fix init with custom number of lcores
1885* update version to v23.11.4
1886* use Python raw string notation
1887* version: 23.11.4-rc4
1888* version: 23.11.4-rc5
1889* vhost/crypto: skip fetch before vring init
1890* vhost: add null callback checks
1891* vhost: check GSO size validity
1892* vhost: check descriptor chains length
1893* vhost: clear ring addresses when getting vring base
1894* vhost: fix log when setting max queue num
1895* vhost: reset packets count when not ready
1896
189723.11.4 Validation
1898~~~~~~~~~~~~~~~~~~
1899
1900* RedHat Testing:
1901
1902 * Test scenarios:
1903
1904 * VM with device assignment(PF) throughput testing(1G hugepage size)
1905 * VM with device assignment(PF) throughput testing(2M hugepage size)
1906 * VM with device assignment(VF) throughput testing
1907 * PVP (host dpdk testpmd as vswitch) 1Q: throughput testing
1908 * PVP vhost-user 2Q throughput testing
1909 * PVP vhost-user 1Q - cross numa node throughput testing
1910 * VM with vhost-user 2 queues throughput testing
1911 * vhost-user reconnect with dpdk-client, qemu-server(qemu reconnect)
1912 * vhost-user reconnect with dpdk-client, qemu-server(ovs reconnect)
1913 * PVP reconnect with dpdk-client, qemu-server
1914 * PVP 1Q live migration testing
1915 * PVP 1Q cross numa node live migration testing
1916 * VM with ovs+dpdk+vhost-user 1Q live migration testing
1917 * VM with ovs+dpdk+vhost-user 1Q live migration testing (2M)
1918 * VM with ovs+dpdk+vhost-user 2Q live migration testing
1919 * VM with ovs+dpdk+vhost-user 4Q live migration testing
1920 * Host PF + DPDK testing
1921 * Host VF + DPDK testing
1922
1923 * Test Versions and device:
1924
1925 * RHEL 9.4
1926 * qemu-kvm-8.2.0
1927 * kernel 5.14
1928 * libvirt 10.0
1929 * openvswitch 3.3
1930 * X540-AT2 NIC(ixgbe, 10G)
1931
1932* Nvidia(R) Testing:
1933
1934 * Test scenarios:
1935
1936 * Send and receive multiple types of traffic.
1937 * testpmd xstats counter test.
1938 * testpmd timestamp test.
1939 * Changing/checking link status through testpmd.
1940 * rte_flow tests (https://doc.dpdk.org/guides/nics/mlx5.html#supported-hardware-offloads)
1941 * RSS tests.
1942 * VLAN filtering, stripping, and insertion tests.
1943 * Checksum and TSO tests.
1944 * ptype tests.
1945 * link_status_interrupt example application tests.
1946 * l3fwd-power example application tests.
1947 * Multi-process example applications tests.
1948 * Hardware LRO tests.
1949 * Buffer Split tests.
1950 * Tx scheduling tests.
1951
1952 * Test platform:
1953
1954 * NIC: ConnectX-6 Dx / OS: Ubuntu 22.04 / Driver: MLNX_OFED_LINUX-24.10-2.1.8.0 / Firmware: 22.43.2566
1955 * DPU: BlueField-2 / DOCA SW version: 2.10.0 / Firmware: 24.44.1036
1956
1957 * OS/driver combinations:
1958
1959 * Ubuntu 24.04 with MLNX_OFED_LINUX-24.10-2.1.8.0.
1960 * Ubuntu 24.04 with rdma-core master (324c42e).
1961 * Ubuntu 24.04 with rdma-core v50.0.
1962 * Fedora 41 with rdma-core v51.0.
1963 * Fedora 43 (Rawhide) with rdma-core v56.0.
1964 * OpenSUSE Leap 15.6 with rdma-core v49.1.
1965 * Windows Server 2022 with Clang 16.0.6.
1966
1967* Intel(R) Testing:
1968
1969 * Basic NIC testing
1970
1971 * Build & CFLAG compile: cover the build test combination with latest GCC/Clang version and the popular OS revision such as Ubuntu24.10, Ubuntu22.04.1, Fedora41, RHEL9.4, RHEL9.5, RHEL10.0 beta, FreeBSD14.2, SUSE15.6, AzureLinux3.0, OpenAnolis8.9 etc.
1972 * i40E-(XXV710, X722) PF/VF: test scenarios including basic/RTE_FLOW/TSO/Jumboframe/checksum offload/mac_filter/VLAN/VXLAN/RSS, etc.
1973 * IXGBE-(82599) PF/VF: test scenarios including basic/RTE_FLOW/TSO/Jumboframe/checksum offload/mac_filter/VLAN/VXLAN/RSS, etc.
1974 * ICE-(E810, E2100) PF/VF: test scenarios including basic/Switch/Package Management/Flow Director/Advanced Tx/Advanced RSS/ACL/DCF/Flexible Descriptor, etc.
1975 * IPsec: test scenarios including ipsec/ipsec-gw/ipsec library basic test - QAT&SW/FIB library, etc.
1976 * Virtio: both function and performance test are covered. Such as PVP/Virtio_loopback/virtio-user loopback/virtio-net VM2VM perf testing/VMAWARE ESXI 8.0, etc.
1977 * Cryptodev: test scenarios including Cryptodev API testing/CompressDev ISA-L/QAT/ZLIB PMD Testing/FIPS, etc.
1978 * DLB: test scenarios including DLB2.0 and DLB2.5
1979 * Other: test scenarios including AF_XDP, Power, CBDMA, DSA
1980
1981 * Basic cryptodev and virtio testing
1982
1983 * Virtio: both function and performance test are covered. Such as PVP/Virtio_loopback/virtio-user loopback/virtio-net VM2VM perf testing/VMAWARE ESXI 8.0, etc.
1984 * Cryptodev Function test: Cryptodev API testing/CompressDev ISA-L/QAT/ZLIB PMD Testing/FIPS, etc.
1985 * Cryptodev Performance test: test scenarios including Throughput Performance/Cryptodev Latency, etc.
1986
1987 * Performance test
1988
1989 * Throughput Performance
1990 * Cryptodev Latency
1991 * PF/VF NIC single core
1992 * XXV710/E810 NIC Performance
1993
199423.11.4 Known Issues
1995~~~~~~~~~~~~~~~~~~~~
1996
1997* Start dpdk-pdump in VM with virtio-0.95 protocol failed
1998
1999 Fix available in upstream.
2000
2001* compilation failed with gcc 15.0.1
diff --git a/drivers/baseband/acc/acc_common.h b/drivers/baseband/acc/acc_common.h
index 6752c25..13f7ec4 100644
--- a/drivers/baseband/acc/acc_common.h
+++ b/drivers/baseband/acc/acc_common.h
@@ -787,7 +787,7 @@ alloc_sw_rings_min_mem(struct rte_bbdev *dev, struct acc_device *d,
787 sw_rings_base, ACC_SIZE_64MBYTE);787 sw_rings_base, ACC_SIZE_64MBYTE);
788 next_64mb_align_addr_iova = sw_rings_base_iova +788 next_64mb_align_addr_iova = sw_rings_base_iova +
789 next_64mb_align_offset;789 next_64mb_align_offset;
790 sw_ring_iova_end_addr = sw_rings_base_iova + dev_sw_ring_size;790 sw_ring_iova_end_addr = sw_rings_base_iova + dev_sw_ring_size - 1;
791791
792 /* Check if the end of the sw ring memory block is before the792 /* Check if the end of the sw ring memory block is before the
793 * start of next 64MB aligned mem address793 * start of next 64MB aligned mem address
diff --git a/drivers/baseband/acc/rte_acc100_pmd.c b/drivers/baseband/acc/rte_acc100_pmd.c
index 292537e..3e135c4 100644
--- a/drivers/baseband/acc/rte_acc100_pmd.c
+++ b/drivers/baseband/acc/rte_acc100_pmd.c
@@ -230,7 +230,7 @@ fetch_acc100_config(struct rte_bbdev *dev)
230 }230 }
231231
232 rte_bbdev_log_debug(232 rte_bbdev_log_debug(
233 "%s Config LLR SIGN IN/OUT %s %s QG %u %u %u %u AQ %u %u %u %u Len %u %u %u %u\n",233 "%s Config LLR SIGN IN/OUT %s %s QG %u %u %u %u AQ %u %u %u %u Len %u %u %u %u",
234 (d->pf_device) ? "PF" : "VF",234 (d->pf_device) ? "PF" : "VF",
235 (acc_conf->input_pos_llr_1_bit) ? "POS" : "NEG",235 (acc_conf->input_pos_llr_1_bit) ? "POS" : "NEG",
236 (acc_conf->output_pos_llr_1_bit) ? "POS" : "NEG",236 (acc_conf->output_pos_llr_1_bit) ? "POS" : "NEG",
@@ -838,51 +838,15 @@ free_q:
838 return ret;838 return ret;
839}839}
840840
841static inline void
842acc100_print_op(struct rte_bbdev_dec_op *op, enum rte_bbdev_op_type op_type,
843 uint16_t index)
844{
845 if (op == NULL)
846 return;
847 if (op_type == RTE_BBDEV_OP_LDPC_DEC)
848 rte_bbdev_log(DEBUG,
849 " Op 5GUL %d %d %d %d %d %d %d %d %d %d %d %d",
850 index,
851 op->ldpc_dec.basegraph, op->ldpc_dec.z_c,
852 op->ldpc_dec.n_cb, op->ldpc_dec.q_m,
853 op->ldpc_dec.n_filler, op->ldpc_dec.cb_params.e,
854 op->ldpc_dec.op_flags, op->ldpc_dec.rv_index,
855 op->ldpc_dec.iter_max, op->ldpc_dec.iter_count,
856 op->ldpc_dec.harq_combined_input.length
857 );
858 else if (op_type == RTE_BBDEV_OP_LDPC_ENC) {
859 struct rte_bbdev_enc_op *op_dl = (struct rte_bbdev_enc_op *) op;
860 rte_bbdev_log(DEBUG,
861 " Op 5GDL %d %d %d %d %d %d %d %d %d",
862 index,
863 op_dl->ldpc_enc.basegraph, op_dl->ldpc_enc.z_c,
864 op_dl->ldpc_enc.n_cb, op_dl->ldpc_enc.q_m,
865 op_dl->ldpc_enc.n_filler, op_dl->ldpc_enc.cb_params.e,
866 op_dl->ldpc_enc.op_flags, op_dl->ldpc_enc.rv_index
867 );
868 }
869}
870
871static int841static int
872acc100_queue_stop(struct rte_bbdev *dev, uint16_t queue_id)842acc100_queue_stop(struct rte_bbdev *dev, uint16_t queue_id)
873{843{
874 struct acc_queue *q;844 struct acc_queue *q;
875 struct rte_bbdev_dec_op *op;
876 uint16_t i;
877845
878 q = dev->data->queues[queue_id].queue_private;846 q = dev->data->queues[queue_id].queue_private;
879 rte_bbdev_log(INFO, "Queue Stop %d H/T/D %d %d %x OpType %d",847 rte_bbdev_log(INFO, "Queue Stop %d H/T/D %d %d %x OpType %d",
880 queue_id, q->sw_ring_head, q->sw_ring_tail,848 queue_id, q->sw_ring_head, q->sw_ring_tail,
881 q->sw_ring_depth, q->op_type);849 q->sw_ring_depth, q->op_type);
882 for (i = 0; i < q->sw_ring_depth; ++i) {
883 op = (q->ring_addr + i)->req.op_addr;
884 acc100_print_op(op, q->op_type, i);
885 }
886 /* ignore all operations in flight and clear counters */850 /* ignore all operations in flight and clear counters */
887 q->sw_ring_tail = q->sw_ring_head;851 q->sw_ring_tail = q->sw_ring_head;
888 q->aq_enqueued = 0;852 q->aq_enqueued = 0;
@@ -1229,7 +1193,7 @@ acc100_fcw_ld_fill(struct rte_bbdev_dec_op *op, struct acc_fcw_ld *fcw,
1229 harq_in_length = RTE_ALIGN_FLOOR(harq_in_length, ACC100_HARQ_ALIGN_COMP);1193 harq_in_length = RTE_ALIGN_FLOOR(harq_in_length, ACC100_HARQ_ALIGN_COMP);
12301194
1231 if ((harq_layout[harq_index].offset > 0) && harq_prun) {1195 if ((harq_layout[harq_index].offset > 0) && harq_prun) {
1232 rte_bbdev_log_debug("HARQ IN offset unexpected for now\n");1196 rte_bbdev_log_debug("HARQ IN offset unexpected for now");
1233 fcw->hcin_size0 = harq_layout[harq_index].size0;1197 fcw->hcin_size0 = harq_layout[harq_index].size0;
1234 fcw->hcin_offset = harq_layout[harq_index].offset;1198 fcw->hcin_offset = harq_layout[harq_index].offset;
1235 fcw->hcin_size1 = harq_in_length - harq_layout[harq_index].offset;1199 fcw->hcin_size1 = harq_in_length - harq_layout[harq_index].offset;
@@ -2890,7 +2854,7 @@ harq_loopback(struct acc_queue *q, struct rte_bbdev_dec_op *op,
2890 uint32_t harq_index;2854 uint32_t harq_index;
28912855
2892 if (harq_in_length == 0) {2856 if (harq_in_length == 0) {
2893 rte_bbdev_log(ERR, "Loopback of invalid null size\n");2857 rte_bbdev_log(ERR, "Loopback of invalid null size");
2894 return -EINVAL;2858 return -EINVAL;
2895 }2859 }
28962860
@@ -2928,7 +2892,7 @@ harq_loopback(struct acc_queue *q, struct rte_bbdev_dec_op *op,
2928 fcw->hcin_en = 1;2892 fcw->hcin_en = 1;
2929 fcw->hcout_en = 1;2893 fcw->hcout_en = 1;
29302894
2931 rte_bbdev_log(DEBUG, "Loopback IN %d Index %d offset %d length %d %d\n",2895 rte_bbdev_log(DEBUG, "Loopback IN %d Index %d offset %d length %d %d",
2932 ddr_mem_in, harq_index,2896 ddr_mem_in, harq_index,
2933 harq_layout[harq_index].offset, harq_in_length,2897 harq_layout[harq_index].offset, harq_in_length,
2934 harq_dma_length_in);2898 harq_dma_length_in);
@@ -2944,7 +2908,7 @@ harq_loopback(struct acc_queue *q, struct rte_bbdev_dec_op *op,
2944 fcw->hcin_size0 = harq_in_length;2908 fcw->hcin_size0 = harq_in_length;
2945 }2909 }
2946 harq_layout[harq_index].val = 0;2910 harq_layout[harq_index].val = 0;
2947 rte_bbdev_log(DEBUG, "Loopback FCW Config %d %d %d\n",2911 rte_bbdev_log(DEBUG, "Loopback FCW Config %d %d %d",
2948 fcw->hcin_size0, fcw->hcin_offset, fcw->hcin_size1);2912 fcw->hcin_size0, fcw->hcin_offset, fcw->hcin_size1);
2949 fcw->hcout_size0 = harq_in_length;2913 fcw->hcout_size0 = harq_in_length;
2950 fcw->hcin_decomp_mode = h_comp;2914 fcw->hcin_decomp_mode = h_comp;
@@ -3691,7 +3655,7 @@ acc100_enqueue_ldpc_dec_cb(struct rte_bbdev_queue_data *q_data,
36913655
3692 if (i > 0)3656 if (i > 0)
3693 same_op = cmp_ldpc_dec_op(&ops[i-1]);3657 same_op = cmp_ldpc_dec_op(&ops[i-1]);
3694 rte_bbdev_log(INFO, "Op %d %d %d %d %d %d %d %d %d %d %d %d\n",3658 rte_bbdev_log(INFO, "Op %d %d %d %d %d %d %d %d %d %d %d %d",
3695 i, ops[i]->ldpc_dec.op_flags, ops[i]->ldpc_dec.rv_index,3659 i, ops[i]->ldpc_dec.op_flags, ops[i]->ldpc_dec.rv_index,
3696 ops[i]->ldpc_dec.iter_max, ops[i]->ldpc_dec.iter_count,3660 ops[i]->ldpc_dec.iter_max, ops[i]->ldpc_dec.iter_count,
3697 ops[i]->ldpc_dec.basegraph, ops[i]->ldpc_dec.z_c,3661 ops[i]->ldpc_dec.basegraph, ops[i]->ldpc_dec.z_c,
@@ -3808,7 +3772,7 @@ dequeue_enc_one_op_cb(struct acc_queue *q, struct rte_bbdev_enc_op **ref_op,
3808 return -1;3772 return -1;
38093773
3810 rsp.val = atom_desc.rsp.val;3774 rsp.val = atom_desc.rsp.val;
3811 rte_bbdev_log_debug("Resp. desc %p: %x num %d\n", desc, rsp.val, desc->req.numCBs);3775 rte_bbdev_log_debug("Resp. desc %p: %x num %d", desc, rsp.val, desc->req.numCBs);
38123776
3813 /* Dequeue */3777 /* Dequeue */
3814 op = desc->req.op_addr;3778 op = desc->req.op_addr;
@@ -3885,7 +3849,7 @@ dequeue_enc_one_op_tb(struct acc_queue *q, struct rte_bbdev_enc_op **ref_op,
3885 atom_desc.atom_hdr = __atomic_load_n((uint64_t *)desc,3849 atom_desc.atom_hdr = __atomic_load_n((uint64_t *)desc,
3886 __ATOMIC_RELAXED);3850 __ATOMIC_RELAXED);
3887 rsp.val = atom_desc.rsp.val;3851 rsp.val = atom_desc.rsp.val;
3888 rte_bbdev_log_debug("Resp. desc %p: %x descs %d cbs %d\n",3852 rte_bbdev_log_debug("Resp. desc %p: %x descs %d cbs %d",
3889 desc, rsp.val, descs_in_tb, desc->req.numCBs);3853 desc, rsp.val, descs_in_tb, desc->req.numCBs);
38903854
3891 op->status |= ((rsp.dma_err) ? (1 << RTE_BBDEV_DRV_ERROR) : 0);3855 op->status |= ((rsp.dma_err) ? (1 << RTE_BBDEV_DRV_ERROR) : 0);
@@ -3981,7 +3945,7 @@ dequeue_ldpc_dec_one_op_cb(struct rte_bbdev_queue_data *q_data,
3981 return -1;3945 return -1;
39823946
3983 rsp.val = atom_desc.rsp.val;3947 rsp.val = atom_desc.rsp.val;
3984 rte_bbdev_log_debug("Resp. desc %p: %x\n", desc, rsp.val);3948 rte_bbdev_log_debug("Resp. desc %p: %x", desc, rsp.val);
39853949
3986 /* Dequeue */3950 /* Dequeue */
3987 op = desc->req.op_addr;3951 op = desc->req.op_addr;
@@ -4060,7 +4024,7 @@ dequeue_dec_one_op_tb(struct acc_queue *q, struct rte_bbdev_dec_op **ref_op,
4060 atom_desc.atom_hdr = __atomic_load_n((uint64_t *)desc,4024 atom_desc.atom_hdr = __atomic_load_n((uint64_t *)desc,
4061 __ATOMIC_RELAXED);4025 __ATOMIC_RELAXED);
4062 rsp.val = atom_desc.rsp.val;4026 rsp.val = atom_desc.rsp.val;
4063 rte_bbdev_log_debug("Resp. desc %p: %x r %d c %d\n",4027 rte_bbdev_log_debug("Resp. desc %p: %x r %d c %d",
4064 desc, rsp.val, cb_idx, cbs_in_tb);4028 desc, rsp.val, cb_idx, cbs_in_tb);
40654029
4066 op->status |= ((rsp.input_err) ? (1 << RTE_BBDEV_DATA_ERROR) : 0);4030 op->status |= ((rsp.input_err) ? (1 << RTE_BBDEV_DATA_ERROR) : 0);
@@ -4797,7 +4761,7 @@ acc100_configure(const char *dev_name, struct rte_acc_conf *conf)
4797 }4761 }
47984762
4799 if (aram_address > ACC100_WORDS_IN_ARAM_SIZE) {4763 if (aram_address > ACC100_WORDS_IN_ARAM_SIZE) {
4800 rte_bbdev_log(ERR, "ARAM Configuration not fitting %d %d\n",4764 rte_bbdev_log(ERR, "ARAM Configuration not fitting %d %d",
4801 aram_address, ACC100_WORDS_IN_ARAM_SIZE);4765 aram_address, ACC100_WORDS_IN_ARAM_SIZE);
4802 return -EINVAL;4766 return -EINVAL;
4803 }4767 }
diff --git a/drivers/baseband/acc/rte_vrb_pmd.c b/drivers/baseband/acc/rte_vrb_pmd.c
index 686e086..4979bb8 100644
--- a/drivers/baseband/acc/rte_vrb_pmd.c
+++ b/drivers/baseband/acc/rte_vrb_pmd.c
@@ -348,7 +348,7 @@ fetch_acc_config(struct rte_bbdev *dev)
348 }348 }
349349
350 rte_bbdev_log_debug(350 rte_bbdev_log_debug(
351 "%s Config LLR SIGN IN/OUT %s %s QG %u %u %u %u %u %u AQ %u %u %u %u %u %u Len %u %u %u %u %u %u\n",351 "%s Config LLR SIGN IN/OUT %s %s QG %u %u %u %u %u %u AQ %u %u %u %u %u %u Len %u %u %u %u %u %u",
352 (d->pf_device) ? "PF" : "VF",352 (d->pf_device) ? "PF" : "VF",
353 (acc_conf->input_pos_llr_1_bit) ? "POS" : "NEG",353 (acc_conf->input_pos_llr_1_bit) ? "POS" : "NEG",
354 (acc_conf->output_pos_llr_1_bit) ? "POS" : "NEG",354 (acc_conf->output_pos_llr_1_bit) ? "POS" : "NEG",
@@ -464,7 +464,7 @@ vrb_dev_interrupt_handler(void *cb_arg)
464 }464 }
465 } else {465 } else {
466 rte_bbdev_log_debug(466 rte_bbdev_log_debug(
467 "VRB VF Interrupt received, Info Ring data: 0x%x\n",467 "VRB VF Interrupt received, Info Ring data: 0x%x",
468 ring_data->val);468 ring_data->val);
469 switch (int_nb) {469 switch (int_nb) {
470 case ACC_VF_INT_DMA_DL_DESC_IRQ:470 case ACC_VF_INT_DMA_DL_DESC_IRQ:
@@ -698,7 +698,7 @@ vrb_intr_enable(struct rte_bbdev *dev)
698698
699 if (d->device_variant == VRB1_VARIANT) {699 if (d->device_variant == VRB1_VARIANT) {
700 /* On VRB1: cannot enable MSI/IR to avoid potential back-pressure corner case. */700 /* On VRB1: cannot enable MSI/IR to avoid potential back-pressure corner case. */
701 rte_bbdev_log(ERR, "VRB1 (%s) doesn't support any MSI/MSI-X interrupt\n",701 rte_bbdev_log(ERR, "VRB1 (%s) doesn't support any MSI/MSI-X interrupt",
702 dev->data->name);702 dev->data->name);
703 return -ENOTSUP;703 return -ENOTSUP;
704 }704 }
@@ -800,7 +800,7 @@ vrb_intr_enable(struct rte_bbdev *dev)
800 return 0;800 return 0;
801 }801 }
802802
803 rte_bbdev_log(ERR, "Device (%s) supports only VFIO MSI/MSI-X interrupts\n",803 rte_bbdev_log(ERR, "Device (%s) supports only VFIO MSI/MSI-X interrupts",
804 dev->data->name);804 dev->data->name);
805 return -ENOTSUP;805 return -ENOTSUP;
806}806}
@@ -1023,7 +1023,7 @@ vrb_queue_setup(struct rte_bbdev *dev, uint16_t queue_id,
1023 d->queue_offset(d->pf_device, q->vf_id, q->qgrp_id, q->aq_id));1023 d->queue_offset(d->pf_device, q->vf_id, q->qgrp_id, q->aq_id));
10241024
1025 rte_bbdev_log_debug(1025 rte_bbdev_log_debug(
1026 "Setup dev%u q%u: qgrp_id=%u, vf_id=%u, aq_id=%u, aq_depth=%u, mmio_reg_enqueue=%p base %p\n",1026 "Setup dev%u q%u: qgrp_id=%u, vf_id=%u, aq_id=%u, aq_depth=%u, mmio_reg_enqueue=%p base %p",
1027 dev->data->dev_id, queue_id, q->qgrp_id, q->vf_id,1027 dev->data->dev_id, queue_id, q->qgrp_id, q->vf_id,
1028 q->aq_id, q->aq_depth, q->mmio_reg_enqueue,1028 q->aq_id, q->aq_depth, q->mmio_reg_enqueue,
1029 d->mmio_base);1029 d->mmio_base);
@@ -1047,58 +1047,16 @@ free_q:
1047 return ret;1047 return ret;
1048}1048}
10491049
1050static inline void
1051vrb_print_op(struct rte_bbdev_dec_op *op, enum rte_bbdev_op_type op_type,
1052 uint16_t index)
1053{
1054 if (op == NULL)
1055 return;
1056 if (op_type == RTE_BBDEV_OP_LDPC_DEC)
1057 rte_bbdev_log(INFO,
1058 " Op 5GUL %d %d %d %d %d %d %d %d %d %d %d %d",
1059 index,
1060 op->ldpc_dec.basegraph, op->ldpc_dec.z_c,
1061 op->ldpc_dec.n_cb, op->ldpc_dec.q_m,
1062 op->ldpc_dec.n_filler, op->ldpc_dec.cb_params.e,
1063 op->ldpc_dec.op_flags, op->ldpc_dec.rv_index,
1064 op->ldpc_dec.iter_max, op->ldpc_dec.iter_count,
1065 op->ldpc_dec.harq_combined_input.length
1066 );
1067 else if (op_type == RTE_BBDEV_OP_LDPC_ENC) {
1068 struct rte_bbdev_enc_op *op_dl = (struct rte_bbdev_enc_op *) op;
1069 rte_bbdev_log(INFO,
1070 " Op 5GDL %d %d %d %d %d %d %d %d %d",
1071 index,
1072 op_dl->ldpc_enc.basegraph, op_dl->ldpc_enc.z_c,
1073 op_dl->ldpc_enc.n_cb, op_dl->ldpc_enc.q_m,
1074 op_dl->ldpc_enc.n_filler, op_dl->ldpc_enc.cb_params.e,
1075 op_dl->ldpc_enc.op_flags, op_dl->ldpc_enc.rv_index
1076 );
1077 } else if (op_type == RTE_BBDEV_OP_MLDTS) {
1078 struct rte_bbdev_mldts_op *op_mldts = (struct rte_bbdev_mldts_op *) op;
1079 rte_bbdev_log(INFO, " Op MLD %d RBs %d NL %d Rp %d %d %x\n",
1080 index,
1081 op_mldts->mldts.num_rbs, op_mldts->mldts.num_layers,
1082 op_mldts->mldts.r_rep,
1083 op_mldts->mldts.c_rep, op_mldts->mldts.op_flags);
1084 }
1085}
1086
1087/* Stop queue and clear counters. */1050/* Stop queue and clear counters. */
1088static int1051static int
1089vrb_queue_stop(struct rte_bbdev *dev, uint16_t queue_id)1052vrb_queue_stop(struct rte_bbdev *dev, uint16_t queue_id)
1090{1053{
1091 struct acc_queue *q;1054 struct acc_queue *q;
1092 struct rte_bbdev_dec_op *op;1055
1093 uint16_t i;
1094 q = dev->data->queues[queue_id].queue_private;1056 q = dev->data->queues[queue_id].queue_private;
1095 rte_bbdev_log(INFO, "Queue Stop %d H/T/D %d %d %x OpType %d",1057 rte_bbdev_log(INFO, "Queue Stop %d H/T/D %d %d %x OpType %d",
1096 queue_id, q->sw_ring_head, q->sw_ring_tail,1058 queue_id, q->sw_ring_head, q->sw_ring_tail,
1097 q->sw_ring_depth, q->op_type);1059 q->sw_ring_depth, q->op_type);
1098 for (i = 0; i < q->sw_ring_depth; ++i) {
1099 op = (q->ring_addr + i)->req.op_addr;
1100 vrb_print_op(op, q->op_type, i);
1101 }
1102 /* ignore all operations in flight and clear counters */1060 /* ignore all operations in flight and clear counters */
1103 q->sw_ring_tail = q->sw_ring_head;1061 q->sw_ring_tail = q->sw_ring_head;
1104 q->aq_enqueued = 0;1062 q->aq_enqueued = 0;
@@ -1312,7 +1270,6 @@ vrb_dev_info_get(struct rte_bbdev *dev, struct rte_bbdev_driver_info *dev_info)
1312 RTE_BBDEV_LDPC_HARQ_4BIT_COMPRESSION |1270 RTE_BBDEV_LDPC_HARQ_4BIT_COMPRESSION |
1313 RTE_BBDEV_LDPC_LLR_COMPRESSION |1271 RTE_BBDEV_LDPC_LLR_COMPRESSION |
1314 RTE_BBDEV_LDPC_SOFT_OUT_ENABLE |1272 RTE_BBDEV_LDPC_SOFT_OUT_ENABLE |
1315 RTE_BBDEV_LDPC_SOFT_OUT_RM_BYPASS |
1316 RTE_BBDEV_LDPC_SOFT_OUT_DEINTERLEAVER_BYPASS |1273 RTE_BBDEV_LDPC_SOFT_OUT_DEINTERLEAVER_BYPASS |
1317 RTE_BBDEV_LDPC_DEC_INTERRUPTS,1274 RTE_BBDEV_LDPC_DEC_INTERRUPTS,
1318 .llr_size = 8,1275 .llr_size = 8,
@@ -1626,18 +1583,18 @@ vrb_fcw_ld_fill(struct rte_bbdev_dec_op *op, struct acc_fcw_ld *fcw,
1626 fcw->so_en = check_bit(op->ldpc_dec.op_flags, RTE_BBDEV_LDPC_SOFT_OUT_ENABLE);1583 fcw->so_en = check_bit(op->ldpc_dec.op_flags, RTE_BBDEV_LDPC_SOFT_OUT_ENABLE);
1627 fcw->so_bypass_intlv = check_bit(op->ldpc_dec.op_flags,1584 fcw->so_bypass_intlv = check_bit(op->ldpc_dec.op_flags,
1628 RTE_BBDEV_LDPC_SOFT_OUT_DEINTERLEAVER_BYPASS);1585 RTE_BBDEV_LDPC_SOFT_OUT_DEINTERLEAVER_BYPASS);
1629 fcw->so_bypass_rm = check_bit(op->ldpc_dec.op_flags,1586 fcw->so_bypass_rm = 0;
1630 RTE_BBDEV_LDPC_SOFT_OUT_RM_BYPASS);
1631 fcw->minsum_offset = 1;1587 fcw->minsum_offset = 1;
1632 fcw->dec_llrclip = 2;1588 fcw->dec_llrclip = 2;
1633 }1589 }
16341590
1635 /*1591 /*
1636 * These are all implicitly set1592 * These are all implicitly set:
1637 * fcw->synd_post = 0;1593 * fcw->synd_post = 0;
1638 * fcw->dec_convllr = 0;1594 * fcw->dec_convllr = 0;
1639 * fcw->hcout_convllr = 0;1595 * fcw->hcout_convllr = 0;
1640 * fcw->hcout_size1 = 0;1596 * fcw->hcout_size1 = 0;
1597 * fcw->so_it = 0;
1641 * fcw->hcout_offset = 0;1598 * fcw->hcout_offset = 0;
1642 * fcw->negstop_th = 0;1599 * fcw->negstop_th = 0;
1643 * fcw->negstop_it = 0;1600 * fcw->negstop_it = 0;
@@ -2492,7 +2449,7 @@ vrb_enqueue_ldpc_dec_one_op_cb(struct acc_queue *q, struct rte_bbdev_dec_op *op,
2492 hq_output = op->ldpc_dec.harq_combined_output.data;2449 hq_output = op->ldpc_dec.harq_combined_output.data;
2493 hq_len = op->ldpc_dec.harq_combined_output.length;2450 hq_len = op->ldpc_dec.harq_combined_output.length;
2494 if (unlikely(!mbuf_append(hq_output_head, hq_output, hq_len))) {2451 if (unlikely(!mbuf_append(hq_output_head, hq_output, hq_len))) {
2495 rte_bbdev_log(ERR, "HARQ output mbuf issue %d %d\n",2452 rte_bbdev_log(ERR, "HARQ output mbuf issue %d %d",
2496 hq_output->buf_len,2453 hq_output->buf_len,
2497 hq_len);2454 hq_len);
2498 return -1;2455 return -1;
@@ -2985,7 +2942,7 @@ vrb_enqueue_ldpc_dec_cb(struct rte_bbdev_queue_data *q_data,
2985 break;2942 break;
2986 }2943 }
2987 avail -= 1;2944 avail -= 1;
2988 rte_bbdev_log(INFO, "Op %d %d %d %d %d %d %d %d %d %d %d %d\n",2945 rte_bbdev_log(INFO, "Op %d %d %d %d %d %d %d %d %d %d %d %d",
2989 i, ops[i]->ldpc_dec.op_flags, ops[i]->ldpc_dec.rv_index,2946 i, ops[i]->ldpc_dec.op_flags, ops[i]->ldpc_dec.rv_index,
2990 ops[i]->ldpc_dec.iter_max, ops[i]->ldpc_dec.iter_count,2947 ops[i]->ldpc_dec.iter_max, ops[i]->ldpc_dec.iter_count,
2991 ops[i]->ldpc_dec.basegraph, ops[i]->ldpc_dec.z_c,2948 ops[i]->ldpc_dec.basegraph, ops[i]->ldpc_dec.z_c,
@@ -3319,7 +3276,7 @@ vrb_dequeue_ldpc_dec_one_op_cb(struct rte_bbdev_queue_data *q_data,
3319 return -1;3276 return -1;
33203277
3321 rsp.val = atom_desc.rsp.val;3278 rsp.val = atom_desc.rsp.val;
3322 rte_bbdev_log_debug("Resp. desc %p: %x %x %x\n", desc, rsp.val, desc->rsp.add_info_0,3279 rte_bbdev_log_debug("Resp. desc %p: %x %x %x", desc, rsp.val, desc->rsp.add_info_0,
3323 desc->rsp.add_info_1);3280 desc->rsp.add_info_1);
33243281
3325 /* Dequeue. */3282 /* Dequeue. */
@@ -3440,7 +3397,7 @@ vrb_dequeue_dec_one_op_tb(struct acc_queue *q, struct rte_bbdev_dec_op **ref_op,
3440 }3397 }
34413398
3442 if (check_bit(op->ldpc_dec.op_flags, RTE_BBDEV_LDPC_CRC_TYPE_24A_CHECK)) {3399 if (check_bit(op->ldpc_dec.op_flags, RTE_BBDEV_LDPC_CRC_TYPE_24A_CHECK)) {
3443 rte_bbdev_log_debug("TB-CRC Check %x\n", tb_crc_check);3400 rte_bbdev_log_debug("TB-CRC Check %x", tb_crc_check);
3444 if (tb_crc_check > 0)3401 if (tb_crc_check > 0)
3445 op->status |= 1 << RTE_BBDEV_CRC_ERROR;3402 op->status |= 1 << RTE_BBDEV_CRC_ERROR;
3446 }3403 }
@@ -3985,7 +3942,7 @@ vrb2_check_mld_r_constraint(struct rte_bbdev_mldts_op *op) {
3985 layer_idx = RTE_MIN(op->mldts.num_layers - VRB2_MLD_MIN_LAYER,3942 layer_idx = RTE_MIN(op->mldts.num_layers - VRB2_MLD_MIN_LAYER,
3986 VRB2_MLD_MAX_LAYER - VRB2_MLD_MIN_LAYER);3943 VRB2_MLD_MAX_LAYER - VRB2_MLD_MIN_LAYER);
3987 rrep_idx = RTE_MIN(op->mldts.r_rep, VRB2_MLD_MAX_RREP);3944 rrep_idx = RTE_MIN(op->mldts.r_rep, VRB2_MLD_MAX_RREP);
3988 rte_bbdev_log_debug("RB %d index %d %d max %d\n", op->mldts.num_rbs, layer_idx, rrep_idx,3945 rte_bbdev_log_debug("RB %d index %d %d max %d", op->mldts.num_rbs, layer_idx, rrep_idx,
3989 max_rb[layer_idx][rrep_idx]);3946 max_rb[layer_idx][rrep_idx]);
39903947
3991 return (op->mldts.num_rbs <= max_rb[layer_idx][rrep_idx]);3948 return (op->mldts.num_rbs <= max_rb[layer_idx][rrep_idx]);
@@ -4650,7 +4607,7 @@ vrb1_configure(const char *dev_name, struct rte_acc_conf *conf)
4650 }4607 }
46514608
4652 if (aram_address > VRB1_WORDS_IN_ARAM_SIZE) {4609 if (aram_address > VRB1_WORDS_IN_ARAM_SIZE) {
4653 rte_bbdev_log(ERR, "ARAM Configuration not fitting %d %d\n",4610 rte_bbdev_log(ERR, "ARAM Configuration not fitting %d %d",
4654 aram_address, VRB1_WORDS_IN_ARAM_SIZE);4611 aram_address, VRB1_WORDS_IN_ARAM_SIZE);
4655 return -EINVAL;4612 return -EINVAL;
4656 }4613 }
@@ -5020,7 +4977,7 @@ vrb2_configure(const char *dev_name, struct rte_acc_conf *conf)
5020 }4977 }
5021 }4978 }
5022 if (aram_address > VRB2_WORDS_IN_ARAM_SIZE) {4979 if (aram_address > VRB2_WORDS_IN_ARAM_SIZE) {
5023 rte_bbdev_log(ERR, "ARAM Configuration not fitting %d %d\n",4980 rte_bbdev_log(ERR, "ARAM Configuration not fitting %d %d",
5024 aram_address, VRB2_WORDS_IN_ARAM_SIZE);4981 aram_address, VRB2_WORDS_IN_ARAM_SIZE);
5025 return -EINVAL;4982 return -EINVAL;
5026 }4983 }
diff --git a/drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c b/drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c
index 6b0644f..d60cd3a 100644
--- a/drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c
+++ b/drivers/baseband/fpga_5gnr_fec/rte_fpga_5gnr_fec.c
@@ -1498,14 +1498,14 @@ fpga_mutex_acquisition(struct fpga_queue *q)
1498 do {1498 do {
1499 if (cnt > 0)1499 if (cnt > 0)
1500 usleep(FPGA_TIMEOUT_CHECK_INTERVAL);1500 usleep(FPGA_TIMEOUT_CHECK_INTERVAL);
1501 rte_bbdev_log_debug("Acquiring Mutex for %x\n",1501 rte_bbdev_log_debug("Acquiring Mutex for %x",
1502 q->ddr_mutex_uuid);1502 q->ddr_mutex_uuid);
1503 fpga_reg_write_32(q->d->mmio_base,1503 fpga_reg_write_32(q->d->mmio_base,
1504 FPGA_5GNR_FEC_MUTEX,1504 FPGA_5GNR_FEC_MUTEX,
1505 mutex_ctrl);1505 mutex_ctrl);
1506 mutex_read = fpga_reg_read_32(q->d->mmio_base,1506 mutex_read = fpga_reg_read_32(q->d->mmio_base,
1507 FPGA_5GNR_FEC_MUTEX);1507 FPGA_5GNR_FEC_MUTEX);
1508 rte_bbdev_log_debug("Mutex %x cnt %d owner %x\n",1508 rte_bbdev_log_debug("Mutex %x cnt %d owner %x",
1509 mutex_read, cnt, q->ddr_mutex_uuid);1509 mutex_read, cnt, q->ddr_mutex_uuid);
1510 cnt++;1510 cnt++;
1511 } while ((mutex_read >> 16) != q->ddr_mutex_uuid);1511 } while ((mutex_read >> 16) != q->ddr_mutex_uuid);
@@ -1546,7 +1546,7 @@ fpga_harq_write_loopback(struct fpga_queue *q,
1546 FPGA_5GNR_FEC_HARQ_BUF_SIZE_REGS);1546 FPGA_5GNR_FEC_HARQ_BUF_SIZE_REGS);
1547 if (reg_32 < harq_in_length) {1547 if (reg_32 < harq_in_length) {
1548 left_length = reg_32;1548 left_length = reg_32;
1549 rte_bbdev_log(ERR, "HARQ in length > HARQ buffer size\n");1549 rte_bbdev_log(ERR, "HARQ in length > HARQ buffer size");
1550 }1550 }
15511551
1552 input = (uint64_t *)rte_pktmbuf_mtod_offset(harq_input,1552 input = (uint64_t *)rte_pktmbuf_mtod_offset(harq_input,
@@ -1609,18 +1609,18 @@ fpga_harq_read_loopback(struct fpga_queue *q,
1609 FPGA_5GNR_FEC_HARQ_BUF_SIZE_REGS);1609 FPGA_5GNR_FEC_HARQ_BUF_SIZE_REGS);
1610 if (reg < harq_in_length) {1610 if (reg < harq_in_length) {
1611 harq_in_length = reg;1611 harq_in_length = reg;
1612 rte_bbdev_log(ERR, "HARQ in length > HARQ buffer size\n");1612 rte_bbdev_log(ERR, "HARQ in length > HARQ buffer size");
1613 }1613 }
16141614
1615 if (!mbuf_append(harq_output, harq_output, harq_in_length)) {1615 if (!mbuf_append(harq_output, harq_output, harq_in_length)) {
1616 rte_bbdev_log(ERR, "HARQ output buffer warning %d %d\n",1616 rte_bbdev_log(ERR, "HARQ output buffer warning %d %d",
1617 harq_output->buf_len -1617 harq_output->buf_len -
1618 rte_pktmbuf_headroom(harq_output),1618 rte_pktmbuf_headroom(harq_output),
1619 harq_in_length);1619 harq_in_length);
1620 harq_in_length = harq_output->buf_len -1620 harq_in_length = harq_output->buf_len -
1621 rte_pktmbuf_headroom(harq_output);1621 rte_pktmbuf_headroom(harq_output);
1622 if (!mbuf_append(harq_output, harq_output, harq_in_length)) {1622 if (!mbuf_append(harq_output, harq_output, harq_in_length)) {
1623 rte_bbdev_log(ERR, "HARQ output buffer issue %d %d\n",1623 rte_bbdev_log(ERR, "HARQ output buffer issue %d %d",
1624 harq_output->buf_len, harq_in_length);1624 harq_output->buf_len, harq_in_length);
1625 return -1;1625 return -1;
1626 }1626 }
@@ -1642,7 +1642,7 @@ fpga_harq_read_loopback(struct fpga_queue *q,
1642 FPGA_5GNR_FEC_DDR4_RD_RDY_REGS);1642 FPGA_5GNR_FEC_DDR4_RD_RDY_REGS);
1643 if (reg == FPGA_DDR_OVERFLOW) {1643 if (reg == FPGA_DDR_OVERFLOW) {
1644 rte_bbdev_log(ERR,1644 rte_bbdev_log(ERR,
1645 "Read address is overflow!\n");1645 "Read address is overflow!");
1646 return -1;1646 return -1;
1647 }1647 }
1648 }1648 }
diff --git a/drivers/baseband/la12xx/bbdev_la12xx.c b/drivers/baseband/la12xx/bbdev_la12xx.c
index 1a56e73..2432cdf 100644
--- a/drivers/baseband/la12xx/bbdev_la12xx.c
+++ b/drivers/baseband/la12xx/bbdev_la12xx.c
@@ -201,7 +201,7 @@ la12xx_e200_queue_setup(struct rte_bbdev *dev,
201 q_priv->la12xx_core_id = LA12XX_LDPC_DEC_CORE;201 q_priv->la12xx_core_id = LA12XX_LDPC_DEC_CORE;
202 break;202 break;
203 default:203 default:
204 rte_bbdev_log(ERR, "Unsupported op type\n");204 rte_bbdev_log(ERR, "Unsupported op type");
205 return -1;205 return -1;
206 }206 }
207207
@@ -269,7 +269,7 @@ la12xx_e200_queue_setup(struct rte_bbdev *dev,
269 ch->feca_blk_id = rte_cpu_to_be_32(priv->num_ldpc_dec_queues++);269 ch->feca_blk_id = rte_cpu_to_be_32(priv->num_ldpc_dec_queues++);
270 break;270 break;
271 default:271 default:
272 rte_bbdev_log(ERR, "Not supported op type\n");272 rte_bbdev_log(ERR, "Not supported op type");
273 return -1;273 return -1;
274 }274 }
275 ch->op_type = rte_cpu_to_be_32(q_priv->op_type);275 ch->op_type = rte_cpu_to_be_32(q_priv->op_type);
@@ -789,6 +789,7 @@ setup_la12xx_dev(struct rte_bbdev *dev)
789 ipc_priv->hugepg_start.size = hp->len;789 ipc_priv->hugepg_start.size = hp->len;
790790
791 rte_free(hp);791 rte_free(hp);
792 hp = NULL;
792 }793 }
793794
794 dev_ipc = open_ipc_dev(priv->modem_id);795 dev_ipc = open_ipc_dev(priv->modem_id);
diff --git a/drivers/baseband/turbo_sw/bbdev_turbo_software.c b/drivers/baseband/turbo_sw/bbdev_turbo_software.c
index 8ddc7ff..a66dcd8 100644
--- a/drivers/baseband/turbo_sw/bbdev_turbo_software.c
+++ b/drivers/baseband/turbo_sw/bbdev_turbo_software.c
@@ -269,7 +269,7 @@ info_get(struct rte_bbdev *dev, struct rte_bbdev_driver_info *dev_info)
269 dev_info->num_queues[op_cap->type] = num_queue_per_type;269 dev_info->num_queues[op_cap->type] = num_queue_per_type;
270 }270 }
271271
272 rte_bbdev_log_debug("got device info from %u\n", dev->data->dev_id);272 rte_bbdev_log_debug("got device info from %u", dev->data->dev_id);
273}273}
274274
275/* Release queue */275/* Release queue */
@@ -1951,7 +1951,7 @@ turbo_sw_bbdev_probe(struct rte_vdev_device *vdev)
1951 parse_turbo_sw_params(&init_params, input_args);1951 parse_turbo_sw_params(&init_params, input_args);
19521952
1953 rte_bbdev_log_debug(1953 rte_bbdev_log_debug(
1954 "Initialising %s on NUMA node %d with max queues: %d\n",1954 "Initialising %s on NUMA node %d with max queues: %d",
1955 name, init_params.socket_id, init_params.queues_num);1955 name, init_params.socket_id, init_params.queues_num);
19561956
1957 return turbo_sw_bbdev_create(vdev, &init_params);1957 return turbo_sw_bbdev_create(vdev, &init_params);
diff --git a/drivers/bus/cdx/cdx_vfio.c b/drivers/bus/cdx/cdx_vfio.c
index 79abc3f..664f267 100644
--- a/drivers/bus/cdx/cdx_vfio.c
+++ b/drivers/bus/cdx/cdx_vfio.c
@@ -638,7 +638,7 @@ rte_cdx_vfio_bm_enable(struct rte_cdx_device *dev)
638 feature->flags |= VFIO_DEVICE_FEATURE_SET;638 feature->flags |= VFIO_DEVICE_FEATURE_SET;
639 ret = ioctl(vfio_dev_fd, RTE_VFIO_DEVICE_FEATURE, feature);639 ret = ioctl(vfio_dev_fd, RTE_VFIO_DEVICE_FEATURE, feature);
640 if (ret) {640 if (ret) {
641 CDX_BUS_ERR("Bus Master configuring not supported for device: %s, error: %d (%s)\n",641 CDX_BUS_ERR("Bus Master configuring not supported for device: %s, error: %d (%s)",
642 dev->name, errno, strerror(errno));642 dev->name, errno, strerror(errno));
643 free(feature);643 free(feature);
644 return ret;644 return ret;
@@ -648,7 +648,7 @@ rte_cdx_vfio_bm_enable(struct rte_cdx_device *dev)
648 vfio_bm_feature->op = VFIO_DEVICE_FEATURE_SET_MASTER;648 vfio_bm_feature->op = VFIO_DEVICE_FEATURE_SET_MASTER;
649 ret = ioctl(vfio_dev_fd, RTE_VFIO_DEVICE_FEATURE, feature);649 ret = ioctl(vfio_dev_fd, RTE_VFIO_DEVICE_FEATURE, feature);
650 if (ret < 0)650 if (ret < 0)
651 CDX_BUS_ERR("BM Enable Error for device: %s, Error: %d (%s)\n",651 CDX_BUS_ERR("BM Enable Error for device: %s, Error: %d (%s)",
652 dev->name, errno, strerror(errno));652 dev->name, errno, strerror(errno));
653653
654 free(feature);654 free(feature);
@@ -682,7 +682,7 @@ rte_cdx_vfio_bm_disable(struct rte_cdx_device *dev)
682 feature->flags |= VFIO_DEVICE_FEATURE_SET;682 feature->flags |= VFIO_DEVICE_FEATURE_SET;
683 ret = ioctl(vfio_dev_fd, RTE_VFIO_DEVICE_FEATURE, feature);683 ret = ioctl(vfio_dev_fd, RTE_VFIO_DEVICE_FEATURE, feature);
684 if (ret) {684 if (ret) {
685 CDX_BUS_ERR("Bus Master configuring not supported for device: %s, Error: %d (%s)\n",685 CDX_BUS_ERR("Bus Master configuring not supported for device: %s, Error: %d (%s)",
686 dev->name, errno, strerror(errno));686 dev->name, errno, strerror(errno));
687 free(feature);687 free(feature);
688 return ret;688 return ret;
@@ -692,7 +692,7 @@ rte_cdx_vfio_bm_disable(struct rte_cdx_device *dev)
692 vfio_bm_feature->op = VFIO_DEVICE_FEATURE_CLEAR_MASTER;692 vfio_bm_feature->op = VFIO_DEVICE_FEATURE_CLEAR_MASTER;
693 ret = ioctl(vfio_dev_fd, RTE_VFIO_DEVICE_FEATURE, feature);693 ret = ioctl(vfio_dev_fd, RTE_VFIO_DEVICE_FEATURE, feature);
694 if (ret < 0)694 if (ret < 0)
695 CDX_BUS_ERR("BM Disable Error for device: %s, Error: %d (%s)\n",695 CDX_BUS_ERR("BM Disable Error for device: %s, Error: %d (%s)",
696 dev->name, errno, strerror(errno));696 dev->name, errno, strerror(errno));
697697
698 free(feature);698 free(feature);
diff --git a/drivers/bus/dpaa/base/fman/fman.c b/drivers/bus/dpaa/base/fman/fman.c
index 1814372..8263d42 100644
--- a/drivers/bus/dpaa/base/fman/fman.c
+++ b/drivers/bus/dpaa/base/fman/fman.c
@@ -153,7 +153,7 @@ static void fman_if_vsp_init(struct __fman_if *__if)
153 size_t lenp;153 size_t lenp;
154 const uint8_t mac_idx[] = {-1, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1};154 const uint8_t mac_idx[] = {-1, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1};
155155
156 if (__if->__if.mac_type == fman_mac_1g) {156 if (__if->__if.mac_idx <= 8) {
157 for_each_compatible_node(dev, NULL,157 for_each_compatible_node(dev, NULL,
158 "fsl,fman-port-1g-rx-extended-args") {158 "fsl,fman-port-1g-rx-extended-args") {
159 prop = of_get_property(dev, "cell-index", &lenp);159 prop = of_get_property(dev, "cell-index", &lenp);
@@ -176,7 +176,32 @@ static void fman_if_vsp_init(struct __fman_if *__if)
176 }176 }
177 }177 }
178 }178 }
179 } else if (__if->__if.mac_type == fman_mac_10g) {179
180 for_each_compatible_node(dev, NULL,
181 "fsl,fman-port-op-extended-args") {
182 prop = of_get_property(dev, "cell-index", &lenp);
183
184 if (prop) {
185 cell_index = of_read_number(&prop[0],
186 lenp / sizeof(phandle));
187
188 if (cell_index == __if->__if.mac_idx) {
189 prop = of_get_property(dev,
190 "vsp-window",
191 &lenp);
192
193 if (prop) {
194 __if->__if.num_profiles =
195 of_read_number(&prop[0],
196 1);
197 __if->__if.base_profile_id =
198 of_read_number(&prop[1],
199 1);
200 }
201 }
202 }
203 }
204 } else {
180 for_each_compatible_node(dev, NULL,205 for_each_compatible_node(dev, NULL,
181 "fsl,fman-port-10g-rx-extended-args") {206 "fsl,fman-port-10g-rx-extended-args") {
182 prop = of_get_property(dev, "cell-index", &lenp);207 prop = of_get_property(dev, "cell-index", &lenp);
diff --git a/drivers/bus/dpaa/base/fman/fman_hw.c b/drivers/bus/dpaa/base/fman/fman_hw.c
index 24a99f7..97e7928 100644
--- a/drivers/bus/dpaa/base/fman/fman_hw.c
+++ b/drivers/bus/dpaa/base/fman/fman_hw.c
@@ -243,10 +243,11 @@ fman_if_stats_get_all(struct fman_if *p, uint64_t *value, int n)
243 int i;243 int i;
244 uint64_t base_offset = offsetof(struct memac_regs, reoct_l);244 uint64_t base_offset = offsetof(struct memac_regs, reoct_l);
245245
246 for (i = 0; i < n; i++)246 for (i = 0; i < n; i++) {
247 value[i] = (((u64)in_be32((char *)regs + base_offset + 8 * i) |247 uint64_t a = in_be32((char *)regs + base_offset + 8 * i);
248 (u64)in_be32((char *)regs + base_offset +248 uint64_t b = in_be32((char *)regs + base_offset + 8 * i + 4);
249 8 * i + 4)) << 32);249 value[i] = a | b << 32;
250 }
250}251}
251252
252void253void
diff --git a/drivers/bus/dpaa/base/qbman/qman.c b/drivers/bus/dpaa/base/qbman/qman.c
index 83db0a5..3a1a843 100644
--- a/drivers/bus/dpaa/base/qbman/qman.c
+++ b/drivers/bus/dpaa/base/qbman/qman.c
@@ -294,10 +294,32 @@ static inline void qman_stop_dequeues_ex(struct qman_portal *p)
294 qm_dqrr_set_maxfill(&p->p, 0);294 qm_dqrr_set_maxfill(&p->p, 0);
295}295}
296296
297static inline void qm_mr_pvb_update(struct qm_portal *portal)
298{
299 register struct qm_mr *mr = &portal->mr;
300 const struct qm_mr_entry *res = qm_cl(mr->ring, mr->pi);
301
302#ifdef RTE_LIBRTE_DPAA_HWDEBUG
303 DPAA_ASSERT(mr->pmode == qm_mr_pvb);
304#endif
305 /* when accessing 'verb', use __raw_readb() to ensure that compiler
306 * inlining doesn't try to optimise out "excess reads".
307 */
308 if ((__raw_readb(&res->ern.verb) & QM_MR_VERB_VBIT) == mr->vbit) {
309 mr->pi = (mr->pi + 1) & (QM_MR_SIZE - 1);
310 if (!mr->pi)
311 mr->vbit ^= QM_MR_VERB_VBIT;
312 mr->fill++;
313 res = MR_INC(res);
314 }
315 dcbit_ro(res);
316}
317
297static int drain_mr_fqrni(struct qm_portal *p)318static int drain_mr_fqrni(struct qm_portal *p)
298{319{
299 const struct qm_mr_entry *msg;320 const struct qm_mr_entry *msg;
300loop:321loop:
322 qm_mr_pvb_update(p);
301 msg = qm_mr_current(p);323 msg = qm_mr_current(p);
302 if (!msg) {324 if (!msg) {
303 /*325 /*
@@ -319,6 +341,7 @@ loop:
319 do {341 do {
320 now = mfatb();342 now = mfatb();
321 } while ((then + 10000) > now);343 } while ((then + 10000) > now);
344 qm_mr_pvb_update(p);
322 msg = qm_mr_current(p);345 msg = qm_mr_current(p);
323 if (!msg)346 if (!msg)
324 return 0;347 return 0;
@@ -481,27 +504,6 @@ static inline int qm_mr_init(struct qm_portal *portal,
481 return 0;504 return 0;
482}505}
483506
484static inline void qm_mr_pvb_update(struct qm_portal *portal)
485{
486 register struct qm_mr *mr = &portal->mr;
487 const struct qm_mr_entry *res = qm_cl(mr->ring, mr->pi);
488
489#ifdef RTE_LIBRTE_DPAA_HWDEBUG
490 DPAA_ASSERT(mr->pmode == qm_mr_pvb);
491#endif
492 /* when accessing 'verb', use __raw_readb() to ensure that compiler
493 * inlining doesn't try to optimise out "excess reads".
494 */
495 if ((__raw_readb(&res->ern.verb) & QM_MR_VERB_VBIT) == mr->vbit) {
496 mr->pi = (mr->pi + 1) & (QM_MR_SIZE - 1);
497 if (!mr->pi)
498 mr->vbit ^= QM_MR_VERB_VBIT;
499 mr->fill++;
500 res = MR_INC(res);
501 }
502 dcbit_ro(res);
503}
504
505struct qman_portal *507struct qman_portal *
506qman_init_portal(struct qman_portal *portal,508qman_init_portal(struct qman_portal *portal,
507 const struct qm_portal_config *c,509 const struct qm_portal_config *c,
@@ -1825,6 +1827,8 @@ int qman_retire_fq(struct qman_fq *fq, u32 *flags)
1825 }1827 }
1826out:1828out:
1827 FQUNLOCK(fq);1829 FQUNLOCK(fq);
1830 /* Draining FQRNIs, if any */
1831 drain_mr_fqrni(&p->p);
1828 return rval;1832 return rval;
1829}1833}
18301834
@@ -2165,8 +2169,10 @@ int qman_set_vdq(struct qman_fq *fq, u16 num, uint32_t vdqcr_flags)
21652169
2166 if (!p->vdqcr_owned) {2170 if (!p->vdqcr_owned) {
2167 FQLOCK(fq);2171 FQLOCK(fq);
2168 if (fq_isset(fq, QMAN_FQ_STATE_VDQCR))2172 if (fq_isset(fq, QMAN_FQ_STATE_VDQCR)) {
2173 FQUNLOCK(fq);
2169 goto escape;2174 goto escape;
2175 }
2170 fq_set(fq, QMAN_FQ_STATE_VDQCR);2176 fq_set(fq, QMAN_FQ_STATE_VDQCR);
2171 FQUNLOCK(fq);2177 FQUNLOCK(fq);
2172 p->vdqcr_owned = fq;2178 p->vdqcr_owned = fq;
@@ -2199,8 +2205,10 @@ int qman_volatile_dequeue(struct qman_fq *fq, u32 flags __maybe_unused,
21992205
2200 if (!p->vdqcr_owned) {2206 if (!p->vdqcr_owned) {
2201 FQLOCK(fq);2207 FQLOCK(fq);
2202 if (fq_isset(fq, QMAN_FQ_STATE_VDQCR))2208 if (fq_isset(fq, QMAN_FQ_STATE_VDQCR)) {
2209 FQUNLOCK(fq);
2203 goto escape;2210 goto escape;
2211 }
2204 fq_set(fq, QMAN_FQ_STATE_VDQCR);2212 fq_set(fq, QMAN_FQ_STATE_VDQCR);
2205 FQUNLOCK(fq);2213 FQUNLOCK(fq);
2206 p->vdqcr_owned = fq;2214 p->vdqcr_owned = fq;
diff --git a/drivers/bus/dpaa/include/fman.h b/drivers/bus/dpaa/include/fman.h
index 3a6dd55..19f6132 100644
--- a/drivers/bus/dpaa/include/fman.h
+++ b/drivers/bus/dpaa/include/fman.h
@@ -403,7 +403,8 @@ extern int fman_ccsr_map_fd;
403#define FMAN_ERR(rc, fmt, args...) \403#define FMAN_ERR(rc, fmt, args...) \
404 do { \404 do { \
405 _errno = (rc); \405 _errno = (rc); \
406 DPAA_BUS_LOG(ERR, fmt "(%d)", ##args, errno); \406 rte_log(RTE_LOG_ERR, dpaa_logtype_bus, "dpaa: " fmt "(%d)\n", \
407 ##args, errno); \
407 } while (0)408 } while (0)
408409
409#define FMAN_IP_REV_1 0xC30C4410#define FMAN_IP_REV_1 0xC30C4
diff --git a/drivers/bus/fslmc/fslmc_bus.c b/drivers/bus/fslmc/fslmc_bus.c
index 89f0f32..adb452f 100644
--- a/drivers/bus/fslmc/fslmc_bus.c
+++ b/drivers/bus/fslmc/fslmc_bus.c
@@ -499,7 +499,7 @@ rte_fslmc_find_device(const struct rte_device *start, rte_dev_cmp_t cmp,
499 const struct rte_dpaa2_device *dstart;499 const struct rte_dpaa2_device *dstart;
500 struct rte_dpaa2_device *dev;500 struct rte_dpaa2_device *dev;
501501
502 DPAA2_BUS_DEBUG("Finding a device named %s\n", (const char *)data);502 DPAA2_BUS_DEBUG("Finding a device named %s", (const char *)data);
503503
504 /* find_device is always called with an opaque object which should be504 /* find_device is always called with an opaque object which should be
505 * passed along to the 'cmp' function iterating over all device obj505 * passed along to the 'cmp' function iterating over all device obj
@@ -514,7 +514,7 @@ rte_fslmc_find_device(const struct rte_device *start, rte_dev_cmp_t cmp,
514 }514 }
515 while (dev != NULL) {515 while (dev != NULL) {
516 if (cmp(&dev->device, data) == 0) {516 if (cmp(&dev->device, data) == 0) {
517 DPAA2_BUS_DEBUG("Found device (%s)\n",517 DPAA2_BUS_DEBUG("Found device (%s)",
518 dev->device.name);518 dev->device.name);
519 return &dev->device;519 return &dev->device;
520 }520 }
@@ -628,14 +628,14 @@ fslmc_bus_dev_iterate(const void *start, const char *str,
628628
629 /* Expectation is that device would be name=device_name */629 /* Expectation is that device would be name=device_name */
630 if (strncmp(str, "name=", 5) != 0) {630 if (strncmp(str, "name=", 5) != 0) {
631 DPAA2_BUS_DEBUG("Invalid device string (%s)\n", str);631 DPAA2_BUS_DEBUG("Invalid device string (%s)", str);
632 return NULL;632 return NULL;
633 }633 }
634634
635 /* Now that name=device_name format is available, split */635 /* Now that name=device_name format is available, split */
636 dup = strdup(str);636 dup = strdup(str);
637 if (dup == NULL) {637 if (dup == NULL) {
638 DPAA2_BUS_DEBUG("Dup string (%s) failed!\n", str);638 DPAA2_BUS_DEBUG("Dup string (%s) failed!", str);
639 return NULL;639 return NULL;
640 }640 }
641 dev_name = dup + strlen("name=");641 dev_name = dup + strlen("name=");
diff --git a/drivers/bus/fslmc/fslmc_vfio.c b/drivers/bus/fslmc/fslmc_vfio.c
index 5966776..b90efeb 100644
--- a/drivers/bus/fslmc/fslmc_vfio.c
+++ b/drivers/bus/fslmc/fslmc_vfio.c
@@ -232,7 +232,7 @@ fslmc_memevent_cb(enum rte_mem_event type, const void *addr, size_t len,
232232
233 /* iova_addr may be set to RTE_BAD_IOVA */233 /* iova_addr may be set to RTE_BAD_IOVA */
234 if (iova_addr == RTE_BAD_IOVA) {234 if (iova_addr == RTE_BAD_IOVA) {
235 DPAA2_BUS_DEBUG("Segment has invalid iova, skipping\n");235 DPAA2_BUS_DEBUG("Segment has invalid iova, skipping");
236 cur_len += map_len;236 cur_len += map_len;
237 continue;237 continue;
238 }238 }
@@ -389,7 +389,7 @@ rte_fslmc_vfio_mem_dmamap(uint64_t vaddr, uint64_t iova, uint64_t size)
389 dma_map.vaddr = vaddr;389 dma_map.vaddr = vaddr;
390 dma_map.iova = iova;390 dma_map.iova = iova;
391391
392 DPAA2_BUS_DEBUG("VFIOdmamap 0x%"PRIx64":0x%"PRIx64",size 0x%"PRIx64"\n",392 DPAA2_BUS_DEBUG("VFIOdmamap 0x%"PRIx64":0x%"PRIx64",size 0x%"PRIx64,
393 (uint64_t)dma_map.vaddr, (uint64_t)dma_map.iova,393 (uint64_t)dma_map.vaddr, (uint64_t)dma_map.iova,
394 (uint64_t)dma_map.size);394 (uint64_t)dma_map.size);
395 ret = ioctl(group->container->fd, VFIO_IOMMU_MAP_DMA,395 ret = ioctl(group->container->fd, VFIO_IOMMU_MAP_DMA,
@@ -480,13 +480,13 @@ fslmc_vfio_setup_device(const char *sysfs_base, const char *dev_addr,
480 ret = ioctl(vfio_group_fd, VFIO_GROUP_GET_STATUS, &group_status);480 ret = ioctl(vfio_group_fd, VFIO_GROUP_GET_STATUS, &group_status);
481 if (ret) {481 if (ret) {
482 DPAA2_BUS_ERR(" %s cannot get group status, "482 DPAA2_BUS_ERR(" %s cannot get group status, "
483 "error %i (%s)\n", dev_addr,483 "error %i (%s)", dev_addr,
484 errno, strerror(errno));484 errno, strerror(errno));
485 close(vfio_group_fd);485 close(vfio_group_fd);
486 rte_vfio_clear_group(vfio_group_fd);486 rte_vfio_clear_group(vfio_group_fd);
487 return -1;487 return -1;
488 } else if (!(group_status.flags & VFIO_GROUP_FLAGS_VIABLE)) {488 } else if (!(group_status.flags & VFIO_GROUP_FLAGS_VIABLE)) {
489 DPAA2_BUS_ERR(" %s VFIO group is not viable!\n", dev_addr);489 DPAA2_BUS_ERR(" %s VFIO group is not viable!", dev_addr);
490 close(vfio_group_fd);490 close(vfio_group_fd);
491 rte_vfio_clear_group(vfio_group_fd);491 rte_vfio_clear_group(vfio_group_fd);
492 return -1;492 return -1;
@@ -503,7 +503,7 @@ fslmc_vfio_setup_device(const char *sysfs_base, const char *dev_addr,
503 &vfio_container_fd);503 &vfio_container_fd);
504 if (ret) {504 if (ret) {
505 DPAA2_BUS_ERR(" %s cannot add VFIO group to container, "505 DPAA2_BUS_ERR(" %s cannot add VFIO group to container, "
506 "error %i (%s)\n", dev_addr,506 "error %i (%s)", dev_addr,
507 errno, strerror(errno));507 errno, strerror(errno));
508 close(vfio_group_fd);508 close(vfio_group_fd);
509 close(vfio_container_fd);509 close(vfio_container_fd);
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c b/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c
index 07256ed..7e858a1 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_dpci.c
@@ -86,7 +86,7 @@ rte_dpaa2_create_dpci_device(int vdev_fd __rte_unused,
86 sizeof(struct queue_storage_info_t),86 sizeof(struct queue_storage_info_t),
87 RTE_CACHE_LINE_SIZE);87 RTE_CACHE_LINE_SIZE);
88 if (!rxq->q_storage) {88 if (!rxq->q_storage) {
89 DPAA2_BUS_ERR("q_storage allocation failed\n");89 DPAA2_BUS_ERR("q_storage allocation failed");
90 ret = -ENOMEM;90 ret = -ENOMEM;
91 goto err;91 goto err;
92 }92 }
@@ -94,7 +94,7 @@ rte_dpaa2_create_dpci_device(int vdev_fd __rte_unused,
94 memset(rxq->q_storage, 0, sizeof(struct queue_storage_info_t));94 memset(rxq->q_storage, 0, sizeof(struct queue_storage_info_t));
95 ret = dpaa2_alloc_dq_storage(rxq->q_storage);95 ret = dpaa2_alloc_dq_storage(rxq->q_storage);
96 if (ret) {96 if (ret) {
97 DPAA2_BUS_ERR("dpaa2_alloc_dq_storage failed\n");97 DPAA2_BUS_ERR("dpaa2_alloc_dq_storage failed");
98 goto err;98 goto err;
99 }99 }
100 }100 }
diff --git a/drivers/bus/fslmc/qbman/qbman_debug.c b/drivers/bus/fslmc/qbman/qbman_debug.c
index eea0698..0e471ec 100644
--- a/drivers/bus/fslmc/qbman/qbman_debug.c
+++ b/drivers/bus/fslmc/qbman/qbman_debug.c
@@ -1,6 +1,6 @@
1/* SPDX-License-Identifier: BSD-3-Clause1/* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright (C) 2015 Freescale Semiconductor, Inc.2 * Copyright (C) 2015 Freescale Semiconductor, Inc.
3 * Copyright 2018-2020 NXP3 * Copyright 2018-2020,2022 NXP
4 */4 */
55
6#include "compat.h"6#include "compat.h"
@@ -37,6 +37,7 @@ int qbman_bp_query(struct qbman_swp *s, uint32_t bpid,
37 struct qbman_bp_query_rslt *r)37 struct qbman_bp_query_rslt *r)
38{38{
39 struct qbman_bp_query_desc *p;39 struct qbman_bp_query_desc *p;
40 struct qbman_bp_query_rslt *bp_query_rslt;
4041
41 /* Start the management command */42 /* Start the management command */
42 p = (struct qbman_bp_query_desc *)qbman_swp_mc_start(s);43 p = (struct qbman_bp_query_desc *)qbman_swp_mc_start(s);
@@ -47,14 +48,16 @@ int qbman_bp_query(struct qbman_swp *s, uint32_t bpid,
47 p->bpid = bpid;48 p->bpid = bpid;
4849
49 /* Complete the management command */50 /* Complete the management command */
50 *r = *(struct qbman_bp_query_rslt *)qbman_swp_mc_complete(s, p,51 bp_query_rslt = (struct qbman_bp_query_rslt *)qbman_swp_mc_complete(s,
51 QBMAN_BP_QUERY);52 p, QBMAN_BP_QUERY);
52 if (!r) {53 if (!bp_query_rslt) {
53 pr_err("qbman: Query BPID %d failed, no response\n",54 pr_err("qbman: Query BPID %d failed, no response\n",
54 bpid);55 bpid);
55 return -EIO;56 return -EIO;
56 }57 }
5758
59 *r = *bp_query_rslt;
60
58 /* Decode the outcome */61 /* Decode the outcome */
59 QBMAN_BUG_ON((r->verb & QBMAN_RESPONSE_VERB_MASK) != QBMAN_BP_QUERY);62 QBMAN_BUG_ON((r->verb & QBMAN_RESPONSE_VERB_MASK) != QBMAN_BP_QUERY);
6063
@@ -202,20 +205,23 @@ int qbman_fq_query(struct qbman_swp *s, uint32_t fqid,
202 struct qbman_fq_query_rslt *r)205 struct qbman_fq_query_rslt *r)
203{206{
204 struct qbman_fq_query_desc *p;207 struct qbman_fq_query_desc *p;
208 struct qbman_fq_query_rslt *fq_query_rslt;
205209
206 p = (struct qbman_fq_query_desc *)qbman_swp_mc_start(s);210 p = (struct qbman_fq_query_desc *)qbman_swp_mc_start(s);
207 if (!p)211 if (!p)
208 return -EBUSY;212 return -EBUSY;
209213
210 p->fqid = fqid;214 p->fqid = fqid;
211 *r = *(struct qbman_fq_query_rslt *)qbman_swp_mc_complete(s, p,215 fq_query_rslt = (struct qbman_fq_query_rslt *)qbman_swp_mc_complete(s,
212 QBMAN_FQ_QUERY);216 p, QBMAN_FQ_QUERY);
213 if (!r) {217 if (!fq_query_rslt) {
214 pr_err("qbman: Query FQID %d failed, no response\n",218 pr_err("qbman: Query FQID %d failed, no response\n",
215 fqid);219 fqid);
216 return -EIO;220 return -EIO;
217 }221 }
218222
223 *r = *fq_query_rslt;
224
219 /* Decode the outcome */225 /* Decode the outcome */
220 QBMAN_BUG_ON((r->verb & QBMAN_RESPONSE_VERB_MASK) != QBMAN_FQ_QUERY);226 QBMAN_BUG_ON((r->verb & QBMAN_RESPONSE_VERB_MASK) != QBMAN_FQ_QUERY);
221227
@@ -398,20 +404,23 @@ int qbman_cgr_query(struct qbman_swp *s, uint32_t cgid,
398 struct qbman_cgr_query_rslt *r)404 struct qbman_cgr_query_rslt *r)
399{405{
400 struct qbman_cgr_query_desc *p;406 struct qbman_cgr_query_desc *p;
407 struct qbman_cgr_query_rslt *cgr_query_rslt;
401408
402 p = (struct qbman_cgr_query_desc *)qbman_swp_mc_start(s);409 p = (struct qbman_cgr_query_desc *)qbman_swp_mc_start(s);
403 if (!p)410 if (!p)
404 return -EBUSY;411 return -EBUSY;
405412
406 p->cgid = cgid;413 p->cgid = cgid;
407 *r = *(struct qbman_cgr_query_rslt *)qbman_swp_mc_complete(s, p,414 cgr_query_rslt = (struct qbman_cgr_query_rslt *)qbman_swp_mc_complete(s,
408 QBMAN_CGR_QUERY);415 p, QBMAN_CGR_QUERY);
409 if (!r) {416 if (!cgr_query_rslt) {
410 pr_err("qbman: Query CGID %d failed, no response\n",417 pr_err("qbman: Query CGID %d failed, no response\n",
411 cgid);418 cgid);
412 return -EIO;419 return -EIO;
413 }420 }
414421
422 *r = *cgr_query_rslt;
423
415 /* Decode the outcome */424 /* Decode the outcome */
416 QBMAN_BUG_ON((r->verb & QBMAN_RESPONSE_VERB_MASK) != QBMAN_CGR_QUERY);425 QBMAN_BUG_ON((r->verb & QBMAN_RESPONSE_VERB_MASK) != QBMAN_CGR_QUERY);
417426
@@ -473,20 +482,23 @@ int qbman_cgr_wred_query(struct qbman_swp *s, uint32_t cgid,
473 struct qbman_wred_query_rslt *r)482 struct qbman_wred_query_rslt *r)
474{483{
475 struct qbman_cgr_query_desc *p;484 struct qbman_cgr_query_desc *p;
485 struct qbman_wred_query_rslt *wred_query_rslt;
476486
477 p = (struct qbman_cgr_query_desc *)qbman_swp_mc_start(s);487 p = (struct qbman_cgr_query_desc *)qbman_swp_mc_start(s);
478 if (!p)488 if (!p)
479 return -EBUSY;489 return -EBUSY;
480490
481 p->cgid = cgid;491 p->cgid = cgid;
482 *r = *(struct qbman_wred_query_rslt *)qbman_swp_mc_complete(s, p,492 wred_query_rslt = (struct qbman_wred_query_rslt *)qbman_swp_mc_complete(
483 QBMAN_WRED_QUERY);493 s, p, QBMAN_WRED_QUERY);
484 if (!r) {494 if (!wred_query_rslt) {
485 pr_err("qbman: Query CGID WRED %d failed, no response\n",495 pr_err("qbman: Query CGID WRED %d failed, no response\n",
486 cgid);496 cgid);
487 return -EIO;497 return -EIO;
488 }498 }
489499
500 *r = *wred_query_rslt;
501
490 /* Decode the outcome */502 /* Decode the outcome */
491 QBMAN_BUG_ON((r->verb & QBMAN_RESPONSE_VERB_MASK) != QBMAN_WRED_QUERY);503 QBMAN_BUG_ON((r->verb & QBMAN_RESPONSE_VERB_MASK) != QBMAN_WRED_QUERY);
492504
@@ -527,7 +539,7 @@ void qbman_cgr_attr_wred_dp_decompose(uint32_t dp, uint64_t *minth,
527 if (mn == 0)539 if (mn == 0)
528 *maxth = ma;540 *maxth = ma;
529 else541 else
530 *maxth = ((ma+256) * (1<<(mn-1)));542 *maxth = ((uint64_t)(ma+256) * (1<<(mn-1)));
531543
532 if (step_s == 0)544 if (step_s == 0)
533 *minth = *maxth - step_i;545 *minth = *maxth - step_i;
@@ -630,6 +642,7 @@ int qbman_wqchan_query(struct qbman_swp *s, uint16_t chanid,
630 struct qbman_wqchan_query_rslt *r)642 struct qbman_wqchan_query_rslt *r)
631{643{
632 struct qbman_wqchan_query_desc *p;644 struct qbman_wqchan_query_desc *p;
645 struct qbman_wqchan_query_rslt *wqchan_query_rslt;
633646
634 /* Start the management command */647 /* Start the management command */
635 p = (struct qbman_wqchan_query_desc *)qbman_swp_mc_start(s);648 p = (struct qbman_wqchan_query_desc *)qbman_swp_mc_start(s);
@@ -640,14 +653,16 @@ int qbman_wqchan_query(struct qbman_swp *s, uint16_t chanid,
640 p->chid = chanid;653 p->chid = chanid;
641654
642 /* Complete the management command */655 /* Complete the management command */
643 *r = *(struct qbman_wqchan_query_rslt *)qbman_swp_mc_complete(s, p,656 wqchan_query_rslt = (struct qbman_wqchan_query_rslt *)qbman_swp_mc_complete(
644 QBMAN_WQ_QUERY);657 s, p, QBMAN_WQ_QUERY);
645 if (!r) {658 if (!wqchan_query_rslt) {
646 pr_err("qbman: Query WQ Channel %d failed, no response\n",659 pr_err("qbman: Query WQ Channel %d failed, no response\n",
647 chanid);660 chanid);
648 return -EIO;661 return -EIO;
649 }662 }
650663
664 *r = *wqchan_query_rslt;
665
651 /* Decode the outcome */666 /* Decode the outcome */
652 QBMAN_BUG_ON((r->verb & QBMAN_RESPONSE_VERB_MASK) != QBMAN_WQ_QUERY);667 QBMAN_BUG_ON((r->verb & QBMAN_RESPONSE_VERB_MASK) != QBMAN_WQ_QUERY);
653668
diff --git a/drivers/bus/ifpga/ifpga_bus.c b/drivers/bus/ifpga/ifpga_bus.c
index ffb0c61..11b31ee 100644
--- a/drivers/bus/ifpga/ifpga_bus.c
+++ b/drivers/bus/ifpga/ifpga_bus.c
@@ -180,7 +180,7 @@ ifpga_scan_one(struct rte_rawdev *rawdev,
180 rawdev->dev_ops->firmware_load &&180 rawdev->dev_ops->firmware_load &&
181 rawdev->dev_ops->firmware_load(rawdev,181 rawdev->dev_ops->firmware_load(rawdev,
182 &afu_pr_conf)){182 &afu_pr_conf)){
183 IFPGA_BUS_ERR("firmware load error %d\n", ret);183 IFPGA_BUS_ERR("firmware load error %d", ret);
184 goto end;184 goto end;
185 }185 }
186 afu_dev->id.uuid.uuid_low = afu_pr_conf.afu_id.uuid.uuid_low;186 afu_dev->id.uuid.uuid_low = afu_pr_conf.afu_id.uuid.uuid_low;
@@ -316,7 +316,7 @@ ifpga_probe_all_drivers(struct rte_afu_device *afu_dev)
316316
317 /* Check if a driver is already loaded */317 /* Check if a driver is already loaded */
318 if (rte_dev_is_probed(&afu_dev->device)) {318 if (rte_dev_is_probed(&afu_dev->device)) {
319 IFPGA_BUS_DEBUG("Device %s is already probed\n",319 IFPGA_BUS_DEBUG("Device %s is already probed",
320 rte_ifpga_device_name(afu_dev));320 rte_ifpga_device_name(afu_dev));
321 return -EEXIST;321 return -EEXIST;
322 }322 }
@@ -353,7 +353,7 @@ ifpga_probe(void)
353 if (ret == -EEXIST)353 if (ret == -EEXIST)
354 continue;354 continue;
355 if (ret < 0)355 if (ret < 0)
356 IFPGA_BUS_ERR("failed to initialize %s device\n",356 IFPGA_BUS_ERR("failed to initialize %s device",
357 rte_ifpga_device_name(afu_dev));357 rte_ifpga_device_name(afu_dev));
358 }358 }
359359
@@ -408,7 +408,7 @@ ifpga_remove_driver(struct rte_afu_device *afu_dev)
408408
409 name = rte_ifpga_device_name(afu_dev);409 name = rte_ifpga_device_name(afu_dev);
410 if (afu_dev->driver == NULL) {410 if (afu_dev->driver == NULL) {
411 IFPGA_BUS_DEBUG("no driver attach to device %s\n", name);411 IFPGA_BUS_DEBUG("no driver attach to device %s", name);
412 return 1;412 return 1;
413 }413 }
414414
diff --git a/drivers/bus/pci/pci_common.c b/drivers/bus/pci/pci_common.c
index 889a48d..1b3fe47 100644
--- a/drivers/bus/pci/pci_common.c
+++ b/drivers/bus/pci/pci_common.c
@@ -99,21 +99,11 @@ pci_common_set(struct rte_pci_device *dev)
99 /* Each device has its internal, canonical name set. */99 /* Each device has its internal, canonical name set. */
100 rte_pci_device_name(&dev->addr,100 rte_pci_device_name(&dev->addr,
101 dev->name, sizeof(dev->name));101 dev->name, sizeof(dev->name));
102 dev->device.name = dev->name;
103
102 devargs = pci_devargs_lookup(&dev->addr);104 devargs = pci_devargs_lookup(&dev->addr);
103 dev->device.devargs = devargs;105 dev->device.devargs = devargs;
104106
105 /* When using a blocklist, only blocked devices will have
106 * an rte_devargs. Allowed devices won't have one.
107 */
108 if (devargs != NULL)
109 /* If an rte_devargs exists, the generic rte_device uses the
110 * given name as its name.
111 */
112 dev->device.name = dev->device.devargs->name;
113 else
114 /* Otherwise, it uses the internal, canonical form. */
115 dev->device.name = dev->name;
116
117 if (dev->bus_info != NULL ||107 if (dev->bus_info != NULL ||
118 asprintf(&dev->bus_info, "vendor_id=%"PRIx16", device_id=%"PRIx16,108 asprintf(&dev->bus_info, "vendor_id=%"PRIx16", device_id=%"PRIx16,
119 dev->id.vendor_id, dev->id.device_id) != -1)109 dev->id.vendor_id, dev->id.device_id) != -1)
diff --git a/drivers/bus/vdev/vdev.c b/drivers/bus/vdev/vdev.c
index dcedd0d..ec7abe7 100644
--- a/drivers/bus/vdev/vdev.c
+++ b/drivers/bus/vdev/vdev.c
@@ -263,22 +263,6 @@ alloc_devargs(const char *name, const char *args)
263 return devargs;263 return devargs;
264}264}
265265
266static struct rte_devargs *
267vdev_devargs_lookup(const char *name)
268{
269 struct rte_devargs *devargs;
270 char dev_name[32];
271
272 RTE_EAL_DEVARGS_FOREACH("vdev", devargs) {
273 devargs->bus->parse(devargs->name, &dev_name);
274 if (strcmp(dev_name, name) == 0) {
275 VDEV_LOG(INFO, "devargs matched %s", dev_name);
276 return devargs;
277 }
278 }
279 return NULL;
280}
281
282static int266static int
283insert_vdev(const char *name, const char *args,267insert_vdev(const char *name, const char *args,
284 struct rte_vdev_device **p_dev,268 struct rte_vdev_device **p_dev,
@@ -291,10 +275,7 @@ insert_vdev(const char *name, const char *args,
291 if (name == NULL)275 if (name == NULL)
292 return -EINVAL;276 return -EINVAL;
293277
294 if (rte_eal_process_type() == RTE_PROC_PRIMARY)278 devargs = alloc_devargs(name, args);
295 devargs = alloc_devargs(name, args);
296 else
297 devargs = vdev_devargs_lookup(name);
298279
299 if (!devargs)280 if (!devargs)
300 return -ENOMEM;281 return -ENOMEM;
diff --git a/drivers/bus/vdev/vdev_params.c b/drivers/bus/vdev/vdev_params.c
index 51583fe..68ae09e 100644
--- a/drivers/bus/vdev/vdev_params.c
+++ b/drivers/bus/vdev/vdev_params.c
@@ -53,7 +53,7 @@ rte_vdev_dev_iterate(const void *start,
53 if (str != NULL) {53 if (str != NULL) {
54 kvargs = rte_kvargs_parse(str, vdev_params_keys);54 kvargs = rte_kvargs_parse(str, vdev_params_keys);
55 if (kvargs == NULL) {55 if (kvargs == NULL) {
56 VDEV_LOG(ERR, "cannot parse argument list\n");56 VDEV_LOG(ERR, "cannot parse argument list");
57 rte_errno = EINVAL;57 rte_errno = EINVAL;
58 return NULL;58 return NULL;
59 }59 }
diff --git a/drivers/bus/vmbus/vmbus_common.c b/drivers/bus/vmbus/vmbus_common.c
index b9139c6..8a965d1 100644
--- a/drivers/bus/vmbus/vmbus_common.c
+++ b/drivers/bus/vmbus/vmbus_common.c
@@ -108,7 +108,7 @@ vmbus_probe_one_driver(struct rte_vmbus_driver *dr,
108 /* no initialization when marked as blocked, return without error */108 /* no initialization when marked as blocked, return without error */
109 if (dev->device.devargs != NULL &&109 if (dev->device.devargs != NULL &&
110 dev->device.devargs->policy == RTE_DEV_BLOCKED) {110 dev->device.devargs->policy == RTE_DEV_BLOCKED) {
111 VMBUS_LOG(INFO, " Device is blocked, not initializing\n");111 VMBUS_LOG(INFO, " Device is blocked, not initializing");
112 return 1;112 return 1;
113 }113 }
114114
diff --git a/drivers/common/cnxk/cnxk_security.c b/drivers/common/cnxk/cnxk_security.c
index 40685d0..1b51dab 100644
--- a/drivers/common/cnxk/cnxk_security.c
+++ b/drivers/common/cnxk/cnxk_security.c
@@ -360,7 +360,7 @@ cnxk_ot_ipsec_inb_sa_fill(struct roc_ot_ipsec_inb_sa *sa,
360 /* Initialize the SA */360 /* Initialize the SA */
361 roc_ot_ipsec_inb_sa_init(sa, is_inline);361 roc_ot_ipsec_inb_sa_init(sa, is_inline);
362362
363 w2.u64 = 0;363 w2.u64 = sa->w2.u64;
364 rc = ot_ipsec_sa_common_param_fill(&w2, sa->cipher_key, sa->w8.s.salt,364 rc = ot_ipsec_sa_common_param_fill(&w2, sa->cipher_key, sa->w8.s.salt,
365 sa->hmac_opad_ipad, ipsec_xfrm,365 sa->hmac_opad_ipad, ipsec_xfrm,
366 crypto_xfrm);366 crypto_xfrm);
diff --git a/drivers/common/cnxk/roc_bphy_cgx.c b/drivers/common/cnxk/roc_bphy_cgx.c
index e966494..3d674db 100644
--- a/drivers/common/cnxk/roc_bphy_cgx.c
+++ b/drivers/common/cnxk/roc_bphy_cgx.c
@@ -364,20 +364,20 @@ roc_bphy_cgx_set_link_mode(struct roc_bphy_cgx *roc_cgx, unsigned int lmac,
364{364{
365 uint64_t scr1, scr0;365 uint64_t scr1, scr0;
366366
367 if (!mode)
368 return -EINVAL;
369
370 if (!roc_cgx)
371 return -EINVAL;
372
367 if (roc_model_is_cn9k() &&373 if (roc_model_is_cn9k() &&
368 (mode->use_portm_idx || mode->portm_idx || mode->mode_group_idx)) {374 (mode->use_portm_idx || mode->portm_idx || mode->mode_group_idx)) {
369 return -ENOTSUP;375 return -ENOTSUP;
370 }376 }
371377
372 if (!roc_cgx)
373 return -EINVAL;
374
375 if (!roc_bphy_cgx_lmac_exists(roc_cgx, lmac))378 if (!roc_bphy_cgx_lmac_exists(roc_cgx, lmac))
376 return -ENODEV;379 return -ENODEV;
377380
378 if (!mode)
379 return -EINVAL;
380
381 scr1 = FIELD_PREP(SCR1_ETH_CMD_ID, ETH_CMD_MODE_CHANGE) |381 scr1 = FIELD_PREP(SCR1_ETH_CMD_ID, ETH_CMD_MODE_CHANGE) |
382 FIELD_PREP(SCR1_ETH_MODE_CHANGE_ARGS_SPEED, mode->speed) |382 FIELD_PREP(SCR1_ETH_MODE_CHANGE_ARGS_SPEED, mode->speed) |
383 FIELD_PREP(SCR1_ETH_MODE_CHANGE_ARGS_DUPLEX, mode->full_duplex) |383 FIELD_PREP(SCR1_ETH_MODE_CHANGE_ARGS_DUPLEX, mode->full_duplex) |
diff --git a/drivers/common/cnxk/roc_dev.c b/drivers/common/cnxk/roc_dev.c
index 14aff23..793d78f 100644
--- a/drivers/common/cnxk/roc_dev.c
+++ b/drivers/common/cnxk/roc_dev.c
@@ -947,8 +947,8 @@ mbox_unregister_vf_irq(struct plt_pci_device *pci_dev, struct dev *dev)
947 RVU_VF_INT_VEC_MBOX);947 RVU_VF_INT_VEC_MBOX);
948}948}
949949
950static void950void
951mbox_unregister_irq(struct plt_pci_device *pci_dev, struct dev *dev)951dev_mbox_unregister_irq(struct plt_pci_device *pci_dev, struct dev *dev)
952{952{
953 if (dev_is_vf(dev))953 if (dev_is_vf(dev))
954 mbox_unregister_vf_irq(pci_dev, dev);954 mbox_unregister_vf_irq(pci_dev, dev);
@@ -1026,8 +1026,8 @@ roc_pf_vf_flr_irq(void *param)
1026 }1026 }
1027}1027}
10281028
1029static int1029void
1030vf_flr_unregister_irqs(struct plt_pci_device *pci_dev, struct dev *dev)1030dev_vf_flr_unregister_irqs(struct plt_pci_device *pci_dev, struct dev *dev)
1031{1031{
1032 struct plt_intr_handle *intr_handle = pci_dev->intr_handle;1032 struct plt_intr_handle *intr_handle = pci_dev->intr_handle;
1033 int i;1033 int i;
@@ -1043,8 +1043,6 @@ vf_flr_unregister_irqs(struct plt_pci_device *pci_dev, struct dev *dev)
10431043
1044 dev_irq_unregister(intr_handle, roc_pf_vf_flr_irq, dev,1044 dev_irq_unregister(intr_handle, roc_pf_vf_flr_irq, dev,
1045 RVU_PF_INT_VEC_VFFLR1);1045 RVU_PF_INT_VEC_VFFLR1);
1046
1047 return 0;
1048}1046}
10491047
1050int1048int
@@ -1493,7 +1491,7 @@ dev_init(struct dev *dev, struct plt_pci_device *pci_dev)
1493 rc = plt_thread_create_control(&dev->sync.pfvf_msg_thread, name,1491 rc = plt_thread_create_control(&dev->sync.pfvf_msg_thread, name,
1494 pf_vf_mbox_thread_main, dev);1492 pf_vf_mbox_thread_main, dev);
1495 if (rc != 0) {1493 if (rc != 0) {
1496 plt_err("Failed to create thread for VF mbox handling\n");1494 plt_err("Failed to create thread for VF mbox handling");
1497 goto thread_fail;1495 goto thread_fail;
1498 }1496 }
1499 }1497 }
@@ -1529,7 +1527,7 @@ thread_fail:
1529iounmap:1527iounmap:
1530 dev_vf_mbase_put(pci_dev, vf_mbase);1528 dev_vf_mbase_put(pci_dev, vf_mbase);
1531mbox_unregister:1529mbox_unregister:
1532 mbox_unregister_irq(pci_dev, dev);1530 dev_mbox_unregister_irq(pci_dev, dev);
1533 if (dev->ops)1531 if (dev->ops)
1534 plt_free(dev->ops);1532 plt_free(dev->ops);
1535mbox_fini:1533mbox_fini:
@@ -1565,10 +1563,10 @@ dev_fini(struct dev *dev, struct plt_pci_device *pci_dev)
1565 if (dev->lmt_mz)1563 if (dev->lmt_mz)
1566 plt_memzone_free(dev->lmt_mz);1564 plt_memzone_free(dev->lmt_mz);
15671565
1568 mbox_unregister_irq(pci_dev, dev);1566 dev_mbox_unregister_irq(pci_dev, dev);
15691567
1570 if (!dev_is_vf(dev))1568 if (!dev_is_vf(dev))
1571 vf_flr_unregister_irqs(pci_dev, dev);1569 dev_vf_flr_unregister_irqs(pci_dev, dev);
1572 /* Release PF - VF */1570 /* Release PF - VF */
1573 mbox = &dev->mbox_vfpf;1571 mbox = &dev->mbox_vfpf;
1574 if (mbox->hwbase && mbox->dev)1572 if (mbox->hwbase && mbox->dev)
diff --git a/drivers/common/cnxk/roc_dev_priv.h b/drivers/common/cnxk/roc_dev_priv.h
index 5b2c509..f1fa498 100644
--- a/drivers/common/cnxk/roc_dev_priv.h
+++ b/drivers/common/cnxk/roc_dev_priv.h
@@ -128,6 +128,8 @@ int dev_irqs_disable(struct plt_intr_handle *intr_handle);
128int dev_irq_reconfigure(struct plt_intr_handle *intr_handle, uint16_t max_intr);128int dev_irq_reconfigure(struct plt_intr_handle *intr_handle, uint16_t max_intr);
129129
130int dev_mbox_register_irq(struct plt_pci_device *pci_dev, struct dev *dev);130int dev_mbox_register_irq(struct plt_pci_device *pci_dev, struct dev *dev);
131void dev_mbox_unregister_irq(struct plt_pci_device *pci_dev, struct dev *dev);
131int dev_vf_flr_register_irqs(struct plt_pci_device *pci_dev, struct dev *dev);132int dev_vf_flr_register_irqs(struct plt_pci_device *pci_dev, struct dev *dev);
133void dev_vf_flr_unregister_irqs(struct plt_pci_device *pci_dev, struct dev *dev);
132134
133#endif /* _ROC_DEV_PRIV_H */135#endif /* _ROC_DEV_PRIV_H */
diff --git a/drivers/common/cnxk/roc_dpi_priv.h b/drivers/common/cnxk/roc_dpi_priv.h
index 518a3e7..a050187 100644
--- a/drivers/common/cnxk/roc_dpi_priv.h
+++ b/drivers/common/cnxk/roc_dpi_priv.h
@@ -24,7 +24,7 @@ typedef union dpi_mbox_msg_t {
24 /* Command code */24 /* Command code */
25 uint64_t cmd : 4;25 uint64_t cmd : 4;
26 /* Command buffer size in 8-byte words */26 /* Command buffer size in 8-byte words */
27 uint64_t csize : 14;27 uint64_t csize : 16;
28 /* aura of the command buffer */28 /* aura of the command buffer */
29 uint64_t aura : 20;29 uint64_t aura : 20;
30 /* SSO PF function */30 /* SSO PF function */
diff --git a/drivers/common/cnxk/roc_ie_ot.c b/drivers/common/cnxk/roc_ie_ot.c
index d0b7ad3..356bb8c 100644
--- a/drivers/common/cnxk/roc_ie_ot.c
+++ b/drivers/common/cnxk/roc_ie_ot.c
@@ -38,5 +38,6 @@ roc_ot_ipsec_outb_sa_init(struct roc_ot_ipsec_outb_sa *sa)
38 offset = offsetof(struct roc_ot_ipsec_outb_sa, ctx);38 offset = offsetof(struct roc_ot_ipsec_outb_sa, ctx);
39 sa->w0.s.ctx_push_size = (offset / ROC_CTX_UNIT_8B) + 1;39 sa->w0.s.ctx_push_size = (offset / ROC_CTX_UNIT_8B) + 1;
40 sa->w0.s.ctx_size = ROC_IE_OT_CTX_ILEN;40 sa->w0.s.ctx_size = ROC_IE_OT_CTX_ILEN;
41 sa->w0.s.ctx_hdr_size = ROC_IE_OT_SA_CTX_HDR_SIZE;
41 sa->w0.s.aop_valid = 1;42 sa->w0.s.aop_valid = 1;
42}43}
diff --git a/drivers/common/cnxk/roc_irq.c b/drivers/common/cnxk/roc_irq.c
index a709c40..0b21b9e 100644
--- a/drivers/common/cnxk/roc_irq.c
+++ b/drivers/common/cnxk/roc_irq.c
@@ -15,7 +15,7 @@
1515
16#define MSIX_IRQ_SET_BUF_LEN \16#define MSIX_IRQ_SET_BUF_LEN \
17 (sizeof(struct vfio_irq_set) + sizeof(int) * \17 (sizeof(struct vfio_irq_set) + sizeof(int) * \
18 (plt_intr_max_intr_get(intr_handle)))18 ((uint32_t)plt_intr_max_intr_get(intr_handle)))
1919
20static int20static int
21irq_get_info(struct plt_intr_handle *intr_handle)21irq_get_info(struct plt_intr_handle *intr_handle)
diff --git a/drivers/common/cnxk/roc_model.c b/drivers/common/cnxk/roc_model.c
index 6dc2afe..446ab3d 100644
--- a/drivers/common/cnxk/roc_model.c
+++ b/drivers/common/cnxk/roc_model.c
@@ -153,7 +153,7 @@ cn10k_part_pass_get(uint32_t *part, uint32_t *pass)
153153
154 dir = opendir(SYSFS_PCI_DEVICES);154 dir = opendir(SYSFS_PCI_DEVICES);
155 if (dir == NULL) {155 if (dir == NULL) {
156 plt_err("%s(): opendir failed: %s\n", __func__,156 plt_err("%s(): opendir failed: %s", __func__,
157 strerror(errno));157 strerror(errno));
158 return -errno;158 return -errno;
159 }159 }
diff --git a/drivers/common/cnxk/roc_nix_inl.c b/drivers/common/cnxk/roc_nix_inl.c
index bc9cc2f..ba51ddd 100644
--- a/drivers/common/cnxk/roc_nix_inl.c
+++ b/drivers/common/cnxk/roc_nix_inl.c
@@ -1669,6 +1669,7 @@ roc_nix_inl_ctx_write(struct roc_nix *roc_nix, void *sa_dptr, void *sa_cptr,
1669 struct nix_inl_dev *inl_dev = NULL;1669 struct nix_inl_dev *inl_dev = NULL;
1670 struct roc_cpt_lf *outb_lf = NULL;1670 struct roc_cpt_lf *outb_lf = NULL;
1671 union cpt_lf_ctx_flush flush;1671 union cpt_lf_ctx_flush flush;
1672 union cpt_lf_ctx_err err;
1672 bool get_inl_lf = true;1673 bool get_inl_lf = true;
1673 uintptr_t rbase;1674 uintptr_t rbase;
1674 struct nix *nix;1675 struct nix *nix;
@@ -1710,6 +1711,13 @@ roc_nix_inl_ctx_write(struct roc_nix *roc_nix, void *sa_dptr, void *sa_cptr,
1710 flush.s.cptr = ((uintptr_t)sa_cptr) >> 7;1711 flush.s.cptr = ((uintptr_t)sa_cptr) >> 7;
1711 plt_write64(flush.u, rbase + CPT_LF_CTX_FLUSH);1712 plt_write64(flush.u, rbase + CPT_LF_CTX_FLUSH);
17121713
1714 plt_atomic_thread_fence(__ATOMIC_ACQ_REL);
1715
1716 /* Read a CSR to ensure that the FLUSH operation is complete */
1717 err.u = plt_read64(rbase + CPT_LF_CTX_ERR);
1718
1719 if (err.s.flush_st_flt)
1720 plt_warn("CTX flush could not complete");
1713 return 0;1721 return 0;
1714 }1722 }
1715 plt_nix_dbg("Could not get CPT LF for CTX write");1723 plt_nix_dbg("Could not get CPT LF for CTX write");
diff --git a/drivers/common/cnxk/roc_nix_mac.c b/drivers/common/cnxk/roc_nix_mac.c
index 2d1c29d..ce3fb03 100644
--- a/drivers/common/cnxk/roc_nix_mac.c
+++ b/drivers/common/cnxk/roc_nix_mac.c
@@ -91,11 +91,6 @@ roc_nix_mac_addr_set(struct roc_nix *roc_nix, const uint8_t addr[])
91 goto exit;91 goto exit;
92 }92 }
9393
94 if (dev_active_vfs(&nix->dev)) {
95 rc = NIX_ERR_OP_NOTSUP;
96 goto exit;
97 }
98
99 req = mbox_alloc_msg_cgx_mac_addr_set(mbox);94 req = mbox_alloc_msg_cgx_mac_addr_set(mbox);
100 if (req == NULL)95 if (req == NULL)
101 goto exit;96 goto exit;
@@ -152,11 +147,6 @@ roc_nix_mac_addr_add(struct roc_nix *roc_nix, uint8_t addr[])
152 goto exit;147 goto exit;
153 }148 }
154149
155 if (dev_active_vfs(&nix->dev)) {
156 rc = NIX_ERR_OP_NOTSUP;
157 goto exit;
158 }
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches