Adding new protocol to linux.

Daniel. danielhilst at gmail.com
Mon Mar 28 17:36:40 EDT 2016


Hey everybody, I see that sockets, protocols and network device
drivers are pieces of a same puzzle. So after some digging and
thinking I'm considering write the driver in such way that it only
deals with data link layer, no socket bits. It should sit at 2nd OSI
layer and let routing and segmenting for the other layers. This way
everything that works with TCP/UDP/IP should work with our little
radio transciver. The one million dollars question remains, how do
this with only 32bytes MTU and as a bonus, how to spread the
communications of several nodes throughout all available channels so
that I have less collisions as possible. The first idea that I have
was using some connection based protocol where, when someone wants to
transfers some N bytes of data, the source makes a request to
destination which choses one avaible channel to be used for the
transfers. The data is transferred through the selected channel and
the connection is closed. The comunication used to open some
"connection" would be done on a "control channel" which should be used
as few as possible, while the realdata is transmitted on *some of*
"data channels". What you guys think?

I'll keep working (as much as my sparse time allows me) to get this up
and running then I think at details, if someone has interest here is
the (not yet finished) code: https://github.com/gkos/nrf24l01p

Cheers

2016-03-28 17:08 GMT-03:00 Rami Rosen <roszenrami at gmail.com>:
> Hi,
> Header files under include/net are for kernel internal use.
> Header files under include/uapi are for exposure to userspace:
> http://lxr.free-electrons.com/source/include/uapi/
>
> Regards,
> Rami Rosen
> http://ramirose.wix.com/ramirosen
>
> בתאריך 28 במרץ 2016 18:04, "Manoj Nayak" <manojnayak2005 at gmail.com> כתב:
>>
>> > 1) Is it possible to write a new protocol for linux with an out of
>> > tree module without modifing socket.h file?
>>
>> I think this has been already tried in the following code.
>>
>> http://lxr.free-electrons.com/source/include/net/bluetooth/bluetooth.h#L36
>>
>> http://lxr.free-electrons.com/source/include/linux/socket.h#L239
>>
>> The challenge is to expose this development specific header file to
>> userspace.
>> The following document talks about that.
>>
>> http://kernelnewbies.org/KernelHeaders
>>
>> Regards
>> Manoj Nayak
>>
>>
>> _______________________________________________
>> Kernelnewbies mailing list
>> Kernelnewbies at kernelnewbies.org
>> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>>
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>



-- 
"Do or do not. There is no try"
  Yoda Master



More information about the Kernelnewbies mailing list