From patchwork Thu Nov 30 19:51:26 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: William Tu X-Patchwork-Id: 843168 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="dJqlsLDr"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3ynp213Mzbz9sNr for ; Fri, 1 Dec 2017 06:51:37 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750885AbdK3Tve (ORCPT ); Thu, 30 Nov 2017 14:51:34 -0500 Received: from mail-pf0-f194.google.com ([209.85.192.194]:44134 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750760AbdK3Tve (ORCPT ); Thu, 30 Nov 2017 14:51:34 -0500 Received: by mail-pf0-f194.google.com with SMTP id m26so3553966pfj.11 for ; Thu, 30 Nov 2017 11:51:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=PAAdD0GvXZY84SxVM03onnCKROS00dotxT68zj8loTg=; b=dJqlsLDrP1Sp1mbd5RT7o1suB6CAmuRIJV2lSwmQWCL0VtVDpvobBhd6kFhWX4J6E5 6j6zDoDeg24vQWOVJX4E5uv9jtvLyBm6O/ogCJpoBcRkuttVv0gBZJSm07LeeH6Athel QT3GZJNMi/0CruaDrIlBQ1wPg2Ska+hCTmXUfMbaQKFrOmbTW7R3fto2XBF8gdX+g6SW 2K4vWGEKrN2jhAc+jgrCKyMvjbtaAb+MJyv2a3octnUhUvIx2WrYXMafJ0VSfVd0BaYn 5ppx8JVgLTPDklFIoKOhQJxm8+9w65Fv7luCmCmwL2o6CS6mo/g5rs+9n+DjCcMVkLa5 xvng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=PAAdD0GvXZY84SxVM03onnCKROS00dotxT68zj8loTg=; b=j0jWbRPDeW3ltRu5Rpk8YJb8M8sIzqjqzdW/Zg4WdTu2JpThyl9XLFiW5l3NF9CMR/ gjh/zO281Ae8D5zCDMyNcin5BQ3/yzKfKz0hubKWejdZLEGhQUpsGdlC8RjagJv9gR7S 7lGYnqQUF4l14ZZYSRiY6sNtrL0VkPRmUPME44fi1FyCvt0d2ggMkq9TmNm8W/fsfnN6 tw+4VJSlFcfMhSD0zOUgLMV0PahGlA2srCQQnS58uFi71oiywukfElKLC8adNLhJrGxu pPSw4ud2DRVGr4uJ5RUdyYGcWjcDPwyjbWDEm1pI9W8STW0AfcoVe1P5tfEhlsWsvF9i EPrw== X-Gm-Message-State: AJaThX65J9GajsYzTAlSj0tVFsX2Hmu1CUPvQXMdbp7DDhAStT0hMcVB wWRK3Kzn+l82p/TFfsVPcqV6HWlm X-Google-Smtp-Source: AGs4zMZIDWk6z7jA60mGXrjjwzIHJqQwf0+5VtlmzPW1Viv79C5lORYZngC4KZLQUuuFA4i2V6XZ2Q== X-Received: by 10.98.59.139 with SMTP id w11mr7840151pfj.188.1512071493161; Thu, 30 Nov 2017 11:51:33 -0800 (PST) Received: from sc9-mailhost2.vmware.com ([24.5.191.4]) by smtp.gmail.com with ESMTPSA id j14sm9686737pfj.93.2017.11.30.11.51.32 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 30 Nov 2017 11:51:32 -0800 (PST) From: William Tu To: netdev@vger.kernel.org Subject: [PATCH v5 net-next 0/3] ip6_gre: add erspan native tunnel for ipv6 Date: Thu, 30 Nov 2017 11:51:26 -0800 Message-Id: <1512071489-5318-1-git-send-email-u9012063@gmail.com> X-Mailer: git-send-email 2.7.4 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The patch series add support for ERSPAN tunnel over ipv6. The first patch refectors the existing ipv4 gre implementation and the second refactors the ipv6 gre's xmit code. Finally the last patch introduces erspan protocol. change in v5: - add cover-letter description change in v4: - rebase on top of net-next - use log_ecn_error in ip6_tnl_rcv change in v3: - add inline for functions in header - rebase on top of net-next change in v2: - remove inline - fix some indent - fix errors reports by clang and scan-build William Tu (3): ip_gre: Refector the erpsan tunnel code. ip6_gre: Refactor ip6gre xmit codes ip6_gre: Add ERSPAN native tunnel support include/net/erspan.h | 51 ++++++ include/net/ip6_tunnel.h | 1 + net/ipv4/ip_gre.c | 54 +------ net/ipv6/ip6_gre.c | 393 ++++++++++++++++++++++++++++++++++++++++------- 4 files changed, 398 insertions(+), 101 deletions(-) --- A test script is provided below: #!/bin/bash # In the namespace NS0, create veth0 and ip6erspan00 # Out of the namespace, create veth1 and ip6erspan11 # Ping in and out of namespace using ERSPAN protocol # Patch v2 for iproute2 # https://marc.info/?l=linux-netdev&m=151002165705772&w=2 cleanup() { set +ex ip netns del ns0 ip link del ip6erspan11 ip link del veth1 } main() { trap cleanup 0 2 3 9 ip netns add ns0 ip link add veth0 type veth peer name veth1 ip link set veth0 netns ns0 # non-namespace ip addr add dev veth1 fc00:100::2/96 ip link add dev ip6erspan11 type ip6erspan seq key 102 erspan 123 \ local fc00:100::2 \ remote fc00:100::1 ip addr add dev ip6erspan11 fc00:200::2/96 ip addr add dev ip6erspan11 10.10.200.2/24 # namespace: ns0 ip netns exec ns0 ip addr add fc00:100::1/96 dev veth0 # Tunnel ip netns exec ns0 ip link add dev ip6erspan00 type ip6erspan seq key 102 erspan 12 \ local fc00:100::1 \ remote fc00:100::2 ip netns exec ns0 ip addr add dev ip6erspan00 fc00:200::1/96 ip netns exec ns0 ip addr add dev ip6erspan00 10.10.200.1/24 ip link set dev veth1 up ip link set dev ip6erspan11 up ip netns exec ns0 ip link set dev ip6erspan00 up ip netns exec ns0 ip link set dev veth0 up } main # Ping underlying ping6 -c 1 fc00:100::1 || true # ping overlay ping -c 3 10.10.200.1 ping6 -c 3 fc00:200::1