Looks good.

Ethan

On Fri, Aug 5, 2011 at 14:42, Ben Pfaff <[email protected]> wrote:
> Now that netdev_options only has two members, we might as well pass them
> directly as parameters.
> ---
>  lib/bond.c                   |    2 +-
>  lib/dpif-netdev.c            |    9 +++------
>  lib/netdev-vport.c           |    2 +-
>  lib/netdev.c                 |   32 +++++++++++---------------------
>  lib/netdev.h                 |    8 +-------
>  ofproto/in-band.c            |    4 ++--
>  ofproto/ofproto-dpif-sflow.c |    4 ++--
>  ofproto/ofproto.c            |    7 +------
>  tests/test-openflowd.c       |    2 +-
>  utilities/ovs-dpctl.c        |   29 ++++++++++++-----------------
>  vswitchd/bridge.c            |   10 ++--------
>  vswitchd/ovs-brcompatd.c     |    2 +-
>  12 files changed, 38 insertions(+), 73 deletions(-)
>
> diff --git a/lib/bond.c b/lib/bond.c
> index 9a13874..ae914dd 100644
> --- a/lib/bond.c
> +++ b/lib/bond.c
> @@ -1507,7 +1507,7 @@ bond_update_fake_slave_stats(struct bond *bond)
>         }
>     }
>
> -    if (!netdev_open_default(bond->name, &bond_dev)) {
> +    if (!netdev_open(bond->name, "system", &bond_dev)) {
>         netdev_set_stats(bond_dev, &bond_stats);
>         netdev_close(bond_dev);
>     }
> diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c
> index fa6b549..9f281c2 100644
> --- a/lib/dpif-netdev.c
> +++ b/lib/dpif-netdev.c
> @@ -331,7 +331,6 @@ do_add_port(struct dp_netdev *dp, const char *devname, 
> const char *type,
>             uint16_t port_no)
>  {
>     struct dp_netdev_port *port;
> -    struct netdev_options netdev_options;
>     struct netdev *netdev;
>     bool internal;
>     int mtu;
> @@ -348,15 +347,13 @@ do_add_port(struct dp_netdev *dp, const char *devname, 
> const char *type,
>     }
>
>     /* Open and validate network device. */
> -    memset(&netdev_options, 0, sizeof netdev_options);
> -    netdev_options.name = devname;
>     if (dp->class == &dpif_dummy_class) {
> -        netdev_options.type = "dummy";
> +        type = "dummy";
>     } else if (internal) {
> -        netdev_options.type = "tap";
> +        type = "tap";
>     }
>
> -    error = netdev_open(&netdev_options, &netdev);
> +    error = netdev_open(devname, type, &netdev);
>     if (error) {
>         return error;
>     }
> diff --git a/lib/netdev-vport.c b/lib/netdev-vport.c
> index fc20232..8e5b5b5 100644
> --- a/lib/netdev-vport.c
> +++ b/lib/netdev-vport.c
> @@ -435,7 +435,7 @@ netdev_vport_get_status(const struct netdev *netdev, 
> struct shash *sh)
>
>         shash_add(sh, "tunnel_egress_iface", xstrdup(iface));
>
> -        if (!netdev_open_default(iface, &egress_netdev)) {
> +        if (!netdev_open(iface, "system", &egress_netdev)) {
>             shash_add(sh, "tunnel_egress_iface_carrier",
>                       xstrdup(netdev_get_carrier(egress_netdev)
>                               ? "up" : "down"));
> diff --git a/lib/netdev.c b/lib/netdev.c
> index ec8ae4f..cd824f8 100644
> --- a/lib/netdev.c
> +++ b/lib/netdev.c
> @@ -192,14 +192,15 @@ netdev_enumerate_types(struct sset *types)
>     }
>  }
>
> -/* Opens the network device named 'name' (e.g. "eth0") and returns zero if
> - * successful, otherwise a positive errno value.  On success, sets '*netdevp'
> - * to the new network device, otherwise to null.
> +/* Opens the network device named 'name' (e.g. "eth0") of the specified 
> 'type'
> + * (e.g. "system") and returns zero if successful, otherwise a positive errno
> + * value.  On success, sets '*netdevp' to the new network device, otherwise 
> to
> + * null.
>  *
>  * Some network devices may need to be configured (with netdev_set_config())
>  * before they can be used. */
>  int
> -netdev_open(struct netdev_options *options, struct netdev **netdevp)
> +netdev_open(const char *name, const char *type, struct netdev **netdevp)
>  {
>     struct netdev_dev *netdev_dev;
>     int error;
> @@ -207,18 +208,18 @@ netdev_open(struct netdev_options *options, struct 
> netdev **netdevp)
>     *netdevp = NULL;
>     netdev_initialize();
>
> -    netdev_dev = shash_find_data(&netdev_dev_shash, options->name);
> +    netdev_dev = shash_find_data(&netdev_dev_shash, name);
>
>     if (!netdev_dev) {
>         const struct netdev_class *class;
>
> -        class = netdev_lookup_provider(options->type);
> +        class = netdev_lookup_provider(type);
>         if (!class) {
>             VLOG_WARN("could not create netdev %s of unknown type %s",
> -                      options->name, options->type);
> +                      name, type);
>             return EAFNOSUPPORT;
>         }
> -        error = class->create(class, options->name, &netdev_dev);
> +        error = class->create(class, name, &netdev_dev);
>         if (error) {
>             return error;
>         }
> @@ -239,17 +240,6 @@ netdev_open(struct netdev_options *options, struct 
> netdev **netdevp)
>     return error;
>  }
>
> -int
> -netdev_open_default(const char *name, struct netdev **netdevp)
> -{
> -    struct netdev_options options;
> -
> -    memset(&options, 0, sizeof options);
> -    options.name = name;
> -
> -    return netdev_open(&options, netdevp);
> -}
> -
>  /* Reconfigures the device 'netdev' with 'args'.  'args' may be empty
>  * or NULL if none are needed. */
>  int
> @@ -321,7 +311,7 @@ netdev_exists(const char *name)
>     struct netdev *netdev;
>     int error;
>
> -    error = netdev_open_default(name, &netdev);
> +    error = netdev_open(name, "system", &netdev);
>     if (!error) {
>         netdev_close(netdev);
>         return true;
> @@ -1265,7 +1255,7 @@ netdev_find_dev_by_in4(const struct in_addr *in4)
>     SSET_FOR_EACH (name, &dev_list) {
>         struct in_addr dev_in4;
>
> -        if (!netdev_open_default(name, &netdev)
> +        if (!netdev_open(name, "system", &netdev)
>             && !netdev_get_in4(netdev, &dev_in4, NULL)
>             && dev_in4.s_addr == in4->s_addr) {
>             goto exit;
> diff --git a/lib/netdev.h b/lib/netdev.h
> index bcbd8b0..13d2ee7 100644
> --- a/lib/netdev.h
> +++ b/lib/netdev.h
> @@ -75,11 +75,6 @@ struct netdev_stats {
>     uint64_t tx_window_errors;
>  };
>
> -struct netdev_options {
> -    const char *name;
> -    const char *type;
> -};
> -
>  struct netdev;
>  struct netdev_class;
>
> @@ -89,8 +84,7 @@ void netdev_wait(void);
>  void netdev_enumerate_types(struct sset *types);
>
>  /* Open and close. */
> -int netdev_open(struct netdev_options *, struct netdev **);
> -int netdev_open_default(const char *name, struct netdev **);
> +int netdev_open(const char *name, const char *type, struct netdev **);
>  void netdev_close(struct netdev *);
>
>  bool netdev_exists(const char *name);
> diff --git a/ofproto/in-band.c b/ofproto/in-band.c
> index 764b252..f9dd218 100644
> --- a/ofproto/in-band.c
> +++ b/ofproto/in-band.c
> @@ -131,7 +131,7 @@ refresh_remote(struct in_band *ib, struct in_band_remote 
> *r)
>     {
>         netdev_close(r->remote_netdev);
>
> -        retval = netdev_open_default(next_hop_dev, &r->remote_netdev);
> +        retval = netdev_open(next_hop_dev, "system", &r->remote_netdev);
>         if (retval) {
>             VLOG_WARN_RL(&rl, "cannot open netdev %s (next hop "
>                          "to controller "IP_FMT"): %s",
> @@ -472,7 +472,7 @@ in_band_create(struct ofproto *ofproto, const char 
> *local_name,
>     int error;
>
>     *in_bandp = NULL;
> -    error = netdev_open_default(local_name, &local_netdev);
> +    error = netdev_open(local_name, "system", &local_netdev);
>     if (error) {
>         VLOG_ERR("failed to initialize in-band control: cannot open "
>                  "datapath local port %s (%s)", local_name, strerror(error));
> diff --git a/ofproto/ofproto-dpif-sflow.c b/ofproto/ofproto-dpif-sflow.c
> index d2da42b..303623c 100644
> --- a/ofproto/ofproto-dpif-sflow.c
> +++ b/ofproto/ofproto-dpif-sflow.c
> @@ -235,7 +235,7 @@ sflow_choose_agent_address(const char *agent_device, 
> const char *control_ip,
>     if (agent_device) {
>         struct netdev *netdev;
>
> -        if (!netdev_open_default(agent_device, &netdev)) {
> +        if (!netdev_open(agent_device, "system", &netdev)) {
>             int error = netdev_get_in4(netdev, &in4, NULL);
>             netdev_close(netdev);
>             if (!error) {
> @@ -337,7 +337,7 @@ dpif_sflow_add_port(struct dpif_sflow *ds, uint16_t 
> odp_port,
>     dpif_sflow_del_port(ds, odp_port);
>
>     /* Open network device. */
> -    error = netdev_open_default(netdev_name, &netdev);
> +    error = netdev_open(netdev_name, "system", &netdev);
>     if (error) {
>         VLOG_WARN_RL(&rl, "failed to open network device \"%s\": %s",
>                      netdev_name, strerror(error));
> diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c
> index 8054d05..6203676 100644
> --- a/ofproto/ofproto.c
> +++ b/ofproto/ofproto.c
> @@ -1107,16 +1107,11 @@ static struct netdev *
>  ofport_open(const struct ofproto_port *ofproto_port, struct ofp_phy_port 
> *opp)
>  {
>     uint32_t curr, advertised, supported, peer;
> -    struct netdev_options netdev_options;
>     enum netdev_flags flags;
>     struct netdev *netdev;
>     int error;
>
> -    memset(&netdev_options, 0, sizeof netdev_options);
> -    netdev_options.name = ofproto_port->name;
> -    netdev_options.type = ofproto_port->type;
> -
> -    error = netdev_open(&netdev_options, &netdev);
> +    error = netdev_open(ofproto_port->name, ofproto_port->type, &netdev);
>     if (error) {
>         VLOG_WARN_RL(&rl, "ignoring port %s (%"PRIu16") because netdev %s "
>                      "cannot be opened (%s)",
> diff --git a/tests/test-openflowd.c b/tests/test-openflowd.c
> index 2c91310..016e1cb 100644
> --- a/tests/test-openflowd.c
> +++ b/tests/test-openflowd.c
> @@ -124,7 +124,7 @@ main(int argc, char *argv[])
>     SSET_FOR_EACH (port, &s.ports) {
>         struct netdev *netdev;
>
> -        error = netdev_open_default(port, &netdev);
> +        error = netdev_open(port, "system", &netdev);
>         if (error) {
>             VLOG_FATAL("%s: failed to open network device (%s)",
>                        port, strerror(error));
> diff --git a/utilities/ovs-dpctl.c b/utilities/ovs-dpctl.c
> index 3b4749c..e084868 100644
> --- a/utilities/ovs-dpctl.c
> +++ b/utilities/ovs-dpctl.c
> @@ -166,7 +166,7 @@ static int if_up(const char *netdev_name)
>     struct netdev *netdev;
>     int retval;
>
> -    retval = netdev_open_default(netdev_name, &netdev);
> +    retval = netdev_open(netdev_name, "system", &netdev);
>     if (!retval) {
>         retval = netdev_turn_flags_on(netdev, NETDEV_UP, true);
>         netdev_close(netdev);
> @@ -222,17 +222,17 @@ do_add_if(int argc OVS_UNUSED, char *argv[])
>
>     run(parsed_dpif_open(argv[1], false, &dpif), "opening datapath");
>     for (i = 2; i < argc; i++) {
> +        const char *name, *type;
>         char *save_ptr = NULL;
> -        struct netdev_options options;
>         struct netdev *netdev = NULL;
>         struct shash args;
>         char *option;
>         int error;
>
> -        options.name = strtok_r(argv[i], ",", &save_ptr);
> -        options.type = "system";
> +        name = strtok_r(argv[i], ",", &save_ptr);
> +        type = "system";
>
> -        if (!options.name) {
> +        if (!name) {
>             ovs_error(0, "%s is not a valid network device name", argv[i]);
>             continue;
>         }
> @@ -249,33 +249,31 @@ do_add_if(int argc OVS_UNUSED, char *argv[])
>             }
>
>             if (!strcmp(key, "type")) {
> -                options.type = value;
> +                type = value;
>             } else if (!shash_add_once(&args, key, value)) {
>                 ovs_error(0, "duplicate \"%s\" option", key);
>             }
>         }
>
> -        error = netdev_open(&options, &netdev);
> +        error = netdev_open(name, type, &netdev);
>         if (error) {
> -            ovs_error(error, "%s: failed to open network device",
> -                      options.name);
> +            ovs_error(error, "%s: failed to open network device", name);
>             goto next;
>         }
>
>         error = netdev_set_config(netdev, &args);
>         if (error) {
> -            ovs_error(error, "%s: failed to configure network device",
> -                      options.name);
> +            ovs_error(error, "%s: failed to configure network device", name);
>             goto next;
>         }
>
>         error = dpif_port_add(dpif, netdev, NULL);
>         if (error) {
> -            ovs_error(error, "adding %s to %s failed", options.name, 
> argv[1]);
> +            ovs_error(error, "adding %s to %s failed", name, argv[1]);
>             goto next;
>         }
>
> -        error = if_up(options.name);
> +        error = if_up(name);
>
>  next:
>         netdev_close(netdev);
> @@ -383,15 +381,12 @@ show_dpif(struct dpif *dpif)
>         printf("\tport %u: %s", dpif_port.port_no, dpif_port.name);
>
>         if (strcmp(dpif_port.type, "system")) {
> -            struct netdev_options netdev_options;
>             struct netdev *netdev;
>             int error;
>
>             printf (" (%s", dpif_port.type);
>
> -            netdev_options.name = dpif_port.name;
> -            netdev_options.type = dpif_port.type;
> -            error = netdev_open(&netdev_options, &netdev);
> +            error = netdev_open(dpif_port.name, dpif_port.type, &netdev);
>             if (!error) {
>                 struct shash config;
>
> diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c
> index f417859..bc153fc 100644
> --- a/vswitchd/bridge.c
> +++ b/vswitchd/bridge.c
> @@ -850,10 +850,7 @@ bridge_add_ofproto_ports(struct bridge *br)
>
>             /* Open the netdev. */
>             if (!iface->netdev) {
> -                struct netdev_options options;
> -                options.name = iface->name;
> -                options.type = iface->type;
> -                error = netdev_open(&options, &iface->netdev);
> +                error = netdev_open(iface->name, iface->type, 
> &iface->netdev);
>                 if (error) {
>                     VLOG_WARN("could not open network device %s (%s)",
>                               iface->name, strerror(error));
> @@ -928,13 +925,10 @@ bridge_add_ofproto_ports(struct bridge *br)
>         if (port_is_bond_fake_iface(port)) {
>             if (ofproto_port_query_by_name(br->ofproto, port->name,
>                                            &ofproto_port)) {
> -                struct netdev_options options;
>                 struct netdev *netdev;
>                 int error;
>
> -                options.name = port->name;
> -                options.type = "internal";
> -                error = netdev_open(&options, &netdev);
> +                error = netdev_open(port->name, "internal", &netdev);
>                 if (!error) {
>                     ofproto_port_add(br->ofproto, netdev, NULL);
>                     netdev_close(netdev);
> diff --git a/vswitchd/ovs-brcompatd.c b/vswitchd/ovs-brcompatd.c
> index d9b3bc3..c1cc817 100644
> --- a/vswitchd/ovs-brcompatd.c
> +++ b/vswitchd/ovs-brcompatd.c
> @@ -488,7 +488,7 @@ handle_fdb_query_cmd(struct ofpbuf *buffer)
>         struct mac *mac = &local_macs[n_local_macs];
>         struct netdev *netdev;
>
> -        error = netdev_open_default(iface_name, &netdev);
> +        error = netdev_open(iface_name, "system", &netdev);
>         if (!error) {
>             if (!netdev_get_etheraddr(netdev, mac->addr)) {
>                 n_local_macs++;
> --
> 1.7.4.4
>
> _______________________________________________
> dev mailing list
> [email protected]
> http://openvswitch.org/mailman/listinfo/dev
>
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev

Reply via email to