From patchwork Fri Mar 22 18:33:00 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Willem de Bruijn X-Patchwork-Id: 1061511 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@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; 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.b="Nu5mloZp"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44Qsjc6RSnz9sRY for ; Sat, 23 Mar 2019 05:33:24 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729280AbfCVSdX (ORCPT ); Fri, 22 Mar 2019 14:33:23 -0400 Received: from mail-qt1-f195.google.com ([209.85.160.195]:33414 "EHLO mail-qt1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729269AbfCVSdW (ORCPT ); Fri, 22 Mar 2019 14:33:22 -0400 Received: by mail-qt1-f195.google.com with SMTP id k14so3678818qtb.0 for ; Fri, 22 Mar 2019 11:33:21 -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 :mime-version:content-transfer-encoding; bh=7UWFSxcw2QlWgfFUBLbBz67vjVubFjwYhkLBx4l4Mkc=; b=Nu5mloZpX+DmzXSXOtWsrhAyq1kMT4XHRgjdZ/AuGvTWQvycI5x5ddeWEzAAN8b2LL YmTmGijy755irUkif4Y0ssK/T1jVYJ1+A13zQp8fCtrvgCVUKheS0QX+tHr2pf4SJ7Pb BDKW2PQ2zgQIR5MCo3tTlwe2kAJ3whrkAPtYZ4votX7WlNDhaFSsduH/NQ19kSOxCzLf Jl9Tjhmdb0TmddXUwGVbkMi5gafcsPATzHG59nW7pbq4MldeInhJRLBa7aHzfRTTIWQJ Zs0XndlnMocxplj3ATRIIsdNe/K86jL2J4TEqdpI0D+iqRMUl+HBcu3dOs1SaYntg8IF HWZg== 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:mime-version:content-transfer-encoding; bh=7UWFSxcw2QlWgfFUBLbBz67vjVubFjwYhkLBx4l4Mkc=; b=Panbwr9oMCr8JI+xhNBsaEh84e5qoe/4hW/iH+yaRgnS7nmcV2umOHWBwrSCgz2Z+w yH1E6H7w2zwYy2xkLZD8+oIua3jSf51+ux+D9Xx1QN5dCoBJYmi29EKoqF+VpkjJtXci s0j5cCpX6nOSod7ByD6S0NCsQv/ewVteeReTpNkxZcyfTeChM4ojuVSQ24A0ADh7r/g9 UQDKv/EZYX9wfGuezZoapMtsWOUieajcqwKu0GAzv8drFsR98BW5C7EaNLLLNkAe71og orjTcDrc4lDkIw8Z4xXtEsuoBNSEeYenhtVr/MiCcPJC0ApMG1YFOBBaZPgA3im3Cmda 9mdg== X-Gm-Message-State: APjAAAUYFRDECqv6jX1tPXt+qAR5bpmwuMwefMGee/9a/3XVQdw1tpgb nEoOBc7DerG4W3lW4cYzJW8Hqjfk X-Google-Smtp-Source: APXvYqz1tKrfAfAlL6R3q0zcaZTEr86Fpgo0uouG7cBUOk8T6f91rLzwXUudKC4Ior5Tn/o4f0BY4Q== X-Received: by 2002:a0c:ad4c:: with SMTP id v12mr9545547qvc.240.1553279600864; Fri, 22 Mar 2019 11:33:20 -0700 (PDT) Received: from willemb1.nyc.corp.google.com ([2620:0:1003:315:3fa1:a34c:1128:1d39]) by smtp.gmail.com with ESMTPSA id t49sm5828331qte.86.2019.03.22.11.33.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Mar 2019 11:33:20 -0700 (PDT) From: Willem de Bruijn To: netdev@vger.kernel.org Cc: ast@kernel.org, daniel@iogearbox.net, sdf@google.com, posk@google.com, Willem de Bruijn Subject: [PATCH bpf-next v3 13/13] selftests/bpf: convert bpf tunnel test to encap modes Date: Fri, 22 Mar 2019 14:33:00 -0400 Message-Id: <20190322183300.196277-14-willemdebruijn.kernel@gmail.com> X-Mailer: git-send-email 2.21.0.392.gf8f6787159e-goog In-Reply-To: <20190322183300.196277-1-willemdebruijn.kernel@gmail.com> References: <20190322183300.196277-1-willemdebruijn.kernel@gmail.com> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Willem de Bruijn Make the tests correctly annotate skbs with tunnel metadata. This makes the gso tests succeed. Enable them. Signed-off-by: Willem de Bruijn --- .../selftests/bpf/progs/test_tc_tunnel.c | 19 +++++++++++++++---- tools/testing/selftests/bpf/test_tc_tunnel.sh | 10 ++++------ 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/tools/testing/selftests/bpf/progs/test_tc_tunnel.c b/tools/testing/selftests/bpf/progs/test_tc_tunnel.c index 3b79dffb8103..f541c2de947d 100644 --- a/tools/testing/selftests/bpf/progs/test_tc_tunnel.c +++ b/tools/testing/selftests/bpf/progs/test_tc_tunnel.c @@ -70,8 +70,13 @@ static __always_inline int encap_ipv4(struct __sk_buff *skb, bool with_gre) if (tcph.dest != __bpf_constant_htons(cfg_port)) return TC_ACT_OK; - flags = BPF_F_ADJ_ROOM_FIXED_GSO; - olen = with_gre ? sizeof(h_outer) : sizeof(h_outer.ip); + flags = BPF_F_ADJ_ROOM_FIXED_GSO | BPF_F_ADJ_ROOM_ENCAP_L3_IPV4; + if (with_gre) { + flags |= BPF_F_ADJ_ROOM_ENCAP_L4_GRE; + olen = sizeof(h_outer); + } else { + olen = sizeof(h_outer.ip); + } /* add room between mac and network header */ if (bpf_skb_adjust_room(skb, olen, BPF_ADJ_ROOM_MAC, flags)) @@ -119,8 +124,14 @@ static __always_inline int encap_ipv6(struct __sk_buff *skb, bool with_gre) if (tcph.dest != __bpf_constant_htons(cfg_port)) return TC_ACT_OK; - flags = BPF_F_ADJ_ROOM_FIXED_GSO; - olen = with_gre ? sizeof(h_outer) : sizeof(h_outer.ip); + flags = BPF_F_ADJ_ROOM_FIXED_GSO | BPF_F_ADJ_ROOM_ENCAP_L3_IPV6; + if (with_gre) { + flags |= BPF_F_ADJ_ROOM_ENCAP_L4_GRE; + olen = sizeof(h_outer); + } else { + olen = sizeof(h_outer.ip); + } + /* add room between mac and network header */ if (bpf_skb_adjust_room(skb, olen, BPF_ADJ_ROOM_MAC, flags)) diff --git a/tools/testing/selftests/bpf/test_tc_tunnel.sh b/tools/testing/selftests/bpf/test_tc_tunnel.sh index cda5317790d2..dcf320626931 100755 --- a/tools/testing/selftests/bpf/test_tc_tunnel.sh +++ b/tools/testing/selftests/bpf/test_tc_tunnel.sh @@ -97,13 +97,11 @@ if [[ "$#" -eq "0" ]]; then echo "ip6 gre" $0 ipv6 ip6gre 100 - # disabled until passes SKB_GSO_DODGY checks - # echo "ip gre gso" - # $0 ipv4 gre 2000 + echo "ip gre gso" + $0 ipv4 gre 2000 - # disabled until passes SKB_GSO_DODGY checks - # echo "ip6 gre gso" - # $0 ipv6 ip6gre 2000 + echo "ip6 gre gso" + $0 ipv6 ip6gre 2000 echo "OK. All tests passed" exit 0