Thread (31 messages) 31 messages, 5 authors, 2016-03-02

Re: [PATCH net-next 7/8] net/mlx5e: Support offload cls_flower with drop action

From: Jiri Pirko <jiri@resnulli.us>
Date: 2016-03-01 15:03:22

Tue, Mar 01, 2016 at 03:24:49PM CET, amir@vadai.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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help