[vbox-dev] Using VirtualBox network drivers

Gary Palter palter at clozure.com
Wed Dec 12 23:36:37 GMT 2012


Thank you for your suggestions.  I decided to go with the tap device and linux kernel network bridging.  It almost works.

I know this is off topic but I'll ask anyway.  Right now, my emulator can send packets successfully but only receives broadcast packets.  Using wireshark, I find that the bridge is sending packets for the tap device's Ethernet address to the Ethernet interface rather than the tap device.  Has anyone seen such behavior?  Can they recommend what I should look for to fix it?  (For the record, the tap device is created on the fly when the emulator launches.)

Thanks again,

  - Gary Palter
    Principal Software Engineer
    Clozure Associates

On Dec 5, 2012, at 6:59 PM, Ivo Smits <Ivo at UFO-Net.nl> wrote:

> Just a few ideas which are probably somewhat easier:
> - Use libpcap to capture and inject network packets (useable directly 
> from userspace, you will need to handle packet filtering yourself but 
> it's easy)
> - Use a tap device and a linux kernel network bridge (the tap device 
> will work like a real switch port, with some filtering provided by the 
> network bridge)
> - Use VDE (should be easy to use, can connect to host network 
> interfaces, tap devices or act as a NAT gateway)
> 
> Ivo Smits
> 
> Op 5-12-2012 23:17, Gary Palter schreef:
>> I am working on a project for a client which involves migrating a 20+ year old application to Linux.  (All I can say about the application is that it's an emulator for an almost 30 year old computer architecture.)
>> 
>> The guest's operating system is aware that it's running in a virtual machine.  For network access, it communicates with the emulator through a set of queues to send and receive Ethernet packets.  In the original emulator, we attach a packet filter to the Ethernet interface in order to inject packets onto the wire and grab packets intended for the guest.
>> 
>> For the new emulator, we want to use the VirtualBox network drivers to setup a bridged interface.  I've spent several hours reading through the source code and, frankly, I'm lost.
>> 
>> How, exactly, does VirtualBox setup a bridged interface?  (I know that VboxNetFlt driver is involved but I don't know how it's hooked up.)  How is ARP handled?  How would I use the VirtualBox drivers in our emulator, keeping in mind that there's no VBox guest involved?
>> 
>> Thank you for your assistance,
>> 
>>  - Gary Palter
>>    Principal Software Engineer
>>    Clozure Associates





More information about the vbox-dev mailing list