From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40057.outbound.protection.outlook.com [40.107.4.57]) by dpdk.org (Postfix) with ESMTP id 0BC1C71B3 for ; Sat, 20 Jan 2018 22:11:49 +0100 (CET) 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; bh=t7ahAhT+8OMQijOFVjG19ap6RteqlWbeaXDWfxAIjYs=; b=vc3BlyCakBQ555knrZtS5MrqcHdWEoQlSNo4a8++wzKI637lUx7Jf5AHzpJCyR4RpQwQvXgwjEEtYpBmTvp4IIyZwGlweIF0zk4gQHp3x0kkSX2YFyh4s+93rP9E0Q0H3RKXaqMXuJSKEcN23IMcpWz1bDEbwci7mm72sCn6JoQ= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=ophirmu@mellanox.com; Received: from mellanox.com (37.142.13.130) by AM0PR0502MB3875.eurprd05.prod.outlook.com (2603:10a6:208:20::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.407.7; Sat, 20 Jan 2018 21:11:46 +0000 From: Ophir Munk To: dev@dpdk.org, Pascal Mazon Cc: Thomas Monjalon , Olga Shern , Ophir Munk Date: Sat, 20 Jan 2018 21:11:31 +0000 Message-Id: <1516482697-8348-1-git-send-email-ophirmu@mellanox.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1516282691-29698-1-git-send-email-ophirmu@mellanox.com> References: <1516282691-29698-1-git-send-email-ophirmu@mellanox.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [37.142.13.130] X-ClientProxiedBy: VI1PR08CA0212.eurprd08.prod.outlook.com (2603:10a6:802:15::21) To AM0PR0502MB3875.eurprd05.prod.outlook.com (2603:10a6:208:20::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 7027cc58-43c7-4ad7-b3c6-08d5604a6ab2 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:AM0PR0502MB3875; X-Microsoft-Exchange-Diagnostics: 1; AM0PR0502MB3875; 3:UzRPlhReAw/0w40hZ58CsFGklOFYcZHj8tFc5nqjl1Fcw1dZiSbITlAWEfsp3/5Rs6NKY0aouckbjaV3KXRfOAjrPNuhqCAJ1Iouyjr6HIMxwrcTkydssTtFNXHeTF7z6Sy67ZAFlL8Kf5EZlF/iC13DX9Y2L23cFCI5E+e5ZCv8eg8V/9dFAA6pu7kv2GCaKPlHXJR1SRMW8zF3QM+5e4cPZ+lAF4scusJgR3A8FmDuuew2acPeHe+qU6Hy34g1; 25:qErgPALZh3CQhFRCKDwjldHifAZxKp1KfoNnLyuKZFjHC4fpJKEKcpTW0cBy6z9KwW0AIVuosudRP+KYxPWX7+e8rUYBrjSMHegu6XgxJw+me84Sdo8gnFovUD7VK8W0vWhW+yvhn2gZWB1Oh1fSxxY2tL9LlELKWhs96d/9eISD+uOLQ2S7AJXU7bJ2OEnX1RTTVyEQiekSbWWnTaIwmb2dHmDaUMHvqTkGX3juiFbbWrcF3xSZYZq0D5BsiBNmTYrLFlUVDbgBDDYb6z4D5c9gtAyVmaWulpTrEXpDP+eTwXFxPlBuNAa7Uu66Ow/XdktRQs5gGt87ezvWf37aIw==; 31:hAxvOQ0P8eOu/jzBmQyuAALc3ql1fjfJlG8R/u+94FQeNPweRDchxbLtNXJPNROqMhfe2uIxPiUSnR8j4fX9ZlZUShb/K+2JEgvvjuRO8SrlAk16DsV4Fv8IlgPV4WQcX/d1e9XywOxhUP65ugHj41XnDPiH6Q6gsm5G9mu9Jo25X1bwxgOP1ecWkiSKh7Tp8jzaqP7ky+pj1c59IZzzDaUM8y7ZfxMbYr7pnQPrlOg= X-MS-TrafficTypeDiagnostic: AM0PR0502MB3875: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; AM0PR0502MB3875; 20:KrpszxKQI3stvtmprCxpzZOW+T55/HesBIid/M3QV6jfZ62wFueWGtLDZ4G8Uct0DraMaBE+y7vO46YkKIe39lwztpaLlsfQJOy75NiUna5f+YeRtpbV3L21qO5LVl/oIheKKklLBPWI6vzda3SIdPzGr+YQpSIWZbQo1GccEam6yUIqbPoxTl4ND4JQHRqalALo9VWPJ/qVUvkmOTbiCHKnPofmB/vnyHUFJqq96EfI3t9bO10LBLNXVP0OarvlJzPjBCT9cvt1nTp4pLHJVcdgsKpIoNu4D/GJp/dAYyYTCa6gBGMJZiT1xaeC0cbZZDZBbHP/11sOsIjylAIhV7/meSmCf9oVT3DqhpgVvf9EU666zGrr4z6qN19MR53hAMw1ouzoKcsob6TapFax46n3+vln5MZyudtJpFNw1pOz/OZnbq4/kXaYxDmzJgNipLSZJvGLpuVCORfTHp3amdmENE22WDF1fiPA/5GFFjgUUAYKXIVwBHHyMuT6ddhK; 4:D5iFOOMgkuJst34Drna+1dNQLbGNSwrRxyc7/CmfWxoTPQBBjhJiFiZ89AD8xhT71dgXcxOM6iz1HWO+sXQ5ZF7lrA/Rh78T0/7cZoyn26MsRycEHD/qEXckp0PtVdWA+KLfH6HrtBVcWX8w+1V6itQqFISltU0G4mA1VlrIXRuP9ibG75evkcmP700CM2qEOHqM+ogUE07cRrN/GUw5r15VQiDB/5mt1JRva5kOblehP/cZufjsaszeJdUq1niAhDfKFryiMVB2ptuQQUJ6vg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040501)(2401047)(8121501046)(5005006)(3231023)(2400081)(944501161)(93006095)(93001095)(10201501046)(3002001)(6055026)(6041288)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123564045)(20161123558120)(20161123562045)(6072148)(201708071742011); SRVR:AM0PR0502MB3875; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:AM0PR0502MB3875; X-Forefront-PRVS: 0558D3C5AC X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(979002)(39860400002)(366004)(396003)(346002)(39380400002)(376002)(189003)(199004)(25786009)(4326008)(478600001)(7696005)(966005)(66066001)(47776003)(107886003)(76176011)(52116002)(51416003)(97736004)(2906002)(21086003)(26005)(316002)(54906003)(86362001)(16586007)(16526018)(8676002)(81166006)(81156014)(59450400001)(5660300001)(50226002)(3846002)(36756003)(69596002)(7736002)(305945005)(386003)(6116002)(6666003)(105586002)(6916009)(4720700003)(50466002)(53936002)(33026002)(68736007)(2950100002)(106356001)(8936002)(48376002)(55016002)(6306002)(217873001)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR0502MB3875; H:mellanox.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM0PR0502MB3875; 23:B+QkZfQltsLxQYccM+IfcalPaFfh9xQnVVcUkvd?= =?us-ascii?Q?g32TL3W0GP3TNVSI6y901XkslNXrS2OViWyX1BSeQPn6rbpn3vIMFKIAHJtQ?= =?us-ascii?Q?g0jgnYaSLR3T/2toYjcVXiCPPaY4lTG9S4Z2IgVMb8JaWzcsi3NKFcISGmeg?= =?us-ascii?Q?/53CYKE3LcVQTo8Dj6jbq1z2bm30EBYgnCWAQ3uxzpESuzDtInYOnUJBcUWm?= =?us-ascii?Q?gyLDXlsfGJbvJeyQkJystqtGDWAkdMckOdlgLN+QVQN0Bx87CuLtAP7xkngz?= =?us-ascii?Q?XiU3hxesKdfmqxUNeBHmW3UVqKdatfXXIJoedg7Tu9xQVjDNOP0JGSzGBZlG?= =?us-ascii?Q?/wSW/RTtp3w7v8B62IKdlfMUwOjyfIPNbjab1pIuQQtbESC+sAiOF/jCOpJI?= =?us-ascii?Q?vDu98xnKrGej+Fl7xI2c+6szID7RkiYoJizcA7s+YpIS80A1J5KTuuMsSQ9U?= =?us-ascii?Q?E1lwr8KDBT0stl3UmUxHwXxQr2NJ3eP/aRzO6iI1Lyw8vGqxmm4bHKsOsF67?= =?us-ascii?Q?4gkZKOVXV9N5JL74DWXxpVPezLwMzgRcP6UX90ALMjoPeOAk4jlnHn9ZTKbz?= =?us-ascii?Q?rykjxVgff+AYrWMbMhoavaJIRdkdL/7OWrbq2vbEWLfAcB5uFqFoDwZaSZz8?= =?us-ascii?Q?jkdZETQJypSG2o6J9aHSkJ0UvzcmEOD7ItWaFrcT5KNiIAVEdq94lUiORvqe?= =?us-ascii?Q?ikuxRIaSjsiPtvIs33QbWwmhDIjae9R4SvVytobiPm/F1yolQ474Ghq/aZnY?= =?us-ascii?Q?Y4nAUGV1U81NcEPjOJhCYXpeqhSHExEbxjVEOgsKH4oGcW+oLQOwadXyhQCm?= =?us-ascii?Q?gG/ST8Jhslp0cdXDSYroNOtRP/GqQS0m6S4gVE+cxJJMGOYAFNOvhxWwMyQ2?= =?us-ascii?Q?Ztgbk1eM/93HHs0+VqhweV002q/Six0CVF8ZTc3J1sEjQdJsxxSP04CPomoS?= =?us-ascii?Q?FePvXdv0jxPv1M4UZRvjKleHq7Bv/LR0ZnsExVy9BuIKPko0XkqYl4nL4VX4?= =?us-ascii?Q?45iIwm2w7rkbmSSeDI9+/OcOfBpXwypeYBUlmafVsb8uxlKXkAk0pA1I6ppS?= =?us-ascii?Q?9z6p1o0Taj15uURHtYAXuG1GRi7USybZHdePwPjq1djC7P18QbkUjCYJjYP/?= =?us-ascii?Q?nRi8cW1eLWh2yDuEJ4GOa8Qj8B4Q2ig/oPoMhLNEKeNsKhZLGFOGks3flpdK?= =?us-ascii?Q?5s55087DAlMGCoDnZpt6nd3fFsdFLlOaVmF+BFjcnHw81Y8riP3ZBA/wd8Jj?= =?us-ascii?Q?Yp6naokMFdli5sHjwAlWkJL/+5T9q8QlPDtCBNWZlgH0GJgD/Y7KCFh9H3Ew?= =?us-ascii?Q?gkPMAckOW1skKLRt3hOPEsyn0mhlDzV4VYkggL7Wf910K1SanpvAfvSVJ+iv?= =?us-ascii?Q?/1YTB+HEWPhm75V+Fwj/SC2oB+ak=3D?= X-Microsoft-Exchange-Diagnostics: 1; AM0PR0502MB3875; 6:CPXWFNYvE2UP9qkM8xzYfeaMyJMmfGILgIezTe8QwRJ/XD99G/eMwu5XGIQh2bTGaogTMHD9SouIVpwMHr01PtGQMkKqOgAvOXg9Sv11IGsZ2anT/Y4q8Ynl0eIUeCVuiFniBVMsxQq4ZvQZ6OFZWPffe9GQTNKeiM2e1BRanl7E0iGuZUzZqM4ExM27XwWhBwhsbuPtipO+Rtx+gwmUyygARBaSIqv+yIqGlLUCzPF82naV7gScYqhnSgqfviAYLSjwqGRyoAJoZ8pDFBfPxmOs3JLIdd8V1OQi+iYXzhACvg4sAZHtOx6xPZ56kZZuZ2XOZ1EgwPEYzSyeKN/kzlyXrHbQUpFGSNpgIt8ptK0=; 5:YbnY8outqnTXBJOBqInUDFbtXKFFoYYuW+0kqbc72FbMDpc5P9K6BlbjLwXbcO49KmOBPd7VAfh/gWPUDKy02Whhwe6LXt94Li8xO3mYyUiZn31HQCDqACCfgyAHKfCxjAEHlX3MpGbDLcxGjLjGuj6WifFo4w5I9cBiE/WnUB0=; 24:Y9m7KsV8f2zd2SuQ48PQCYLuhNn/mOulI158fz3NtG8P2tCOMg/kU3ZdEGRXedgbdrMBzKWjTKYZoNfMZxL1aJ+DNodyMZCL9HVnuJUFb9Y=; 7:TmlCRWDGXdxXzhy35kxJtmKDQU7hTVLE6MdRqHVnoguxS4BFLz8oBoaYqisiSk9Y971wj/8Dj/YHqbsOsz9x1SEJUUDCQYWX79+goDHiKuHlWG4LJ3WSePkHJOgk4+QT1zKJfzmZQCwwDEXSfMMbYghIDZyeXfjT7XSprk9HesKGcQDn8M/UKkaCZVWEnWBkyCgM7f5fN5utVXz+RSbLGJ9ju1f2K7DvLUwvejUeFVynAhZ+Vu6TUmA8/58wZPRc SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2018 21:11:46.7204 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7027cc58-43c7-4ad7-b3c6-08d5604a6ab2 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0502MB3875 Subject: [dpdk-dev] [PATCH v6 0/6] TAP RSS eBPF cover letter 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: Sat, 20 Jan 2018 21:11:49 -0000 The patches of TAP RSS eBPF follow the RFC on this issue https://dpdk.org/dev/patchwork/patch/31781/ v6 changes with respect to v5 ============================= 1. Reorder thes following commits (source file commit before byte code commit) net/tap: add eBPF program file net/tap: add eBPF bytes code 2. Add acknowledgment to commits v5 changes with respect to v4 ============================= Update TAP document guide with RSS v4 changes with respect to v3 ============================= * Code updates based on review comments * New commits organization (2-->5) based on review comments 1. net/tap: support actions for different classifiers (preparations for BPF. No BPF code yet) 2. net/tap: add eBPF bytes code (BPF bytes code in a separate file) 3. net/tap: add eBPF program file (Program source code of bytes code) 4. net/tap: add eBPF API (BPF API to be used by TAP) 5. net/tap: implement TAP RSS using eBPF v3 changes with respect to v2 ============================= * Add support for IPv6 RSS in BPF program * Bug fixes * Updated compatibility to kernel versions: eBPF requires Linux version 4.9 configured with BPF * New license header (SPDX) for newly added files v2 changes with respect to v1 ============================= * v2 has new commits organization (3 --> 2) * BPF program was revised. It is successfully tested on IPv4 L3 L4 layers (compatible to mlx4 device) * Licensing: no comments received for using "Dual BSD/GPL" string during BPF program loading to the kernel. (v1 and v2 are using the same license strings) Any comments are welcome. * Compatibility to kernel versions: eBPF requires Linux version 4.2 configured with BPF. TAP PMD will successfully compile on systems with old or non-BPF configured kernels. During compilation time the required Linux headers are searched for. If they are not present missing definitions are locally added (tap_autoconf.h). If the kernel cannot support a BPF operation - at runtime it will gracefully reject the netlink message (with BPF) sent to it. Ophir Munk (6): net/tap: support actions for different classifiers net/tap: add eBPF program file net/tap: add eBPF bytes code net/tap: add eBPF API net/tap: implement TAP RSS using eBPF doc: detail new tap RSS feature in guides doc/guides/nics/tap.rst | 60 ++ drivers/net/tap/Makefile | 34 + drivers/net/tap/rte_eth_tap.h | 9 +- drivers/net/tap/tap_bpf.h | 112 +++ drivers/net/tap/tap_bpf_api.c | 190 +++++ drivers/net/tap/tap_bpf_insns.h | 1693 +++++++++++++++++++++++++++++++++++++ drivers/net/tap/tap_bpf_program.c | 221 +++++ drivers/net/tap/tap_flow.c | 648 +++++++++++--- drivers/net/tap/tap_flow.h | 13 + drivers/net/tap/tap_rss.h | 34 + drivers/net/tap/tap_tcmsgs.h | 4 + 11 files changed, 2922 insertions(+), 96 deletions(-) create mode 100644 drivers/net/tap/tap_bpf.h create mode 100644 drivers/net/tap/tap_bpf_api.c create mode 100644 drivers/net/tap/tap_bpf_insns.h create mode 100644 drivers/net/tap/tap_bpf_program.c create mode 100644 drivers/net/tap/tap_rss.h -- 2.7.4