From patchwork Wed Jun 27 11:45:36 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?N=C3=A9lio_Laranjeiro?= X-Patchwork-Id: 41657 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id A40C51BEB2; Wed, 27 Jun 2018 13:45:24 +0200 (CEST) Received: from mail-wm0-f67.google.com (mail-wm0-f67.google.com [74.125.82.67]) by dpdk.org (Postfix) with ESMTP id 408461B5B4 for ; Wed, 27 Jun 2018 13:45:24 +0200 (CEST) Received: by mail-wm0-f67.google.com with SMTP id z13-v6so5146058wma.5 for ; Wed, 27 Jun 2018 04:45:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=zD2mvb8VHdAQSLdLwCaYtZ4Q4egAYMW6Y7Zypb98Md4=; b=u6flJghA7nOT700LX0WWgPfkUCWgdzrEcXsiYGcpB3Kpt4GipuCsKR81+EWNe9gwq1 jIJf35ue2UzB18t9zimcyicAfZnd5WYz4IIp/Mhu4poGbukC1uDaFlwWPzmn5VWJKKtD SnUakCEM03tDs9nAxOY8rOtt6fgyW86E+kN7PZVQKlcTL8jSWr7Xv8SXJXoP7hLp5hVD 3ttmbAerzmbNvqJTskskQPCIOvLeBy8PAtIq5TjHd4wiPzLbTwbN2WACZ0ciFdWt3+L7 td3DMUKkHfA6aONfL5MP7VOCl8oBSdgO1GrG9cziY4IM9BXEj0ObijxmXLlZTfP9elGu ZJ6g== 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=zD2mvb8VHdAQSLdLwCaYtZ4Q4egAYMW6Y7Zypb98Md4=; b=SQggclQPibAl7D3AgK5s6t6OQzINoMqUbVV1bPs6RIO0nG05qMDmTFaWcsNmgC+V5o 5JKAb3ArPn8cQXWOSNjVg0I7ZHBlIEAUyL03r9jpontTNk3sxdFnv7RseMmx1NI38R0S s+b6H929TDyJ88Tv2PhcPtNr+XQtdPru+oVFWBt1+iynZhLjbaunq1hutXBNehs6QKyV ZHIb7fHfjEy+DiQJGVq97FQP1WgSwmo72V5HXO+yc16XwyCj2qSYuuzTbTXJZV078AbX 2oZgtQUg+Yrbl2cNONMFRYNechqCQT9G+aFxFfsDnFRcC0K6htkKslQmUIBFZinJueaR neew== X-Gm-Message-State: APt69E00Y/JTqU6L3AT9xpnKPewOtFJpabcSJSMb1v3KKNz9edYNqY/A ZpQKDv/Nj066MpN36xJGnB6jG+XjuQ== X-Google-Smtp-Source: AAOMgpdAhZKnESyJha10VWNpuDDfW0+aJGEfzKFIC+qGJ9iBjJG96rwL7rpDRj4YzJTNh18QWfpugg== X-Received: by 2002:a1c:f902:: with SMTP id x2-v6mr4530973wmh.116.1530099923568; Wed, 27 Jun 2018 04:45:23 -0700 (PDT) Received: from laranjeiro-vm.dev.6wind.com (host.78.145.23.62.rev.coltfrance.com. [62.23.145.78]) by smtp.gmail.com with ESMTPSA id r2-v6sm4459368wrq.55.2018.06.27.04.45.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 27 Jun 2018 04:45:22 -0700 (PDT) From: Nelio Laranjeiro To: dev@dpdk.org, Adrien Mazarguil , Wenzhuo Lu , Jingjing Wu , Bernard Iremonger , Mohammad Abdul Awal , Stephen Hemminger Cc: Ori Kam Date: Wed, 27 Jun 2018 13:45:36 +0200 Message-Id: X-Mailer: git-send-email 2.18.0 In-Reply-To: References: Subject: [dpdk-dev] [PATCH v7 0/2] app/testpmd implement VXLAN/NVGRE Encap/Decap X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" This series adds an easy and maintainable configuration version support for those two actions for 18.08 by using global variables in testpmd to store the necessary information for the tunnel encapsulation. Those variables are used in conjunction of RTE_FLOW_ACTION_{VXLAN,NVGRE}_ENCAP action to create easily the action for flows. A common way to use it: set vxlan ipv4 4 4 4 127.0.0.1 128.0.0.1 11:11:11:11:11:11 22:22:22:22:22:22 flow create 0 ingress pattern end actions vxlan_encap / queue index 0 / end set vxlan ipv6 4 4 4 ::1 ::2222 11:11:11:11:11:11 22:22:22:22:22:22 flow create 0 ingress pattern end actions vxlan_encap / queue index 0 / end set nvgre ipv4 4 127.0.0.1 128.0.0.1 11:11:11:11:11:11 22:22:22:22:22:22 flow create 0 ingress pattern end actions nvgre_encap / queue index 0 / end set nvgre ipv6 4 ::1 ::2222 11:11:11:11:11:11 22:22:22:22:22:22 flow create 0 ingress pattern end actions nvgre_encap / queue index 0 / end This also replace the proposal done by Mohammad Abdul Awal [1] which handles in a more complex way for the same work. Note this API has already a modification planned for 18.11 [2] thus those series should have a limited life for a single release. [1] https://dpdk.org/ml/archives/dev/2018-May/101403.html [2] https://dpdk.org/ml/archives/dev/2018-June/103485.html Changes in v7: - add missing documentation added in v5 and removed in v6 by mistake. Changes in v6: - fix compilation under redhat 7.5 with gcc 4.8.5 20150623 Changes in v5: - fix documentation generation. - add more explanation on how to generate several encapsulated flows. Changes in v4: - fix big endian issue on vni and tni. - add samples to the documentation. - set the VXLAN UDP source port to 0 by default to let the driver generate it from the inner hash as described in the RFC 7348. - use default rte flow mask for each item. Changes in v3: - support VLAN in the outer encapsulation. - fix the documentation with missing arguments. Changes in v2: - add default IPv6 values for NVGRE encapsulation. - replace VXLAN to NVGRE in comments concerning NVGRE layer. Nelio Laranjeiro (2): app/testpmd: add VXLAN encap/decap support app/testpmd: add NVGRE encap/decap support app/test-pmd/cmdline.c | 252 ++++++++++++++++++ app/test-pmd/cmdline_flow.c | 274 ++++++++++++++++++++ app/test-pmd/testpmd.c | 32 +++ app/test-pmd/testpmd.h | 32 +++ doc/guides/testpmd_app_ug/testpmd_funcs.rst | 82 ++++++ 5 files changed, 672 insertions(+)