From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0060.outbound.protection.outlook.com [104.47.0.60]) by dpdk.org (Postfix) with ESMTP id 661252BA9 for ; Sat, 17 Dec 2016 23:06:22 +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=n/JWrtToaq2g9AQuaGeXgBsSq09ZCFdIJBKFvO7Tigk=; b=t3qt/rcdFDj8kxE4sopwxtIuk8d3chkdw8+1H3eJVBeq6ckbznyXrlATB85e1Y4Eo8QL7PtKal3BaWCWZh11rMO34x6WgA828OjA6uz1Uf/2RjFwUUZAvmF6A2LYP4LoPG4xrLsO+f0DJEZ1CN0v9iCeyYMioDOwu+2CZi9ySw4= Received: from DB6PR0501MB2757.eurprd05.prod.outlook.com (10.172.226.9) by DB6PR0501MB2757.eurprd05.prod.outlook.com (10.172.226.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.771.8; Sat, 17 Dec 2016 22:06:21 +0000 Received: from DB6PR0501MB2757.eurprd05.prod.outlook.com ([10.172.226.9]) by DB6PR0501MB2757.eurprd05.prod.outlook.com ([10.172.226.9]) with mapi id 15.01.0771.014; Sat, 17 Dec 2016 22:06:21 +0000 From: Olga Shern To: Adrien Mazarguil , "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v2 00/25] Generic flow API (rte_flow) Thread-Index: AQHSV7kK/GDoT0/JxECjObJ9+PzJBqEMs8WA Date: Sat, 17 Dec 2016 22:06:20 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=olgas@mellanox.com; x-originating-ip: [84.229.45.99] x-ms-office365-filtering-correlation-id: 355bc33b-7a3f-4e51-36fd-08d426c8eefb x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:DB6PR0501MB2757; x-microsoft-exchange-diagnostics: 1; DB6PR0501MB2757; 7:1sset/JjXoXq0z1qUpw+lBYXr2tC415Qm4hqu9JIEGWOych1G5Q/EpvkGNhe0JhMK/e/5ya0GFC/K/wzVMRDa/TMWdQx+Dyljq+wxH/5Jhwc8nfb4pGvWSbYVuEKRdjkTgZDsDRZq+SJ+B3tD4/3C0crEFlGiauFL170pcZlnETDNkCUVw8fEwufcHYgW3i7neSd4j/cb/xjV7ctbCUEH5NzlS4upqb1yCnNVWlSAo9ucbE3KQ5hXoJLzBwxPMJanldVlmvtrT5+E0KoUjspaz+fNrPTUVhPKFDfpXInnW99u8TXsTX4NL7sZ4akFyHPFtD25Kx6yV6G78o2/cPZDJG5sTk3p6+80PJBkq8OhtynAWA1ifJKiTEr6YlQBR2Vju6F8B11N051SURsjiTIaNVUrm6SzQoBGKViREjZ6wBbmB5cXzIxpjIsEjF3/wSIOk5DZoqa85Fwd3/hEbdPkA== x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026)(6041248)(20161123560025)(20161123558021)(20161123562025)(20161123555025)(20161123564025)(6072148); SRVR:DB6PR0501MB2757; BCL:0; PCL:0; RULEID:; SRVR:DB6PR0501MB2757; x-forefront-prvs: 0159AC2B97 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(7916002)(39410400002)(39850400002)(39450400003)(39840400002)(189002)(199003)(13464003)(377454003)(2900100001)(122556002)(8676002)(305945005)(81166006)(101416001)(68736007)(8936002)(25786008)(81156014)(6116002)(3846002)(102836003)(74316002)(5660300001)(33656002)(2906002)(66066001)(92566002)(7736002)(15395725005)(105586002)(97736004)(106116001)(50986999)(189998001)(38730400001)(7696004)(6506006)(106356001)(229853002)(9686002)(2950100002)(54356999)(107886002)(77096006)(3660700001)(86362001)(6436002)(2501003)(3280700002)(76176999)(76576001)(5001770100001)(41533002); DIR:OUT; SFP:1101; SCL:1; SRVR:DB6PR0501MB2757; H:DB6PR0501MB2757.eurprd05.prod.outlook.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) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Dec 2016 22:06:21.0127 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0501MB2757 Subject: Re: [dpdk-dev] [PATCH v2 00/25] Generic flow API (rte_flow) 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, 17 Dec 2016 22:06:22 -0000 > -----Original Message----- > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Adrien Mazarguil > Sent: Friday, December 16, 2016 6:25 PM > To: dev@dpdk.org > Subject: [dpdk-dev] [PATCH v2 00/25] Generic flow API (rte_flow) >=20 > As previously discussed in RFC v1 [1], RFC v2 [2], with changes described= in > [3] (also pasted below), here is the first non-draft series for this new = API. >=20 > Its capabilities are so generic that its name had to be vague, it may be = called > "Generic flow API", "Generic flow interface" (possibly shortened as "GFI"= ) to > refer to the name of the new filter type, or "rte_flow" from the prefix u= sed > for its public symbols. I personally favor the latter. >=20 > While it is currently meant to supersede existing filter types in order f= or all > PMDs to expose a common filtering/classification interface, it may eventu= ally > evolve to cover the following ideas as well: >=20 > - Rx/Tx offloads configuration through automatic offloads for specific > packets, e.g. performing checksum on TCP packets could be expressed wit= h > an egress rule with a TCP pattern and a kind of checksum action. >=20 > - RSS configuration (already defined actually). Could be global or per ru= le > depending on hardware capabilities. >=20 > - Switching configuration for devices with many physical ports; rules doi= ng > both ingress and egress could even be used to completely bypass softwar= e > if supported by hardware. >=20 > [1] http://dpdk.org/ml/archives/dev/2016-July/043365.html > [2] http://dpdk.org/ml/archives/dev/2016-August/045383.html > [3] http://dpdk.org/ml/archives/dev/2016-November/050044.html >=20 > Changes since v1 series: >=20 > - Added programmer's guide documentation for rte_flow. >=20 > - Added depreciation notice for the legacy API. >=20 > - Documented testpmd flow command. >=20 > - Fixed missing rte_flow_flush symbol in rte_ether_version.map. >=20 > - Cleaned up API documentation in rte_flow.h. >=20 > - Replaced "min/max" parameters with "num" in struct rte_flow_item_any, > to > align behavior with other item definitions. >=20 > - Fixed "type" (EtherType) size in struct rte_flow_item_eth. >=20 > - Renamed "queues" to "num" in struct rte_flow_action_rss. >=20 > - Fixed missing const in rte_flow_error_set() prototype definition. >=20 > - Fixed testpmd flow create command that did not save the rte_flow object > pointer, causing crashes. >=20 > - Hopefully fixed all the remaining ICC/clang errors. >=20 > - Replaced testpmd flow command's "fix" token with "is" for clarity. >=20 > Changes since RFC v2: >=20 > - New separate VLAN pattern item (previously part of the ETH definition), > found to be much more convenient. >=20 > - Removed useless "any" field from VF pattern item, the same effect can b= e > achieved by not providing a specification structure. >=20 > - Replaced bit-fields from the VXLAN pattern item to avoid endianness > conversion issues on 24-bit fields. >=20 > - Updated struct rte_flow_item with a new "last" field to create inclusiv= e > ranges. They are defined as the interval between (spec & mask) and > (last & mask). All three parameters are optional. >=20 > - Renamed ID action MARK. >=20 > - Renamed "queue" fields in actions QUEUE and DUP to "index". >=20 > - "rss_conf" field in RSS action is now const. >=20 > - VF action now uses a 32 bit ID like its pattern item counterpart. >=20 > - Removed redundant struct rte_flow_pattern, API functions now expect > struct > rte_flow_item lists terminated by END items. >=20 > - Replaced struct rte_flow_actions for the same reason, with struct > rte_flow_action lists terminated by END actions. >=20 > - Error types (enum rte_flow_error_type) have been updated and the cause > pointer in struct rte_flow_error is now const. >=20 > - Function prototypes (rte_flow_create, rte_flow_validate) have also been > updated for clarity. >=20 > Additions: >=20 > - Public wrapper functions rte_flow_{validate|create|destroy|flush|query} > are now implemented in rte_flow.c, with their symbols exported and > versioned. Related filter type RTE_ETH_FILTER_GENERIC has been added. >=20 > - A separate header (rte_flow_driver.h) has been added for driver-side > functionality, in particular struct rte_flow_ops which contains PMD > callbacks returned by RTE_ETH_FILTER_GENERIC query. >=20 > - testpmd now exposes most of this API through the new "flow" command. >=20 > What remains to be done: >=20 > - Using endian-aware integer types (rte_beX_t) where necessary for clarit= y. >=20 > - API documentation (based on RFC). >=20 > - testpmd flow command documentation (although context-aware command > completion should already help quite a bit in this regard). >=20 > - A few pattern item / action properties cannot be configured yet > (e.g. rss_conf parameter for RSS action) and a few completions > (e.g. possible queue IDs) should be added. >=20 Acked-by: Olga Shern