I wonder if it would be better to only print the bridge name when there was a 
mismatch along with a warning.  I'm not a heavy user of "ofproto/trace", so I 
don't have a good sense for which way would be better.

Looks good, though.

--Justin


On Mar 5, 2013, at 4:49 PM, Ben Pfaff <b...@nicira.com> wrote:

> If there is more than one bridge, then it's easy to specify the wrong one
> on an ofproto/trace command.  Previously, this would produce surprising
> results.  With this commit, "ofproto/trace" should silently fix up the
> problem.
> 
> It would be nice to not require the user to specify a bridge at all, but
> it's theoretically possible to have more than one backer, in which case we
> need some way to distinguish, and a bridge name is as good an identifier
> as we have.  We could ask the user to specify the datapath_type, I guess,
> but that's a less familiar name to most users and it would be a somewhat
> gratuitous change in synatx for ofproto/trace.
> 
> Bug #15419.
> Reported-by: Paul Ingram <p...@nicira.com>
> Signed-off-by: Ben Pfaff <b...@nicira.com>
> ---
> ofproto/ofproto-dpif.c |   10 +++++-----
> 1 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c
> index 7035530..1087d72 100644
> --- a/ofproto/ofproto-dpif.c
> +++ b/ofproto/ofproto-dpif.c
> @@ -7626,16 +7626,16 @@ ofproto_unixctl_trace(struct unixctl_conn *conn, int 
> argc, const char *argv[],
>                 goto exit;
>             }
> 
> -            /* XXX: Since we allow the user to specify an ofproto, it's
> -             * possible they will specify a different ofproto than the one 
> the
> -             * port actually belongs too.  Ideally we should simply remove 
> the
> -             * ability to specify the ofproto. */
> +            /* The user might have specified the wrong ofproto but within the
> +             * same backer.  That's OK, ofproto_receive() can find the right
> +             * one for us. */
>             if (ofproto_receive(ofproto->backer, NULL, odp_key.data,
> -                                odp_key.size, &flow, NULL, NULL, NULL,
> +                                odp_key.size, &flow, NULL, &ofproto, NULL,
>                                 &initial_tci)) {
>                 unixctl_command_reply_error(conn, "Invalid flow");
>                 goto exit;
>             }
> +            ds_put_format(&result, "Bridge: %s\n", ofproto->up.name);
>         } else {
>             char *error_s;
> 
> -- 
> 1.7.2.5
> 
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to