Custom protocol implementation in the linux kernel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

As part of my gradate project, I am trying to implement a new protocol in the linux kernel.  http://www.unm.edu/~zhuwb/work/docs/addProto.htm didn't really work.  Here is what I want to do. If someone can give me some pointers on how to go about doing this or where I can find better pointers, I would really appreciate it.

With the code that I wrote (customized to meet my needs), I am able to send packets, but I don't receive any. I don't know of a way to figure out what is going on.

1) I want to be able to specify a new protocol and send and receive all the packets of that protocol. I want to be able to write raw ethernet frames with just my data (and the ethernet header of course).
2) The protocol is a "broadcast" one, so I don't want to use any specific address, instead I want the message to reach every machine on the LAN segment that I am on.
3) If possible, I want it to be written as a linux module. I also need a couple of syscalls from the user space program to send and receive data. One thing that I thought I could do was have dummy implementations of those two syscalls which do nothing, and then overwrite them with actual implementation when the module is inserted (kind of like what the document above suggests). But with 2.6.X kernels sys_call_table is not exported, so I am unable to do that. Any other ideas to acheive more or less the same would be great.

Thanks and Regards,
binil

-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux