[ovs-discuss] Issue: ovs send many packets of a table miss flow to controller

Big Strong fangtuo90 at gmail.com
Fri Mar 17 06:14:52 UTC 2017


Why are buffers usefulness? I thought it is useful  to cache table-missed
packets and transfer the packets after controller's decision. Without it,
the controller has to receive all bytes of the packets and re-inject them
afterwards. Or else the connections may be broken for loss of packets.

2017-03-17 11:54 GMT+08:00 Ben Pfaff <blp at ovn.org>:

> You can change anything in OVS by modifying the source code, so this
> isn't really a surprise.
>
> Buffers aren't very useful, so we've never made them adjustable, and OVS
> 2.7 removes them entirely.
>
> On Fri, Mar 17, 2017 at 10:21:49AM +0800, Big Strong wrote:
> > From the source code I found the way to modify n_buffers by adjusting the
> > PKTBUF_BITS. For example, I can set it to 1024 by setting PKTBUF_BITS to
> > 10.
> > Does the modification have any some side-effects? Why doesn't OVS make it
> > adjustable?
> >
> > /* Buffers are identified by a 32-bit opaque ID.  We divide the ID
> > >  * into a buffer number (low bits) and a cookie (high bits).  The
> buffer
> > > number
> > >  * is an index into an array of buffers.  The cookie distinguishes
> between
> > >  * different packets that have occupied a single buffer.  Thus, the
> more
> > >  * buffers we have, the lower-quality the cookie... */
> > > #define PKTBUF_BITS     8
> > > #define PKTBUF_MASK     (PKTBUF_CNT - 1)
> > > #define PKTBUF_CNT      (1u << PKTBUF_BITS)
> > > #define COOKIE_BITS     (32 - PKTBUF_BITS)
> > > #define COOKIE_MAX      ((1u << COOKIE_BITS) - 1)
> >
> >
> > 2017-03-16 23:07 GMT+08:00 Ben Pfaff <blp at ovn.org>:
> >
> > > OVS sends a packet to the controller if the flow table tells it to do
> > > so.  There's nothing in OpenFlow that restricts this on the basis of a
> > > flow or a response from the controller.
> > >
> > > n_buffers is not adjustable.
> > >
> > > On Thu, Mar 16, 2017 at 10:22:38PM +0800, Big Strong wrote:
> > > > @Ben, does it mean ovs would repeatedly send packet in messages as
> long
> > > as
> > > > no response is got from controller? What will happen when a same
> packet
> > > > comes to ovs while the old packet in message is still not handled?
> > > >
> > > > Another question, is the n_buffers size adjustable using
> > > > ovs-ofctl/ovs-vsctl command? I want a larger n_buffers rather than
> the
> > > > default 256.
> > > >
> > > > Regards.
> > > >
> > > > 2017-03-16 4:54 GMT+08:00 Ben Pfaff <blp at ovn.org>:
> > > >
> > > > > On Wed, Mar 15, 2017 at 01:34:56PM +0800, yiyefuping198425 wrote:
> > > > > > I'm asking for assistance to fix this issue: ovs send many
> packets
> > > of a
> > > > > table miss flow instead of the first packet.
> > > > >
> > > > > That's how OpenFlow works.
> > > > > _______________________________________________
> > > > > discuss mailing list
> > > > > discuss at openvswitch.org
> > > > > https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
> > > > >
> > >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openvswitch.org/pipermail/ovs-discuss/attachments/20170317/b93cd0a0/attachment.html>


More information about the discuss mailing list