From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.tuxdriver.com (charlotte.tuxdriver.com [70.61.120.58]) by dpdk.org (Postfix) with ESMTP id B874AB3B1 for ; Fri, 11 Jul 2014 19:44:40 +0200 (CEST) Received: from uucp by smtp.tuxdriver.com with local-rmail (Exim 4.63) (envelope-from ) id 1X5ese-0004Tp-L1; Fri, 11 Jul 2014 13:45:08 -0400 Received: from linville-x1.hq.tuxdriver.com (localhost.localdomain [127.0.0.1]) by linville-x1.hq.tuxdriver.com (8.14.8/8.14.6) with ESMTP id s6BHehYg031636; Fri, 11 Jul 2014 13:40:43 -0400 Received: (from linville@localhost) by linville-x1.hq.tuxdriver.com (8.14.8/8.14.8/Submit) id s6BHehFZ031635; Fri, 11 Jul 2014 13:40:43 -0400 Date: Fri, 11 Jul 2014 13:40:43 -0400 From: "John W. Linville" To: "Zhou, Danny" Message-ID: <20140711174042.GE25478@tuxdriver.com> References: <1405024369-30058-1-git-send-email-linville@tuxdriver.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] [PATCH] librte_pmd_packet: add PMD for AF_PACKET-based virtual devices X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jul 2014 17:44:41 -0000 On Fri, Jul 11, 2014 at 05:20:42PM +0000, Zhou, Danny wrote: > Looks like you used a pretty new kernel version with new socket options that old kernel like my 3.12 does not support. When I tried this patch, it just cannot build, and compiler complains like below. Which Linux distribution does this patch work for? How to ensure it works for old kernels? > > /home/danny/dpdk.org/dpdk/lib/librte_pmd_packet/rte_eth_packet.c: In function rte_pmd_init_internals: > /home/danny/dpdk.org/dpdk/lib/librte_pmd_packet/rte_eth_packet.c:524:17: error: PACKET_FANOUT_FLAG_ROLLOVER undeclared (first use in this function) > /home/danny/dpdk.org/dpdk/lib/librte_pmd_packet/rte_eth_packet.c:524:17: note: each undeclared identifier is reported only once for each function it appears in > /home/danny/dpdk.org/dpdk/lib/librte_pmd_packet/rte_eth_packet.c:557:33: error: PACKET_QDISC_BYPASS undeclared (first use in this function) Both of them are isolated, so for playing with it you could just comment those out. It looks like PACKET_FANOUT_FLAG_ROLLOVER should have been in 3.10, while PACKET_QDISC_BYPASS didn't show-up until 3.14... /home/linville/git/linux [linville-x1.hq.tuxdriver.com]:> git annotate include/uapi/linux/if_packet.h | grep PACKET_FANOUT_FLAG_ROLLOVER 77f65ebdca506 (Willem de Bruijn 2013-03-19 10:18:11 +0000 64)#define PACKET_FANOUT_FLAG_ROLLOVER 0x1000 /home/linville/git/linux [linville-x1.hq.tuxdriver.com]:> git show -s --format=short 77f65ebdca506 commit 77f65ebdca506870d99bfabe52bde222511022ec Author: Willem de Bruijn packet: packet fanout rollover during socket overload /home/linville/git/linux [linville-x1.hq.tuxdriver.com]:> git describe --contains 77f65ebdca506 v3.10-rc1~66^2~423 /home/linville/git/linux [linville-x1.hq.tuxdriver.com]:> git annotate include/uapi/linux/if_packet.h | grep PACKET_QDISC_BYPASS d346a3fae3ff1 (Daniel Borkmann 2013-12-06 11:36:17 +0100 56)#define PACKET_QDISC_BYPASS 20 /home/linville/git/linux [linville-x1.hq.tuxdriver.com]:> git show -s --format=short d346a3fae3ff1 commit d346a3fae3ff1d99f5d0c819bf86edf9094a26a1 Author: Daniel Borkmann packet: introduce PACKET_QDISC_BYPASS socket option /home/linville/git/linux [linville-x1.hq.tuxdriver.com]:> git describe --contains d346a3fae3ff1 v3.14-rc1~94^2~564 Is there an example of code in DPDK that requires specific kernel versions? What is the preferred method for coding such dependencies? John -- John W. Linville Someday the world will need a hero, and you linville@tuxdriver.com might be all we have. Be ready.