From patchwork Mon Jul 13 07:42:36 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xin Long X-Patchwork-Id: 1327742 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=Fl/uPEBO; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4B4wc53BFXz9sR4 for ; Mon, 13 Jul 2020 17:43:01 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728985AbgGMHnA (ORCPT ); Mon, 13 Jul 2020 03:43:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49684 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728924AbgGMHmz (ORCPT ); Mon, 13 Jul 2020 03:42:55 -0400 Received: from mail-pl1-x643.google.com (mail-pl1-x643.google.com [IPv6:2607:f8b0:4864:20::643]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A88CAC061755 for ; Mon, 13 Jul 2020 00:42:55 -0700 (PDT) Received: by mail-pl1-x643.google.com with SMTP id k5so5141600plk.13 for ; Mon, 13 Jul 2020 00:42:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=BE3qQfNkAMNQTJHo7w+zHDsRVY4ZP6SZjRNPRH06Q6M=; b=Fl/uPEBOc9mNn2alMFO/ARO7c1g0vY0ryBS0Pd0GJaLOTw9+IBlyL/OEQHyajNTXg3 Bk4CkaNaHyWyPTPacwVPiHpIYUI1b/ofbX/rZK0Kf99ECcj25AbuLvWztVeUboYI7F2J +eM39MZ4rIgp1iq14RDIHSZSiyBod2iCv4iphvGxIZlJzbhxPZXQI/g5RqycO+GMAf2d P9PQkqlbbKQpTVOc1fjnx1OBOQiDwZs/fHcBNwItCP7w8qIJiU86lDNGoSszGDos+SML fqJzXB8jRDvO+upRYq+U9JqFrs+byJMge8HLP0UhXE/TFP/pEvRvx6DhnHchx8bXwwPm Ebjw== 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:in-reply-to:references; bh=BE3qQfNkAMNQTJHo7w+zHDsRVY4ZP6SZjRNPRH06Q6M=; b=Ixd7Vpm2ymKmBsJzoxl+tkNM4RNxbBDf9cYdDaZbl18olHz0gsZj29MzxDKOr/u4Om 6BWR7lskVuls7wi7VKLCOjN3nj/6/ELD+Ozy2ZWcFwfyBr3GjsrKW1KxvsV140MUTv1Q dgSMTlRxEdox42wPOTRJK7t0JhNGyOb9w/eCgoOTsLP+w0kdvQNyi2QzcHwCj0L7Xlz/ 90rpTacsW97Z24IG7QzHfU//Im7+itf9cMmOyb3v7h94+ytmIu1UI/ssamaebUvaulKg HBtYqK8Z+wYqMVZct9p6OGGnJsuor2vUu89E5ir+6zBpKKOXT7sEbGWlvBEQfwEVWd4J A9wg== X-Gm-Message-State: AOAM533+XqfLLzAijRcUYKXQPJ0vcUxbQlGQGim4lf4YO2Y/khzE7fHh jQacfHIUEkwKygcsNFivuoPwNscw X-Google-Smtp-Source: ABdhPJzSgC9+HUTe7VLlI3/0CbEvRFR2Qzl7k1TzaL4tGgVWblpERQ/aMO3SCfuP6EKf9bo79LohLg== X-Received: by 2002:a17:902:7e8e:: with SMTP id z14mr45131461pla.52.1594626175014; Mon, 13 Jul 2020 00:42:55 -0700 (PDT) Received: from localhost ([209.132.188.80]) by smtp.gmail.com with ESMTPSA id cv3sm13442657pjb.45.2020.07.13.00.42.53 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 13 Jul 2020 00:42:54 -0700 (PDT) From: Xin Long To: netdev@vger.kernel.org Cc: Steffen Klassert , "David S. Miller" , Sabrina Dubroca Subject: [PATCH ipsec-next 1/3] ip_vti: not register vti_ipip_handler twice Date: Mon, 13 Jul 2020 15:42:36 +0800 Message-Id: <834afa201899677daeb9d0f33d34bca15bf45a19.1594625993.git.lucien.xin@gmail.com> X-Mailer: git-send-email 2.1.0 In-Reply-To: References: In-Reply-To: References: Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org An xfrm_tunnel object is linked into the list when registering, so vti_ipip_handler can not be registered twice, otherwise its next pointer will be overwritten on the second time. So this patch is to define a new xfrm_tunnel object to register for AF_INET6. Fixes: e6ce64570f24 ("ip_vti: support IPIP6 tunnel processing") Signed-off-by: Xin Long --- net/ipv4/ip_vti.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/net/ipv4/ip_vti.c b/net/ipv4/ip_vti.c index c0b97b8f..3e5d545 100644 --- a/net/ipv4/ip_vti.c +++ b/net/ipv4/ip_vti.c @@ -484,6 +484,13 @@ static struct xfrm_tunnel vti_ipip_handler __read_mostly = { .err_handler = vti4_err, .priority = 0, }; + +static struct xfrm_tunnel vti_ipip6_handler __read_mostly = { + .handler = vti_rcv_tunnel, + .cb_handler = vti_rcv_cb, + .err_handler = vti4_err, + .priority = 0, +}; #endif static int __net_init vti_init_net(struct net *net) @@ -660,7 +667,7 @@ static int __init vti_init(void) if (err < 0) goto xfrm_tunnel_ipip_failed; #if IS_ENABLED(CONFIG_IPV6) - err = xfrm4_tunnel_register(&vti_ipip_handler, AF_INET6); + err = xfrm4_tunnel_register(&vti_ipip6_handler, AF_INET6); if (err < 0) goto xfrm_tunnel_ipip6_failed; #endif @@ -676,7 +683,7 @@ static int __init vti_init(void) rtnl_link_failed: #if IS_ENABLED(CONFIG_INET_XFRM_TUNNEL) #if IS_ENABLED(CONFIG_IPV6) - xfrm4_tunnel_deregister(&vti_ipip_handler, AF_INET6); + xfrm4_tunnel_deregister(&vti_ipip6_handler, AF_INET6); xfrm_tunnel_ipip6_failed: #endif xfrm4_tunnel_deregister(&vti_ipip_handler, AF_INET); @@ -699,7 +706,7 @@ static void __exit vti_fini(void) rtnl_link_unregister(&vti_link_ops); #if IS_ENABLED(CONFIG_INET_XFRM_TUNNEL) #if IS_ENABLED(CONFIG_IPV6) - xfrm4_tunnel_deregister(&vti_ipip_handler, AF_INET6); + xfrm4_tunnel_deregister(&vti_ipip6_handler, AF_INET6); #endif xfrm4_tunnel_deregister(&vti_ipip_handler, AF_INET); #endif From patchwork Mon Jul 13 07:42:37 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xin Long X-Patchwork-Id: 1327743 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=WFh/qh7M; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4B4wc934WYz9sR4 for ; Mon, 13 Jul 2020 17:43:05 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729013AbgGMHnE (ORCPT ); Mon, 13 Jul 2020 03:43:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49710 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728924AbgGMHnE (ORCPT ); Mon, 13 Jul 2020 03:43:04 -0400 Received: from mail-pj1-x1044.google.com (mail-pj1-x1044.google.com [IPv6:2607:f8b0:4864:20::1044]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 14128C061755 for ; Mon, 13 Jul 2020 00:43:04 -0700 (PDT) Received: by mail-pj1-x1044.google.com with SMTP id k5so5828726pjg.3 for ; Mon, 13 Jul 2020 00:43:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=vHvO/3zdXncLdQrcffVsJ30qW0QBRR0ZiyWOyTGXaOE=; b=WFh/qh7MKLYBoEFaDIUjItCRBUwBANbENAWWa3AnosWNlJzXHme6jPNTM246azAz0N 7Oh2vVShuzAT1sqiQyOh2p8OOFro4QSe7Fdf+IECd2Od7ERKwoT5vX/5mtjDlOQcQs3A zqM2o6KqMw/+lEy4DOAJ6sY3uwe6G0I821Dr3Hgob+QV8SNxkXHSZFHZtypQaDGdBQU4 0kakDh5YCFAJbtN7Ny8sXLOONyxwRh2nuufT0F0wmn6lsLIjsn2fCir86Me4WpwGJvwt vRcynsyT8dG+Ni+FRdXqnhlcxXeEyBcCth50Zs/0K/oETcL5a7yX7jOjpvPBvZJJ675T cqLw== 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:in-reply-to:references; bh=vHvO/3zdXncLdQrcffVsJ30qW0QBRR0ZiyWOyTGXaOE=; b=uNC86KGMwz4HvBYTJgcHOjrknn797dpq4b8/FBG1ClEB+e7A/ig5k78ruOXAJaBdi3 yJ7LnQvR+8KcyQjtfMMRjxOwK1QTCJ58uaSlDmo3QLAEC1d+HD+xoT+GthLUHppzbeDx OH/4ZD20WicwKmabgvYBRn6t+UWOetbb9cMiCd0NsNFS2jcNkvbWbMWH5wsSNsKx6Q5o uh7AUGdlLpG35R/F38V8EmONLYK5gbfvRViYFlx90PVhDK9Kx7zNCrXTv5yoWJSLZ4QN 87vci+ewirAefmJmbGBDXXmL7FLXFz2VwasGldxzJGmkvYUPeWW630CcAzSbmvldMH91 AyqQ== X-Gm-Message-State: AOAM531kFCz19PYfyfDG/mX758jdB5/uFLtdF/dcnYAz9n23JTI8S3MR Y5kerLpL6Clt/CAvVQC0plGlNlGB X-Google-Smtp-Source: ABdhPJxNkzlnsOsplgaQzJYQMpA5ozOYayI2o/+yMStgNblEa8bbvdNLL8Tc59tTnK8aF2kx8Gp0MA== X-Received: by 2002:a17:90a:304d:: with SMTP id q13mr18519432pjl.73.1594626183402; Mon, 13 Jul 2020 00:43:03 -0700 (PDT) Received: from localhost ([209.132.188.80]) by smtp.gmail.com with ESMTPSA id 22sm13442752pfh.157.2020.07.13.00.43.02 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 13 Jul 2020 00:43:02 -0700 (PDT) From: Xin Long To: netdev@vger.kernel.org Cc: Steffen Klassert , "David S. Miller" , Sabrina Dubroca Subject: [PATCH ipsec-next 2/3] ip6_vti: not register vti_ipv6_handler twice Date: Mon, 13 Jul 2020 15:42:37 +0800 Message-Id: <46e40c0e3e7f2b2739720e3a6926293410d0fc7f.1594625993.git.lucien.xin@gmail.com> X-Mailer: git-send-email 2.1.0 In-Reply-To: <834afa201899677daeb9d0f33d34bca15bf45a19.1594625993.git.lucien.xin@gmail.com> References: <834afa201899677daeb9d0f33d34bca15bf45a19.1594625993.git.lucien.xin@gmail.com> In-Reply-To: References: Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org An xfrm6_tunnel object is linked into the list when registering, so vti_ipv6_handler can not be registered twice, otherwise its next pointer will be overwritten on the second time. So this patch is to define a new xfrm6_tunnel object to register for AF_INET. Fixes: 2ab110cbb0c0 ("ip6_vti: support IP6IP tunnel processing") Signed-off-by: Xin Long --- net/ipv6/ip6_vti.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/net/ipv6/ip6_vti.c b/net/ipv6/ip6_vti.c index dfa93bc..18ec4ab 100644 --- a/net/ipv6/ip6_vti.c +++ b/net/ipv6/ip6_vti.c @@ -1236,6 +1236,13 @@ static struct xfrm6_tunnel vti_ipv6_handler __read_mostly = { .err_handler = vti6_err, .priority = 0, }; + +static struct xfrm6_tunnel vti_ip6ip_handler __read_mostly = { + .handler = vti6_rcv_tunnel, + .cb_handler = vti6_rcv_cb, + .err_handler = vti6_err, + .priority = 0, +}; #endif /** @@ -1268,7 +1275,7 @@ static int __init vti6_tunnel_init(void) err = xfrm6_tunnel_register(&vti_ipv6_handler, AF_INET6); if (err < 0) goto vti_tunnel_ipv6_failed; - err = xfrm6_tunnel_register(&vti_ipv6_handler, AF_INET); + err = xfrm6_tunnel_register(&vti_ip6ip_handler, AF_INET); if (err < 0) goto vti_tunnel_ip6ip_failed; #endif @@ -1282,7 +1289,7 @@ static int __init vti6_tunnel_init(void) rtnl_link_failed: #if IS_ENABLED(CONFIG_INET6_XFRM_TUNNEL) - err = xfrm6_tunnel_deregister(&vti_ipv6_handler, AF_INET); + err = xfrm6_tunnel_deregister(&vti_ip6ip_handler, AF_INET); vti_tunnel_ip6ip_failed: err = xfrm6_tunnel_deregister(&vti_ipv6_handler, AF_INET6); vti_tunnel_ipv6_failed: @@ -1306,7 +1313,7 @@ static void __exit vti6_tunnel_cleanup(void) { rtnl_link_unregister(&vti6_link_ops); #if IS_ENABLED(CONFIG_INET6_XFRM_TUNNEL) - xfrm6_tunnel_deregister(&vti_ipv6_handler, AF_INET); + xfrm6_tunnel_deregister(&vti_ip6ip_handler, AF_INET); xfrm6_tunnel_deregister(&vti_ipv6_handler, AF_INET6); #endif xfrm6_protocol_deregister(&vti_ipcomp6_protocol, IPPROTO_COMP); From patchwork Mon Jul 13 07:42:38 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xin Long X-Patchwork-Id: 1327744 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=JOa7GCum; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4B4wcK5hWfz9sR4 for ; Mon, 13 Jul 2020 17:43:13 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729034AbgGMHnM (ORCPT ); Mon, 13 Jul 2020 03:43:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49734 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726523AbgGMHnM (ORCPT ); Mon, 13 Jul 2020 03:43:12 -0400 Received: from mail-pg1-x544.google.com (mail-pg1-x544.google.com [IPv6:2607:f8b0:4864:20::544]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6B692C061755 for ; Mon, 13 Jul 2020 00:43:12 -0700 (PDT) Received: by mail-pg1-x544.google.com with SMTP id l63so5658098pge.12 for ; Mon, 13 Jul 2020 00:43:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :in-reply-to:references; bh=cYrn5Bfv+jEpWmHxo2r439RC/z0s/uzCMv12BRrgAWA=; b=JOa7GCumFIm46nVX+NC4U5YZEQVdoc1fNzohC51JzmhtXNSmy9yHhOAuCFEEtcixKZ iPIs0wDQTif2oJHe1UFPR8VnnMCYOhDg51FqDuH+t/m0Z4Y1ibJ7Q7Z7+Wwnq2kcsEOy o8tp7c6kIGOuPnY5vxuFFfTQ8s/Vl1B6em0jEQp6saNvx53SlZU5jhGS1Zv4e3KDRRDT Se75iKaPbxa0fD9g7wgmSIdpRA4f5pL94IqDp2e7H7WFUlRWlYz9HaUYihfRfAudPLvh gH5T+NdoBVMD8PLxIMmc6WZ1Jj03UUK7E1XWz9yLc4t6hxhiMjlpXAEi2p1e9syIOkWN CG/Q== 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:in-reply-to:references; bh=cYrn5Bfv+jEpWmHxo2r439RC/z0s/uzCMv12BRrgAWA=; b=CMgMG7WEewPwSw2UfT7j9dW9xasXMzNzqc43UIfGLIK7A5cnK79d4zG1j6SUU/cy0O tJeFr18e7ca+LryMsGoBPK4uguD+SsBgKPKvbrCCtUwH5yw8YT+pIsDwNqMFuuOT0gXm k7fAHjQqGQTHCaWwC//6oV/0rr+Qo0uqqat/uN3n0lX0ZiHHmVkhZh0+NtZ8skjMQR9O URxb9ylq0KY881u2mXGM37fS7TAhd5xHhXKuHr60F+jnGgGvR0vCrwKbnTJejf29uBPa AVqFjLcoJbfWBYBoRuIszj+mUirti05Bvk0YSlszm2c7MWw+ZTKxoMeKo6xSwSqD2egL DwGw== X-Gm-Message-State: AOAM530JHFpRBzQ1j9cBWThmsxKK05ytFPlY5EliXVHhcezquflDU6el +ROr3Kla2l32vc6YFFhDKB9BRV0A X-Google-Smtp-Source: ABdhPJypK/2TbQGnU2dLuPvSWyiU+Bqq3CCp0v5hf+SmyK3IbohodecYRU5Z8a6wDbwC5nT6XfdDnw== X-Received: by 2002:a63:e556:: with SMTP id z22mr67254011pgj.130.1594626191745; Mon, 13 Jul 2020 00:43:11 -0700 (PDT) Received: from localhost ([209.132.188.80]) by smtp.gmail.com with ESMTPSA id s6sm13146598pfd.20.2020.07.13.00.43.10 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 13 Jul 2020 00:43:11 -0700 (PDT) From: Xin Long To: netdev@vger.kernel.org Cc: Steffen Klassert , "David S. Miller" , Sabrina Dubroca Subject: [PATCH ipsec-next 3/3] xfrm: interface: not xfrmi_ipv6/ipip_handler twice Date: Mon, 13 Jul 2020 15:42:38 +0800 Message-Id: <55bb83485a64f16f12af4fe57246e7416660f493.1594625993.git.lucien.xin@gmail.com> X-Mailer: git-send-email 2.1.0 In-Reply-To: <46e40c0e3e7f2b2739720e3a6926293410d0fc7f.1594625993.git.lucien.xin@gmail.com> References: <834afa201899677daeb9d0f33d34bca15bf45a19.1594625993.git.lucien.xin@gmail.com> <46e40c0e3e7f2b2739720e3a6926293410d0fc7f.1594625993.git.lucien.xin@gmail.com> In-Reply-To: References: Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org As we did in the last 2 patches for vti(6), this patch is to define a new xfrm_tunnel object 'xfrmi_ipip6_handler' to register for AF_INET6, and a new xfrm6_tunnel object 'xfrmi_ip6ip_handler' to register for AF_INET. Signed-off-by: Xin Long --- net/xfrm/xfrm_interface.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/net/xfrm/xfrm_interface.c b/net/xfrm/xfrm_interface.c index a79eb49..5d50f1d 100644 --- a/net/xfrm/xfrm_interface.c +++ b/net/xfrm/xfrm_interface.c @@ -816,6 +816,13 @@ static struct xfrm6_tunnel xfrmi_ipv6_handler __read_mostly = { .err_handler = xfrmi6_err, .priority = -1, }; + +static struct xfrm6_tunnel xfrmi_ip6ip_handler __read_mostly = { + .handler = xfrmi6_rcv_tunnel, + .cb_handler = xfrmi_rcv_cb, + .err_handler = xfrmi6_err, + .priority = -1, +}; #endif static struct xfrm4_protocol xfrmi_esp4_protocol __read_mostly = { @@ -854,6 +861,13 @@ static struct xfrm_tunnel xfrmi_ipip_handler __read_mostly = { .err_handler = xfrmi4_err, .priority = -1, }; + +static struct xfrm_tunnel xfrmi_ipip6_handler __read_mostly = { + .handler = xfrmi4_rcv_tunnel, + .cb_handler = xfrmi_rcv_cb, + .err_handler = xfrmi4_err, + .priority = -1, +}; #endif static int __init xfrmi4_init(void) @@ -873,7 +887,7 @@ static int __init xfrmi4_init(void) err = xfrm4_tunnel_register(&xfrmi_ipip_handler, AF_INET); if (err < 0) goto xfrm_tunnel_ipip_failed; - err = xfrm4_tunnel_register(&xfrmi_ipip_handler, AF_INET6); + err = xfrm4_tunnel_register(&xfrmi_ipip6_handler, AF_INET6); if (err < 0) goto xfrm_tunnel_ipip6_failed; #endif @@ -897,7 +911,7 @@ static int __init xfrmi4_init(void) static void xfrmi4_fini(void) { #if IS_ENABLED(CONFIG_INET_XFRM_TUNNEL) - xfrm4_tunnel_deregister(&xfrmi_ipip_handler, AF_INET6); + xfrm4_tunnel_deregister(&xfrmi_ipip6_handler, AF_INET6); xfrm4_tunnel_deregister(&xfrmi_ipip_handler, AF_INET); #endif xfrm4_protocol_deregister(&xfrmi_ipcomp4_protocol, IPPROTO_COMP); @@ -922,7 +936,7 @@ static int __init xfrmi6_init(void) err = xfrm6_tunnel_register(&xfrmi_ipv6_handler, AF_INET6); if (err < 0) goto xfrm_tunnel_ipv6_failed; - err = xfrm6_tunnel_register(&xfrmi_ipv6_handler, AF_INET); + err = xfrm6_tunnel_register(&xfrmi_ip6ip_handler, AF_INET); if (err < 0) goto xfrm_tunnel_ip6ip_failed; #endif @@ -946,7 +960,7 @@ static int __init xfrmi6_init(void) static void xfrmi6_fini(void) { #if IS_ENABLED(CONFIG_INET6_XFRM_TUNNEL) - xfrm6_tunnel_deregister(&xfrmi_ipv6_handler, AF_INET); + xfrm6_tunnel_deregister(&xfrmi_ip6ip_handler, AF_INET); xfrm6_tunnel_deregister(&xfrmi_ipv6_handler, AF_INET6); #endif xfrm6_protocol_deregister(&xfrmi_ipcomp6_protocol, IPPROTO_COMP);