Applied to master, thanks!
On Thu, Jul 02, 2015 at 05:50:48AM -0700, Jarno Rajahalme wrote: > Acked-by: Jarno Rajahalme <jrajaha...@nicira.com> > > Jarno > > > On Jun 24, 2015, at 10:57 AM, Ben Pfaff <b...@nicira.com> wrote: > > > > OpenFlow provides no means to change the importance of a flow after it is > > added, so make it immutable so that it is reasonable to read it without > > locking. > > > > Signed-off-by: Ben Pfaff <b...@nicira.com> > > --- > > ofproto/ofproto-provider.h | 2 +- > > ofproto/ofproto.c | 5 ++--- > > 2 files changed, 3 insertions(+), 4 deletions(-) > > > > diff --git a/ofproto/ofproto-provider.h b/ofproto/ofproto-provider.h > > index 527823a..495f787 100644 > > --- a/ofproto/ofproto-provider.h > > +++ b/ofproto/ofproto-provider.h > > @@ -354,7 +354,7 @@ struct rule { > > uint16_t idle_timeout OVS_GUARDED; /* In seconds from ->used. */ > > > > /* Eviction precedence. */ > > - uint16_t importance OVS_GUARDED; > > + const uint16_t importance; > > > > /* Removal reason for sending flow removed message. > > * Used only if 'flags' has OFPUTIL_FF_SEND_FLOW_REM set and if the > > diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c > > index 278c97f..d48c31c 100644 > > --- a/ofproto/ofproto.c > > +++ b/ofproto/ofproto.c > > @@ -4633,7 +4633,7 @@ replace_rule_create(struct ofproto *ofproto, struct > > ofputil_flow_mod *fm, > > ovs_mutex_lock(&rule->mutex); > > rule->idle_timeout = fm->idle_timeout; > > rule->hard_timeout = fm->hard_timeout; > > - rule->importance = fm->importance; > > + *CONST_CAST(uint16_t *, &rule->importance) = fm->importance; > > rule->removed_reason = OVS_OFPRR_NONE; > > > > *CONST_CAST(uint8_t *, &rule->table_id) = table_id; > > @@ -4649,7 +4649,6 @@ replace_rule_create(struct ofproto *ofproto, struct > > ofputil_flow_mod *fm, > > > > /* Copy values from old rule for modify semantics. */ > > if (old_rule && fm->delete_reason != OFPRR_EVICTION) { > > - /* 'fm' says that */ > > bool change_cookie = (fm->modify_cookie > > && fm->new_cookie != OVS_BE64_MAX > > && fm->new_cookie != old_rule->flow_cookie); > > @@ -4658,7 +4657,7 @@ replace_rule_create(struct ofproto *ofproto, struct > > ofputil_flow_mod *fm, > > if (fm->command != OFPFC_ADD) { > > rule->idle_timeout = old_rule->idle_timeout; > > rule->hard_timeout = old_rule->hard_timeout; > > - rule->importance = old_rule->importance; > > + *CONST_CAST(uint16_t *, &rule->importance) = > > old_rule->importance; > > rule->flags = old_rule->flags; > > rule->created = old_rule->created; > > } > > -- > > 2.1.3 > > > > _______________________________________________ > > dev mailing list > > dev@openvswitch.org > > http://openvswitch.org/mailman/listinfo/dev > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev