Test-Label: iol-testing Test-Status: WARNING http://dpdk.org/patch/101260 _apply patch failure_ Submitter: Ivan Malov Date: Tuesday, October 12 2021 19:46:20 Applied on: CommitID:e0ae3db0c043cbdc4cc22bb60206f21ec4a82a02 Apply patch set 101260-101264 failed: Checking patch app/test-flow-perf/main.c... Checking patch app/test-pmd/testpmd.c... Checking patch doc/guides/rel_notes/release_21_11.rst... error: while searching for: * Added tests to verify tunnel header verification in IPsec inbound. * Added tests to verify inner checksum. Removed Items ------------- error: patch failed: doc/guides/rel_notes/release_21_11.rst:164 Checking patch lib/ethdev/ethdev_driver.h... Checking patch lib/ethdev/rte_ethdev.c... Checking patch lib/ethdev/rte_ethdev.h... Checking patch lib/ethdev/rte_flow.h... Hunk #3 succeeded at 4231 (offset 14 lines). Checking patch lib/ethdev/version.map... Applied patch app/test-flow-perf/main.c cleanly. Applied patch app/test-pmd/testpmd.c cleanly. Applying patch doc/guides/rel_notes/release_21_11.rst with 1 reject... Rejected hunk #1. Applied patch lib/ethdev/ethdev_driver.h cleanly. Applied patch lib/ethdev/rte_ethdev.c cleanly. Applied patch lib/ethdev/rte_ethdev.h cleanly. Applied patch lib/ethdev/rte_flow.h cleanly. Applied patch lib/ethdev/version.map cleanly. diff a/doc/guides/rel_notes/release_21_11.rst b/doc/guides/rel_notes/release_21_11.rst (rejected hunks) @@ -164,6 +164,15 @@ New Features * Added tests to verify tunnel header verification in IPsec inbound. * Added tests to verify inner checksum. +* **Added an API to control delivery of Rx metadata from the HW to the PMD** + + A new API, ``rte_eth_rx_metadata_negotiate()``, was added. + The following parts of Rx metadata were defined: + + * ``RTE_ETH_RX_METADATA_USER_FLAG`` + * ``RTE_ETH_RX_METADATA_USER_MARK`` + * ``RTE_ETH_RX_METADATA_TUNNEL_ID`` + Removed Items ------------- Checking patch drivers/net/sfc/sfc.h... error: while searching for: boolean_t tso; boolean_t tso_encap; uint32_t rxd_wait_timeout_ns; bool switchdev; error: patch failed: drivers/net/sfc/sfc.h:289 Checking patch drivers/net/sfc/sfc_ethdev.c... error: while searching for: return nb_repr; } static const struct eth_dev_ops sfc_eth_dev_ops = { .dev_configure = sfc_dev_configure, .dev_start = sfc_dev_start, error: patch failed: drivers/net/sfc/sfc_ethdev.c:2318 error: while searching for: .xstats_get_names_by_id = sfc_xstats_get_names_by_id, .pool_ops_supported = sfc_pool_ops_supported, .representor_info_get = sfc_representor_info_get, }; struct sfc_ethdev_init_data { error: patch failed: drivers/net/sfc/sfc_ethdev.c:2366 Hunk #3 succeeded at 1999 (offset -486 lines). Checking patch drivers/net/sfc/sfc_flow.c... Checking patch drivers/net/sfc/sfc_mae.c... Hunk #1 succeeded at 2963 (offset -125 lines). Hunk #2 succeeded at 3013 (offset -125 lines). Applying patch drivers/net/sfc/sfc.h with 1 reject... Rejected hunk #1. Applying patch drivers/net/sfc/sfc_ethdev.c with 2 rejects... Rejected hunk #1. Rejected hunk #2. Hunk #3 applied cleanly. Applied patch drivers/net/sfc/sfc_flow.c cleanly. Applied patch drivers/net/sfc/sfc_mae.c cleanly. diff a/drivers/net/sfc/sfc.h b/drivers/net/sfc/sfc.h (rejected hunks) @@ -289,6 +289,8 @@ struct sfc_adapter { boolean_t tso; boolean_t tso_encap; + uint64_t negotiated_rx_metadata; + uint32_t rxd_wait_timeout_ns; bool switchdev; diff a/drivers/net/sfc/sfc_ethdev.c b/drivers/net/sfc/sfc_ethdev.c (rejected hunks) @@ -2318,6 +2318,28 @@ sfc_representor_info_get(struct rte_eth_dev *dev, return nb_repr; } +static int +sfc_rx_metadata_negotiate(struct rte_eth_dev *dev, uint64_t *features) +{ + struct sfc_adapter *sa = sfc_adapter_by_eth_dev(dev); + uint64_t supported = 0; + + sfc_adapter_lock(sa); + + if ((sa->priv.dp_rx->features & SFC_DP_RX_FEAT_FLOW_FLAG) != 0) + supported |= RTE_ETH_RX_METADATA_USER_FLAG; + + if ((sa->priv.dp_rx->features & SFC_DP_RX_FEAT_FLOW_MARK) != 0) + supported |= RTE_ETH_RX_METADATA_USER_MARK; + + sa->negotiated_rx_metadata = supported & *features; + *features = sa->negotiated_rx_metadata; + + sfc_adapter_unlock(sa); + + return 0; +} + static const struct eth_dev_ops sfc_eth_dev_ops = { .dev_configure = sfc_dev_configure, .dev_start = sfc_dev_start, @@ -2366,6 +2388,7 @@ static const struct eth_dev_ops sfc_eth_dev_ops = { .xstats_get_names_by_id = sfc_xstats_get_names_by_id, .pool_ops_supported = sfc_pool_ops_supported, .representor_info_get = sfc_representor_info_get, + .rx_metadata_negotiate = sfc_rx_metadata_negotiate, }; struct sfc_ethdev_init_data { Checking patch drivers/net/sfc/sfc_ef100_rx.c... error: while searching for: .hw_fw_caps = SFC_DP_HW_FW_CAP_EF100, }, .features = SFC_DP_RX_FEAT_MULTI_PROCESS | SFC_DP_RX_FEAT_INTR | SFC_DP_RX_FEAT_STATS, .dev_offload_capa = 0, error: patch failed: drivers/net/sfc/sfc_ef100_rx.c:935 Checking patch drivers/net/sfc/sfc_rx.c... Applying patch drivers/net/sfc/sfc_ef100_rx.c with 1 reject... Rejected hunk #1. Applied patch drivers/net/sfc/sfc_rx.c cleanly. diff a/drivers/net/sfc/sfc_ef100_rx.c b/drivers/net/sfc/sfc_ef100_rx.c (rejected hunks) @@ -935,6 +935,7 @@ struct sfc_dp_rx sfc_ef100_rx = { .hw_fw_caps = SFC_DP_HW_FW_CAP_EF100, }, .features = SFC_DP_RX_FEAT_MULTI_PROCESS | + SFC_DP_RX_FEAT_FLOW_MARK | SFC_DP_RX_FEAT_INTR | SFC_DP_RX_FEAT_STATS, .dev_offload_capa = 0, Checking patch drivers/net/sfc/sfc_ef100_rx.c... error: while searching for: #define SFC_EF100_RXQ_USER_MARK 0x20 #define SFC_EF100_RXQ_FLAG_INTR_EN 0x40 #define SFC_EF100_RXQ_INGRESS_MPORT 0x80 unsigned int ptr_mask; unsigned int evq_phase_bit_shift; unsigned int ready_pkts; error: patch failed: drivers/net/sfc/sfc_ef100_rx.c:63 error: while searching for: EFX_RX_PREFIX_FIELD(INGRESS_MPORT, ESF_GZ_RX_PREFIX_INGRESS_MPORT, B_FALSE), SFC_EF100_RX_PREFIX_FIELD(RSS_HASH, B_FALSE), SFC_EF100_RX_PREFIX_FIELD(USER_MARK, B_FALSE), #undef SFC_EF100_RX_PREFIX_FIELD error: patch failed: drivers/net/sfc/sfc_ef100_rx.c:374 Hunk #3 succeeded at 407 (offset -5 lines). Hunk #4 succeeded at 809 (offset -17 lines). error: while searching for: .hw_fw_caps = SFC_DP_HW_FW_CAP_EF100, }, .features = SFC_DP_RX_FEAT_MULTI_PROCESS | SFC_DP_RX_FEAT_FLOW_MARK | SFC_DP_RX_FEAT_INTR | SFC_DP_RX_FEAT_STATS, error: patch failed: drivers/net/sfc/sfc_ef100_rx.c:935 Checking patch drivers/net/sfc/sfc_rx.c... error: drivers/net/sfc/sfc_rx.c: does not match index Applying patch drivers/net/sfc/sfc_ef100_rx.c with 3 rejects... Rejected hunk #1. Rejected hunk #2. Hunk #3 applied cleanly. Hunk #4 applied cleanly. Rejected hunk #5. diff a/drivers/net/sfc/sfc_ef100_rx.c b/drivers/net/sfc/sfc_ef100_rx.c (rejected hunks) @@ -63,6 +63,7 @@ struct sfc_ef100_rxq { #define SFC_EF100_RXQ_USER_MARK 0x20 #define SFC_EF100_RXQ_FLAG_INTR_EN 0x40 #define SFC_EF100_RXQ_INGRESS_MPORT 0x80 +#define SFC_EF100_RXQ_USER_FLAG 0x100 unsigned int ptr_mask; unsigned int evq_phase_bit_shift; unsigned int ready_pkts; @@ -374,6 +375,7 @@ static const efx_rx_prefix_layout_t sfc_ef100_rx_prefix_layout = { EFX_RX_PREFIX_FIELD(INGRESS_MPORT, ESF_GZ_RX_PREFIX_INGRESS_MPORT, B_FALSE), SFC_EF100_RX_PREFIX_FIELD(RSS_HASH, B_FALSE), + SFC_EF100_RX_PREFIX_FIELD(USER_FLAG, B_FALSE), SFC_EF100_RX_PREFIX_FIELD(USER_MARK, B_FALSE), #undef SFC_EF100_RX_PREFIX_FIELD @@ -935,6 +952,7 @@ struct sfc_dp_rx sfc_ef100_rx = { .hw_fw_caps = SFC_DP_HW_FW_CAP_EF100, }, .features = SFC_DP_RX_FEAT_MULTI_PROCESS | + SFC_DP_RX_FEAT_FLOW_FLAG | SFC_DP_RX_FEAT_FLOW_MARK | SFC_DP_RX_FEAT_INTR | SFC_DP_RX_FEAT_STATS, https://lab.dpdk.org/results/dashboard/patchsets/19349/ UNH-IOL DPDK Community Lab