SR-IOV is not Passthrough (Response to “The Rise of Soft Switching: Part 1″)
Posted: June 20, 2011 Filed under: network virtualization
[Note: I've been working with networking at the virtual edge for over 3 years now, and every time SR-IOV has come up, it has been in the context of passthrough (bypassing the virtual switch). However, Sean Varley of Intel wrote to point out that the two should not be conflated. He further points out the potential benefits that SR-IOV can provide. Rather than try and rehash an already great note, I figured I would just include it here in its entirety. So first, sorry for screwing that up. Mea culpa. Second, thanks to Sean for providing the clarification. And finally, passthrough still sucks ]
I’d like to clarify a technological fact that you may have overlooked in this recent blog post that I think has done a disservice to the SR-IOV technology and partly isn’t even relevant to the point you are trying make with this post.
The fact is essentially this – SR-IOV is NOT a kernel or soft switch bypass technology. I agree that there is a great misperception in the industry that it is only relevant under these circumstances, however, as a specification it merely allows for multiple child functions to be instantiated under a parent function in a standard manner under the PCIe interface. This has much more to do with identifying, associating, and managing NIC partitions than anything else. By erroneously applying this basic functionality to a single specific use case of soft switch bypass, you are pigeon holing it to a small space and perpetuating a significant myth in the industry.
I have attached a single diagram that shows the wide variety of uses for SR-IOV in emulated, local kernel, and even non virtualized environments where SR-IOV is a significant enabling technology. The essence of NIC partitioning is very simple: I want a single big pipe to look like a bunch of smaller pipes. SR-IOV doesn’t do this but it allows a standard interface to be applied to a partition that enables every OS in the industry to recognize and enumerate that partition as an interface to bind whatever service it likes to according to a standard. All other partitioning technologies that exist today (Flex10, vNIC, etc.) are proprietary technologies that actually clutter the market place with vertical, inherently incompatible (amongst vendors) solutions to NIC partitioning.