Hi all, Matthew, I think ipv6 lpm code need less changes struct rte_lpm6_tbl_entry { uint32_t next_hop: 21; /**< Next hop / next table to be checked. */ uint32_t depth :8; /**< Rule depth. */
/* Flags. */ uint32_t valid :1; /**< Validation flag. */ uint32_t valid_group :1; /**< Group validation flag. */ uint32_t ext_entry :1; /**< External entry. */ }; there already is 21 bit for next_hop (need chenge only for rte_lpm6_rule) In Stephen approach for next_hop given only 16 bits, this is enough for next hop index, but not enough for AS number that originate prefix. Regards, Vladimir 2015-06-23 9:30 GMT+03:00 Matthew Hall <mhall at mhcomputing.net>: > On Mon, Jun 22, 2015 at 11:51:02PM -0400, Stephen Hemminger wrote: > > In order to make Vyatta/Brocade router work with LPM code > > I ended up redoing the layout. It is: > > > > And also several other scalability improvements (plus IPv6) > > and the correct handling of /32. > > > > Unfortunately, this is such a big binary change that I was > > reluctant to break any tests or applications using existing code > > and therefore never submitted the patches. > > 1. What you and Vladimir have done to this code kicks total ass and will > be a > huge help so I am very excited to squeeze in some cycles somewhere to test > all > of this stuff out ASAP. > > 2. Vladimir's changes were somewhat smaller, but Stephen yours are larger. > Stephen, if you could place them into a cloned copy of DPDK or a branch > somewhere for convenient pickup, I think I could help you make a lot of > progress. > > I could help test these fixes in a second app besides your own to get some > cross validation, and help make the required cleanups, so we could get a > bit > more external validation before we try to negotiate a safe way to merge > them > upstream to Bruce since he is marked as the LPM maintainer. > > My DPDK fork is located here, for example, but it could really be anywhere > you > like to put it which I could access. Or even a one-off zip or tarball with > the > git repo inside and I could host it in my fork or give you access on the > fork > to push it as a second remote if you are OK to do that... > > https://github.com/megahall/dpdk_mhall > > Matthew. >