From patchwork Mon Jan 28 12:29:09 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pieter Jansen van Vuuren X-Patchwork-Id: 1031891 X-Patchwork-Delegate: horms@verge.net.au Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=openvswitch.org (client-ip=140.211.169.12; helo=mail.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=netronome.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="H8gyEdaf"; dkim-atps=neutral Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 43p8G86TQJz9s3q for ; Mon, 28 Jan 2019 23:34:40 +1100 (AEDT) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id A6CE52224; Mon, 28 Jan 2019 12:33:10 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@mail.linuxfoundation.org Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 6A9591EC0 for ; Mon, 28 Jan 2019 12:29:50 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from mail-wr1-f68.google.com (mail-wr1-f68.google.com [209.85.221.68]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id DB5F77A6 for ; Mon, 28 Jan 2019 12:29:49 +0000 (UTC) Received: by mail-wr1-f68.google.com with SMTP id u4so17844941wrp.3 for ; Mon, 28 Jan 2019 04:29:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=gkuHPanXJC3j8BBdr4efd+fto6yA/A1CRxNRzvfUoA4=; b=H8gyEdaf9ZyCCZ8gfkU1e1euQKLJcEeFAwfpJjnDY3LxU2GawHND8syatG0/Unu6/E WFTPNc702Za95TvVievcrOpVOrrittClaJvf7Z6riaYSdEHFii1dE2zRuINe4EMDHybV eoc30VNjrevZkGzi6DAS1Zz41Q0I8ob1JcAOQZn5qkMgypSrjIZNqzBXcf98ThzIsSse XMzkja0165MansqZJDPQZ7E+jcgwuSeUKA/ui1K2/nXb5dfSuKRAFDXYy9uBnTrjnC6d KDMHRMsp+ewGfXGTOTUhp+v59PMuF/nQxkrQU1hbc4XLTVMfxWN9BoBPE27Oofqds65w cD3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=gkuHPanXJC3j8BBdr4efd+fto6yA/A1CRxNRzvfUoA4=; b=YZzx6v6w6OwwuYv/zWiRXJ7vjd+zg7Txd+SiWu6ISgYpthefPmWWI4c7syJw5VstCU 1fAfu8nke3WJ5bFSEqLvpP3eSyIo0z8zEqSPS/QejdYZvPkB0CX1H6nfYQPc5LfaXOoV 9XYGOLLn8I77eqo/t0X0qt71l7vSRNu0jcRoq7B++gv4oUCjobenaPUQqK5bn2wxbTMN X1GtLwVgtbmQ+Lms5ZHqibUiSAWKIXDHcQcifs5rxzq8rdAwFpX8gnwmKyJBj5W+2v1n Jkcdenbf/7njfi02BHy+YkLYOlvRi3WBPHL1WGEPKaYbk9lhooHLsTuOYf+igLpgAjy5 MZtA== X-Gm-Message-State: AJcUukcYqkqi3esp1c2wUuhl8k7k3s9DGxgMRBSK7rh2c01IEGgs0Oi3 fyHZ0LdV3SjXsT2+ypEF086JSxwMONA= X-Google-Smtp-Source: ALg8bN6F4vDnMJPkDU1hO+L4Lr07F6P1ZQXQwTq0+iMTPQNPvzk29Z0q6wWdJzlL5uPt0emqik3POA== X-Received: by 2002:adf:d112:: with SMTP id a18mr22588461wri.17.1548678588311; Mon, 28 Jan 2019 04:29:48 -0800 (PST) Received: from pieter-Netronome.netronome.com ([217.38.71.146]) by smtp.gmail.com with ESMTPSA id x186sm94367285wmg.41.2019.01.28.04.29.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 28 Jan 2019 04:29:47 -0800 (PST) From: Pieter Jansen van Vuuren To: dev@openvswitch.org Date: Mon, 28 Jan 2019 12:29:09 +0000 Message-Id: <1548678550-6661-4-git-send-email-pieter.jansenvanvuuren@netronome.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1548678550-6661-1-git-send-email-pieter.jansenvanvuuren@netronome.com> References: <1548678550-6661-1-git-send-email-pieter.jansenvanvuuren@netronome.com> X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Cc: simon.horman@netronome.com, Louis Peens , Pieter Jansen van Vuuren Subject: [ovs-dev] [RFC v3 3/4] lib/tc: add set ipv4 dscp and ecn action offload via pedit X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org Add setting of ipv4 dscp and ecn fields in tc offload using pedit. Signed-off-by: Pieter Jansen van Vuuren Signed-off-by: Louis Peens Reviewed-by: Simon Horman --- lib/netdev-tc-offloads.c | 6 +++++- lib/tc.c | 5 +++++ lib/tc.h | 1 + 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/netdev-tc-offloads.c b/lib/netdev-tc-offloads.c index 73ce7b952..90bd3c585 100644 --- a/lib/netdev-tc-offloads.c +++ b/lib/netdev-tc-offloads.c @@ -52,7 +52,7 @@ struct netlink_field { int size; }; -static struct netlink_field set_flower_map[][3] = { +static struct netlink_field set_flower_map[][4] = { [OVS_KEY_ATTR_IPV4] = { { offsetof(struct ovs_key_ipv4, ipv4_src), offsetof(struct tc_flower_key, ipv4.ipv4_src), @@ -66,6 +66,10 @@ static struct netlink_field set_flower_map[][3] = { offsetof(struct tc_flower_key, ipv4.rewrite_ttl), MEMBER_SIZEOF(struct tc_flower_key, ipv4.rewrite_ttl) }, + { offsetof(struct ovs_key_ipv4, ipv4_tos), + offsetof(struct tc_flower_key, ipv4.rewrite_tos), + MEMBER_SIZEOF(struct tc_flower_key, ipv4.rewrite_tos) + }, }, [OVS_KEY_ATTR_IPV6] = { { offsetof(struct ovs_key_ipv6, ipv6_src), diff --git a/lib/tc.c b/lib/tc.c index 953fffd01..78905e1e9 100644 --- a/lib/tc.c +++ b/lib/tc.c @@ -91,6 +91,11 @@ static struct flower_key_to_pedit flower_pedit_map[] = { 8, offsetof(struct tc_flower_key, ipv4.rewrite_ttl), MEMBER_SIZEOF(struct tc_flower_key, ipv4.rewrite_ttl) + }, { + TCA_PEDIT_KEY_EX_HDR_TYPE_IP4, + 1, + offsetof(struct tc_flower_key, ipv4.rewrite_tos), + MEMBER_SIZEOF(struct tc_flower_key, ipv4.rewrite_tos) }, { TCA_PEDIT_KEY_EX_HDR_TYPE_IP6, 7, diff --git a/lib/tc.h b/lib/tc.h index 7196a32d7..04b08e298 100644 --- a/lib/tc.h +++ b/lib/tc.h @@ -103,6 +103,7 @@ struct tc_flower_key { ovs_be32 ipv4_src; ovs_be32 ipv4_dst; uint8_t rewrite_ttl; + uint8_t rewrite_tos; } ipv4; struct { struct in6_addr ipv6_src;