From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0045.outbound.protection.outlook.com [104.47.37.45]) by dpdk.org (Postfix) with ESMTP id D9581271 for ; Mon, 12 Jun 2017 05:36:27 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=5u/ZX/AwA0OXtbMSpRvCLZndSnSiG96pNfdmuOz4Bso=; b=EsfDlnrffyKDPXb24Nae6EPz2YbhBZyNE+528037FkkijnxAz4qO89UTmzcKVI91wKsIv2PH2p3nTcE8h2ic5I+dP4S6FjswOS3xhsJjnil2l0xpcOGPkMWjcigS5rVroYnZrwTpsZLeofY1nA7OWkAKOVO46fIvdlxJBw5svOE= Authentication-Results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from jerin (111.93.218.67) by BLUPR0701MB1714.namprd07.prod.outlook.com (10.163.85.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1157.12; Mon, 12 Jun 2017 03:36:21 +0000 Date: Mon, 12 Jun 2017 09:06:04 +0530 From: Jerin Jacob To: Cristian Dumitrescu Cc: dev@dpdk.org, thomas@monjalon.net, balasubramanian.manoharan@cavium.com, hemant.agrawal@nxp.com, shreyansh.jain@nxp.com, jasvinder.singh@intel.com, wenzhuo.lu@intel.com Message-ID: <20170612033602.GA4923@jerin> References: <1495213972-109148-2-git-send-email-cristian.dumitrescu@intel.com> <1497027075-31738-1-git-send-email-cristian.dumitrescu@intel.com> <1497027075-31738-3-git-send-email-cristian.dumitrescu@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1497027075-31738-3-git-send-email-cristian.dumitrescu@intel.com> User-Agent: Mutt/1.8.3 (2017-05-23) X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: BM1PR01CA0087.INDPRD01.PROD.OUTLOOK.COM (10.174.208.155) To BLUPR0701MB1714.namprd07.prod.outlook.com (10.163.85.140) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BLUPR0701MB1714: X-MS-Office365-Filtering-Correlation-Id: 73d318f6-e366-494c-7089-08d4b1443373 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:BLUPR0701MB1714; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 3:iQoBqMgyU5v7p9OV51/jSYKOi3fXGfx8n3ePcmAGRhjbaWBlRtmcTD4bTZ9QbDqR8SvNo7QebtHUUcZSSvvk/PkOSmRc0EQ9zVZXE/Ebh1PQnbmrIet+hTGT8SFmxocOvOl3G3eJrj6cCUDMmK3CASULJSTVIeuxt9oQ6aouv4Uo98xNpuX99R5w51iUQmpVY7sFxLCMDzHs7yPDt/4NdQagcwt87yKBWTIIkMzb/nd1A3Wq91Kt1TfVwcwPF8HzH64rag8y2av2RWVAOXL0pJlDfHfKaBGQyrt8KVgj7OAebY34VCfZowKMubyKD6ikfnQv8/Q9zvLSvbrxb6P96w==; 25:dxYp66DQPvaNDqKoJ832/DqJ+zaiJtjv85OMh2F2ogI9fRy0uX5zi5KTWqrTIcbYGwQxbgyYHsNSKMSop28scPH8Fx3Td70RvnPlw0KkVt8YGlPF8nm85ci46k4srULT+WcXJmNE3BzKRlP5WIHZG+Un4TajRytckUwYKfzvySPbvIOlIJ+znKmnqgFvwlpmGeOSYlenh+K03HTU3UG+TCSFLQFY2g04k4wXCtZgtecPpqVVZtEJQoQMdLniCkpqGg/cyzVFSpQNzoqQB2tQkV0JEKg0fB1qdIc0kUA2y1TSYQ3utJjXdmlFnxF3NGLgduy7CsSMU9+eWQlUZS8Bm6wH+NrnQR/am9g89UuWpXt0ygQattk166GW6q4jE3mZ9q4KcAlEPvM581WjYRewR0fdI6MXs/kuk9P8huLAMEHlDkF4/2VgrX7fCmKNO7gNWhuSjxu4jI63NRVDYa08UL2R/a3O92sD9qXOxY6Bc9g= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 31:DHelMB6RhadE1vLdQbmi9GVc7vCmYdRoCZvjpd0dvkoNDrf/9dPiaaLD8eyMpNWKGZjDAHZzmnyImtD887n+MSHeyEXJnjZFEUfe6PBFmxANcR3kVG56habR5+/DFEfZUX3ihmOekIN+uPq4Ggjz4WlfvJPbvuUYa159Fj0QQ0Q/VnzIMziWuUfRj8qxg/3Zjvphs3EprmmCuFD6y5dHwdOsP6/DXMonZq6FIfzojhs=; 20:Oyno8uFzCJS08Cq+U+LfKrzvEL5GFHG13o2dalw7z7ZQix2MA8QedhgfnM1xaoqHyHy0Qgy9gjC1zLz0FthnwajxJkLNtYPObuoxYwLBbJ6Edi3zwYv3t38PcHehdQ+PSLdKWwZlV2n8X2GcRmpaApo2uw7bLHu8yjxOuIizA2YXKeebL+opwPGuV9QQyews5hcmNJpErppXwf1EY5O3dH8qeErR3XqZNhRhwT1TZ4yY3D8/PwjVjApD2mYE2fLysds0ZWIaaIhwJ3mFJMerHusXbFL0yeqiTq3toXMe5AJp6oBRE3q5fxgNpW1hcDkFr2THtWeWG6OEP+hUYVcVFS2HLb5Icq1luv5ZAaf1QoubuE6unHBnPTey2s/sCSoqRmPOToMWwrr3w48HF8LE2y7qH8ny40UYCov7Pcjhy+N7f6akg3fSng5rRnhyJlKlxuhkkLdIK7BkP2QSvil8Q94FhC2eDeKxPHt3saJP+2Ci6G7pY8Yz545gtuIRHclDgW9Hl8VNjrdiEYo47T1eXWwFA/eZRgchoN4KzUjwzZU5twGy833usgAZeSYmpt7cqryJ+el2CVAbP4UTJwFvaZn5NUOIDMUf35rfkxQ2neM= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197)(228905959029699); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(3002001)(100000703101)(100105400095)(10201501046)(6041248)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123560025)(20161123562025)(20161123555025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BLUPR0701MB1714; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BLUPR0701MB1714; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTFVQUjA3MDFNQjE3MTQ7NDorNi9nUkxDNE52VkFyamlNbys3YmQ1Vy83?= =?utf-8?B?azNoZUZkMnVnRGxWTVRiL21lRlZVZ2ZCZE9SSDRBbk1JOGgxdEx5Vjk1d1Ra?= =?utf-8?B?K0VsTThWL0RGY2t3OG8rTnJGVTZGT1lBbHptVUFuMkVIcXl3NUhLcW5qNTI5?= =?utf-8?B?bFduMlR0ZWRMQUtyQlYwbWx2dXBnZHhRTmFGUDVuTHJ4RURMdUdqdU9yb0x0?= =?utf-8?B?MG1jZnhlZWJnV2w2U0VKUW85V293ZnRyR2NQUlQ0d1VadHl3MDV0Y1B4LzVZ?= =?utf-8?B?VnJSUDE4d3VtVUdweVhPQTJ4OUtsSnNVTGZjYVE0M0VwOTA0QVk3M2pjWURM?= =?utf-8?B?ZUNBSzBoNHk5cDF1Ulh4VG9sMWZEZFRyZnI0Y1lOSFlVbS9xbnN3aDl2eEpQ?= =?utf-8?B?azlLOFdjeHRyTGlNM0ZiTHBQWHF4akZySHNHVTVPSWh2emFIYTNpQmJzeXhM?= =?utf-8?B?Y3dGT3hFbzBCTEVKR3ZnRFBUQnMybCtJclAzVlJyVmIwdTM1S1JFU0l0NG5L?= =?utf-8?B?YmVaeVRsbi96eWRqWDZoNDlrdVl6dEtualBsQWdWRmpFdUY2SjZEMkVNUkRi?= =?utf-8?B?aGhMSU5CYjhqTEhZbEMrNnNhL2xUZE1JU0ZzSmFGSldPc2tackdTTGJ6cFN2?= =?utf-8?B?RnZKRWRkVGEzdkdocWZ4akhNcjc3bWx2dVhFS0lyaG9WQUdqM0NDY1hwNHJk?= =?utf-8?B?enBWVlNFc3BjaVJyN0lvZFlDajREdnpSVFJXTTh5Umg5cW81MFpjY3pVcFp6?= =?utf-8?B?V2k5L1N1SDVkU0gvK2N1TDhMb05iL1QzZEczSnVwaFFzeFdNWVR2a1JWNlpC?= =?utf-8?B?TFF0YU9NdzdNQXhpeEFvRW9ETkpud3FiLy9YMHAyWnRNY3ROaW1rNkgyMzdj?= =?utf-8?B?YU9MQUh2S0xBbVF3OHZ4dmJ5c2hIaGJ1d2lmeHdKNmxaajVrUUhLMnVxVVRI?= =?utf-8?B?Q29rMFg3aklGcGQ5a2pEV1Uwd2dvM3FUT1FKUUZGUGJVeWZlVFU2d2VTcmJ6?= =?utf-8?B?cFZRbERQZzFzVDhyNmRhQTFudGpQZWxqTFFwV2JDR1J6bFNyTGsrYS9pbjl6?= =?utf-8?B?UFRleUV6NVNvYWlld3BvdUtMMm05QnI5cmdaOXA5LzBvN3pJbk5vdkZDVmdL?= =?utf-8?B?dDdYSWlmbU9jb0lJSGlnRG5sWnNDRnBpN0tSR1BuaERQUGFsYUpjNVJRQzdZ?= =?utf-8?B?RzZKUHhTd29rbEhoRHhEWnh0aEpqRFBiYnlRSkNmKzNpN2JXTFFXTHQwazBX?= =?utf-8?B?dUE5QjNjcU9DRk8zZFJJbGdodmdRRDlFWlhwbmczVHJMemNFTzNNUW1YbkIv?= =?utf-8?B?T3lkTFFZZzc0VDVHaHhZL0NybENxZ1ZCVjNFNHZlVFlETFBmeFE5bGMwMzVE?= =?utf-8?B?RFpKeUtDbUozeTdhVFp2bHVkZEpvUm5KQlliZFkyaVBydERyWDR5UGhhWHlL?= =?utf-8?B?SVFjSHlZTWc5dU1xc2Z5dEN3VUZOM3RLWGNnZ0NlM1d6UVp6dm53c0llbEZI?= =?utf-8?B?Vm43cUswWXcyQjdCUW9aeXViczQxalZXbUhnV29hZHhzaC9VUlBzVGdwZ0to?= =?utf-8?B?OGlOOWpHSVNib1o2ZnkzeU9Fa0VhQU1wUGYyZ0dydXJZNXJROE92MWZlVjFU?= =?utf-8?Q?SEL/FW50pZtXVauVAW6TK?= X-Forefront-PRVS: 03361FCC43 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39400400002)(39410400002)(39850400002)(39450400003)(39840400002)(13464003)(54534003)(305945005)(7736002)(966005)(33656002)(4326008)(42186005)(8656002)(38730400002)(55016002)(6496005)(3846002)(53376002)(9686003)(1076002)(110136004)(6306002)(5660300001)(76176999)(5009440100003)(23676002)(6246003)(50986999)(54356999)(53936002)(6916009)(47776003)(2950100002)(6666003)(2870700001)(66066001)(25786009)(42882006)(229853002)(8676002)(81166006)(189998001)(2906002)(478600001)(72206003)(33716001)(18370500001); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB1714; H:jerin; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTFVQUjA3MDFNQjE3MTQ7MjM6UXZZY2NEODhrM1FyamM0b2pqNkhlNk8x?= =?utf-8?B?dWwveEJZR0dmdnRlZzVxaUk3UmRRM0NZZXhOeW5BV05KWFFXcVlyRlhkZnU1?= =?utf-8?B?cHNQWTJYbjBzdjhiQStsKzRiL21uakV6RWtEZ3dpazFZRWRlRExtUThKNkVr?= =?utf-8?B?NlFFZURLZDdzTk56UTVUK21YVm5jcCs3WDNKRUY1ZHBpNmFoeERTSUVEajhy?= =?utf-8?B?bWxMUVkyb1RaQ0NNTHE1RFVRMmN5UUVZOGp1cHFkTWFLaGd3czk1TGxKOGNK?= =?utf-8?B?OE1HUUx0RVplOFdpR0NHZWNzWURhTmd6eVdMcG1JUWIyQzd4cXY0VkhNaEJh?= =?utf-8?B?UWY3aFIyRGpZOWZZWXYyVHZ6T0ozN2s2eXpwNXNOa1d6eHFFbWNRSjlRRFFE?= =?utf-8?B?MnlTQWxjckwxYW0vM2VEOWFmdjQ3QXVidUlIS2FmN1djR0p1dmZSaFhqN25E?= =?utf-8?B?cVZCOGtDTkVvT2N6SzVBRTVmbGkvcE9uSTVmTm1kTDNZUENHWWp5VS9talVB?= =?utf-8?B?QTYwQXlrQTZUaGV5VUF0UlI0Wm9Zd0NuTlhZZnhPTS9jMy9Xa1N0c0lHZG9P?= =?utf-8?B?UjI2WWUzN01zMVdxMWZRM1NzTytuNENDa1krWERJVnVRbVpHbC9nRFpaaWY5?= =?utf-8?B?TDVoN0J1S1ZaOUZicmt1ZXVlVGhpemtySng4Tndxd1ViSUhTRzdTTXlFNjJR?= =?utf-8?B?UFk5RnNSaGxGV1VxS0ZPVFJ6bnpNRFYxSGlCL2daOG1BVkxkNVZHMlk5V2E3?= =?utf-8?B?MXlGOWRYNWNydVk4b2dzZm8zcWxMZUtiVzhEOXE4NStDQmsvWUF1NWpNVEFM?= =?utf-8?B?d3hqSmVhRjVMRjhlTUJmamc1UVpqOUVlV1hEUHJmOWFQTGpnL21ZWC90TS81?= =?utf-8?B?Smt0MWdhdGw3bkY1c1FVSG1JSU9iRUhqL2pEelB2dGdtV2E5ekFmNXV4SlRR?= =?utf-8?B?TC9sUFlnWnRqWU9QbEwyd2FjVFJUUy8zdWZZMnhhQjZkOFhKb3ptK2dPcU1T?= =?utf-8?B?OTArUzJnUVIrSmpkNS9HWlI5UVc1Nmc4by91eHdXVzZud3BVMG1uSy9BZ0lG?= =?utf-8?B?OWw4MGdZNW9sT0xRNkJBd2N2U3o0K2YrcXhYanhvSjdiTjU1d0NxNnpnUVBz?= =?utf-8?B?bEt1OEk4RmU4WG5FblFaZVJuRGN6VFFGajhvQjh4SG1mNEdQM0xjcWFEL1Zm?= =?utf-8?B?bUFqYitpMkFpQUZ2Ui81Q1FqMmdteFJ5ak1TY1BuSWo4dnlRV05YZVN3TWZ4?= =?utf-8?B?QmxFbUIwTHFLVTdUQ2R6WG1TQnNjQjB2ZzVoS2VnYVdtZUtpNWU2eVRvb2ty?= =?utf-8?B?eVRTclZyc3FxMnBVY3V5ZDBrL1o4dFJQVXhUUnFrK0Y3NWQraFpwL2R0OCs3?= =?utf-8?B?bUp5eE42UXRsdXpDUmRBS3R6aEJWbGJ6OE5TZTVqRjBNLzJwNW9QSXB1eW11?= =?utf-8?B?Y0hjSG9pUWdtVVpRL0VpZ2ZQK2c3UFJkUUlhNUNMdTY2eWs5cFdTblFtOXd4?= =?utf-8?B?M0ZLbzV3QWhkTUZjcDdWU3MzUHlHdk9ZdHcvdnVFWUhqN0RoeXJEUmd6bXRS?= =?utf-8?B?aTJIMFptdEdlOFUwSkdOZm45L3JnZ1hLcGR3Ym00RUY1MGVjMlA3MHNZMm5T?= =?utf-8?B?YVpnYngrU2RHbGNuT0hDUU9uOVRhRFRQcGJnR1lUVWJlMmpia09jSmp0UlE9?= =?utf-8?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 6:qBuAKud32AAwEq2u+FUALeTgw9iaaIM/z4Up+FdMbop9Wu2WMKM8s8hRjvw06w1ag0BWKZ3WYPfhRZZH2PPk3WntOcFgO1IM3UYH2+6Nhq1giZxz9ptTzxhz16sXHD0F/WykeQEOtrVqfDpk3Qi8wOvaUlDkU76jUe7eifCqcpTLonco5SpMghUrNDbwyikB/KzPnapMgLwPnFMZ0MfCnq3FdV57JhiRpoIfEcmu/k7LpboIu9EuA1pMSF1fHlWM8X5AqhoqlUF2BwCA8RBCXPweVpDE6YwoQf1tS0fPgO/BcdMLFXgouHqniYG+mDTUHOdCOXnWe5nNXCA6TBslTyaib2GmxRyjK5Y02NxjGXGUAdxBypcH7mlH7DBpbGU3IBWGbjWE4UzBffuGdh58Feqb3ryJ6rbGn1rwPVD6gJE5DUQjNiC1I81gkU4ZU5IB+qbKZswPq8xRjv9NOz2q73EL6Lg/q928xbWgcnBDoL4Koynid0lebh9eFslc3koCZenNjnEI2BPJqGcisr1Ywg== X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 5:WiF6GVLUhvV2PitAtttnKtnUhUq1LQqpPuYg8ZfecD+NfgwBJWoOp+/PJ2n5w9HADIfNfPYK7yaZsOXOwVjH/2K3px4Iqdq67OrJEv4zjTkLrhPHQrPMP6fuofS0QEIQ5yk1MsbXlVNlFPMQaInaMvoX0c4eBw8odFy8XTN1a59QZ/eK2UB1lVnjB6Y+dwrJu5HeZCnMUuWTCQuDjE3kV+mVprvUbRpVBZNsqzfAUfcHnXYT2KKSXPOolmnpF+OkgEIXYwGtdh1+T3t52M/a2MvG+SZE53zt6M+ORUxpKE3tM2ZsPim4guR526gkjvfJENp31hsR8/Xc8oy4MpWnGb+mn/iDTkHF7ycFB2nZngtl7SmbM3qxKS4b8DiN9/XNf+T3fEN2EsLcVgjUk/gypNC2Vf1DNAZNFLsIX784tVLJY49C5PGgRA/yN8Hym2KyMwAn6tzaoiNnrG4QgBkKDFYb85B9TweQbttZjDsEf+BsG2u6lxau9139wEF0T9rD; 24:hdCkOwpICIq+5CEuVO/Gof8Dga6GJ+pTDxZGCoTyALoRojI2UvygyBDq/uzb6ez9Ku+z7ysmSc8LmtRlQ9cF2f/cerYGUNrfYkNN6pkcE+w= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 7:MD4p6r9KDtQulWsW7nUfSqf0UB0Lf6BWp1xZ/RROBEGLkdVFsL0TvtGgBgO7lDlk9KNs9q5QntP6EyOhbWcoaPaQZ7KDSWyT9eAkRjEf9AL6Cbzzf9lzZlaAqf66J9W7FWilbrYPhBiLtwPjYbzmfua0LG4ABYHF751wDl/iBHSC8kiKGIxC8b9p6GI/I6D7+H63/WsTvZH2dXUUNnMfcUKwulY5jkprSVGGteKNBYBJJD18ggxlHxjPr6LwKNPl5EnVd677pJZ8jFsbVnKyeyONGps68D8xQf7ANidpI5CYO2DmzbrtGZ4kezPWVIzr7I2DrBBMDkzAjC/mjP6mBA== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2017 03:36:21.2989 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0701MB1714 Subject: Re: [dpdk-dev] [PATCH v5 2/2] ethdev: add traffic management API 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: Mon, 12 Jun 2017 03:36:28 -0000 -----Original Message----- > Date: Fri, 9 Jun 2017 17:51:15 +0100 > From: Cristian Dumitrescu > To: dev@dpdk.org > CC: thomas@monjalon.net, jerin.jacob@caviumnetworks.com, > balasubramanian.manoharan@cavium.com, hemant.agrawal@nxp.com, > shreyansh.jain@nxp.com, jasvinder.singh@intel.com, wenzhuo.lu@intel.com > Subject: [PATCH v5 2/2] ethdev: add traffic management API > X-Mailer: git-send-email 2.7.4 > > This patch introduces the generic ethdev API for the traffic manager > capability, which includes: hierarchical scheduling, traffic shaping, > congestion management, packet marking. > > Main features: > - Exposed as ethdev plugin capability (similar to rte_flow) > - Capability query API per port, per level and per node > - Scheduling algorithms: Strict Priority (SP), Weighed Fair Queuing (WFQ) > - Traffic shaping: single/dual rate, private (per node) and shared (by > multiple nodes) shapers > - Congestion management for hierarchy leaf nodes: algorithms of tail drop, > head drop, WRED; private (per node) and shared (by multiple nodes) WRED > contexts > - Packet marking: IEEE 802.1q (VLAN DEI), IETF RFC 3168 (IPv4/IPv6 ECN for > TCP and SCTP), IETF RFC 2597 (IPv4 / IPv6 DSCP) > > Signed-off-by: Cristian Dumitrescu > Acked-by: Jerin Jacob > Acked-by: Balasubramanian.Manoharan > Acked-by: Hemant Agrawal > --- > Changes in v5: > - Implemented feedback from Jerin [8] > - Add level parameter to node add API function > - Doxygen: fixed comments applicable to field below/before > - Doxygen: added missing @see > - Doxygen: fixed hooks in doc/api/doxy-api-index.md > - Doxygen: fixed table rendering > - Added copyright on API header file from Cavium and NXP to > existing Intel copyright > - MANTAINERS: added next-tm tree > - Added V4 ACKs from Jerin, Bala and Hemant > > Changes in v4: > - Implemented feedback from Hemant [6] > - Capability API: Reworked the port, level and node capability API > data structure to remove confusion due to "summary across all > nodes" approach, which made it unclear whether a particular > capability is supported by all nodes or by at least one node. > - Capability API: Added flags for "all nodes have identical > capability set" > - Suspended state: documented the required behavior in Doxygen > description > - Implemented feedback from Jerin [7] > - Node add: added level parameter (see new API function: > rte_tm_node_add_check_level()) > - RTE_TM_ETH_FRAMING_OVERHEAD, RTE_TM_ETH_FRAMING_OVERHEAD_FCS: > documented their usage in their Doxygen description > - Capability API: for each function, mention the related > capability field (Doxygen @see) > - stats_mask, capability_mask: document the enum flags used to > build each mask (Doxygen @see) > - Rename rte_tm_get_leaf_nodes() to > rte_tm_get_number_of_leaf_nodes() > - Doxygen: add @param[in, out] to the description of all API funcs > - Doxygen: fix hooks in doc/api/doxy-api-index.md > - Rename rte_tm_hierarchy_set() to rte_tm_hierarchy_commit(), improved > Doxygen description > - Node add, node delete: improved Doxygen description > - Fixed incorrect design assumption that packet-based weight mode for WFQ > is identical to WRR. As result, removed all references to WRR support. > Renamed the "scheduling mode" node parameters to "wfq_weight_mode". > > Changes in v3: > - Implemented feedback from Jerin [5] > - Changed naming convention: scheddev -> tm > - Improvements on the capability API: > - Specification of marking capabilities per color > - WFQ/WRR groups: sp_n_children_max -> > wfq_wrr_n_children_per_group_max, added wfq_wrr_n_groups_max, > improved description of both, improved description of > wfq_wrr_weight_max > - Dynamic updates: added KEEP_LEVEL and CHANGE_LEVEL for parent > update > - Enforced/documented restrictions for root node (node_add() and > update()) > - Enforced/documented shaper profile restrictions on PIR: PIR != 0, > PIR >= CIR > - Turned repetitive code in rte_tm.c into macro > - Removed dependency on rte_red.h file (added RED params to rte_tm.h) > - Color: removed "e_" from color names enum > - Fixed small Doxygen style issues > > Changes in v2: > - Implemented feedback from Hemant [4] > - Improvements on the capability API > - Added capability API for hierarchy level > - Merged stats capability into the capability API > - Added dynamic updates > - Added non-leaf/leaf union to the node capability structure > - Renamed sp_priority_min to sp_n_priorities_max, added > clarifications > - Fixed description for sp_n_children_max > - Clarified and enforced rule on node ID range for leaf and non-leaf nodes > - Added API functions to get node type (i.e. leaf/non-leaf): > get_leaf_nodes(), node_type_get() > - Added clarification for the root node: its creation, parent, role > - Macro NODE_ID_NULL as root node's parent > - Description of the node_add() and node_parent_update() API funcs > - Added clarification for the first time add vs. subsequent updates rule > - Cleaned up the description for the node_add() function > - Statistics API improvements > - Merged stats capability into the capability API > - Added API function node_stats_update() > - Added more stats per packet color > - Added more error types > - Fixed small Doxygen style issues > > Changes in v1 (since RFC [1]): > - Implemented as ethdev plugin (similar to rte_flow) as opposed to more > monolithic additions to ethdev itself > - Implemented feedback from Jerin [2] and Hemant [3]. Implemented all the > suggested items with only one exception, see the long list below, > hopefully nothing was forgotten. > - The item not done (hopefully for a good reason): driver-generated > object IDs. IMO the choice to have application-generated object IDs > adds marginal complexity to the driver (search ID function > required), but it provides huge simplification for the application. > The app does not need to worry about building & managing tree-like > structure for storing driver-generated object IDs, the app can use > its own convention for node IDs depending on the specific hierarchy > that it needs. Trivial example: identify all level-2 nodes with IDs > like 100, 200, 300, … and the level-3 nodes based on their level-2 > parents: 110, 120, 130, 140, …, 210, 220, 230, 240, …, 310, 320, > 330, … and level-4 nodes based on their level-3 parents: 111, 112, > 113, 114, …, 121, 122, 123, 124, …). Moreover, see the change log > for the other related simplification that was implemented: leaf > nodes now have predefined IDs that are the same with their Ethernet > TX queue ID ( therefore no translation is required for leaf nodes). > - Capability API. Done per port and per node as well. > - Dual rate shapers > - Added configuration of private shaper (per node) directly from the > shaper profile as part of node API (no shaper ID needed for private > shapers), while the shared shapers are configured outside of the node > API using shaper profile and communicated to the node using shared > shaper ID. So there is no configuration overhead for shared shapers if > the app does not use any of them. > - Leaf nodes now have predefined IDs that are the same with their Ethernet > TX queue ID (therefore no translation is required for leaf nodes). This > is also used to differentiate between a leaf node and a non-leaf node. > - Domain-specific errors to give a precise indication of the error cause > (same as done by rte_flow) > - Packet marking API > - Packet length optional adjustment for shapers, positive (e.g. for adding > Ethernet framing overhead of 20 bytes) or negative (e.g. for rate > limiting based on IP packet bytes) > > [1] RFC: http://dpdk.org/ml/archives/dev/2016-November/050956.html > [2] Jerin’s feedback on RFC: http://www.dpdk.org/ml/archives/dev/2017-January/054484.html > [3] Hemant’s feedback on RFC: http://www.dpdk.org/ml/archives/dev/2017-January/054866.html > [4] Hemant's feedback on v1: http://www.dpdk.org/ml/archives/dev/2017-February/058033.html > [5] Jerin's feedback on v1: http://www.dpdk.org/ml/archives/dev/2017-March/058895.html > [6] Hemant's feedback on v3: http://www.dpdk.org/ml/archives/dev/2017-March/062354.html > [7] Jerin's feedback on v3: http://www.dpdk.org/ml/archives/dev/2017-April/063429.html > [8] Jerin's feedback on v4: http://www.dpdk.org/ml/archives/dev/2017-May/066932.html > > > MAINTAINERS | 5 + > lib/librte_ether/Makefile | 5 +- > lib/librte_ether/rte_ether_version.map | 30 + > lib/librte_ether/rte_tm.c | 438 ++++++++ > lib/librte_ether/rte_tm.h | 1899 ++++++++++++++++++++++++++++++++ > lib/librte_ether/rte_tm_driver.h | 366 ++++++ > 6 files changed, 2742 insertions(+), 1 deletion(-) > create mode 100644 lib/librte_ether/rte_tm.c > create mode 100644 lib/librte_ether/rte_tm.h > create mode 100644 lib/librte_ether/rte_tm_driver.h Please update the the missing the doxygen hooks in doc/api/doxy-api-index.md. If it makes sense, then add (@see) for the exact capability field for following functions. rte_tm_node_wred_context_update rte_tm_node_shared_wred_context_update rte_tm_node_shaper_update rte_tm_node_shared_shaper_update