netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Ethernet-over-UDP virtual network interface
@ 2012-03-04 11:30 Mitar
  2012-03-04 12:21 ` Denys Fedoryshchenko
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Mitar @ 2012-03-04 11:30 UTC (permalink / raw)
  To: netdev; +Cc: Nejc Skoberne, Jernej Kos, gw.2012

Hi!

At community wireless network wlan slovenija (http://dev.wlan-si.net/)
we have been using OpenVPN tunnels to connect our WiFi nodes together
over existing Internet infrastructure. After some time of using it we
have discovered throughput problems using a user-land tunneling
solution on those small/consumer Wifi router hardware. Because of the
context switches we cannot get more than 5 Mbit/s even with disabled
encryption. (And as we have a lot of fiber here, it really makes
uplinks unused a lot.)

We found out that we need a really light-weight tunneling solution,
but on a L2 level. The idea is to have a simple encryption-less,
state-less, and session-less L2 tunneling. Some kind of
Ethernet-over-UDP type of virtual interface where we could configure
multiple peer IP address and virtual interface would work as a simple
switch, only instead of cables, it would send packets encapsulated in
UDP (EoIP is not good because many consumer routers do not allow
non-TCP/UDP packets to get through). No session handling, nothing.
Simply, any packets it gets in it is send (based on auto-learned MAC
addresses) to the destination IP address in the UDP packet. On the
other side decapsulated packet is simply output of the virtual
interface there.

I have searched around and have not found anything which would work
like this. Have I missed something? If not, I have decided to write
our own kernel module for this, but first I would like to hear some
feedback from others. Would anybody be interested in developing it
with me or at mentoring me (it would be my first kernel module)?

I have found this code:

https://lwn.net/Articles/199120/

and was planning to use it as a basis, but use UDP for communication.
What is a proper way to do UDP communication from a kernel module?

Best regards and thank you all for the great work you are doing on Linux


Mitar

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

end of thread, other threads:[~2012-03-11  3:08 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-04 11:30 Ethernet-over-UDP virtual network interface Mitar
2012-03-04 12:21 ` Denys Fedoryshchenko
2012-03-04 13:58   ` Mitar
2012-03-04 16:24 ` Emanuil Hristov
2012-03-04 17:01 ` Benjamin LaHaise
2012-03-05 23:58   ` Mitar
2012-03-08 16:11     ` Benjamin LaHaise
2012-03-10 16:31       ` Mitar
2012-03-10 17:06         ` Benjamin LaHaise
2012-03-11  3:08           ` Mitar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).