Hi, Bill,
        Thanks for your commits!

        I have another question is that Tree Bitmap is a patent algorithm from 
Cisco. The code is 
developed independently with a lot of optimization skills. 
I am not sure if I can submit it to an open source community. 
        
        Thank you again for reply.      
> 在 2016年1月22日,上午7:32,Bill Fischofer <[email protected]> 写道:
> 
> The main criteria for introducing new APIs into ODP is twofold:
> Does this represent an area of general interest for dataplane applications?
> Do these functions lend themselves to HW acceleration?
> For the case of IP lookup the answer to both of these questions is clearly 
> yes, so on that basis they'd be worthwhile to consider.  So I'd encourage you 
> to submit your patches.  They can be submitted as RFCs if they are incomplete 
> and you'd simply like people to be able to review them in more detail to 
> provide feedback.
> 
> In terms of whether these functions would more naturally reside with ODP or 
> with a higher level component like OFP, the acceleration question is key.  
> One of the things ODP is designed to do is to provide application portability 
> across variant approaches to HW acceleration of key APIs.  For example, 
> crypto acceleration is a common feature on many SoCs, however each SoC does 
> this slightly differently.  By having an ODP crypto API these differences can 
> be abstracted into a common portable API that can be efficiently mapped to 
> many different underlying implementations.
> 
> You'd want IP lookup to follow the same model, meaning that the structures 
> that are used to hold and search the tables should not be exposed as part of 
> the API (since that's an aspect of how one might implement these functions) 
> but instead focus on simply defining the functions as the application would 
> see and use them.  The structures themselves would then become the 
> linux-generic SW reference implementation of these APIs, which of course 
> could be done differently on platforms that have access to TCAMs or other HW 
> features useful for accelerating these functions.
> 
> While many ODP applications will want to take advantage of the additional 
> capabilities offered by OFP, IP lookup seems to be a lower-level function 
> that is needed by switching and routing functions that do not require access 
> to a full stack.  If OFP itself has various built-in lookup algorithms needed 
> for its internal use, then it would be interesting to see if they can be 
> folded into lower level ODP APIs that can front-end HW accelerated versions 
> of them on different platforms.   Again, the key distinction is that ODP is 
> the natural place to hold low-level HW abstractions while higher-level 
> components like OFP can abstract higher-level functions of interest to a 
> wider range of applications.
> 
> Bill
> 
> On Thu, Jan 21, 2016 at 8:58 AM, Sorin Vultureanu <[email protected] 
> <mailto:[email protected]>> wrote:
> Hi,
> 
> I think this IP lookup fits better within OpenFastPath Project - OFP.
> www.openfastpath.org <http://www.openfastpath.org/>
> 
> OFP has DIR 1688 (lockless, multicore with linear scalability, very low 
> overhead) and Radix Tree(read/write locks).
> 
> TBM algorithm and Front-End /Back-End architecture are interesting for OFP 
> project L3 forwarding functionality, but we might need to check some details 
> to see if it fits:
> -       multicore, hopefully lockless
> -       the front-end should be available in ODP shared memory
> -       an API between Front-End and Back-End, so that we can have it as SPMC 
> on the shared memory.
> -       ...
> 
> Can you share more light into these details?
> 
> It would be great if you can contribute/integrate this as patches to OFP.
> 
> Kind Regards,
> Sorin
> 
> 
> 
> > -----Original Message-----
> > From: HePeng [mailto:[email protected] <mailto:[email protected]>]
> > Sent: Thursday, January 21, 2016 4:40 AM
> > To: LNG ODP Mailman List <[email protected] 
> > <mailto:[email protected]>>
> > Subject: [lng-odp] Contribute IP lookup code to ODP
> >
> > Hi,
> >     I plan to submit an IP lookup code to ODP. However, this code is a 
> > little bit
> > complex.
> > So I am here asking for some suggestions. (Please view this email using the
> > monospaced font.)
> >
> >     The code is actually an IP lookup architecture, including a "backend" 
> > of all
> > IP lookup algorithms and the "frontend" for each IP lookup algorithm. I
> > made this design because normally the data structure for IP lookup is 
> > usually
> > highly optimized, compressed, containing minimall information for fast
> > lookup. However, a full functional IP lookup engine should support many
> > extra functions rather than just lookup (prefix exist, print all prefix, 
> > ...). One
> > way to do this is to design a "control plane" (large data structure 
> > containing
> > most of query information and can help to incremental update the lookup
> > tree in "dataplane") to do this. The control plane is the backend, while the
> > highly optimized data structure is the dataplane, the front end.
> >
> >
> > +------+     +-----+     +-----+
> > | 1688 | --> | lib | <-- | TBM |
> > +------+     +-----+     +-----+
> >
> >
> >      So the code includes a lib/ for backend, and two algorithms in total 
> > (Tree
> > Bitmap (TBM) and DIR-16-8-8).
> > I am now finishing the lib/ and TBM. I am not sure is that:
> >
> >      1. Is ODP community willing to accept this? or you guys just want a 
> > very
> > simple implementation?
> >      2. Should this code including the IP lookup APIs go to helper/ or main
> > thread?
> >
> >
> >      I've tested the code using 350K prefixes from the core router's FIB. 
> > The
> > backend uses 11MB memory and the front end uses 5MB memory. The TBM
> > algorithms achieves 25MLPS (million lookups for second, 16.9Gbps for 64B
> > packets) on Intel(R) Xeon(R) CPU E5-2609 0 @ 2.40GHz CPU and a very low
> > locality trace dedicated for the FIB. On Random traffic, the code achieves
> > 55MLPS.
> >
> >      Thanks.
> >
> >
> >
> 
> _______________________________________________
> lng-odp mailing list
> [email protected] <mailto:[email protected]>
> https://lists.linaro.org/mailman/listinfo/lng-odp 
> <https://lists.linaro.org/mailman/listinfo/lng-odp>
> 

_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to