[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <9eece57e-cc3b-3dc2-9aac-3b3e05219dd7@cumulusnetworks.com>
Date: Tue, 28 Jun 2016 19:10:52 -0600
From: David Ahern <dsa@...ulusnetworks.com>
To: Mateusz Bajorski <mateusz.bajorski@...ia.com>,
netdev@...r.kernel.org
Subject: Re: [PATCH v3] fib_rules: Added NLM_F_EXCL support to fib_nl_newrule
On 6/28/16 6:03 AM, Mateusz Bajorski wrote:
> diff --git a/net/core/fib_rules.c b/net/core/fib_rules.c
> index 98298b1..fa0c3ff 100644
> --- a/net/core/fib_rules.c
> +++ b/net/core/fib_rules.c
> @@ -269,6 +269,46 @@ errout:
> return err;
> }
>
> +static int rule_exists(struct fib_rules_ops *ops, struct fib_rule_hdr *frh,
> + struct nlattr **tb, struct fib_rule *rule)
> +{
> + struct fib_rule *r;
> +
> + list_for_each_entry(r, &ops->rules_list, list) {
> + if (r->action != rule->action)
> + continue;
> +
> + if (r->table != rule->table)
> + continue;
> +
> + if (r->pref != rule->pref)
> + continue;
> +
> + if (memcmp(r->iifname, rule->iifname, IFNAMSIZ))
> + continue;
> +
> + if (memcmp(r->oifname, rule->oifname, IFNAMSIZ))
> + continue;
> +
> + if (r->mark != rule->mark)
> + continue;
> +
> + if (r->mark_mask != rule->mark_mask)
> + continue;
> +
> + if (r->tun_id != rule->tun_id)
> + continue;
> +
> + if (r->fr_net != rule->fr_net)
> + continue;
> +
> + if (!ops->compare(r, frh, tb))
> + continue;
l3mdev attribute snuck in a couple of weeks ago. You need to compare
r->l3mdev != rule->l3mdev
Powered by blists - more mailing lists