[ovs-dev] [PATCH 4/4] ovs-controller: Improve QoS abilities.

Ben Pfaff blp at nicira.com
Fri Oct 1 20:41:24 UTC 2010


On Wed, Sep 29, 2010 at 04:40:01PM -0700, Justin Pettit wrote:
> On Sep 23, 2010, at 3:05 PM, Ben Pfaff wrote:
> 
> > +    /* Queue distribution. */
> > +    uint32_t default_queue;     /* Default OpenFlow queue, or UINT32_MAX. */
> > +    struct hmap queue_numbers;  /* Map from port number to queue ID. */
> 
> Isn't this really a map from port number to lswitch_port, which is
> being used to determine the queue ID?

OK, I changed the comment to read "to lswitch_port".

> > @@ -247,8 +281,28 @@ process_switch_features(struct lswitch *sw, struct rconn *rconn OVS_UNUSED,
> >                         void *osf_)
> 
> Since queue configuration is based on name, do you think it's
> worthwhile to be a bit more dynamic about handling physical port
> changes.  For example, it would be pretty trivial to send an
> OFPT_FEATURES_REQUEST message anytime we get an OFPT_PORT_STATUS
> message that adds a port.  (Saying this is a dumb controller and the
> switch should be statically configured is a perfectly reasonable
> answer, too, though.  :-) )

I think I'll leave this as an exercise to the reader.

> > --- a/utilities/ovs-controller.8.in
> > +++ b/utilities/ovs-controller.8.in
> 
> In general, did you want to escape the hyphen in "port-name" and
> "queue-id" below?

Not really.  They're not literal syntax, they're just text, so I don't
think it's necessary.

> > @@ -98,7 +98,26 @@ sending packets and setting up flows.  Use one of these options,
> > supplying \fIid\fR as an OpenFlow queue ID as a decimal number, to
> > instead use that specific queue.
> > .IP
> > -This option may be useful for debugging quality of service setups.
> > +This option is incompatible with \fB\-N\fR or \fB\-\-normal\fR and
> > +with \fB\-H\fR or \fB\-\-hub\fR.  If more than one is specified then
> > +this option takes precedence.
> > +.IP
> > +This option may be useful for testing or debugging quality of service
> > +setups.
> > +.
> > +.IP "\fB\-Q \fIport-name\fB:\fIqueue-id\fR"
> > +.IP "\fB\-\-port\-queue \fIport-name\fB:\fIqueue-id\fR"
> > +Configures packets received on the port named \fIport-name\fR
> > +(e.g. \fBeth0\fR) to be output on OpenFlow queue ID \fIqueue-id\fR
> > +(specified as a decimal number).  This option overrides the default
> > +specified on \fB\-q\fR or \fB\-\-queue\fR.
> 
> It might be nice to say that it only overrides the default for the
> specified port.

OK, done.

> > +.IP
> > +This option is incompatible with \fB\-N\fR or \fB\-\-normal\fR and
> > +with \fB\-H\fR or \fB\-\-hub\fR.  If more than one is specified then
> > +this option takes precedence.
> > +.IP
> > +This option may be useful for testing or debugging quality of service
> > +setups.
> 
> It may be useful to explicitly mention that the "-Q" option can be
> specified multiple times for different ports.

Good point, done.

> > @@ -270,6 +276,23 @@ read_flow_file(const char *name)
> > }
> > 
> > static void
> > +add_port_queue(char *s)
> > +{
> > ...
> > +        ovs_fatal(0, "argument to -Q or --port-queue should take the form "
> > +                  "\"<port>:<queue id>\"");
> 
> How about "port-name" and "queue-id" to be consistent with the man page?

Done, thanks.

> > +    }
> > +
> > +    shash_add(&port_queues, port_name, (void *) (uintptr_t) atoi(queue_id));
> 
> Do you think it's worth notifying the user if they attempt to add the
> same port_name twice?

Good idea, done.

> > static void
> > @@ -398,7 +440,7 @@ usage(void)
> >            "  -H, --hub               act as hub instead of learning switch\n"
> >            "  -n, --noflow            pass traffic, but don't add flows\n"
> >            "  --max-idle=SECS         max idle time for new flows\n"
> > -           "  -N, --normal            use OFPAT_NORMAL action\n"
> > +           "  -N, --normal            use OFPP_NORMAL action\n"
> >            "  -w, --wildcard          use wildcards, not exact-match rules\n"
> >            "  -q, --queue=QUEUE       OpenFlow queue ID to use for output\n"
> >            "  --with-flows FILE       use the flows from FILE\n"
> 
> Did you want to add a "-Q, --port-queue" usage description?

Good idea, thanks.




More information about the dev mailing list