All of lore.kernel.org
 help / color / mirror / Atom feed
* Replacing KCP (Kernel Control Path) out-of-tree kernel module with in-kernel module
@ 2016-02-16 14:48 Ferruh Yigit
  2016-02-16 15:06 ` Aaron Conole
  0 siblings, 1 reply; 2+ messages in thread
From: Ferruh Yigit @ 2016-02-16 14:48 UTC (permalink / raw)
  To: dev, stephen, aconole, pmatilai, rolette, christian.ehrhardt


This is continuation of previous mail thread:
	http://dpdk.org/ml/archives/dev/2016-February/032701.html

Since there were no comments, I want to give another try, this can be good opportunity to escape from out-of-kernel Linux module.

First high level important question:
- Do you think will Linux community welcome a network driver that enables/supports userspace network driver?


And let me rephrase what I have in my mind:
- Implement a Linux network driver, that uses rtnetlink, so that userspace applications can create network interfaces.
- This driver implements net_device_ops as a forwarding layer to userspace; using netlink sockets.
- Each userspace network driver has a unique identifier.
- Userspace drivers listens netlink group created by kernel driver.
- An application, or userspace driver itself, attaches userspace driver, by providing its unique id, to the created network interface. This associates network interface to userspace driver.
- After this point userspace driver detects its own id in netlink messages and responds back to the requests.
- Anytime userspace driver can be detached and network interface can be removed by a userspace application.

I believe this can work, but not sure if this worths to the investment because this can be quite some work. Also not sure if this gets accepted by Linux upstream.
I would like to have some support/feedback to undertake something like this.

Any comment is welcome.


Thanks,
ferruh

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Replacing KCP (Kernel Control Path) out-of-tree kernel module with in-kernel module
  2016-02-16 14:48 Replacing KCP (Kernel Control Path) out-of-tree kernel module with in-kernel module Ferruh Yigit
@ 2016-02-16 15:06 ` Aaron Conole
  0 siblings, 0 replies; 2+ messages in thread
From: Aaron Conole @ 2016-02-16 15:06 UTC (permalink / raw)
  To: dev

Hi Ferruh,

Ferruh Yigit <ferruh.yigit@intel.com> writes:
> This is continuation of previous mail thread:
> 	http://dpdk.org/ml/archives/dev/2016-February/032701.html
>
> Since there were no comments, I want to give another try, this can be
> good opportunity to escape from out-of-kernel Linux module.

Awesome! I fully endorse this effort, btw :)

> First high level important question:
> - Do you think will Linux community welcome a network driver that
> enables/supports userspace network driver?
>
> And let me rephrase what I have in my mind:
>
> - Implement a Linux network driver, that uses rtnetlink, so that
> userspace applications can create network interfaces.
> - This driver implements net_device_ops as a forwarding layer to
> userspace; using netlink sockets.

I think a new driver isn't needed. There exists the TUN/TAP driver, so
it might be better to provide a way of implementing a (for lack of
better terms) forwarding layer in that device. There are some things
that I think would make sense for upstream to accept (after all, if
userspace creates this tun/tap device and wants to get involved in the
control side, there are many hoops that need to be jumped). I also think
such an effort could gain some traction upstream.

On the other hand, for most actions there exists already a bunch of APIs
for interacting with TAP/TUN devices for monitoring changes.

If you want more info on what the heck I'm talking about, there's a
project called switchlink which aims to do some kind of switch
management in P4; the library they have uses event listeners and
rtnetlink to know when a device has been added, monitors state, etc. I
think such an approach from the dpdk side would be useful to accomplish
this task.

> - Each userspace network driver has a unique identifier.
> - Userspace drivers listens netlink group created by kernel driver.
> - An application, or userspace driver itself, attaches userspace
> driver, by providing its unique id, to the created network
> interface. This associates network interface to userspace driver.
> - After this point userspace driver detects its own id in netlink
> messages and responds back to the requests.
> - Anytime userspace driver can be detached and network interface can
> be removed by a userspace application.
>
> I believe this can work, but not sure if this worths to the investment
> because this can be quite some work. Also not sure if this gets
> accepted by Linux upstream.

As always, it's the actual code that counts. No amount of pontification
or prognostication changes that.

> I would like to have some support/feedback to undertake something like this.

I am happy to work with you on this effort. I can feed you some of my
old "unpolished" (read hacky proof of concept) patches if you want to
see what I've done in this area. I am currently trying to get some other
stuff cleared off my backlog.

> Any comment is welcome.
>
> Thanks,
> ferruh

-Aaron

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2016-02-16 15:06 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-16 14:48 Replacing KCP (Kernel Control Path) out-of-tree kernel module with in-kernel module Ferruh Yigit
2016-02-16 15:06 ` Aaron Conole

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.