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 <[email protected]>
> ---
> 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
> [email protected]
> http://openvswitch.org/mailman/listinfo/dev

_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev

Reply via email to