From patchwork Mon Dec 17 19:39:45 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: William Tu X-Patchwork-Id: 1014725 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="dJef9mmL"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43JWjG4bSTz9s6w for ; Tue, 18 Dec 2018 06:40:50 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388385AbeLQTkt (ORCPT ); Mon, 17 Dec 2018 14:40:49 -0500 Received: from mail-pl1-f196.google.com ([209.85.214.196]:36626 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388355AbeLQTkq (ORCPT ); Mon, 17 Dec 2018 14:40:46 -0500 Received: by mail-pl1-f196.google.com with SMTP id g9so6600222plo.3 for ; Mon, 17 Dec 2018 11:40:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references; bh=IL1HdoG7f7b4Z+/dVhvpoRhu3cmc1w9Xu0Sqvt8ovTw=; b=dJef9mmLV20DAJdRvI8dokndvpQn3PM6d4JZLGga/+qA7g5l3hSc8+ps4n28IjXw9Z SK3dT8e6DiWW2AlNf99hF5fO20vGgLIF5ZbV4OcuqmQ/TCisGJq0bMVWfM4yr2zqIzyv Kdo/g1ZbNp1IfK0F4BLTk2rxNKv52zF8fh61f7APLyYrzSGxUfZcLZzRxKHwgJPmYCGk 7jDe6KZceyhhwb8d5ypQwfZiCfLzJIS2eGfacbe+x7YUYOQDKYxIu95ohCEl2nJpzWoK UkPdJ52BS53z7FHsxtjUJ0m2dcY18PmcBkRLKipVn906ZD0yUjcPd1JMy1Ks8B7JIFgI kwoA== 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:in-reply-to :references; bh=IL1HdoG7f7b4Z+/dVhvpoRhu3cmc1w9Xu0Sqvt8ovTw=; b=ilapwRgOaGfeUDahY0+QpAvVXsTZyNaX1+n6freamD8V0LIqhIYDYNz2tW7ch/3TWm BxZ0OzcNrrjCEHi84YdSYepQYsa8xk0we2gOct+T4jb5YirVVNAxumSZWMY5IYgrjiQZ EYrVKR/84DAGsRPVEgIET3XgG+zwVuZjKM940ll3LsZRlbOgsJIdYACUXMQBgRyZy6TY nP58xsbsSZHbKGo1bXNr8dDj53LQCfDe8efHB0jxfKATlVOq8uLbtH6XTgyTNd3wqMqP dXmUhC31FVKXJTdjy+j49UBdvo9zFVztVMcH2cxYkrZPo1nrq8dRoBxOfv2m6Ota15Dk L/HA== X-Gm-Message-State: AA+aEWZCVRRqHlUxsBvGFf2uSCUVrzqCCdgJfzHSEh9yZOJEqmlcTlaG MLYg/kGSJRYHR4vhPlyqIyQ= X-Google-Smtp-Source: AFSGD/Wwjdgl3fSI3yUPkpwiK/jupPjOb18r7MjPOQ3Rug+2bgLFVEF/IF8b67r0+8kHVBUvO2vsiQ== X-Received: by 2002:a17:902:5ac2:: with SMTP id g2mr13788500plm.313.1545075644933; Mon, 17 Dec 2018 11:40:44 -0800 (PST) Received: from sc9-mailhost3.vmware.com ([66.170.99.1]) by smtp.gmail.com with ESMTPSA id q75sm19965721pfa.38.2018.12.17.11.40.44 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 17 Dec 2018 11:40:44 -0800 (PST) From: William Tu To: bjorn.topel@gmail.com, magnus.karlsson@gmail.com, ast@kernel.org, daniel@iogearbox.net, netdev@vger.kernel.org, makita.toshiaki@lab.ntt.co.jp Subject: [bpf-next RFC 3/3] samples: bpf: add veth AF_XDP example. Date: Mon, 17 Dec 2018 11:39:45 -0800 Message-Id: <1545075585-27744-4-git-send-email-u9012063@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1545075585-27744-1-git-send-email-u9012063@gmail.com> References: <1545075585-27744-1-git-send-email-u9012063@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Add example use cases for AF_XDP socket on two namespaces. The script runs sender at the root namespace, and receiver at the at_ns0 namespace with different XDP actions. Signed-off-by: William Tu --- samples/bpf/test_veth_afxdp.sh | 67 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100755 samples/bpf/test_veth_afxdp.sh diff --git a/samples/bpf/test_veth_afxdp.sh b/samples/bpf/test_veth_afxdp.sh new file mode 100755 index 000000000000..b65311cf15f7 --- /dev/null +++ b/samples/bpf/test_veth_afxdp.sh @@ -0,0 +1,67 @@ +#!/bin/bash +# SPDX-License-Identifier: GPL-2.0 + +# The script runs the sender at the root namespace, and +# the receiver at the namespace at_ns0, with different mode +# 1. XDP_DROP +# 2. XDP_TX +# 3. XDP_PASS +# 4. XDP_REDIRECT +# 5. Generic XDP + +XDPSOCK=./xdpsock +XDP_RXQ_INFO=./xdp_rxq_info + +ip netns add at_ns0 +ip link add p0 type veth peer name p1 +ip link set p0 netns at_ns0 +ip link set dev p1 up +ip netns exec at_ns0 ip link set dev p0 up + +# send at root namespace +test_xdp_drop() +{ + echo "[Peer] XDP_DROP" + ip netns exec at_ns0 $XDP_RXQ_INFO --dev p0 --action XDP_DROP & + $XDPSOCK -i p1 -t -N -z &> /tmp/t &> /dev/null & +} + +test_xdp_pass() +{ + echo "[Peer] XDP_PASS" + ip netns exec at_ns0 $XDP_RXQ_INFO --dev p0 --action XDP_PASS & + $XDPSOCK -i p1 -t -N -z &> /tmp/t &> /dev/null & +} + +test_xdp_tx() +{ + echo "[Peer] XDP_TX" + ip netns exec at_ns0 $XDP_RXQ_INFO --dev p0 --action XDP_TX & + $XDPSOCK -i p1 -t -N -z &> /tmp/t &> /dev/null & +} + +test_generic_xdp() +{ + echo "[Peer] Generic XDP" + ip netns exec at_ns0 $XDPSOCK -i p0 -r -S & + $XDPSOCK -i p1 -t -N -z &> /tmp/t &> /dev/null & +} + +test_xdp_redirect() +{ + echo "[Peer] XDP_REDIRECT" + ip netns exec at_ns0 $XDPSOCK -i p0 -r -N & + $XDPSOCK -i p1 -t -N -z &> /tmp/t &> /dev/null & +} + +cleanup() { + killall xdpsock + killall xdp_rxq_info + ip netns del at_ns0 + ip link del p1 +} + +trap cleanup 0 3 6 + +test_xdp_drop +cleanup