Also, this requires a backport to sr87 branch.
On Tue, Sep 3, 2013 at 8:32 PM, Alex Wang <al...@nicira.com> wrote: > Commit 9d189a50e (ofproto-dpif-xlate: Pull STP xlation into > ofproto-dpif-xlate.) introduced the bug that sets the port's > stp port number even if stp is not in use. This commit > fixes this bug. > > Signed-off-by: Alex Wang <al...@nicira.com> > --- > ofproto/ofproto-dpif-xlate.c | 4 ++-- > ofproto/ofproto-dpif.c | 4 +++- > 2 files changed, 5 insertions(+), 3 deletions(-) > > diff --git a/ofproto/ofproto-dpif-xlate.c b/ofproto/ofproto-dpif-xlate.c > index ef254d9..b276ecd 100644 > --- a/ofproto/ofproto-dpif-xlate.c > +++ b/ofproto/ofproto-dpif-xlate.c > @@ -121,7 +121,7 @@ struct xport { > struct xport *peer; /* Patch port peer or null. */ > > enum ofputil_port_config config; /* OpenFlow port configuration. */ > - int stp_port_no; /* STP port number or 0 if not in > use. */ > + int stp_port_no; /* STP port number or -1 if not in > use. */ > > struct hmap skb_priorities; /* Map of 'skb_priority_to_dscp's. */ > > @@ -621,7 +621,7 @@ xport_lookup(const struct ofport_dpif *ofport) > static struct stp_port * > xport_get_stp_port(const struct xport *xport) > { > - return xport->xbridge->stp && xport->stp_port_no > + return xport->xbridge->stp && xport->stp_port_no != -1 > ? stp_get_port(xport->xbridge->stp, xport->stp_port_no) > : NULL; > } > diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c > index 70a226c..7ba5076 100644 > --- a/ofproto/ofproto-dpif.c > +++ b/ofproto/ofproto-dpif.c > @@ -820,9 +820,11 @@ type_run(const char *type) > } > > HMAP_FOR_EACH (ofport, up.hmap_node, &ofproto->up.ports) { > + /* Sets stp_port to -1 if stp is not in use, since the > return value of > + * stp_port_no() is between 0 and STP_MAX_PORTS. */ > int stp_port = ofport->stp_port > ? stp_port_no(ofport->stp_port) > - : 0; > + : -1; > xlate_ofport_set(ofproto, ofport->bundle, ofport, > ofport->up.ofp_port, ofport->odp_port, > ofport->up.netdev, ofport->cfm, > -- > 1.7.9.5 > >
_______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev