From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id B2EEE5A76 for ; Mon, 26 Oct 2015 13:13:51 +0100 (CET) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga103.jf.intel.com with ESMTP; 26 Oct 2015 05:13:50 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.20,201,1444719600"; d="scan'208";a="671860622" Received: from irsmsx152.ger.corp.intel.com ([163.33.192.66]) by orsmga003.jf.intel.com with ESMTP; 26 Oct 2015 05:13:49 -0700 Received: from irsmsx109.ger.corp.intel.com ([169.254.13.139]) by IRSMSX152.ger.corp.intel.com ([169.254.6.38]) with mapi id 14.03.0248.002; Mon, 26 Oct 2015 12:13:49 +0000 From: "Jastrzebski, MichalX K" To: Matthew Hall , "Kobylinski, MichalX" Thread-Topic: [dpdk-dev] [PATCH v1 0/3] lpm: increase number of next hops for lpm (ipv4) Thread-Index: AQHRDa78BzrexVJCBE2r2F3R8Ks8yp56GPUAgAOYhZA= Date: Mon, 26 Oct 2015 12:13:48 +0000 Message-ID: <60ABE07DBB3A454EB7FAD707B4BB1582139CCC19@IRSMSX109.ger.corp.intel.com> References: <1445608311-8092-1-git-send-email-michalx.k.jastrzebski@intel.com> <20151023162033.GA10036@mhcomputing.net> <562B209A.6030507@mhcomputing.net> In-Reply-To: <562B209A.6030507@mhcomputing.net> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [163.33.239.182] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] [PATCH v1 0/3] lpm: increase number of next hops for lpm (ipv4) 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: Mon, 26 Oct 2015 12:13:52 -0000 > -----Original Message----- > From: Matthew Hall [mailto:mhall@mhcomputing.net] > Sent: Saturday, October 24, 2015 8:10 AM > To: Jastrzebski, MichalX K; Kobylinski, MichalX > Cc: dev@dpdk.org > Subject: Re: [dpdk-dev] [PATCH v1 0/3] lpm: increase number of next hops > for lpm (ipv4) >=20 > On 10/23/15 9:20 AM, Matthew Hall wrote: > > On Fri, Oct 23, 2015 at 03:51:48PM +0200, Michal Jastrzebski wrote: > >> From: Michal Kobylinski > >> > >> The current DPDK implementation for LPM for IPv4 and IPv6 limits the > >> number of next hops to 256, as the next hop ID is an 8-bit long field. > >> Proposed extension increase number of next hops for IPv4 to 2^24 and > >> also allows 32-bits read/write operations. > >> > >> This patchset requires additional change to rte_table library to meet > >> ABI compatibility requirements. A v2 will be sent next week. > > > > I also have a patchset for this. > > > > I will send it out as well so we could compare. > > > > Matthew. >=20 > Sorry about the delay; I only work on DPDK in personal time and not as > part of a job. My patchset is attached to this email. >=20 > One possible advantage with my patchset, compared to others, is that the > space problem is fixed in both IPV4 and in IPV6, to prevent asymmetry > between these two standards, which is something I try to avoid as much > as humanly possible. >=20 > This is because my application code is green-field, so I absolutely > don't want to put any ugly hacks or incompatibilities in this code if I > can possibly avoid it. >=20 > Otherwise, I am not necessarily as expert about rte_lpm as some of the > full-time guys, but I think with four or five of us in the thread > hammering out patches we will be able to create something amazing > together and I am very very very very very happy about this. >=20 > Matthew. Hi Matthew, Thank You for a patch-set. I can't apply patch 0001-... , could You check it please?=20 I have the following error: Checking patch lib/librte_lpm/rte_lpm.h... error: while searching for: #endif /** @internal bitmask with valid and ext_entry/valid_group fields set */ #define RTE_LPM_VALID_EXT_ENTRY_BITMASK 0x0300 /** Bitmask used to indicate successful lookup */ #define RTE_LPM_LOOKUP_SUCCESS 0x0100 #if RTE_BYTE_ORDER =3D=3D RTE_LITTLE_ENDIAN /** @internal Tbl24 entry structure. */ struct rte_lpm_tbl24_entry { /* Stores Next hop or group index (i.e. gindex)into tbl8. */ union { uint8_t next_hop; uint8_t tbl8_gindex; }; /* Using single uint8_t to store 3 values. */ uint8_t valid :1; /**< Validation flag. */ uint8_t ext_entry :1; /**< External entry. */ uint8_t depth :6; /**< Rule depth. */ }; /** @internal Tbl8 entry structure. */ struct rte_lpm_tbl8_entry { uint8_t next_hop; /**< next hop. */ /* Using single uint8_t to store 3 values. */ uint8_t valid :1; /**< Validation flag. */ uint8_t valid_group :1; /**< Group validation flag. */ uint8_t depth :6; /**< Rule depth. */ }; #else struct rte_lpm_tbl24_entry { error: patch failed: lib/librte_lpm/rte_lpm.h:82 error: lib/librte_lpm/rte_lpm.h: patch does not apply Best regards, Michal