Virtual Ethernet and VQManager

One of the interesting issues that I have resolved of late has been making the VQManager work in the Virtual Ethernet environment.

For starters, the VQManager is a sniffing based application that relies on the packet capture functionality of the underlying kernel. Typically the VQManager sniffs ethernet packets, decodes them. The sniffed packet follows the order of Ethernet headers->Ip Headers -> UDP Header -> Payload (SIP/RTP etc.,). But in a Virtual ethernet, this packet format is a bit different.

A Virtual Ethernet, as the name suggests is a virtual interface of the computer. Typical virtualization softwares (like VMware, OpenVZ, Virtuzzo etc.,) provides these options. Ie., the applications are NOT exposed to the 'real' Ethernet but a 'virtual' layer on top of that.

Now, why did this Virtual Ethernet thing create issues with VQManager?

Well, as mentioned earlier, the VQManager expects the packet to be of the order. In a virtual ethernet environment, the Ethernet header is replaced by a Virtual Ethernet header (Linux SLL packets for Linux cases!). So, all the packet decoding (primarily based on the byte counts) goes for a toss with this change. The Virtual Ethernet has a standard 16-byte header and it made things easy to fix. ie., all the VQManager code has to do was to 'skip' these 16 bytes before processing the IP, UDP headers. The fix was made and bingo! the customer is happy to see this working in his environment:-)

Well, there are lots more to share.. Stay tuned..

Comments

Popular posts from this blog

Zoho at 25 - My Journey -- Part 1

Turbulent times

Revenue loss...