[ovs-dev] [PATCH] vswitch: Don't update STP on synthetic ports.

Ethan Jackson ethan at nicira.com
Wed Oct 26 18:42:57 UTC 2011


As an aside.  This particular issue has bitten us several times.  Does
it make sense in the future to push the check for synthetic ifaces
into the idl?

Ethan

On Wed, Oct 26, 2011 at 11:42, Ethan Jackson <ethan at nicira.com> wrote:
> This can cause ovs-vswitchd to crash.
>
> Bug #8007.
> Reported-by: Krishna Miriyala <krishna at nicira.com>
> ---
>  vswitchd/bridge.c |   13 +++++++++++++
>  1 files changed, 13 insertions(+), 0 deletions(-)
>
> diff --git a/vswitchd/bridge.c b/vswitchd/bridge.c
> index 3a19235..09696d5 100644
> --- a/vswitchd/bridge.c
> +++ b/vswitchd/bridge.c
> @@ -184,6 +184,7 @@ static struct lacp_settings *port_configure_lacp(struct port *,
>                                                  struct lacp_settings *);
>  static void port_configure_bond(struct port *, struct bond_settings *,
>                                 uint32_t *bond_stable_ids);
> +static bool port_is_synthetic(const struct port *);
>
>  static void bridge_configure_mirrors(struct bridge *);
>  static struct mirror *mirror_create(struct bridge *,
> @@ -1600,6 +1601,10 @@ port_refresh_stp_status(struct port *port)
>     char *keys[4], *values[4];
>     size_t i;
>
> +    if (port_is_synthetic(port)) {
> +        return;
> +    }
> +
>     /* STP doesn't currently support bonds. */
>     if (!list_is_singleton(&port->ifaces)) {
>         ovsrec_port_set_status(port->cfg, NULL, NULL, 0);
> @@ -2697,6 +2702,14 @@ port_configure_bond(struct port *port, struct bond_settings *s,
>         netdev_set_miimon_interval(iface->netdev, miimon_interval);
>     }
>  }
> +
> +/* Returns true if 'port' is synthetic, that is, if we constructed it locally
> + * instead of obtaining it from the database. */
> +static bool
> +port_is_synthetic(const struct port *port)
> +{
> +    return ovsdb_idl_row_is_synthetic(&port->cfg->header_);
> +}
>
>  /* Interface functions. */
>
> --
> 1.7.7
>
>



More information about the dev mailing list