Yes, the first option will be easier to implement. For the second option,
yes you are right.  Implementing a dpif provider as Justin suggested is
also be a very good choice.  Really depends on your design goals.


On Mon, Mar 11, 2013 at 12:54 AM, 王国栋 <martin23...@gmail.com> wrote:

> i think the first option may be implemented more easily, in which i just
> implement the datapath kernel module.
> and in the second option, do you means that the whole project can be
> ported to SE mode(including ofproto and vswitch)?
>
>
> 2013/3/10 Andy Zhou <az...@nicira.com>
>
>> If you simply want a faster datapath implementation,  you may want to
>> consider just optimizing the kernel datapath code using OCTEON SDK APIs.
>>
>> As you may already know, most of the SE API are ported the kernel as
>> the base APIs for OCTEON NIC driver.  This approach will allow you to speed
>> up datapath performance by taking advantage of the OCTEON packet
>> parsing and handling capabilities.  Another benefit of this approach is
>> that you can leave user land code unchanged, so can be simpler
>> to implement.
>>
>> A more ambitious attempt can be to port the openvswitch, (userland +
>> datapath) to userland SE. Having both datapath and userland running in the
>> same address space, you may achieve a much higher flow set up rate (cutting
>> out the netlink layer).  By taking advantage of the OCTEON hardware tags,
>> you may end up with an implementation that linearly scale up the
>> performance, taking full advantage of the multi-core capabilities.
>>
>> If you don't mind, please share your final design choice.
>>
>>
>>
>>
>>
>> On Fri, Mar 8, 2013 at 8:59 AM, Justin Pettit <jpet...@nicira.com> wrote:
>>
>>> Using SE, I would imagine you'd implement a datapath there.  In the
>>> Linux core running ovs-vswitchd, I would imagine you'd implement a dpif
>>> provider that that spoke to the datapaths running in your simple executive
>>> cores.
>>>
>>> --Justin
>>>
>>>
>>> On Mar 8, 2013, at 12:16 AM, 王国栋 <martin23...@gmail.com> wrote:
>>>
>>> > In the SE mode, i must implement the datapath module, dpif provider
>>> and dpif as showed in the graph without other module changes, is this right?
>>> > right now i'm on the stage of doing some research and experiments, i
>>> prepare to accelerate OVS. then, maybe used in campus network in  future.
>>> what i want to prove is just the feasibility right now.
>>> > thanks to your answer.
>>> >
>>> > 2013/3/8 Justin Pettit <jpet...@nicira.com>
>>> > Please keep this on the list.
>>> >
>>> > I'm somewhat familiar with Cavium's platforms.  One option would be to
>>> bring up the cores in Linux, and I think you could run the kernel module
>>> essentially unchanged.  Another option, which would be a lot more work but
>>> would almost certainly be faster, is to port dpif to their simple executive
>>> and run the userspace portion on a core running Linux.
>>> >
>>> > I've heard rumors that Cavium ported OVS to their platform, so it may
>>> be worth contacting your rep, too.
>>> >
>>> > What are you looking to do with this port?  What solution are you
>>> looking to provide?
>>> >
>>> > --Justin
>>> >
>>> >
>>> > On Mar 7, 2013, at 11:33 PM, 王国栋 <martin23...@gmail.com> wrote:
>>> >
>>> > > i use the Cavium NP and the kernel is linux2.6. is that means if i
>>> do not have the TCAM, i only can accelerate the exact-match procedure
>>> through the platform?
>>> > > do the datapath kernel module need to change or something while
>>> porting,give me some suggestions please.
>>> > > thanks again!
>>> > >
>>> > > 2013/3/8 Justin Pettit <jpet...@nicira.com>
>>> > > What operating system and platform are you porting it to?  The
>>> ofproto provider pushes flows that have wildcards, and are very similar to
>>> OpenFlow flows.  The dpif provider only pushes exact-match flows.  If you
>>> have access to something like a TCAM that supports priorities and
>>> wildcards, then implementing an ofproto provider would be the way to go.
>>>  If this is pure software, then you probably want to implement a dpif,
>>> since you can do the flow lookups with a hash function, which is much
>>> faster in software.  Most of this should be explained in the PORTING file,
>>> so you may want to take another look at it.
>>> > >
>>> > > --Justin
>>> > >
>>> > >
>>> > > On Mar 7, 2013, at 11:09 PM, 王国栋 <martin23...@gmail.com> wrote:
>>> > >
>>> > > > i have some question about PORTING file. there is a graph in this
>>> file as follow:
>>> > > > <image.png>
>>> > > > now i am willing to port the source code to a network processor
>>> ,which is MIPS arch. my goal is implement the kernel module in the
>>> platform.but i still cannot figure out a clear procedure about it. which
>>> part should i change? and the difference between ofproto provider and dpif
>>> provider is the challenge, can you tell me about it?
>>> > > > thank you in advance!
>>> > > >
>>> > > > regards,
>>> > > >
>>> > > > martin
>>> > > > _______________________________________________
>>> > > > dev mailing list
>>> > > > dev@openvswitch.org
>>> > > > http://openvswitch.org/mailman/listinfo/dev
>>> > >
>>> > >
>>> >
>>> >
>>>
>>> _______________________________________________
>>> dev mailing list
>>> dev@openvswitch.org
>>> http://openvswitch.org/mailman/listinfo/dev
>>>
>>
>>
>
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to