On 09/03/2018 05:45 PM, Ferruh Yigit wrote:
> Removed DEV_RX_OFFLOAD_CRC_STRIP offload flag.
> Without any specific Rx offload flag, default behavior by PMDs is to
> strip CRC.
>
> PMDs that support keeping CRC should advertise DEV_RX_OFFLOAD_KEEP_CRC
> Rx offload capability.
>
> Applications that require keeping CRC should check PMD capability first
> and if it is supported can enable this feature by setting
> DEV_RX_OFFLOAD_KEEP_CRC in Rx offload flag in rte_eth_dev_configure()
>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
Removed DEV_RX_OFFLOAD_CRC_STRIP offload flag. Without any specific Rx offload flag, default behavior by PMDs is to strip CRC. PMDs that support keeping CRC should advertise DEV_RX_OFFLOAD_KEEP_CRC Rx offload capability. Applications that require keeping CRC should check PMD capability first and if it is supported can enable this feature by setting DEV_RX_OFFLOAD_KEEP_CRC in Rx offload flag in rte_eth_dev_configure() Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> --- app/test-eventdev/test_perf_common.c | 1 - app/test-eventdev/test_pipeline_common.c | 1 - app/test-pmd/cmdline.c | 2 -- app/test-pmd/parameters.c | 4 +-- app/test-pmd/testpmd.c | 5 ---- doc/guides/nics/features.rst | 3 ++- doc/guides/nics/fm10k.rst | 3 +-- doc/guides/rel_notes/deprecation.rst | 6 ----- doc/guides/sample_app_ug/flow_filtering.rst | 2 -- doc/guides/sample_app_ug/link_status_intr.rst | 1 - drivers/net/af_packet/rte_eth_af_packet.c | 1 - drivers/net/avf/avf_ethdev.c | 1 - drivers/net/avp/avp_ethdev.c | 1 - drivers/net/axgbe/axgbe_ethdev.c | 1 - drivers/net/axgbe/axgbe_rxtx.c | 2 +- drivers/net/bnxt/bnxt_ethdev.c | 1 - drivers/net/bnxt/bnxt_rxq.c | 6 +++-- drivers/net/cxgbe/cxgbe_ethdev.c | 12 --------- drivers/net/dpaa/dpaa_ethdev.c | 1 - drivers/net/dpaa2/dpaa2_ethdev.c | 1 - drivers/net/e1000/em_rxtx.c | 7 +++-- drivers/net/e1000/igb_ethdev.c | 8 +++--- drivers/net/e1000/igb_rxtx.c | 7 +++-- drivers/net/enic/enic_res.c | 1 - drivers/net/failsafe/failsafe_ops.c | 2 -- drivers/net/fm10k/fm10k_ethdev.c | 7 ----- drivers/net/i40e/i40e_ethdev.c | 1 - drivers/net/i40e/i40e_ethdev_vf.c | 3 +-- drivers/net/i40e/i40e_rxtx.c | 2 +- drivers/net/ixgbe/ixgbe_ethdev.c | 8 +++--- drivers/net/ixgbe/ixgbe_ipsec.c | 2 +- drivers/net/ixgbe/ixgbe_rxtx.c | 15 ++++++----- drivers/net/kni/rte_eth_kni.c | 1 - drivers/net/mlx4/mlx4_rxq.c | 3 +-- drivers/net/mlx5/mlx5_rxq.c | 3 +-- drivers/net/mvpp2/mrvl_ethdev.c | 10 ------- drivers/net/netvsc/hn_ethdev.c | 3 +-- drivers/net/netvsc/hn_rndis.c | 3 +-- drivers/net/nfp/nfp_net.c | 9 +------ drivers/net/null/rte_eth_null.c | 1 - drivers/net/octeontx/octeontx_ethdev.c | 8 ------ drivers/net/octeontx/octeontx_ethdev.h | 3 +-- drivers/net/pcap/rte_eth_pcap.c | 1 - drivers/net/qede/qede_ethdev.c | 1 - drivers/net/ring/rte_eth_ring.c | 1 - drivers/net/sfc/sfc_rx.c | 9 ------- drivers/net/softnic/rte_eth_softnic.c | 1 - drivers/net/szedata2/rte_eth_szedata2.c | 3 +-- drivers/net/tap/rte_eth_tap.c | 3 +-- drivers/net/thunderx/nicvf_ethdev.c | 9 ------- drivers/net/thunderx/nicvf_ethdev.h | 1 - drivers/net/vhost/rte_eth_vhost.c | 3 +-- drivers/net/virtio/virtio_ethdev.c | 3 +-- drivers/net/vmxnet3/vmxnet3_ethdev.c | 3 +-- examples/bbdev_app/main.c | 1 - examples/bond/main.c | 1 - examples/exception_path/main.c | 3 --- examples/flow_filtering/main.c | 1 - examples/ip_fragmentation/main.c | 3 +-- examples/ip_pipeline/link.c | 1 - examples/ip_reassembly/main.c | 3 +-- examples/ipsec-secgw/ipsec-secgw.c | 3 +-- examples/ipv4_multicast/main.c | 3 +-- examples/kni/main.c | 3 --- examples/l2fwd-crypto/main.c | 1 - examples/l2fwd-jobstats/main.c | 1 - examples/l2fwd-keepalive/main.c | 1 - examples/l2fwd/main.c | 1 - examples/l3fwd-acl/main.c | 3 +-- examples/l3fwd-power/main.c | 3 +-- examples/l3fwd-vf/main.c | 3 +-- examples/l3fwd/main.c | 3 +-- examples/link_status_interrupt/main.c | 1 - examples/load_balancer/init.c | 3 +-- examples/multi_process/symmetric_mp/main.c | 3 +-- examples/netmap_compat/bridge/bridge.c | 1 - .../performance-thread/l3fwd-thread/main.c | 3 +-- examples/qos_meter/main.c | 3 +-- examples/qos_sched/init.c | 1 - examples/quota_watermark/qw/init.c | 1 - examples/tep_termination/vxlan_setup.c | 1 - examples/vhost/main.c | 3 +-- lib/librte_ethdev/rte_ethdev.c | 9 ------- lib/librte_ethdev/rte_ethdev.h | 7 +---- lib/librte_ethdev/rte_ethdev_driver.h | 26 ------------------- test/test-pipeline/init.c | 2 +- test/test/test_kni.c | 3 --- test/test/test_link_bonding_mode4.c | 1 - test/test/test_pmd_perf.c | 1 - test/test/virtual_pmd.c | 1 - 90 files changed, 60 insertions(+), 248 deletions(-) diff --git a/app/test-eventdev/test_perf_common.c b/app/test-eventdev/test_perf_common.c index d33cb2cd3..861877532 100644 --- a/app/test-eventdev/test_perf_common.c +++ b/app/test-eventdev/test_perf_common.c @@ -680,7 +680,6 @@ perf_ethdev_setup(struct evt_test *test, struct evt_options *opt) .mq_mode = ETH_MQ_RX_RSS, .max_rx_pkt_len = ETHER_MAX_LEN, .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .rx_adv_conf = { .rss_conf = { diff --git a/app/test-eventdev/test_pipeline_common.c b/app/test-eventdev/test_pipeline_common.c index a54068df3..12a58fbbf 100644 --- a/app/test-eventdev/test_pipeline_common.c +++ b/app/test-eventdev/test_pipeline_common.c @@ -222,7 +222,6 @@ pipeline_ethdev_setup(struct evt_test *test, struct evt_options *opt) .rxmode = { .mq_mode = ETH_MQ_RX_RSS, .max_rx_pkt_len = ETHER_MAX_LEN, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .rx_adv_conf = { .rss_conf = { diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index 589121d69..0cbd340c1 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -1898,11 +1898,9 @@ cmd_config_rx_mode_flag_parsed(void *parsed_result, rx_offloads = port->dev_conf.rxmode.offloads; if (!strcmp(res->name, "crc-strip")) { if (!strcmp(res->value, "on")) { - rx_offloads |= DEV_RX_OFFLOAD_CRC_STRIP; rx_offloads &= ~DEV_RX_OFFLOAD_KEEP_CRC; } else if (!strcmp(res->value, "off")) { rx_offloads |= DEV_RX_OFFLOAD_KEEP_CRC; - rx_offloads &= ~DEV_RX_OFFLOAD_CRC_STRIP; } else { printf("Unknown parameter\n"); return; diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c index 962fad789..9220e1c1b 100644 --- a/app/test-pmd/parameters.c +++ b/app/test-pmd/parameters.c @@ -878,10 +878,8 @@ launch_args_parse(int argc, char** argv) " must be >= 0\n", n); } #endif - if (!strcmp(lgopts[opt_idx].name, "disable-crc-strip")) { - rx_offloads &= ~DEV_RX_OFFLOAD_CRC_STRIP; + if (!strcmp(lgopts[opt_idx].name, "disable-crc-strip")) rx_offloads |= DEV_RX_OFFLOAD_KEEP_CRC; - } if (!strcmp(lgopts[opt_idx].name, "enable-lro")) rx_offloads |= DEV_RX_OFFLOAD_TCP_LRO; if (!strcmp(lgopts[opt_idx].name, "enable-scatter")) diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index ee48db2a3..571ecb4ac 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -334,7 +334,6 @@ lcoreid_t latencystats_lcore_id = -1; */ struct rte_eth_rxmode rx_mode = { .max_rx_pkt_len = ETHER_MAX_LEN, /**< Default maximum frame length. */ - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }; struct rte_eth_txmode tx_mode = { @@ -739,10 +738,6 @@ init_config(void) port->dev_conf.rxmode = rx_mode; rte_eth_dev_info_get(pid, &port->dev_info); - if (!(port->dev_info.rx_offload_capa & - DEV_RX_OFFLOAD_CRC_STRIP)) - port->dev_conf.rxmode.offloads &= - ~DEV_RX_OFFLOAD_CRC_STRIP; if (!(port->dev_info.tx_offload_capa & DEV_TX_OFFLOAD_MBUF_FAST_FREE)) port->dev_conf.txmode.offloads &= diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst index cddc877d4..b085bda86 100644 --- a/doc/guides/nics/features.rst +++ b/doc/guides/nics/features.rst @@ -513,8 +513,9 @@ CRC offload ----------- Supports CRC stripping by hardware. +A PMD assumed to support CRC stripping by default. PMD should advertise if it supports keeping CRC. -* **[uses] rte_eth_rxconf,rte_eth_rxmode**: ``offloads:DEV_RX_OFFLOAD_CRC_STRIP,DEV_RX_OFFLOAD_KEEP_CRC``. +* **[uses] rte_eth_rxconf,rte_eth_rxmode**: ``offloads:DEV_RX_OFFLOAD_KEEP_CRC``. .. _nic_features_vlan_offload: diff --git a/doc/guides/nics/fm10k.rst b/doc/guides/nics/fm10k.rst index d1391e997..764e089c8 100644 --- a/doc/guides/nics/fm10k.rst +++ b/doc/guides/nics/fm10k.rst @@ -139,8 +139,7 @@ CRC striping ~~~~~~~~~~~~ The FM10000 family of NICs strip the CRC for every packets coming into the -host interface. So, CRC will be stripped even when ``DEV_RX_OFFLOAD_CRC_STRIP`` -in ``rxmode.offloads`` is NOT set in ``struct rte_eth_conf``. +host interface. So, keeping CRC is not supported. Maximum packet length ~~~~~~~~~~~~~~~~~~~~~ diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index 9cd12ccd8..8200e6826 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -56,12 +56,6 @@ Deprecation Notices experimental API ``rte_pktmbuf_attach_extbuf()`` is used. Removal of the macro is to fix this semantic inconsistency. -* ethdev: In v18.11 ``DEV_RX_OFFLOAD_CRC_STRIP`` offload flag will be removed, default - behavior without any flag will be changed to CRC strip. - To keep CRC ``DEV_RX_OFFLOAD_KEEP_CRC`` flag is required. - ``KEEP_CRC``: Keep CRC in packet - No flag: Strip CRC from packet - * ethdev: the legacy filter API, including ``rte_eth_dev_filter_supported()``, ``rte_eth_dev_filter_ctrl()`` as well as filter types MACVLAN, ETHERTYPE, FLEXIBLE, SYN, NTUPLE, TUNNEL, FDIR, diff --git a/doc/guides/sample_app_ug/flow_filtering.rst b/doc/guides/sample_app_ug/flow_filtering.rst index bd0ae1e2f..0d6fe2bb3 100644 --- a/doc/guides/sample_app_ug/flow_filtering.rst +++ b/doc/guides/sample_app_ug/flow_filtering.rst @@ -139,7 +139,6 @@ application is shown below: struct rte_eth_conf port_conf = { .rxmode = { .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .offloads = @@ -215,7 +214,6 @@ The Ethernet port is configured with default settings using the struct rte_eth_conf port_conf = { .rxmode = { .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .offloads = diff --git a/doc/guides/sample_app_ug/link_status_intr.rst b/doc/guides/sample_app_ug/link_status_intr.rst index c7665fe5c..695c088e8 100644 --- a/doc/guides/sample_app_ug/link_status_intr.rst +++ b/doc/guides/sample_app_ug/link_status_intr.rst @@ -137,7 +137,6 @@ The global configuration is stored in a static structure: static const struct rte_eth_conf port_conf = { .rxmode = { .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = {}, .intr_conf = { diff --git a/drivers/net/af_packet/rte_eth_af_packet.c b/drivers/net/af_packet/rte_eth_af_packet.c index eb3cce3a6..bc7daed5e 100644 --- a/drivers/net/af_packet/rte_eth_af_packet.c +++ b/drivers/net/af_packet/rte_eth_af_packet.c @@ -305,7 +305,6 @@ eth_dev_info(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) dev_info->max_rx_queues = (uint16_t)internals->nb_queues; dev_info->max_tx_queues = (uint16_t)internals->nb_queues; dev_info->min_rx_bufsize = 0; - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_CRC_STRIP; } static int diff --git a/drivers/net/avf/avf_ethdev.c b/drivers/net/avf/avf_ethdev.c index 3a2baaf28..a7d69828c 100644 --- a/drivers/net/avf/avf_ethdev.c +++ b/drivers/net/avf/avf_ethdev.c @@ -523,7 +523,6 @@ avf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) DEV_RX_OFFLOAD_UDP_CKSUM | DEV_RX_OFFLOAD_TCP_CKSUM | DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM | - DEV_RX_OFFLOAD_CRC_STRIP | DEV_RX_OFFLOAD_KEEP_CRC | DEV_RX_OFFLOAD_SCATTER | DEV_RX_OFFLOAD_JUMBO_FRAME | diff --git a/drivers/net/avp/avp_ethdev.c b/drivers/net/avp/avp_ethdev.c index 761f6c1c4..0f8ccb954 100644 --- a/drivers/net/avp/avp_ethdev.c +++ b/drivers/net/avp/avp_ethdev.c @@ -2170,7 +2170,6 @@ avp_dev_info_get(struct rte_eth_dev *eth_dev, dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP; dev_info->tx_offload_capa = DEV_TX_OFFLOAD_VLAN_INSERT; } - dev_info->rx_offload_capa |= DEV_RX_OFFLOAD_CRC_STRIP; } static int diff --git a/drivers/net/axgbe/axgbe_ethdev.c b/drivers/net/axgbe/axgbe_ethdev.c index 9ae9f0631..4b84b50c0 100644 --- a/drivers/net/axgbe/axgbe_ethdev.c +++ b/drivers/net/axgbe/axgbe_ethdev.c @@ -364,7 +364,6 @@ axgbe_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) DEV_RX_OFFLOAD_IPV4_CKSUM | DEV_RX_OFFLOAD_UDP_CKSUM | DEV_RX_OFFLOAD_TCP_CKSUM | - DEV_RX_OFFLOAD_CRC_STRIP | DEV_RX_OFFLOAD_KEEP_CRC; dev_info->tx_offload_capa = diff --git a/drivers/net/axgbe/axgbe_rxtx.c b/drivers/net/axgbe/axgbe_rxtx.c index c5fd5f418..c5a585bdd 100644 --- a/drivers/net/axgbe/axgbe_rxtx.c +++ b/drivers/net/axgbe/axgbe_rxtx.c @@ -74,7 +74,7 @@ int axgbe_dev_rx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, (DMA_CH_INC * rxq->queue_id)); rxq->dma_tail_reg = (volatile uint32_t *)((uint8_t *)rxq->dma_regs + DMA_CH_RDTR_LO); - if (rte_eth_dev_must_keep_crc(dev->data->dev_conf.rxmode.offloads)) + if (dev->data->dev_conf.rxmode.offloads | DEV_RX_OFFLOAD_KEEP_CRC) rxq->crc_len = ETHER_CRC_LEN; else rxq->crc_len = 0; diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c index cc7e4391c..70c761581 100644 --- a/drivers/net/bnxt/bnxt_ethdev.c +++ b/drivers/net/bnxt/bnxt_ethdev.c @@ -149,7 +149,6 @@ static const struct rte_pci_id bnxt_pci_id_map[] = { DEV_RX_OFFLOAD_TCP_CKSUM | \ DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM | \ DEV_RX_OFFLOAD_JUMBO_FRAME | \ - DEV_RX_OFFLOAD_CRC_STRIP | \ DEV_RX_OFFLOAD_KEEP_CRC | \ DEV_RX_OFFLOAD_TCP_LRO) diff --git a/drivers/net/bnxt/bnxt_rxq.c b/drivers/net/bnxt/bnxt_rxq.c index 832fc9ecc..a5c30ca48 100644 --- a/drivers/net/bnxt/bnxt_rxq.c +++ b/drivers/net/bnxt/bnxt_rxq.c @@ -331,8 +331,10 @@ int bnxt_rx_queue_setup_op(struct rte_eth_dev *eth_dev, rxq->queue_id = queue_idx; rxq->port_id = eth_dev->data->port_id; - rxq->crc_len = rte_eth_dev_must_keep_crc(rx_offloads) ? - ETHER_CRC_LEN : 0; + if (rx_offloads | DEV_RX_OFFLOAD_KEEP_CRC) + rxq->crc_len = ETHER_CRC_LEN; + else + rxq->crc_len = 0; eth_dev->data->rx_queues[queue_idx] = rxq; /* Allocate RX ring hardware descriptors */ diff --git a/drivers/net/cxgbe/cxgbe_ethdev.c b/drivers/net/cxgbe/cxgbe_ethdev.c index 4dcad7a23..35c38c548 100644 --- a/drivers/net/cxgbe/cxgbe_ethdev.c +++ b/drivers/net/cxgbe/cxgbe_ethdev.c @@ -66,7 +66,6 @@ DEV_TX_OFFLOAD_TCP_TSO) #define CXGBE_RX_OFFLOADS (DEV_RX_OFFLOAD_VLAN_STRIP |\ - DEV_RX_OFFLOAD_CRC_STRIP |\ DEV_RX_OFFLOAD_IPV4_CKSUM |\ DEV_RX_OFFLOAD_JUMBO_FRAME |\ DEV_RX_OFFLOAD_UDP_CKSUM |\ @@ -413,20 +412,9 @@ int cxgbe_dev_configure(struct rte_eth_dev *eth_dev) { struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private); struct adapter *adapter = pi->adapter; - uint64_t configured_offloads; int err; CXGBE_FUNC_TRACE(); - configured_offloads = eth_dev->data->dev_conf.rxmode.offloads; - - /* KEEP_CRC offload flag is not supported by PMD - * can remove the below block when DEV_RX_OFFLOAD_CRC_STRIP removed - */ - if (rte_eth_dev_must_keep_crc(configured_offloads)) { - dev_info(adapter, "can't disable hw crc strip\n"); - eth_dev->data->dev_conf.rxmode.offloads |= - DEV_RX_OFFLOAD_CRC_STRIP; - } if (!(adapter->flags & FW_QUEUE_BOUND)) { err = setup_sge_fwevtq(adapter); diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c index 7a950ac04..30eff657a 100644 --- a/drivers/net/dpaa/dpaa_ethdev.c +++ b/drivers/net/dpaa/dpaa_ethdev.c @@ -55,7 +55,6 @@ static uint64_t dev_rx_offloads_nodis = DEV_RX_OFFLOAD_UDP_CKSUM | DEV_RX_OFFLOAD_TCP_CKSUM | DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM | - DEV_RX_OFFLOAD_CRC_STRIP | DEV_RX_OFFLOAD_SCATTER; /* Supported Tx offloads */ diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c index c5047367a..8d3d54bfe 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.c +++ b/drivers/net/dpaa2/dpaa2_ethdev.c @@ -39,7 +39,6 @@ static uint64_t dev_rx_offloads_sup = /* Rx offloads which cannot be disabled */ static uint64_t dev_rx_offloads_nodis = - DEV_RX_OFFLOAD_CRC_STRIP | DEV_RX_OFFLOAD_SCATTER; /* Supported Tx offloads */ diff --git a/drivers/net/e1000/em_rxtx.c b/drivers/net/e1000/em_rxtx.c index 7d2ac4eb7..10706fc98 100644 --- a/drivers/net/e1000/em_rxtx.c +++ b/drivers/net/e1000/em_rxtx.c @@ -1363,7 +1363,6 @@ em_get_rx_port_offloads_capa(struct rte_eth_dev *dev) DEV_RX_OFFLOAD_IPV4_CKSUM | DEV_RX_OFFLOAD_UDP_CKSUM | DEV_RX_OFFLOAD_TCP_CKSUM | - DEV_RX_OFFLOAD_CRC_STRIP | DEV_RX_OFFLOAD_KEEP_CRC | DEV_RX_OFFLOAD_SCATTER; if (max_rx_pktlen > ETHER_MAX_LEN) @@ -1459,7 +1458,7 @@ eth_em_rx_queue_setup(struct rte_eth_dev *dev, rxq->rx_free_thresh = rx_conf->rx_free_thresh; rxq->queue_id = queue_idx; rxq->port_id = dev->data->port_id; - if (rte_eth_dev_must_keep_crc(dev->data->dev_conf.rxmode.offloads)) + if (dev->data->dev_conf.rxmode.offloads | DEV_RX_OFFLOAD_KEEP_CRC) rxq->crc_len = ETHER_CRC_LEN; else rxq->crc_len = 0; @@ -1795,7 +1794,7 @@ eth_em_rx_init(struct rte_eth_dev *dev) * Reset crc_len in case it was changed after queue setup by a * call to configure */ - if (rte_eth_dev_must_keep_crc(dev->data->dev_conf.rxmode.offloads)) + if (dev->data->dev_conf.rxmode.offloads | DEV_RX_OFFLOAD_KEEP_CRC) rxq->crc_len = ETHER_CRC_LEN; else rxq->crc_len = 0; @@ -1877,7 +1876,7 @@ eth_em_rx_init(struct rte_eth_dev *dev) } /* Setup the Receive Control Register. */ - if (rte_eth_dev_must_keep_crc(dev->data->dev_conf.rxmode.offloads)) + if (dev->data->dev_conf.rxmode.offloads | DEV_RX_OFFLOAD_KEEP_CRC) rctl &= ~E1000_RCTL_SECRC; /* Do not Strip Ethernet CRC. */ else rctl |= E1000_RCTL_SECRC; /* Strip Ethernet CRC. */ diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c index 64dfe6836..50cc99cc9 100644 --- a/drivers/net/e1000/igb_ethdev.c +++ b/drivers/net/e1000/igb_ethdev.c @@ -3197,14 +3197,14 @@ igbvf_dev_configure(struct rte_eth_dev *dev) * Keep the persistent behavior the same as Host PF */ #ifndef RTE_LIBRTE_E1000_PF_DISABLE_STRIP_CRC - if (rte_eth_dev_must_keep_crc(conf->rxmode.offloads)) { + if (conf->rxmode.offloads | DEV_RX_OFFLOAD_KEEP_CRC) { PMD_INIT_LOG(NOTICE, "VF can't disable HW CRC Strip"); - conf->rxmode.offloads |= DEV_RX_OFFLOAD_CRC_STRIP; + conf->rxmode.offloads &= ~DEV_RX_OFFLOAD_KEEP_CRC; } #else - if (!rte_eth_dev_must_keep_crc(conf->rxmode.offloads)) { + if (!(conf->rxmode.offloads | DEV_RX_OFFLOAD_KEEP_CRC)) { PMD_INIT_LOG(NOTICE, "VF can't enable HW CRC Strip"); - conf->rxmode.offloads &= ~DEV_RX_OFFLOAD_CRC_STRIP; + conf->rxmode.offloads |= DEV_RX_OFFLOAD_KEEP_CRC; } #endif diff --git a/drivers/net/e1000/igb_rxtx.c b/drivers/net/e1000/igb_rxtx.c index b955068a8..fadd815a5 100644 --- a/drivers/net/e1000/igb_rxtx.c +++ b/drivers/net/e1000/igb_rxtx.c @@ -1638,7 +1638,6 @@ igb_get_rx_port_offloads_capa(struct rte_eth_dev *dev) DEV_RX_OFFLOAD_UDP_CKSUM | DEV_RX_OFFLOAD_TCP_CKSUM | DEV_RX_OFFLOAD_JUMBO_FRAME | - DEV_RX_OFFLOAD_CRC_STRIP | DEV_RX_OFFLOAD_KEEP_CRC | DEV_RX_OFFLOAD_SCATTER; @@ -1721,7 +1720,7 @@ eth_igb_rx_queue_setup(struct rte_eth_dev *dev, rxq->reg_idx = (uint16_t)((RTE_ETH_DEV_SRIOV(dev).active == 0) ? queue_idx : RTE_ETH_DEV_SRIOV(dev).def_pool_q_idx + queue_idx); rxq->port_id = dev->data->port_id; - if (rte_eth_dev_must_keep_crc(dev->data->dev_conf.rxmode.offloads)) + if (dev->data->dev_conf.rxmode.offloads | DEV_RX_OFFLOAD_KEEP_CRC) rxq->crc_len = ETHER_CRC_LEN; else rxq->crc_len = 0; @@ -2374,7 +2373,7 @@ eth_igb_rx_init(struct rte_eth_dev *dev) * Reset crc_len in case it was changed after queue setup by a * call to configure */ - if (rte_eth_dev_must_keep_crc(dev->data->dev_conf.rxmode.offloads)) + if (dev->data->dev_conf.rxmode.offloads | DEV_RX_OFFLOAD_KEEP_CRC) rxq->crc_len = ETHER_CRC_LEN; else rxq->crc_len = 0; @@ -2506,7 +2505,7 @@ eth_igb_rx_init(struct rte_eth_dev *dev) E1000_WRITE_REG(hw, E1000_RXCSUM, rxcsum); /* Setup the Receive Control Register. */ - if (rte_eth_dev_must_keep_crc(dev->data->dev_conf.rxmode.offloads)) { + if (dev->data->dev_conf.rxmode.offloads | DEV_RX_OFFLOAD_KEEP_CRC) { rctl &= ~E1000_RCTL_SECRC; /* Do not Strip Ethernet CRC. */ /* clear STRCRC bit in all queues */ diff --git a/drivers/net/enic/enic_res.c b/drivers/net/enic/enic_res.c index 8d493ffed..abe004b24 100644 --- a/drivers/net/enic/enic_res.c +++ b/drivers/net/enic/enic_res.c @@ -195,7 +195,6 @@ int enic_get_vnic_config(struct enic *enic) enic->rx_offload_capa = DEV_RX_OFFLOAD_SCATTER | DEV_RX_OFFLOAD_JUMBO_FRAME | - DEV_RX_OFFLOAD_CRC_STRIP | DEV_RX_OFFLOAD_VLAN_STRIP | DEV_RX_OFFLOAD_IPV4_CKSUM | DEV_RX_OFFLOAD_UDP_CKSUM | diff --git a/drivers/net/failsafe/failsafe_ops.c b/drivers/net/failsafe/failsafe_ops.c index 24e91c931..d989a17bf 100644 --- a/drivers/net/failsafe/failsafe_ops.c +++ b/drivers/net/failsafe/failsafe_ops.c @@ -57,7 +57,6 @@ static struct rte_eth_dev_info default_infos = { DEV_RX_OFFLOAD_VLAN_FILTER | DEV_RX_OFFLOAD_VLAN_EXTEND | DEV_RX_OFFLOAD_JUMBO_FRAME | - DEV_RX_OFFLOAD_CRC_STRIP | DEV_RX_OFFLOAD_SCATTER | DEV_RX_OFFLOAD_TIMESTAMP | DEV_RX_OFFLOAD_SECURITY, @@ -74,7 +73,6 @@ static struct rte_eth_dev_info default_infos = { DEV_RX_OFFLOAD_VLAN_FILTER | DEV_RX_OFFLOAD_VLAN_EXTEND | DEV_RX_OFFLOAD_JUMBO_FRAME | - DEV_RX_OFFLOAD_CRC_STRIP | DEV_RX_OFFLOAD_SCATTER | DEV_RX_OFFLOAD_TIMESTAMP | DEV_RX_OFFLOAD_SECURITY, diff --git a/drivers/net/fm10k/fm10k_ethdev.c b/drivers/net/fm10k/fm10k_ethdev.c index 541a49b75..3359df3c8 100644 --- a/drivers/net/fm10k/fm10k_ethdev.c +++ b/drivers/net/fm10k/fm10k_ethdev.c @@ -451,12 +451,6 @@ fm10k_dev_configure(struct rte_eth_dev *dev) PMD_INIT_FUNC_TRACE(); - /* KEEP_CRC offload flag is not supported by PMD - * can remove the below block when DEV_RX_OFFLOAD_CRC_STRIP removed - */ - if (rte_eth_dev_must_keep_crc(dev->data->dev_conf.rxmode.offloads)) - PMD_INIT_LOG(WARNING, "fm10k always strip CRC"); - /* multipe queue mode checking */ ret = fm10k_check_mq_mode(dev); if (ret != 0) { @@ -1796,7 +1790,6 @@ static uint64_t fm10k_get_rx_port_offloads_capa(struct rte_eth_dev *dev) DEV_RX_OFFLOAD_UDP_CKSUM | DEV_RX_OFFLOAD_TCP_CKSUM | DEV_RX_OFFLOAD_JUMBO_FRAME | - DEV_RX_OFFLOAD_CRC_STRIP | DEV_RX_OFFLOAD_HEADER_SPLIT); } diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c index 85a6a867f..eeadce43c 100644 --- a/drivers/net/i40e/i40e_ethdev.c +++ b/drivers/net/i40e/i40e_ethdev.c @@ -3363,7 +3363,6 @@ i40e_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) DEV_RX_OFFLOAD_UDP_CKSUM | DEV_RX_OFFLOAD_TCP_CKSUM | DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM | - DEV_RX_OFFLOAD_CRC_STRIP | DEV_RX_OFFLOAD_KEEP_CRC | DEV_RX_OFFLOAD_VLAN_EXTEND | DEV_RX_OFFLOAD_VLAN_FILTER | diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c index 001c301b9..e0a9b608f 100644 --- a/drivers/net/i40e/i40e_ethdev_vf.c +++ b/drivers/net/i40e/i40e_ethdev_vf.c @@ -1536,7 +1536,7 @@ i40evf_dev_configure(struct rte_eth_dev *dev) /* For non-DPDK PF drivers, VF has no ability to disable HW * CRC strip, and is implicitly enabled by the PF. */ - if (rte_eth_dev_must_keep_crc(conf->rxmode.offloads)) { + if (conf->rxmode.offloads | DEV_RX_OFFLOAD_KEEP_CRC) { vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private); if ((vf->version_major == VIRTCHNL_VERSION_MAJOR) && (vf->version_minor <= VIRTCHNL_VERSION_MINOR)) { @@ -2180,7 +2180,6 @@ i40evf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) DEV_RX_OFFLOAD_UDP_CKSUM | DEV_RX_OFFLOAD_TCP_CKSUM | DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM | - DEV_RX_OFFLOAD_CRC_STRIP | DEV_RX_OFFLOAD_KEEP_CRC | DEV_RX_OFFLOAD_SCATTER | DEV_RX_OFFLOAD_JUMBO_FRAME | diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c index 2a28ee348..3145b2ea4 100644 --- a/drivers/net/i40e/i40e_rxtx.c +++ b/drivers/net/i40e/i40e_rxtx.c @@ -1828,7 +1828,7 @@ i40e_dev_rx_queue_setup(struct rte_eth_dev *dev, rxq->queue_id = queue_idx; rxq->reg_idx = reg_idx; rxq->port_id = dev->data->port_id; - if (rte_eth_dev_must_keep_crc(dev->data->dev_conf.rxmode.offloads)) + if (dev->data->dev_conf.rxmode.offloads | DEV_RX_OFFLOAD_KEEP_CRC) rxq->crc_len = ETHER_CRC_LEN; else rxq->crc_len = 0; diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c index 26b192737..d032da7a0 100644 --- a/drivers/net/ixgbe/ixgbe_ethdev.c +++ b/drivers/net/ixgbe/ixgbe_ethdev.c @@ -5008,14 +5008,14 @@ ixgbevf_dev_configure(struct rte_eth_dev *dev) * Keep the persistent behavior the same as Host PF */ #ifndef RTE_LIBRTE_IXGBE_PF_DISABLE_STRIP_CRC - if (rte_eth_dev_must_keep_crc(conf->rxmode.offloads)) { + if (conf->rxmode.offloads | DEV_RX_OFFLOAD_KEEP_CRC) { PMD_INIT_LOG(NOTICE, "VF can't disable HW CRC Strip"); - conf->rxmode.offloads |= DEV_RX_OFFLOAD_CRC_STRIP; + conf->rxmode.offloads &= ~DEV_RX_OFFLOAD_KEEP_CRC; } #else - if (!rte_eth_dev_must_keep_crc(conf->rxmode.offloads)) { + if (!(conf->rxmode.offloads | DEV_RX_OFFLOAD_KEEP_CRC)) { PMD_INIT_LOG(NOTICE, "VF can't enable HW CRC Strip"); - conf->rxmode.offloads &= ~DEV_RX_OFFLOAD_CRC_STRIP; + conf->rxmode.offloads |= DEV_RX_OFFLOAD_KEEP_CRC; } #endif diff --git a/drivers/net/ixgbe/ixgbe_ipsec.c b/drivers/net/ixgbe/ixgbe_ipsec.c index 08405f1e3..ca1fc8d57 100644 --- a/drivers/net/ixgbe/ixgbe_ipsec.c +++ b/drivers/net/ixgbe/ixgbe_ipsec.c @@ -609,7 +609,7 @@ ixgbe_crypto_enable_ipsec(struct rte_eth_dev *dev) PMD_DRV_LOG(ERR, "RSC and IPsec not supported"); return -1; } - if (rte_eth_dev_must_keep_crc(rx_offloads)) { + if (rx_offloads | DEV_RX_OFFLOAD_KEEP_CRC) { PMD_DRV_LOG(ERR, "HW CRC strip needs to be enabled for IPsec"); return -1; } diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c index f82b74a9a..7286ea313 100644 --- a/drivers/net/ixgbe/ixgbe_rxtx.c +++ b/drivers/net/ixgbe/ixgbe_rxtx.c @@ -2848,7 +2848,6 @@ ixgbe_get_rx_port_offloads(struct rte_eth_dev *dev) offloads = DEV_RX_OFFLOAD_IPV4_CKSUM | DEV_RX_OFFLOAD_UDP_CKSUM | DEV_RX_OFFLOAD_TCP_CKSUM | - DEV_RX_OFFLOAD_CRC_STRIP | DEV_RX_OFFLOAD_KEEP_CRC | DEV_RX_OFFLOAD_JUMBO_FRAME | DEV_RX_OFFLOAD_SCATTER; @@ -2936,7 +2935,7 @@ ixgbe_dev_rx_queue_setup(struct rte_eth_dev *dev, rxq->reg_idx = (uint16_t)((RTE_ETH_DEV_SRIOV(dev).active == 0) ? queue_idx : RTE_ETH_DEV_SRIOV(dev).def_pool_q_idx + queue_idx); rxq->port_id = dev->data->port_id; - if (rte_eth_dev_must_keep_crc(dev->data->dev_conf.rxmode.offloads)) + if (dev->data->dev_conf.rxmode.offloads | DEV_RX_OFFLOAD_KEEP_CRC) rxq->crc_len = ETHER_CRC_LEN; else rxq->crc_len = 0; @@ -4705,7 +4704,7 @@ ixgbe_set_rsc(struct rte_eth_dev *dev) /* RSC global configuration (chapter 4.6.7.2.1 of 82599 Spec) */ - if (rte_eth_dev_must_keep_crc(rx_conf->offloads) && + if ((rx_conf->offloads | DEV_RX_OFFLOAD_KEEP_CRC) && (rx_conf->offloads & DEV_RX_OFFLOAD_TCP_LRO)) { /* * According to chapter of 4.6.7.2.1 of the Spec Rev. @@ -4854,7 +4853,7 @@ ixgbe_dev_rx_init(struct rte_eth_dev *dev) * Configure CRC stripping, if any. */ hlreg0 = IXGBE_READ_REG(hw, IXGBE_HLREG0); - if (rte_eth_dev_must_keep_crc(rx_conf->offloads)) + if (rx_conf->offloads | DEV_RX_OFFLOAD_KEEP_CRC) hlreg0 &= ~IXGBE_HLREG0_RXCRCSTRP; else hlreg0 |= IXGBE_HLREG0_RXCRCSTRP; @@ -4895,8 +4894,10 @@ ixgbe_dev_rx_init(struct rte_eth_dev *dev) * Reset crc_len in case it was changed after queue setup by a * call to configure. */ - rxq->crc_len = rte_eth_dev_must_keep_crc(rx_conf->offloads) ? - ETHER_CRC_LEN : 0; + if (rx_conf->offloads | DEV_RX_OFFLOAD_KEEP_CRC) + rxq->crc_len = ETHER_CRC_LEN; + else + rxq->crc_len = 0; /* Setup the Base and Length of the Rx Descriptor Rings */ bus_addr = rxq->rx_ring_phys_addr; @@ -4965,7 +4966,7 @@ ixgbe_dev_rx_init(struct rte_eth_dev *dev) if (hw->mac.type == ixgbe_mac_82599EB || hw->mac.type == ixgbe_mac_X540) { rdrxctl = IXGBE_READ_REG(hw, IXGBE_RDRXCTL); - if (rte_eth_dev_must_keep_crc(rx_conf->offloads)) + if (rx_conf->offloads | DEV_RX_OFFLOAD_KEEP_CRC) rdrxctl &= ~IXGBE_RDRXCTL_CRCSTRIP; else rdrxctl |= IXGBE_RDRXCTL_CRCSTRIP; diff --git a/drivers/net/kni/rte_eth_kni.c b/drivers/net/kni/rte_eth_kni.c index 085bb8452..8a7015a0b 100644 --- a/drivers/net/kni/rte_eth_kni.c +++ b/drivers/net/kni/rte_eth_kni.c @@ -207,7 +207,6 @@ eth_kni_dev_info(struct rte_eth_dev *dev __rte_unused, dev_info->max_rx_queues = KNI_MAX_QUEUE_PER_PORT; dev_info->max_tx_queues = KNI_MAX_QUEUE_PER_PORT; dev_info->min_rx_bufsize = 0; - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_CRC_STRIP; } static int diff --git a/drivers/net/mlx4/mlx4_rxq.c b/drivers/net/mlx4/mlx4_rxq.c index 9737da2e5..b3ffb25d9 100644 --- a/drivers/net/mlx4/mlx4_rxq.c +++ b/drivers/net/mlx4/mlx4_rxq.c @@ -678,7 +678,6 @@ uint64_t mlx4_get_rx_queue_offloads(struct priv *priv) { uint64_t offloads = DEV_RX_OFFLOAD_SCATTER | - DEV_RX_OFFLOAD_CRC_STRIP | DEV_RX_OFFLOAD_KEEP_CRC | DEV_RX_OFFLOAD_JUMBO_FRAME; @@ -780,7 +779,7 @@ mlx4_rx_queue_setup(struct rte_eth_dev *dev, uint16_t idx, uint16_t desc, } /* By default, FCS (CRC) is stripped by hardware. */ crc_present = 0; - if (rte_eth_dev_must_keep_crc(offloads)) { + if (offloads | DEV_RX_OFFLOAD_KEEP_CRC) { if (priv->hw_fcs_strip) { crc_present = 1; } else { diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c index 1f7bfd441..718f4b1d9 100644 --- a/drivers/net/mlx5/mlx5_rxq.c +++ b/drivers/net/mlx5/mlx5_rxq.c @@ -388,7 +388,6 @@ mlx5_get_rx_queue_offloads(struct rte_eth_dev *dev) DEV_RX_OFFLOAD_TIMESTAMP | DEV_RX_OFFLOAD_JUMBO_FRAME); - offloads |= DEV_RX_OFFLOAD_CRC_STRIP; if (config->hw_fcs_strip) offloads |= DEV_RX_OFFLOAD_KEEP_CRC; @@ -1438,7 +1437,7 @@ mlx5_rxq_new(struct rte_eth_dev *dev, uint16_t idx, uint16_t desc, tmpl->rxq.vlan_strip = !!(offloads & DEV_RX_OFFLOAD_VLAN_STRIP); /* By default, FCS (CRC) is stripped by hardware. */ tmpl->rxq.crc_present = 0; - if (rte_eth_dev_must_keep_crc(offloads)) { + if (offloads | DEV_RX_OFFLOAD_KEEP_CRC) { if (config->hw_fcs_strip) { tmpl->rxq.crc_present = 1; } else { diff --git a/drivers/net/mvpp2/mrvl_ethdev.c b/drivers/net/mvpp2/mrvl_ethdev.c index 682444590..fa4af49af 100644 --- a/drivers/net/mvpp2/mrvl_ethdev.c +++ b/drivers/net/mvpp2/mrvl_ethdev.c @@ -67,7 +67,6 @@ /** Port Rx offload capabilities */ #define MRVL_RX_OFFLOADS (DEV_RX_OFFLOAD_VLAN_FILTER | \ DEV_RX_OFFLOAD_JUMBO_FRAME | \ - DEV_RX_OFFLOAD_CRC_STRIP | \ DEV_RX_OFFLOAD_CHECKSUM) /** Port Tx offloads capabilities */ @@ -311,14 +310,6 @@ mrvl_dev_configure(struct rte_eth_dev *dev) return -EINVAL; } - /* KEEP_CRC offload flag is not supported by PMD - * can remove the below block when DEV_RX_OFFLOAD_CRC_STRIP removed - */ - if (rte_eth_dev_must_keep_crc(dev->data->dev_conf.rxmode.offloads)) { - MRVL_LOG(INFO, "L2 CRC stripping is always enabled in hw"); - dev->data->dev_conf.rxmode.offloads |= DEV_RX_OFFLOAD_CRC_STRIP; - } - if (dev->data->dev_conf.rxmode.split_hdr_size) { MRVL_LOG(INFO, "Split headers not supported"); return -EINVAL; @@ -1334,7 +1325,6 @@ mrvl_dev_infos_get(struct rte_eth_dev *dev __rte_unused, /* By default packets are dropped if no descriptors are available */ info->default_rxconf.rx_drop_en = 1; - info->default_rxconf.offloads = DEV_RX_OFFLOAD_CRC_STRIP; info->max_rx_pktlen = MRVL_PKT_SIZE_MAX; } diff --git a/drivers/net/netvsc/hn_ethdev.c b/drivers/net/netvsc/hn_ethdev.c index 2200ee319..7f7ac155e 100644 --- a/drivers/net/netvsc/hn_ethdev.c +++ b/drivers/net/netvsc/hn_ethdev.c @@ -40,8 +40,7 @@ DEV_TX_OFFLOAD_VLAN_INSERT) #define HN_RX_OFFLOAD_CAPS (DEV_RX_OFFLOAD_CHECKSUM | \ - DEV_RX_OFFLOAD_VLAN_STRIP | \ - DEV_RX_OFFLOAD_CRC_STRIP) + DEV_RX_OFFLOAD_VLAN_STRIP) int hn_logtype_init; int hn_logtype_driver; diff --git a/drivers/net/netvsc/hn_rndis.c b/drivers/net/netvsc/hn_rndis.c index f44add726..9de99e16a 100644 --- a/drivers/net/netvsc/hn_rndis.c +++ b/drivers/net/netvsc/hn_rndis.c @@ -892,8 +892,7 @@ int hn_rndis_get_offload(struct hn_data *hv, == HN_NDIS_LSOV2_CAP_IP6) dev_info->tx_offload_capa |= DEV_TX_OFFLOAD_TCP_TSO; - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP | - DEV_RX_OFFLOAD_CRC_STRIP; + dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP; if (hwcaps.ndis_csum.ndis_ip4_rxcsum & NDIS_RXCSUM_CAP_IP4) dev_info->rx_offload_capa |= DEV_RX_OFFLOAD_IPV4_CKSUM; diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c index ee743e975..168088c6d 100644 --- a/drivers/net/nfp/nfp_net.c +++ b/drivers/net/nfp/nfp_net.c @@ -411,12 +411,6 @@ nfp_net_configure(struct rte_eth_dev *dev) return -EINVAL; } - /* KEEP_CRC offload flag is not supported by PMD - * can remove the below block when DEV_RX_OFFLOAD_CRC_STRIP removed - */ - if (rte_eth_dev_must_keep_crc(rxmode->offloads)) - PMD_INIT_LOG(INFO, "HW does strip CRC. No configurable!"); - return 0; } @@ -1168,8 +1162,7 @@ nfp_net_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) DEV_RX_OFFLOAD_UDP_CKSUM | DEV_RX_OFFLOAD_TCP_CKSUM; - dev_info->rx_offload_capa |= DEV_RX_OFFLOAD_JUMBO_FRAME | - DEV_RX_OFFLOAD_KEEP_CRC; + dev_info->rx_offload_capa |= DEV_RX_OFFLOAD_JUMBO_FRAME; if (hw->cap & NFP_NET_CFG_CTRL_TXVLAN) dev_info->tx_offload_capa = DEV_TX_OFFLOAD_VLAN_INSERT; diff --git a/drivers/net/null/rte_eth_null.c b/drivers/net/null/rte_eth_null.c index 244f86545..de10b5bdf 100644 --- a/drivers/net/null/rte_eth_null.c +++ b/drivers/net/null/rte_eth_null.c @@ -305,7 +305,6 @@ eth_dev_info(struct rte_eth_dev *dev, dev_info->min_rx_bufsize = 0; dev_info->reta_size = internals->reta_size; dev_info->flow_type_rss_offloads = internals->flow_type_rss_offloads; - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_CRC_STRIP; } static int diff --git a/drivers/net/octeontx/octeontx_ethdev.c b/drivers/net/octeontx/octeontx_ethdev.c index 0f3d5d673..71843c63a 100644 --- a/drivers/net/octeontx/octeontx_ethdev.c +++ b/drivers/net/octeontx/octeontx_ethdev.c @@ -281,14 +281,6 @@ octeontx_dev_configure(struct rte_eth_dev *dev) return -EINVAL; } - /* KEEP_CRC offload flag is not supported by PMD - * can remove the below block when DEV_RX_OFFLOAD_CRC_STRIP removed - */ - if (rte_eth_dev_must_keep_crc(rxmode->offloads)) { - PMD_INIT_LOG(NOTICE, "can't disable hw crc strip"); - rxmode->offloads |= DEV_RX_OFFLOAD_CRC_STRIP; - } - if (!(txmode->offloads & DEV_TX_OFFLOAD_MT_LOCKFREE)) { PMD_INIT_LOG(NOTICE, "cant disable lockfree tx"); txmode->offloads |= DEV_TX_OFFLOAD_MT_LOCKFREE; diff --git a/drivers/net/octeontx/octeontx_ethdev.h b/drivers/net/octeontx/octeontx_ethdev.h index 14f169692..920f6f89b 100644 --- a/drivers/net/octeontx/octeontx_ethdev.h +++ b/drivers/net/octeontx/octeontx_ethdev.h @@ -28,8 +28,7 @@ #define OCTEONTX_MAX_BGX_PORTS 4 #define OCTEONTX_MAX_LMAC_PER_BGX 4 -#define OCTEONTX_RX_OFFLOADS (DEV_RX_OFFLOAD_CRC_STRIP \ - | DEV_RX_OFFLOAD_CHECKSUM) +#define OCTEONTX_RX_OFFLOADS DEV_RX_OFFLOAD_CHECKSUM #define OCTEONTX_TX_OFFLOADS DEV_TX_OFFLOAD_MT_LOCKFREE static inline struct octeontx_nic * diff --git a/drivers/net/pcap/rte_eth_pcap.c b/drivers/net/pcap/rte_eth_pcap.c index e8810a171..a015a9d48 100644 --- a/drivers/net/pcap/rte_eth_pcap.c +++ b/drivers/net/pcap/rte_eth_pcap.c @@ -553,7 +553,6 @@ eth_dev_info(struct rte_eth_dev *dev, dev_info->max_rx_queues = dev->data->nb_rx_queues; dev_info->max_tx_queues = dev->data->nb_tx_queues; dev_info->min_rx_bufsize = 0; - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_CRC_STRIP; } static int diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c index df52ea928..7bb52b157 100644 --- a/drivers/net/qede/qede_ethdev.c +++ b/drivers/net/qede/qede_ethdev.c @@ -1554,7 +1554,6 @@ qede_dev_info_get(struct rte_eth_dev *eth_dev, DEV_RX_OFFLOAD_TCP_CKSUM | DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM | DEV_RX_OFFLOAD_TCP_LRO | - DEV_RX_OFFLOAD_CRC_STRIP | DEV_RX_OFFLOAD_KEEP_CRC | DEV_RX_OFFLOAD_SCATTER | DEV_RX_OFFLOAD_JUMBO_FRAME | diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c index 791deb0bb..bfe2f1780 100644 --- a/drivers/net/ring/rte_eth_ring.c +++ b/drivers/net/ring/rte_eth_ring.c @@ -164,7 +164,6 @@ eth_dev_info(struct rte_eth_dev *dev, dev_info->max_rx_queues = (uint16_t)internals->max_rx_queues; dev_info->max_tx_queues = (uint16_t)internals->max_tx_queues; dev_info->min_rx_bufsize = 0; - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_CRC_STRIP; } static int diff --git a/drivers/net/sfc/sfc_rx.c b/drivers/net/sfc/sfc_rx.c index d8503e201..acfd3b51c 100644 --- a/drivers/net/sfc/sfc_rx.c +++ b/drivers/net/sfc/sfc_rx.c @@ -792,7 +792,6 @@ sfc_rx_get_dev_offload_caps(struct sfc_adapter *sa) uint64_t caps = 0; caps |= DEV_RX_OFFLOAD_JUMBO_FRAME; - caps |= DEV_RX_OFFLOAD_CRC_STRIP; if (sa->dp_rx->features & SFC_DP_RX_FEAT_CHECKSUM) { caps |= DEV_RX_OFFLOAD_IPV4_CKSUM; @@ -1439,14 +1438,6 @@ sfc_rx_check_mode(struct sfc_adapter *sa, struct rte_eth_rxmode *rxmode) rc = EINVAL; } - /* KEEP_CRC offload flag is not supported by PMD - * can remove the below block when DEV_RX_OFFLOAD_CRC_STRIP removed - */ - if (rte_eth_dev_must_keep_crc(rxmode->offloads)) { - sfc_warn(sa, "FCS stripping cannot be disabled - always on"); - rxmode->offloads |= DEV_RX_OFFLOAD_CRC_STRIP; - } - /* * Requested offloads are validated against supported by ethdev, * so unsupported offloads cannot be added as the result of diff --git a/drivers/net/softnic/rte_eth_softnic.c b/drivers/net/softnic/rte_eth_softnic.c index 30fb3952a..41c3a9b3e 100644 --- a/drivers/net/softnic/rte_eth_softnic.c +++ b/drivers/net/softnic/rte_eth_softnic.c @@ -73,7 +73,6 @@ static const struct rte_eth_dev_info pmd_dev_info = { .nb_min = 0, .nb_align = 1, }, - .rx_offload_capa = DEV_RX_OFFLOAD_CRC_STRIP, }; static int pmd_softnic_logtype; diff --git a/drivers/net/szedata2/rte_eth_szedata2.c b/drivers/net/szedata2/rte_eth_szedata2.c index 1d20cb51b..8f92e72f2 100644 --- a/drivers/net/szedata2/rte_eth_szedata2.c +++ b/drivers/net/szedata2/rte_eth_szedata2.c @@ -1056,8 +1056,7 @@ eth_dev_info(struct rte_eth_dev *dev, dev_info->max_rx_queues = internals->max_rx_queues; dev_info->max_tx_queues = internals->max_tx_queues; dev_info->min_rx_bufsize = 0; - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_SCATTER | - DEV_RX_OFFLOAD_CRC_STRIP; + dev_info->rx_offload_capa = DEV_RX_OFFLOAD_SCATTER; dev_info->tx_offload_capa = 0; dev_info->rx_queue_offload_capa = 0; dev_info->tx_queue_offload_capa = 0; diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c index feb92b48e..ad5ae988b 100644 --- a/drivers/net/tap/rte_eth_tap.c +++ b/drivers/net/tap/rte_eth_tap.c @@ -305,8 +305,7 @@ tap_rx_offload_get_queue_capa(void) return DEV_RX_OFFLOAD_SCATTER | DEV_RX_OFFLOAD_IPV4_CKSUM | DEV_RX_OFFLOAD_UDP_CKSUM | - DEV_RX_OFFLOAD_TCP_CKSUM | - DEV_RX_OFFLOAD_CRC_STRIP; + DEV_RX_OFFLOAD_TCP_CKSUM; } /* Callback to handle the rx burst of packets to the correct interface and diff --git a/drivers/net/thunderx/nicvf_ethdev.c b/drivers/net/thunderx/nicvf_ethdev.c index a55c3ca66..879d88998 100644 --- a/drivers/net/thunderx/nicvf_ethdev.c +++ b/drivers/net/thunderx/nicvf_ethdev.c @@ -1431,7 +1431,6 @@ nicvf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) dev_info->default_rxconf = (struct rte_eth_rxconf) { .rx_free_thresh = NICVF_DEFAULT_RX_FREE_THRESH, .rx_drop_en = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }; dev_info->default_txconf = (struct rte_eth_txconf) { @@ -1916,14 +1915,6 @@ nicvf_dev_configure(struct rte_eth_dev *dev) return -EINVAL; } - /* KEEP_CRC offload flag is not supported by PMD - * can remove the below block when DEV_RX_OFFLOAD_CRC_STRIP removed - */ - if (rte_eth_dev_must_keep_crc(rxmode->offloads)) { - PMD_INIT_LOG(NOTICE, "Can't disable hw crc strip"); - rxmode->offloads |= DEV_RX_OFFLOAD_CRC_STRIP; - } - if (txmode->mq_mode) { PMD_INIT_LOG(INFO, "Tx mq_mode DCB or VMDq not supported"); return -EINVAL; diff --git a/drivers/net/thunderx/nicvf_ethdev.h b/drivers/net/thunderx/nicvf_ethdev.h index ae440fef2..c0bfbf848 100644 --- a/drivers/net/thunderx/nicvf_ethdev.h +++ b/drivers/net/thunderx/nicvf_ethdev.h @@ -40,7 +40,6 @@ #define NICVF_RX_OFFLOAD_CAPA ( \ DEV_RX_OFFLOAD_CHECKSUM | \ DEV_RX_OFFLOAD_VLAN_STRIP | \ - DEV_RX_OFFLOAD_CRC_STRIP | \ DEV_RX_OFFLOAD_JUMBO_FRAME | \ DEV_RX_OFFLOAD_SCATTER) diff --git a/drivers/net/vhost/rte_eth_vhost.c b/drivers/net/vhost/rte_eth_vhost.c index e58f32211..aa6052221 100644 --- a/drivers/net/vhost/rte_eth_vhost.c +++ b/drivers/net/vhost/rte_eth_vhost.c @@ -1070,8 +1070,7 @@ eth_dev_info(struct rte_eth_dev *dev, dev_info->tx_offload_capa = DEV_TX_OFFLOAD_MULTI_SEGS | DEV_TX_OFFLOAD_VLAN_INSERT; - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP | - DEV_RX_OFFLOAD_CRC_STRIP; + dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP; } static int diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c index 614357da7..b81df0a99 100644 --- a/drivers/net/virtio/virtio_ethdev.c +++ b/drivers/net/virtio/virtio_ethdev.c @@ -2166,8 +2166,7 @@ virtio_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) dev_info->max_mac_addrs = VIRTIO_MAX_MAC_ADDRS; host_features = VTPCI_OPS(hw)->get_features(hw); - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP | - DEV_RX_OFFLOAD_CRC_STRIP; + dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP; if (host_features & (1ULL << VIRTIO_NET_F_GUEST_CSUM)) { dev_info->rx_offload_capa |= DEV_RX_OFFLOAD_TCP_CKSUM | diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c index 2613cd135..f1596ab19 100644 --- a/drivers/net/vmxnet3/vmxnet3_ethdev.c +++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c @@ -57,8 +57,7 @@ DEV_RX_OFFLOAD_UDP_CKSUM | \ DEV_RX_OFFLOAD_TCP_CKSUM | \ DEV_RX_OFFLOAD_TCP_LRO | \ - DEV_RX_OFFLOAD_JUMBO_FRAME | \ - DEV_RX_OFFLOAD_CRC_STRIP) + DEV_RX_OFFLOAD_JUMBO_FRAME) static int eth_vmxnet3_dev_init(struct rte_eth_dev *eth_dev); static int eth_vmxnet3_dev_uninit(struct rte_eth_dev *eth_dev); diff --git a/examples/bbdev_app/main.c b/examples/bbdev_app/main.c index 045a190b9..d68c06aef 100644 --- a/examples/bbdev_app/main.c +++ b/examples/bbdev_app/main.c @@ -64,7 +64,6 @@ static const struct rte_eth_conf port_conf = { .mq_mode = ETH_MQ_RX_NONE, .max_rx_pkt_len = ETHER_MAX_LEN, .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, diff --git a/examples/bond/main.c b/examples/bond/main.c index 23d0981ab..b282e68ba 100644 --- a/examples/bond/main.c +++ b/examples/bond/main.c @@ -122,7 +122,6 @@ static struct rte_eth_conf port_conf = { .mq_mode = ETH_MQ_RX_NONE, .max_rx_pkt_len = ETHER_MAX_LEN, .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .rx_adv_conf = { .rss_conf = { diff --git a/examples/exception_path/main.c b/examples/exception_path/main.c index 440422bc8..4180a8689 100644 --- a/examples/exception_path/main.c +++ b/examples/exception_path/main.c @@ -87,9 +87,6 @@ /* Options for configuring ethernet port */ static struct rte_eth_conf port_conf = { - .rxmode = { - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, - }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, }, diff --git a/examples/flow_filtering/main.c b/examples/flow_filtering/main.c index ce91e8a6f..b3f85b563 100644 --- a/examples/flow_filtering/main.c +++ b/examples/flow_filtering/main.c @@ -121,7 +121,6 @@ init_port(void) struct rte_eth_conf port_conf = { .rxmode = { .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .offloads = diff --git a/examples/ip_fragmentation/main.c b/examples/ip_fragmentation/main.c index 5306d7672..17a877da2 100644 --- a/examples/ip_fragmentation/main.c +++ b/examples/ip_fragmentation/main.c @@ -141,8 +141,7 @@ static struct rte_eth_conf port_conf = { .max_rx_pkt_len = JUMBO_FRAME_MAX_SIZE, .split_hdr_size = 0, .offloads = (DEV_RX_OFFLOAD_CHECKSUM | - DEV_RX_OFFLOAD_JUMBO_FRAME | - DEV_RX_OFFLOAD_CRC_STRIP), + DEV_RX_OFFLOAD_JUMBO_FRAME), }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, diff --git a/examples/ip_pipeline/link.c b/examples/ip_pipeline/link.c index 392a890fb..787eb866a 100644 --- a/examples/ip_pipeline/link.c +++ b/examples/ip_pipeline/link.c @@ -48,7 +48,6 @@ static struct rte_eth_conf port_conf_default = { .mq_mode = ETH_MQ_RX_NONE, .max_rx_pkt_len = 9000, /* Jumbo frame max packet len */ .split_hdr_size = 0, /* Header split buffer size */ - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .rx_adv_conf = { .rss_conf = { diff --git a/examples/ip_reassembly/main.c b/examples/ip_reassembly/main.c index b830f67a5..17b55d4c7 100644 --- a/examples/ip_reassembly/main.c +++ b/examples/ip_reassembly/main.c @@ -165,8 +165,7 @@ static struct rte_eth_conf port_conf = { .max_rx_pkt_len = JUMBO_FRAME_MAX_SIZE, .split_hdr_size = 0, .offloads = (DEV_RX_OFFLOAD_CHECKSUM | - DEV_RX_OFFLOAD_JUMBO_FRAME | - DEV_RX_OFFLOAD_CRC_STRIP), + DEV_RX_OFFLOAD_JUMBO_FRAME), }, .rx_adv_conf = { .rss_conf = { diff --git a/examples/ipsec-secgw/ipsec-secgw.c b/examples/ipsec-secgw/ipsec-secgw.c index b45b87bde..020424334 100644 --- a/examples/ipsec-secgw/ipsec-secgw.c +++ b/examples/ipsec-secgw/ipsec-secgw.c @@ -197,8 +197,7 @@ static struct rte_eth_conf port_conf = { .mq_mode = ETH_MQ_RX_RSS, .max_rx_pkt_len = ETHER_MAX_LEN, .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CHECKSUM | - DEV_RX_OFFLOAD_CRC_STRIP, + .offloads = DEV_RX_OFFLOAD_CHECKSUM, }, .rx_adv_conf = { .rss_conf = { diff --git a/examples/ipv4_multicast/main.c b/examples/ipv4_multicast/main.c index 331c32e71..6530d4830 100644 --- a/examples/ipv4_multicast/main.c +++ b/examples/ipv4_multicast/main.c @@ -109,8 +109,7 @@ static struct rte_eth_conf port_conf = { .rxmode = { .max_rx_pkt_len = JUMBO_FRAME_MAX_SIZE, .split_hdr_size = 0, - .offloads = (DEV_RX_OFFLOAD_JUMBO_FRAME | - DEV_RX_OFFLOAD_CRC_STRIP), + .offloads = DEV_RX_OFFLOAD_JUMBO_FRAME, }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, diff --git a/examples/kni/main.c b/examples/kni/main.c index 81336087d..80c401c51 100644 --- a/examples/kni/main.c +++ b/examples/kni/main.c @@ -94,9 +94,6 @@ static struct kni_port_params *kni_port_params_array[RTE_MAX_ETHPORTS]; /* Options for configuring ethernet port */ static struct rte_eth_conf port_conf = { - .rxmode = { - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, - }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, }, diff --git a/examples/l2fwd-crypto/main.c b/examples/l2fwd-crypto/main.c index 6061b7511..f12fd266e 100644 --- a/examples/l2fwd-crypto/main.c +++ b/examples/l2fwd-crypto/main.c @@ -213,7 +213,6 @@ static struct rte_eth_conf port_conf = { .mq_mode = ETH_MQ_RX_NONE, .max_rx_pkt_len = ETHER_MAX_LEN, .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, diff --git a/examples/l2fwd-jobstats/main.c b/examples/l2fwd-jobstats/main.c index af5423382..a4d28e178 100644 --- a/examples/l2fwd-jobstats/main.c +++ b/examples/l2fwd-jobstats/main.c @@ -90,7 +90,6 @@ struct rte_eth_dev_tx_buffer *tx_buffer[RTE_MAX_ETHPORTS]; static struct rte_eth_conf port_conf = { .rxmode = { .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, diff --git a/examples/l2fwd-keepalive/main.c b/examples/l2fwd-keepalive/main.c index 2d8b4d1c6..0bf2b5336 100644 --- a/examples/l2fwd-keepalive/main.c +++ b/examples/l2fwd-keepalive/main.c @@ -81,7 +81,6 @@ struct rte_eth_dev_tx_buffer *tx_buffer[RTE_MAX_ETHPORTS]; static struct rte_eth_conf port_conf = { .rxmode = { .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, diff --git a/examples/l2fwd/main.c b/examples/l2fwd/main.c index 9bb4c5bc4..6c23215a5 100644 --- a/examples/l2fwd/main.c +++ b/examples/l2fwd/main.c @@ -82,7 +82,6 @@ static struct rte_eth_dev_tx_buffer *tx_buffer[RTE_MAX_ETHPORTS]; static struct rte_eth_conf port_conf = { .rxmode = { .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, diff --git a/examples/l3fwd-acl/main.c b/examples/l3fwd-acl/main.c index 7c063a8d0..a322ce4f2 100644 --- a/examples/l3fwd-acl/main.c +++ b/examples/l3fwd-acl/main.c @@ -127,8 +127,7 @@ static struct rte_eth_conf port_conf = { .mq_mode = ETH_MQ_RX_RSS, .max_rx_pkt_len = ETHER_MAX_LEN, .split_hdr_size = 0, - .offloads = (DEV_RX_OFFLOAD_CRC_STRIP | - DEV_RX_OFFLOAD_CHECKSUM), + .offloads = DEV_RX_OFFLOAD_CHECKSUM, }, .rx_adv_conf = { .rss_conf = { diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c index d15cd520e..68527d26f 100644 --- a/examples/l3fwd-power/main.c +++ b/examples/l3fwd-power/main.c @@ -180,8 +180,7 @@ static struct rte_eth_conf port_conf = { .mq_mode = ETH_MQ_RX_RSS, .max_rx_pkt_len = ETHER_MAX_LEN, .split_hdr_size = 0, - .offloads = (DEV_RX_OFFLOAD_CRC_STRIP | - DEV_RX_OFFLOAD_CHECKSUM), + .offloads = DEV_RX_OFFLOAD_CHECKSUM, }, .rx_adv_conf = { .rss_conf = { diff --git a/examples/l3fwd-vf/main.c b/examples/l3fwd-vf/main.c index 5edd91a78..41137f978 100644 --- a/examples/l3fwd-vf/main.c +++ b/examples/l3fwd-vf/main.c @@ -161,8 +161,7 @@ static struct rte_eth_conf port_conf = { .mq_mode = ETH_MQ_RX_RSS, .max_rx_pkt_len = ETHER_MAX_LEN, .split_hdr_size = 0, - .offloads = (DEV_RX_OFFLOAD_CRC_STRIP | - DEV_RX_OFFLOAD_CHECKSUM), + .offloads = DEV_RX_OFFLOAD_CHECKSUM, }, .rx_adv_conf = { .rss_conf = { diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c index ab019b9e4..e4b99efe0 100644 --- a/examples/l3fwd/main.c +++ b/examples/l3fwd/main.c @@ -120,8 +120,7 @@ static struct rte_eth_conf port_conf = { .mq_mode = ETH_MQ_RX_RSS, .max_rx_pkt_len = ETHER_MAX_LEN, .split_hdr_size = 0, - .offloads = (DEV_RX_OFFLOAD_CRC_STRIP | - DEV_RX_OFFLOAD_CHECKSUM), + .offloads = DEV_RX_OFFLOAD_CHECKSUM, }, .rx_adv_conf = { .rss_conf = { diff --git a/examples/link_status_interrupt/main.c b/examples/link_status_interrupt/main.c index 3b732076b..f3346d23b 100644 --- a/examples/link_status_interrupt/main.c +++ b/examples/link_status_interrupt/main.c @@ -79,7 +79,6 @@ struct rte_eth_dev_tx_buffer *tx_buffer[RTE_MAX_ETHPORTS]; static struct rte_eth_conf port_conf = { .rxmode = { .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, diff --git a/examples/load_balancer/init.c b/examples/load_balancer/init.c index f2045f235..3ab7d0211 100644 --- a/examples/load_balancer/init.c +++ b/examples/load_balancer/init.c @@ -45,8 +45,7 @@ static struct rte_eth_conf port_conf = { .rxmode = { .mq_mode = ETH_MQ_RX_RSS, .split_hdr_size = 0, - .offloads = (DEV_RX_OFFLOAD_CHECKSUM | - DEV_RX_OFFLOAD_CRC_STRIP), + .offloads = DEV_RX_OFFLOAD_CHECKSUM, }, .rx_adv_conf = { .rss_conf = { diff --git a/examples/multi_process/symmetric_mp/main.c b/examples/multi_process/symmetric_mp/main.c index c6c6a537f..c310e942b 100644 --- a/examples/multi_process/symmetric_mp/main.c +++ b/examples/multi_process/symmetric_mp/main.c @@ -178,8 +178,7 @@ smp_port_init(uint16_t port, struct rte_mempool *mbuf_pool, .rxmode = { .mq_mode = ETH_MQ_RX_RSS, .split_hdr_size = 0, - .offloads = (DEV_RX_OFFLOAD_CHECKSUM | - DEV_RX_OFFLOAD_CRC_STRIP), + .offloads = DEV_RX_OFFLOAD_CHECKSUM, }, .rx_adv_conf = { .rss_conf = { diff --git a/examples/netmap_compat/bridge/bridge.c b/examples/netmap_compat/bridge/bridge.c index 7afca28cd..216e0105a 100644 --- a/examples/netmap_compat/bridge/bridge.c +++ b/examples/netmap_compat/bridge/bridge.c @@ -26,7 +26,6 @@ struct rte_eth_conf eth_conf = { .rxmode = { .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, diff --git a/examples/performance-thread/l3fwd-thread/main.c b/examples/performance-thread/l3fwd-thread/main.c index 5392fcea8..50fd1b00a 100644 --- a/examples/performance-thread/l3fwd-thread/main.c +++ b/examples/performance-thread/l3fwd-thread/main.c @@ -306,8 +306,7 @@ static struct rte_eth_conf port_conf = { .mq_mode = ETH_MQ_RX_RSS, .max_rx_pkt_len = ETHER_MAX_LEN, .split_hdr_size = 0, - .offloads = (DEV_RX_OFFLOAD_CHECKSUM | - DEV_RX_OFFLOAD_CRC_STRIP), + .offloads = DEV_RX_OFFLOAD_CHECKSUM, }, .rx_adv_conf = { .rss_conf = { diff --git a/examples/qos_meter/main.c b/examples/qos_meter/main.c index 5cf4e9dfa..9b0112449 100644 --- a/examples/qos_meter/main.c +++ b/examples/qos_meter/main.c @@ -56,8 +56,7 @@ static struct rte_eth_conf port_conf = { .mq_mode = ETH_MQ_RX_RSS, .max_rx_pkt_len = ETHER_MAX_LEN, .split_hdr_size = 0, - .offloads = (DEV_RX_OFFLOAD_CHECKSUM | - DEV_RX_OFFLOAD_CRC_STRIP), + .offloads = DEV_RX_OFFLOAD_CHECKSUM, }, .rx_adv_conf = { .rss_conf = { diff --git a/examples/qos_sched/init.c b/examples/qos_sched/init.c index 94cbb26f8..37c2b95fd 100644 --- a/examples/qos_sched/init.c +++ b/examples/qos_sched/init.c @@ -59,7 +59,6 @@ static struct rte_eth_conf port_conf = { .rxmode = { .max_rx_pkt_len = ETHER_MAX_LEN, .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .mq_mode = ETH_DCB_NONE, diff --git a/examples/quota_watermark/qw/init.c b/examples/quota_watermark/qw/init.c index 19164385a..5a0f64f45 100644 --- a/examples/quota_watermark/qw/init.c +++ b/examples/quota_watermark/qw/init.c @@ -24,7 +24,6 @@ static struct rte_eth_conf port_conf = { .rxmode = { .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .mq_mode = ETH_DCB_NONE, diff --git a/examples/tep_termination/vxlan_setup.c b/examples/tep_termination/vxlan_setup.c index b99ab97d3..ad7fbe9c6 100644 --- a/examples/tep_termination/vxlan_setup.c +++ b/examples/tep_termination/vxlan_setup.c @@ -69,7 +69,6 @@ uint8_t tep_filter_type[] = {RTE_TUNNEL_FILTER_IMAC_TENID, static struct rte_eth_conf port_conf = { .rxmode = { .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, diff --git a/examples/vhost/main.c b/examples/vhost/main.c index 2175c1186..97d196479 100644 --- a/examples/vhost/main.c +++ b/examples/vhost/main.c @@ -121,8 +121,7 @@ static struct rte_eth_conf vmdq_conf_default = { * this fixes bug of ipv4 forwarding in guest can't * forward pakets from one virtio dev to another virtio dev. */ - .offloads = (DEV_RX_OFFLOAD_CRC_STRIP | - DEV_RX_OFFLOAD_VLAN_STRIP), + .offloads = DEV_RX_OFFLOAD_VLAN_STRIP, }, .txmode = { diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c index 3f8de9341..04ee149f9 100644 --- a/lib/librte_ethdev/rte_ethdev.c +++ b/lib/librte_ethdev/rte_ethdev.c @@ -122,7 +122,6 @@ static const struct { RTE_RX_OFFLOAD_BIT2STR(VLAN_FILTER), RTE_RX_OFFLOAD_BIT2STR(VLAN_EXTEND), RTE_RX_OFFLOAD_BIT2STR(JUMBO_FRAME), - RTE_RX_OFFLOAD_BIT2STR(CRC_STRIP), RTE_RX_OFFLOAD_BIT2STR(SCATTER), RTE_RX_OFFLOAD_BIT2STR(TIMESTAMP), RTE_RX_OFFLOAD_BIT2STR(SECURITY), @@ -1147,14 +1146,6 @@ rte_eth_dev_configure(uint16_t port_id, uint16_t nb_rx_q, uint16_t nb_tx_q, return -EINVAL; } - if ((local_conf.rxmode.offloads & DEV_RX_OFFLOAD_CRC_STRIP) && - (local_conf.rxmode.offloads & DEV_RX_OFFLOAD_KEEP_CRC)) { - RTE_ETHDEV_LOG(ERR, - "Port id=%u not allowed to set both CRC STRIP and KEEP CRC offload flags\n", - port_id); - return -EINVAL; - } - /* Check that device supports requested rss hash functions. */ if ((dev_info.flow_type_rss_offloads | dev_conf->rx_adv_conf.rss_conf.rss_hf) != diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h index fa2812bca..44b4fb33f 100644 --- a/lib/librte_ethdev/rte_ethdev.h +++ b/lib/librte_ethdev/rte_ethdev.h @@ -890,16 +890,11 @@ struct rte_eth_conf { #define DEV_RX_OFFLOAD_VLAN_FILTER 0x00000200 #define DEV_RX_OFFLOAD_VLAN_EXTEND 0x00000400 #define DEV_RX_OFFLOAD_JUMBO_FRAME 0x00000800 -#define DEV_RX_OFFLOAD_CRC_STRIP 0x00001000 #define DEV_RX_OFFLOAD_SCATTER 0x00002000 #define DEV_RX_OFFLOAD_TIMESTAMP 0x00004000 #define DEV_RX_OFFLOAD_SECURITY 0x00008000 - -/** - * Invalid to set both DEV_RX_OFFLOAD_CRC_STRIP and DEV_RX_OFFLOAD_KEEP_CRC - * No DEV_RX_OFFLOAD_CRC_STRIP flag means keep CRC - */ #define DEV_RX_OFFLOAD_KEEP_CRC 0x00010000 + #define DEV_RX_OFFLOAD_CHECKSUM (DEV_RX_OFFLOAD_IPV4_CKSUM | \ DEV_RX_OFFLOAD_UDP_CKSUM | \ DEV_RX_OFFLOAD_TCP_CKSUM) diff --git a/lib/librte_ethdev/rte_ethdev_driver.h b/lib/librte_ethdev/rte_ethdev_driver.h index c6d9bc1a3..f158462a0 100644 --- a/lib/librte_ethdev/rte_ethdev_driver.h +++ b/lib/librte_ethdev/rte_ethdev_driver.h @@ -324,32 +324,6 @@ typedef int (*ethdev_uninit_t)(struct rte_eth_dev *ethdev); int __rte_experimental rte_eth_dev_destroy(struct rte_eth_dev *ethdev, ethdev_uninit_t ethdev_uninit); -/** - * PMD helper function to check if keeping CRC is requested - * - * @note - * When CRC_STRIP offload flag is removed and default behavior switch to - * strip CRC, as planned, this helper function is not that useful and will be - * removed. In PMDs this function will be replaced with check: - * if (offloads & DEV_RX_OFFLOAD_KEEP_CRC) - * - * @param rx_offloads - * offload bits to be applied - * - * @return - * Return positive if keeping CRC is requested, - * zero if stripping CRC is requested - */ -static inline int -rte_eth_dev_must_keep_crc(uint64_t rx_offloads) -{ - if (rx_offloads & DEV_RX_OFFLOAD_CRC_STRIP) - return 0; - - /* no KEEP_CRC or CRC_STRIP offload flags means keep CRC */ - return 1; -} - #ifdef __cplusplus } #endif diff --git a/test/test-pipeline/init.c b/test/test-pipeline/init.c index f33216c90..b75688a87 100644 --- a/test/test-pipeline/init.c +++ b/test/test-pipeline/init.c @@ -70,7 +70,7 @@ struct app_params app = { static struct rte_eth_conf port_conf = { .rxmode = { .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CHECKSUM | DEV_RX_OFFLOAD_CRC_STRIP, + .offloads = DEV_RX_OFFLOAD_CHECKSUM, }, .rx_adv_conf = { .rss_conf = { diff --git a/test/test/test_kni.c b/test/test/test_kni.c index 56c98513a..cf64c0b27 100644 --- a/test/test/test_kni.c +++ b/test/test/test_kni.c @@ -70,9 +70,6 @@ static const struct rte_eth_txconf tx_conf = { }; static const struct rte_eth_conf port_conf = { - .rxmode = { - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, - }, .txmode = { .mq_mode = ETH_DCB_NONE, }, diff --git a/test/test/test_link_bonding_mode4.c b/test/test/test_link_bonding_mode4.c index 9163f6313..e539f078d 100644 --- a/test/test/test_link_bonding_mode4.c +++ b/test/test/test_link_bonding_mode4.c @@ -110,7 +110,6 @@ static struct rte_eth_conf default_pmd_conf = { .mq_mode = ETH_MQ_RX_NONE, .max_rx_pkt_len = ETHER_MAX_LEN, .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, diff --git a/test/test/test_pmd_perf.c b/test/test/test_pmd_perf.c index 4549965fc..f5095c87d 100644 --- a/test/test/test_pmd_perf.c +++ b/test/test/test_pmd_perf.c @@ -65,7 +65,6 @@ static struct rte_eth_conf port_conf = { .mq_mode = ETH_MQ_RX_NONE, .max_rx_pkt_len = ETHER_MAX_LEN, .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, diff --git a/test/test/virtual_pmd.c b/test/test/virtual_pmd.c index 591b30989..f8ddc2db8 100644 --- a/test/test/virtual_pmd.c +++ b/test/test/virtual_pmd.c @@ -91,7 +91,6 @@ virtual_ethdev_info_get(struct rte_eth_dev *dev __rte_unused, dev_info->max_tx_queues = (uint16_t)512; dev_info->min_rx_bufsize = 0; - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_CRC_STRIP; } static int -- 2.17.1
Hi Ferruh, Monday, September 3, 2018 5:45 PM, Ferruh Yigit: > Subject: [PATCH] ethdev: make default behavior CRC strip on Rx > > Removed DEV_RX_OFFLOAD_CRC_STRIP offload flag. > Without any specific Rx offload flag, default behavior by PMDs is to > strip CRC. > > PMDs that support keeping CRC should advertise > DEV_RX_OFFLOAD_KEEP_CRC > Rx offload capability. > > Applications that require keeping CRC should check PMD capability first > and if it is supported can enable this feature by setting > DEV_RX_OFFLOAD_KEEP_CRC in Rx offload flag in rte_eth_dev_configure() > > Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> [...] > diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c > index 1f7bfd441..718f4b1d9 100644 > --- a/drivers/net/mlx5/mlx5_rxq.c > +++ b/drivers/net/mlx5/mlx5_rxq.c > @@ -388,7 +388,6 @@ mlx5_get_rx_queue_offloads(struct rte_eth_dev > *dev) > DEV_RX_OFFLOAD_TIMESTAMP | > DEV_RX_OFFLOAD_JUMBO_FRAME); > > - offloads |= DEV_RX_OFFLOAD_CRC_STRIP; > if (config->hw_fcs_strip) > offloads |= DEV_RX_OFFLOAD_KEEP_CRC; > > @@ -1438,7 +1437,7 @@ mlx5_rxq_new(struct rte_eth_dev *dev, uint16_t > idx, uint16_t desc, > tmpl->rxq.vlan_strip = !!(offloads & > DEV_RX_OFFLOAD_VLAN_STRIP); > /* By default, FCS (CRC) is stripped by hardware. */ > tmpl->rxq.crc_present = 0; > - if (rte_eth_dev_must_keep_crc(offloads)) { > + if (offloads | DEV_RX_OFFLOAD_KEEP_CRC) { I don't understand this logic, and it exists on many other location in the patch. Shouldn't it be (offloads & DEV_RX_OFFLOAD_KEEP_CRC) ? > if (config->hw_fcs_strip) { > tmpl->rxq.crc_present = 1; > } else { Also I think the CRC offload should have an entry on the port caps printed by testpmt "show port caps 0" (see port_offload_cap_display()).
Hi Ferruh, Monday, September 3, 2018 5:45 PM, Ferruh Yigit: > Removed DEV_RX_OFFLOAD_CRC_STRIP offload flag. > Without any specific Rx offload flag, default behavior by PMDs is to > strip CRC. > > PMDs that support keeping CRC should advertise > DEV_RX_OFFLOAD_KEEP_CRC > Rx offload capability. > > Applications that require keeping CRC should check PMD capability first > and if it is supported can enable this feature by setting > DEV_RX_OFFLOAD_KEEP_CRC in Rx offload flag in rte_eth_dev_configure() > > Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> > --- [...] > diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c > index 1f7bfd441..718f4b1d9 100644 > --- a/drivers/net/mlx5/mlx5_rxq.c > +++ b/drivers/net/mlx5/mlx5_rxq.c > @@ -388,7 +388,6 @@ mlx5_get_rx_queue_offloads(struct rte_eth_dev > *dev) > DEV_RX_OFFLOAD_TIMESTAMP | > DEV_RX_OFFLOAD_JUMBO_FRAME); > > - offloads |= DEV_RX_OFFLOAD_CRC_STRIP; > if (config->hw_fcs_strip) > offloads |= DEV_RX_OFFLOAD_KEEP_CRC; > > @@ -1438,7 +1437,7 @@ mlx5_rxq_new(struct rte_eth_dev *dev, uint16_t > idx, uint16_t desc, > tmpl->rxq.vlan_strip = !!(offloads & DEV_RX_OFFLOAD_VLAN_STRIP); > /* By default, FCS (CRC) is stripped by hardware. */ > tmpl->rxq.crc_present = 0; > - if (rte_eth_dev_must_keep_crc(offloads)) { > + if (offloads | DEV_RX_OFFLOAD_KEEP_CRC) { I don't understand this logic, and it exists on many other location in the patch. Shouldn't it be (offloads & DEV_RX_OFFLOAD_KEEP_CRC) ? > if (config->hw_fcs_strip) { > tmpl->rxq.crc_present = 1; > } else { Also I think the CRC offload should have an entry on the port caps printed by testpmt "show port caps 0" (see port_offload_cap_display()).
On 09/04/2018 08:17 AM, Shahaf Shuler wrote:
> Hi Ferruh,
>
> Monday, September 3, 2018 5:45 PM, Ferruh Yigit:
>> Removed DEV_RX_OFFLOAD_CRC_STRIP offload flag.
>> Without any specific Rx offload flag, default behavior by PMDs is to
>> strip CRC.
>>
>> PMDs that support keeping CRC should advertise
>> DEV_RX_OFFLOAD_KEEP_CRC
>> Rx offload capability.
>>
>> Applications that require keeping CRC should check PMD capability first
>> and if it is supported can enable this feature by setting
>> DEV_RX_OFFLOAD_KEEP_CRC in Rx offload flag in rte_eth_dev_configure()
>>
>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
>> ---
> [...]
>
>> diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c
>> index 1f7bfd441..718f4b1d9 100644
>> --- a/drivers/net/mlx5/mlx5_rxq.c
>> +++ b/drivers/net/mlx5/mlx5_rxq.c
>> @@ -388,7 +388,6 @@ mlx5_get_rx_queue_offloads(struct rte_eth_dev
>> *dev)
>> DEV_RX_OFFLOAD_TIMESTAMP |
>> DEV_RX_OFFLOAD_JUMBO_FRAME);
>>
>> - offloads |= DEV_RX_OFFLOAD_CRC_STRIP;
>> if (config->hw_fcs_strip)
>> offloads |= DEV_RX_OFFLOAD_KEEP_CRC;
>>
>> @@ -1438,7 +1437,7 @@ mlx5_rxq_new(struct rte_eth_dev *dev, uint16_t
>> idx, uint16_t desc,
>> tmpl->rxq.vlan_strip = !!(offloads & DEV_RX_OFFLOAD_VLAN_STRIP);
>> /* By default, FCS (CRC) is stripped by hardware. */
>> tmpl->rxq.crc_present = 0;
>> - if (rte_eth_dev_must_keep_crc(offloads)) {
>> + if (offloads | DEV_RX_OFFLOAD_KEEP_CRC) {
> I don't understand this logic, and it exists on many other location in the patch.
> Shouldn't it be (offloads & DEV_RX_OFFLOAD_KEEP_CRC) ?
OMG, how can I overlook it on my review. Really good catch.
On Mon, Sep 03, 2018 at 03:45:01PM +0100, Ferruh Yigit wrote: > Removed DEV_RX_OFFLOAD_CRC_STRIP offload flag. > Without any specific Rx offload flag, default behavior by PMDs is to > strip CRC. > > PMDs that support keeping CRC should advertise DEV_RX_OFFLOAD_KEEP_CRC > Rx offload capability. > > Applications that require keeping CRC should check PMD capability first > and if it is supported can enable this feature by setting > DEV_RX_OFFLOAD_KEEP_CRC in Rx offload flag in rte_eth_dev_configure() > > Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> > --- [...] > diff --git a/drivers/net/mvpp2/mrvl_ethdev.c b/drivers/net/mvpp2/mrvl_ethdev.c > index 682444590..fa4af49af 100644 > --- a/drivers/net/mvpp2/mrvl_ethdev.c > +++ b/drivers/net/mvpp2/mrvl_ethdev.c > @@ -67,7 +67,6 @@ > /** Port Rx offload capabilities */ > #define MRVL_RX_OFFLOADS (DEV_RX_OFFLOAD_VLAN_FILTER | \ > DEV_RX_OFFLOAD_JUMBO_FRAME | \ > - DEV_RX_OFFLOAD_CRC_STRIP | \ > DEV_RX_OFFLOAD_CHECKSUM) > > /** Port Tx offloads capabilities */ > @@ -311,14 +310,6 @@ mrvl_dev_configure(struct rte_eth_dev *dev) > return -EINVAL; > } > > - /* KEEP_CRC offload flag is not supported by PMD > - * can remove the below block when DEV_RX_OFFLOAD_CRC_STRIP removed > - */ > - if (rte_eth_dev_must_keep_crc(dev->data->dev_conf.rxmode.offloads)) { > - MRVL_LOG(INFO, "L2 CRC stripping is always enabled in hw"); > - dev->data->dev_conf.rxmode.offloads |= DEV_RX_OFFLOAD_CRC_STRIP; > - } > - > if (dev->data->dev_conf.rxmode.split_hdr_size) { > MRVL_LOG(INFO, "Split headers not supported"); > return -EINVAL; > @@ -1334,7 +1325,6 @@ mrvl_dev_infos_get(struct rte_eth_dev *dev __rte_unused, > > /* By default packets are dropped if no descriptors are available */ > info->default_rxconf.rx_drop_en = 1; > - info->default_rxconf.offloads = DEV_RX_OFFLOAD_CRC_STRIP; > > info->max_rx_pktlen = MRVL_PKT_SIZE_MAX; > } As for mvpp2: Acked-by: Tomasz Duszynski <tdu@semihalf.com> > diff --git a/drivers/net/netvsc/hn_ethdev.c b/drivers/net/netvsc/hn_ethdev.c > index 2200ee319..7f7ac155e 100644 > --- a/drivers/net/netvsc/hn_ethdev.c > +++ b/drivers/net/netvsc/hn_ethdev.c > @@ -40,8 +40,7 @@ > DEV_TX_OFFLOAD_VLAN_INSERT) > > #define HN_RX_OFFLOAD_CAPS (DEV_RX_OFFLOAD_CHECKSUM | \ > - DEV_RX_OFFLOAD_VLAN_STRIP | \ > - DEV_RX_OFFLOAD_CRC_STRIP) > + DEV_RX_OFFLOAD_VLAN_STRIP) > > int hn_logtype_init; > int hn_logtype_driver; > diff --git a/drivers/net/netvsc/hn_rndis.c b/drivers/net/netvsc/hn_rndis.c > index f44add726..9de99e16a 100644 > --- a/drivers/net/netvsc/hn_rndis.c > +++ b/drivers/net/netvsc/hn_rndis.c > @@ -892,8 +892,7 @@ int hn_rndis_get_offload(struct hn_data *hv, > == HN_NDIS_LSOV2_CAP_IP6) > dev_info->tx_offload_capa |= DEV_TX_OFFLOAD_TCP_TSO; > > - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP | > - DEV_RX_OFFLOAD_CRC_STRIP; > + dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP; > > if (hwcaps.ndis_csum.ndis_ip4_rxcsum & NDIS_RXCSUM_CAP_IP4) > dev_info->rx_offload_capa |= DEV_RX_OFFLOAD_IPV4_CKSUM; > diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c > index ee743e975..168088c6d 100644 > --- a/drivers/net/nfp/nfp_net.c > +++ b/drivers/net/nfp/nfp_net.c > @@ -411,12 +411,6 @@ nfp_net_configure(struct rte_eth_dev *dev) > return -EINVAL; > } > > - /* KEEP_CRC offload flag is not supported by PMD > - * can remove the below block when DEV_RX_OFFLOAD_CRC_STRIP removed > - */ > - if (rte_eth_dev_must_keep_crc(rxmode->offloads)) > - PMD_INIT_LOG(INFO, "HW does strip CRC. No configurable!"); > - > return 0; > } > > @@ -1168,8 +1162,7 @@ nfp_net_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) > DEV_RX_OFFLOAD_UDP_CKSUM | > DEV_RX_OFFLOAD_TCP_CKSUM; > > - dev_info->rx_offload_capa |= DEV_RX_OFFLOAD_JUMBO_FRAME | > - DEV_RX_OFFLOAD_KEEP_CRC; > + dev_info->rx_offload_capa |= DEV_RX_OFFLOAD_JUMBO_FRAME; > > if (hw->cap & NFP_NET_CFG_CTRL_TXVLAN) > dev_info->tx_offload_capa = DEV_TX_OFFLOAD_VLAN_INSERT; > diff --git a/drivers/net/null/rte_eth_null.c b/drivers/net/null/rte_eth_null.c > index 244f86545..de10b5bdf 100644 > --- a/drivers/net/null/rte_eth_null.c > +++ b/drivers/net/null/rte_eth_null.c > @@ -305,7 +305,6 @@ eth_dev_info(struct rte_eth_dev *dev, > dev_info->min_rx_bufsize = 0; > dev_info->reta_size = internals->reta_size; > dev_info->flow_type_rss_offloads = internals->flow_type_rss_offloads; > - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_CRC_STRIP; > } > > static int > diff --git a/drivers/net/octeontx/octeontx_ethdev.c b/drivers/net/octeontx/octeontx_ethdev.c > index 0f3d5d673..71843c63a 100644 > --- a/drivers/net/octeontx/octeontx_ethdev.c > +++ b/drivers/net/octeontx/octeontx_ethdev.c > @@ -281,14 +281,6 @@ octeontx_dev_configure(struct rte_eth_dev *dev) > return -EINVAL; > } > > - /* KEEP_CRC offload flag is not supported by PMD > - * can remove the below block when DEV_RX_OFFLOAD_CRC_STRIP removed > - */ > - if (rte_eth_dev_must_keep_crc(rxmode->offloads)) { > - PMD_INIT_LOG(NOTICE, "can't disable hw crc strip"); > - rxmode->offloads |= DEV_RX_OFFLOAD_CRC_STRIP; > - } > - > if (!(txmode->offloads & DEV_TX_OFFLOAD_MT_LOCKFREE)) { > PMD_INIT_LOG(NOTICE, "cant disable lockfree tx"); > txmode->offloads |= DEV_TX_OFFLOAD_MT_LOCKFREE; > diff --git a/drivers/net/octeontx/octeontx_ethdev.h b/drivers/net/octeontx/octeontx_ethdev.h > index 14f169692..920f6f89b 100644 > --- a/drivers/net/octeontx/octeontx_ethdev.h > +++ b/drivers/net/octeontx/octeontx_ethdev.h > @@ -28,8 +28,7 @@ > #define OCTEONTX_MAX_BGX_PORTS 4 > #define OCTEONTX_MAX_LMAC_PER_BGX 4 > > -#define OCTEONTX_RX_OFFLOADS (DEV_RX_OFFLOAD_CRC_STRIP \ > - | DEV_RX_OFFLOAD_CHECKSUM) > +#define OCTEONTX_RX_OFFLOADS DEV_RX_OFFLOAD_CHECKSUM > #define OCTEONTX_TX_OFFLOADS DEV_TX_OFFLOAD_MT_LOCKFREE > > static inline struct octeontx_nic * > diff --git a/drivers/net/pcap/rte_eth_pcap.c b/drivers/net/pcap/rte_eth_pcap.c > index e8810a171..a015a9d48 100644 > --- a/drivers/net/pcap/rte_eth_pcap.c > +++ b/drivers/net/pcap/rte_eth_pcap.c > @@ -553,7 +553,6 @@ eth_dev_info(struct rte_eth_dev *dev, > dev_info->max_rx_queues = dev->data->nb_rx_queues; > dev_info->max_tx_queues = dev->data->nb_tx_queues; > dev_info->min_rx_bufsize = 0; > - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_CRC_STRIP; > } > > static int > diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c > index df52ea928..7bb52b157 100644 > --- a/drivers/net/qede/qede_ethdev.c > +++ b/drivers/net/qede/qede_ethdev.c > @@ -1554,7 +1554,6 @@ qede_dev_info_get(struct rte_eth_dev *eth_dev, > DEV_RX_OFFLOAD_TCP_CKSUM | > DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM | > DEV_RX_OFFLOAD_TCP_LRO | > - DEV_RX_OFFLOAD_CRC_STRIP | > DEV_RX_OFFLOAD_KEEP_CRC | > DEV_RX_OFFLOAD_SCATTER | > DEV_RX_OFFLOAD_JUMBO_FRAME | > diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c > index 791deb0bb..bfe2f1780 100644 > --- a/drivers/net/ring/rte_eth_ring.c > +++ b/drivers/net/ring/rte_eth_ring.c > @@ -164,7 +164,6 @@ eth_dev_info(struct rte_eth_dev *dev, > dev_info->max_rx_queues = (uint16_t)internals->max_rx_queues; > dev_info->max_tx_queues = (uint16_t)internals->max_tx_queues; > dev_info->min_rx_bufsize = 0; > - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_CRC_STRIP; > } > > static int > diff --git a/drivers/net/sfc/sfc_rx.c b/drivers/net/sfc/sfc_rx.c > index d8503e201..acfd3b51c 100644 > --- a/drivers/net/sfc/sfc_rx.c > +++ b/drivers/net/sfc/sfc_rx.c > @@ -792,7 +792,6 @@ sfc_rx_get_dev_offload_caps(struct sfc_adapter *sa) > uint64_t caps = 0; > > caps |= DEV_RX_OFFLOAD_JUMBO_FRAME; > - caps |= DEV_RX_OFFLOAD_CRC_STRIP; > > if (sa->dp_rx->features & SFC_DP_RX_FEAT_CHECKSUM) { > caps |= DEV_RX_OFFLOAD_IPV4_CKSUM; > @@ -1439,14 +1438,6 @@ sfc_rx_check_mode(struct sfc_adapter *sa, struct rte_eth_rxmode *rxmode) > rc = EINVAL; > } > > - /* KEEP_CRC offload flag is not supported by PMD > - * can remove the below block when DEV_RX_OFFLOAD_CRC_STRIP removed > - */ > - if (rte_eth_dev_must_keep_crc(rxmode->offloads)) { > - sfc_warn(sa, "FCS stripping cannot be disabled - always on"); > - rxmode->offloads |= DEV_RX_OFFLOAD_CRC_STRIP; > - } > - > /* > * Requested offloads are validated against supported by ethdev, > * so unsupported offloads cannot be added as the result of > diff --git a/drivers/net/softnic/rte_eth_softnic.c b/drivers/net/softnic/rte_eth_softnic.c > index 30fb3952a..41c3a9b3e 100644 > --- a/drivers/net/softnic/rte_eth_softnic.c > +++ b/drivers/net/softnic/rte_eth_softnic.c > @@ -73,7 +73,6 @@ static const struct rte_eth_dev_info pmd_dev_info = { > .nb_min = 0, > .nb_align = 1, > }, > - .rx_offload_capa = DEV_RX_OFFLOAD_CRC_STRIP, > }; > > static int pmd_softnic_logtype; > diff --git a/drivers/net/szedata2/rte_eth_szedata2.c b/drivers/net/szedata2/rte_eth_szedata2.c > index 1d20cb51b..8f92e72f2 100644 > --- a/drivers/net/szedata2/rte_eth_szedata2.c > +++ b/drivers/net/szedata2/rte_eth_szedata2.c > @@ -1056,8 +1056,7 @@ eth_dev_info(struct rte_eth_dev *dev, > dev_info->max_rx_queues = internals->max_rx_queues; > dev_info->max_tx_queues = internals->max_tx_queues; > dev_info->min_rx_bufsize = 0; > - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_SCATTER | > - DEV_RX_OFFLOAD_CRC_STRIP; > + dev_info->rx_offload_capa = DEV_RX_OFFLOAD_SCATTER; > dev_info->tx_offload_capa = 0; > dev_info->rx_queue_offload_capa = 0; > dev_info->tx_queue_offload_capa = 0; > diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c > index feb92b48e..ad5ae988b 100644 > --- a/drivers/net/tap/rte_eth_tap.c > +++ b/drivers/net/tap/rte_eth_tap.c > @@ -305,8 +305,7 @@ tap_rx_offload_get_queue_capa(void) > return DEV_RX_OFFLOAD_SCATTER | > DEV_RX_OFFLOAD_IPV4_CKSUM | > DEV_RX_OFFLOAD_UDP_CKSUM | > - DEV_RX_OFFLOAD_TCP_CKSUM | > - DEV_RX_OFFLOAD_CRC_STRIP; > + DEV_RX_OFFLOAD_TCP_CKSUM; > } > > /* Callback to handle the rx burst of packets to the correct interface and > diff --git a/drivers/net/thunderx/nicvf_ethdev.c b/drivers/net/thunderx/nicvf_ethdev.c > index a55c3ca66..879d88998 100644 > --- a/drivers/net/thunderx/nicvf_ethdev.c > +++ b/drivers/net/thunderx/nicvf_ethdev.c > @@ -1431,7 +1431,6 @@ nicvf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) > dev_info->default_rxconf = (struct rte_eth_rxconf) { > .rx_free_thresh = NICVF_DEFAULT_RX_FREE_THRESH, > .rx_drop_en = 0, > - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, > }; > > dev_info->default_txconf = (struct rte_eth_txconf) { > @@ -1916,14 +1915,6 @@ nicvf_dev_configure(struct rte_eth_dev *dev) > return -EINVAL; > } > > - /* KEEP_CRC offload flag is not supported by PMD > - * can remove the below block when DEV_RX_OFFLOAD_CRC_STRIP removed > - */ > - if (rte_eth_dev_must_keep_crc(rxmode->offloads)) { > - PMD_INIT_LOG(NOTICE, "Can't disable hw crc strip"); > - rxmode->offloads |= DEV_RX_OFFLOAD_CRC_STRIP; > - } > - > if (txmode->mq_mode) { > PMD_INIT_LOG(INFO, "Tx mq_mode DCB or VMDq not supported"); > return -EINVAL; > diff --git a/drivers/net/thunderx/nicvf_ethdev.h b/drivers/net/thunderx/nicvf_ethdev.h > index ae440fef2..c0bfbf848 100644 > --- a/drivers/net/thunderx/nicvf_ethdev.h > +++ b/drivers/net/thunderx/nicvf_ethdev.h > @@ -40,7 +40,6 @@ > #define NICVF_RX_OFFLOAD_CAPA ( \ > DEV_RX_OFFLOAD_CHECKSUM | \ > DEV_RX_OFFLOAD_VLAN_STRIP | \ > - DEV_RX_OFFLOAD_CRC_STRIP | \ > DEV_RX_OFFLOAD_JUMBO_FRAME | \ > DEV_RX_OFFLOAD_SCATTER) > > diff --git a/drivers/net/vhost/rte_eth_vhost.c b/drivers/net/vhost/rte_eth_vhost.c > index e58f32211..aa6052221 100644 > --- a/drivers/net/vhost/rte_eth_vhost.c > +++ b/drivers/net/vhost/rte_eth_vhost.c > @@ -1070,8 +1070,7 @@ eth_dev_info(struct rte_eth_dev *dev, > > dev_info->tx_offload_capa = DEV_TX_OFFLOAD_MULTI_SEGS | > DEV_TX_OFFLOAD_VLAN_INSERT; > - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP | > - DEV_RX_OFFLOAD_CRC_STRIP; > + dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP; > } > > static int > diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c > index 614357da7..b81df0a99 100644 > --- a/drivers/net/virtio/virtio_ethdev.c > +++ b/drivers/net/virtio/virtio_ethdev.c > @@ -2166,8 +2166,7 @@ virtio_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) > dev_info->max_mac_addrs = VIRTIO_MAX_MAC_ADDRS; > > host_features = VTPCI_OPS(hw)->get_features(hw); > - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP | > - DEV_RX_OFFLOAD_CRC_STRIP; > + dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP; > if (host_features & (1ULL << VIRTIO_NET_F_GUEST_CSUM)) { > dev_info->rx_offload_capa |= > DEV_RX_OFFLOAD_TCP_CKSUM | > diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c > index 2613cd135..f1596ab19 100644 > --- a/drivers/net/vmxnet3/vmxnet3_ethdev.c > +++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c > @@ -57,8 +57,7 @@ > DEV_RX_OFFLOAD_UDP_CKSUM | \ > DEV_RX_OFFLOAD_TCP_CKSUM | \ > DEV_RX_OFFLOAD_TCP_LRO | \ > - DEV_RX_OFFLOAD_JUMBO_FRAME | \ > - DEV_RX_OFFLOAD_CRC_STRIP) > + DEV_RX_OFFLOAD_JUMBO_FRAME) > > static int eth_vmxnet3_dev_init(struct rte_eth_dev *eth_dev); > static int eth_vmxnet3_dev_uninit(struct rte_eth_dev *eth_dev); > diff --git a/examples/bbdev_app/main.c b/examples/bbdev_app/main.c > index 045a190b9..d68c06aef 100644 > --- a/examples/bbdev_app/main.c > +++ b/examples/bbdev_app/main.c > @@ -64,7 +64,6 @@ static const struct rte_eth_conf port_conf = { > .mq_mode = ETH_MQ_RX_NONE, > .max_rx_pkt_len = ETHER_MAX_LEN, > .split_hdr_size = 0, > - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, > }, > .txmode = { > .mq_mode = ETH_MQ_TX_NONE, > diff --git a/examples/bond/main.c b/examples/bond/main.c > index 23d0981ab..b282e68ba 100644 > --- a/examples/bond/main.c > +++ b/examples/bond/main.c > @@ -122,7 +122,6 @@ static struct rte_eth_conf port_conf = { > .mq_mode = ETH_MQ_RX_NONE, > .max_rx_pkt_len = ETHER_MAX_LEN, > .split_hdr_size = 0, > - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, > }, > .rx_adv_conf = { > .rss_conf = { > diff --git a/examples/exception_path/main.c b/examples/exception_path/main.c > index 440422bc8..4180a8689 100644 > --- a/examples/exception_path/main.c > +++ b/examples/exception_path/main.c > @@ -87,9 +87,6 @@ > > /* Options for configuring ethernet port */ > static struct rte_eth_conf port_conf = { > - .rxmode = { > - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, > - }, > .txmode = { > .mq_mode = ETH_MQ_TX_NONE, > }, > diff --git a/examples/flow_filtering/main.c b/examples/flow_filtering/main.c > index ce91e8a6f..b3f85b563 100644 > --- a/examples/flow_filtering/main.c > +++ b/examples/flow_filtering/main.c > @@ -121,7 +121,6 @@ init_port(void) > struct rte_eth_conf port_conf = { > .rxmode = { > .split_hdr_size = 0, > - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, > }, > .txmode = { > .offloads = > diff --git a/examples/ip_fragmentation/main.c b/examples/ip_fragmentation/main.c > index 5306d7672..17a877da2 100644 > --- a/examples/ip_fragmentation/main.c > +++ b/examples/ip_fragmentation/main.c > @@ -141,8 +141,7 @@ static struct rte_eth_conf port_conf = { > .max_rx_pkt_len = JUMBO_FRAME_MAX_SIZE, > .split_hdr_size = 0, > .offloads = (DEV_RX_OFFLOAD_CHECKSUM | > - DEV_RX_OFFLOAD_JUMBO_FRAME | > - DEV_RX_OFFLOAD_CRC_STRIP), > + DEV_RX_OFFLOAD_JUMBO_FRAME), > }, > .txmode = { > .mq_mode = ETH_MQ_TX_NONE, > diff --git a/examples/ip_pipeline/link.c b/examples/ip_pipeline/link.c > index 392a890fb..787eb866a 100644 > --- a/examples/ip_pipeline/link.c > +++ b/examples/ip_pipeline/link.c > @@ -48,7 +48,6 @@ static struct rte_eth_conf port_conf_default = { > .mq_mode = ETH_MQ_RX_NONE, > .max_rx_pkt_len = 9000, /* Jumbo frame max packet len */ > .split_hdr_size = 0, /* Header split buffer size */ > - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, > }, > .rx_adv_conf = { > .rss_conf = { > diff --git a/examples/ip_reassembly/main.c b/examples/ip_reassembly/main.c > index b830f67a5..17b55d4c7 100644 > --- a/examples/ip_reassembly/main.c > +++ b/examples/ip_reassembly/main.c > @@ -165,8 +165,7 @@ static struct rte_eth_conf port_conf = { > .max_rx_pkt_len = JUMBO_FRAME_MAX_SIZE, > .split_hdr_size = 0, > .offloads = (DEV_RX_OFFLOAD_CHECKSUM | > - DEV_RX_OFFLOAD_JUMBO_FRAME | > - DEV_RX_OFFLOAD_CRC_STRIP), > + DEV_RX_OFFLOAD_JUMBO_FRAME), > }, > .rx_adv_conf = { > .rss_conf = { > diff --git a/examples/ipsec-secgw/ipsec-secgw.c b/examples/ipsec-secgw/ipsec-secgw.c > index b45b87bde..020424334 100644 > --- a/examples/ipsec-secgw/ipsec-secgw.c > +++ b/examples/ipsec-secgw/ipsec-secgw.c > @@ -197,8 +197,7 @@ static struct rte_eth_conf port_conf = { > .mq_mode = ETH_MQ_RX_RSS, > .max_rx_pkt_len = ETHER_MAX_LEN, > .split_hdr_size = 0, > - .offloads = DEV_RX_OFFLOAD_CHECKSUM | > - DEV_RX_OFFLOAD_CRC_STRIP, > + .offloads = DEV_RX_OFFLOAD_CHECKSUM, > }, > .rx_adv_conf = { > .rss_conf = { > diff --git a/examples/ipv4_multicast/main.c b/examples/ipv4_multicast/main.c > index 331c32e71..6530d4830 100644 > --- a/examples/ipv4_multicast/main.c > +++ b/examples/ipv4_multicast/main.c > @@ -109,8 +109,7 @@ static struct rte_eth_conf port_conf = { > .rxmode = { > .max_rx_pkt_len = JUMBO_FRAME_MAX_SIZE, > .split_hdr_size = 0, > - .offloads = (DEV_RX_OFFLOAD_JUMBO_FRAME | > - DEV_RX_OFFLOAD_CRC_STRIP), > + .offloads = DEV_RX_OFFLOAD_JUMBO_FRAME, > }, > .txmode = { > .mq_mode = ETH_MQ_TX_NONE, > diff --git a/examples/kni/main.c b/examples/kni/main.c > index 81336087d..80c401c51 100644 > --- a/examples/kni/main.c > +++ b/examples/kni/main.c > @@ -94,9 +94,6 @@ static struct kni_port_params *kni_port_params_array[RTE_MAX_ETHPORTS]; > > /* Options for configuring ethernet port */ > static struct rte_eth_conf port_conf = { > - .rxmode = { > - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, > - }, > .txmode = { > .mq_mode = ETH_MQ_TX_NONE, > }, > diff --git a/examples/l2fwd-crypto/main.c b/examples/l2fwd-crypto/main.c > index 6061b7511..f12fd266e 100644 > --- a/examples/l2fwd-crypto/main.c > +++ b/examples/l2fwd-crypto/main.c > @@ -213,7 +213,6 @@ static struct rte_eth_conf port_conf = { > .mq_mode = ETH_MQ_RX_NONE, > .max_rx_pkt_len = ETHER_MAX_LEN, > .split_hdr_size = 0, > - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, > }, > .txmode = { > .mq_mode = ETH_MQ_TX_NONE, > diff --git a/examples/l2fwd-jobstats/main.c b/examples/l2fwd-jobstats/main.c > index af5423382..a4d28e178 100644 > --- a/examples/l2fwd-jobstats/main.c > +++ b/examples/l2fwd-jobstats/main.c > @@ -90,7 +90,6 @@ struct rte_eth_dev_tx_buffer *tx_buffer[RTE_MAX_ETHPORTS]; > static struct rte_eth_conf port_conf = { > .rxmode = { > .split_hdr_size = 0, > - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, > }, > .txmode = { > .mq_mode = ETH_MQ_TX_NONE, > diff --git a/examples/l2fwd-keepalive/main.c b/examples/l2fwd-keepalive/main.c > index 2d8b4d1c6..0bf2b5336 100644 > --- a/examples/l2fwd-keepalive/main.c > +++ b/examples/l2fwd-keepalive/main.c > @@ -81,7 +81,6 @@ struct rte_eth_dev_tx_buffer *tx_buffer[RTE_MAX_ETHPORTS]; > static struct rte_eth_conf port_conf = { > .rxmode = { > .split_hdr_size = 0, > - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, > }, > .txmode = { > .mq_mode = ETH_MQ_TX_NONE, > diff --git a/examples/l2fwd/main.c b/examples/l2fwd/main.c > index 9bb4c5bc4..6c23215a5 100644 > --- a/examples/l2fwd/main.c > +++ b/examples/l2fwd/main.c > @@ -82,7 +82,6 @@ static struct rte_eth_dev_tx_buffer *tx_buffer[RTE_MAX_ETHPORTS]; > static struct rte_eth_conf port_conf = { > .rxmode = { > .split_hdr_size = 0, > - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, > }, > .txmode = { > .mq_mode = ETH_MQ_TX_NONE, > diff --git a/examples/l3fwd-acl/main.c b/examples/l3fwd-acl/main.c > index 7c063a8d0..a322ce4f2 100644 > --- a/examples/l3fwd-acl/main.c > +++ b/examples/l3fwd-acl/main.c > @@ -127,8 +127,7 @@ static struct rte_eth_conf port_conf = { > .mq_mode = ETH_MQ_RX_RSS, > .max_rx_pkt_len = ETHER_MAX_LEN, > .split_hdr_size = 0, > - .offloads = (DEV_RX_OFFLOAD_CRC_STRIP | > - DEV_RX_OFFLOAD_CHECKSUM), > + .offloads = DEV_RX_OFFLOAD_CHECKSUM, > }, > .rx_adv_conf = { > .rss_conf = { > diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c > index d15cd520e..68527d26f 100644 > --- a/examples/l3fwd-power/main.c > +++ b/examples/l3fwd-power/main.c > @@ -180,8 +180,7 @@ static struct rte_eth_conf port_conf = { > .mq_mode = ETH_MQ_RX_RSS, > .max_rx_pkt_len = ETHER_MAX_LEN, > .split_hdr_size = 0, > - .offloads = (DEV_RX_OFFLOAD_CRC_STRIP | > - DEV_RX_OFFLOAD_CHECKSUM), > + .offloads = DEV_RX_OFFLOAD_CHECKSUM, > }, > .rx_adv_conf = { > .rss_conf = { > diff --git a/examples/l3fwd-vf/main.c b/examples/l3fwd-vf/main.c > index 5edd91a78..41137f978 100644 > --- a/examples/l3fwd-vf/main.c > +++ b/examples/l3fwd-vf/main.c > @@ -161,8 +161,7 @@ static struct rte_eth_conf port_conf = { > .mq_mode = ETH_MQ_RX_RSS, > .max_rx_pkt_len = ETHER_MAX_LEN, > .split_hdr_size = 0, > - .offloads = (DEV_RX_OFFLOAD_CRC_STRIP | > - DEV_RX_OFFLOAD_CHECKSUM), > + .offloads = DEV_RX_OFFLOAD_CHECKSUM, > }, > .rx_adv_conf = { > .rss_conf = { > diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c > index ab019b9e4..e4b99efe0 100644 > --- a/examples/l3fwd/main.c > +++ b/examples/l3fwd/main.c > @@ -120,8 +120,7 @@ static struct rte_eth_conf port_conf = { > .mq_mode = ETH_MQ_RX_RSS, > .max_rx_pkt_len = ETHER_MAX_LEN, > .split_hdr_size = 0, > - .offloads = (DEV_RX_OFFLOAD_CRC_STRIP | > - DEV_RX_OFFLOAD_CHECKSUM), > + .offloads = DEV_RX_OFFLOAD_CHECKSUM, > }, > .rx_adv_conf = { > .rss_conf = { > diff --git a/examples/link_status_interrupt/main.c b/examples/link_status_interrupt/main.c > index 3b732076b..f3346d23b 100644 > --- a/examples/link_status_interrupt/main.c > +++ b/examples/link_status_interrupt/main.c > @@ -79,7 +79,6 @@ struct rte_eth_dev_tx_buffer *tx_buffer[RTE_MAX_ETHPORTS]; > static struct rte_eth_conf port_conf = { > .rxmode = { > .split_hdr_size = 0, > - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, > }, > .txmode = { > .mq_mode = ETH_MQ_TX_NONE, > diff --git a/examples/load_balancer/init.c b/examples/load_balancer/init.c > index f2045f235..3ab7d0211 100644 > --- a/examples/load_balancer/init.c > +++ b/examples/load_balancer/init.c > @@ -45,8 +45,7 @@ static struct rte_eth_conf port_conf = { > .rxmode = { > .mq_mode = ETH_MQ_RX_RSS, > .split_hdr_size = 0, > - .offloads = (DEV_RX_OFFLOAD_CHECKSUM | > - DEV_RX_OFFLOAD_CRC_STRIP), > + .offloads = DEV_RX_OFFLOAD_CHECKSUM, > }, > .rx_adv_conf = { > .rss_conf = { > diff --git a/examples/multi_process/symmetric_mp/main.c b/examples/multi_process/symmetric_mp/main.c > index c6c6a537f..c310e942b 100644 > --- a/examples/multi_process/symmetric_mp/main.c > +++ b/examples/multi_process/symmetric_mp/main.c > @@ -178,8 +178,7 @@ smp_port_init(uint16_t port, struct rte_mempool *mbuf_pool, > .rxmode = { > .mq_mode = ETH_MQ_RX_RSS, > .split_hdr_size = 0, > - .offloads = (DEV_RX_OFFLOAD_CHECKSUM | > - DEV_RX_OFFLOAD_CRC_STRIP), > + .offloads = DEV_RX_OFFLOAD_CHECKSUM, > }, > .rx_adv_conf = { > .rss_conf = { > diff --git a/examples/netmap_compat/bridge/bridge.c b/examples/netmap_compat/bridge/bridge.c > index 7afca28cd..216e0105a 100644 > --- a/examples/netmap_compat/bridge/bridge.c > +++ b/examples/netmap_compat/bridge/bridge.c > @@ -26,7 +26,6 @@ > struct rte_eth_conf eth_conf = { > .rxmode = { > .split_hdr_size = 0, > - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, > }, > .txmode = { > .mq_mode = ETH_MQ_TX_NONE, > diff --git a/examples/performance-thread/l3fwd-thread/main.c b/examples/performance-thread/l3fwd-thread/main.c > index 5392fcea8..50fd1b00a 100644 > --- a/examples/performance-thread/l3fwd-thread/main.c > +++ b/examples/performance-thread/l3fwd-thread/main.c > @@ -306,8 +306,7 @@ static struct rte_eth_conf port_conf = { > .mq_mode = ETH_MQ_RX_RSS, > .max_rx_pkt_len = ETHER_MAX_LEN, > .split_hdr_size = 0, > - .offloads = (DEV_RX_OFFLOAD_CHECKSUM | > - DEV_RX_OFFLOAD_CRC_STRIP), > + .offloads = DEV_RX_OFFLOAD_CHECKSUM, > }, > .rx_adv_conf = { > .rss_conf = { > diff --git a/examples/qos_meter/main.c b/examples/qos_meter/main.c > index 5cf4e9dfa..9b0112449 100644 > --- a/examples/qos_meter/main.c > +++ b/examples/qos_meter/main.c > @@ -56,8 +56,7 @@ static struct rte_eth_conf port_conf = { > .mq_mode = ETH_MQ_RX_RSS, > .max_rx_pkt_len = ETHER_MAX_LEN, > .split_hdr_size = 0, > - .offloads = (DEV_RX_OFFLOAD_CHECKSUM | > - DEV_RX_OFFLOAD_CRC_STRIP), > + .offloads = DEV_RX_OFFLOAD_CHECKSUM, > }, > .rx_adv_conf = { > .rss_conf = { > diff --git a/examples/qos_sched/init.c b/examples/qos_sched/init.c > index 94cbb26f8..37c2b95fd 100644 > --- a/examples/qos_sched/init.c > +++ b/examples/qos_sched/init.c > @@ -59,7 +59,6 @@ static struct rte_eth_conf port_conf = { > .rxmode = { > .max_rx_pkt_len = ETHER_MAX_LEN, > .split_hdr_size = 0, > - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, > }, > .txmode = { > .mq_mode = ETH_DCB_NONE, > diff --git a/examples/quota_watermark/qw/init.c b/examples/quota_watermark/qw/init.c > index 19164385a..5a0f64f45 100644 > --- a/examples/quota_watermark/qw/init.c > +++ b/examples/quota_watermark/qw/init.c > @@ -24,7 +24,6 @@ > static struct rte_eth_conf port_conf = { > .rxmode = { > .split_hdr_size = 0, > - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, > }, > .txmode = { > .mq_mode = ETH_DCB_NONE, > diff --git a/examples/tep_termination/vxlan_setup.c b/examples/tep_termination/vxlan_setup.c > index b99ab97d3..ad7fbe9c6 100644 > --- a/examples/tep_termination/vxlan_setup.c > +++ b/examples/tep_termination/vxlan_setup.c > @@ -69,7 +69,6 @@ uint8_t tep_filter_type[] = {RTE_TUNNEL_FILTER_IMAC_TENID, > static struct rte_eth_conf port_conf = { > .rxmode = { > .split_hdr_size = 0, > - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, > }, > .txmode = { > .mq_mode = ETH_MQ_TX_NONE, > diff --git a/examples/vhost/main.c b/examples/vhost/main.c > index 2175c1186..97d196479 100644 > --- a/examples/vhost/main.c > +++ b/examples/vhost/main.c > @@ -121,8 +121,7 @@ static struct rte_eth_conf vmdq_conf_default = { > * this fixes bug of ipv4 forwarding in guest can't > * forward pakets from one virtio dev to another virtio dev. > */ > - .offloads = (DEV_RX_OFFLOAD_CRC_STRIP | > - DEV_RX_OFFLOAD_VLAN_STRIP), > + .offloads = DEV_RX_OFFLOAD_VLAN_STRIP, > }, > > .txmode = { > diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c > index 3f8de9341..04ee149f9 100644 > --- a/lib/librte_ethdev/rte_ethdev.c > +++ b/lib/librte_ethdev/rte_ethdev.c > @@ -122,7 +122,6 @@ static const struct { > RTE_RX_OFFLOAD_BIT2STR(VLAN_FILTER), > RTE_RX_OFFLOAD_BIT2STR(VLAN_EXTEND), > RTE_RX_OFFLOAD_BIT2STR(JUMBO_FRAME), > - RTE_RX_OFFLOAD_BIT2STR(CRC_STRIP), > RTE_RX_OFFLOAD_BIT2STR(SCATTER), > RTE_RX_OFFLOAD_BIT2STR(TIMESTAMP), > RTE_RX_OFFLOAD_BIT2STR(SECURITY), > @@ -1147,14 +1146,6 @@ rte_eth_dev_configure(uint16_t port_id, uint16_t nb_rx_q, uint16_t nb_tx_q, > return -EINVAL; > } > > - if ((local_conf.rxmode.offloads & DEV_RX_OFFLOAD_CRC_STRIP) && > - (local_conf.rxmode.offloads & DEV_RX_OFFLOAD_KEEP_CRC)) { > - RTE_ETHDEV_LOG(ERR, > - "Port id=%u not allowed to set both CRC STRIP and KEEP CRC offload flags\n", > - port_id); > - return -EINVAL; > - } > - > /* Check that device supports requested rss hash functions. */ > if ((dev_info.flow_type_rss_offloads | > dev_conf->rx_adv_conf.rss_conf.rss_hf) != > diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h > index fa2812bca..44b4fb33f 100644 > --- a/lib/librte_ethdev/rte_ethdev.h > +++ b/lib/librte_ethdev/rte_ethdev.h > @@ -890,16 +890,11 @@ struct rte_eth_conf { > #define DEV_RX_OFFLOAD_VLAN_FILTER 0x00000200 > #define DEV_RX_OFFLOAD_VLAN_EXTEND 0x00000400 > #define DEV_RX_OFFLOAD_JUMBO_FRAME 0x00000800 > -#define DEV_RX_OFFLOAD_CRC_STRIP 0x00001000 > #define DEV_RX_OFFLOAD_SCATTER 0x00002000 > #define DEV_RX_OFFLOAD_TIMESTAMP 0x00004000 > #define DEV_RX_OFFLOAD_SECURITY 0x00008000 > - > -/** > - * Invalid to set both DEV_RX_OFFLOAD_CRC_STRIP and DEV_RX_OFFLOAD_KEEP_CRC > - * No DEV_RX_OFFLOAD_CRC_STRIP flag means keep CRC > - */ > #define DEV_RX_OFFLOAD_KEEP_CRC 0x00010000 > + > #define DEV_RX_OFFLOAD_CHECKSUM (DEV_RX_OFFLOAD_IPV4_CKSUM | \ > DEV_RX_OFFLOAD_UDP_CKSUM | \ > DEV_RX_OFFLOAD_TCP_CKSUM) > diff --git a/lib/librte_ethdev/rte_ethdev_driver.h b/lib/librte_ethdev/rte_ethdev_driver.h > index c6d9bc1a3..f158462a0 100644 > --- a/lib/librte_ethdev/rte_ethdev_driver.h > +++ b/lib/librte_ethdev/rte_ethdev_driver.h > @@ -324,32 +324,6 @@ typedef int (*ethdev_uninit_t)(struct rte_eth_dev *ethdev); > int __rte_experimental > rte_eth_dev_destroy(struct rte_eth_dev *ethdev, ethdev_uninit_t ethdev_uninit); > > -/** > - * PMD helper function to check if keeping CRC is requested > - * > - * @note > - * When CRC_STRIP offload flag is removed and default behavior switch to > - * strip CRC, as planned, this helper function is not that useful and will be > - * removed. In PMDs this function will be replaced with check: > - * if (offloads & DEV_RX_OFFLOAD_KEEP_CRC) > - * > - * @param rx_offloads > - * offload bits to be applied > - * > - * @return > - * Return positive if keeping CRC is requested, > - * zero if stripping CRC is requested > - */ > -static inline int > -rte_eth_dev_must_keep_crc(uint64_t rx_offloads) > -{ > - if (rx_offloads & DEV_RX_OFFLOAD_CRC_STRIP) > - return 0; > - > - /* no KEEP_CRC or CRC_STRIP offload flags means keep CRC */ > - return 1; > -} > - > #ifdef __cplusplus > } > #endif > diff --git a/test/test-pipeline/init.c b/test/test-pipeline/init.c > index f33216c90..b75688a87 100644 > --- a/test/test-pipeline/init.c > +++ b/test/test-pipeline/init.c > @@ -70,7 +70,7 @@ struct app_params app = { > static struct rte_eth_conf port_conf = { > .rxmode = { > .split_hdr_size = 0, > - .offloads = DEV_RX_OFFLOAD_CHECKSUM | DEV_RX_OFFLOAD_CRC_STRIP, > + .offloads = DEV_RX_OFFLOAD_CHECKSUM, > }, > .rx_adv_conf = { > .rss_conf = { > diff --git a/test/test/test_kni.c b/test/test/test_kni.c > index 56c98513a..cf64c0b27 100644 > --- a/test/test/test_kni.c > +++ b/test/test/test_kni.c > @@ -70,9 +70,6 @@ static const struct rte_eth_txconf tx_conf = { > }; > > static const struct rte_eth_conf port_conf = { > - .rxmode = { > - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, > - }, > .txmode = { > .mq_mode = ETH_DCB_NONE, > }, > diff --git a/test/test/test_link_bonding_mode4.c b/test/test/test_link_bonding_mode4.c > index 9163f6313..e539f078d 100644 > --- a/test/test/test_link_bonding_mode4.c > +++ b/test/test/test_link_bonding_mode4.c > @@ -110,7 +110,6 @@ static struct rte_eth_conf default_pmd_conf = { > .mq_mode = ETH_MQ_RX_NONE, > .max_rx_pkt_len = ETHER_MAX_LEN, > .split_hdr_size = 0, > - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, > }, > .txmode = { > .mq_mode = ETH_MQ_TX_NONE, > diff --git a/test/test/test_pmd_perf.c b/test/test/test_pmd_perf.c > index 4549965fc..f5095c87d 100644 > --- a/test/test/test_pmd_perf.c > +++ b/test/test/test_pmd_perf.c > @@ -65,7 +65,6 @@ static struct rte_eth_conf port_conf = { > .mq_mode = ETH_MQ_RX_NONE, > .max_rx_pkt_len = ETHER_MAX_LEN, > .split_hdr_size = 0, > - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, > }, > .txmode = { > .mq_mode = ETH_MQ_TX_NONE, > diff --git a/test/test/virtual_pmd.c b/test/test/virtual_pmd.c > index 591b30989..f8ddc2db8 100644 > --- a/test/test/virtual_pmd.c > +++ b/test/test/virtual_pmd.c > @@ -91,7 +91,6 @@ virtual_ethdev_info_get(struct rte_eth_dev *dev __rte_unused, > dev_info->max_tx_queues = (uint16_t)512; > > dev_info->min_rx_bufsize = 0; > - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_CRC_STRIP; > } > > static int > -- > 2.17.1 > -- - Tomasz Duszyński
On 9/4/2018 6:54 AM, Andrew Rybchenko wrote:
> On 09/04/2018 08:17 AM, Shahaf Shuler wrote:
>> Hi Ferruh,
>>
>> Monday, September 3, 2018 5:45 PM, Ferruh Yigit:
>>> Removed DEV_RX_OFFLOAD_CRC_STRIP offload flag.
>>> Without any specific Rx offload flag, default behavior by PMDs is to
>>> strip CRC.
>>>
>>> PMDs that support keeping CRC should advertise
>>> DEV_RX_OFFLOAD_KEEP_CRC
>>> Rx offload capability.
>>>
>>> Applications that require keeping CRC should check PMD capability first
>>> and if it is supported can enable this feature by setting
>>> DEV_RX_OFFLOAD_KEEP_CRC in Rx offload flag in rte_eth_dev_configure()
>>>
>>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
>>> ---
>> [...]
>>
>>> diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c
>>> index 1f7bfd441..718f4b1d9 100644
>>> --- a/drivers/net/mlx5/mlx5_rxq.c
>>> +++ b/drivers/net/mlx5/mlx5_rxq.c
>>> @@ -388,7 +388,6 @@ mlx5_get_rx_queue_offloads(struct rte_eth_dev
>>> *dev)
>>> DEV_RX_OFFLOAD_TIMESTAMP |
>>> DEV_RX_OFFLOAD_JUMBO_FRAME);
>>>
>>> - offloads |= DEV_RX_OFFLOAD_CRC_STRIP;
>>> if (config->hw_fcs_strip)
>>> offloads |= DEV_RX_OFFLOAD_KEEP_CRC;
>>>
>>> @@ -1438,7 +1437,7 @@ mlx5_rxq_new(struct rte_eth_dev *dev, uint16_t
>>> idx, uint16_t desc,
>>> tmpl->rxq.vlan_strip = !!(offloads & DEV_RX_OFFLOAD_VLAN_STRIP);
>>> /* By default, FCS (CRC) is stripped by hardware. */
>>> tmpl->rxq.crc_present = 0;
>>> - if (rte_eth_dev_must_keep_crc(offloads)) {
>>> + if (offloads | DEV_RX_OFFLOAD_KEEP_CRC) {
>> I don't understand this logic, and it exists on many other location in the patch.
>> Shouldn't it be (offloads & DEV_RX_OFFLOAD_KEEP_CRC) ?
>
> OMG, how can I overlook it on my review. Really good catch.
Same here, new version coming soon.
Tuesday, September 4, 2018 1:13 PM, Ferruh Yigit:
> Subject: [PATCH v2] ethdev: make default behavior CRC strip on Rx
>
> Removed DEV_RX_OFFLOAD_CRC_STRIP offload flag.
> Without any specific Rx offload flag, default behavior by PMDs is to
> strip CRC.
>
> PMDs that support keeping CRC should advertise
> DEV_RX_OFFLOAD_KEEP_CRC
> Rx offload capability.
>
> Applications that require keeping CRC should check PMD capability first
> and if it is supported can enable this feature by setting
> DEV_RX_OFFLOAD_KEEP_CRC in Rx offload flag in rte_eth_dev_configure()
>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> Acked-by: Tomasz Duszynski <tdu@semihalf.com>
> ---
> v2:
> * fix flag check
> * add KEEP_CRC flag into "show port cap #"
>
> Note "show port cap #" and
> "show port # [r/t]x_offload capabilities/configuration"
> does same thing, in long term I suggest removing "show port cap" one
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
Removed DEV_RX_OFFLOAD_CRC_STRIP offload flag. Without any specific Rx offload flag, default behavior by PMDs is to strip CRC. PMDs that support keeping CRC should advertise DEV_RX_OFFLOAD_KEEP_CRC Rx offload capability. Applications that require keeping CRC should check PMD capability first and if it is supported can enable this feature by setting DEV_RX_OFFLOAD_KEEP_CRC in Rx offload flag in rte_eth_dev_configure() Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Tomasz Duszynski <tdu@semihalf.com> --- v2: * fix flag check * add KEEP_CRC flag into "show port cap #" Note "show port cap #" and "show port # [r/t]x_offload capabilities/configuration" does same thing, in long term I suggest removing "show port cap" one --- app/test-eventdev/test_perf_common.c | 1 - app/test-eventdev/test_pipeline_common.c | 1 - app/test-pmd/cmdline.c | 2 -- app/test-pmd/config.c | 25 ++++++++++++------ app/test-pmd/parameters.c | 4 +-- app/test-pmd/testpmd.c | 5 ---- doc/guides/nics/features.rst | 3 ++- doc/guides/nics/fm10k.rst | 3 +-- doc/guides/rel_notes/deprecation.rst | 6 ----- doc/guides/sample_app_ug/flow_filtering.rst | 2 -- doc/guides/sample_app_ug/link_status_intr.rst | 1 - drivers/net/af_packet/rte_eth_af_packet.c | 1 - drivers/net/avf/avf_ethdev.c | 1 - drivers/net/avp/avp_ethdev.c | 1 - drivers/net/axgbe/axgbe_ethdev.c | 1 - drivers/net/axgbe/axgbe_rxtx.c | 2 +- drivers/net/bnxt/bnxt_ethdev.c | 1 - drivers/net/bnxt/bnxt_rxq.c | 6 +++-- drivers/net/cxgbe/cxgbe_ethdev.c | 12 --------- drivers/net/dpaa/dpaa_ethdev.c | 1 - drivers/net/dpaa2/dpaa2_ethdev.c | 1 - drivers/net/e1000/em_rxtx.c | 7 +++-- drivers/net/e1000/igb_ethdev.c | 8 +++--- drivers/net/e1000/igb_rxtx.c | 7 +++-- drivers/net/enic/enic_res.c | 1 - drivers/net/failsafe/failsafe_ops.c | 2 -- drivers/net/fm10k/fm10k_ethdev.c | 7 ----- drivers/net/i40e/i40e_ethdev.c | 1 - drivers/net/i40e/i40e_ethdev_vf.c | 3 +-- drivers/net/i40e/i40e_rxtx.c | 2 +- drivers/net/ixgbe/ixgbe_ethdev.c | 8 +++--- drivers/net/ixgbe/ixgbe_ipsec.c | 2 +- drivers/net/ixgbe/ixgbe_rxtx.c | 15 ++++++----- drivers/net/kni/rte_eth_kni.c | 1 - drivers/net/mlx4/mlx4_rxq.c | 3 +-- drivers/net/mlx5/mlx5_rxq.c | 3 +-- drivers/net/mvpp2/mrvl_ethdev.c | 10 ------- drivers/net/netvsc/hn_ethdev.c | 3 +-- drivers/net/netvsc/hn_rndis.c | 3 +-- drivers/net/nfp/nfp_net.c | 9 +------ drivers/net/null/rte_eth_null.c | 1 - drivers/net/octeontx/octeontx_ethdev.c | 8 ------ drivers/net/octeontx/octeontx_ethdev.h | 3 +-- drivers/net/pcap/rte_eth_pcap.c | 1 - drivers/net/qede/qede_ethdev.c | 1 - drivers/net/ring/rte_eth_ring.c | 1 - drivers/net/sfc/sfc_rx.c | 9 ------- drivers/net/softnic/rte_eth_softnic.c | 1 - drivers/net/szedata2/rte_eth_szedata2.c | 3 +-- drivers/net/tap/rte_eth_tap.c | 3 +-- drivers/net/thunderx/nicvf_ethdev.c | 9 ------- drivers/net/thunderx/nicvf_ethdev.h | 1 - drivers/net/vhost/rte_eth_vhost.c | 3 +-- drivers/net/virtio/virtio_ethdev.c | 3 +-- drivers/net/vmxnet3/vmxnet3_ethdev.c | 3 +-- examples/bbdev_app/main.c | 1 - examples/bond/main.c | 1 - examples/exception_path/main.c | 3 --- examples/flow_filtering/main.c | 1 - examples/ip_fragmentation/main.c | 3 +-- examples/ip_pipeline/link.c | 1 - examples/ip_reassembly/main.c | 3 +-- examples/ipsec-secgw/ipsec-secgw.c | 3 +-- examples/ipv4_multicast/main.c | 3 +-- examples/kni/main.c | 3 --- examples/l2fwd-crypto/main.c | 1 - examples/l2fwd-jobstats/main.c | 1 - examples/l2fwd-keepalive/main.c | 1 - examples/l2fwd/main.c | 1 - examples/l3fwd-acl/main.c | 3 +-- examples/l3fwd-power/main.c | 3 +-- examples/l3fwd-vf/main.c | 3 +-- examples/l3fwd/main.c | 3 +-- examples/link_status_interrupt/main.c | 1 - examples/load_balancer/init.c | 3 +-- examples/multi_process/symmetric_mp/main.c | 3 +-- examples/netmap_compat/bridge/bridge.c | 1 - .../performance-thread/l3fwd-thread/main.c | 3 +-- examples/qos_meter/main.c | 3 +-- examples/qos_sched/init.c | 1 - examples/quota_watermark/qw/init.c | 1 - examples/tep_termination/vxlan_setup.c | 1 - examples/vhost/main.c | 3 +-- lib/librte_ethdev/rte_ethdev.c | 9 ------- lib/librte_ethdev/rte_ethdev.h | 7 +---- lib/librte_ethdev/rte_ethdev_driver.h | 26 ------------------- test/test-pipeline/init.c | 2 +- test/test/test_kni.c | 3 --- test/test/test_link_bonding_mode4.c | 1 - test/test/test_pmd_perf.c | 1 - test/test/virtual_pmd.c | 1 - 91 files changed, 77 insertions(+), 256 deletions(-) diff --git a/app/test-eventdev/test_perf_common.c b/app/test-eventdev/test_perf_common.c index d33cb2cd3..861877532 100644 --- a/app/test-eventdev/test_perf_common.c +++ b/app/test-eventdev/test_perf_common.c @@ -680,7 +680,6 @@ perf_ethdev_setup(struct evt_test *test, struct evt_options *opt) .mq_mode = ETH_MQ_RX_RSS, .max_rx_pkt_len = ETHER_MAX_LEN, .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .rx_adv_conf = { .rss_conf = { diff --git a/app/test-eventdev/test_pipeline_common.c b/app/test-eventdev/test_pipeline_common.c index a54068df3..12a58fbbf 100644 --- a/app/test-eventdev/test_pipeline_common.c +++ b/app/test-eventdev/test_pipeline_common.c @@ -222,7 +222,6 @@ pipeline_ethdev_setup(struct evt_test *test, struct evt_options *opt) .rxmode = { .mq_mode = ETH_MQ_RX_RSS, .max_rx_pkt_len = ETHER_MAX_LEN, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .rx_adv_conf = { .rss_conf = { diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index 589121d69..0cbd340c1 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -1898,11 +1898,9 @@ cmd_config_rx_mode_flag_parsed(void *parsed_result, rx_offloads = port->dev_conf.rxmode.offloads; if (!strcmp(res->name, "crc-strip")) { if (!strcmp(res->value, "on")) { - rx_offloads |= DEV_RX_OFFLOAD_CRC_STRIP; rx_offloads &= ~DEV_RX_OFFLOAD_KEEP_CRC; } else if (!strcmp(res->value, "off")) { rx_offloads |= DEV_RX_OFFLOAD_KEEP_CRC; - rx_offloads &= ~DEV_RX_OFFLOAD_CRC_STRIP; } else { printf("Unknown parameter\n"); return; diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index 14ccd6864..92686a05f 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -577,7 +577,7 @@ port_offload_cap_display(portid_t port_id) } if (dev_info.rx_offload_capa & DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM) { - printf("RX Outer IPv4 checksum: "); + printf("RX Outer IPv4 checksum: "); if (ports[port_id].dev_conf.rxmode.offloads & DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM) printf("on\n"); @@ -594,19 +594,28 @@ port_offload_cap_display(portid_t port_id) printf("off\n"); } - if (dev_info.tx_offload_capa & DEV_TX_OFFLOAD_VLAN_INSERT) { - printf("VLAN insert: "); - if (ports[port_id].dev_conf.txmode.offloads & - DEV_TX_OFFLOAD_VLAN_INSERT) + if (dev_info.rx_offload_capa & DEV_RX_OFFLOAD_TIMESTAMP) { + printf("HW timestamp: "); + if (ports[port_id].dev_conf.rxmode.offloads & + DEV_RX_OFFLOAD_TIMESTAMP) printf("on\n"); else printf("off\n"); } - if (dev_info.rx_offload_capa & DEV_RX_OFFLOAD_TIMESTAMP) { - printf("HW timestamp: "); + if (dev_info.rx_offload_capa & DEV_RX_OFFLOAD_KEEP_CRC) { + printf("Rx Keep CRC: "); if (ports[port_id].dev_conf.rxmode.offloads & - DEV_RX_OFFLOAD_TIMESTAMP) + DEV_RX_OFFLOAD_KEEP_CRC) + printf("on\n"); + else + printf("off\n"); + } + + if (dev_info.tx_offload_capa & DEV_TX_OFFLOAD_VLAN_INSERT) { + printf("VLAN insert: "); + if (ports[port_id].dev_conf.txmode.offloads & + DEV_TX_OFFLOAD_VLAN_INSERT) printf("on\n"); else printf("off\n"); diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c index 962fad789..9220e1c1b 100644 --- a/app/test-pmd/parameters.c +++ b/app/test-pmd/parameters.c @@ -878,10 +878,8 @@ launch_args_parse(int argc, char** argv) " must be >= 0\n", n); } #endif - if (!strcmp(lgopts[opt_idx].name, "disable-crc-strip")) { - rx_offloads &= ~DEV_RX_OFFLOAD_CRC_STRIP; + if (!strcmp(lgopts[opt_idx].name, "disable-crc-strip")) rx_offloads |= DEV_RX_OFFLOAD_KEEP_CRC; - } if (!strcmp(lgopts[opt_idx].name, "enable-lro")) rx_offloads |= DEV_RX_OFFLOAD_TCP_LRO; if (!strcmp(lgopts[opt_idx].name, "enable-scatter")) diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index ee48db2a3..571ecb4ac 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -334,7 +334,6 @@ lcoreid_t latencystats_lcore_id = -1; */ struct rte_eth_rxmode rx_mode = { .max_rx_pkt_len = ETHER_MAX_LEN, /**< Default maximum frame length. */ - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }; struct rte_eth_txmode tx_mode = { @@ -739,10 +738,6 @@ init_config(void) port->dev_conf.rxmode = rx_mode; rte_eth_dev_info_get(pid, &port->dev_info); - if (!(port->dev_info.rx_offload_capa & - DEV_RX_OFFLOAD_CRC_STRIP)) - port->dev_conf.rxmode.offloads &= - ~DEV_RX_OFFLOAD_CRC_STRIP; if (!(port->dev_info.tx_offload_capa & DEV_TX_OFFLOAD_MBUF_FAST_FREE)) port->dev_conf.txmode.offloads &= diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst index cddc877d4..b085bda86 100644 --- a/doc/guides/nics/features.rst +++ b/doc/guides/nics/features.rst @@ -513,8 +513,9 @@ CRC offload ----------- Supports CRC stripping by hardware. +A PMD assumed to support CRC stripping by default. PMD should advertise if it supports keeping CRC. -* **[uses] rte_eth_rxconf,rte_eth_rxmode**: ``offloads:DEV_RX_OFFLOAD_CRC_STRIP,DEV_RX_OFFLOAD_KEEP_CRC``. +* **[uses] rte_eth_rxconf,rte_eth_rxmode**: ``offloads:DEV_RX_OFFLOAD_KEEP_CRC``. .. _nic_features_vlan_offload: diff --git a/doc/guides/nics/fm10k.rst b/doc/guides/nics/fm10k.rst index d1391e997..764e089c8 100644 --- a/doc/guides/nics/fm10k.rst +++ b/doc/guides/nics/fm10k.rst @@ -139,8 +139,7 @@ CRC striping ~~~~~~~~~~~~ The FM10000 family of NICs strip the CRC for every packets coming into the -host interface. So, CRC will be stripped even when ``DEV_RX_OFFLOAD_CRC_STRIP`` -in ``rxmode.offloads`` is NOT set in ``struct rte_eth_conf``. +host interface. So, keeping CRC is not supported. Maximum packet length ~~~~~~~~~~~~~~~~~~~~~ diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst index 9cd12ccd8..8200e6826 100644 --- a/doc/guides/rel_notes/deprecation.rst +++ b/doc/guides/rel_notes/deprecation.rst @@ -56,12 +56,6 @@ Deprecation Notices experimental API ``rte_pktmbuf_attach_extbuf()`` is used. Removal of the macro is to fix this semantic inconsistency. -* ethdev: In v18.11 ``DEV_RX_OFFLOAD_CRC_STRIP`` offload flag will be removed, default - behavior without any flag will be changed to CRC strip. - To keep CRC ``DEV_RX_OFFLOAD_KEEP_CRC`` flag is required. - ``KEEP_CRC``: Keep CRC in packet - No flag: Strip CRC from packet - * ethdev: the legacy filter API, including ``rte_eth_dev_filter_supported()``, ``rte_eth_dev_filter_ctrl()`` as well as filter types MACVLAN, ETHERTYPE, FLEXIBLE, SYN, NTUPLE, TUNNEL, FDIR, diff --git a/doc/guides/sample_app_ug/flow_filtering.rst b/doc/guides/sample_app_ug/flow_filtering.rst index bd0ae1e2f..0d6fe2bb3 100644 --- a/doc/guides/sample_app_ug/flow_filtering.rst +++ b/doc/guides/sample_app_ug/flow_filtering.rst @@ -139,7 +139,6 @@ application is shown below: struct rte_eth_conf port_conf = { .rxmode = { .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .offloads = @@ -215,7 +214,6 @@ The Ethernet port is configured with default settings using the struct rte_eth_conf port_conf = { .rxmode = { .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .offloads = diff --git a/doc/guides/sample_app_ug/link_status_intr.rst b/doc/guides/sample_app_ug/link_status_intr.rst index c7665fe5c..695c088e8 100644 --- a/doc/guides/sample_app_ug/link_status_intr.rst +++ b/doc/guides/sample_app_ug/link_status_intr.rst @@ -137,7 +137,6 @@ The global configuration is stored in a static structure: static const struct rte_eth_conf port_conf = { .rxmode = { .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = {}, .intr_conf = { diff --git a/drivers/net/af_packet/rte_eth_af_packet.c b/drivers/net/af_packet/rte_eth_af_packet.c index eb3cce3a6..bc7daed5e 100644 --- a/drivers/net/af_packet/rte_eth_af_packet.c +++ b/drivers/net/af_packet/rte_eth_af_packet.c @@ -305,7 +305,6 @@ eth_dev_info(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) dev_info->max_rx_queues = (uint16_t)internals->nb_queues; dev_info->max_tx_queues = (uint16_t)internals->nb_queues; dev_info->min_rx_bufsize = 0; - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_CRC_STRIP; } static int diff --git a/drivers/net/avf/avf_ethdev.c b/drivers/net/avf/avf_ethdev.c index 3a2baaf28..a7d69828c 100644 --- a/drivers/net/avf/avf_ethdev.c +++ b/drivers/net/avf/avf_ethdev.c @@ -523,7 +523,6 @@ avf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) DEV_RX_OFFLOAD_UDP_CKSUM | DEV_RX_OFFLOAD_TCP_CKSUM | DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM | - DEV_RX_OFFLOAD_CRC_STRIP | DEV_RX_OFFLOAD_KEEP_CRC | DEV_RX_OFFLOAD_SCATTER | DEV_RX_OFFLOAD_JUMBO_FRAME | diff --git a/drivers/net/avp/avp_ethdev.c b/drivers/net/avp/avp_ethdev.c index 761f6c1c4..0f8ccb954 100644 --- a/drivers/net/avp/avp_ethdev.c +++ b/drivers/net/avp/avp_ethdev.c @@ -2170,7 +2170,6 @@ avp_dev_info_get(struct rte_eth_dev *eth_dev, dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP; dev_info->tx_offload_capa = DEV_TX_OFFLOAD_VLAN_INSERT; } - dev_info->rx_offload_capa |= DEV_RX_OFFLOAD_CRC_STRIP; } static int diff --git a/drivers/net/axgbe/axgbe_ethdev.c b/drivers/net/axgbe/axgbe_ethdev.c index 9ae9f0631..4b84b50c0 100644 --- a/drivers/net/axgbe/axgbe_ethdev.c +++ b/drivers/net/axgbe/axgbe_ethdev.c @@ -364,7 +364,6 @@ axgbe_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) DEV_RX_OFFLOAD_IPV4_CKSUM | DEV_RX_OFFLOAD_UDP_CKSUM | DEV_RX_OFFLOAD_TCP_CKSUM | - DEV_RX_OFFLOAD_CRC_STRIP | DEV_RX_OFFLOAD_KEEP_CRC; dev_info->tx_offload_capa = diff --git a/drivers/net/axgbe/axgbe_rxtx.c b/drivers/net/axgbe/axgbe_rxtx.c index c5fd5f418..b5a29a95f 100644 --- a/drivers/net/axgbe/axgbe_rxtx.c +++ b/drivers/net/axgbe/axgbe_rxtx.c @@ -74,7 +74,7 @@ int axgbe_dev_rx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx, (DMA_CH_INC * rxq->queue_id)); rxq->dma_tail_reg = (volatile uint32_t *)((uint8_t *)rxq->dma_regs + DMA_CH_RDTR_LO); - if (rte_eth_dev_must_keep_crc(dev->data->dev_conf.rxmode.offloads)) + if (dev->data->dev_conf.rxmode.offloads & DEV_RX_OFFLOAD_KEEP_CRC) rxq->crc_len = ETHER_CRC_LEN; else rxq->crc_len = 0; diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c index cc7e4391c..70c761581 100644 --- a/drivers/net/bnxt/bnxt_ethdev.c +++ b/drivers/net/bnxt/bnxt_ethdev.c @@ -149,7 +149,6 @@ static const struct rte_pci_id bnxt_pci_id_map[] = { DEV_RX_OFFLOAD_TCP_CKSUM | \ DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM | \ DEV_RX_OFFLOAD_JUMBO_FRAME | \ - DEV_RX_OFFLOAD_CRC_STRIP | \ DEV_RX_OFFLOAD_KEEP_CRC | \ DEV_RX_OFFLOAD_TCP_LRO) diff --git a/drivers/net/bnxt/bnxt_rxq.c b/drivers/net/bnxt/bnxt_rxq.c index 832fc9ecc..6d99137a9 100644 --- a/drivers/net/bnxt/bnxt_rxq.c +++ b/drivers/net/bnxt/bnxt_rxq.c @@ -331,8 +331,10 @@ int bnxt_rx_queue_setup_op(struct rte_eth_dev *eth_dev, rxq->queue_id = queue_idx; rxq->port_id = eth_dev->data->port_id; - rxq->crc_len = rte_eth_dev_must_keep_crc(rx_offloads) ? - ETHER_CRC_LEN : 0; + if (rx_offloads & DEV_RX_OFFLOAD_KEEP_CRC) + rxq->crc_len = ETHER_CRC_LEN; + else + rxq->crc_len = 0; eth_dev->data->rx_queues[queue_idx] = rxq; /* Allocate RX ring hardware descriptors */ diff --git a/drivers/net/cxgbe/cxgbe_ethdev.c b/drivers/net/cxgbe/cxgbe_ethdev.c index 4dcad7a23..35c38c548 100644 --- a/drivers/net/cxgbe/cxgbe_ethdev.c +++ b/drivers/net/cxgbe/cxgbe_ethdev.c @@ -66,7 +66,6 @@ DEV_TX_OFFLOAD_TCP_TSO) #define CXGBE_RX_OFFLOADS (DEV_RX_OFFLOAD_VLAN_STRIP |\ - DEV_RX_OFFLOAD_CRC_STRIP |\ DEV_RX_OFFLOAD_IPV4_CKSUM |\ DEV_RX_OFFLOAD_JUMBO_FRAME |\ DEV_RX_OFFLOAD_UDP_CKSUM |\ @@ -413,20 +412,9 @@ int cxgbe_dev_configure(struct rte_eth_dev *eth_dev) { struct port_info *pi = (struct port_info *)(eth_dev->data->dev_private); struct adapter *adapter = pi->adapter; - uint64_t configured_offloads; int err; CXGBE_FUNC_TRACE(); - configured_offloads = eth_dev->data->dev_conf.rxmode.offloads; - - /* KEEP_CRC offload flag is not supported by PMD - * can remove the below block when DEV_RX_OFFLOAD_CRC_STRIP removed - */ - if (rte_eth_dev_must_keep_crc(configured_offloads)) { - dev_info(adapter, "can't disable hw crc strip\n"); - eth_dev->data->dev_conf.rxmode.offloads |= - DEV_RX_OFFLOAD_CRC_STRIP; - } if (!(adapter->flags & FW_QUEUE_BOUND)) { err = setup_sge_fwevtq(adapter); diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c index 7a950ac04..30eff657a 100644 --- a/drivers/net/dpaa/dpaa_ethdev.c +++ b/drivers/net/dpaa/dpaa_ethdev.c @@ -55,7 +55,6 @@ static uint64_t dev_rx_offloads_nodis = DEV_RX_OFFLOAD_UDP_CKSUM | DEV_RX_OFFLOAD_TCP_CKSUM | DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM | - DEV_RX_OFFLOAD_CRC_STRIP | DEV_RX_OFFLOAD_SCATTER; /* Supported Tx offloads */ diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c index c5047367a..8d3d54bfe 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.c +++ b/drivers/net/dpaa2/dpaa2_ethdev.c @@ -39,7 +39,6 @@ static uint64_t dev_rx_offloads_sup = /* Rx offloads which cannot be disabled */ static uint64_t dev_rx_offloads_nodis = - DEV_RX_OFFLOAD_CRC_STRIP | DEV_RX_OFFLOAD_SCATTER; /* Supported Tx offloads */ diff --git a/drivers/net/e1000/em_rxtx.c b/drivers/net/e1000/em_rxtx.c index 7d2ac4eb7..1103a1839 100644 --- a/drivers/net/e1000/em_rxtx.c +++ b/drivers/net/e1000/em_rxtx.c @@ -1363,7 +1363,6 @@ em_get_rx_port_offloads_capa(struct rte_eth_dev *dev) DEV_RX_OFFLOAD_IPV4_CKSUM | DEV_RX_OFFLOAD_UDP_CKSUM | DEV_RX_OFFLOAD_TCP_CKSUM | - DEV_RX_OFFLOAD_CRC_STRIP | DEV_RX_OFFLOAD_KEEP_CRC | DEV_RX_OFFLOAD_SCATTER; if (max_rx_pktlen > ETHER_MAX_LEN) @@ -1459,7 +1458,7 @@ eth_em_rx_queue_setup(struct rte_eth_dev *dev, rxq->rx_free_thresh = rx_conf->rx_free_thresh; rxq->queue_id = queue_idx; rxq->port_id = dev->data->port_id; - if (rte_eth_dev_must_keep_crc(dev->data->dev_conf.rxmode.offloads)) + if (dev->data->dev_conf.rxmode.offloads & DEV_RX_OFFLOAD_KEEP_CRC) rxq->crc_len = ETHER_CRC_LEN; else rxq->crc_len = 0; @@ -1795,7 +1794,7 @@ eth_em_rx_init(struct rte_eth_dev *dev) * Reset crc_len in case it was changed after queue setup by a * call to configure */ - if (rte_eth_dev_must_keep_crc(dev->data->dev_conf.rxmode.offloads)) + if (dev->data->dev_conf.rxmode.offloads & DEV_RX_OFFLOAD_KEEP_CRC) rxq->crc_len = ETHER_CRC_LEN; else rxq->crc_len = 0; @@ -1877,7 +1876,7 @@ eth_em_rx_init(struct rte_eth_dev *dev) } /* Setup the Receive Control Register. */ - if (rte_eth_dev_must_keep_crc(dev->data->dev_conf.rxmode.offloads)) + if (dev->data->dev_conf.rxmode.offloads & DEV_RX_OFFLOAD_KEEP_CRC) rctl &= ~E1000_RCTL_SECRC; /* Do not Strip Ethernet CRC. */ else rctl |= E1000_RCTL_SECRC; /* Strip Ethernet CRC. */ diff --git a/drivers/net/e1000/igb_ethdev.c b/drivers/net/e1000/igb_ethdev.c index 64dfe6836..f94036c67 100644 --- a/drivers/net/e1000/igb_ethdev.c +++ b/drivers/net/e1000/igb_ethdev.c @@ -3197,14 +3197,14 @@ igbvf_dev_configure(struct rte_eth_dev *dev) * Keep the persistent behavior the same as Host PF */ #ifndef RTE_LIBRTE_E1000_PF_DISABLE_STRIP_CRC - if (rte_eth_dev_must_keep_crc(conf->rxmode.offloads)) { + if (conf->rxmode.offloads & DEV_RX_OFFLOAD_KEEP_CRC) { PMD_INIT_LOG(NOTICE, "VF can't disable HW CRC Strip"); - conf->rxmode.offloads |= DEV_RX_OFFLOAD_CRC_STRIP; + conf->rxmode.offloads &= ~DEV_RX_OFFLOAD_KEEP_CRC; } #else - if (!rte_eth_dev_must_keep_crc(conf->rxmode.offloads)) { + if (!(conf->rxmode.offloads & DEV_RX_OFFLOAD_KEEP_CRC)) { PMD_INIT_LOG(NOTICE, "VF can't enable HW CRC Strip"); - conf->rxmode.offloads &= ~DEV_RX_OFFLOAD_CRC_STRIP; + conf->rxmode.offloads |= DEV_RX_OFFLOAD_KEEP_CRC; } #endif diff --git a/drivers/net/e1000/igb_rxtx.c b/drivers/net/e1000/igb_rxtx.c index 8aefd976a..f2d3d4911 100644 --- a/drivers/net/e1000/igb_rxtx.c +++ b/drivers/net/e1000/igb_rxtx.c @@ -1638,7 +1638,6 @@ igb_get_rx_port_offloads_capa(struct rte_eth_dev *dev) DEV_RX_OFFLOAD_UDP_CKSUM | DEV_RX_OFFLOAD_TCP_CKSUM | DEV_RX_OFFLOAD_JUMBO_FRAME | - DEV_RX_OFFLOAD_CRC_STRIP | DEV_RX_OFFLOAD_KEEP_CRC | DEV_RX_OFFLOAD_SCATTER; @@ -1721,7 +1720,7 @@ eth_igb_rx_queue_setup(struct rte_eth_dev *dev, rxq->reg_idx = (uint16_t)((RTE_ETH_DEV_SRIOV(dev).active == 0) ? queue_idx : RTE_ETH_DEV_SRIOV(dev).def_pool_q_idx + queue_idx); rxq->port_id = dev->data->port_id; - if (rte_eth_dev_must_keep_crc(dev->data->dev_conf.rxmode.offloads)) + if (dev->data->dev_conf.rxmode.offloads & DEV_RX_OFFLOAD_KEEP_CRC) rxq->crc_len = ETHER_CRC_LEN; else rxq->crc_len = 0; @@ -2374,7 +2373,7 @@ eth_igb_rx_init(struct rte_eth_dev *dev) * Reset crc_len in case it was changed after queue setup by a * call to configure */ - if (rte_eth_dev_must_keep_crc(dev->data->dev_conf.rxmode.offloads)) + if (dev->data->dev_conf.rxmode.offloads & DEV_RX_OFFLOAD_KEEP_CRC) rxq->crc_len = ETHER_CRC_LEN; else rxq->crc_len = 0; @@ -2506,7 +2505,7 @@ eth_igb_rx_init(struct rte_eth_dev *dev) E1000_WRITE_REG(hw, E1000_RXCSUM, rxcsum); /* Setup the Receive Control Register. */ - if (rte_eth_dev_must_keep_crc(dev->data->dev_conf.rxmode.offloads)) { + if (dev->data->dev_conf.rxmode.offloads & DEV_RX_OFFLOAD_KEEP_CRC) { rctl &= ~E1000_RCTL_SECRC; /* Do not Strip Ethernet CRC. */ /* clear STRCRC bit in all queues */ diff --git a/drivers/net/enic/enic_res.c b/drivers/net/enic/enic_res.c index 8d493ffed..abe004b24 100644 --- a/drivers/net/enic/enic_res.c +++ b/drivers/net/enic/enic_res.c @@ -195,7 +195,6 @@ int enic_get_vnic_config(struct enic *enic) enic->rx_offload_capa = DEV_RX_OFFLOAD_SCATTER | DEV_RX_OFFLOAD_JUMBO_FRAME | - DEV_RX_OFFLOAD_CRC_STRIP | DEV_RX_OFFLOAD_VLAN_STRIP | DEV_RX_OFFLOAD_IPV4_CKSUM | DEV_RX_OFFLOAD_UDP_CKSUM | diff --git a/drivers/net/failsafe/failsafe_ops.c b/drivers/net/failsafe/failsafe_ops.c index 24e91c931..d989a17bf 100644 --- a/drivers/net/failsafe/failsafe_ops.c +++ b/drivers/net/failsafe/failsafe_ops.c @@ -57,7 +57,6 @@ static struct rte_eth_dev_info default_infos = { DEV_RX_OFFLOAD_VLAN_FILTER | DEV_RX_OFFLOAD_VLAN_EXTEND | DEV_RX_OFFLOAD_JUMBO_FRAME | - DEV_RX_OFFLOAD_CRC_STRIP | DEV_RX_OFFLOAD_SCATTER | DEV_RX_OFFLOAD_TIMESTAMP | DEV_RX_OFFLOAD_SECURITY, @@ -74,7 +73,6 @@ static struct rte_eth_dev_info default_infos = { DEV_RX_OFFLOAD_VLAN_FILTER | DEV_RX_OFFLOAD_VLAN_EXTEND | DEV_RX_OFFLOAD_JUMBO_FRAME | - DEV_RX_OFFLOAD_CRC_STRIP | DEV_RX_OFFLOAD_SCATTER | DEV_RX_OFFLOAD_TIMESTAMP | DEV_RX_OFFLOAD_SECURITY, diff --git a/drivers/net/fm10k/fm10k_ethdev.c b/drivers/net/fm10k/fm10k_ethdev.c index 541a49b75..3359df3c8 100644 --- a/drivers/net/fm10k/fm10k_ethdev.c +++ b/drivers/net/fm10k/fm10k_ethdev.c @@ -451,12 +451,6 @@ fm10k_dev_configure(struct rte_eth_dev *dev) PMD_INIT_FUNC_TRACE(); - /* KEEP_CRC offload flag is not supported by PMD - * can remove the below block when DEV_RX_OFFLOAD_CRC_STRIP removed - */ - if (rte_eth_dev_must_keep_crc(dev->data->dev_conf.rxmode.offloads)) - PMD_INIT_LOG(WARNING, "fm10k always strip CRC"); - /* multipe queue mode checking */ ret = fm10k_check_mq_mode(dev); if (ret != 0) { @@ -1796,7 +1790,6 @@ static uint64_t fm10k_get_rx_port_offloads_capa(struct rte_eth_dev *dev) DEV_RX_OFFLOAD_UDP_CKSUM | DEV_RX_OFFLOAD_TCP_CKSUM | DEV_RX_OFFLOAD_JUMBO_FRAME | - DEV_RX_OFFLOAD_CRC_STRIP | DEV_RX_OFFLOAD_HEADER_SPLIT); } diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c index 85a6a867f..eeadce43c 100644 --- a/drivers/net/i40e/i40e_ethdev.c +++ b/drivers/net/i40e/i40e_ethdev.c @@ -3363,7 +3363,6 @@ i40e_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) DEV_RX_OFFLOAD_UDP_CKSUM | DEV_RX_OFFLOAD_TCP_CKSUM | DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM | - DEV_RX_OFFLOAD_CRC_STRIP | DEV_RX_OFFLOAD_KEEP_CRC | DEV_RX_OFFLOAD_VLAN_EXTEND | DEV_RX_OFFLOAD_VLAN_FILTER | diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c index 001c301b9..f9cedf5b3 100644 --- a/drivers/net/i40e/i40e_ethdev_vf.c +++ b/drivers/net/i40e/i40e_ethdev_vf.c @@ -1536,7 +1536,7 @@ i40evf_dev_configure(struct rte_eth_dev *dev) /* For non-DPDK PF drivers, VF has no ability to disable HW * CRC strip, and is implicitly enabled by the PF. */ - if (rte_eth_dev_must_keep_crc(conf->rxmode.offloads)) { + if (conf->rxmode.offloads & DEV_RX_OFFLOAD_KEEP_CRC) { vf = I40EVF_DEV_PRIVATE_TO_VF(dev->data->dev_private); if ((vf->version_major == VIRTCHNL_VERSION_MAJOR) && (vf->version_minor <= VIRTCHNL_VERSION_MINOR)) { @@ -2180,7 +2180,6 @@ i40evf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) DEV_RX_OFFLOAD_UDP_CKSUM | DEV_RX_OFFLOAD_TCP_CKSUM | DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM | - DEV_RX_OFFLOAD_CRC_STRIP | DEV_RX_OFFLOAD_KEEP_CRC | DEV_RX_OFFLOAD_SCATTER | DEV_RX_OFFLOAD_JUMBO_FRAME | diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c index 2a28ee348..5e78d489e 100644 --- a/drivers/net/i40e/i40e_rxtx.c +++ b/drivers/net/i40e/i40e_rxtx.c @@ -1828,7 +1828,7 @@ i40e_dev_rx_queue_setup(struct rte_eth_dev *dev, rxq->queue_id = queue_idx; rxq->reg_idx = reg_idx; rxq->port_id = dev->data->port_id; - if (rte_eth_dev_must_keep_crc(dev->data->dev_conf.rxmode.offloads)) + if (dev->data->dev_conf.rxmode.offloads & DEV_RX_OFFLOAD_KEEP_CRC) rxq->crc_len = ETHER_CRC_LEN; else rxq->crc_len = 0; diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c index 26b192737..669d79a86 100644 --- a/drivers/net/ixgbe/ixgbe_ethdev.c +++ b/drivers/net/ixgbe/ixgbe_ethdev.c @@ -5008,14 +5008,14 @@ ixgbevf_dev_configure(struct rte_eth_dev *dev) * Keep the persistent behavior the same as Host PF */ #ifndef RTE_LIBRTE_IXGBE_PF_DISABLE_STRIP_CRC - if (rte_eth_dev_must_keep_crc(conf->rxmode.offloads)) { + if (conf->rxmode.offloads & DEV_RX_OFFLOAD_KEEP_CRC) { PMD_INIT_LOG(NOTICE, "VF can't disable HW CRC Strip"); - conf->rxmode.offloads |= DEV_RX_OFFLOAD_CRC_STRIP; + conf->rxmode.offloads &= ~DEV_RX_OFFLOAD_KEEP_CRC; } #else - if (!rte_eth_dev_must_keep_crc(conf->rxmode.offloads)) { + if (!(conf->rxmode.offloads & DEV_RX_OFFLOAD_KEEP_CRC)) { PMD_INIT_LOG(NOTICE, "VF can't enable HW CRC Strip"); - conf->rxmode.offloads &= ~DEV_RX_OFFLOAD_CRC_STRIP; + conf->rxmode.offloads |= DEV_RX_OFFLOAD_KEEP_CRC; } #endif diff --git a/drivers/net/ixgbe/ixgbe_ipsec.c b/drivers/net/ixgbe/ixgbe_ipsec.c index 08405f1e3..683ab88a6 100644 --- a/drivers/net/ixgbe/ixgbe_ipsec.c +++ b/drivers/net/ixgbe/ixgbe_ipsec.c @@ -609,7 +609,7 @@ ixgbe_crypto_enable_ipsec(struct rte_eth_dev *dev) PMD_DRV_LOG(ERR, "RSC and IPsec not supported"); return -1; } - if (rte_eth_dev_must_keep_crc(rx_offloads)) { + if (rx_offloads & DEV_RX_OFFLOAD_KEEP_CRC) { PMD_DRV_LOG(ERR, "HW CRC strip needs to be enabled for IPsec"); return -1; } diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c index f82b74a9a..ae21f04a1 100644 --- a/drivers/net/ixgbe/ixgbe_rxtx.c +++ b/drivers/net/ixgbe/ixgbe_rxtx.c @@ -2848,7 +2848,6 @@ ixgbe_get_rx_port_offloads(struct rte_eth_dev *dev) offloads = DEV_RX_OFFLOAD_IPV4_CKSUM | DEV_RX_OFFLOAD_UDP_CKSUM | DEV_RX_OFFLOAD_TCP_CKSUM | - DEV_RX_OFFLOAD_CRC_STRIP | DEV_RX_OFFLOAD_KEEP_CRC | DEV_RX_OFFLOAD_JUMBO_FRAME | DEV_RX_OFFLOAD_SCATTER; @@ -2936,7 +2935,7 @@ ixgbe_dev_rx_queue_setup(struct rte_eth_dev *dev, rxq->reg_idx = (uint16_t)((RTE_ETH_DEV_SRIOV(dev).active == 0) ? queue_idx : RTE_ETH_DEV_SRIOV(dev).def_pool_q_idx + queue_idx); rxq->port_id = dev->data->port_id; - if (rte_eth_dev_must_keep_crc(dev->data->dev_conf.rxmode.offloads)) + if (dev->data->dev_conf.rxmode.offloads & DEV_RX_OFFLOAD_KEEP_CRC) rxq->crc_len = ETHER_CRC_LEN; else rxq->crc_len = 0; @@ -4705,7 +4704,7 @@ ixgbe_set_rsc(struct rte_eth_dev *dev) /* RSC global configuration (chapter 4.6.7.2.1 of 82599 Spec) */ - if (rte_eth_dev_must_keep_crc(rx_conf->offloads) && + if ((rx_conf->offloads & DEV_RX_OFFLOAD_KEEP_CRC) && (rx_conf->offloads & DEV_RX_OFFLOAD_TCP_LRO)) { /* * According to chapter of 4.6.7.2.1 of the Spec Rev. @@ -4854,7 +4853,7 @@ ixgbe_dev_rx_init(struct rte_eth_dev *dev) * Configure CRC stripping, if any. */ hlreg0 = IXGBE_READ_REG(hw, IXGBE_HLREG0); - if (rte_eth_dev_must_keep_crc(rx_conf->offloads)) + if (rx_conf->offloads & DEV_RX_OFFLOAD_KEEP_CRC) hlreg0 &= ~IXGBE_HLREG0_RXCRCSTRP; else hlreg0 |= IXGBE_HLREG0_RXCRCSTRP; @@ -4895,8 +4894,10 @@ ixgbe_dev_rx_init(struct rte_eth_dev *dev) * Reset crc_len in case it was changed after queue setup by a * call to configure. */ - rxq->crc_len = rte_eth_dev_must_keep_crc(rx_conf->offloads) ? - ETHER_CRC_LEN : 0; + if (rx_conf->offloads & DEV_RX_OFFLOAD_KEEP_CRC) + rxq->crc_len = ETHER_CRC_LEN; + else + rxq->crc_len = 0; /* Setup the Base and Length of the Rx Descriptor Rings */ bus_addr = rxq->rx_ring_phys_addr; @@ -4965,7 +4966,7 @@ ixgbe_dev_rx_init(struct rte_eth_dev *dev) if (hw->mac.type == ixgbe_mac_82599EB || hw->mac.type == ixgbe_mac_X540) { rdrxctl = IXGBE_READ_REG(hw, IXGBE_RDRXCTL); - if (rte_eth_dev_must_keep_crc(rx_conf->offloads)) + if (rx_conf->offloads & DEV_RX_OFFLOAD_KEEP_CRC) rdrxctl &= ~IXGBE_RDRXCTL_CRCSTRIP; else rdrxctl |= IXGBE_RDRXCTL_CRCSTRIP; diff --git a/drivers/net/kni/rte_eth_kni.c b/drivers/net/kni/rte_eth_kni.c index 085bb8452..8a7015a0b 100644 --- a/drivers/net/kni/rte_eth_kni.c +++ b/drivers/net/kni/rte_eth_kni.c @@ -207,7 +207,6 @@ eth_kni_dev_info(struct rte_eth_dev *dev __rte_unused, dev_info->max_rx_queues = KNI_MAX_QUEUE_PER_PORT; dev_info->max_tx_queues = KNI_MAX_QUEUE_PER_PORT; dev_info->min_rx_bufsize = 0; - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_CRC_STRIP; } static int diff --git a/drivers/net/mlx4/mlx4_rxq.c b/drivers/net/mlx4/mlx4_rxq.c index 9737da2e5..6804c6344 100644 --- a/drivers/net/mlx4/mlx4_rxq.c +++ b/drivers/net/mlx4/mlx4_rxq.c @@ -678,7 +678,6 @@ uint64_t mlx4_get_rx_queue_offloads(struct priv *priv) { uint64_t offloads = DEV_RX_OFFLOAD_SCATTER | - DEV_RX_OFFLOAD_CRC_STRIP | DEV_RX_OFFLOAD_KEEP_CRC | DEV_RX_OFFLOAD_JUMBO_FRAME; @@ -780,7 +779,7 @@ mlx4_rx_queue_setup(struct rte_eth_dev *dev, uint16_t idx, uint16_t desc, } /* By default, FCS (CRC) is stripped by hardware. */ crc_present = 0; - if (rte_eth_dev_must_keep_crc(offloads)) { + if (offloads & DEV_RX_OFFLOAD_KEEP_CRC) { if (priv->hw_fcs_strip) { crc_present = 1; } else { diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c index 1f7bfd441..ed993ea6d 100644 --- a/drivers/net/mlx5/mlx5_rxq.c +++ b/drivers/net/mlx5/mlx5_rxq.c @@ -388,7 +388,6 @@ mlx5_get_rx_queue_offloads(struct rte_eth_dev *dev) DEV_RX_OFFLOAD_TIMESTAMP | DEV_RX_OFFLOAD_JUMBO_FRAME); - offloads |= DEV_RX_OFFLOAD_CRC_STRIP; if (config->hw_fcs_strip) offloads |= DEV_RX_OFFLOAD_KEEP_CRC; @@ -1438,7 +1437,7 @@ mlx5_rxq_new(struct rte_eth_dev *dev, uint16_t idx, uint16_t desc, tmpl->rxq.vlan_strip = !!(offloads & DEV_RX_OFFLOAD_VLAN_STRIP); /* By default, FCS (CRC) is stripped by hardware. */ tmpl->rxq.crc_present = 0; - if (rte_eth_dev_must_keep_crc(offloads)) { + if (offloads & DEV_RX_OFFLOAD_KEEP_CRC) { if (config->hw_fcs_strip) { tmpl->rxq.crc_present = 1; } else { diff --git a/drivers/net/mvpp2/mrvl_ethdev.c b/drivers/net/mvpp2/mrvl_ethdev.c index 682444590..fa4af49af 100644 --- a/drivers/net/mvpp2/mrvl_ethdev.c +++ b/drivers/net/mvpp2/mrvl_ethdev.c @@ -67,7 +67,6 @@ /** Port Rx offload capabilities */ #define MRVL_RX_OFFLOADS (DEV_RX_OFFLOAD_VLAN_FILTER | \ DEV_RX_OFFLOAD_JUMBO_FRAME | \ - DEV_RX_OFFLOAD_CRC_STRIP | \ DEV_RX_OFFLOAD_CHECKSUM) /** Port Tx offloads capabilities */ @@ -311,14 +310,6 @@ mrvl_dev_configure(struct rte_eth_dev *dev) return -EINVAL; } - /* KEEP_CRC offload flag is not supported by PMD - * can remove the below block when DEV_RX_OFFLOAD_CRC_STRIP removed - */ - if (rte_eth_dev_must_keep_crc(dev->data->dev_conf.rxmode.offloads)) { - MRVL_LOG(INFO, "L2 CRC stripping is always enabled in hw"); - dev->data->dev_conf.rxmode.offloads |= DEV_RX_OFFLOAD_CRC_STRIP; - } - if (dev->data->dev_conf.rxmode.split_hdr_size) { MRVL_LOG(INFO, "Split headers not supported"); return -EINVAL; @@ -1334,7 +1325,6 @@ mrvl_dev_infos_get(struct rte_eth_dev *dev __rte_unused, /* By default packets are dropped if no descriptors are available */ info->default_rxconf.rx_drop_en = 1; - info->default_rxconf.offloads = DEV_RX_OFFLOAD_CRC_STRIP; info->max_rx_pktlen = MRVL_PKT_SIZE_MAX; } diff --git a/drivers/net/netvsc/hn_ethdev.c b/drivers/net/netvsc/hn_ethdev.c index 2200ee319..7f7ac155e 100644 --- a/drivers/net/netvsc/hn_ethdev.c +++ b/drivers/net/netvsc/hn_ethdev.c @@ -40,8 +40,7 @@ DEV_TX_OFFLOAD_VLAN_INSERT) #define HN_RX_OFFLOAD_CAPS (DEV_RX_OFFLOAD_CHECKSUM | \ - DEV_RX_OFFLOAD_VLAN_STRIP | \ - DEV_RX_OFFLOAD_CRC_STRIP) + DEV_RX_OFFLOAD_VLAN_STRIP) int hn_logtype_init; int hn_logtype_driver; diff --git a/drivers/net/netvsc/hn_rndis.c b/drivers/net/netvsc/hn_rndis.c index f44add726..9de99e16a 100644 --- a/drivers/net/netvsc/hn_rndis.c +++ b/drivers/net/netvsc/hn_rndis.c @@ -892,8 +892,7 @@ int hn_rndis_get_offload(struct hn_data *hv, == HN_NDIS_LSOV2_CAP_IP6) dev_info->tx_offload_capa |= DEV_TX_OFFLOAD_TCP_TSO; - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP | - DEV_RX_OFFLOAD_CRC_STRIP; + dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP; if (hwcaps.ndis_csum.ndis_ip4_rxcsum & NDIS_RXCSUM_CAP_IP4) dev_info->rx_offload_capa |= DEV_RX_OFFLOAD_IPV4_CKSUM; diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c index ee743e975..168088c6d 100644 --- a/drivers/net/nfp/nfp_net.c +++ b/drivers/net/nfp/nfp_net.c @@ -411,12 +411,6 @@ nfp_net_configure(struct rte_eth_dev *dev) return -EINVAL; } - /* KEEP_CRC offload flag is not supported by PMD - * can remove the below block when DEV_RX_OFFLOAD_CRC_STRIP removed - */ - if (rte_eth_dev_must_keep_crc(rxmode->offloads)) - PMD_INIT_LOG(INFO, "HW does strip CRC. No configurable!"); - return 0; } @@ -1168,8 +1162,7 @@ nfp_net_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) DEV_RX_OFFLOAD_UDP_CKSUM | DEV_RX_OFFLOAD_TCP_CKSUM; - dev_info->rx_offload_capa |= DEV_RX_OFFLOAD_JUMBO_FRAME | - DEV_RX_OFFLOAD_KEEP_CRC; + dev_info->rx_offload_capa |= DEV_RX_OFFLOAD_JUMBO_FRAME; if (hw->cap & NFP_NET_CFG_CTRL_TXVLAN) dev_info->tx_offload_capa = DEV_TX_OFFLOAD_VLAN_INSERT; diff --git a/drivers/net/null/rte_eth_null.c b/drivers/net/null/rte_eth_null.c index 244f86545..de10b5bdf 100644 --- a/drivers/net/null/rte_eth_null.c +++ b/drivers/net/null/rte_eth_null.c @@ -305,7 +305,6 @@ eth_dev_info(struct rte_eth_dev *dev, dev_info->min_rx_bufsize = 0; dev_info->reta_size = internals->reta_size; dev_info->flow_type_rss_offloads = internals->flow_type_rss_offloads; - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_CRC_STRIP; } static int diff --git a/drivers/net/octeontx/octeontx_ethdev.c b/drivers/net/octeontx/octeontx_ethdev.c index 0f3d5d673..71843c63a 100644 --- a/drivers/net/octeontx/octeontx_ethdev.c +++ b/drivers/net/octeontx/octeontx_ethdev.c @@ -281,14 +281,6 @@ octeontx_dev_configure(struct rte_eth_dev *dev) return -EINVAL; } - /* KEEP_CRC offload flag is not supported by PMD - * can remove the below block when DEV_RX_OFFLOAD_CRC_STRIP removed - */ - if (rte_eth_dev_must_keep_crc(rxmode->offloads)) { - PMD_INIT_LOG(NOTICE, "can't disable hw crc strip"); - rxmode->offloads |= DEV_RX_OFFLOAD_CRC_STRIP; - } - if (!(txmode->offloads & DEV_TX_OFFLOAD_MT_LOCKFREE)) { PMD_INIT_LOG(NOTICE, "cant disable lockfree tx"); txmode->offloads |= DEV_TX_OFFLOAD_MT_LOCKFREE; diff --git a/drivers/net/octeontx/octeontx_ethdev.h b/drivers/net/octeontx/octeontx_ethdev.h index 14f169692..920f6f89b 100644 --- a/drivers/net/octeontx/octeontx_ethdev.h +++ b/drivers/net/octeontx/octeontx_ethdev.h @@ -28,8 +28,7 @@ #define OCTEONTX_MAX_BGX_PORTS 4 #define OCTEONTX_MAX_LMAC_PER_BGX 4 -#define OCTEONTX_RX_OFFLOADS (DEV_RX_OFFLOAD_CRC_STRIP \ - | DEV_RX_OFFLOAD_CHECKSUM) +#define OCTEONTX_RX_OFFLOADS DEV_RX_OFFLOAD_CHECKSUM #define OCTEONTX_TX_OFFLOADS DEV_TX_OFFLOAD_MT_LOCKFREE static inline struct octeontx_nic * diff --git a/drivers/net/pcap/rte_eth_pcap.c b/drivers/net/pcap/rte_eth_pcap.c index e8810a171..a015a9d48 100644 --- a/drivers/net/pcap/rte_eth_pcap.c +++ b/drivers/net/pcap/rte_eth_pcap.c @@ -553,7 +553,6 @@ eth_dev_info(struct rte_eth_dev *dev, dev_info->max_rx_queues = dev->data->nb_rx_queues; dev_info->max_tx_queues = dev->data->nb_tx_queues; dev_info->min_rx_bufsize = 0; - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_CRC_STRIP; } static int diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c index df52ea928..7bb52b157 100644 --- a/drivers/net/qede/qede_ethdev.c +++ b/drivers/net/qede/qede_ethdev.c @@ -1554,7 +1554,6 @@ qede_dev_info_get(struct rte_eth_dev *eth_dev, DEV_RX_OFFLOAD_TCP_CKSUM | DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM | DEV_RX_OFFLOAD_TCP_LRO | - DEV_RX_OFFLOAD_CRC_STRIP | DEV_RX_OFFLOAD_KEEP_CRC | DEV_RX_OFFLOAD_SCATTER | DEV_RX_OFFLOAD_JUMBO_FRAME | diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c index 791deb0bb..bfe2f1780 100644 --- a/drivers/net/ring/rte_eth_ring.c +++ b/drivers/net/ring/rte_eth_ring.c @@ -164,7 +164,6 @@ eth_dev_info(struct rte_eth_dev *dev, dev_info->max_rx_queues = (uint16_t)internals->max_rx_queues; dev_info->max_tx_queues = (uint16_t)internals->max_tx_queues; dev_info->min_rx_bufsize = 0; - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_CRC_STRIP; } static int diff --git a/drivers/net/sfc/sfc_rx.c b/drivers/net/sfc/sfc_rx.c index d8503e201..acfd3b51c 100644 --- a/drivers/net/sfc/sfc_rx.c +++ b/drivers/net/sfc/sfc_rx.c @@ -792,7 +792,6 @@ sfc_rx_get_dev_offload_caps(struct sfc_adapter *sa) uint64_t caps = 0; caps |= DEV_RX_OFFLOAD_JUMBO_FRAME; - caps |= DEV_RX_OFFLOAD_CRC_STRIP; if (sa->dp_rx->features & SFC_DP_RX_FEAT_CHECKSUM) { caps |= DEV_RX_OFFLOAD_IPV4_CKSUM; @@ -1439,14 +1438,6 @@ sfc_rx_check_mode(struct sfc_adapter *sa, struct rte_eth_rxmode *rxmode) rc = EINVAL; } - /* KEEP_CRC offload flag is not supported by PMD - * can remove the below block when DEV_RX_OFFLOAD_CRC_STRIP removed - */ - if (rte_eth_dev_must_keep_crc(rxmode->offloads)) { - sfc_warn(sa, "FCS stripping cannot be disabled - always on"); - rxmode->offloads |= DEV_RX_OFFLOAD_CRC_STRIP; - } - /* * Requested offloads are validated against supported by ethdev, * so unsupported offloads cannot be added as the result of diff --git a/drivers/net/softnic/rte_eth_softnic.c b/drivers/net/softnic/rte_eth_softnic.c index 30fb3952a..41c3a9b3e 100644 --- a/drivers/net/softnic/rte_eth_softnic.c +++ b/drivers/net/softnic/rte_eth_softnic.c @@ -73,7 +73,6 @@ static const struct rte_eth_dev_info pmd_dev_info = { .nb_min = 0, .nb_align = 1, }, - .rx_offload_capa = DEV_RX_OFFLOAD_CRC_STRIP, }; static int pmd_softnic_logtype; diff --git a/drivers/net/szedata2/rte_eth_szedata2.c b/drivers/net/szedata2/rte_eth_szedata2.c index 1d20cb51b..8f92e72f2 100644 --- a/drivers/net/szedata2/rte_eth_szedata2.c +++ b/drivers/net/szedata2/rte_eth_szedata2.c @@ -1056,8 +1056,7 @@ eth_dev_info(struct rte_eth_dev *dev, dev_info->max_rx_queues = internals->max_rx_queues; dev_info->max_tx_queues = internals->max_tx_queues; dev_info->min_rx_bufsize = 0; - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_SCATTER | - DEV_RX_OFFLOAD_CRC_STRIP; + dev_info->rx_offload_capa = DEV_RX_OFFLOAD_SCATTER; dev_info->tx_offload_capa = 0; dev_info->rx_queue_offload_capa = 0; dev_info->tx_queue_offload_capa = 0; diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c index feb92b48e..ad5ae988b 100644 --- a/drivers/net/tap/rte_eth_tap.c +++ b/drivers/net/tap/rte_eth_tap.c @@ -305,8 +305,7 @@ tap_rx_offload_get_queue_capa(void) return DEV_RX_OFFLOAD_SCATTER | DEV_RX_OFFLOAD_IPV4_CKSUM | DEV_RX_OFFLOAD_UDP_CKSUM | - DEV_RX_OFFLOAD_TCP_CKSUM | - DEV_RX_OFFLOAD_CRC_STRIP; + DEV_RX_OFFLOAD_TCP_CKSUM; } /* Callback to handle the rx burst of packets to the correct interface and diff --git a/drivers/net/thunderx/nicvf_ethdev.c b/drivers/net/thunderx/nicvf_ethdev.c index a55c3ca66..879d88998 100644 --- a/drivers/net/thunderx/nicvf_ethdev.c +++ b/drivers/net/thunderx/nicvf_ethdev.c @@ -1431,7 +1431,6 @@ nicvf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) dev_info->default_rxconf = (struct rte_eth_rxconf) { .rx_free_thresh = NICVF_DEFAULT_RX_FREE_THRESH, .rx_drop_en = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }; dev_info->default_txconf = (struct rte_eth_txconf) { @@ -1916,14 +1915,6 @@ nicvf_dev_configure(struct rte_eth_dev *dev) return -EINVAL; } - /* KEEP_CRC offload flag is not supported by PMD - * can remove the below block when DEV_RX_OFFLOAD_CRC_STRIP removed - */ - if (rte_eth_dev_must_keep_crc(rxmode->offloads)) { - PMD_INIT_LOG(NOTICE, "Can't disable hw crc strip"); - rxmode->offloads |= DEV_RX_OFFLOAD_CRC_STRIP; - } - if (txmode->mq_mode) { PMD_INIT_LOG(INFO, "Tx mq_mode DCB or VMDq not supported"); return -EINVAL; diff --git a/drivers/net/thunderx/nicvf_ethdev.h b/drivers/net/thunderx/nicvf_ethdev.h index ae440fef2..c0bfbf848 100644 --- a/drivers/net/thunderx/nicvf_ethdev.h +++ b/drivers/net/thunderx/nicvf_ethdev.h @@ -40,7 +40,6 @@ #define NICVF_RX_OFFLOAD_CAPA ( \ DEV_RX_OFFLOAD_CHECKSUM | \ DEV_RX_OFFLOAD_VLAN_STRIP | \ - DEV_RX_OFFLOAD_CRC_STRIP | \ DEV_RX_OFFLOAD_JUMBO_FRAME | \ DEV_RX_OFFLOAD_SCATTER) diff --git a/drivers/net/vhost/rte_eth_vhost.c b/drivers/net/vhost/rte_eth_vhost.c index e58f32211..aa6052221 100644 --- a/drivers/net/vhost/rte_eth_vhost.c +++ b/drivers/net/vhost/rte_eth_vhost.c @@ -1070,8 +1070,7 @@ eth_dev_info(struct rte_eth_dev *dev, dev_info->tx_offload_capa = DEV_TX_OFFLOAD_MULTI_SEGS | DEV_TX_OFFLOAD_VLAN_INSERT; - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP | - DEV_RX_OFFLOAD_CRC_STRIP; + dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP; } static int diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c index 614357da7..b81df0a99 100644 --- a/drivers/net/virtio/virtio_ethdev.c +++ b/drivers/net/virtio/virtio_ethdev.c @@ -2166,8 +2166,7 @@ virtio_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) dev_info->max_mac_addrs = VIRTIO_MAX_MAC_ADDRS; host_features = VTPCI_OPS(hw)->get_features(hw); - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP | - DEV_RX_OFFLOAD_CRC_STRIP; + dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP; if (host_features & (1ULL << VIRTIO_NET_F_GUEST_CSUM)) { dev_info->rx_offload_capa |= DEV_RX_OFFLOAD_TCP_CKSUM | diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c index 2613cd135..f1596ab19 100644 --- a/drivers/net/vmxnet3/vmxnet3_ethdev.c +++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c @@ -57,8 +57,7 @@ DEV_RX_OFFLOAD_UDP_CKSUM | \ DEV_RX_OFFLOAD_TCP_CKSUM | \ DEV_RX_OFFLOAD_TCP_LRO | \ - DEV_RX_OFFLOAD_JUMBO_FRAME | \ - DEV_RX_OFFLOAD_CRC_STRIP) + DEV_RX_OFFLOAD_JUMBO_FRAME) static int eth_vmxnet3_dev_init(struct rte_eth_dev *eth_dev); static int eth_vmxnet3_dev_uninit(struct rte_eth_dev *eth_dev); diff --git a/examples/bbdev_app/main.c b/examples/bbdev_app/main.c index 045a190b9..d68c06aef 100644 --- a/examples/bbdev_app/main.c +++ b/examples/bbdev_app/main.c @@ -64,7 +64,6 @@ static const struct rte_eth_conf port_conf = { .mq_mode = ETH_MQ_RX_NONE, .max_rx_pkt_len = ETHER_MAX_LEN, .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, diff --git a/examples/bond/main.c b/examples/bond/main.c index 23d0981ab..b282e68ba 100644 --- a/examples/bond/main.c +++ b/examples/bond/main.c @@ -122,7 +122,6 @@ static struct rte_eth_conf port_conf = { .mq_mode = ETH_MQ_RX_NONE, .max_rx_pkt_len = ETHER_MAX_LEN, .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .rx_adv_conf = { .rss_conf = { diff --git a/examples/exception_path/main.c b/examples/exception_path/main.c index 440422bc8..4180a8689 100644 --- a/examples/exception_path/main.c +++ b/examples/exception_path/main.c @@ -87,9 +87,6 @@ /* Options for configuring ethernet port */ static struct rte_eth_conf port_conf = { - .rxmode = { - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, - }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, }, diff --git a/examples/flow_filtering/main.c b/examples/flow_filtering/main.c index ce91e8a6f..b3f85b563 100644 --- a/examples/flow_filtering/main.c +++ b/examples/flow_filtering/main.c @@ -121,7 +121,6 @@ init_port(void) struct rte_eth_conf port_conf = { .rxmode = { .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .offloads = diff --git a/examples/ip_fragmentation/main.c b/examples/ip_fragmentation/main.c index 5306d7672..17a877da2 100644 --- a/examples/ip_fragmentation/main.c +++ b/examples/ip_fragmentation/main.c @@ -141,8 +141,7 @@ static struct rte_eth_conf port_conf = { .max_rx_pkt_len = JUMBO_FRAME_MAX_SIZE, .split_hdr_size = 0, .offloads = (DEV_RX_OFFLOAD_CHECKSUM | - DEV_RX_OFFLOAD_JUMBO_FRAME | - DEV_RX_OFFLOAD_CRC_STRIP), + DEV_RX_OFFLOAD_JUMBO_FRAME), }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, diff --git a/examples/ip_pipeline/link.c b/examples/ip_pipeline/link.c index 392a890fb..787eb866a 100644 --- a/examples/ip_pipeline/link.c +++ b/examples/ip_pipeline/link.c @@ -48,7 +48,6 @@ static struct rte_eth_conf port_conf_default = { .mq_mode = ETH_MQ_RX_NONE, .max_rx_pkt_len = 9000, /* Jumbo frame max packet len */ .split_hdr_size = 0, /* Header split buffer size */ - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .rx_adv_conf = { .rss_conf = { diff --git a/examples/ip_reassembly/main.c b/examples/ip_reassembly/main.c index b830f67a5..17b55d4c7 100644 --- a/examples/ip_reassembly/main.c +++ b/examples/ip_reassembly/main.c @@ -165,8 +165,7 @@ static struct rte_eth_conf port_conf = { .max_rx_pkt_len = JUMBO_FRAME_MAX_SIZE, .split_hdr_size = 0, .offloads = (DEV_RX_OFFLOAD_CHECKSUM | - DEV_RX_OFFLOAD_JUMBO_FRAME | - DEV_RX_OFFLOAD_CRC_STRIP), + DEV_RX_OFFLOAD_JUMBO_FRAME), }, .rx_adv_conf = { .rss_conf = { diff --git a/examples/ipsec-secgw/ipsec-secgw.c b/examples/ipsec-secgw/ipsec-secgw.c index b45b87bde..020424334 100644 --- a/examples/ipsec-secgw/ipsec-secgw.c +++ b/examples/ipsec-secgw/ipsec-secgw.c @@ -197,8 +197,7 @@ static struct rte_eth_conf port_conf = { .mq_mode = ETH_MQ_RX_RSS, .max_rx_pkt_len = ETHER_MAX_LEN, .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CHECKSUM | - DEV_RX_OFFLOAD_CRC_STRIP, + .offloads = DEV_RX_OFFLOAD_CHECKSUM, }, .rx_adv_conf = { .rss_conf = { diff --git a/examples/ipv4_multicast/main.c b/examples/ipv4_multicast/main.c index 331c32e71..6530d4830 100644 --- a/examples/ipv4_multicast/main.c +++ b/examples/ipv4_multicast/main.c @@ -109,8 +109,7 @@ static struct rte_eth_conf port_conf = { .rxmode = { .max_rx_pkt_len = JUMBO_FRAME_MAX_SIZE, .split_hdr_size = 0, - .offloads = (DEV_RX_OFFLOAD_JUMBO_FRAME | - DEV_RX_OFFLOAD_CRC_STRIP), + .offloads = DEV_RX_OFFLOAD_JUMBO_FRAME, }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, diff --git a/examples/kni/main.c b/examples/kni/main.c index 81336087d..80c401c51 100644 --- a/examples/kni/main.c +++ b/examples/kni/main.c @@ -94,9 +94,6 @@ static struct kni_port_params *kni_port_params_array[RTE_MAX_ETHPORTS]; /* Options for configuring ethernet port */ static struct rte_eth_conf port_conf = { - .rxmode = { - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, - }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, }, diff --git a/examples/l2fwd-crypto/main.c b/examples/l2fwd-crypto/main.c index 6061b7511..f12fd266e 100644 --- a/examples/l2fwd-crypto/main.c +++ b/examples/l2fwd-crypto/main.c @@ -213,7 +213,6 @@ static struct rte_eth_conf port_conf = { .mq_mode = ETH_MQ_RX_NONE, .max_rx_pkt_len = ETHER_MAX_LEN, .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, diff --git a/examples/l2fwd-jobstats/main.c b/examples/l2fwd-jobstats/main.c index af5423382..a4d28e178 100644 --- a/examples/l2fwd-jobstats/main.c +++ b/examples/l2fwd-jobstats/main.c @@ -90,7 +90,6 @@ struct rte_eth_dev_tx_buffer *tx_buffer[RTE_MAX_ETHPORTS]; static struct rte_eth_conf port_conf = { .rxmode = { .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, diff --git a/examples/l2fwd-keepalive/main.c b/examples/l2fwd-keepalive/main.c index 2d8b4d1c6..0bf2b5336 100644 --- a/examples/l2fwd-keepalive/main.c +++ b/examples/l2fwd-keepalive/main.c @@ -81,7 +81,6 @@ struct rte_eth_dev_tx_buffer *tx_buffer[RTE_MAX_ETHPORTS]; static struct rte_eth_conf port_conf = { .rxmode = { .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, diff --git a/examples/l2fwd/main.c b/examples/l2fwd/main.c index 9bb4c5bc4..6c23215a5 100644 --- a/examples/l2fwd/main.c +++ b/examples/l2fwd/main.c @@ -82,7 +82,6 @@ static struct rte_eth_dev_tx_buffer *tx_buffer[RTE_MAX_ETHPORTS]; static struct rte_eth_conf port_conf = { .rxmode = { .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, diff --git a/examples/l3fwd-acl/main.c b/examples/l3fwd-acl/main.c index 7c063a8d0..a322ce4f2 100644 --- a/examples/l3fwd-acl/main.c +++ b/examples/l3fwd-acl/main.c @@ -127,8 +127,7 @@ static struct rte_eth_conf port_conf = { .mq_mode = ETH_MQ_RX_RSS, .max_rx_pkt_len = ETHER_MAX_LEN, .split_hdr_size = 0, - .offloads = (DEV_RX_OFFLOAD_CRC_STRIP | - DEV_RX_OFFLOAD_CHECKSUM), + .offloads = DEV_RX_OFFLOAD_CHECKSUM, }, .rx_adv_conf = { .rss_conf = { diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c index d15cd520e..68527d26f 100644 --- a/examples/l3fwd-power/main.c +++ b/examples/l3fwd-power/main.c @@ -180,8 +180,7 @@ static struct rte_eth_conf port_conf = { .mq_mode = ETH_MQ_RX_RSS, .max_rx_pkt_len = ETHER_MAX_LEN, .split_hdr_size = 0, - .offloads = (DEV_RX_OFFLOAD_CRC_STRIP | - DEV_RX_OFFLOAD_CHECKSUM), + .offloads = DEV_RX_OFFLOAD_CHECKSUM, }, .rx_adv_conf = { .rss_conf = { diff --git a/examples/l3fwd-vf/main.c b/examples/l3fwd-vf/main.c index 5edd91a78..41137f978 100644 --- a/examples/l3fwd-vf/main.c +++ b/examples/l3fwd-vf/main.c @@ -161,8 +161,7 @@ static struct rte_eth_conf port_conf = { .mq_mode = ETH_MQ_RX_RSS, .max_rx_pkt_len = ETHER_MAX_LEN, .split_hdr_size = 0, - .offloads = (DEV_RX_OFFLOAD_CRC_STRIP | - DEV_RX_OFFLOAD_CHECKSUM), + .offloads = DEV_RX_OFFLOAD_CHECKSUM, }, .rx_adv_conf = { .rss_conf = { diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c index ab019b9e4..e4b99efe0 100644 --- a/examples/l3fwd/main.c +++ b/examples/l3fwd/main.c @@ -120,8 +120,7 @@ static struct rte_eth_conf port_conf = { .mq_mode = ETH_MQ_RX_RSS, .max_rx_pkt_len = ETHER_MAX_LEN, .split_hdr_size = 0, - .offloads = (DEV_RX_OFFLOAD_CRC_STRIP | - DEV_RX_OFFLOAD_CHECKSUM), + .offloads = DEV_RX_OFFLOAD_CHECKSUM, }, .rx_adv_conf = { .rss_conf = { diff --git a/examples/link_status_interrupt/main.c b/examples/link_status_interrupt/main.c index 3b732076b..f3346d23b 100644 --- a/examples/link_status_interrupt/main.c +++ b/examples/link_status_interrupt/main.c @@ -79,7 +79,6 @@ struct rte_eth_dev_tx_buffer *tx_buffer[RTE_MAX_ETHPORTS]; static struct rte_eth_conf port_conf = { .rxmode = { .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, diff --git a/examples/load_balancer/init.c b/examples/load_balancer/init.c index f2045f235..3ab7d0211 100644 --- a/examples/load_balancer/init.c +++ b/examples/load_balancer/init.c @@ -45,8 +45,7 @@ static struct rte_eth_conf port_conf = { .rxmode = { .mq_mode = ETH_MQ_RX_RSS, .split_hdr_size = 0, - .offloads = (DEV_RX_OFFLOAD_CHECKSUM | - DEV_RX_OFFLOAD_CRC_STRIP), + .offloads = DEV_RX_OFFLOAD_CHECKSUM, }, .rx_adv_conf = { .rss_conf = { diff --git a/examples/multi_process/symmetric_mp/main.c b/examples/multi_process/symmetric_mp/main.c index c6c6a537f..c310e942b 100644 --- a/examples/multi_process/symmetric_mp/main.c +++ b/examples/multi_process/symmetric_mp/main.c @@ -178,8 +178,7 @@ smp_port_init(uint16_t port, struct rte_mempool *mbuf_pool, .rxmode = { .mq_mode = ETH_MQ_RX_RSS, .split_hdr_size = 0, - .offloads = (DEV_RX_OFFLOAD_CHECKSUM | - DEV_RX_OFFLOAD_CRC_STRIP), + .offloads = DEV_RX_OFFLOAD_CHECKSUM, }, .rx_adv_conf = { .rss_conf = { diff --git a/examples/netmap_compat/bridge/bridge.c b/examples/netmap_compat/bridge/bridge.c index 7afca28cd..216e0105a 100644 --- a/examples/netmap_compat/bridge/bridge.c +++ b/examples/netmap_compat/bridge/bridge.c @@ -26,7 +26,6 @@ struct rte_eth_conf eth_conf = { .rxmode = { .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, diff --git a/examples/performance-thread/l3fwd-thread/main.c b/examples/performance-thread/l3fwd-thread/main.c index 5392fcea8..50fd1b00a 100644 --- a/examples/performance-thread/l3fwd-thread/main.c +++ b/examples/performance-thread/l3fwd-thread/main.c @@ -306,8 +306,7 @@ static struct rte_eth_conf port_conf = { .mq_mode = ETH_MQ_RX_RSS, .max_rx_pkt_len = ETHER_MAX_LEN, .split_hdr_size = 0, - .offloads = (DEV_RX_OFFLOAD_CHECKSUM | - DEV_RX_OFFLOAD_CRC_STRIP), + .offloads = DEV_RX_OFFLOAD_CHECKSUM, }, .rx_adv_conf = { .rss_conf = { diff --git a/examples/qos_meter/main.c b/examples/qos_meter/main.c index 5cf4e9dfa..9b0112449 100644 --- a/examples/qos_meter/main.c +++ b/examples/qos_meter/main.c @@ -56,8 +56,7 @@ static struct rte_eth_conf port_conf = { .mq_mode = ETH_MQ_RX_RSS, .max_rx_pkt_len = ETHER_MAX_LEN, .split_hdr_size = 0, - .offloads = (DEV_RX_OFFLOAD_CHECKSUM | - DEV_RX_OFFLOAD_CRC_STRIP), + .offloads = DEV_RX_OFFLOAD_CHECKSUM, }, .rx_adv_conf = { .rss_conf = { diff --git a/examples/qos_sched/init.c b/examples/qos_sched/init.c index 94cbb26f8..37c2b95fd 100644 --- a/examples/qos_sched/init.c +++ b/examples/qos_sched/init.c @@ -59,7 +59,6 @@ static struct rte_eth_conf port_conf = { .rxmode = { .max_rx_pkt_len = ETHER_MAX_LEN, .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .mq_mode = ETH_DCB_NONE, diff --git a/examples/quota_watermark/qw/init.c b/examples/quota_watermark/qw/init.c index 19164385a..5a0f64f45 100644 --- a/examples/quota_watermark/qw/init.c +++ b/examples/quota_watermark/qw/init.c @@ -24,7 +24,6 @@ static struct rte_eth_conf port_conf = { .rxmode = { .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .mq_mode = ETH_DCB_NONE, diff --git a/examples/tep_termination/vxlan_setup.c b/examples/tep_termination/vxlan_setup.c index b99ab97d3..ad7fbe9c6 100644 --- a/examples/tep_termination/vxlan_setup.c +++ b/examples/tep_termination/vxlan_setup.c @@ -69,7 +69,6 @@ uint8_t tep_filter_type[] = {RTE_TUNNEL_FILTER_IMAC_TENID, static struct rte_eth_conf port_conf = { .rxmode = { .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, diff --git a/examples/vhost/main.c b/examples/vhost/main.c index 2175c1186..97d196479 100644 --- a/examples/vhost/main.c +++ b/examples/vhost/main.c @@ -121,8 +121,7 @@ static struct rte_eth_conf vmdq_conf_default = { * this fixes bug of ipv4 forwarding in guest can't * forward pakets from one virtio dev to another virtio dev. */ - .offloads = (DEV_RX_OFFLOAD_CRC_STRIP | - DEV_RX_OFFLOAD_VLAN_STRIP), + .offloads = DEV_RX_OFFLOAD_VLAN_STRIP, }, .txmode = { diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c index 3f8de9341..04ee149f9 100644 --- a/lib/librte_ethdev/rte_ethdev.c +++ b/lib/librte_ethdev/rte_ethdev.c @@ -122,7 +122,6 @@ static const struct { RTE_RX_OFFLOAD_BIT2STR(VLAN_FILTER), RTE_RX_OFFLOAD_BIT2STR(VLAN_EXTEND), RTE_RX_OFFLOAD_BIT2STR(JUMBO_FRAME), - RTE_RX_OFFLOAD_BIT2STR(CRC_STRIP), RTE_RX_OFFLOAD_BIT2STR(SCATTER), RTE_RX_OFFLOAD_BIT2STR(TIMESTAMP), RTE_RX_OFFLOAD_BIT2STR(SECURITY), @@ -1147,14 +1146,6 @@ rte_eth_dev_configure(uint16_t port_id, uint16_t nb_rx_q, uint16_t nb_tx_q, return -EINVAL; } - if ((local_conf.rxmode.offloads & DEV_RX_OFFLOAD_CRC_STRIP) && - (local_conf.rxmode.offloads & DEV_RX_OFFLOAD_KEEP_CRC)) { - RTE_ETHDEV_LOG(ERR, - "Port id=%u not allowed to set both CRC STRIP and KEEP CRC offload flags\n", - port_id); - return -EINVAL; - } - /* Check that device supports requested rss hash functions. */ if ((dev_info.flow_type_rss_offloads | dev_conf->rx_adv_conf.rss_conf.rss_hf) != diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h index fa2812bca..44b4fb33f 100644 --- a/lib/librte_ethdev/rte_ethdev.h +++ b/lib/librte_ethdev/rte_ethdev.h @@ -890,16 +890,11 @@ struct rte_eth_conf { #define DEV_RX_OFFLOAD_VLAN_FILTER 0x00000200 #define DEV_RX_OFFLOAD_VLAN_EXTEND 0x00000400 #define DEV_RX_OFFLOAD_JUMBO_FRAME 0x00000800 -#define DEV_RX_OFFLOAD_CRC_STRIP 0x00001000 #define DEV_RX_OFFLOAD_SCATTER 0x00002000 #define DEV_RX_OFFLOAD_TIMESTAMP 0x00004000 #define DEV_RX_OFFLOAD_SECURITY 0x00008000 - -/** - * Invalid to set both DEV_RX_OFFLOAD_CRC_STRIP and DEV_RX_OFFLOAD_KEEP_CRC - * No DEV_RX_OFFLOAD_CRC_STRIP flag means keep CRC - */ #define DEV_RX_OFFLOAD_KEEP_CRC 0x00010000 + #define DEV_RX_OFFLOAD_CHECKSUM (DEV_RX_OFFLOAD_IPV4_CKSUM | \ DEV_RX_OFFLOAD_UDP_CKSUM | \ DEV_RX_OFFLOAD_TCP_CKSUM) diff --git a/lib/librte_ethdev/rte_ethdev_driver.h b/lib/librte_ethdev/rte_ethdev_driver.h index c6d9bc1a3..f158462a0 100644 --- a/lib/librte_ethdev/rte_ethdev_driver.h +++ b/lib/librte_ethdev/rte_ethdev_driver.h @@ -324,32 +324,6 @@ typedef int (*ethdev_uninit_t)(struct rte_eth_dev *ethdev); int __rte_experimental rte_eth_dev_destroy(struct rte_eth_dev *ethdev, ethdev_uninit_t ethdev_uninit); -/** - * PMD helper function to check if keeping CRC is requested - * - * @note - * When CRC_STRIP offload flag is removed and default behavior switch to - * strip CRC, as planned, this helper function is not that useful and will be - * removed. In PMDs this function will be replaced with check: - * if (offloads & DEV_RX_OFFLOAD_KEEP_CRC) - * - * @param rx_offloads - * offload bits to be applied - * - * @return - * Return positive if keeping CRC is requested, - * zero if stripping CRC is requested - */ -static inline int -rte_eth_dev_must_keep_crc(uint64_t rx_offloads) -{ - if (rx_offloads & DEV_RX_OFFLOAD_CRC_STRIP) - return 0; - - /* no KEEP_CRC or CRC_STRIP offload flags means keep CRC */ - return 1; -} - #ifdef __cplusplus } #endif diff --git a/test/test-pipeline/init.c b/test/test-pipeline/init.c index f33216c90..b75688a87 100644 --- a/test/test-pipeline/init.c +++ b/test/test-pipeline/init.c @@ -70,7 +70,7 @@ struct app_params app = { static struct rte_eth_conf port_conf = { .rxmode = { .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CHECKSUM | DEV_RX_OFFLOAD_CRC_STRIP, + .offloads = DEV_RX_OFFLOAD_CHECKSUM, }, .rx_adv_conf = { .rss_conf = { diff --git a/test/test/test_kni.c b/test/test/test_kni.c index 56c98513a..cf64c0b27 100644 --- a/test/test/test_kni.c +++ b/test/test/test_kni.c @@ -70,9 +70,6 @@ static const struct rte_eth_txconf tx_conf = { }; static const struct rte_eth_conf port_conf = { - .rxmode = { - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, - }, .txmode = { .mq_mode = ETH_DCB_NONE, }, diff --git a/test/test/test_link_bonding_mode4.c b/test/test/test_link_bonding_mode4.c index 9163f6313..e539f078d 100644 --- a/test/test/test_link_bonding_mode4.c +++ b/test/test/test_link_bonding_mode4.c @@ -110,7 +110,6 @@ static struct rte_eth_conf default_pmd_conf = { .mq_mode = ETH_MQ_RX_NONE, .max_rx_pkt_len = ETHER_MAX_LEN, .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, diff --git a/test/test/test_pmd_perf.c b/test/test/test_pmd_perf.c index 4549965fc..f5095c87d 100644 --- a/test/test/test_pmd_perf.c +++ b/test/test/test_pmd_perf.c @@ -65,7 +65,6 @@ static struct rte_eth_conf port_conf = { .mq_mode = ETH_MQ_RX_NONE, .max_rx_pkt_len = ETHER_MAX_LEN, .split_hdr_size = 0, - .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, diff --git a/test/test/virtual_pmd.c b/test/test/virtual_pmd.c index 591b30989..f8ddc2db8 100644 --- a/test/test/virtual_pmd.c +++ b/test/test/virtual_pmd.c @@ -91,7 +91,6 @@ virtual_ethdev_info_get(struct rte_eth_dev *dev __rte_unused, dev_info->max_tx_queues = (uint16_t)512; dev_info->min_rx_bufsize = 0; - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_CRC_STRIP; } static int -- 2.17.1
On 09/04/2018 12:12 PM, Ferruh Yigit wrote:
> diff --git a/drivers/net/vhost/rte_eth_vhost.c b/drivers/net/vhost/rte_eth_vhost.c
> index e58f32211..aa6052221 100644
> --- a/drivers/net/vhost/rte_eth_vhost.c
> +++ b/drivers/net/vhost/rte_eth_vhost.c
> @@ -1070,8 +1070,7 @@ eth_dev_info(struct rte_eth_dev *dev,
>
> dev_info->tx_offload_capa = DEV_TX_OFFLOAD_MULTI_SEGS |
> DEV_TX_OFFLOAD_VLAN_INSERT;
> - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP |
> - DEV_RX_OFFLOAD_CRC_STRIP;
> + dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP;
> }
>
> static int
> diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
> index 614357da7..b81df0a99 100644
> --- a/drivers/net/virtio/virtio_ethdev.c
> +++ b/drivers/net/virtio/virtio_ethdev.c
> @@ -2166,8 +2166,7 @@ virtio_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
> dev_info->max_mac_addrs = VIRTIO_MAX_MAC_ADDRS;
>
> host_features = VTPCI_OPS(hw)->get_features(hw);
> - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP |
> - DEV_RX_OFFLOAD_CRC_STRIP;
> + dev_info->rx_offload_capa = DEV_RX_OFFLOAD_VLAN_STRIP;
> if (host_features & (1ULL << VIRTIO_NET_F_GUEST_CSUM)) {
> dev_info->rx_offload_capa |=
> DEV_RX_OFFLOAD_TCP_CKSUM |
For Vhost & Virtio PMDs:
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Thanks,
Maxime
For szedata2:
Acked-by: Jan Remes <remes@netcope.com>
Thanks, Jan
> --- a/drivers/net/szedata2/rte_eth_szedata2.c
> +++ b/drivers/net/szedata2/rte_eth_szedata2.c
> @@ -1056,8 +1056,7 @@ eth_dev_info(struct rte_eth_dev *dev,
> dev_info->max_rx_queues = internals->max_rx_queues;
> dev_info->max_tx_queues = internals->max_tx_queues;
> dev_info->min_rx_bufsize = 0;
> - dev_info->rx_offload_capa = DEV_RX_OFFLOAD_SCATTER |
> - DEV_RX_OFFLOAD_CRC_STRIP;
> + dev_info->rx_offload_capa = DEV_RX_OFFLOAD_SCATTER;
> dev_info->tx_offload_capa = 0;
> dev_info->rx_queue_offload_capa = 0;
> dev_info->tx_queue_offload_capa = 0;
-----Original Message-----
>
> Removed DEV_RX_OFFLOAD_CRC_STRIP offload flag.
> Without any specific Rx offload flag, default behavior by PMDs is to
> strip CRC.
>
> PMDs that support keeping CRC should advertise DEV_RX_OFFLOAD_KEEP_CRC
> Rx offload capability.
>
> Applications that require keeping CRC should check PMD capability first
> and if it is supported can enable this feature by setting
> DEV_RX_OFFLOAD_KEEP_CRC in Rx offload flag in rte_eth_dev_configure()
>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> Acked-by: Tomasz Duszynski <tdu@semihalf.com>
> ---
> v2:
> * fix flag check
> * add KEEP_CRC flag into "show port cap #"
>
> Note "show port cap #" and
> "show port # [r/t]x_offload capabilities/configuration"
> does same thing, in long term I suggest removing "show port cap" one
For thunderx and octeontx
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
On Tue, Sep 04, 2018 at 11:12:56AM +0100, Ferruh Yigit wrote: > Removed DEV_RX_OFFLOAD_CRC_STRIP offload flag. > Without any specific Rx offload flag, default behavior by PMDs is to > strip CRC. > > PMDs that support keeping CRC should advertise DEV_RX_OFFLOAD_KEEP_CRC > Rx offload capability. > > Applications that require keeping CRC should check PMD capability first > and if it is supported can enable this feature by setting > DEV_RX_OFFLOAD_KEEP_CRC in Rx offload flag in rte_eth_dev_configure() [...] > diff --git a/drivers/net/enic/enic_res.c b/drivers/net/enic/enic_res.c > index 8d493ffed..abe004b24 100644 > --- a/drivers/net/enic/enic_res.c > +++ b/drivers/net/enic/enic_res.c > @@ -195,7 +195,6 @@ int enic_get_vnic_config(struct enic *enic) > enic->rx_offload_capa = > DEV_RX_OFFLOAD_SCATTER | > DEV_RX_OFFLOAD_JUMBO_FRAME | > - DEV_RX_OFFLOAD_CRC_STRIP | > DEV_RX_OFFLOAD_VLAN_STRIP | > DEV_RX_OFFLOAD_IPV4_CKSUM | > DEV_RX_OFFLOAD_UDP_CKSUM | For net/enic. Acked-by: Hyong Youb Kim <hyonkim@cisco.com>
On 9/4/2018 11:02 AM, Shahaf Shuler wrote:
> Tuesday, September 4, 2018 1:13 PM, Ferruh Yigit:
>> Subject: [PATCH v2] ethdev: make default behavior CRC strip on Rx
>>
>> Removed DEV_RX_OFFLOAD_CRC_STRIP offload flag.
>> Without any specific Rx offload flag, default behavior by PMDs is to
>> strip CRC.
>>
>> PMDs that support keeping CRC should advertise
>> DEV_RX_OFFLOAD_KEEP_CRC
>> Rx offload capability.
>>
>> Applications that require keeping CRC should check PMD capability first
>> and if it is supported can enable this feature by setting
>> DEV_RX_OFFLOAD_KEEP_CRC in Rx offload flag in rte_eth_dev_configure()
>>
>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
>> Acked-by: Tomasz Duszynski <tdu@semihalf.com>
>> ---
>> v2:
>> * fix flag check
>> * add KEEP_CRC flag into "show port cap #"
>>
>> Note "show port cap #" and
>> "show port # [r/t]x_offload capabilities/configuration"
>> does same thing, in long term I suggest removing "show port cap" one
>
>
> Acked-by: Shahaf Shuler <shahafs@mellanox.com>
>
Applied to dpdk-next-net/master, thanks.
> -----Original Message-----
> From: Jerin Jacob [mailto:jerin.jacob@caviumnetworks.com]
> Sent: Monday, September 10, 2018 7:35 AM
> To: Ferruh Yigit
> Cc: Wenzhuo Lu; Jingjing Wu; Bernard Iremonger; John McNamara; Marko
> Kovacevic; Qi Zhang; Xiao Wang; Neil Horman; Remy Horton; Ori Kam; Bruce
> Richardson; Pablo de Lara; Radu Nicolau; Akhil Goyal; Tomasz Kantecki; John
> W. Linville; Legacy, Allain; Peters, Matt; Ravi Kumar; Ajit Khaparde; Somnath
> Kotur; Rahul Lakkireddy; Hemant Agrawal; Shreyansh Jain; John Daley; Hyong
> Youb Kim; Gaetan Rivet; Beilei Xing; Konstantin Ananyev; Matan Azrad;
> Shahaf Shuler; Yongseok Koh; Tomasz Duszynski; Dmitri Epshtein; Natalie
> Samsonov; Stephen Hemminger; K. Y. Srinivasan; Haiyang Zhang; Alejandro
> Lucero; Tetsuya Mukawa; Santosh Shukla; Rasesh Mody; Harish Patil; Shahed
> Shaikh; Andrew Rybchenko; Jasvinder Singh; Cristian Dumitrescu; Jan Remes;
> Keith Wiles; Maciej Czekaj; Maxime Coquelin; Tiwei Bie; Zhihong Wang; Yong
> Wang; Amr Mokhtar; Declan Doherty; Chas Williams; David Hunt; Anatoly
> Burakov; Harry van Haaren; Xiaoyun Li; Thomas Monjalon; dev@dpdk.org
> Subject: Re: [PATCH v2] ethdev: make default behavior CRC strip on Rx
>
> -----Original Message-----
> >
> > Removed DEV_RX_OFFLOAD_CRC_STRIP offload flag.
> > Without any specific Rx offload flag, default behavior by PMDs is to
> > strip CRC.
> >
> > PMDs that support keeping CRC should advertise
> DEV_RX_OFFLOAD_KEEP_CRC
> > Rx offload capability.
> >
> > Applications that require keeping CRC should check PMD capability
> > first and if it is supported can enable this feature by setting
> > DEV_RX_OFFLOAD_KEEP_CRC in Rx offload flag in
> rte_eth_dev_configure()
> >
> > Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> > Acked-by: Tomasz Duszynski <tdu@semihalf.com>
> > ---
> > v2:
> > * fix flag check
> > * add KEEP_CRC flag into "show port cap #"
> >
> > Note "show port cap #" and
> > "show port # [r/t]x_offload capabilities/configuration"
> > does same thing, in long term I suggest removing "show port cap" one
>
For AVP devices
Acked-by: Allain Legacy <allain.legacy@windriver.com>
Hello Ferruh,
On Fri, Sep 14, 2018 at 1:37 PM, Ferruh Yigit <ferruh.yigit@intel.com> wrote:
> On 9/4/2018 11:02 AM, Shahaf Shuler wrote:
>> Tuesday, September 4, 2018 1:13 PM, Ferruh Yigit:
>>> Subject: [PATCH v2] ethdev: make default behavior CRC strip on Rx
>>>
>>> Removed DEV_RX_OFFLOAD_CRC_STRIP offload flag.
>>> Without any specific Rx offload flag, default behavior by PMDs is to
>>> strip CRC.
>>>
>>> PMDs that support keeping CRC should advertise
>>> DEV_RX_OFFLOAD_KEEP_CRC
>>> Rx offload capability.
>>>
>>> Applications that require keeping CRC should check PMD capability first
>>> and if it is supported can enable this feature by setting
>>> DEV_RX_OFFLOAD_KEEP_CRC in Rx offload flag in rte_eth_dev_configure()
>>>
>>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
>>> Acked-by: Tomasz Duszynski <tdu@semihalf.com>
>>> ---
>>> v2:
>>> * fix flag check
>>> * add KEEP_CRC flag into "show port cap #"
>>>
>>> Note "show port cap #" and
>>> "show port # [r/t]x_offload capabilities/configuration"
>>> does same thing, in long term I suggest removing "show port cap" one
>>
>>
>> Acked-by: Shahaf Shuler <shahafs@mellanox.com>
>>
>
> Applied to dpdk-next-net/master, thanks.
Should we have a little note about this api change in 18.11 release notes ?
--
David Marchand
On 9/19/2018 8:34 AM, David Marchand wrote:
> Hello Ferruh,
>
> On Fri, Sep 14, 2018 at 1:37 PM, Ferruh Yigit <ferruh.yigit@intel.com> wrote:
>> On 9/4/2018 11:02 AM, Shahaf Shuler wrote:
>>> Tuesday, September 4, 2018 1:13 PM, Ferruh Yigit:
>>>> Subject: [PATCH v2] ethdev: make default behavior CRC strip on Rx
>>>>
>>>> Removed DEV_RX_OFFLOAD_CRC_STRIP offload flag.
>>>> Without any specific Rx offload flag, default behavior by PMDs is to
>>>> strip CRC.
>>>>
>>>> PMDs that support keeping CRC should advertise
>>>> DEV_RX_OFFLOAD_KEEP_CRC
>>>> Rx offload capability.
>>>>
>>>> Applications that require keeping CRC should check PMD capability first
>>>> and if it is supported can enable this feature by setting
>>>> DEV_RX_OFFLOAD_KEEP_CRC in Rx offload flag in rte_eth_dev_configure()
>>>>
>>>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
>>>> Acked-by: Tomasz Duszynski <tdu@semihalf.com>
>>>> ---
>>>> v2:
>>>> * fix flag check
>>>> * add KEEP_CRC flag into "show port cap #"
>>>>
>>>> Note "show port cap #" and
>>>> "show port # [r/t]x_offload capabilities/configuration"
>>>> does same thing, in long term I suggest removing "show port cap" one
>>>
>>>
>>> Acked-by: Shahaf Shuler <shahafs@mellanox.com>
>>>
>>
>> Applied to dpdk-next-net/master, thanks.
>
> Should we have a little note about this api change in 18.11 release notes ?
Right, I will send a patch for it.
24/09/2018 19:31, Ferruh Yigit:
> Document changes done in
> commit 323e7b667f18 ("ethdev: make default behavior CRC strip on Rx")
>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> ---
> --- a/doc/guides/rel_notes/release_18_11.rst
> +++ b/doc/guides/rel_notes/release_18_11.rst
> @@ -112,6 +112,12 @@ API Changes
> +* The default behaviour of CRC strip offload changed. Without any specific Rx
> + offload flag, default behavior by PMD is now to strip CRC.
> + DEV_RX_OFFLOAD_CRC_STRIP offload flag has been removed.
> + To request keeping CRC, application should set ``DEV_RX_OFFLOAD_KEEP_CRC`` Rx
> + offload.
Acked-by: Thomas Monjalon <thomas@monjalon.net>
Thanks
On Mon, Sep 24, 2018 at 7:31 PM, Ferruh Yigit <ferruh.yigit@intel.com> wrote:
> Document changes done in
> commit 323e7b667f18 ("ethdev: make default behavior CRC strip on Rx")
>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> ---
> doc/guides/rel_notes/release_18_11.rst | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/doc/guides/rel_notes/release_18_11.rst b/doc/guides/rel_notes/release_18_11.rst
> index 2f53564a9..41b9cd8d5 100644
> --- a/doc/guides/rel_notes/release_18_11.rst
> +++ b/doc/guides/rel_notes/release_18_11.rst
> @@ -112,6 +112,12 @@ API Changes
> flag the MAC can be properly configured in any case. This is particularly
> important for bonding.
>
> +* The default behaviour of CRC strip offload changed. Without any specific Rx
> + offload flag, default behavior by PMD is now to strip CRC.
> + DEV_RX_OFFLOAD_CRC_STRIP offload flag has been removed.
> + To request keeping CRC, application should set ``DEV_RX_OFFLOAD_KEEP_CRC`` Rx
> + offload.
> +
>
> ABI Changes
> -----------
Reviewed-by: David Marchand <david.marchand@6wind.com>
--
David Marchand
Document changes done in commit 323e7b667f18 ("ethdev: make default behavior CRC strip on Rx") Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> --- doc/guides/rel_notes/release_18_11.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/doc/guides/rel_notes/release_18_11.rst b/doc/guides/rel_notes/release_18_11.rst index 2f53564a9..41b9cd8d5 100644 --- a/doc/guides/rel_notes/release_18_11.rst +++ b/doc/guides/rel_notes/release_18_11.rst @@ -112,6 +112,12 @@ API Changes flag the MAC can be properly configured in any case. This is particularly important for bonding. +* The default behaviour of CRC strip offload changed. Without any specific Rx + offload flag, default behavior by PMD is now to strip CRC. + DEV_RX_OFFLOAD_CRC_STRIP offload flag has been removed. + To request keeping CRC, application should set ``DEV_RX_OFFLOAD_KEEP_CRC`` Rx + offload. + ABI Changes ----------- -- 2.17.1
On 9/24/2018 6:12 PM, David Marchand wrote: > On Mon, Sep 24, 2018 at 7:31 PM, Ferruh Yigit <ferruh.yigit@intel.com> wrote: >> Document changes done in >> commit 323e7b667f18 ("ethdev: make default behavior CRC strip on Rx") >> >> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Thomas Monjalon <thomas@monjalon.net> > Reviewed-by: David Marchand <david.marchand@6wind.com> Applied to dpdk-next-net/master, thanks.