[ovs-discuss] Question about ports with type=tap

Pino de Candia gdecandia at midokura.com
Tue Nov 15 13:25:26 UTC 2011

Hi Folks, 

Please excuse me for posting this naive question, but I searched online and looked at the source code and haven't figured this out.

What is the difference between a port created with type=internal and type=tap?

It seems to me that if I create a port with type=tap, then OVS creates the tap (makes the ioctl calls to /dev/net/tun) and opens the user-side (raw block-device side) of the tap. But this seems to be exactly what OVS does for internal ports - I read in INSTALL.userspace that a tap is created for every internal port. However, I am using the OVS kernel module so I don't know if that document applies.

Since internal and tap ports are so similar, what are the use-cases for tap-ports for which internal ports are inappropriate?

And just to spell my assumptions out a bit further - it seems to me that in the common use-case of attaching a VM to an OVS bridge, a tap is created externally to OVS (e.g. by scripts or cloud management software) and the tap is added as a system port to OVS so that OVS handles the kernel side of the tap, and the VM gets the user-side of the tap. So VMs are not a use-case for OVS ports of type=tap. Is that correct?

thanks and regards,

Pino de Candia
Software Engineer, Midokura.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://openvswitch.org/pipermail/ovs-discuss/attachments/20111115/2d18b965/attachment.html>

More information about the discuss mailing list