From patchwork Mon Jun 13 13:55:42 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jerin Jacob X-Patchwork-Id: 13565 X-Patchwork-Delegate: bruce.richardson@intel.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 55B824AC7; Mon, 13 Jun 2016 15:58:02 +0200 (CEST) Received: from na01-by2-obe.outbound.protection.outlook.com (mail-by2on0096.outbound.protection.outlook.com [207.46.100.96]) by dpdk.org (Postfix) with ESMTP id A90B05A4E for ; Mon, 13 Jun 2016 15:58:00 +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=adcvfvqGpx+XPb2Mmg7bF4vCHmBkIDxDAvApfAsgoa0=; b=R3WEYtJLYFwabAHsM0ah3MfEIQaocxvGDd1q7g48812Msy/1MLaRGE5Q2LZaVFjM7L9ysWlKwJ+jGHqUVmmUtwN2diQvM442SKzuqUNsNgbQoGf8YY5l5mCSjsm6oN8vOTnvMAoMSXVuLRP1yWVJ/Vn5gOVcAAufL/6ZkO4ZeFQ= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.Jacob@cavium.com; Received: from localhost.localdomain.localdomain (171.48.21.3) by BN3PR0701MB1717.namprd07.prod.outlook.com (10.163.39.16) with Microsoft SMTP Server (TLS) id 15.1.517.8; Mon, 13 Jun 2016 13:57:55 +0000 From: Jerin Jacob To: CC: , , , Jerin Jacob , Slawomir Rosek Date: Mon, 13 Jun 2016 19:25:42 +0530 Message-ID: <1465826143-22159-19-git-send-email-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1465826143-22159-1-git-send-email-jerin.jacob@caviumnetworks.com> References: <1465317632-11471-2-git-send-email-jerin.jacob@caviumnetworks.com> <1465826143-22159-1-git-send-email-jerin.jacob@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [171.48.21.3] X-ClientProxiedBy: BM1PR01CA0031.INDPRD01.PROD.OUTLOOK.COM (10.163.198.166) To BN3PR0701MB1717.namprd07.prod.outlook.com (10.163.39.16) X-MS-Office365-Filtering-Correlation-Id: f5602518-21de-40fb-438c-08d39392b9e7 X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1717; 2:2IGQeQQvzOHMhFiL0Z+Qp/5lG2ymoo/VCpUHyilHgp3LVCoNxkBD6vJP0lcH4eF6LIKiqsHC1Byru1KeyyK2wtkDSWB1vYUJ++tBG5c66KPK0i/WyLwZUg3WxonzvTaNmvkO7Q48Vk4I7pKEhUkPqe2ds5NsMhXY46l0RDyul77az5wbqo4RbWiMqPgf3iH2; 3:VvjXR8xskxWnX53IY554MqpkMCU4guBAHygNRgTcRJuAXkuDVWpm34FCQTOBak4onP0cdP4RLxNr0BTB+EVw7dMyAjRMTZQSRHFCbKNhMrZVa1VKhqHCMnplC4oM14wZ X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN3PR0701MB1717; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1717; 25:u2XCP9kbAIjOifQGU6SqKKomEIfBL2MiYdp68WYvMOuHIB9zJterkX1+E/8eCA1FaKrVQKYeeu7brSLU1d4RU954ralrVPw5+wJp0AB7pLHFiuywZrW5J6OTh8CXmEqVbGwNzU9R6YwOaHgAtSlb94WuzUj+Q7U2t5++6vTOIX9GP+FhmBkQ9HQJIw/7OMplkuU6bfeR3KYKX2Uzh4ZlkbcMi8dLl1nBUkKjK6tArLkICaHIyNbCiE8qK6vBMqsCpHHUlIlDPWKUFHxyZepE1EES7P1GIMy05ddfS3gQ48zGApki/EW2ZJ0LnzIbOZpCBBMVmPPxTAF6xIdAViEY2ofKQwgnPqucizTNUfZYGyVFeCctGyA+ROnJTScdSyjUkbWQm1pkE1jlql8IRn2NjHmS/Q+LO9mnTvyRojMQaPWi7n4dq3RLVB20AcDH4GlkLaXLR+t2xcFFftavX09EveJEI/YaQiybD2m/enRjj+a+Ahg9LYoy7e62DssgxLZp5okJdQU9EXKs5T9vMGt5gxX3oyWcXdd8ZqGTzHTOwdZXbE01sytWgLhSh0ZinDs7wqS3O0DcI1k9YsQfbCpmQXkxYpKpe3vwxkEbRUT+RVJ9SY7dMg39HpjY3p6VWpuXY+GOexEwKCsT1/C7LwWKhE7l+8SHoTi6W55vEKVqyYJ3YsDei7eeRMSYJ38+W/6ECWjVUxQ5UmVrCETW6XffUCxh0CGTG0etpmU08gYmE8eb2nUdHEoQdRiQ5SYr8RmZiW0ugD+r69/rcEaXs1Bp2ESFYAlQOiidLiDyKT1sndb9U1hYFm3iB9vdAa61VnbozIS0EsHypzsqv1nWX6u48z2XFglxpgrvJMnGHeFaQ3M+4RuaceY4AY1+f5fOoTE1 X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1717; 20:0vdMhTNZIPRVKOayfZ4rhv7d3U5FyjiHxif/8T4QW8rcjwFi8DmZjSb+9hQdre7Nmkdo3nMczssTpe7lKwTPlxP33a/o52lYC5KNgSjbldTHERSt5/Cx3PL0blXJYQe5mpEeiGC4qxcUOyYe2xFOS3uWJ0/HsPu6YE+pKjNCBsWJVrOU2gtCWpB5QqTye3Dx/N5yanWC/hdc/gYuQrb1t72bnsQ8CRctvgzX8ErNIPtEAVxdjxN7FKSyUuZ6rfhzQCktST8z+vXR3WWycYImNJSK/bgQ2433SKS9cAheZYlhZUjwOVYm0kcHKNYBnfsRTvLbyIm1cInThq3DffuvaLmQPXHEl1a2pYhiX5cj7+l5FYZekBGYFNqvq1VbkueleYYi7oiZ5UJ6981uZXhuYxlsGUEYXj1lLc5rF3hVHjtEBQSkBPDbTG6Abv0r2HGKRWt0X/2+kRWG15xVHDx2STXaxKufxVwm/168ltSNpTDUKmhC+MiQIqPKTrWXLa2e2xPs+nITZhoNXYmRNi/c0yX5QSTHiIQUpWNLl1KjZx6b2ga7GXlJR13nNWLH7SPmRug9FtlOr6+MnmhYra/lOrtuc35XDCDCfd6l6IGdpjc= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(228905959029699); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046); SRVR:BN3PR0701MB1717; BCL:0; PCL:0; RULEID:; SRVR:BN3PR0701MB1717; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1717; 4:Kuor8FF8W9teb7PX97ecHYeFWyI5fZ96iR0k6z+GDsWqnu2JwP5YLDt6Ym4IXklRpeixMK7HV12lHNSOiTMuMK5UTa2eOdZSnGKanuVzR7kjkMq+aIh1UViohgM2tHsUU6DmK8oqikruhlx7uiNcFTOdiwv3jRFCcNX6YQJryy37v5CDo+5dHZFShg3YMC8Wj6aWVAgDiRzBRx59EQh1S7RK9u7CZEILVO1Ai+++nxG/VrSskL7/1K/bK6JqjQzlaprbIAEyvwvDbVe8rQAByDb6MxXnSzvWYTHZvTAF0pazu+pWsUCj/ezmGUwN7jy21yew1AjqpLvNvByZeX3uafg9M1KF0/9KZBVZbQj/dk8vzkFmJa60c9/e+8zPelEQImemtcfPGTaF0yvHaZEKN9VfrpMeohJr45y6dYeAXWs= X-Forefront-PRVS: 0972DEC1D9 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6069001)(7916002)(189002)(199003)(50466002)(101416001)(42186005)(50986999)(92566002)(76176999)(105586002)(106356001)(33646002)(2351001)(5004730100002)(47776003)(66066001)(23676002)(36756003)(586003)(3846002)(6116002)(19580405001)(19580395003)(77096005)(15975445007)(8676002)(10710500007)(2906002)(81156014)(81166006)(4326007)(189998001)(5820100001)(97736004)(2870700001)(2950100001)(110136002)(7110500001)(15650500001)(2420400007)(5008740100001)(229853001)(50226002)(68736007); DIR:OUT; SFP:1101; SCL:1; SRVR:BN3PR0701MB1717; H:localhost.localdomain.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; CAT:NONE; LANG:es; CAT:NONE; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjNQUjA3MDFNQjE3MTc7MjM6SGFPc3dJQmYwT01JYnhVTW44azdTemg5?= =?utf-8?B?bFM2TTk2THJWempYZzlnQWlIbjh0ZFdROHpnQW85cUtabk5KUWRJZDhhcEpK?= =?utf-8?B?cWU0NjJHcFEvMEtldktNU2gzcEhPVlA4VUEvdEhtS1VzRHNHZXJBTlRWaHZ6?= =?utf-8?B?ZVNsQmk2aGQ4VXZaR2VCYkw2eHVicFI1cks4NzkxVkpEQ280WkVyNnlpM0Fj?= =?utf-8?B?VkVmMVNic0U0VldmNWg3MTQzSkhZMDVqbkhBbnR3N1lORko2Q3VROGY3ZzJI?= =?utf-8?B?cEU0VFFSbGhBMEJ4R004Ui84T25sRURQUVBpck9LbjRjVHZHRHZJZzQyRGFG?= =?utf-8?B?cDdFN1V4UlgvOVN4elpONktMZFZiYndYeEUvSkdMcU5CRkF6YkxoQ2JxbzlK?= =?utf-8?B?QlJMZk55Z0tyU2VrNDVOZTBYR2xMUEVyUXcyUk10OFBTWmVWTjcwWWh0YmdP?= =?utf-8?B?ZlpoY01xQlhoN3Jna1BPUDhvRFBDK3Qxc3FHTGhUOWhtYVF5YWFXVXZPT2Jo?= =?utf-8?B?OGp3MWsycytxbGpvYVptL2JmMXpHUUlIWXVOQndZMi9FNFM2b21EOTQrTE9V?= =?utf-8?B?MHQ0T3ZwbU0xUmFmbUh1Y2l5UFUybCtXT0JuYkl3OE1aclcwN1pvbnB6UFJW?= =?utf-8?B?UG1DVmdDTjhPR0U4dXluQTdWdVlGSzI0STk3MXJReG5PNHlGc29tNmp1WTFr?= =?utf-8?B?dUxKdm1RSXU4VG1mUkZyem9YVDFJcGJ4L3g2VWVvdjYzVDRWQlU0TjlmNWQ4?= =?utf-8?B?ekxCampmMDZLZFZCUFhlbDJUTzBEZFBCSU1YZEFGdFM0eXJWTkR6blhKVlhq?= =?utf-8?B?ekNvbkwwUGppaU9JdzBZVk9xU3B5NXhqbndYYTRaZXVxWnMxVllEaEo2NXlN?= =?utf-8?B?YUNSSllsTC9KTC85VUF3aEsrQjZXNk1NcnZjdFFJVGJ6RkMyQ2Y4ay9sQk1z?= =?utf-8?B?L205UEQyRVVLMDArejNlVG1abW83Wjh1VFZiYS9UQnlCeXRnaHZaVE5hYzY0?= =?utf-8?B?WTFkV2c0Szg3SVE4TG8yanp0dEV5WVVodXpOejZRVitPbnk1VUx6NmoyNGcx?= =?utf-8?B?R3ViWU1jQU5MUjNqeDFEaHVpNTZwUStTWXZZM2F1M2VFY1JmNUZQK2NkWDd5?= =?utf-8?B?eklKRXBTVDZtM2hsQ05VbzZRMm9jckxieWVCTXZ0RnpJQnN2eHhMcUU0b1k5?= =?utf-8?B?ZUZ1T0JjOHBkbWs1OVYrQU5sbWZBU0JEcUY0MlZERmQ2UUdwb2VPZjBZZ0h3?= =?utf-8?B?cWM4bDY0VFcwS2ZydUtKOVA1eXJCblJpdHh0UHhESll6Mm5ZTnJwSjZtMnRp?= =?utf-8?B?TXBFMENQR3RrRFIvb2FwbU5qYWtGKzVXQVUrcUJOblZVZDZPemd6UUZXRHdj?= =?utf-8?B?QlhqWFp1RkE5SzNPNmxSWnNVMGlZc2pVYlErNVFucUg1SjNoQ2pLb2F3U0pM?= =?utf-8?B?ekxIWXJIY3pONEtVU3ZuU1NkdS9ubUorallOT1BjaGNXTzltWHh3NEtIQ3FZ?= =?utf-8?B?bElIS2o0eW83MEV0Q3F2NUtiNzA0bkg2Tmx4S0tjdEROQUtBVGwxK3pxV3pF?= =?utf-8?B?aCtzeGk0NGpVcmg0K1pQUzFEdGgwWkhoZStRakdvVFlHMXV0Uzc2VEZRQ0t1?= =?utf-8?B?ZmNIMTlKM2F1WDYwYUhtR05KUmVINHozcjdzRzFUSGNxUXpHMFlFWUhyQ2c9?= =?utf-8?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1717; 6:ijOTsXn7LO0wqBfz/rcYVAGGG4DnAKvVbmfvJBQ2wGLRQaV2xW4SQsa5S1QMHnTwCJ8d3DdZHQBkFY5KxNEUWxAabikgZuX5cwVet6FIS0kTR64Ex3lijNEx9/lvP2HEho8yfd+EoFZk8eS1Uf3JqLDPnKTKR2iUshQ8fhSjwv44Wk72WU6CmWq7TZeTiqJogIOsKo/mWjjSsgJcWT2g5gCurkVJCQjH5tpWEbke6PBPRl6vS07S+HZQRArsESvCvrEpoMjcwrb44DaDVoBV0VueG4mapMl6jiu9WKfmmvc=; 5:93Lvy/B+Y7+QrzATrq7v5Tv6TNEAMPzqKTerFqgW82bOCTwZssL/bQ5UTO//oHJRt3PEl1KS8q4XdQNczTGKHfuMJ+7EhmBZ695TawJSXGPmnEzLFbOi9gxnig+Ksg1EfpjPd9MW1EX1Fhfm0agRNQ==; 24:uDL/imxCsZrpm3ipBXIzpspueN5OihZav6TIZB9fAK5OhNEUesCS7EsMMVhH9phrDZ0lfngTmoB4dxF89Pn+HWdsy/Z2f4k+giAi/XSfByQ=; 7:/NBbr8V0fAwT9tIhrWJ6TjRbH9yvAgBEjMb87+5QrvWUASkiRQF7OYPmnOIRse62MpXE95h6lZv+3GHwIWQx5g0qTjL1p/cnai1iHwsdGsNb8K9uCHf/WM04+kQIrZT12cBYRkiHtbEdy/TcnQ7xrdhS/XsCqCfS5zzC16IJioPAkKgv0uKJZMGhWhIDhL0dnZLsZ5TdreiSrzRGpYYUJ4DCE916eL24qTeYCSnCjOc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jun 2016 13:57:55.7420 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0701MB1717 Subject: [dpdk-dev] [PATCH v4 18/19] net/thunderx: updated driver documentation and release notes X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Updated doc/guides/nics/overview.rst, doc/guides/nics/thunderx.rst and release notes Changed "*" to "P" in overview.rst to capture the partially supported feature as "*" creating alignment issues with Sphinx table Signed-off-by: Jerin Jacob Signed-off-by: Slawomir Rosek Acked-by: John McNamara --- doc/guides/nics/index.rst | 1 + doc/guides/nics/overview.rst | 96 ++++----- doc/guides/nics/thunderx.rst | 354 +++++++++++++++++++++++++++++++++ doc/guides/rel_notes/release_16_07.rst | 1 + 4 files changed, 404 insertions(+), 48 deletions(-) create mode 100644 doc/guides/nics/thunderx.rst diff --git a/doc/guides/nics/index.rst b/doc/guides/nics/index.rst index 0b13698..ddf75f4 100644 --- a/doc/guides/nics/index.rst +++ b/doc/guides/nics/index.rst @@ -50,6 +50,7 @@ Network Interface Controller Drivers nfp qede szedata2 + thunderx virtio vhost vmxnet3 diff --git a/doc/guides/nics/overview.rst b/doc/guides/nics/overview.rst index 0bd8fae..df28510 100644 --- a/doc/guides/nics/overview.rst +++ b/doc/guides/nics/overview.rst @@ -74,40 +74,40 @@ Most of these differences are summarized below. .. table:: Features availability in networking drivers - ==================== = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = - Feature a b b b c e e e i i i i i i i i i i f f f f m m m n n p q q r s v v v v x - f n n o x 1 n n 4 4 4 4 g g x x x x m m m m l l p f u c e e i z h i i m e - p x x n g 0 a i 0 0 0 0 b b g g g g 1 1 1 1 x x i p l a d d n e o r r x n - a 2 2 d b 0 c e e e e v b b b b 0 0 0 0 4 5 p l p e e g d s t t n v - c x x i e 0 . v v f e e e e k k k k e v a t i i e i - k v n . f f . v v . v v f t o o t r - e f g . . . f f . f f a . 3 t - t v v v v v v 2 v - e e e e e e e - c c c c c c c - ==================== = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = + ==================== = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = + Feature a b b b c e e e i i i i i i i i i i f f f f m m m n n p q q r s t v v v v x + f n n o x 1 n n 4 4 4 4 g g x x x x m m m m l l p f u c e e i z h h i i m e + p x x n g 0 a i 0 0 0 0 b b g g g g 1 1 1 1 x x i p l a d d n e u o r r x n + a 2 2 d b 0 c e e e e v b b b b 0 0 0 0 4 5 p l p e e g d n s t t n v + c x x i e 0 . v v f e e e e k k k k e v a d t i i e i + k v n . f f . v v . v v f t e o o t r + e f g . . . f f . f f a r . 3 t + t v v v v v v 2 x v + e e e e e e e + c c c c c c c + ==================== = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = Speed capabilities - Link status Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y - Link status event Y Y Y Y Y Y Y Y Y Y Y Y Y - Queue status event Y + Link status Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y + Link status event Y Y Y Y Y Y Y Y Y Y Y Y Y Y + Queue status event Y Rx interrupt Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y - Queue start/stop Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y - MTU update Y Y Y Y Y Y Y Y Y Y - Jumbo frame Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y - Scattered Rx Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y + Queue start/stop Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y + MTU update Y Y Y Y Y Y Y Y Y Y Y + Jumbo frame Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y + Scattered Rx Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y LRO Y Y Y Y TSO Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y - Promiscuous mode Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y - Allmulticast mode Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y - Unicast MAC filter Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y - Multicast MAC filter Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y - RSS hash Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y - RSS key update Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y - RSS reta update Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y + Promiscuous mode Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y + Allmulticast mode Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y + Unicast MAC filter Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y + Multicast MAC filter Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y + RSS hash Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y + RSS key update Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y + RSS reta update Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y VMDq Y Y Y Y Y Y Y - SR-IOV Y Y Y Y Y Y Y Y Y Y + SR-IOV Y Y Y Y Y Y Y Y Y Y Y DCB Y Y Y Y Y - VLAN filter Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y + VLAN filter Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Ethertype filter Y Y Y Y Y N-tuple filter Y Y Y SYN filter Y Y Y @@ -118,37 +118,37 @@ Most of these differences are summarized below. Flow control Y Y Y Y Y Y Y Y Y Rate limitation Y Y Traffic mirroring Y Y Y Y - CRC offload Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y - VLAN offload Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y + CRC offload Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y + VLAN offload Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y P QinQ offload Y Y Y Y Y Y Y - L3 checksum offload Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y - L4 checksum offload Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y + L3 checksum offload Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y + L4 checksum offload Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Inner L3 checksum Y Y Y Y Y Y Inner L4 checksum Y Y Y Y Y Y - Packet type parsing Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y + Packet type parsing Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Timesync Y Y Y Y Y - Basic stats Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y - Extended stats Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y - Stats per queue Y Y Y Y Y Y Y Y Y Y Y Y Y Y + Basic stats Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y + Extended stats Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y + Stats per queue Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y EEPROM dump Y Y Y - Registers dump Y Y Y Y Y Y - Multiprocess aware Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y - BSD nic_uio Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y - Linux UIO Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y - Linux VFIO Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y + Registers dump Y Y Y Y Y Y Y + Multiprocess aware Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y + BSD nic_uio Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y + Linux UIO Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y + Linux VFIO Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Other kdrv Y Y Y - ARMv7 Y Y Y - ARMv8 Y Y Y + ARMv7 Y Y Y + ARMv8 Y Y Y Y Power8 Y Y Y TILE-Gx Y - x86-32 Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y - x86-64 Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y - Usage doc Y Y Y Y Y Y Y Y Y Y Y + x86-32 Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y + x86-64 Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y + Usage doc Y Y Y Y Y Y Y Y Y Y Y Y Design doc Perf doc - ==================== = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = + ==================== = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = .. Note:: - Features marked with "*" are partially supported. Refer to the appropriate + Features marked with "P" are partially supported. Refer to the appropriate NIC guide in the following sections for details. diff --git a/doc/guides/nics/thunderx.rst b/doc/guides/nics/thunderx.rst new file mode 100644 index 0000000..e38f260 --- /dev/null +++ b/doc/guides/nics/thunderx.rst @@ -0,0 +1,354 @@ +.. BSD LICENSE + Copyright (C) Cavium networks Ltd. 2016. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + * Neither the name of Cavium networks nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +ThunderX NICVF Poll Mode Driver +=============================== + +The ThunderX NICVF PMD (**librte_pmd_thunderx_nicvf**) provides poll mode driver +support for the inbuilt NIC found in the **Cavium ThunderX** SoC family +as well as their virtual functions (VF) in SR-IOV context. + +More information can be found at `Cavium Networks Official Website +`_. + +Features +-------- + +Features of the ThunderX PMD are: + +- Multiple queues for TX and RX +- Receive Side Scaling (RSS) +- Packet type information +- Checksum offload +- Promiscuous mode +- Multicast mode +- Port hardware statistics +- Jumbo frames +- Link state information +- Scattered and gather for TX and RX +- VLAN stripping +- SR-IOV VF +- NUMA support + +Supported ThunderX SoCs +----------------------- +- CN88xx + +Prerequisites +------------- +- Follow the DPDK :ref:`Getting Started Guide for Linux ` to setup the basic DPDK environment. + +Pre-Installation Configuration +------------------------------ + +Config File Options +~~~~~~~~~~~~~~~~~~~ + +The following options can be modified in the ``config`` file. +Please note that enabling debugging options may affect system performance. + +- ``CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD`` (default ``n``) + + By default it is enabled only for defconfig_arm64-thunderx-* config. + Toggle compilation of the ``librte_pmd_thunderx_nicvf`` driver. + +- ``CONFIG_RTE_LIBRTE_THUNDERX_NICVF_DEBUG_INIT`` (default ``n``) + + Toggle display of initialization related messages. + +- ``CONFIG_RTE_LIBRTE_THUNDERX_NICVF_DEBUG_RX`` (default ``n``) + + Toggle display of receive fast path run-time message + +- ``CONFIG_RTE_LIBRTE_THUNDERX_NICVF_DEBUG_TX`` (default ``n``) + + Toggle display of transmit fast path run-time message + +- ``CONFIG_RTE_LIBRTE_THUNDERX_NICVF_DEBUG_DRIVER`` (default ``n``) + + Toggle display of generic debugging messages + +- ``CONFIG_RTE_LIBRTE_THUNDERX_NICVF_DEBUG_MBOX`` (default ``n``) + + Toggle display of PF mailbox related run-time check messages + +Driver Compilation +~~~~~~~~~~~~~~~~~~ + +To compile the ThunderX NICVF PMD for Linux arm64 gcc target, run the +following “make” command: + +.. code-block:: console + + cd + make config T=arm64-thunderx-linuxapp-gcc install + +Linux +----- + +.. _thunderx_testpmd_example: + +Running testpmd +~~~~~~~~~~~~~~~ + +This section demonstrates how to launch ``testpmd`` with ThunderX NIC VF device +managed by ``librte_pmd_thunderx_nicvf`` in the Linux operating system. + +#. Load ``vfio-pci`` driver: + + .. code-block:: console + + modprobe vfio-pci + + .. _thunderx_vfio_noiommu: + +#. Enable **VFIO-NOIOMMU** mode (optional): + + .. code-block:: console + + echo 1 > /sys/module/vfio/parameters/enable_unsafe_noiommu_mode + + .. note:: + + **VFIO-NOIOMMU** is required only when running in VM context and should not be enabled otherwise. + See also :ref:`SR-IOV: Prerequisites and sample Application Notes `. + +#. Bind the ThunderX NIC VF device to ``vfio-pci`` loaded in the previous step: + + Setup VFIO permissions for regular users and then bind to ``vfio-pci``: + + .. code-block:: console + + ./tools/dpdk_nic_bind.py --bind vfio-pci 0002:01:00.2 + +#. Start ``testpmd`` with basic parameters: + + .. code-block:: console + + ./arm64-thunderx-linuxapp-gcc/app/testpmd -c 0xf -n 4 -w 0002:01:00.2 \ + -- -i --disable-hw-vlan-filter --crc-strip --no-flush-rx \ + --port-topology=loop + + Example output: + + .. code-block:: console + + ... + + PMD: rte_nicvf_pmd_init(): librte_pmd_thunderx nicvf version 1.0 + + ... + EAL: probe driver: 177d:11 rte_nicvf_pmd + EAL: using IOMMU type 1 (Type 1) + EAL: PCI memory mapped at 0x3ffade50000 + EAL: Trying to map BAR 4 that contains the MSI-X table. + Trying offsets: 0x40000000000:0x0000, 0x10000:0x1f0000 + EAL: PCI memory mapped at 0x3ffadc60000 + PMD: nicvf_eth_dev_init(): nicvf: device (177d:11) 2:1:0:2 + PMD: nicvf_eth_dev_init(): node=0 vf=1 mode=tns-bypass sqs=false + loopback_supported=true + PMD: nicvf_eth_dev_init(): Port 0 (177d:11) mac=a6:c6:d9:17:78:01 + Interactive-mode selected + Configuring Port 0 (socket 0) + ... + + PMD: nicvf_dev_configure(): Configured ethdev port0 hwcap=0x0 + Port 0: A6:C6:D9:17:78:01 + Checking link statuses... + Port 0 Link Up - speed 10000 Mbps - full-duplex + Done + testpmd> + +.. _thunderx_sriov_example: + +SR-IOV: Prerequisites and sample Application Notes +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Current ThunderX NIC PF/VF kernel modules maps each physical Ethernet port +automatically to virtual function (VF) and presented them as PCIe-like SR-IOV device. +This section provides instructions to configure SR-IOV with Linux OS. + +#. Verify PF devices capabilities using ``lspci``: + + .. code-block:: console + + lspci -vvv + + Example output: + + .. code-block:: console + + 0002:01:00.0 Ethernet controller: Cavium Networks Device a01e (rev 01) + ... + Capabilities: [100 v1] Alternative Routing-ID Interpretation (ARI) + ... + Capabilities: [180 v1] Single Root I/O Virtualization (SR-IOV) + ... + Kernel driver in use: thunder-nic + ... + + .. note:: + + Unless ``thunder-nic`` driver is in use make sure your kernel config includes ``CONFIG_THUNDER_NIC_PF`` setting. + +#. Verify VF devices capabilities and drivers using ``lspci``: + + .. code-block:: console + + lspci -vvv + + Example output: + + .. code-block:: console + + 0002:01:00.1 Ethernet controller: Cavium Networks Device 0011 (rev 01) + ... + Capabilities: [100 v1] Alternative Routing-ID Interpretation (ARI) + ... + Kernel driver in use: thunder-nicvf + ... + + 0002:01:00.2 Ethernet controller: Cavium Networks Device 0011 (rev 01) + ... + Capabilities: [100 v1] Alternative Routing-ID Interpretation (ARI) + ... + Kernel driver in use: thunder-nicvf + ... + + .. note:: + + Unless ``thunder-nicvf`` driver is in use make sure your kernel config includes ``CONFIG_THUNDER_NIC_VF`` setting. + +#. Verify PF/VF bind using ``dpdk_nic_bind.py``: + + .. code-block:: console + + ./tools/dpdk_nic_bind.py --status + + Example output: + + .. code-block:: console + + ... + 0002:01:00.0 'Device a01e' if= drv=thunder-nic unused=vfio-pci + 0002:01:00.1 'Device 0011' if=eth0 drv=thunder-nicvf unused=vfio-pci + 0002:01:00.2 'Device 0011' if=eth1 drv=thunder-nicvf unused=vfio-pci + ... + +#. Load ``vfio-pci`` driver: + + .. code-block:: console + + modprobe vfio-pci + +#. Bind VF devices to ``vfio-pci`` using ``dpdk_nic_bind.py``: + + .. code-block:: console + + ./tools/dpdk_nic_bind.py --bind vfio-pci 0002:01:00.1 + ./tools/dpdk_nic_bind.py --bind vfio-pci 0002:01:00.2 + +#. Verify VF bind using ``dpdk_nic_bind.py``: + + .. code-block:: console + + ./tools/dpdk_nic_bind.py --status + + Example output: + + .. code-block:: console + + ... + 0002:01:00.1 'Device 0011' drv=vfio-pci unused= + 0002:01:00.2 'Device 0011' drv=vfio-pci unused= + ... + 0002:01:00.0 'Device a01e' if= drv=thunder-nic unused=vfio-pci + ... + +#. Pass VF device to VM context (PCIe Passthrough): + + The VF devices may be passed through to the guest VM using qemu or + virt-manager or virsh etc. + ``librte_pmd_thunderx_nicvf`` or ``thunder-nicvf`` should be used to bind + the VF devices in the guest VM in :ref:`VFIO-NOIOMMU ` mode. + + Example qemu guest launch command: + + .. code-block:: console + + sudo qemu-system-aarch64 -name vm1 \ + -machine virt,gic_version=3,accel=kvm,usb=off \ + -cpu host -m 4096 \ + -smp 4,sockets=1,cores=8,threads=1 \ + -nographic -nodefaults \ + -kernel \ + -append "root=/dev/vda console=ttyAMA0 rw hugepagesz=512M hugepages=3" \ + -device vfio-pci,host=0002:01:00.1 \ + -drive file=,if=none,id=disk1,format=raw \ + -device virtio-blk-device,scsi=off,drive=disk1,id=virtio-disk1,bootindex=1 \ + -netdev tap,id=net0,ifname=tap0,script=/etc/qemu-ifup_thunder \ + -device virtio-net-device,netdev=net0 \ + -serial stdio \ + -mem-path /dev/huge + +#. Refer to section :ref:`Running testpmd ` for instruction + how to launch ``testpmd`` application. + +Limitations +----------- + +CRC striping +~~~~~~~~~~~~ + +The ThunderX SoC family NICs strip the CRC for every packets coming into the +host interface. So, CRC will be stripped even when the +``rxmode.hw_strip_crc`` member is set to 0 in ``struct rte_eth_conf``. + +Maximum packet length +~~~~~~~~~~~~~~~~~~~~~ + +The ThunderX SoC family NICs support a maximum of a 9K jumbo frame. The value +is fixed and cannot be changed. So, even when the ``rxmode.max_rx_pkt_len`` +member of ``struct rte_eth_conf`` is set to a value lower than 9200, frames +up to 9200 bytes can still reach the host interface. + +Maximum packet segments +~~~~~~~~~~~~~~~~~~~~~~~ + +The ThunderX SoC family NICs support up to 12 segments per packet when working +in scatter/gather mode. So, setting MTU will result with ``EINVAL`` when the +frame size does not fit in the maximum number of segments. + +Limited VFs +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The ThunderX SoC family NICs has 128VFs and each VF has 8/8 queues +for RX/TX respectively. Current driver implementation has one to one mapping +between physical port and VF hence only limited VFs can be used. diff --git a/doc/guides/rel_notes/release_16_07.rst b/doc/guides/rel_notes/release_16_07.rst index 30e78d4..29b8b52 100644 --- a/doc/guides/rel_notes/release_16_07.rst +++ b/doc/guides/rel_notes/release_16_07.rst @@ -47,6 +47,7 @@ New Features * Dropped specific Xen Dom0 code. * Dropped specific anonymous mempool code in testpmd. +* **Added new poll-mode driver for ThunderX nicvf inbuit NIC device.** Resolved Issues ---------------