[ovs-dev] [bondlib 16/19] bridge: Get rid of 'n_ifaces' member of struct port.

Ethan Jackson ethan at nicira.com
Wed Mar 30 17:52:59 UTC 2011


Looks Good.

On Fri, Mar 25, 2011 at 10:35 AM, Ben Pfaff <blp at nicira.com> wrote:
> If it doesn't exist then it can't have the wrong value.
> ---
>  vswitchd/bridge.c |   17 +++++++----------
>  1 files changed, 7 insertions(+), 10 deletions(-)
>
> diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c
> index b6f30fd..222ed41 100644
> --- a/vswitchd/bridge.c
> +++ b/vswitchd/bridge.c
> @@ -145,7 +145,6 @@ struct port {
>     /* An ordinary bridge port has 1 interface.
>      * A bridge port for bonding has at least 2 interfaces. */
>     struct list ifaces;         /* List of "struct iface"s. */
> -    size_t n_ifaces;            /* list_size(ifaces). */
>
>     /* Bonding info. */
>     struct bond *bond;
> @@ -423,7 +422,7 @@ iterate_and_prune_ifaces(struct bridge *br,
>             }
>         }
>
> -        if (!port->n_ifaces) {
> +        if (list_is_empty(&port->ifaces)) {
>             VLOG_WARN("%s port has no interfaces, dropping", port->name);
>             port_destroy(port);
>         }
> @@ -1791,7 +1790,7 @@ bridge_reconfigure_one(struct bridge *br)
>         }
>
>         port_reconfigure(port, node->data);
> -        if (!port->n_ifaces) {
> +        if (list_is_empty(&port->ifaces)) {
>             VLOG_WARN("bridge %s: port %s has no interfaces, dropping",
>                       br->name, port->name);
>             port_destroy(port);
> @@ -2007,7 +2006,7 @@ bridge_get_all_ifaces(const struct bridge *br, struct shash *ifaces)
>         LIST_FOR_EACH (iface, port_elem, &port->ifaces) {
>             shash_add_once(ifaces, iface->name, iface);
>         }
> -        if (port->n_ifaces > 1 && port->cfg->bond_fake_iface) {
> +        if (!list_is_short(&port->ifaces) && port->cfg->bond_fake_iface) {
>             shash_add_once(ifaces, port->name, NULL);
>         }
>     }
> @@ -2413,7 +2412,7 @@ update_learning_table(struct bridge *br, const struct flow *flow, int vlan,
>     if (is_gratuitous_arp(flow)) {
>         /* We don't want to learn from gratuitous ARP packets that are
>          * reflected back over bond slaves so we lock the learning table. */
> -        if (in_port->n_ifaces == 1) {
> +        if (!in_port->bond) {
>             mac_entry_set_grat_arp_lock(mac);
>         } else if (mac_entry_is_grat_arp_locked(mac)) {
>             return;
> @@ -2834,7 +2833,7 @@ port_reconfigure(struct port *port, const struct ovsrec_port *cfg)
>     /* Get VLAN tag. */
>     vlan = -1;
>     if (cfg->tag) {
> -        if (port->n_ifaces < 2) {
> +        if (list_is_short(&port->ifaces)) {
>             vlan = *cfg->tag;
>             if (vlan >= 0 && vlan <= 4095) {
>                 VLOG_DBG("port %s: assigning VLAN tag %d", port->name, vlan);
> @@ -2985,7 +2984,7 @@ port_reconfigure_bond_lacp(struct port *port, struct lacp_settings *s)
>
>     if (s->priority <= 0 || s->priority > UINT16_MAX) {
>         /* Prefer bondable links if unspecified. */
> -        s->priority = UINT16_MAX - (port->n_ifaces > 1);
> +        s->priority = UINT16_MAX - !list_is_short(&port->ifaces);
>     }
>     return s;
>  }
> @@ -3013,7 +3012,7 @@ port_reconfigure_bond(struct port *port)
>     const char *detect_s;
>     struct iface *iface;
>
> -    if (port->n_ifaces < 2) {
> +    if (list_is_short(&port->ifaces)) {
>         /* Not a bonded port. */
>         bond_destroy(port->bond);
>         port->bond = NULL;
> @@ -3116,7 +3115,6 @@ iface_create(struct port *port, const struct ovsrec_interface *if_cfg)
>     shash_add_assert(&br->iface_by_name, iface->name, iface);
>
>     list_push_back(&port->ifaces, &iface->port_elem);
> -    port->n_ifaces++;
>
>     VLOG_DBG("attached network device %s to port %s", iface->name, port->name);
>
> @@ -3143,7 +3141,6 @@ iface_destroy(struct iface *iface)
>         }
>
>         list_remove(&iface->port_elem);
> -        port->n_ifaces--;
>
>         netdev_close(iface->netdev);
>
> --
> 1.7.1
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
>



More information about the dev mailing list