From patchwork Tue Sep 25 15:03:39 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xiaoyu Min X-Patchwork-Id: 45331 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 54EB61B429; Tue, 25 Sep 2018 17:04:34 +0200 (CEST) Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40080.outbound.protection.outlook.com [40.107.4.80]) by dpdk.org (Postfix) with ESMTP id 88BC81B3E8 for ; Tue, 25 Sep 2018 17:04:30 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tooHFHKC5cI6Gin+krqQ02+vgXPy6Gq4oU28EH8NCQE=; b=LURGa021TOxTryZq9FZB9IwR+4eOMldqBtRum/CfQ8Q43pJsR+xRQUaKDg7vfZcuklfMVCpLC4uTnLQvLA8Uxj8cNimwjrlhPtzAavO6cziMyUQ04PVGqER4IJJ2MlNGtwqaMLdbA8CfGtfUGICI5kyN/WBBymdDN3CgLB1j2QA= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=jackmin@mellanox.com; Received: from dev-r630-08.mtbc.labs.mlnx (118.201.220.138) by VI1PR0501MB2031.eurprd05.prod.outlook.com (2603:10a6:800:36::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1164.20; Tue, 25 Sep 2018 15:04:24 +0000 From: Xiaoyu Min To: ferruh.yigit@intel.com, Adrien Mazarguil , Wenzhuo Lu , Jingjing Wu , Bernard Iremonger , John McNamara , Marko Kovacevic Cc: dev@dpdk.org Date: Tue, 25 Sep 2018 23:03:39 +0800 Message-Id: <20180925150340.25378-3-jackmin@mellanox.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180925150340.25378-1-jackmin@mellanox.com> References: <20180925150340.25378-1-jackmin@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [118.201.220.138] X-ClientProxiedBy: HK2PR04CA0053.apcprd04.prod.outlook.com (2603:1096:202:14::21) To VI1PR0501MB2031.eurprd05.prod.outlook.com (2603:10a6:800:36::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: bc6368a4-24dd-412f-a93e-08d622f83076 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989299)(4534165)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:VI1PR0501MB2031; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0501MB2031; 3:0MGM+5ug8KKBpAlfEA/eUBus86nbMvMl3/9DxeGv6Kw141wHzAB/sZfL1URLcpFrJo+TMpQCTs3rf93G0lbbh9eJSd/wEOeu9hfQp4ysycM3QGrpgWGVHohY+Va+3T4j/hN60N8QIWgFCz7/CdoYPqCIJGZP0fnEo45V3rEeEvM5uj0mcgwqEDbndTyqmlt/GCZET8mRVytQ/0qwC6kvJGd3DYaoeGoXCh9bdOgfeb7bF4xkSDy79TTZ+P15kDQL; 25:w+0qM0RH4DBugz/NtXrAOSoOkIcrZrWPwPTWDLHXMop0bWzmf4RU/+J3dko7PvUmqNJGfbBWJgU4tmj45icPYfFAaR/xbutJPsU5FEUR9alE0PHrKX2R7VKDUfetFbQfC+CSWLuKPcQDKmlHhamfYd+DlV/q/i1VlZqcFMfBTqGrSVeJwBxVXjhjgW9ViSSJyQJKUweIliOblAa1luSfPVWlTwEvaPo21ZBmflqVvtLDfyPqm5YqKviOkZRWQHTVamEsei6Wuzy+wqa8RjedrSdd+IKH5rAtgsup2x+9/cJv/lYQtvwfdj7o96A12Wt+YV2YiVQQbjWYeTwA0Kr2JA==; 31:WuUBuOQiew7wB6oJ0Wq+PjBIKMxe6VTLkANaZtV7zK+3uBEYrBGXZ8DtL2AeZ5mATOqP421PpDlfNSh90hzgcGgl8urDlQsYw3Ir7+w4Ui9Ens4TJZs7nSqX15qazXi6uHmzcjWhrSioauzf8HMg5n+d67tbHfWBVWVLoIcZW7DF+t3fZF0qH6kXM1B4kYtr0AUQRXnX/HHzrCtGRVWxAcIvqZW7wLpNLR1AoHBuIzc= X-MS-TrafficTypeDiagnostic: VI1PR0501MB2031: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; VI1PR0501MB2031; 20:JSYe+28Dwv/+ig7Ev5FTFrQ6Fp3KnYJV3OJqCC/gI8nZQylRpwGbnbkGENe6k72NRuG/gfrfR1xbRu5M2RBftlEVX0mM8r5H22pPvVpRWPDY0dGBL9RhIXjJ4ziFGhlyK5Hu9F3xWZ+/betCfV3OZq9KUDlvb+b8HHeSRkfIxn5KGMHWKdA+gli15G+8AsxZqaEHO+ilrNMapnhmskXlXXayFgmDYKrssTvePJwqOlI7LHZkcDaGDFc5PBDt4FC5w49LeggCKH9EpXH3qeHMuNjznsbxJc7baDrGyB6AXxIeLFZgaGnOZPsaSwjxeK1rD2N+je1cAcVoWeodw8VpX5kp4Z2ZoMNzlPmFQK/F1UJNZ0EBjWv8AAbNpd2bS4WFskWGRbO+E5OwVZnBs1n+meW/Zj1h4Dwf9R1G+5rhfLq2uqHtar8uBflVdlu6aeXoM8X07tE9aJ2XJb3WCmlr8V6o8/yc3zY/SG+c4N2dYNoJTiDwcghQ7o/IGPcnpk61; 4:Zw7bQiVajSWjy2fgwnrrLwsI7R+OsNQKPLQUzY7Utl3rxkqhNpnn8Ql0Vzi8p4xNScynadQgHkJiMgz0GR6L/O4ynThDawM4UsePoOS0eeX2klUii7+L4PE859SALldLD4l3Caxw7QgSoSdUSYYqq/0srf0hP4MXCjQSofZuiQb7E8EGfN3BcDTkuU2Pu9z8wXsutIkBIlDJbxmMKiC/tJ3+Y/N+25OVV72x6boxNyRC0xIUWJUUfIUzZHIxG+bGLG3QxXYNaK3F7BEAW/YwTA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(10201501046)(93006095)(93001095)(3231355)(944501410)(52105095)(3002001)(6055026)(149066)(150027)(6041310)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123560045)(20161123558120)(201708071742011)(7699051); SRVR:VI1PR0501MB2031; BCL:0; PCL:0; RULEID:; SRVR:VI1PR0501MB2031; X-Forefront-PRVS: 08062C429B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(396003)(136003)(366004)(346002)(376002)(39860400002)(199004)(189003)(26005)(956004)(6506007)(106356001)(105586002)(386003)(446003)(11346002)(486006)(2616005)(186003)(16526019)(476003)(6666003)(6486002)(305945005)(478600001)(34290500001)(8676002)(7736002)(2906002)(81166006)(97736004)(81156014)(5660300001)(6512007)(6116002)(3846002)(1076002)(53936002)(16586007)(4326008)(25786009)(110136005)(48376002)(51416003)(76176011)(52116002)(68736007)(50466002)(36756003)(50226002)(14444005)(316002)(66066001)(47776003)(86362001)(8936002); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR0501MB2031; H:dev-r630-08.mtbc.labs.mlnx; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR0501MB2031; 23:rPG69dSNFcfOdnpXEH6hRpO5oPUqtMZK3oQMT7H?= DqKNNJyF75bqqj+H2v3lhSw+E+KKqXvCER2237mF660xXSkEh44eGunAx+F7s4SChkyZk5aNA5Ubr+HHdw/cciBTwumK8k8H9oahNimYIiWzpJn9czgcxVcMjHxjVLgsdtBgozZuSyXRaaYNtqVpI1xHdhBazOu4Xr18Ntx+rlcwg3bJ5Kpg0WzFlLqFbvLf1+4FHKb5fTRWwAjhsfH1KYeHNfkuGMS0va2b2oMogzoZVH9O6Q3GZB0qOaTZOhRP4d2B4yQqoHN6uEfLgqmFYWHrtItMfq0VTyFQjckJDKDdM1fY3/KOrl0qgN6SfA29ZC5QOQ5Bw7nB09NAQR9r79WSHaBWLaijdDP/uKnth2C9JRY+eN5TjYaWkf5WzmDyo9HV401ceyJeTRgoXX33xf1P4dNkx9FYwVsi4YN14eZ6qn/hcvjvUKr0iCoy70JUr5bQnrnOWamCWNpl+ccghHlBjGdKQbO5fhXtiH/R7NV1Q/rV/B9WinyDeA8V7hmWcG6cRiHAIfkL0Rfz1Xpd/Yc2MYagRuf7Ldz5yvl4Ywui3+vZYqlgMaY7ZAZ1z/yCMV2/R5++/vraw180J+oDQN+a9W8x4Kyg7XwR4O4ElUBwRCylOq8X6+5rFgjnjS0Xrq1fqBr1UWqgFevM2p9i6eHQ86ZcSqz/Kuxz2cI9vXb+2KzS5QEH2hhamlz2cg4vRVPL+Ms4IiQubGzu+1nBBDQPkztSvtni+6Z0P69wzEo8M2UhUHzp/w44l59DIQigLcBSIyf9okz6jcHHKQnWJPr8Nn5rd4hDDty6+vysnPgX6kFDNmnJVN2UWzIXgFfj076SKy/pDC3uMxA991xmZVPQuzAGEHiw/qd9MHQT7TaSSdvLuaNwheA07y2mwhzzN4RAKfPcj3EjqEY+/JOZ2lkQWBfG75uVi860YHSvdv+BebPqugOiNV8hjeIqS8kVLyjse10K18mkhkCYU6soMV/RYnYucGVeLqdYmAkEvVSM0xqvcvw8cSYj59eWqR/56w+otXrCCxbj2GBBwU1tchag3SGflt6YJA+OAsvzBrMWNAe+b6yZ2z2485WTthmKS2PtWDVD1DAwvCuqE3/IeAuFS2lwc5QWLZihVJkurZS4S/zEfLPnAXHNc9MxU8BHY7dqSkNPamFKmcPDtzkoA4TIgq4freYB8lxRcZOW7x6anqA== X-Microsoft-Antispam-Message-Info: ShgoitutPYDUpJuUYlx1X9L8qe+VjeLUXiLe7TTqpuiNhN8NVXRpmcpj2iBovbsvZmXIaHEub/6ONlkW5EvP4QFEbywQ9CQl9jTRF/LPs/RGZh3QyzT2fgft82DqZ2ae2ku78GXkA1EwCKoTOYojEAILdVVoSWOywiin8C3iOEVJfAqF9qE2t7igpebWaO5XXwirOmThusZxRsvtWZbuP5TaOwt5tTmyOzNAvhXgaR+FQE6ZVKCeZjfpsVfH23qcxetTK0fXRoAazMM+WHhWQ9FQ0AWsYlm8btvkNp3dsYwqUP2VqhwV5sj1LMHRWKrfWOnpn3KsIHk7hmaK1Hu7mIsVaR16z9CQL4qhQfbf31o= X-Microsoft-Exchange-Diagnostics: 1; VI1PR0501MB2031; 6:x+HWnbLHvCPw49YiojZagjzFWoENwswcl8mFuJ4m+s8+Mvyma1TCs65K9MGjqz57ZgrNfJAh0ep2n9Klqc5gCht5BKtLbcy/VCDznnScp2DHT0Onu4wEdauaIfWJkIF1xXFe2yke5/I0O6UBs8zoK/n47p0bOWIPTDmvr95VABSI4KLfjiYIusMF83JV9OY7m2+hkENNc9fb9swQK266ERrOgcDd1qKYCvVSnBg0/JkskkBZf9Nrqi/PVjkipoPLgv2aHdkwLKuORMvmIXz4R5lvPKkmCgcEd4ZGJf0hSUbym7zKH5EkTO0pAJqL1+4RiRjdc5y7zgSKpqCq9epwnhpbEvzb2gqUosF031090WBYFD+lpt5x/2rOa+Mxh5xFzvLIdPaGIYz7OznWxNfMnJmCWpgUHF5fKD5vdYQaZ4HgBcdWMm0CaLaqgC9yV0Dlz97tPpk2bXoq+wYv77VyTQ==; 5:ydbb3VyUxQl3cTNH0MS85mzoUk0WhQbGubokqSxiUSe+xkuvwjnsS1by5jUQ7RrwgdSfQprBZS5QPgCQRrOIM19elIAFMVTS91paWtWJtX+sm/AmOvnelTyy9qEya/0JAMcxi0x1uo7z7KdC+a75SvBmsytP+014dz1p1WFfz3A=; 7:TG1rM7+66Yu1Iu5uz12aTdQF3D2H/TWb5qmVTAgEg5ompVJ2xeMG5hlL3FQd8ZnAGDaG8jacre4Pyxqqllf/DkhRT65tvaBxdr+14KanEuR2ZC8y9vHaVFJyXzJvDJS6fd1/zKA7mykEM7B24J+MPP7vI0eBXzrZ5kZJuy4Z8sw4JK0JccDmJ4V806tjPlFlbcmQxkmZonLmwfe3/emZq0l6/7C8/FdJu4wwD5WnfcoOKGg1AoLdhDSnJB3lw6yq SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Sep 2018 15:04:24.1679 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: bc6368a4-24dd-412f-a93e-08d622f83076 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0501MB2031 Subject: [dpdk-dev] [PATCH 2/3] app/testpmd: add commands of modify MAC address 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" add commands to support following actions: - RTE_FLOW_ACTION_TYPE_SET_MAC_SRC - RTE_FLOW_ACTION_TYPE_SET_MAC_DST Signed-off-by: Xiaoyu Min Acked-by: Yongseok Koh --- app/test-pmd/cmdline_flow.c | 50 +++++++++++++++++++++ app/test-pmd/config.c | 4 ++ doc/guides/testpmd_app_ug/testpmd_funcs.rst | 8 ++++ 3 files changed, 62 insertions(+) diff --git a/app/test-pmd/cmdline_flow.c b/app/test-pmd/cmdline_flow.c index fae825462..d06e75799 100644 --- a/app/test-pmd/cmdline_flow.c +++ b/app/test-pmd/cmdline_flow.c @@ -258,6 +258,10 @@ enum index { ACTION_DEC_TTL, ACTION_SET_TTL, ACTION_SET_TTL_TTL, + ACTION_SET_MAC_SRC, + ACTION_SET_MAC_SRC_MAC_SRC, + ACTION_SET_MAC_DST, + ACTION_SET_MAC_DST_MAC_DST, }; /** Maximum size for pattern in struct rte_flow_item_raw. */ @@ -839,6 +843,8 @@ static const enum index next_action[] = { ACTION_SET_TP_DST, ACTION_DEC_TTL, ACTION_SET_TTL, + ACTION_SET_MAC_SRC, + ACTION_SET_MAC_DST, ZERO, }; @@ -947,6 +953,12 @@ static const enum index action_set_ipv4_src[] = { ZERO, }; +static const enum index action_set_mac_src[] = { + ACTION_SET_MAC_SRC_MAC_SRC, + ACTION_NEXT, + ZERO, +}; + static const enum index action_set_ipv4_dst[] = { ACTION_SET_IPV4_DST_IPV4_DST, ACTION_NEXT, @@ -989,6 +1001,12 @@ static const enum index action_jump[] = { ZERO, }; +static const enum index action_set_mac_dst[] = { + ACTION_SET_MAC_DST_MAC_DST, + ACTION_NEXT, + ZERO, +}; + static int parse_init(struct context *, const struct token *, const char *, unsigned int, void *, unsigned int); @@ -2654,6 +2672,38 @@ static const struct token token_list[] = { (struct rte_flow_action_set_ttl, ttl_value)), .call = parse_vc_conf, }, + [ACTION_SET_MAC_SRC] = { + .name = "set_mac_src", + .help = "set source mac address", + .priv = PRIV_ACTION(SET_MAC_SRC, + sizeof(struct rte_flow_action_set_mac)), + .next = NEXT(action_set_mac_src), + .call = parse_vc, + }, + [ACTION_SET_MAC_SRC_MAC_SRC] = { + .name = "mac_addr", + .help = "new source mac address", + .next = NEXT(action_set_mac_src, NEXT_ENTRY(MAC_ADDR)), + .args = ARGS(ARGS_ENTRY_HTON + (struct rte_flow_action_set_mac, mac_addr)), + .call = parse_vc_conf, + }, + [ACTION_SET_MAC_DST] = { + .name = "set_mac_dst", + .help = "set destination mac address", + .priv = PRIV_ACTION(SET_MAC_DST, + sizeof(struct rte_flow_action_set_mac)), + .next = NEXT(action_set_mac_dst), + .call = parse_vc, + }, + [ACTION_SET_MAC_DST_MAC_DST] = { + .name = "mac_addr", + .help = "new destination mac address to set", + .next = NEXT(action_set_mac_dst, NEXT_ENTRY(MAC_ADDR)), + .args = ARGS(ARGS_ENTRY_HTON + (struct rte_flow_action_set_mac, mac_addr)), + .call = parse_vc_conf, + }, }; /** Remove and return last entry from argument stack. */ diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index d28b6ed14..c2cbf5ce8 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -1177,6 +1177,10 @@ static const struct { MK_FLOW_ACTION(DEC_TTL, 0), MK_FLOW_ACTION(SET_TTL, sizeof(struct rte_flow_action_set_ttl)), + MK_FLOW_ACTION(SET_MAC_SRC, + sizeof(struct rte_flow_action_set_mac)), + MK_FLOW_ACTION(SET_MAC_DST, + sizeof(struct rte_flow_action_set_mac)), }; /** Compute storage space needed by action configuration and copy it. */ diff --git a/doc/guides/testpmd_app_ug/testpmd_funcs.rst b/doc/guides/testpmd_app_ug/testpmd_funcs.rst index db68c4346..0a8cc73a3 100644 --- a/doc/guides/testpmd_app_ug/testpmd_funcs.rst +++ b/doc/guides/testpmd_app_ug/testpmd_funcs.rst @@ -3726,6 +3726,14 @@ This section lists supported actions and their attributes, if any. - ``set_ttl``: Set TTL value with specificed value - ``ttl_value {unsigned}``: The new TTL value to be set +- ``set_mac_src``: set source MAC address + + - ``mac_addr {MAC-48}``: new source MAC address + +- ``set_mac_dst``: set destination MAC address + + - ``mac_addr {MAC-48}``: new destination MAC address + Destroying flow rules ~~~~~~~~~~~~~~~~~~~~~