From patchwork Sun Sep 18 11:21:16 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jamal Hadi Salim X-Patchwork-Id: 671379 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3scRRh38Wlz9sdn for ; Sun, 18 Sep 2016 21:21:36 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=mojatatu-com.20150623.gappssmtp.com header.i=@mojatatu-com.20150623.gappssmtp.com header.b=xAHMTbom; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756682AbcIRLVb (ORCPT ); Sun, 18 Sep 2016 07:21:31 -0400 Received: from mail-io0-f196.google.com ([209.85.223.196]:35501 "EHLO mail-io0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754693AbcIRLV0 (ORCPT ); Sun, 18 Sep 2016 07:21:26 -0400 Received: by mail-io0-f196.google.com with SMTP id q92so3713065ioi.2 for ; Sun, 18 Sep 2016 04:21:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mojatatu-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=uRjzKRqWHAkB7tHoRFHe+v0+PE70gMAaTqXvOnv2sK0=; b=xAHMTbomoJhnhj9Kz2qtOJF/iN4mGnyHS8ry3/YNIx35KscphHoVCexK1qXy74RkKc TO13futPsCWo75NaeSKOd4Ys1ZkacZ5YOLF/3bqyBf1vO8xbLIZkXEjNoep/FveOOGfi MDGuAHFGk4KqLFCuZIztRNaVrESIq/9PcgOzl4UcpinH9U2MFAxaqe+py3T4z264G81/ i6T2YyckjlRe0S90qCT/N8pvfztc4KlJwn9YX4CzMj/99Fzk9RAEs66P+zBvL/yz60RG xVNyDsuFTlQlXMbiSR+NjQfxi450WWavkaFsTc69fSfHZwjXcbSGpKEGXs5PMUkYv1m9 3E4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=uRjzKRqWHAkB7tHoRFHe+v0+PE70gMAaTqXvOnv2sK0=; b=G65UHbf5ij1ezpJkYFE5uzPJPeKk4YCGFqNja+9PMgKnAPTa093B5fYXwey/QeD2eN nMXJzTyf2/wWE77xZ71av4edwoiy6hPTTq5gQj5aj7P7MQch0xr2cJWZ2kCZuuqLEDPa a1LUWclvAkseTANcqkI3jjaa2Spei2MxXUWg68xcDgtQ43jkPo0ovg/4NYnr5w5OW+NE ZCR53+pmoCuzUg7VvVx4uPAag9cvzehx2znzP2r4GUwecquAQvUrCBGWe8Gi7IzKJVQ/ 6zHGBQa0TDTdJUjwZmlYA3hSmTnJ9yIAS4SsRr97NJB/EC9+1Qaxjam3EkBPwK8XK81T 6UVw== X-Gm-Message-State: AE9vXwNtxQNW1HTe21RFOhsmEQcvIGpWH7NOkVU5IXlh9Oz8YV3dihVjUaovZP344xbkQw== X-Received: by 10.107.150.139 with SMTP id y133mr31425119iod.12.1474197685305; Sun, 18 Sep 2016 04:21:25 -0700 (PDT) Received: from jhs-UX303LB.lan ([23.233.30.50]) by smtp.gmail.com with ESMTPSA id q1sm6342601itb.2.2016.09.18.04.21.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 18 Sep 2016 04:21:24 -0700 (PDT) From: Jamal Hadi Salim X-Google-Original-From: Jamal Hadi Salim To: davem@davemloft.net Cc: netdev@vger.kernel.org, xiyou.wangcong@gmail.com, Jamal Hadi Salim Subject: [PATCH v2 net-next 2/2] net sched ife action: Introduce skb tcindex metadata encap decap Date: Sun, 18 Sep 2016 07:21:16 -0400 Message-Id: <1474197676-10512-2-git-send-email-jhs@emojatatu.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1474197676-10512-1-git-send-email-jhs@emojatatu.com> References: <1474197676-10512-1-git-send-email-jhs@emojatatu.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jamal Hadi Salim Sample use case of how this is encoded: user space via tuntap (or a connected VM/Machine/container) encodes the tcindex TLV. Sample use case of decoding: IFE action decodes it and the skb->tc_index is then used to classify. So something like this for encoded ICMP packets: .. first decode then reclassify... skb->tcindex will be set sudo $TC filter add dev $ETH parent ffff: prio 2 protocol 0xbeef \ u32 match u32 0 0 flowid 1:1 \ action ife decode reclassify ...next match the decode icmp packet... sudo $TC filter add dev $ETH parent ffff: prio 4 protocol ip \ u32 match ip protocol 1 0xff flowid 1:1 \ action continue ... last classify it using the tcindex classifier and do someaction.. sudo $TC filter add dev $ETH parent ffff: prio 5 protocol ip \ handle 0x11 tcindex classid 1:1 \ action blah.. Signed-off-by: Jamal Hadi Salim --- include/uapi/linux/tc_act/tc_ife.h | 3 ++- net/sched/Kconfig | 5 +++++ net/sched/Makefile | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/include/uapi/linux/tc_act/tc_ife.h b/include/uapi/linux/tc_act/tc_ife.h index 4ece02a..cd18360 100644 --- a/include/uapi/linux/tc_act/tc_ife.h +++ b/include/uapi/linux/tc_act/tc_ife.h @@ -32,8 +32,9 @@ enum { #define IFE_META_HASHID 2 #define IFE_META_PRIO 3 #define IFE_META_QMAP 4 +#define IFE_META_TCINDEX 5 /*Can be overridden at runtime by module option*/ -#define __IFE_META_MAX 5 +#define __IFE_META_MAX 6 #define IFE_META_MAX (__IFE_META_MAX - 1) #endif diff --git a/net/sched/Kconfig b/net/sched/Kconfig index 7795d5a..87956a7 100644 --- a/net/sched/Kconfig +++ b/net/sched/Kconfig @@ -793,6 +793,11 @@ config NET_IFE_SKBPRIO depends on NET_ACT_IFE ---help--- +config NET_IFE_SKBTCINDEX + tristate "Support to encoding decoding skb tcindex on IFE action" + depends on NET_ACT_IFE + ---help--- + config NET_CLS_IND bool "Incoming device classification" depends on NET_CLS_U32 || NET_CLS_FW diff --git a/net/sched/Makefile b/net/sched/Makefile index 148ae0d..4bdda36 100644 --- a/net/sched/Makefile +++ b/net/sched/Makefile @@ -23,6 +23,7 @@ obj-$(CONFIG_NET_ACT_SKBMOD) += act_skbmod.o obj-$(CONFIG_NET_ACT_IFE) += act_ife.o obj-$(CONFIG_NET_IFE_SKBMARK) += act_meta_mark.o obj-$(CONFIG_NET_IFE_SKBPRIO) += act_meta_skbprio.o +obj-$(CONFIG_NET_IFE_SKBTCINDEX) += act_meta_skbtcindex.o obj-$(CONFIG_NET_ACT_TUNNEL_KEY)+= act_tunnel_key.o obj-$(CONFIG_NET_SCH_FIFO) += sch_fifo.o obj-$(CONFIG_NET_SCH_CBQ) += sch_cbq.o