[ovs-discuss] Some questions on ovs

Daniel Tiron dtiron at debian.armed.us
Fri Jan 7 18:31:16 UTC 2011


Thanks for your answer.

> >> Data isn't copied during packet forwarding. If you mirror a port it
> >> copies the packet metadata and adds a reference.
> >
> > So the performance impact should be rather small when a mirror port?
> > I'm really curious what my performance measurements will show. ;-)
> Well the actual impact of mirroring should be small.  However, what
> you do with the packet afterwards can have significant cost.  If
> you're trying to get the packet to userspace, you'll incur a full
> packet copy.

Yes, I have to get the packets into the userspace. But I have to do this
anyway because I need to process the data with a monitoring tool called
vermont [1]. So there's no chance I can keep the data in kernel space
and do my stuff there. The capturing engine in my setup is PF_RING which
*does* a full copy of each skb. I suppose this is the one copy you're
talking about, too?

As I see it, the necessary copy has nothing to do with or without using
a mirror port -> the performance should not differ very much from
capturing from br0 (= configured as mirror) to capturing from tapXX
(without a mirror port)? What would you say?

> Kernels 2.6.36 and newer support registering handlers on a per-device
> basis, which is done in netdev_rx_handler_register() instead of a
> global function pointer.  This avoids conflicts with the bridge.

That sounds good. ;-) I didn't look at the source code yet, but I
suppose the idea is the same as before: Kernel provides a callback-hook
and ovs registers its own handler function, but in this case for each
device separately?

Thank you very much.


[1] http://vermont.berlios.de/

More information about the discuss mailing list