Thanks, applied to master.
On Wed, Jan 18, 2017 at 03:12:19PM -0800, Jarno Rajahalme wrote: > Acked-by: Jarno Rajahalme <[email protected]> > > > On Jan 18, 2017, at 2:43 PM, Ben Pfaff <[email protected]> wrote: > > > > We get questions about this sometimes. > > > > Signed-off-by: Ben Pfaff <[email protected]> > > --- > > Documentation/faq/design.rst | 32 ++++++++++++++++++++++++++++++++ > > 1 file changed, 32 insertions(+) > > > > diff --git a/Documentation/faq/design.rst b/Documentation/faq/design.rst > > index 733271d..1778125 100644 > > --- a/Documentation/faq/design.rst > > +++ b/Documentation/faq/design.rst > > @@ -108,3 +108,35 @@ packets? > > For more relevant information on the architecture of Open vSwitch, > > please > > read "The Design and Implementation of Open vSwitch", published in > > USENIX > > NSDI 2015. > > + > > +Q: How many packets does OVS buffer? How do I flush them? > > + > > + A: Open vSwitch fast path packet processing uses a "run to completion" > > + model in which every packet is completely handled in a single pass. > > + Therefore, in the common case where a packet just passes through the > > fast > > + path, Open vSwitch does not buffer packets itself. The operating > > system > > + and the network drivers involved in receiving and later in > > transmitting the > > + packet do often include buffering. Open vSwitch is only a middleman > > + between these and does not have direct access or influence over their > > + buffers. > > + > > + Outside the common case, Open vSwitch does sometimes buffer packets. > > When > > + the OVS fast path processes a packet that does not match any of the > > flows > > + in its megaflow cache, it passes that packet to the Open vSwitch slow > > path. > > + This procedure queues a copy of the packet to the Open vSwitch > > userspace > > + which processes it and, if necessary, passes it back to the kernel > > module. > > + Queuing the packet to userspace as part of this process involves > > buffering. > > + (Going the opposite direction does not, because the kernel actually > > + processes the request synchronously.) A few other exceptional cases > > also > > + queue packets to userspace for processing; most of these are due to > > + OpenFlow actions that the fast path cannot handle and that must > > therefore > > + be handled by the slow path instead. > > + > > + OpenFlow also has a concept of packet buffering. When an OpenFlow > > switch > > + sends a packet to a controller, it may opt to retain a copy of the > > packet > > + in an OpenFlow "packet buffer". Later, if the controller wants to > > tell the > > + switch to forward a copy of that packet, it can refer to the packet > > through > > + its assigned buffer, instead of sending the whole packet back to the > > + switch, thereby saving bandwidth in the OpenFlow control channel. > > Before > > + Open vSwitch 2.7, OVS implemented such buffering; Open vSwitch 2.7 and > > + later do not. > > -- > > 2.10.2 > > > > _______________________________________________ > > dev mailing list > > [email protected] > > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
