On 9/20/14, 1:10 AM, Scott Feldman wrote:
On Sep 19, 2014, at 8:41 PM, Roopa Prabhu <ro...@cumulusnetworks.com> wrote:
On 9/19/14, 8:49 AM, Jiri Pirko wrote:
Fri, Sep 19, 2014 at 05:25:48PM CEST, j...@mojatatu.com wrote:
On 09/19/14 09:49, Jiri Pirko wrote:
This patch exposes switchdev API using generic Netlink.
Example userspace utility is here:
https://github.com/jpirko/switchdev
Is this just a temporary test tool? Otherwise i dont see reason
for its existence (or the API that it feeds on).
Please read the conversation I had with Pravin and Jesse in v1 thread.
Long story short they like to have the api separated from ovs datapath
so ovs daemon can use it to directly communicate with driver. Also John
Fastabend requested a way to work with driver flows without using ovs ->
that was the original reason I created switchdev genl api.
Regarding the "sw" tool, yes it is for testing purposes now. ovs daemon
will use directly switchdev genl api.
I hope I cleared this out.
We already have all the needed rtnetlink kernel api and userspace tools around
it to support all
switching asic features. ie, the rtnetlink api is the switchdev api. We can do
l2, l3, acl's with it.
Its unclear to me why we need another new netlink api. Which will mean none of
the existing tools to
create bridges etc will work on a switchdev.
Which seems like going in the direction exactly opposite to what we had
discussed earlier.
Existing rtnetlink isn’t available to swdev without some kind of snooping the
echoes from the various kernel components (bridge, fib, etc). With swdev_flow,
as Jiri has defined it, there is an additional conversion needed to bridge the
gap (bad expression, I know) between rtnetlink and swdev_flow. This conversion
happens in the kernel components. For example, the bridge module, still driven
from userspace by existing rtnetlink, will formulate the necessary swdev_flow
insert/remove calls to the swdev driver such that HW will offload the fwd path.
You have:
user -> rtnetlink -> kernel -> netlink echo -> [some process] -> [some
driver] -> HW
Jiri has:
user -> rtnetlink -> kernel -> swdev_* -> swdev driver -> HW
Keeping the goal to not change or not add a new userspace API in mind,
I have :
user -> rtnetlink -> kernel -> ndo_op -> swdev driver -> HW
Jiri has:
user -> genl (newapi) -> kernel -> swdev_* -> swdev driver -> HW
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev