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