From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by dpdk.space (Postfix) with ESMTP id D48D9A0679
	for <public@inbox.dpdk.org>; Tue,  2 Apr 2019 16:58:13 +0200 (CEST)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id 83C404C8D;
	Tue,  2 Apr 2019 16:58:13 +0200 (CEST)
Received: from mail-pg1-f193.google.com (mail-pg1-f193.google.com
 [209.85.215.193]) by dpdk.org (Postfix) with ESMTP id E43863798
 for <dev@dpdk.org>; Tue,  2 Apr 2019 16:58:12 +0200 (CEST)
Received: by mail-pg1-f193.google.com with SMTP id f6so6696892pgs.8
 for <dev@dpdk.org>; Tue, 02 Apr 2019 07:58:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=networkplumber-org.20150623.gappssmtp.com; s=20150623;
 h=date:from:to:cc:subject:message-id:in-reply-to:references
 :mime-version:content-transfer-encoding;
 bh=QAoZXiZ+4ousvnJ8cwrkKCIA1Dlh+Hi+kOIDNEQT8Ew=;
 b=tinplpXEqWsOMNOw71+gHnSsiFxjs+LsxFJOSADRo2o+T2jSA0BJc9oZLpRcUVGFXs
 MVflHh4Qu/TvnDmiO0eQfIyYYMin3aHuGW2upVH46FYxGPE+iAafNjmKwsxIy0ctKdsj
 fTnhTHxnIJumLD+OzO5UVIBOdXZec+ux7r85jVlKojTQcB1sJ7yVuMcqEaCf3amHz32s
 q/vqdx96iJ18E+6dTAdGZy+c9fXdRjmdqtvxbUXxd7mG8Fc0Hrr0JOqDQRV9KATqbCFT
 0OBljgxoypoeZ9+TqLzW5vmYY649VKej0V9hEzVO9z2wrviNuQO5EnG6A8AElZAmqLLz
 dpgg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:date:from:to:cc:subject:message-id:in-reply-to
 :references:mime-version:content-transfer-encoding;
 bh=QAoZXiZ+4ousvnJ8cwrkKCIA1Dlh+Hi+kOIDNEQT8Ew=;
 b=Ds1qSBP4yO60SOCpPmyf4h7ATsNsGjyb+3vxeLBODFTqGC30i0OZNtIByDATVzCslA
 eGBAzwT1+PppwyhLLdSQBjSlAtDr+oPG1YewlsVSNOLvISjTs3oD9DICTQFwL2ER4ycm
 NjmILXXTr+vXONYSPCaITospbRJFcRDv5o7a3lTgIK+ztVMNfRyIkI0qrujMZijY5k+f
 8il48+BRWiUzcwmElJR4gnUSc/Pk0zsvpij1GwyVYr0yBEcui4Z9B9ryVp1FQFDRfblD
 iCQ+GmSUzm4PxaYMG+UzmAnV+hZdntNfkf6u/zlCQWPHhlDh+Gl88Ei7FNha0ld85Hil
 tcMw==
X-Gm-Message-State: APjAAAV8jrI9HG+se/CqTY0ceJrXUbAzEZvW3pAeGh1bWjM8zm5/6dYb
 SvVtilXtkqjj3ih9tXI76hVKJA==
X-Google-Smtp-Source: APXvYqwAeeCT4a7xv58ZO2ndLppmW+agK9Lifh6ypPOXyLKpbBe4t842/zjEH3WaSpRK2cJgBOK1nw==
X-Received: by 2002:a63:f448:: with SMTP id p8mr22206773pgk.50.1554217092048; 
 Tue, 02 Apr 2019 07:58:12 -0700 (PDT)
Received: from shemminger-XPS-13-9360 (204-195-22-127.wavecable.com.
 [204.195.22.127])
 by smtp.gmail.com with ESMTPSA id o89sm26020442pfi.178.2019.04.02.07.58.11
 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);
 Tue, 02 Apr 2019 07:58:11 -0700 (PDT)
Date: Tue, 2 Apr 2019 07:58:06 -0700
From: Stephen Hemminger <stephen@networkplumber.org>
To: Xiaolong Ye <xiaolong.ye@intel.com>
Cc: dev@dpdk.org, David Marchand <david.marchand@redhat.com>, Andrew
 Rybchenko <arybchenko@solarflare.com>, Olivier Matz
 <olivier.matz@6wind.com>, Qi Zhang <qi.z.zhang@intel.com>, Karlsson Magnus
 <magnus.karlsson@intel.com>, Topel Bjorn <bjorn.topel@intel.com>, Maxime
 Coquelin <maxime.coquelin@redhat.com>, Ferruh Yigit
 <ferruh.yigit@intel.com>, Luca Boccassi <bluca@debian.org>, Bruce
 Richardson <bruce.richardson@intel.com>, Ananyev Konstantin
 <konstantin.ananyev@intel.com>
Message-ID: <20190402075806.7523ad34@shemminger-XPS-13-9360>
In-Reply-To: <20190402104554.110516-2-xiaolong.ye@intel.com>
References: <20190301080947.91086-1-xiaolong.ye@intel.com>
 <20190402104554.110516-1-xiaolong.ye@intel.com>
 <20190402104554.110516-2-xiaolong.ye@intel.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Subject: Re: [dpdk-dev] [PATCH v8 1/1] net/af_xdp: introduce AF XDP PMD
	driver
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>
Message-ID: <20190402145806.mvj4ijM-29cVzNhnW83A4yBF49qC4BrKStaeKvUxkrk@z>

On Tue,  2 Apr 2019 18:45:54 +0800
Xiaolong Ye <xiaolong.ye@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