From: Jon M. <jon...@er...> - 2004-03-30 19:30:48
|
I sent this mail to cgl_specs and cgl_discussion. For those of you who are not at these lists... Cheers /jon Hi all, As there has been some questions about the status of TIPC recently, I will give a brief summary here. Large parts of the code has been rewritten over the last months, both to accommodate the Linux kernel community with regards to code style and more, but also to simplify and make it more maintainable in general. The major changes are the following: 1: Code and directory structure. I now looks much more like what you would expect from linux kernel code. The need for continuous support for 2.4, and realizing that the directory structure at SF does not have to be the same as the the one we use for the code to the kernel tree, made me add a couple of subdirectories, however. We will probably need a script to select the correct files for each targeted kernel tree. 2: Basic things such as memory management, lock handling and debug support has been completely rewritten. We now rely entirely on the linux native memory management. We also have a much finer lock granularity than previously, and the debug support has been greatly simplified, still without loosing the good parts of it. 3: The total source code volume (14000 lines) and module size (132 kbyte stripped) has been reduced, and there is potential for more. 4: The API has been rewritten, and is now as conformant to POSIX as I think it can be. We support SOCK_STREAM, SOCK_SEQ_ACKET, SOCK_RDM, SOCK_DGRAM, and connections can be established in two different, compatible ways: a TCP-style setup scheme and the traditional "non-protocol message" TIPC style. There is also a kernel-internal transport API, availabe for drivers, upon which the socket API is implemented. 5: We have modified the protocol header and added the framwork for providing reliable multicast, among other things. We have also added an "unreliable transfer mode" which can be set per socket. This makes it possible tho throw way e.g. tunneled IP-messages during overload (e.g. during DOS-attacks). The functionality for reliable multicast is not complete yet, though. A low-cost socket-to-socket flow control support has also been added. 6: We are also working on an (optional) distributed management functionality, making it possible to interrogate and change configuration setting in TIPC via the /proc file system on on one of the cluster nodes. Despite all these changes I have taken great care to maintain a high degree of code portability, albeit very much on Linux' conditions. Structures and function names (spin_lock_bh, sk_buff etc) used are the Linux ones, but they should be easily remappable to other OS-es by means of a few simple macros, not by changing a lot of source code files. The code is now back to a state where it is working basically on both Linux 2.4 and Linux 2.6. But some parts, such as the management functionality and the SOCK_STREAM interface have not been tested yet. This will be done during April. I have also spent some time on pushing TIPC within IETF. At IETF-59 in Seoul I presented the contents of an Internet draft (http://www.ietf.org/internet-drafts/draft-maloy-tipc-00.txt) where The TIPC features, old and new ones, as well as the protocol are described. The presentation was received with great interest, but a lot remains to be done before IETF will accept it as a standard. Finally: I am planning to announce TIPC at the LKML within short. I would very much appreciate feedback about functionality, code, protocol and anything else that can contribute to make TIPC better. Regards /Jon Maloy This communication is confidential and intended solely for the addressee(s). Any unauthorized review, use, disclosure or distribution is prohibited. If you believe this message has been sent to you in error, please notify the sender by replying to this transmission and delete the message without disclosing it. Thank you. E-mail including attachments is susceptible to data corruption, interruption, unauthorized amendment, tampering and viruses, and we only send and receive e-mails on the basis that we are not liable for any such corruption, interception, amendment, tampering or viruses or any consequences thereof. |