From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wj0-f173.google.com (mail-wj0-f173.google.com [209.85.210.173]) by dpdk.org (Postfix) with ESMTP id 1B7FBFBF5 for ; Tue, 20 Dec 2016 19:43:31 +0100 (CET) Received: by mail-wj0-f173.google.com with SMTP id v7so184141605wjy.2 for ; Tue, 20 Dec 2016 10:43:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references; bh=f/bzLpa580jhGm0RLew22nQaQJx/k/sbrQ01pfRKBZA=; b=Pwpzfsi5x7/AZW1ipeCstI03HM0PJmSmygPV36lkKSWo5rKwx+16LQq9c/dpecn9UE 4u8/cm4GHSQy6Y6YW5Mx4xZYvMjx8GygTpTY27xi6PyI8kuXadc+baK0s6ZOpC0Zpfhy 1iA4qVQxxOFbTpGMNzinJF8uvSV+D7B3TQXFGsoS/jp9jYROlN4pdLbP9dwaD5pL3pi+ wpUswTSW2D8kbpKo9TyP4GhAr43AX1Mz8j2Msf+h9KzgU45wMkuFzzgBr+m85F59fkUt dUw2J1PU/99LlP2VFYNr7GSN9PBbTX/f7n29ulwZ42Vc96W89brTRQRhknO7VEC5pTxy Zh0A== 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=f/bzLpa580jhGm0RLew22nQaQJx/k/sbrQ01pfRKBZA=; b=BDCNHvKigl9ddathEGBiyJjP/16Gft3/GAqsjBGLY7hAlLVb/d+mqtrNULB+oK2TUU eZsuV41HqiHy/PZfeovh6vQDFHKjW33PjJjpn+KtyZLyJiMcvtONv9QBXNd44dgIhhQ1 3QyW/8D2C5JWHHkC3Gv+cR/Wv8x7m2vH0zkivqCI39s/oCVkyflFNzUnzCIilI3NWdra OJWd/tu7YjeC9OalnP48a86ohMfx9w81DIIWwtgeIv/PGHBSLP/8XsbFRcUq7isY7OKj EI6F791/IrBS1Kts152f6Lbpzt7PFWNv21+P2njCyjQI6yMbROLVn4yx7vp1uZWI4yDh RL0g== X-Gm-Message-State: AIkVDXKRda0AvK4oTGbCXSag3dFkxyJmI7pILzODOAJacOHdMXN9JFlROl/Cg2GpEwFUB4iO X-Received: by 10.194.113.169 with SMTP id iz9mr709873wjb.57.1482259411538; Tue, 20 Dec 2016 10:43:31 -0800 (PST) Received: from 6wind.com (guy78-3-82-239-227-177.fbx.proxad.net. [82.239.227.177]) by smtp.gmail.com with ESMTPSA id 81sm23392640wmw.7.2016.12.20.10.43.30 for (version=TLS1_2 cipher=AES128-SHA bits=128/128); Tue, 20 Dec 2016 10:43:30 -0800 (PST) From: Adrien Mazarguil To: dev@dpdk.org Date: Tue, 20 Dec 2016 19:42:35 +0100 Message-Id: <14e5f01293a1cdb99859f42da2838d23cd6b1ca2.1482257521.git.adrien.mazarguil@6wind.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: References: Subject: [dpdk-dev] [PATCH v4 18/25] app/testpmd: add various items to flow command X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Dec 2016 18:43:32 -0000 - PF: match packets addressed to the physical function. - VF: match packets addressed to a virtual function ID. - PORT: device-specific physical port index to use. Signed-off-by: Adrien Mazarguil Acked-by: Olga Shern --- app/test-pmd/cmdline_flow.c | 53 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c index 09e9177..bc200a7 100644 --- a/app/test-pmd/cmdline_flow.c +++ b/app/test-pmd/cmdline_flow.c @@ -101,6 +101,11 @@ enum index { ITEM_INVERT, ITEM_ANY, ITEM_ANY_NUM, + ITEM_PF, + ITEM_VF, + ITEM_VF_ID, + ITEM_PORT, + ITEM_PORT_INDEX, /* Validate/create actions. */ ACTIONS, @@ -298,6 +303,9 @@ static const enum index next_item[] = { ITEM_VOID, ITEM_INVERT, ITEM_ANY, + ITEM_PF, + ITEM_VF, + ITEM_PORT, ZERO, }; @@ -307,6 +315,18 @@ static const enum index item_any[] = { ZERO, }; +static const enum index item_vf[] = { + ITEM_VF_ID, + ITEM_NEXT, + ZERO, +}; + +static const enum index item_port[] = { + ITEM_PORT_INDEX, + ITEM_NEXT, + ZERO, +}; + static const enum index next_action[] = { ACTION_END, ACTION_VOID, @@ -601,6 +621,39 @@ static const struct token token_list[] = { .next = NEXT(item_any, NEXT_ENTRY(UNSIGNED), item_param), .args = ARGS(ARGS_ENTRY(struct rte_flow_item_any, num)), }, + [ITEM_PF] = { + .name = "pf", + .help = "match packets addressed to the physical function", + .priv = PRIV_ITEM(PF, 0), + .next = NEXT(NEXT_ENTRY(ITEM_NEXT)), + .call = parse_vc, + }, + [ITEM_VF] = { + .name = "vf", + .help = "match packets addressed to a virtual function ID", + .priv = PRIV_ITEM(VF, sizeof(struct rte_flow_item_vf)), + .next = NEXT(item_vf), + .call = parse_vc, + }, + [ITEM_VF_ID] = { + .name = "id", + .help = "destination VF ID", + .next = NEXT(item_vf, NEXT_ENTRY(UNSIGNED), item_param), + .args = ARGS(ARGS_ENTRY(struct rte_flow_item_vf, id)), + }, + [ITEM_PORT] = { + .name = "port", + .help = "device-specific physical port index to use", + .priv = PRIV_ITEM(PORT, sizeof(struct rte_flow_item_port)), + .next = NEXT(item_port), + .call = parse_vc, + }, + [ITEM_PORT_INDEX] = { + .name = "index", + .help = "physical port index", + .next = NEXT(item_port, NEXT_ENTRY(UNSIGNED), item_param), + .args = ARGS(ARGS_ENTRY(struct rte_flow_item_port, index)), + }, /* Validate/create actions. */ [ACTIONS] = { .name = "actions", -- 2.1.4