From patchwork Tue Sep 25 15:03:38 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xiaoyu Min X-Patchwork-Id: 45330 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 847441B3F5; Tue, 25 Sep 2018 17:04:31 +0200 (CEST) Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30066.outbound.protection.outlook.com [40.107.3.66]) by dpdk.org (Postfix) with ESMTP id F21581B3BC for ; Tue, 25 Sep 2018 17:04:26 +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=999nD3CMIX1KHh0M7/LGATxTyIBGjscxsPHrUTYNzUs=; b=iy/GQM4EtP+lNlWQ3VUlw9VdtIdY1FR6yXyRI01ur+Cu62UBWRX/BlNzBslSg4oH7ezSepDUG+f5MNFjFnqi8cQWzQjCIUnyTQUBm50RXZt74avESB4Qd0PkWL3/BhTbsRlWxhPzrGZ7UDIg+sUKsWjuuSoyV5Xy3BwXLOrnfDs= 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:19 +0000 From: Xiaoyu Min To: ferruh.yigit@intel.com, Adrien Mazarguil , John McNamara , Marko Kovacevic , Thomas Monjalon , Andrew Rybchenko Cc: dev@dpdk.org Date: Tue, 25 Sep 2018 23:03:38 +0800 Message-Id: <20180925150340.25378-2-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: abeaed9c-6636-4991-a525-08d622f82db8 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:iTJAnvhuxz8Q3ITHIkVO+h6WSX9B7lPnl1LbdYhonoxbD4S/RlqTH75x1THMIQEoLKhpCbnXO8mml08qjE9vI9pOwsGXwHa64XhhHQE2LlmL9aZ87CZjWrPhYypnelTbuTxsDIzWwmiyVroYZyrlvuJgQTS9d2cz9BCcrsOcuH0yWoXQjbYUEznytbGXLy8Q/VXMViI7TgF1+xY6zOFq6qTxH/NT7y7dFtLFcEJSIzuce0z/ZjojahTmwnlqAnm6; 25:uphARiIyVZMtIAQc0L8Eha35PupwZ/fg6FFpmOpIbDMnNxyo2EN9/ojv+Sj44qdp8Ax8KpMv627tBlcKv6Xg4qfvbtAi47mOqwn26rfJ2m+UU+3qjg2YH745CRjvaBvN8iGOgULrrnPCWcl4uJCnP5gOv0w+/PXxj9cyOqKmHfrFbqO7eqB7FVYC/54CSM39fsjs+AOhU2HREHY26bOzXZ/YKM2pHBKCtMl9EmGihnI75fHGlKE5OlgQmbPWYOMcoNvzhoUuPgUWfxzhgJkTDL0CT0Fxp3tJBo1ltGGZ/7OrPIoHUpULqwFl8+lbeL8vf44Y948ZzXnzWVp4neCYUA==; 31:WRszFkC60pVqx+vPa8zafXs7C3jahFHjW6M1BihGa94pZ9O1u4nbd7jM1CdxbMLvT2jqYrjwDtAa41QytsQZHnK6z0aVUetm3eHEYsyS5YKDBb9lx4yhquCmZNALKheloXpZRn8CULJZtzaafl2dEu9znYhda1+JM6f+I1Xt48b6dnm4LL4zvOOOynnLC5ViO8qdZWtUv/ABotS8RzTTtRJ8bL9zwFf9LVNM441AV0s= X-MS-TrafficTypeDiagnostic: VI1PR0501MB2031: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; VI1PR0501MB2031; 20:OYCNKNnh3XuYVzC5L7OBx4Wfj9NhKyUICeSi1KDe2x47YGJMvGvh8/EqfxQQDBbZS9L6LYUQymG7zomhGESF8A3QKQRW8gYysXsXGNH9XWwvTODdsW9OiBEEpWPCXvV3lsBcQrRrO7V7mEOQApBpLDuFssEd5pVwlDKSCBaU5ZgJ8xkUYQgiBxlcdflYs/A1ixCaDhpQ7/jIVE+GC5AFopzl0cciNVNmjoG6ht0AEqNl4fIRlHmqQ/biSb6YqdGmclmnS6evfETIT7ZFgCxBn+0Y8c1+tG4S756/OfWKCScUDXcvVSHnJy2IlIIGbwGrybFTBnvHcGY0mHAN68GyRc1X61Zui0ppDkyKq6zOTlXKfbbwmhLZ/JimxKSRzwMrXqjs3itjDQg9RK5RsCbm6/XoRN16hvJerH4mhjopgNQRNKQVr7ByfroD8/ql2UfMPsw7FEuq6fXP9hUdmzao28+7PzJXmIqN4kqpCrfjGRj9oR2Kg7iJFq35nm7J+0As; 4:SDHpFTjcoK8ALA2zgCaxoWwLdsFUAhxcsW0rZXnROIE8Gl/VmJ89PRzbz8XoNA++xVt68L6tF5xtwystqktUdp6TJTAFdq9JuLBWLPO7SUtOrUDEXpO3Q5gJPOpb/QxiLoCUt6A6K5za6D6FbqWleb4TnID8pJqh1ka/x1rxokj2PMTJhwbN2x413m5k8QYVKMbYRzJOR0d/MOxy9QpROxaCL0t4EiP1aGV6LmbQj5xkB1XApbTo0u5YRQ6x6MoZFZKoZrjH+JlMKswmUPcNmw== 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)(41533002); 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:U4ocOafcs00K41N13rcd6p99605s0rNktKxL1kg?= 3x6VoLkp9kgtsxnsJndU393hnDf4Jd1Ux/GENa+XCchj3bm8+Kc1AGiM82vFH9mUhp/GHD/fUHaVfWFwsy82rUTd9McKhDAyidhqxOSYHgLEBfVgNsT9n20CtllNOHfkTFvRzAeJz/FOEwy73UO30yIoD7QKZzgbfeRjSdSjdL/kVw/iZuG6QNQAeA98G2q/Rbxpi4fMEsToz7zbSL1xLnju+veFufPJBp22VSDXRUn55hyKbx8Ch7arca/uQYOzmk8CX6LOcuomxEHFMfYb4C6t2tS0lD075mUvnt1oS2ouu9ybpSzHHvMhgbhu89qqwLSxxpec/g7WepHd5/Tj43KCuoRS6B/yFDPFv1VfQGfydUitlgqrOLjUxn3q/5wbUmRJ/1uZmwrxHwnYDtILqPUJZfjKVZOm2NnmicVd/DXdanwyH6L2v8XkqVrXggHg38Ut1B3aoG16gA1La+T1BlFaWzXDUBOdxkkS0RtcSyWsmLxnWvIxHgEIllz1zt09wWKe9G/igRSBKgRlOSV4Uf0m0xhP3B7rHlDeCBLq/JfATx/6peE4eH0B0niIwgLH7p79EA1WrrdRTEfQjd4n6G9WlUzZBMAzdveqnC3/6EEMzbSUM3EBOwrMmv4l4X5L3PnC1RaJ3NOTfuauDnSpsZ6pVhEOdYKH2AVK9xngn+wF81gd06CYvjv4LkQFRWduqLUi3IvBBjZRfbjg8JoNcJOfFSuCJ1ds9uCECzEhD1AOQhQ+gx8EbjbtJCQjoy9Ovib1UHgBkgVloq126uZ1FMF/ZEu2mQb30M+WVL/C19CHhtnRzuN6UntqnuNBc8nJ4FR7aAwYgaRlYqp46eEQsyds8POJDOTua9/bOS8Gos5xBfc1Sssq47k4XAK+PCtcEq6BtNugb9ugYptACw6ajgG1T606QqTBKzjnEGKr5lFe0QsFNSZJnZfWd30qV9JnqpNAMBKG91eLwOPzbD4KC2I3R1q7ofVfym1b39xywZ37lx6SeZQDE+F9uQxDR4lGpM5j6af0rfdbis2zRRyN3q4ARVmk0rp8UDac76tOlEJGSNNv+4Z3RIeE7uiXCsQlD90PiQ8492GHGMs1VO/wXJUR2sFVV+KJLHc2vHShyyZbJjpvDC3r/EIGfN+0nnf8i7ri1WzN2YEw9NQ8Ft2Dw9rWErmeBlIilobjj1CUmBwJ7ZyDFJ/gIvsFna5ZyfyEC7IA= X-Microsoft-Antispam-Message-Info: 5/js0mVGTF4TSEkb9jkBYTIM2aPP8Gix8xuhseYm6q9jjLWzLzYpJbDGPzvguvGNO7/iLvP3GTvc8gIZ+AtQ542BlSQyJfVyzpTSVuaMPNnuAo5MMPvxSxgvAdL34MrAWq1njpbrrBKmEMlK5nKQaN+xsxF8Fll3Ocw8vU5xgi5ua9Npudzibv64fZakOQ3lMo0XeENXneE7UPczfWvmNi63r0PJwsDK4JHkMUi/Zp/K5enBDCJ9LxSzN9FZj8vgJa+Ktno5rTXSa9JNb2kdgbu1yOfOjhQco3WnqmMkD4BwzZyy1w+vd6L3SXjJYpxP9CXvciQJQbmWRV8XawdsUXgqEIefyz4vctGcW+mYfu8= X-Microsoft-Exchange-Diagnostics: 1; VI1PR0501MB2031; 6:BDbqhnuul5Jcx6Me2+vWnAqJu56nUaAtNVJMIJobMzC9PDBIPm/LKxshAUiL/N+RM9APNfRDmDCGVCe9QXfPnGVJDgppM3sVZIplC3fOeSOvqFCOXrWgblZQMlL+RTs5gTxxonjAV/3DtbB7UHHKoe8VxkX9T04M5x/GZcPIABirrd6K6kqR+3LgLpHfC/Og3wRweAEE5Nlq1ogY7Kafyy2V8rzgta+BULaouzFPbPhU6v6Mmby9erwCYyVC7cLTB16pDDwetb/EiFqckE3uTAvOBK3mLy/JK/ULCfI8iY9NM5bRVvCCQ0910M6uzhfKV1FTvIXL9/XTnfi4orWJ+3ok5RFliO58LIU9N50msjtol2xcXuvsb75iSUYWDmpyppfX6F9IfyAt6pCKNPvtjSzJhWBUp4hYZgH4QCixRpoF5FR5E3V0UtlZpX/Tg8M0sDEfFmH4lEkR5RTE8uVi1w==; 5:CtI4rPkWMxLcQAfF9u6SOE5jIJR/S0u3bi/cuh7m4tgOiVdOvpRGRtpl6zPAXX0K4sk5mglGwOKaqDJ1luxPGUnOES63GQK41WKnNZL0/Mf1D1nMQDeHbu3J0UX32kR2Dfvdy+CkCbl1TnYqW77MMNRNITmIYiqL9QiuwrK4YIk=; 7:/aEnzKIIU+eIFhZFJYDH7+X8lzZvdwH5hGWZhOJRNORNSopyL4efRgWfE8FvcYyUEKLEDAZDZWC3Rbn/UUn3MjpalyBMyBqyh+rCKX27f/UpIFdXcihxq21Lkz5h4i7geLCNYiYt7ZEJ7a7Csu066O65y52t1EXExCS1qEsZmPIMNHqLw8FSeYMKe74TgQPgZeo+khKg7RXH6S9ptZPEfzMfJepYNsxRoXz26P+hCAq/AHzA9OnBRHkh4TkFR3yp SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Sep 2018 15:04:19.8454 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: abeaed9c-6636-4991-a525-08d622f82db8 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 1/3] ethdev: add generic MAC address rewrite actions 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" rte_flow actions: - RTE_FLOW_ACTION_TYPE_SET_MAC_SRC - RTE_FLOW_ACTION_TYPE_SET_MAC_DST added in order to offload to NIC The rte_flow_itme_eth must be present in rte_flow pattern Signed-off-by: Xiaoyu Min Acked-by: Yongseok Koh Acked-by: Andrew Rybchenko --- doc/guides/prog_guide/rte_flow.rst | 30 ++++++++++++++++++++++++++++++ lib/librte_ethdev/rte_flow.c | 2 ++ lib/librte_ethdev/rte_flow.h | 29 +++++++++++++++++++++++++++++ 3 files changed, 61 insertions(+) diff --git a/doc/guides/prog_guide/rte_flow.rst b/doc/guides/prog_guide/rte_flow.rst index 3aec0834b..5ecf154b6 100644 --- a/doc/guides/prog_guide/rte_flow.rst +++ b/doc/guides/prog_guide/rte_flow.rst @@ -2196,6 +2196,36 @@ Assigns a new TTL value. | ``ttl_value`` | new TTL value | +---------------+--------------------+ +Action: ``SET_MAC_SRC`` +^^^^^^^^^^^^^^^^^^^^^^^ + +Set source MAC address + +.. _table_rte_flow_action_set_mac_src: + +.. table:: SET_MAC_SRC + + +--------------+---------------+ + | Field | Value | + +==============+===============+ + | ``mac_addr`` | MAC address | + +--------------+---------------+ + +Action: ``SET_MAC_DST`` +^^^^^^^^^^^^^^^^^^^^^^^ + +Set source MAC address + +.. _table_rte_flow_action_set_mac_dst: + +.. table:: SET_MAC_DST + + +--------------+---------------+ + | Field | Value | + +==============+===============+ + | ``mac_addr`` | MAC address | + +--------------+---------------+ + Negative types ~~~~~~~~~~~~~~ diff --git a/lib/librte_ethdev/rte_flow.c b/lib/librte_ethdev/rte_flow.c index 631f80efd..1f4b67603 100644 --- a/lib/librte_ethdev/rte_flow.c +++ b/lib/librte_ethdev/rte_flow.c @@ -123,6 +123,8 @@ static const struct rte_flow_desc_data rte_flow_desc_action[] = { sizeof(struct rte_flow_action_set_tp)), 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)), }; static int diff --git a/lib/librte_ethdev/rte_flow.h b/lib/librte_ethdev/rte_flow.h index b41e37a31..19552902a 100644 --- a/lib/librte_ethdev/rte_flow.h +++ b/lib/librte_ethdev/rte_flow.h @@ -1567,6 +1567,26 @@ enum rte_flow_action_type { * See struct rte_flow_action_set_ttl */ RTE_FLOW_ACTION_TYPE_SET_TTL, + + /** + * Set source MAC address from matched flow. + * + * If flow pattern does not define a valid RTE_FLOW_ITEM_TYPE_ETH, + * the PMD should return a RTE_FLOW_ERROR_TYPE_ACTION error. + * + * See struct rte_flow_action_set_mac. + */ + RTE_FLOW_ACTION_TYPE_SET_MAC_SRC, + + /** + * Set destination MAC address from matched flow. + * + * If flow pattern does not define a valid RTE_FLOW_ITEM_TYPE_ETH, + * the PMD should return a RTE_FLOW_ERROR_TYPE_ACTION error. + * + * See struct rte_flow_action_set_mac. + */ + RTE_FLOW_ACTION_TYPE_SET_MAC_DST, }; /** @@ -1986,6 +2006,15 @@ struct rte_flow_action_set_ttl { uint8_t ttl_value; }; +/** + * RTE_FLOW_ACTION_TYPE_SET_MAC + * + * Set MAC address from the matched flow + */ +struct rte_flow_action_set_mac { + uint8_t mac_addr[ETHER_ADDR_LEN]; +}; + /* * Definition of a single action. *