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.yi...@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 <t...@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