From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Miller Subject: Re: [PATCH net] net: ip6_gre: fix tunnel metadata device sharing. Date: Sat, 19 May 2018 23:33:23 -0400 (EDT) Message-ID: <20180519.233323.264373261644119438.davem@davemloft.net> References: <1526696548-8323-1-git-send-email-u9012063@gmail.com> Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: netdev@vger.kernel.org, petrm@mellanox.com To: u9012063@gmail.com Return-path: Received: from shards.monkeyblade.net ([184.105.139.130]:37688 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752459AbeETDdZ (ORCPT ); Sat, 19 May 2018 23:33:25 -0400 In-Reply-To: <1526696548-8323-1-git-send-email-u9012063@gmail.com> Sender: netdev-owner@vger.kernel.org List-ID: From: William Tu Date: Fri, 18 May 2018 19:22:28 -0700 > Currently ip6gre and ip6erspan share single metadata mode device, > using 'collect_md_tun'. Thus, when doing: > ip link add dev ip6gre11 type ip6gretap external > ip link add dev ip6erspan12 type ip6erspan external > RTNETLINK answers: File exists > simply fails due to the 2nd tries to create the same collect_md_tun. > > The patch fixes it by adding a separate collect md tunnel device > for the ip6erspan, 'collect_md_tun_erspan'. As a result, a couple > of places need to refactor/split up in order to distinguish ip6gre > and ip6erspan. > > First, move the collect_md check at ip6gre_tunnel_{unlink,link} and > create separate function {ip6gre,ip6ersapn}_tunnel_{link_md,unlink_md}. > Then before link/unlink, make sure the link_md/unlink_md is called. > Finally, a separate ndo_uninit is created for ip6erspan. Tested it > using the samples/bpf/test_tunnel_bpf.sh. > > Fixes: ef7baf5e083c ("ip6_gre: add ip6 erspan collect_md mode") > Signed-off-by: William Tu Applied and queued up for -stable.