[vbox-dev] Using VirtualBox network drivers

Klaus Espenlaub klaus.espenlaub at oracle.com
Thu Jul 18 09:04:46 PDT 2013

Hi Gary,

On 18.07.2013 17:11, Gary Palter wrote:
> Well, I'm back.
> My client has informed me that the alternatives suggested below aren't
> acceptable.  They want to use the VirtualBox network drivers.  How can I
> use those drivers without creating a VirtualBox VM?  Any pointers to
> documentation or sample code that will show me what I need would be most
> helpful.

See src/VBox/Drivers/Network/Drv{UDPTunnel,VDE}.cpp - these are the 
already existing samples.

There's no standalone SDK for this, so right now there's no pre-canned 
way of building such drivers outside a VirtualBox build.


> Thank you,
>    - Gary Palter
>      Principal Software Engineer
>      Clozure Associates
> On Dec 5, 2012, at 6:59 PM, Ivo Smits <Ivo at UFO-Net.nl
> <mailto: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