[ovs-dev] [PATCH] ofproto: Send only one OFPT_FLOW_REMOVED message when a flow expires.
Justin Pettit
jpettit at nicira.com
Sat Oct 19 00:25:05 UTC 2013
Acked-by: Justin Pettit <jpettit at nicira.com>
--Justin
On Oct 18, 2013, at 4:30 PM, Ben Pfaff <blp at nicira.com> wrote:
> Commit 15aaf59932a3 (ofproto: Add global locking around flow table
> changes.) introduced doubled messages for expirations.
>
> Reported-by: John Hurley <john.hurley at netronome.com>
> Signed-off-by: Ben Pfaff <blp at nicira.com>
> ---
> ofproto/ofproto.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c
> index f44a7c4..f67e1fb 100644
> --- a/ofproto/ofproto.c
> +++ b/ofproto/ofproto.c
> @@ -1139,7 +1139,8 @@ ofproto_get_snoops(const struct ofproto *ofproto, struct sset *snoops)
> }
>
> static void
> -ofproto_rule_delete__(struct ofproto *ofproto, struct rule *rule)
> +ofproto_rule_delete__(struct ofproto *ofproto, struct rule *rule,
> + uint8_t reason)
> OVS_REQUIRES(ofproto_mutex)
> {
> struct ofopgroup *group;
> @@ -1147,7 +1148,7 @@ ofproto_rule_delete__(struct ofproto *ofproto, struct rule *rule)
> ovs_assert(!rule->pending);
>
> group = ofopgroup_create_unattached(ofproto);
> - delete_flow__(rule, group, OFPRR_DELETE);
> + delete_flow__(rule, group, reason);
> ofopgroup_submit(group);
> }
>
> @@ -1202,7 +1203,7 @@ ofproto_flush__(struct ofproto *ofproto)
> ovs_rwlock_unlock(&table->cls.rwlock);
> CLS_CURSOR_FOR_EACH_SAFE (rule, next_rule, cr, &cursor) {
> if (!rule->pending) {
> - ofproto_rule_delete__(ofproto, rule);
> + ofproto_rule_delete__(ofproto, rule, OFPRR_DELETE);
> }
> }
> }
> @@ -4322,8 +4323,7 @@ ofproto_rule_expire(struct rule *rule, uint8_t reason)
> ovs_assert(reason == OFPRR_HARD_TIMEOUT || reason == OFPRR_IDLE_TIMEOUT
> || reason == OFPRR_DELETE || reason == OFPRR_GROUP_DELETE);
>
> - ofproto_rule_send_removed(rule, reason);
> - ofproto_rule_delete__(ofproto, rule);
> + ofproto_rule_delete__(ofproto, rule, reason);
> }
>
> /* Reduces '*timeout' to no more than 'max'. A value of zero in either case
> --
> 1.7.10.4
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
More information about the dev
mailing list