[dpdk-dev] [PATCH v8 1/1] net/af_xdp: introduce AF XDP PMD driver

Stephen Hemminger stephen at networkplumber.org
Tue Apr 2 16:58:06 CEST 2019


On Tue,  2 Apr 2019 18:45:54 +0800
Xiaolong Ye <xiaolong.ye at intel.com> wrote:

> +
> +#include <rte_mbuf.h>
> +#include <rte_ethdev_driver.h>
> +#include <rte_ethdev_vdev.h>
> +#include <rte_malloc.h>
> +#include <rte_kvargs.h>
> +#include <rte_bus_vdev.h>
> +#include <rte_string_fns.h>
> +
> +#include <linux/if_ether.h>
> +#include <linux/if_xdp.h>
> +#include <linux/if_link.h>
> +#include <asm/barrier.h>
> +#include <arpa/inet.h>
> +#include <net/if.h>
> +#include <sys/types.h>
> +#include <sys/socket.h>
> +#include <sys/ioctl.h>
> +#include <sys/mman.h>
> +#include <unistd.h>
> +#include <poll.h>
> +#include <bpf/bpf.h>
> +#include <xsk.h>

The ordering here seems surprising. The usual ordering is:

Libc includes:
#include <stdio.h>
...
Sys includes:
#include <sys/types.h>

Linux includes:
#include <linux/if_xdp.h>

DPDK includes:
#include <rte_mbuf.h>


If I run "Include what you use" it has different suggestions.
Some of which you should ignore but overall there are
several good ones.

rte_eth_af_xdp.c should add these lines:
#include <asm/int-ll64.h>           // for __u64
#include <bits/stdint-uintn.h>      // for uint16_t, uint64_t, uint32_t
#include <errno.h>                  // for EINVAL, errno, EAGAIN, ENOMEM, EBUSY
#include <netinet/in.h>             // for IPPROTO_IP
#include <rte_ethdev.h>             // for rte_eth_dev, rte_eth_dev_data
#include <stdlib.h>                 // for strtol
#include <string.h>                 // for NULL, memset, strlen
#include "rte_branch_prediction.h"  // for unlikely
#include "rte_common.h"             // for __rte_unused, RTE_MIN, RTE_PRIORI...
#include "rte_config.h"             // for RTE_PKTMBUF_HEADROOM
#include "rte_dev.h"                // for rte_device, RTE_PMD_REGISTER_PARA...
#include "rte_eal.h"                // for rte_eal_process_type, rte_proc_ty...
#include "rte_ethdev.h"             // for rte_eth_stats, rte_eth_dev_info
#include "rte_ether.h"              // for ETHER_ADDR_LEN, ether_addr
#include "rte_lcore.h"              // for rte_socket_id
#include "rte_log.h"                // for rte_log, RTE_LOG_ERR, RTE_LOG_INFO
#include "rte_memory.h"             // for SOCKET_ID_ANY
#include "rte_memzone.h"            // for rte_memzone_free, RTE_MEMZONE_IOV...
#include "rte_ring.h"               // for rte_ring_free, rte_ring_create
struct rte_mempool;

rte_eth_af_xdp.c should remove these lines:
- #include <arpa/inet.h>  // lines 17-17
- #include <poll.h>  // lines 24-24
- #include <rte_ethdev_vdev.h>  // lines 7-7
- #include <sys/mman.h>  // lines 22-22
- #include <sys/types.h>  // lines 19-19






More information about the dev mailing list