Hmm, that sounds like a good idea, yes.

On Wed, Oct 26, 2011 at 11:42:57AM -0700, Ethan Jackson wrote:
> 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 <[email protected]> wrote:
> > This can cause ovs-vswitchd to crash.
> >
> > Bug #8007.
> > Reported-by: Krishna Miriyala <[email protected]>
> > ---
> > ?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
> >
> >
> _______________________________________________
> 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