1 / 10

Linux Implementation of the TRILL protocol

Linux Implementation of the TRILL protocol. Syed Mohsin Kazmi , Mohsin Sardar , Syed Ali Khayam School of EECS National University of Sciences & Technology (NUST), Pakistan {08beesmmkazmi, mohsin.sardar , ali.khayam }@ seecs.nust.edu.pk. Architectural Design.

vida
Télécharger la présentation

Linux Implementation of the TRILL protocol

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Linux Implementationof the TRILL protocol Syed MohsinKazmi, MohsinSardar, Syed Ali Khayam School of EECS National University of Sciences & Technology (NUST), Pakistan {08beesmmkazmi, mohsin.sardar, ali.khayam}@seecs.nust.edu.pk TRILL for Linux

  2. Architectural Design • The linuxarchitectural design is similar to one, that was used in the OpenSolaris implementation of TRILL • The design has two parts: • Control Plane (Runs as a user space program) • Data Plane ( Implemented in the kernel for fast data packets processing and forwarding ) TRILL for Linux

  3. Design High-level design in Linux is the same as Solaris. brctl trilld Quagga Protocol Suite libbridge libmnl User space I/O (Netlink sockets) Kernel space Control packets (RAW sockets) TRILL Forwarding Encap/decap Abstraction layer from device driver Linux Bridging NIC

  4. Control Plane • For the user space control plane implementation, weleveraged the Quagga protocol suite • The reference implementation in Solaris used AF_TRILL sockets which were not available in Linux.  • We replaced these sockets with:  • 1)  Raw sockets to handle trill control traffic, • 2) Netlinksockets to handle TRILL I/O. TRILL for Linux

  5. Data Plane • We have implemented the data plane in the Linux kernel by adding the following functionalities: • Added five netlink socket types to transport TRILL forwarding information generated by control plane between user space and kernel space modules. • These sockets are written in include/linux/rtnetlink.h file in the Linux kernel. TRILL for Linux

  6. Data Plane • RTM_SETNICK Used to set the calculated forwarding information from user spacecontrol plane to kernel space data path. • RTM_GETNICK Used to get the set nickname of the Rbridge itself from Kernel space foruser space control daemon. • RTM_ADDNICK Used to set the nickname information of the Rbridge itself from user space control plane to kernel space data path. • RTM_TREEROOT Used to set the nickname of the Root Rbridgefrom user space control plane to kernel space data path. • RTM_LISTNICK Used for dumping the forwarding information residing in the kernel for user space command line view through I/O. TRILL for Linux

  7. Data Plane • TRILL forwarding database has been implemented. • Two data structures are used for trill forwarding database. • Structnet_bridge_fdb_entry • Structtrill_nickinfo • We hooked the bridging module to get packets for TRILL. • TRILL protocol related functions (header processing and forwarding) are written in /net/bridge/trill.c TRILL for Linux

  8. Data Plane • TRILL data structures, define types and macros are written in /net/bridge/trill.h • TRILL functions based upon sockets are written in /net/bridge/trill_netlink.c • Data traffic between end nodes of same RBridgehas been handled. TRILL for Linux

  9. Pending Work • The following items are still pending: • Processing and forwarding of TRILL data packets across RBridges. • VLAN support.  • While we have added socket types that can be used to pass forwarding information to user space, these sockets are yet to undergo extensive testing. One can also work on this to provide a forwarding view in the user space. TRILL for Linux

  10. Release Plan • We plan to release the open-source (GPU-licensed) implementation of the Linux TRILL module on github in the next few months—hopefully, by September 2012. • We are actively soliciting help from the TRILL community to meet this deadline. TRILL for Linux

More Related