I did a change in the patch while applying. See below: 14/07/2021 11:28, Tudor Cornea: > Some older kernels do not support the PACKET_QDISC_BYPASS socket > option. Such an example is the CentOS 7 kernel (3.10). > > If we only check for the definition of PACKET_QDISC_BYPASS, it might mean > that we will not be able to compile the PMD driver on a newer platform, > and run in on a machine with an older kernel. > > Setting the socket option only if it is specifically requested from > the EAL arguments, allows us to have a way to run the PMD compiled > against newer kernel headers, on platforms having older kernels. > > Signed-off-by: Tudor Cornea <tudor.cor...@keysight.com> > --- > --- a/drivers/net/af_packet/rte_eth_af_packet.c > +++ b/drivers/net/af_packet/rte_eth_af_packet.c > @@ -749,13 +749,15 @@ rte_pmd_init_internals(struct rte_vdev_device *dev, > } > > #if defined(PACKET_QDISC_BYPASS)
I move this #if below... > - rc = setsockopt(qsockfd, SOL_PACKET, PACKET_QDISC_BYPASS, > - &qdisc_bypass, sizeof(qdisc_bypass)); > - if (rc == -1) { > - PMD_LOG_ERRNO(ERR, > - "%s: could not set PACKET_QDISC_BYPASS on > AF_PACKET socket for %s", > - name, pair->value); > - goto error; > + if (qdisc_bypass) { ... here so we can... > + rc = setsockopt(qsockfd, SOL_PACKET, > PACKET_QDISC_BYPASS, > + &qdisc_bypass, sizeof(qdisc_bypass)); > + if (rc == -1) { > + PMD_LOG_ERRNO(ERR, > + "%s: could not set PACKET_QDISC_BYPASS > on AF_PACKET socket for %s", > + name, pair->value); > + goto error; > + } > } > #else > RTE_SET_USED(qdisc_bypass); ... drop this #else