[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160301150318.GF2098@nanopsycho.orion>
Date: Tue, 1 Mar 2016 16:03:18 +0100
From: Jiri Pirko <jiri@...nulli.us>
To: Amir Vadai <amir@...ai.me>
Cc: "David S. Miller" <davem@...emloft.net>, netdev@...r.kernel.org,
Or Gerlitz <ogerlitz@...lanox.com>,
John Fastabend <john.r.fastabend@...el.com>,
Saeed Mahameed <saeedm@...lanox.com>,
Hadar Har-Zion <hadarh@...lanox.com>,
Jiri Pirko <jiri@...lanox.com>
Subject: Re: [PATCH net-next 7/8] net/mlx5e: Support offload cls_flower with
drop action
Tue, Mar 01, 2016 at 03:24:49PM CET, amir@...ai.me wrote:
>Parse tc_cls_flower_offload into device specific commands and program
>the hardware to classify and act accordingly.
>
>For example, to drop ICMP (ip_proto 1) packets from specific smac, dmac,
>src_ip, src_ip, arriving to interface ens9:
>
> # tc qdisc add dev ens9 ingress
>
> # tc filter add dev ens9 protocol ip parent ffff: \
> flower ip_proto 1 \
> dst_mac 7c:fe:90:69:81:62 src_mac 7c:fe:90:69:81:56 \
> dst_ip 11.11.11.11 src_ip 11.11.11.12 indev ens9 \
> action drop
>
<snip>
>+static int parse_tc_actions(struct mlx5e_priv *priv, struct tcf_exts *exts,
>+ u32 *action, u32 *flow_tag)
>+{
>+#ifdef CONFIG_NET_CLS_ACT
>+ const struct tc_action *a;
>+
>+ *flow_tag = MLX5_FS_DEFAULT_FLOW_TAG;
>+ *action = 0;
>+
>+ if (list_empty(&exts->actions))
>+ return -EINVAL;
>+
>+ list_for_each_entry(a, &exts->actions, list) {
I think it would make sense to make this a macro "tc_for_each_action"
and "tc_no_action" for empty list and you can loose ugly
CONFIG_NET_CLS_ACT ifdef
Powered by blists - more mailing lists