Crossbow was integrated in Solaris (snv_105) last month and the bits are now available for download.
It opens door to several interesting possibilities. One can now build virtual stack around any service (like HTTP, FTP, NFS etc.), transport protocol or virtual machines (Containers, Xen domUs). Each virtual stack can be assigned priority and bandwidth on a shared NIC without causing performance degradation. It is achieved with Virtual NICs (VNICs) which are built on top of dedicated resources like Rx/Tx rings, DMA channels, kernel queues and threads and CPUS. For detailed designed document, click here.
While the project spanned over couple of years, my first exposure to crossbow was as Summer Intern in 2007. I worked on prototype for implementing VLANs as VNICs. It required moving VLAN processing from DLS to MAC layer thereby simplifying the implementation of GLDv3 framework. Also, now VLANs could be assigned to virtual machines. One could also do bandwidth control and fanout on VLAN interfaces. You can find more details here.
Two semesters, Masters degree and a thesis defense later, I was back at Sun working on Crossbow. Working on this open source project has been fantastic learning experience. The project was nearing integration when I returned. Thus, the primary focus has been on code consolidation for cleaner design and better readability as well as comprehensive testing for uncovering and fixing bugs to deliver a robust product.
It gave me exposure and opportunity to work on various aspects of the products. To name a few:
- Flows: configured on the basis of Layer 3 and/or Layer 4 classification rule. One can associate properties like maximum bandwidth and priority with packets matching the rule.
- Etherstubs: Can be viewed as special VNIC created without any underlying physical NIC. Since it allows us to build VNICs on top of it, one can build arbitrarily complex networks virtually, perform performance analysis and debug on single box.
And needless to say, I learned innumerous nitty-gritties of the implementation and how a world class operating system code is developed.
Project Crossbow's contribution is not just limited to the features it currently supports. It is in fact a framework from which a feature-rich product can be delivered. Several extensions like providing bandwidth guarantees, supporting real time priorities, providing VNIC and flow abstraction over aggregations, supporting Crossbow over non-ethernet clients (e.g. wifi) are in pipeline.
It opens door to several interesting possibilities. One can now build virtual stack around any service (like HTTP, FTP, NFS etc.), transport protocol or virtual machines (Containers, Xen domUs). Each virtual stack can be assigned priority and bandwidth on a shared NIC without causing performance degradation. It is achieved with Virtual NICs (VNICs) which are built on top of dedicated resources like Rx/Tx rings, DMA channels, kernel queues and threads and CPUS. For detailed designed document, click here.
While the project spanned over couple of years, my first exposure to crossbow was as Summer Intern in 2007. I worked on prototype for implementing VLANs as VNICs. It required moving VLAN processing from DLS to MAC layer thereby simplifying the implementation of GLDv3 framework. Also, now VLANs could be assigned to virtual machines. One could also do bandwidth control and fanout on VLAN interfaces. You can find more details here.
Two semesters, Masters degree and a thesis defense later, I was back at Sun working on Crossbow. Working on this open source project has been fantastic learning experience. The project was nearing integration when I returned. Thus, the primary focus has been on code consolidation for cleaner design and better readability as well as comprehensive testing for uncovering and fixing bugs to deliver a robust product.
It gave me exposure and opportunity to work on various aspects of the products. To name a few:
- Flows: configured on the basis of Layer 3 and/or Layer 4 classification rule. One can associate properties like maximum bandwidth and priority with packets matching the rule.
- Etherstubs: Can be viewed as special VNIC created without any underlying physical NIC. Since it allows us to build VNICs on top of it, one can build arbitrarily complex networks virtually, perform performance analysis and debug on single box.
And needless to say, I learned innumerous nitty-gritties of the implementation and how a world class operating system code is developed.
Project Crossbow's contribution is not just limited to the features it currently supports. It is in fact a framework from which a feature-rich product can be delivered. Several extensions like providing bandwidth guarantees, supporting real time priorities, providing VNIC and flow abstraction over aggregations, supporting Crossbow over non-ethernet clients (e.g. wifi) are in pipeline.