[ovs-dev] [bug 14265 1/3] vconn: Fix parameters for vconn_open(), vconn_open_block(), pvconn_open().

Ben Pfaff blp at nicira.com
Fri Jan 4 17:07:35 UTC 2013


Thanks, applied to master.

On Thu, Jan 03, 2013 at 04:41:33PM -0800, Ethan Jackson wrote:
> This has annoyed me for a while too.  Thanks.
> 
> Acked-by: Ethan Jackson <ethan at nicira.com>
> 
> 
> On Wed, Jan 2, 2013 at 5:10 PM, Ben Pfaff <blp at nicira.com> wrote:
> 
> > The customary parameter order in Open vSwitch is to put input parameters
> > before output parameters, but vconn_open() and pvconn_open() had the 'dscp'
> > input parameter at the end, which bugged me a bit.  Also,
> > vconn_open_block() didn't take a 'dscp' parameter at all even though it's
> > otherwise a wrapper around vconn_open().  This commit fixes all that up.
> >
> > Signed-off-by: Ben Pfaff <blp at nicira.com>
> > ---
> >  lib/rconn.c                |    6 +++---
> >  lib/vconn.c                |   14 +++++++-------
> >  lib/vconn.h                |   10 +++++-----
> >  ofproto/connmgr.c          |    6 +++---
> >  tests/test-vconn.c         |   10 +++++-----
> >  utilities/ovs-controller.c |    8 ++++----
> >  utilities/ovs-ofctl.c      |    9 +++++----
> >  7 files changed, 32 insertions(+), 31 deletions(-)
> >
> > diff --git a/lib/rconn.c b/lib/rconn.c
> > index c9163c5..7a2bcf5 100644
> > --- a/lib/rconn.c
> > +++ b/lib/rconn.c
> > @@ -1,5 +1,5 @@
> >  /*
> > - * Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira, Inc.
> > + * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013 Nicira, Inc.
> >   *
> >   * Licensed under the Apache License, Version 2.0 (the "License");
> >   * you may not use this file except in compliance with the License.
> > @@ -370,8 +370,8 @@ reconnect(struct rconn *rc)
> >          VLOG_INFO("%s: connecting...", rc->name);
> >      }
> >      rc->n_attempted_connections++;
> > -    retval = vconn_open(rc->target, rc->allowed_versions,
> > -                        &rc->vconn, rc->dscp);
> > +    retval = vconn_open(rc->target, rc->allowed_versions, rc->dscp,
> > +                        &rc->vconn);
> >      if (!retval) {
> >          rc->remote_ip = vconn_get_remote_ip(rc->vconn);
> >          rc->local_ip = vconn_get_local_ip(rc->vconn);
> > diff --git a/lib/vconn.c b/lib/vconn.c
> > index 4e92834..a3792ec 100644
> > --- a/lib/vconn.c
> > +++ b/lib/vconn.c
> > @@ -1,5 +1,5 @@
> >  /*
> > - * Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira, Inc.
> > + * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013 Nicira, Inc.
> >   *
> >   * Licensed under the Apache License, Version 2.0 (the "License");
> >   * you may not use this file except in compliance with the License.
> > @@ -223,8 +223,8 @@ vconn_verify_name(const char *name)
> >   * stores a pointer to the new connection in '*vconnp', otherwise a null
> >   * pointer.  */
> >  int
> > -vconn_open(const char *name, uint32_t allowed_versions,
> > -           struct vconn **vconnp, uint8_t dscp)
> > +vconn_open(const char *name, uint32_t allowed_versions, uint8_t dscp,
> > +           struct vconn **vconnp)
> >  {
> >      struct vconn_class *class;
> >      struct vconn *vconn;
> > @@ -295,7 +295,7 @@ vconn_run_wait(struct vconn *vconn)
> >  }
> >
> >  int
> > -vconn_open_block(const char *name, uint32_t allowed_versions,
> > +vconn_open_block(const char *name, uint32_t allowed_versions, uint8_t
> > dscp,
> >                   struct vconn **vconnp)
> >  {
> >      struct vconn *vconn;
> > @@ -303,7 +303,7 @@ vconn_open_block(const char *name, uint32_t
> > allowed_versions,
> >
> >      fatal_signal_run();
> >
> > -    error = vconn_open(name, allowed_versions, &vconn, DSCP_DEFAULT);
> > +    error = vconn_open(name, allowed_versions, dscp, &vconn);
> >      if (!error) {
> >          error = vconn_connect_block(vconn);
> >      }
> > @@ -986,8 +986,8 @@ pvconn_verify_name(const char *name)
> >   * stores a pointer to the new connection in '*pvconnp', otherwise a null
> >   * pointer.  */
> >  int
> > -pvconn_open(const char *name, uint32_t allowed_versions,
> > -            struct pvconn **pvconnp, uint8_t dscp)
> > +pvconn_open(const char *name, uint32_t allowed_versions, uint8_t dscp,
> > +            struct pvconn **pvconnp)
> >  {
> >      struct pvconn_class *class;
> >      struct pvconn *pvconn;
> > diff --git a/lib/vconn.h b/lib/vconn.h
> > index 3f69a51..81bdcc9 100644
> > --- a/lib/vconn.h
> > +++ b/lib/vconn.h
> > @@ -34,8 +34,8 @@ void vconn_usage(bool active, bool passive, bool
> > bootstrap);
> >
> >  /* Active vconns: virtual connections to OpenFlow devices. */
> >  int vconn_verify_name(const char *name);
> > -int vconn_open(const char *name, uint32_t allowed_versions,
> > -               struct vconn **vconnp, uint8_t dscp);
> > +int vconn_open(const char *name, uint32_t allowed_versions, uint8_t dscp,
> > +               struct vconn **vconnp);
> >  void vconn_close(struct vconn *);
> >  const char *vconn_get_name(const struct vconn *);
> >  uint32_t vconn_get_allowed_versions(const struct vconn *vconn);
> > @@ -58,7 +58,7 @@ int vconn_transact_multiple_noreply(struct vconn *,
> > struct list *requests,
> >  void vconn_run(struct vconn *);
> >  void vconn_run_wait(struct vconn *);
> >
> > -int vconn_open_block(const char *name, uint32_t allowed_versions,
> > +int vconn_open_block(const char *name, uint32_t allowed_versions, uint8_t
> > dscp,
> >                       struct vconn **);
> >  int vconn_connect_block(struct vconn *);
> >  int vconn_send_block(struct vconn *, struct ofpbuf *);
> > @@ -76,8 +76,8 @@ void vconn_send_wait(struct vconn *);
> >
> >  /* Passive vconns: virtual listeners for incoming OpenFlow connections. */
> >  int pvconn_verify_name(const char *name);
> > -int pvconn_open(const char *name, uint32_t allowed_versions,
> > -                struct pvconn **pvconnp, uint8_t dscp);
> > +int pvconn_open(const char *name, uint32_t allowed_versions, uint8_t dscp,
> > +                struct pvconn **pvconnp);
> >  const char *pvconn_get_name(const struct pvconn *);
> >  void pvconn_close(struct pvconn *);
> >  int pvconn_accept(struct pvconn *, struct vconn **);
> > diff --git a/ofproto/connmgr.c b/ofproto/connmgr.c
> > index 2dc5249..1dc9082 100644
> > --- a/ofproto/connmgr.c
> > +++ b/ofproto/connmgr.c
> > @@ -1,5 +1,5 @@
> >  /*
> > - * Copyright (c) 2009, 2010, 2011, 2012 Nicira, Inc.
> > + * Copyright (c) 2009, 2010, 2011, 2012, 2013 Nicira, Inc.
> >   *
> >   * Licensed under the Apache License, Version 2.0 (the "License");
> >   * you may not use this file except in compliance with the License.
> > @@ -753,7 +753,7 @@ set_pvconns(struct pvconn ***pvconnsp, size_t
> > *n_pvconnsp,
> >      SSET_FOR_EACH (name, sset) {
> >          struct pvconn *pvconn;
> >          int error;
> > -        error = pvconn_open(name, 0, &pvconn, 0);
> > +        error = pvconn_open(name, 0, 0, &pvconn);
> >          if (!error) {
> >              pvconns[n_pvconns++] = pvconn;
> >          } else {
> > @@ -1690,7 +1690,7 @@ ofservice_create(struct connmgr *mgr, const char
> > *target,
> >      struct pvconn *pvconn;
> >      int error;
> >
> > -    error = pvconn_open(target, allowed_versions, &pvconn, dscp);
> > +    error = pvconn_open(target, allowed_versions, dscp, &pvconn);
> >      if (error) {
> >          return error;
> >      }
> > diff --git a/tests/test-vconn.c b/tests/test-vconn.c
> > index 11ff492..1e4e787 100644
> > --- a/tests/test-vconn.c
> > +++ b/tests/test-vconn.c
> > @@ -1,5 +1,5 @@
> >  /*
> > - * Copyright (c) 2009, 2010, 2011, 2012 Nicira, Inc.
> > + * Copyright (c) 2009, 2010, 2011, 2012, 2013 Nicira, Inc.
> >   *
> >   * Licensed under the Apache License, Version 2.0 (the "License");
> >   * you may not use this file except in compliance with the License.
> > @@ -148,7 +148,7 @@ test_refuse_connection(int argc OVS_UNUSED, char
> > *argv[])
> >      int error;
> >
> >      fpv_create(type, &fpv);
> > -    CHECK_ERRNO(vconn_open(fpv.vconn_name, 0, &vconn, DSCP_DEFAULT), 0);
> > +    CHECK_ERRNO(vconn_open(fpv.vconn_name, 0, DSCP_DEFAULT, &vconn), 0);
> >      fpv_close(&fpv);
> >      vconn_run(vconn);
> >
> > @@ -185,7 +185,7 @@ test_accept_then_close(int argc OVS_UNUSED, char
> > *argv[])
> >      int error;
> >
> >      fpv_create(type, &fpv);
> > -    CHECK_ERRNO(vconn_open(fpv.vconn_name, 0, &vconn, DSCP_DEFAULT), 0);
> > +    CHECK_ERRNO(vconn_open(fpv.vconn_name, 0, DSCP_DEFAULT, &vconn), 0);
> >      vconn_run(vconn);
> >      stream_close(fpv_accept(&fpv));
> >      fpv_close(&fpv);
> > @@ -217,7 +217,7 @@ test_read_hello(int argc OVS_UNUSED, char *argv[])
> >      int error;
> >
> >      fpv_create(type, &fpv);
> > -    CHECK_ERRNO(vconn_open(fpv.vconn_name, 0, &vconn, DSCP_DEFAULT), 0);
> > +    CHECK_ERRNO(vconn_open(fpv.vconn_name, 0, DSCP_DEFAULT, &vconn), 0);
> >      vconn_run(vconn);
> >      stream = fpv_accept(&fpv);
> >      fpv_destroy(&fpv);
> > @@ -270,7 +270,7 @@ test_send_hello(const char *type, const void *out,
> > size_t out_size,
> >      size_t n_sent;
> >
> >      fpv_create(type, &fpv);
> > -    CHECK_ERRNO(vconn_open(fpv.vconn_name, 0, &vconn, DSCP_DEFAULT), 0);
> > +    CHECK_ERRNO(vconn_open(fpv.vconn_name, 0, DSCP_DEFAULT, &vconn), 0);
> >      vconn_run(vconn);
> >      stream = fpv_accept(&fpv);
> >      fpv_destroy(&fpv);
> > diff --git a/utilities/ovs-controller.c b/utilities/ovs-controller.c
> > index bf0ae92..51765bd 100644
> > --- a/utilities/ovs-controller.c
> > +++ b/utilities/ovs-controller.c
> > @@ -1,5 +1,5 @@
> >  /*
> > - * Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira, Inc.
> > + * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013 Nicira, Inc.
> >   *
> >   * Licensed under the Apache License, Version 2.0 (the "License");
> >   * you may not use this file except in compliance with the License.
> > @@ -116,8 +116,8 @@ main(int argc, char *argv[])
> >          const char *name = argv[i];
> >          struct vconn *vconn;
> >
> > -        retval = vconn_open(name, get_allowed_ofp_versions(),
> > -                            &vconn, DSCP_DEFAULT);
> > +        retval = vconn_open(name, get_allowed_ofp_versions(),
> > DSCP_DEFAULT,
> > +                            &vconn);
> >          if (!retval) {
> >              if (n_switches >= MAX_SWITCHES) {
> >                  ovs_fatal(0, "max %d switch connections", n_switches);
> > @@ -127,7 +127,7 @@ main(int argc, char *argv[])
> >          } else if (retval == EAFNOSUPPORT) {
> >              struct pvconn *pvconn;
> >              retval = pvconn_open(name, get_allowed_ofp_versions(),
> > -                                 &pvconn, DSCP_DEFAULT);
> > +                                 DSCP_DEFAULT, &pvconn);
> >              if (!retval) {
> >                  if (n_listeners >= MAX_LISTENERS) {
> >                      ovs_fatal(0, "max %d passive connections",
> > n_listeners);
> > diff --git a/utilities/ovs-ofctl.c b/utilities/ovs-ofctl.c
> > index 26736bb..239f317 100644
> > --- a/utilities/ovs-ofctl.c
> > +++ b/utilities/ovs-ofctl.c
> > @@ -1,5 +1,5 @@
> >  /*
> > - * Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira, Inc.
> > + * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013 Nicira, Inc.
> >   *
> >   * Licensed under the Apache License, Version 2.0 (the "License");
> >   * you may not use this file except in compliance with the License.
> > @@ -357,8 +357,8 @@ open_vconn_socket(const char *name, struct vconn
> > **vconnp)
> >      char *vconn_name = xasprintf("unix:%s", name);
> >      int error;
> >
> > -    error = vconn_open(vconn_name, get_allowed_ofp_versions(), vconnp,
> > -                       DSCP_DEFAULT);
> > +    error = vconn_open(vconn_name, get_allowed_ofp_versions(),
> > DSCP_DEFAULT,
> > +                       vconnp);
> >      if (error && error != ENOENT) {
> >          ovs_fatal(0, "%s: failed to open socket (%s)", name,
> >                    strerror(error));
> > @@ -387,7 +387,8 @@ open_vconn__(const char *name, const char
> > *default_suffix,
> >      free(datapath_type);
> >
> >      if (strchr(name, ':')) {
> > -        run(vconn_open_block(name, get_allowed_ofp_versions(), vconnp),
> > +        run(vconn_open_block(name, get_allowed_ofp_versions(),
> > DSCP_DEFAULT,
> > +                             vconnp),
> >              "connecting to %s", name);
> >      } else if (!open_vconn_socket(name, vconnp)) {
> >          /* Fall Through. */
> > --
> > 1.7.2.5
> >
> > _______________________________________________
> > dev mailing list
> > dev at openvswitch.org
> > http://openvswitch.org/mailman/listinfo/dev
> >



More information about the dev mailing list