TCP Module Complete

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

 



Hi everyone-

I posted a few weeks ago about extracting the TCP code into a loadable
module, in order to facilitate easier debugging and TCP experimentation.
Since it seems that there is no publicly available work on this, I
decided to create it myself.  I have finally finished an initial version
of a custom TCP module.

I have created a transport protocol called TCPSKS to verify my kernel
patches.

If anyone is interested, please contact me and I'd be more than happy to
share it.  I currently have a patch file for 2.4.20.

Summary of how it works:

Basically, to create a TCPSKS socket, a user uses the following call:

  int fd = socket(PF_INET, SOCK_STREAM, 135)  /* whereas, usually the
3rd parameter is usually 0 */


Summary of how it works:

The TCPSKS code is more or less the same as TCP, except it uses its own
slab cache and module counts must be maintained.  All the sysctl
variables have been replicated and are local to my TCP module.  The init
routines are called upon module load, and certain data structures are
destroyed when the module is unloaded.

TCPSKS uses the same network layer as TCP although it is very
straightforward to implement your own network layer.  You could even
implement your own protocol family.  As it stands, there is a little bit
of interdependence in the socket interface implementaiton in af_inet.c
that I have not yet removed, which I plan to do.  However, I have
eliminated the interdependence in the listen system call, by modifying
the protosw structure to include a listen member.  I think this follows
more closely to the BSD implementation anyway.

For sure there may be some bugs, as it has not been exhaustively tested.
But as an initial piece of work, it makes protocol development
significantly easier, reducing the number of required reboots.

Cheers-
Shan

Shan Sinha
Network and Mobile Systems
CSAIL MIT (formerly the Laboratory for Computer Science)
ssinha@mit.edu





 

-
: 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