From patchwork Tue May 9 03:45:29 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nobuhiro MIKI X-Patchwork-Id: 1778740 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org (client-ip=2605:bc80:3010::137; helo=smtp4.osuosl.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=yahoo-corp.jp header.i=@yahoo-corp.jp header.a=rsa-sha256 header.s=selector1 header.b=lEttC1nW; dkim-atps=neutral Received: from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4QFkbW1JkHz214c for ; Tue, 9 May 2023 13:46:14 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id ABACD4285B; Tue, 9 May 2023 03:46:08 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org ABACD4285B Authentication-Results: smtp4.osuosl.org; dkim=fail reason="signature verification failed" (1024-bit key, unprotected) header.d=yahoo-corp.jp header.i=@yahoo-corp.jp header.a=rsa-sha256 header.s=selector1 header.b=lEttC1nW X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6xaXFNf9BPfC; Tue, 9 May 2023 03:46:07 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp4.osuosl.org (Postfix) with ESMTPS id C4B3641FFB; Tue, 9 May 2023 03:46:05 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org C4B3641FFB Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id ACD8AC008E; Tue, 9 May 2023 03:46:03 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137]) by lists.linuxfoundation.org (Postfix) with ESMTP id 6853BC0037 for ; Tue, 9 May 2023 03:46:01 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 2DE9041EC1 for ; Tue, 9 May 2023 03:46:01 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 2DE9041EC1 X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sUUPF6FUusDX for ; Tue, 9 May 2023 03:45:57 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 481FC41E89 Received: from corp-ob07.yahoo-corp.jp (corp-ob07.yahoo-corp.jp [183.79.94.94]) by smtp4.osuosl.org (Postfix) with ESMTPS id 481FC41E89 for ; Tue, 9 May 2023 03:45:57 +0000 (UTC) Received: from JPN01-OS0-obe.outbound.protection.outlook.com (mail-os0jpn01lp2113.outbound.protection.outlook.com [104.47.23.113]) by corp-ob07.yahoo-corp.jp (Postfix) with ESMTPS id E04A619FB180 for ; Tue, 9 May 2023 12:45:54 +0900 (JST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EBH0+RSluHoGKq2j89F88wpEBKu3GRfxHVatdCLoO42IJe688+f/+rSXL8INYa3yMDLzV+goNFobLhSKTdBXcC4+vnlKP+mYDHE6WM6Y/bMxVcCe90Mxu2+MFfjuIWEid68AzuKo1A0s7krd3wOKXcHQCxvIUV37P3v10FpQWCXQlA66u+hCDKXkss4wf/sZD0uFzJc5DJWkitjZIyLADCv+vauxP3NAlFZKtlryIuBPaMJE4NL3Ejj5K9FjZeCtJvyChYYUZOj6vHAh86GLV7rPpmI73bW4OlAbLLbp+IuOwBHN/7IuxSMO2reaSGoLYGqjrF6uG/jovwHD8+v88A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=7RWlKZzLJydz0L/XJdNzL8cxkJRR5WS7JPJ7/QhE4Uc=; b=fLtj0Hklj6iHONejSbmVuCSlfc5zqEMpAQ+9V2SfnKEMwnSdefUEYPCwXZJ5x/NbWs/LZEUOs4j4Hz1INsW5hS2RKytgDYJw4tNMVfGuAmaw7ZhYGQT75d6SGl8gb/4p7ARLPVGBOF/WeKpgB4EYAZF2r3TB9Sxlq3wzZviWEPcCnX9gU51TVIszz7hWtLGTcJ4qjWQMjqRWp+Ahe6QIpLKQhG2F1d3BLra1MD33TldmvUv1ycZGsq9dRERiyuEOvjB83DUqUYgaU/t/PzB2coGttZa+UaX63wCHBvNhKqdPM/xyI8Zs4CkAKYhQ8z2ik1Tv3aSuRqCyLxNy72fX7g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=yahoo-corp.jp; dmarc=pass action=none header.from=yahoo-corp.jp; dkim=pass header.d=yahoo-corp.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo-corp.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7RWlKZzLJydz0L/XJdNzL8cxkJRR5WS7JPJ7/QhE4Uc=; b=lEttC1nW3zrLrY28esKItPAQDsi/xVf1/tUaYDT1mNDcnh0H6IXQKSZDpKKoHItgVjMt+zVNMFQawlBywCgumNVyTcaY2IXaY5CMeSL/eG475An2G2K0jOk6qh8/uh5y8vtr4DLhG+Ory6s+L3J3W54fLqui2YB7tGyEgmCaCrw= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=yahoo-corp.jp; Received: from TY2PR01MB4107.jpnprd01.prod.outlook.com (2603:1096:404:d8::23) by TYCPR01MB10118.jpnprd01.prod.outlook.com (2603:1096:400:1ee::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.33; Tue, 9 May 2023 03:45:54 +0000 Received: from TY2PR01MB4107.jpnprd01.prod.outlook.com ([fe80::316c:fe30:7d04:4f2b]) by TY2PR01MB4107.jpnprd01.prod.outlook.com ([fe80::316c:fe30:7d04:4f2b%5]) with mapi id 15.20.6363.033; Tue, 9 May 2023 03:45:54 +0000 From: Nobuhiro MIKI To: dev@openvswitch.org Date: Tue, 9 May 2023 12:45:29 +0900 Message-Id: <20230509034530.35553-2-nmiki@yahoo-corp.jp> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20230509034530.35553-1-nmiki@yahoo-corp.jp> References: <20230509034530.35553-1-nmiki@yahoo-corp.jp> X-ClientProxiedBy: TY2PR01CA0023.jpnprd01.prod.outlook.com (2603:1096:404:a::35) To TY2PR01MB4107.jpnprd01.prod.outlook.com (2603:1096:404:d8::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TY2PR01MB4107:EE_|TYCPR01MB10118:EE_ X-MS-Office365-Filtering-Correlation-Id: afb5f873-d6ef-4c89-b683-08db503fe3a7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0OTx2XiKZ3QjfpDt/Wj/aMZkUPvDlgr/tGqUDFo5lwPOFlUXNVy+vgQK+PUj8jQ5saYVFIozdokM0MG4g/XfszXhMTGKP7/wMX9pG8ffRwvTDrthJ6qJvwz08thy4znRJ3eNTfflIMTobl0FHMOOqj8jQKSwOkJRLAmFMzNI8Qqd9jUjcHyVpLwlrAXX8S4afmYNaUNXBuHWSTVExsO5/b4Op3dgKt7xMAQlgN1bqGDAR+xSyEKquz5NNhFcUC+uHcVlnvxCZ4SBepffkpQTJbVWG9G/81yWgqNEAfY93TkZ8+M5EBHijp2eYfYlK7BPss9hl5C/kjACq2QIV1DN+WbL3jQKPgtGQMpJYxRR7TaDF/SomzZNzZhINR7wCIryz18smM0PXV8od1XKSmYQxzyXdbWRYjJlaOdmh/x9AJ3WTdCOyoq+yiuJ5Y/mmViA7djEEP0e6XT/eekt7VYqMwtL6LmFDygYCWqXOGuv46B0NNJJa+SBUzqRSt55H/Gg4OfuOOtkERITuC0AuNRE4BHiNQZ1vgEFQhIMRQ8QkaAVWbBPmmaTLe1GA/0cELrEu6f0wE8Wr+TElv2zye99nvRqDncAJYFyzUROPcTB/IuoRdICdGoz55P0VnK3GdoclDiSK1XiSbUql7/auoBWJg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:TY2PR01MB4107.jpnprd01.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(136003)(396003)(346002)(376002)(366004)(39860400002)(451199021)(2906002)(186003)(38350700002)(6512007)(26005)(6506007)(1076003)(36756003)(107886003)(38100700002)(83380400001)(2616005)(82960400001)(316002)(6486002)(6666004)(6916009)(41300700001)(66946007)(66556008)(66476007)(4326008)(86362001)(52116002)(478600001)(8676002)(8936002)(5660300002)(21314003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ujQYKJfhs4uoVKDtgHrjz6knSc/iRRieduAlQNXl9mfInbC2XH3FLQpqr7dp8QwTM7poSBD04zVP9ALCIwevwXffTL07HRTfiawX0jwIxzwNEspFuo2rprdvG8kU+xWqeOuVo5TWUvERWJk+7g//KvEf6p9d4qmRx1srRUALFZfC+5KNvu8CfH16GTpP3nb5b46HerQvySgMx8makuIS9wUuo1VspD+8cQiH2xbGAyNRQ5ExwxfXed3vsDWUhIXW46jGKlj+9sNhcIN6OvhK6/akHFYPFhNVUpVFABxwqZwbkOyLUmTF8TS0zQ53ZXdyVXFcQrWid2dIEUo2gqOLL65NdqCFg/0X1y3cBnJmAgpFl85ZW1r5M94CzwIoZ+OFTs8WvxZslWUxmOP7h+5vrF9mRdI42sHLzApkBR2Xry9I9zbEzH/E0JMqAT014ouHpNbRbyv2DM+NK6KGticKSlIIXG2ssw/tl32cG4usTMF5+ihtGVyymf+mt/mfh+mGmTKGNP7MLbeqJHt66p3pQ6mEIbYMaHjMt5QDMOJtMhw9hWEM67xSxgsDJXKBDF056qMC8Z74NkH3BiBPBxnrEeburMxKTDnydUf1bfCRQ9SFCJ+6b24h0vramwhxTQsd4PggiYawg7tvKGS63MSYI3h6VB9+F4A9In7P6L6VqZ7lbH7oGN50nufuSGH8cqJ6twv+dD9Rc9nN3rFw/LG8t45gQeEGcyqzifq12cIlNU/Yv5e67wsyZsA0ca7NQn6bfR1KzDP+7obMygwARw2G8C9UOwC3c/blD1WMW4DU41TjZ2UTlhI474s1sPOPU/10GgGT9Wz+YV12G05jTfFrQrDr3Eh3el3xrUIwPpu8JYIPCUljm8Mg9rOggF/JVZOVHuiZzwlOLAUPDj8GEwIowZj9qocUVDbonYTuoqKpJ3ff71VLmm1EysRimCS0Ox/bDWua2m/joU2K0iYgVfZbtTzmROoAp6Y1qCo5feq3sISrRSvrKDIV7xuGKns7lBOGtdnAnmrXED6SWDJ4l/2gpnMXnYlPoAMSkQ4PE/zxdlQHVqAh49Fxp8UqHleaPcHBY56HKokvVmAWJb7hjZjntddVqR1+c7rGcEuZGgkFsVU/rz8+cKkcK0CPe4UqYVPVyfliCQNtVNuEfZKI5rrjZHR6ttdubQPwCj9yrMBLDdN/hbVR3ULkPf8T0KSM38zBSOj4iewBhnyQ6QAOHGnHFJmFkKwkxWA0TescFmubth0DlHET+4PAJekL2ojpky9Uc3WyK7Fyri4ys8s32tYnvD6dxAFpAadDx12dL43bDznmyl1yhUdPWp3V4qt+Y8SOMknKrEf/PEMS0QKaMVkhV4NLHqKa7dOy2SZQqBINwX332QIkcXi3TpLKYvUv4mcLaPUe7VY8D7Odw8FuL9qiKdKJY6qmZlvbmaU5LAKF0x/s6w/r6+yQanyz6ybaBaB/yc7KOm+60m84zPUIL8o+8MEhwwNbFHa3ioItshx1n2GrtIiKUiwfyvohFf0uJI+/+GBINLrU8Bv1V/HGdABRiKkVxQF/GvHOSPY5+v32P26I6rca6pf3+XlhKpeOmt61 X-OriginatorOrg: yahoo-corp.jp X-MS-Exchange-CrossTenant-Network-Message-Id: afb5f873-d6ef-4c89-b683-08db503fe3a7 X-MS-Exchange-CrossTenant-AuthSource: TY2PR01MB4107.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 May 2023 03:45:53.8811 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a208d369-cd4e-4f87-b119-98eaf31df2c3 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: qd65ChNKCUmg56GWy4jeeecJCLw2/8MuL4w7bcnSWoxPCv0kusuxBrKHZ3scWdQFnOIHifXY/nYVk3fsB3c7CA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCPR01MB10118 Subject: [ovs-dev] [PATCH 1/2] netdev-native-tnl: Add ipv6_label param in netdev_tnl_ip_build_header. X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" For tunnels such as SRv6, some popular vendor appliances support IPv6 flowlabel based load balancing. In preparation for OVS to support it, this patch modifies the encapsulation to allow IPv6 flowlabel to be configured. Signed-off-by: Nobuhiro MIKI --- lib/netdev-native-tnl.c | 14 ++++++++------ lib/netdev-native-tnl.h | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/lib/netdev-native-tnl.c b/lib/netdev-native-tnl.c index 9abdf51076a8..55e1bd567fa1 100644 --- a/lib/netdev-native-tnl.c +++ b/lib/netdev-native-tnl.c @@ -35,6 +35,7 @@ #include "byte-order.h" #include "csum.h" #include "dp-packet.h" +#include "flow.h" #include "netdev.h" #include "netdev-vport.h" #include "netdev-vport-private.h" @@ -276,7 +277,7 @@ eth_build_header(struct ovs_action_push_tnl *data, void * netdev_tnl_ip_build_header(struct ovs_action_push_tnl *data, const struct netdev_tnl_build_header_params *params, - uint8_t next_proto) + uint8_t next_proto, uint32_t ipv6_label) { void *l3; @@ -308,7 +309,8 @@ netdev_tnl_ip_build_header(struct ovs_action_push_tnl *data, ip6 = (struct ovs_16aligned_ip6_hdr *) l3; put_16aligned_be32(&ip6->ip6_flow, htonl(6 << 28) | - htonl(params->flow->tunnel.ip_tos << 20)); + htonl(params->flow->tunnel.ip_tos << 20) | + htonl(ipv6_label & 0xfffff)); ip6->ip6_hlim = params->flow->tunnel.ip_ttl; ip6->ip6_nxt = next_proto; memcpy(&ip6->ip6_src, params->s_ip, sizeof(ovs_be32[4])); @@ -326,7 +328,7 @@ udp_build_header(struct netdev_tunnel_config *tnl_cfg, { struct udp_header *udp; - udp = netdev_tnl_ip_build_header(data, params, IPPROTO_UDP); + udp = netdev_tnl_ip_build_header(data, params, IPPROTO_UDP, 0); udp->udp_dst = tnl_cfg->dst_port; if (params->is_ipv6 || params->flow->tunnel.flags & FLOW_TNL_F_CSUM) { @@ -488,7 +490,7 @@ netdev_gre_build_header(const struct netdev *netdev, ovs_mutex_lock(&dev->mutex); tnl_cfg = &dev->tnl_cfg; - greh = netdev_tnl_ip_build_header(data, params, IPPROTO_GRE); + greh = netdev_tnl_ip_build_header(data, params, IPPROTO_GRE, 0); if (params->flow->packet_type == htonl(PT_ETH)) { greh->protocol = htons(ETH_TYPE_TEB); @@ -644,7 +646,7 @@ netdev_erspan_build_header(const struct netdev *netdev, /* XXX: RCUfy tnl_cfg. */ ovs_mutex_lock(&dev->mutex); tnl_cfg = &dev->tnl_cfg; - greh = netdev_tnl_ip_build_header(data, params, IPPROTO_GRE); + greh = netdev_tnl_ip_build_header(data, params, IPPROTO_GRE, 0); ersh = ERSPAN_HDR(greh); tun_id = ntohl(be64_to_be32(params->flow->tunnel.tun_id)); @@ -880,7 +882,7 @@ netdev_srv6_build_header(const struct netdev *netdev, goto out; } - srh = netdev_tnl_ip_build_header(data, params, IPPROTO_ROUTING); + srh = netdev_tnl_ip_build_header(data, params, IPPROTO_ROUTING, 0); srh->rt_hdr.segments_left = nr_segs - 1; srh->rt_hdr.type = IPV6_SRCRT_TYPE_4; srh->rt_hdr.hdrlen = 2 * nr_segs; diff --git a/lib/netdev-native-tnl.h b/lib/netdev-native-tnl.h index 4dad8f978cc6..b06e7bbf2a72 100644 --- a/lib/netdev-native-tnl.h +++ b/lib/netdev-native-tnl.h @@ -118,7 +118,7 @@ netdev_tnl_ipv6_hdr(void *eth) void * netdev_tnl_ip_build_header(struct ovs_action_push_tnl *data, const struct netdev_tnl_build_header_params *params, - uint8_t next_proto); + uint8_t next_proto, uint32_t ipv6_label); extern uint16_t tnl_udp_port_min; extern uint16_t tnl_udp_port_max;