[ovs-dev] [PATCH] Revert DSCP update changes.
Ben Pfaff
blp at nicira.com
Wed Jun 20 17:05:36 UTC 2012
Thanks, I pushed this.
(Of course we'll reintroduce the feature once the problem here gets
ironed out.)
On Wed, Jun 20, 2012 at 10:01:29AM -0700, Justin Pettit wrote:
> Looks good. Thanks, Ben.
>
> --Justin
>
>
> On Jun 20, 2012, at 9:59 AM, Ben Pfaff wrote:
>
> > This reverts commit cd8fca2ba0a7d036da069a4484d501bdc7a6f611 (jsonrpc:
> > Correctly setting the dscp value before reconnect.) and commit
> > b2e18db292cd4962af3248f11e9f17e6eaf9c033 (No need to restart DB / OVS on
> > changing dscp value.), which on some systems causes numerous unit test
> > failures that valgrind diagnoses as:
> >
> > Conditional jump or move depends on uninitialised value(s)
> > at 0x805F63F: jsonrpc_session_set_dscp (jsonrpc.c:1061)
> > by 0x804F45D: ovsdb_jsonrpc_server_set_remotes (jsonrpc-server.c:417)
> > by 0x804B775: reconfigure_from_db (ovsdb-server.c:656)
> > by 0x804C231: main (ovsdb-server.c:159)
> >
> > Signed-off-by: Ben Pfaff <blp at nicira.com>
> > ---
> > lib/jsonrpc.c | 5 +----
> > lib/rconn.c | 6 ------
> > lib/rconn.h | 1 -
> > ofproto/connmgr.c | 6 ------
> > vswitchd/vswitch.xml | 14 ++++++++------
> > 5 files changed, 9 insertions(+), 23 deletions(-)
> >
> > diff --git a/lib/jsonrpc.c b/lib/jsonrpc.c
> > index 4870da8..5c3359c 100644
> > --- a/lib/jsonrpc.c
> > +++ b/lib/jsonrpc.c
> > @@ -1058,8 +1058,5 @@ void
> > jsonrpc_session_set_dscp(struct jsonrpc_session *s,
> > uint8_t dscp)
> > {
> > - if (s->dscp != dscp) {
> > - s->dscp = dscp;
> > - jsonrpc_session_force_reconnect(s);
> > - }
> > + s->dscp = dscp;
> > }
> > diff --git a/lib/rconn.c b/lib/rconn.c
> > index 3241ab8..2ddfc69 100644
> > --- a/lib/rconn.c
> > +++ b/lib/rconn.c
> > @@ -226,12 +226,6 @@ rconn_set_dscp(struct rconn *rc, uint8_t dscp)
> > rc->dscp = dscp;
> > }
> >
> > -uint8_t
> > -rconn_get_dscp(const struct rconn *rc)
> > -{
> > - return rc->dscp;
> > -}
> > -
> > void
> > rconn_set_probe_interval(struct rconn *rc, int probe_interval)
> > {
> > diff --git a/lib/rconn.h b/lib/rconn.h
> > index e4b73fc..2b1332c 100644
> > --- a/lib/rconn.h
> > +++ b/lib/rconn.h
> > @@ -40,7 +40,6 @@ struct rconn_packet_counter;
> > struct rconn *rconn_create(int inactivity_probe_interval,
> > int max_backoff, uint8_t dscp);
> > void rconn_set_dscp(struct rconn *rc, uint8_t dscp);
> > -uint8_t rconn_get_dscp(const struct rconn *rc);
> > void rconn_set_max_backoff(struct rconn *, int max_backoff);
> > int rconn_get_max_backoff(const struct rconn *);
> > void rconn_set_probe_interval(struct rconn *, int inactivity_probe_interval);
> > diff --git a/ofproto/connmgr.c b/ofproto/connmgr.c
> > index 8cdaa1f..a0315b2 100644
> > --- a/ofproto/connmgr.c
> > +++ b/ofproto/connmgr.c
> > @@ -1114,12 +1114,6 @@ ofconn_reconfigure(struct ofconn *ofconn, const struct ofproto_controller *c)
> > rconn_set_probe_interval(ofconn->rconn, probe_interval);
> >
> > ofconn_set_rate_limit(ofconn, c->rate_limit, c->burst_limit);
> > -
> > - /* If dscp value changed reconnect. */
> > - if (c->dscp != rconn_get_dscp(ofconn->rconn)) {
> > - rconn_set_dscp(ofconn->rconn, c->dscp);
> > - rconn_reconnect(ofconn->rconn);
> > - }
> > }
> >
> > /* Returns true if it makes sense for 'ofconn' to receive and process OpenFlow
> > diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml
> > index 15f162a..32d4c59 100644
> > --- a/vswitchd/vswitch.xml
> > +++ b/vswitchd/vswitch.xml
> > @@ -2756,9 +2756,10 @@
> > Service (QoS) on IP networks.
> >
> > The DSCP value specified here is used when establishing the connection
> > - between the controller and the Open vSwitch. If no value is specified,
> > - a default value of 48 is chosen. Valid DSCP values must be in the
> > - range 0 to 63.
> > + between the controller and the Open vSwitch. The connection must be
> > + reset for the new DSCP values to take effect. If no value is
> > + specified, a default value of 48 is chosen. Valid DSCP values must be
> > + in the range 0 to 63.
> > </column>
> > </group>
> >
> > @@ -3002,9 +3003,10 @@
> > Service (QoS) on IP networks.
> >
> > The DSCP value specified here is used when establishing the connection
> > - between the manager and the Open vSwitch. If no value is specified, a
> > - default value of 48 is chosen. Valid DSCP values must be in the range
> > - 0 to 63.
> > + between the manager and the Open vSwitch. The connection must be
> > + reset for the new DSCP values to take effect. If no value is
> > + specified, a default value of 48 is chosen. Valid DSCP values must be
> > + in the range 0 to 63.
> > </column>
> > </group>
> >
> > --
> > 1.7.2.5
> >
> > _______________________________________________
> > dev mailing list
> > dev at openvswitch.org
> > http://openvswitch.org/mailman/listinfo/dev
>
More information about the dev
mailing list