From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0054.outbound.protection.outlook.com [104.47.36.54]) by dpdk.org (Postfix) with ESMTP id 9F4239A06 for ; Fri, 26 May 2017 08:51:52 +0200 (CEST) Received: from CY1PR03CA0007.namprd03.prod.outlook.com (10.174.128.17) by BN6SPR00MB2550.namprd03.prod.outlook.com (10.175.102.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1124.9; Fri, 26 May 2017 06:51:51 +0000 Received: from BL2FFO11FD038.protection.gbl (2a01:111:f400:7c09::166) by CY1PR03CA0007.outlook.office365.com (2603:10b6:600::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1124.9 via Frontend Transport; Fri, 26 May 2017 06:51:50 +0000 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.158.2 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.158.2; helo=az84smr01.freescale.net; Received: from az84smr01.freescale.net (192.88.158.2) by BL2FFO11FD038.mail.protection.outlook.com (10.173.161.134) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1075.5 via Frontend Transport; Fri, 26 May 2017 06:51:50 +0000 Received: from bf-netperf1.ap.freescale.net (bf-netperf1.ap.freescale.net [10.232.134.28]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id v4Q6pQMb014894; Thu, 25 May 2017 23:51:48 -0700 From: Hemant Agrawal To: CC: , Date: Fri, 26 May 2017 12:21:17 +0530 Message-ID: <1495781485-2236-13-git-send-email-hemant.agrawal@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1495781485-2236-1-git-send-email-hemant.agrawal@nxp.com> References: <1495445969-29199-1-git-send-email-hemant.agrawal@nxp.com> <1495781485-2236-1-git-send-email-hemant.agrawal@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131402551103985521; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.158.2; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(39850400002)(39450400003)(39380400002)(39840400002)(39410400002)(39400400002)(39860400002)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(9170700003)(6666003)(33646002)(50986999)(76176999)(6916009)(2351001)(5003940100001)(106466001)(5660300001)(54906002)(81166006)(2950100002)(356003)(105606002)(47776003)(189998001)(8676002)(8656002)(81156014)(36756003)(305945005)(498600001)(50466002)(38730400002)(110136004)(53936002)(77096006)(104016004)(4326008)(86362001)(8936002)(575784001)(48376002)(2906002)(85426001)(69596002)(50226002); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6SPR00MB2550; H:az84smr01.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; MX:1; A:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD038; 1:DOMzMoG02vQpoylWfu2Uc933rEOsmPKOlR9iNB22EvTFSws+L79fooH/uM/h4dRMG12Vhi1Hv4Ny0VByD0NLMDghbCmSEb2B2zLe1oPs3GNgGlE9htXzRYHTQMdPTyxTMyapLi3wyG0it4+PZHRjoxAt2Pb8mmEUrOtEpwe0Kh1hJOK3OcR5V6jw4SRjkt62D9iu3V5C920LUxIeCFMwT6xVIzbzZ7Z6kG/GZp/D3Gu/nUPbwudnIHA4U0Wrr8xwSHutOXkcrmKZQ58BFBQ91esIog6IGyw86q4gJ338x2N/pklj0EdRWUUGctg2d1LIk2Jd2yFqQm86zYPIwGO9i83XdubVfXu+rT1q36jRceDImARKkTx5fILhps8Ge3DUlrF7sF/R9csBSP388ixugfYqY2m9zloJ/+/hqDd8VgNysCrXu4Xt3T6ZLZCRl9z5DipLX+lzoEIdULB4rCyt/eOaJEOhDI9A+btudUjE8Zs/7DuPM0RGclpKKhTzDoCZiE/PY5G2HmIFhX5zzWoDtpP6BSTvE3oya+XLRgzXlNPovDP8KiR3RCl2rQ3ocICbsiZ7G2MZcqBxnkJ1k62gk1DBcPd/3EpvbjqLGAXKXNATInZhez5Mt886G8ZyClfQI+zpHlG28bjcWu4pGuIPrzZa2hAG8x+nPZ4XLcdkLToUVHvBfnZcjMXvVwzt9UXZ3griPra3tjHYeCqm34j9s4FDq//eZIEDkRP+EGjl4PRvWIaoveoTiLiC++tdJ4k/VgSYhN+47tDJqrS9RRhOyA== MIME-Version: 1.0 Content-Type: text/plain X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN6SPR00MB2550: X-MS-Office365-Filtering-Correlation-Id: 828b8c36-1545-446f-1771-08d4a403af99 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131430075)(201703131517081); SRVR:BN6SPR00MB2550; X-Microsoft-Exchange-Diagnostics: 1; BN6SPR00MB2550; 3:7Z7aXaiBrsYQv9dsGsyk7ns9RV4YS7B94O+40asQhmPZGAp8fOhr0rjeTk5Cl/LxPP3hr/d8Gg9QdtNGHpZbYYY78/UbUyQPFtRsct/EmFjkDOUiRGXR7g1fpedn8oVz7Qh+buWZV4k6UcLi3kQbewuCMnS/9b86hsWEx6r8ULQLlAz1WJz5qQeSw8M9fd08hnP/bwfZfolCgErM14pHw9YZji6NyFcmnG+Yon9mdW4NabWbX5gGgv2v7jxqZM2GgnMMGzDVFHzDXwcecg0pWj5pN6ej00XsrnUKVnPM2VSEWlpLc0b4UZsdjVD/OLUySAxg5A+bqoC196yKU4hglwuVZxRtKa1m6kCl+0q8uIvoYBT1ZLlVINGbzTrn5XIYsXX3J3Cqxtp3bAuScJe+M15BJvZH1GKBGQhTrOpN3eWi3hCqBXrjwbDj0CbGGShM; 25:tYudxAKAPmltWq811fOujxFV2E2isefzcHCXoeC/+iwxxdBbcxqfGO8W8F0XuLwPi5VyPE2J0yyFstUHU+qf36q8VuIuc20E0HzLeTjnfWTksyakzmNpi4HTIuuD2FHAbCu3ty3tjAEJP4IpucoTImwmhmuek7rSO02vO29BAuzF+rproicr4DtLK6yJDZSeydaIelw1z6Css+CtUDHHJekRyfV3ZH9JMErAdhbPLXQmWL9F/kGgWyNhDEmuRYuvbNAkczAmYfa+GSkZVPpQ/YWGguV0/W9N8wgEXk2yAQvbPSg25vEGkgmzdFmu2/SPtDOZ6LiMJlin4U3yCeB3OTsaeq4zIIY5EkwAnKJnkpNfrBOa4th30hZmwzw5fAozasTjepJnpUJMzgEGNAwR3A6g+lbBynl9C6y8eNNX7DtnipLxmXJE3pHsMfZrVmbLWoiDMQMIfZ281DyX+1ns+IGtNaXqNp4csLXcaAzfDIQ= X-Microsoft-Exchange-Diagnostics: 1; BN6SPR00MB2550; 31:zbB0ZHvyCILjL3ICSSyrKFxb3HnJjXZH1Wzh0unAbUTpOVJXOR5PT07oP51TUj1TYmRjEvDNH/FWg7QqzvFoq8+kdsdj2iaNtRQr1FmlCzYlAyhXoH6X3dO1/EDDB2Ec9XFZyBrV/kFI7WO1u8jlk5qmZrDhnIflS7besrseVyH8HDxVdvOJRampLtPjmOSqvICCJDfzsAiH0FHCcmtWDtCW5eo/qT7Cov/eM0DmjUotoyLmaJj8Hxv2DahQKChwooh5hvbdz+eMK42soHr7Bg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197)(275809806118684); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700061)(100105000095)(100000701061)(100105300095)(100000702061)(100105100095)(6095135)(601004)(2401047)(13017025)(13015025)(13024025)(13023025)(8121501046)(5005006)(13018025)(10201501046)(100000703061)(100105400095)(3002001)(93006095)(93001095)(6055026)(6096035)(201703131430075)(201703131433075)(201703131441075)(201703131448075)(201703161259150)(20161123559100)(20161123565025)(20161123556025)(20161123563025)(20161123561025)(100000704061)(100105200095)(100000705061)(100105500095); SRVR:BN6SPR00MB2550; BCL:0; PCL:0; RULEID:(100000800061)(100110000095)(100000801061)(100110300095)(100000802061)(100110100095)(100000803061)(100110400095)(400006)(100000804061)(100110200095); SRVR:BN6SPR00MB2550; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6SPR00MB2550; 4:vLSjZqu2UMu6zrtdB3kSt/D2D/XKH9Ax/yoD2cf+Y?= =?us-ascii?Q?7mYfnYp80jGzrqxUt2AUbfUT1MX2mpEy+PwTtOhSutKVwImZg/8YVSRuulSS?= =?us-ascii?Q?T1hpevUzqlj3IRkG/1cbtiCON4Xw3jyBac+LJ3XjjqGInLqwasDfo2irBsRe?= =?us-ascii?Q?+8VAXQW8UWU+0Y/lnXEIw8fY78jU2JdxZMKmr6LWEOV4tk3q9YjGdPPpu9AD?= =?us-ascii?Q?KPXZIiXiypMoq77VSAwNGGzq08AhmhXoiIEeGUiZMRaJ9VYMx9Bb52QepsIO?= =?us-ascii?Q?JnHdzVZ4NysMaHKzjekzjKEwFHR7zu+d2a8EtOEfl7lADmwxxHCwoQPWLSYM?= =?us-ascii?Q?xiCK/CaTEQjYb0DPEsMmma1o607VZamAABWnQTmnKXx1dKxqhITfZygZdO7R?= =?us-ascii?Q?qCZPckw69Mb+1IZVSc534RF96+LjKAvmBFkboVMH/xF7/XxhKM5JU96PBIlO?= =?us-ascii?Q?UH76lHALeoAlnapyLEZwmXEK9Nnm1kZAJ4cayiuC3IJ0JKqD877u25x+mn3S?= =?us-ascii?Q?J0bIzy9UHJA7kOZdsxAnnM7157o5gHGIVIDZxmx8hTZji/yssS4xIbgmeAf2?= =?us-ascii?Q?sut9UJoxDaNZVCq1VBMXtxa08yHNSi9pUYX6/uczIhV0lFUYZA6lHthoqs0y?= =?us-ascii?Q?imokxhR2wsM+AV50S9g2BaApHkRjNfB3JnpZgvzR2+EC7ghvZ/4n1MwZMM7h?= =?us-ascii?Q?37b209xszF0Moo3cuP/nxvB+NEqlYX+fOQQErbVDbqq9t6VKOixLnsx9aHf1?= =?us-ascii?Q?+NkcCIl6ZrknnXgvMpV+d4cWfyJH1EtWZFB/DsrJ0K+aRfb7WgnrhDAJgtkH?= =?us-ascii?Q?swPFrFiwO2hZ4+7m+JKswwQ+/MtP0h2mWeBnFrx/Tflm7jz07RFqJCVjEMI4?= =?us-ascii?Q?69KjR4QhR/CYUscAjQRvShwbFvTd0bdwjI3BxdNwyW3AR7lii91W4YCYCZ0D?= =?us-ascii?Q?ifN1J/AxNhcHvqNEXWuNZpLrEYUGUeURkeeyLK+VanNnvhmTNIkjHcGQpBKO?= =?us-ascii?Q?1eqeEEWmpRiHZbG6qd5ZB9nW6j/xpf/4m1T4QS+3JMgrhqSpMVInegEM6CmY?= =?us-ascii?Q?WnSGYpMVsThsk4MLF+W6x+IwNiZGFvhbCgGqtjlFeA8Vf5q1uiJ6GYnA6ZCW?= =?us-ascii?Q?FRhwGmsUOKxpeUzmXzcF1+7LIg8x3S6EBm3U6eE/mCgkB2IUptDBY3m2c9aI?= =?us-ascii?Q?Yy1H6U0Ux4tUaQtVp8Va9vGUm3Z+egXYdtaSV8qWkvdCwHSMRMscEdup2evR?= =?us-ascii?Q?epZefZJwJ7rs1rDJaLDYYrT1ISJxJYvMwZ70PSKgmvFALYZ8CzRDc12gKITt?= =?us-ascii?Q?dAPcCVueqxzuJR4I1FVFrgmJLGwCLQBbaIi9wiC7qvgsYSVrAWjAp6duNKXl?= =?us-ascii?Q?dXvAQ=3D=3D?= X-Forefront-PRVS: 031996B7EF X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6SPR00MB2550; 23:oOPz8TxYcbte8vk4TS7Vw2Mket/Sdrho0Ut7PKz2?= =?us-ascii?Q?FIPjNj8ZOrIH6TgdNwdkdyRGPf3gSRh1ELZnkmFKotNxRkrRVD8A4nPyd8iz?= =?us-ascii?Q?PZfeWnNUulEuc+XJUn0foqIMRP49XjMbzZSWXSUdPxMeNMTyjmqDgeJKAnMC?= =?us-ascii?Q?p+JAmVxne9O8HK8Zz5n9+6D6zI1tOVXceKdTwN9tFdDhwLFr9ldf4MJMFThV?= =?us-ascii?Q?mWUCPpfMd7B9XycGe/SQlDMM8z5VvFuPbajUXz+Sb58L+I0ydFTVX5UTGhEt?= =?us-ascii?Q?UrHKYAdp/lvARMANO5flyjiQfuhJsDYivDeiKTmaQUwuaJHIkeZ9nKDmw/Qr?= =?us-ascii?Q?0VyZbhb4H4ukFHBIS84wd3ea1GWwj+rBY9BPI5AS/VmHpcBGPq5V4lWuVL0e?= =?us-ascii?Q?iAtgCxtxFRaQXckVU7mi2iNnay94b9gkaoThRUaB6CrcCM246WL+eQx9G/Sa?= =?us-ascii?Q?ANOOzBCD23Pu40vLtk0P0SBPGF88wVmOVX74OnfThiOHbqPtD6j00igcnxZM?= =?us-ascii?Q?Bk5eqRI3pNd+wMkdPLSgu1e/AzDAOPy2jlAepkFBGIFaGXe1Y1OsoITLqilg?= =?us-ascii?Q?R9L339ZG1fyROP7atxr8b6zT3zFKMB2d3tVe6LFhZd9d8MJ89bfw3Es70oBH?= =?us-ascii?Q?UWzCmqHJcOZpolJdf21ruqKuU8nR+5pO+aislZ6QkCmY9vtb9QZtdg91X8pL?= =?us-ascii?Q?gC4m9A1E6WACY/wlIyxQdWnZ3Eqq2F5gKNLM4Vh/ApIwOu8NWOldWLSUzJie?= =?us-ascii?Q?Hina9jN8/P1KUowpRdlaVR8ol8ggUbsCffRzWWJPLoZv41+4QLjhbYg+kObK?= =?us-ascii?Q?p2Hp+d7+bj5u4T70neXEcQGaP0F1R//QwvdqIC9lYQJup74YEZj2VWuq9FNY?= =?us-ascii?Q?EGf0vqfOnjgUiVcYcnqKN+D4FEffSNyiKmFwFdf5tpOhl6hixKJQdye9FQYt?= =?us-ascii?Q?t5fIftr0sKcGXvIjX4cz+BFHbbBaxQAeqp6VXhrdZ0OfLitb1AuCAz7KlcYC?= =?us-ascii?Q?jDfLc4QUu9kAs8NEc496jc7n0fIpi4JeED0OQR/CZDiDDlKhOGzmFJLmjux1?= =?us-ascii?Q?XX9AZfH+7oHEI3RA1UmRAQrJidsOW8+0pIdXJZ6bPBf2vdpvtJNMurqFeh9G?= =?us-ascii?Q?HgYkI2vqvqpbEMg724mj+iAOo3Ynz0yiS05N7gj9Js+Et0yLB3rZiZkLnqxh?= =?us-ascii?Q?me/wpuP7B8pT5zTfnu1qQ7NgYDlpRGNY0k7ieku1kzcGNrPlWAtpXlxl3AOt?= =?us-ascii?Q?UC7eHhCmlwMOAjb04pd8RbSdCC19dtFuItrDrSpiOV1S5sKPIt/JKe1V2Snl?= =?us-ascii?Q?AiQNDUmg87s5A+RpjxWlOB4=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN6SPR00MB2550; 6:RocPPOqC88jMOKShKx4wMHBwKm0Qa4c8/KcI8Heyu02mPF1UYx8455FHSQrbmH2Kg+Dcgbtdg1MJsCJ4dmypSVQaPEsPlUBqENoSvvcM8HEBnBINa8Rk/yqS7fi72AvhKDTCP0P2hG3rv4XaGVE+ZfAHSlYoexRP7yn0Qhwptu3E8KqF6yj7/rl9uav3VN7iz061XYwsjEmsCRr81X6iII800mOYZunSwzgkY3/RirS5vT13aeectggo3/xNnWrhSRNf+DuISksLosLON13L2DOdtpGtF5tPwa/y5QuT5L8Wbhs2gDXw4p8PS9BSRCs8xPzt/PAhzcYNzNaQXuGtUNR4MlPRYqNJZfREcULYiAQuUUztXnZqMOmP5ePKx7aFwhH2mBkZ+ODZbLsWrpeSvlJCBOf/vEH4jPf3xds6M3bVINMIWl79JEP31WvtjFQ2CxiWMK2hV6ml69n95k4/y1mMz/XAN2hlmqRsK2jHUMDKk9qLzpKRGfVa1QPev9sjLjcTL1U8tziSTkBqP47R/A== X-Microsoft-Exchange-Diagnostics: 1; BN6SPR00MB2550; 5:LVDlF2FzRaUW9Jrywxt8/F7/ZyKI2oo6uElJ6MCoFayV24OA5KIvRqipf0NSOc3saR2Nzjh6XhW/Aq22oNOvMDbmbi4DSuU+YUwXjt1HWl0tcaEEUASISWk0IkYWrDB/HSjv0Ud+rTX7bPLM1aDfzXwzHn6YAeXfcRVBqo9DF7KxxmvU7pL7NiuFeAn9eOV4BO7+2xY5H5FLO1Jo4pLudwWe9jpsebh8zX7M2s3L1RWulan6xQfq9wXtT+5JtfNVPruptXlUty0b0K1Kd2QTfGkQ4QHYDuoBTM/agqdWGGp09pZfBbMsRWvrsFTJjqBBUF77zLWYSYwnsBfZLHeEEfLMjPgPCp6qSiFKa0X4fJS/njGDMx+vZYrwUmpNBdTSm22z8SSLm9rCeQY9zrW1VbK58X6dVrprrTVrDtN7C/cjAVHEVqdgB5qBPciyxdX1Xiyufyge7j/Ne1zC+AV6jg==; 24:a4D7pnFRV7Vhwe3cBwlH/H2PLcPOpxPS+tOwFO5A3U9bIwLe1xH0EffQm42SlQhDV03gE82RDEejz49J1X1xJQhB23JdJXNBjaEMyU8GZj4=; 7:DGyuY4Iu8aS/wItzXK6OCI0Vvk1Br4KVsGJC/MOjb1bz1DJMwMuT7pyzdzfkotPbB7CTu1ZufRpoZ5AO656AjuMXEt9helaLtGiHRYetjBkcxb5X50m+tFd49nEVEZKHMCdoSAENo6MrS6X25zdqw+IapeGkVb5ncg0HBe5ws9S/ltATxd4xKz62pJN9Kk+Lc1jSTu12qqIDlxqsmyOQZclmYn8uzi+LmlxBk714VaZLlBk5q2KtDhqZXqdlGhmkofBzkYveeupblf9AuzP5Q+FCkD+2e4h0OVIeCiOWE6uaY4UScZmu7cXPIQzbeBPdt4zJL6aJA33aqFWi8qeBvA== SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2017 06:51:50.1801 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.158.2]; Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6SPR00MB2550 Subject: [dpdk-dev] [PATCH v4 12/20] net/dpaa2: add support for multicast promiscuous mode 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: Fri, 26 May 2017 06:51:53 -0000 Signed-off-by: Hemant Agrawal --- doc/guides/nics/features/dpaa2.ini | 1 + drivers/net/dpaa2/dpaa2_ethdev.c | 61 +++++++++++++++++++++++++++++++++++-- drivers/net/dpaa2/mc/dpni.c | 41 +++++++++++++++++++++++++ drivers/net/dpaa2/mc/fsl_dpni.h | 27 ++++++++++++++++ drivers/net/dpaa2/mc/fsl_dpni_cmd.h | 10 ++++++ 5 files changed, 138 insertions(+), 2 deletions(-) diff --git a/doc/guides/nics/features/dpaa2.ini b/doc/guides/nics/features/dpaa2.ini index 470853c..dddf0e0 100644 --- a/doc/guides/nics/features/dpaa2.ini +++ b/doc/guides/nics/features/dpaa2.ini @@ -8,6 +8,7 @@ Link status = Y Queue start/stop = Y MTU update = Y Promiscuous mode = Y +Allmulticast mode = Y Unicast MAC filter = Y RSS hash = Y L3 checksum offload = Y diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c index 5180871..22e0474 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.c +++ b/drivers/net/dpaa2/dpaa2_ethdev.c @@ -617,7 +617,11 @@ ret = dpni_set_unicast_promisc(dpni, CMD_PRI_LOW, priv->token, true); if (ret < 0) - RTE_LOG(ERR, PMD, "Unable to enable promiscuous mode %d", ret); + RTE_LOG(ERR, PMD, "Unable to enable U promisc mode %d", ret); + + ret = dpni_set_multicast_promisc(dpni, CMD_PRI_LOW, priv->token, true); + if (ret < 0) + RTE_LOG(ERR, PMD, "Unable to enable M promisc mode %d", ret); } static void @@ -637,7 +641,58 @@ ret = dpni_set_unicast_promisc(dpni, CMD_PRI_LOW, priv->token, false); if (ret < 0) - RTE_LOG(ERR, PMD, "Unable to disable promiscuous mode %d", ret); + RTE_LOG(ERR, PMD, "Unable to disable U promisc mode %d", ret); + + if (dev->data->all_multicast == 0) { + ret = dpni_set_multicast_promisc(dpni, CMD_PRI_LOW, + priv->token, false); + if (ret < 0) + RTE_LOG(ERR, PMD, "Unable to disable M promisc mode %d", + ret); + } +} + +static void +dpaa2_dev_allmulticast_enable( + struct rte_eth_dev *dev) +{ + int ret; + struct dpaa2_dev_priv *priv = dev->data->dev_private; + struct fsl_mc_io *dpni = (struct fsl_mc_io *)priv->hw; + + PMD_INIT_FUNC_TRACE(); + + if (dpni == NULL) { + RTE_LOG(ERR, PMD, "dpni is NULL"); + return; + } + + ret = dpni_set_multicast_promisc(dpni, CMD_PRI_LOW, priv->token, true); + if (ret < 0) + RTE_LOG(ERR, PMD, "Unable to enable multicast mode %d", ret); +} + +static void +dpaa2_dev_allmulticast_disable(struct rte_eth_dev *dev) +{ + int ret; + struct dpaa2_dev_priv *priv = dev->data->dev_private; + struct fsl_mc_io *dpni = (struct fsl_mc_io *)priv->hw; + + PMD_INIT_FUNC_TRACE(); + + if (dpni == NULL) { + RTE_LOG(ERR, PMD, "dpni is NULL"); + return; + } + + /* must remain on for all promiscuous */ + if (dev->data->promiscuous == 1) + return; + + ret = dpni_set_multicast_promisc(dpni, CMD_PRI_LOW, priv->token, false); + if (ret < 0) + RTE_LOG(ERR, PMD, "Unable to disable multicast mode %d", ret); } static int @@ -888,6 +943,8 @@ void dpaa2_dev_stats_reset(struct rte_eth_dev *dev) .dev_close = dpaa2_dev_close, .promiscuous_enable = dpaa2_dev_promiscuous_enable, .promiscuous_disable = dpaa2_dev_promiscuous_disable, + .allmulticast_enable = dpaa2_dev_allmulticast_enable, + .allmulticast_disable = dpaa2_dev_allmulticast_disable, .link_update = dpaa2_dev_link_update, .stats_get = dpaa2_dev_stats_get, .stats_reset = dpaa2_dev_stats_reset, diff --git a/drivers/net/dpaa2/mc/dpni.c b/drivers/net/dpaa2/mc/dpni.c index 4cea5f2..30bb7ad 100644 --- a/drivers/net/dpaa2/mc/dpni.c +++ b/drivers/net/dpaa2/mc/dpni.c @@ -509,6 +509,47 @@ int dpni_get_max_frame_length(struct fsl_mc_io *mc_io, return 0; } +int dpni_set_multicast_promisc(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token, + int en) +{ + struct mc_command cmd = { 0 }; + + /* prepare command */ + cmd.header = mc_encode_cmd_header(DPNI_CMDID_SET_MCAST_PROMISC, + cmd_flags, + token); + DPNI_CMD_SET_MULTICAST_PROMISC(cmd, en); + + /* send command to mc*/ + return mc_send_command(mc_io, &cmd); +} + +int dpni_get_multicast_promisc(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token, + int *en) +{ + struct mc_command cmd = { 0 }; + int err; + + /* prepare command */ + cmd.header = mc_encode_cmd_header(DPNI_CMDID_GET_MCAST_PROMISC, + cmd_flags, + token); + + /* send command to mc*/ + err = mc_send_command(mc_io, &cmd); + if (err) + return err; + + /* retrieve response parameters */ + DPNI_RSP_GET_MULTICAST_PROMISC(cmd, *en); + + return 0; +} + int dpni_set_unicast_promisc(struct fsl_mc_io *mc_io, uint32_t cmd_flags, uint16_t token, diff --git a/drivers/net/dpaa2/mc/fsl_dpni.h b/drivers/net/dpaa2/mc/fsl_dpni.h index dbb3b20..dae57b5 100644 --- a/drivers/net/dpaa2/mc/fsl_dpni.h +++ b/drivers/net/dpaa2/mc/fsl_dpni.h @@ -797,6 +797,33 @@ int dpni_get_max_frame_length(struct fsl_mc_io *mc_io, uint16_t token, uint16_t *max_frame_length); +/** + * dpni_set_multicast_promisc() - Enable/disable multicast promiscuous mode + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPNI object + * @en: Set to '1' to enable; '0' to disable + * + * Return: '0' on Success; Error code otherwise. + */ +int dpni_set_multicast_promisc(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token, + int en); + +/** + * dpni_get_multicast_promisc() - Get multicast promiscuous mode + * @mc_io: Pointer to MC portal's I/O object + * @cmd_flags: Command flags; one or more of 'MC_CMD_FLAG_' + * @token: Token of DPNI object + * @en: Returns '1' if enabled; '0' otherwise + * + * Return: '0' on Success; Error code otherwise. + */ +int dpni_get_multicast_promisc(struct fsl_mc_io *mc_io, + uint32_t cmd_flags, + uint16_t token, + int *en); /** * dpni_set_unicast_promisc() - Enable/disable unicast promiscuous mode diff --git a/drivers/net/dpaa2/mc/fsl_dpni_cmd.h b/drivers/net/dpaa2/mc/fsl_dpni_cmd.h index 1ae734a..bd2bb3f 100644 --- a/drivers/net/dpaa2/mc/fsl_dpni_cmd.h +++ b/drivers/net/dpaa2/mc/fsl_dpni_cmd.h @@ -65,6 +65,8 @@ #define DPNI_CMDID_SET_MAX_FRAME_LENGTH ((0x216 << 4) | (0x1)) #define DPNI_CMDID_GET_MAX_FRAME_LENGTH ((0x217 << 4) | (0x1)) +#define DPNI_CMDID_SET_MCAST_PROMISC ((0x220 << 4) | (0x1)) +#define DPNI_CMDID_GET_MCAST_PROMISC ((0x221 << 4) | (0x1)) #define DPNI_CMDID_SET_UNICAST_PROMISC ((0x222 << 4) | (0x1)) #define DPNI_CMDID_GET_UNICAST_PROMISC ((0x223 << 4) | (0x1)) #define DPNI_CMDID_SET_PRIM_MAC ((0x224 << 4) | (0x1)) @@ -247,6 +249,14 @@ MC_RSP_OP(cmd, 0, 0, 16, uint16_t, max_frame_length) /* cmd, param, offset, width, type, arg_name */ +#define DPNI_CMD_SET_MULTICAST_PROMISC(cmd, en) \ + MC_CMD_OP(cmd, 0, 0, 1, int, en) + +/* cmd, param, offset, width, type, arg_name */ +#define DPNI_RSP_GET_MULTICAST_PROMISC(cmd, en) \ + MC_RSP_OP(cmd, 0, 0, 1, int, en) + +/* cmd, param, offset, width, type, arg_name */ #define DPNI_CMD_SET_UNICAST_PROMISC(cmd, en) \ MC_CMD_OP(cmd, 0, 0, 1, int, en) -- 1.9.1