From patchwork Sun Apr 9 08:11:16 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hemant Agrawal X-Patchwork-Id: 23387 X-Patchwork-Delegate: ferruh.yigit@amd.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 DFB49D1E4; Sun, 9 Apr 2017 10:10:07 +0200 (CEST) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0087.outbound.protection.outlook.com [104.47.36.87]) by dpdk.org (Postfix) with ESMTP id 4B7AFD1B2 for ; Sun, 9 Apr 2017 10:10:05 +0200 (CEST) Received: from CY4PR03CA0023.namprd03.prod.outlook.com (10.168.162.33) by BL2PR03MB274.namprd03.prod.outlook.com (10.255.231.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1019.17; Sun, 9 Apr 2017 08:10:03 +0000 Received: from BN1AFFO11FD046.protection.gbl (2a01:111:f400:7c10::129) by CY4PR03CA0023.outlook.office365.com (2603:10b6:903:33::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1019.17 via Frontend Transport; Sun, 9 Apr 2017 08:10:03 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; caviumnetworks.com; dkim=none (message not signed) header.d=none; caviumnetworks.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BN1AFFO11FD046.mail.protection.outlook.com (10.58.53.61) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1019.14 via Frontend Transport; Sun, 9 Apr 2017 08:10:03 +0000 Received: from DTS-02.ap.freescale.net (DTS-02.ap.freescale.net [10.232.132.223]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v3989Aos015502; Sun, 9 Apr 2017 01:09:59 -0700 From: Hemant Agrawal To: CC: , , , , , Date: Sun, 9 Apr 2017 13:41:16 +0530 Message-ID: <1491725483-6619-16-git-send-email-hemant.agrawal@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1491725483-6619-1-git-send-email-hemant.agrawal@nxp.com> References: <1490362538-20854-1-git-send-email-hemant.agrawal@nxp.com> <1491725483-6619-1-git-send-email-hemant.agrawal@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131361990032141944; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(39840400002)(39450400003)(39400400002)(39410400002)(39860400002)(39850400002)(39380400002)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(9170700003)(104016004)(4326008)(47776003)(85426001)(8676002)(53936002)(2351001)(106466001)(8936002)(5003940100001)(5660300001)(76176999)(50986999)(6666003)(86362001)(575784001)(54906002)(6916009)(2950100002)(50226002)(50466002)(105606002)(305945005)(2906002)(38730400002)(110136004)(33646002)(81166006)(189998001)(77096006)(48376002)(36756003)(8656002)(356003)(15650500001); DIR:OUT; SFP:1101; SCL:1; SRVR:BL2PR03MB274; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; MX:1; A:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11FD046; 1:je6xvH0xhk9mt9vB1TU6/lI35bBP0Jr9/25p/aFW/FQS9TvIx33AvqBFQoUNMp3zSIYvirgPpVQ4seS322jolZ2Ox4kG8J9bB3v2Z/YTnlpQr9CM7rAQjmAIiz7tl40VN3wUjk4SonBoYjNNc+hRnHxkF9u6YM8Rh5cwr0khRcOJe5SmAGP90PgwvlM+T5+iV/xowJfFDUnAyswtHO7EedXFmKBKqsDE9R7EWz7U0NTW+s0OuIrtUBlhRBPvIbjwK4sGx01YlIqVjNF7Q0xJM9ZpRpo41/7mCo1f8GtRbsnHDIOv5X0AenThznK+uptcQ2pwP63N+K9qwwTcoREmAENU5RrpPC99XPrTnUjUl5BSdIiFpb7WMFlrosU5Ly4Xx5aIoBUhhwmBWP3bdvHursj80SiX6VsY8SjPVQNIMfx6zDP3uNvpm6YtDx+A1WzOaPXKyQ8ZFi7kF21wEgvsibrhynqnHUs/O4Pl24ub/yk4pEt99hCESb9of1K5FO6JPq5mUS8LQ3e4XZYiTSeYDkipGQiyhoWJ+QNK4hA+21EfZwIY8POIRbYcc1UDbkahYZD1pb1TQE9Md3TIT6qjJ05Pjoce9NCIXxvpI8y1SQlepXtfDwXCcbpzqWhQivIjuEogoeOl2V/9GhhP8xq7zw9Bo1rj8BQa8OVedwhFSBQ= MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 8a2e850b-7547-4a5e-4d1a-08d47f1fd34f X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131430075)(201703131517081); SRVR:BL2PR03MB274; X-Microsoft-Exchange-Diagnostics: 1; BL2PR03MB274; 3:HH77sz6oJSFtT5PzpiUI8X/xzMYsS8ViHkRimL3Am5LMGtoEcW6wUmbznEiRUUVpUGCB1wz9pn6vGkPq35FKphDS2zqTG8AXggid4Lf5WAa7YOfHHk9E9K1mX+NhyBkp7etkmOnoBcYrBS2At3kEoi6jjJphI189l47IZ6LlcHt9zdYCTsLcPeCPdW3iCre79z0JSKSiDHynX/s/X65RYojwoEbfBdy6Wd1Oc5K6FuPFSgm/eG3kEKTgRu9Fp+upPTlVDwT46beeHwYmiHPbTOiNv30FqbXe88wY8OM3UqF4NY7xlKWC1MPyy3vVDQg+H7BKGNdFFjPweulm/jl5q7sul7gsLUCb2TGyHK7pj/GEoO8d6hFhgCYc26ZqlS0mknhMgAH+5fgOqXizJizIuUhfbmW5mHoGo30oPZ+daZSkSddyvQEmdEbeQAFwWyCt; 25:eQcjNsUDw8ncXz1sZcB/sDy3jA/uZ1lLgD4ZEpMQ3Vht5GUXNAXqEYodAagZwXDOotsHfIuOjK2t2YGDmE08FIjdf7tLPXQKX421aHjQne9g0jw5IVA0S7a8spfn3EM6uuFfWTmUSmRDShwjXBSSL5LGdGTtZLid84bn4vna48vajikOVgg97xZ6aQHIBieDCRBO/5gNsviFXx9BcRfw2ycHu/hWAcX/TiR7weEhsYW+sSoYe+n1s4bzklUzyE8oID0bO78SSjG69lhMrNOQJm9WmwSkewXYQgowuHKjbTOQXni49gsxgffgsKps4RSHLVE3yEw755HFY7HtFPNxcabk+r5fG63ZN9GiUVZtbm4MWypBxJ92izW58r3YIXLDEb+Wm3PqtgPCzdtK+sbIPx1KnMzlb8aszrH31kyWyvCSCggGWJBOWjN+NDi/5FvW3TT7cim9OoIAgr2nBdxglA== X-Microsoft-Exchange-Diagnostics: 1; BL2PR03MB274; 31:pNS7knmu16s016WyRPXdpkoYeJZJaoy2jFGciH/HctFLCOOEwzx4JM2EO74Tk95762X2H3q0zOfkJh3bkxd6ZdimK/lutwWNNuv/ysV44sIPAlFJuoid2CuRwcS7ZSDNMjrfAARek6id+hvuXN28yU6CYObbBAEcKNrc9Hy5X5zxWd6xKjimzi3ePprlwlQTrN9CxEqBfjyvBBXkjffEWJIqpalY7f6uFlLZ8vOMYrqTYuFWt0GSnjxDj6lfiZbARWzNrIjV/Zri+LbW5/t8bugFiY37aUn/fvF+XGfnnm0= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095135)(601004)(2401047)(13017025)(13018025)(13024025)(13023025)(8121501046)(13015025)(5005006)(3002001)(10201501046)(93006095)(93001095)(6055026)(6096035)(20161123563025)(201703131430075)(201703131448075)(201703131433075)(201703161259075)(20161123556025)(20161123565025)(20161123561025); SRVR:BL2PR03MB274; BCL:0; PCL:0; RULEID:(400006); SRVR:BL2PR03MB274; X-Microsoft-Exchange-Diagnostics: 1; BL2PR03MB274; 4:A01hzjkz96XPZDjvs9jVUPl6ZFb6ygxMsEZjyYSNk3SftLQulSii/v8kjseyZrDH/XlXAQdvMO9d1RYhx+/rbLtS2UwJs3IAtYSiAZaFfivH292N6SUhWjGtzbCKWpjHt+cYQnezsVaB3BMdV+JZfdeesdR7HIm5l3FnifFU4lKm+91k8OQN/3SaOK3tcpqZJIJAECtUra96NjA97pB5Ra2DR4rAI07tvjAiHWjyN1/ORE3upgEgTyhx8MfEksJNN6NVCAYlWHQuEl7k0kLnwFf9T5rwhykhXdc7VSzVwRd0VCWOtUsjefEwsxlGUnV5HepyLn02n3S7O82MeTVWeWiA6xSm9Fau0nUR3PnFNNZBGA0rl0Y+7hVUxHkwTEPfe2A8d8JL28ALjgmN9IQjQ39B2FTyk/J9XxEla9pbdn7X1eTCu5pkbYAUcAJ8irkAuxCS9oEIfMXzBVGsMwt/q8vpdqBPepihyuZ1hclMwBcGm4FoxKvYsTlMiaVZWd8VwM0x+QAlPmbzp+PTf3aoyECRtHSpbnfl0FuadRahGOt39FZ9+Itm82whGJzdl+hXYwS7dzF4uhRWhhNLx6JWmXcHdpBNEyImEBbxiJOFPb6/9QU6YzxPffTzbS1JPU1GIxUR1RJEYRazjQjjNbcZ3GVjF/Hzdsgttt+JBkFRHUvTXYjzD8duJji8gLrIDBdLO/bEoMZvcz81Mny6uMGlsRM2thgiVmE/ZugowG9vjBnc8U43PAU1F3I2OapDnCbC+Fbs7VvQnLquL80ia1MBng+HDvbqwHwgZAydYxeddUNeUv6ie2lUbvNkXHPlUJPJN3HQnNs395H28R3guahPjqG9OWIYGf9+ZI5OYmWFmKCkOnF9wefk2oJ8Lowbj5YT X-Forefront-PRVS: 02723F29C4 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BL2PR03MB274; 23:JKvoiPVfbGnZNuaCUaGL+cjgr4E0Cj58/9BL4Co8b6?= eEVb63cqV8csB5wFMgtZPZx6J1fCkGvum/pwtpYqQJiHDCj/f1uc36jUkxPlLVuvc2XzIqHD+rdrLDbcTBEAzPezfwa77mbAsEDYfkqtfy6nnwlTF6MKNmpjQzOj5/l67bJVRcQNFaFiZM4WMjdwEHsbTinEsBDD1lcTgWyCzxt/DixW0rQDz8QKX8ViT7goMts2ghGaXe8wzwLGgNXlMHWvmVYJZbOO0ChfrhDsfhUXzRUs4YauH+bkPqwEis81MW1SrM6BrwfyqSxD2/FfNNHRB9kVgIynUTHykQGu0tF5frMSWBNXUtEp842eVMXD15qgr6JFfqwfJ8vvsmNk8qqGmzsFWf4Zk3X3yZQF6V+gUpRHzD9IMyuratSGxzj0aNgxbCHMl/2wHfNVb4h4JiO3TROXw7Y2rgPKd5ExspPZUzylU8KFihwze1TSNB/0nrsJzX1RmEDnLBBJdISg1FGMU0R8ZtXUbWJfQLFuEKt3aboNr2JSNAMcYhd4lyC/ST7FcM9qXWTI6L39V7MeMUz5Iqgv+hc1jixvRPt89U+ulWU6BSbpJRPYOxdWeIERdM0ZPkpTkkDqK1M+YjKcexWTBpPq9osmuWvP+cpEzO12mFWh/zg/9nTni0kiVYOY1UFoptDS9U+FtrflG6+GvhSCR605CWiFhQiGadAc4f3KkXaw6wR6z5R9Nn01SxhMnYPgkgBjfBrXoEzPyNopcybJQQY4ZJARb1AZtkZmohxg6fdBiov1X+Pai76/iMKVDB7mRdYD5GCK8KLZtRTkcMrzLEZ06y3oQXFKkecVwEBIx6G8smq7G7vSGoGpDEUFjwj7HBFZh5bFGSU4VzOix2r6GPeFlqMRRdRw3OK0yJlh4QCLnx7KPUEG9atW8P634AmPZwLp9Fi20XXOXCHmd5MSLxAQGmFDA1CWS81xwO4Ts3n6Fi2QSgU3SQo7xPURHwigcJ+8sx6tg2sF+8N/eerUUXmrTDQ+IuZ/gB3tY3l2GrnnmgdRw+LyBEVJLVadxMKKTUGnwEIomrlOYCH7trESVaz0hk87ZtWSd/G6Rb6KtNYgLLuEyubRDDLGbG4PD1csaT5tB7SHCV05HEWp7aa3HC+nHHOrPAu0KfOPSvb0KTywU9oH7y7VxQ2FqLcPjSXUWcbwVTZ0xrFHen/iHkpEb50+zbMA957aevmN6nqp1Lsqxg/ZRaxIyS4TZmvrGOOx5AnG2wjG5R5BQNaf3J X-Microsoft-Exchange-Diagnostics: 1; BL2PR03MB274; 6:GcDrSlmmhiiGJ4T16TDkiwzxoe8m+M9QfSBFre1r8YeDEgxTrRHpCrV0ljXLHYiMQhpu8mAt/5agabzUBQPomzw+y9yoO02jSAg7eJk8kRNCdX8vbixDIdYJgRtEUa8bAU72i9M0Qhkg2mm52Dz2LOYw40rukPo+ltZpsF1zqrlYiAUVNJtCAqG9mgpcriQrw2zsMx/yFgoFY0RWP1vIHC+IhKSK+sKuXaoVQG0ULE2C1MJC6sAB8zUYLnJgbTolVqCC2L8a0Wq3GUhgAcoYQg3/2Q6ReDzw/xDIlrTau9gidieQadR2a/WZtPqr1HrfJx0fdeY57Kbne30QkVnh8fWnTDn5ENM7rIASQcccVwTs72ACFIk3fwa3HNaQuFIpWz62BKMQE6TkL+04nHljfzHZ6p1oJ3BL4rUQ3ikrVU+O8Xr2lHB7R+a2BuTMWSf8u84r+xMzV4L9fCAp2A1LKg==; 5:dpkMHzBbkd9SEMvtYVwlYzR70/SNZJObb2lqU0au/ePgd0C5RGlGqWuvllqF3BCd9As4dzJEQDnXKmgzAPLtkkX/NFLz01KaOJjnwyDuSzHlwG4B+B+1NN7XLRYAEtFyHNoOsWGAqiUacY6JlxF4288n1MqNJuqwR9bz6ZaIgFRqZywYNfjs19NsRYyXFPxc; 24:e4lKKHraHhDwFDyE9JKqI7I/eaDl1jdYcErJsrKX35Gpglc3UtVuyTlBf33gfdw+NhphwkaHqCodsUIUED172/r1SaU9lynqugOexZd7VQo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BL2PR03MB274; 7:vJlPnGubusb959c3adcdUTccEPeGHJumPm/Qk8lunnDUfcaAXO4xG2vpW+TyHVweXI3WRdPl5jC8iBsEyMIF01QNmQWkY9rIJxekYf8QuCzrEv5S7uQrfmASuBRx8jnrWHtg7YqElutw4EHrPYLHIPwbICr3+76VtF7qh6t1ev3Ytq7Mci+rwPhXamsr+GWJn9P1v0+VthyGZ3B2xj6y2weDG11TyW6ZpCS54ZUhST3iHqaIQe7C1OGE9UwaL9tSrjIH+8I6zNQ9alDHgzvm8wrMbai19zU+EnxF/6D5jtsiWc9UCLWGaWg3O4uvtiPHR3o+Z8e1CBDq5zxkuyANUQ== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Apr 2017 08:10:03.0269 (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.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL2PR03MB274 Subject: [dpdk-dev] [PATCH v11 15/22] net/dpaa2: link status update 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Signed-off-by: Hemant Agrawal --- doc/guides/nics/features/dpaa2.ini | 1 + drivers/net/dpaa2/dpaa2_ethdev.c | 107 +++++++++++++++++++++++++++++++++++++ 2 files changed, 108 insertions(+) diff --git a/doc/guides/nics/features/dpaa2.ini b/doc/guides/nics/features/dpaa2.ini index 0746d4b..0660cab 100644 --- a/doc/guides/nics/features/dpaa2.ini +++ b/doc/guides/nics/features/dpaa2.ini @@ -4,6 +4,7 @@ ; Refer to default.ini for the full list of available PMD features. ; [Features] +Link status = Y Queue start/stop = Y MTU update = Y Promiscuous mode = Y diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c index 9c0efcb..8bf1579 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.c +++ b/drivers/net/dpaa2/dpaa2_ethdev.c @@ -54,6 +54,58 @@ static struct rte_dpaa2_driver rte_dpaa2_pmd; +/** + * Atomically reads the link status information from global + * structure rte_eth_dev. + * + * @param dev + * - Pointer to the structure rte_eth_dev to read from. + * - Pointer to the buffer to be saved with the link status. + * + * @return + * - On success, zero. + * - On failure, negative value. + */ +static inline int +dpaa2_dev_atomic_read_link_status(struct rte_eth_dev *dev, + struct rte_eth_link *link) +{ + struct rte_eth_link *dst = link; + struct rte_eth_link *src = &dev->data->dev_link; + + if (rte_atomic64_cmpset((uint64_t *)dst, *(uint64_t *)dst, + *(uint64_t *)src) == 0) + return -1; + + return 0; +} + +/** + * Atomically writes the link status information into global + * structure rte_eth_dev. + * + * @param dev + * - Pointer to the structure rte_eth_dev to read from. + * - Pointer to the buffer to be saved with the link status. + * + * @return + * - On success, zero. + * - On failure, negative value. + */ +static inline int +dpaa2_dev_atomic_write_link_status(struct rte_eth_dev *dev, + struct rte_eth_link *link) +{ + struct rte_eth_link *dst = &dev->data->dev_link; + struct rte_eth_link *src = link; + + if (rte_atomic64_cmpset((uint64_t *)dst, *(uint64_t *)dst, + *(uint64_t *)src) == 0) + return -1; + + return 0; +} + static void dpaa2_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) { @@ -430,6 +482,7 @@ dpaa2_dev_stop(struct rte_eth_dev *dev) struct dpaa2_dev_priv *priv = dev->data->dev_private; struct fsl_mc_io *dpni = (struct fsl_mc_io *)priv->hw; int ret; + struct rte_eth_link link; PMD_INIT_FUNC_TRACE(); @@ -439,6 +492,10 @@ dpaa2_dev_stop(struct rte_eth_dev *dev) ret, priv->hw_id); return; } + + /* clear the recorded link status */ + memset(&link, 0, sizeof(link)); + dpaa2_dev_atomic_write_link_status(dev, &link); } static void @@ -531,6 +588,55 @@ dpaa2_dev_mtu_set(struct rte_eth_dev *dev, uint16_t mtu) return 0; } +/* return 0 means link status changed, -1 means not changed */ +static int +dpaa2_dev_link_update(struct rte_eth_dev *dev, + int wait_to_complete __rte_unused) +{ + int ret; + struct dpaa2_dev_priv *priv = dev->data->dev_private; + struct fsl_mc_io *dpni = (struct fsl_mc_io *)priv->hw; + struct rte_eth_link link, old; + struct dpni_link_state state = {0}; + + PMD_INIT_FUNC_TRACE(); + + if (dpni == NULL) { + RTE_LOG(ERR, PMD, "error : dpni is NULL"); + return 0; + } + memset(&old, 0, sizeof(old)); + dpaa2_dev_atomic_read_link_status(dev, &old); + + ret = dpni_get_link_state(dpni, CMD_PRI_LOW, priv->token, &state); + if (ret < 0) { + RTE_LOG(ERR, PMD, "error: dpni_get_link_state %d", ret); + return -1; + } + + if ((old.link_status == state.up) && (old.link_speed == state.rate)) { + RTE_LOG(DEBUG, PMD, "No change in status\n"); + return -1; + } + + memset(&link, 0, sizeof(struct rte_eth_link)); + link.link_status = state.up; + link.link_speed = state.rate; + + if (state.options & DPNI_LINK_OPT_HALF_DUPLEX) + link.link_duplex = ETH_LINK_HALF_DUPLEX; + else + link.link_duplex = ETH_LINK_FULL_DUPLEX; + + dpaa2_dev_atomic_write_link_status(dev, &link); + + if (link.link_status) + PMD_DRV_LOG(INFO, "Port %d Link is Up\n", dev->data->port_id); + else + PMD_DRV_LOG(INFO, "Port %d Link is Down\n", dev->data->port_id); + return 0; +} + static struct eth_dev_ops dpaa2_ethdev_ops = { .dev_configure = dpaa2_eth_dev_configure, .dev_start = dpaa2_dev_start, @@ -538,6 +644,7 @@ static struct eth_dev_ops dpaa2_ethdev_ops = { .dev_close = dpaa2_dev_close, .promiscuous_enable = dpaa2_dev_promiscuous_enable, .promiscuous_disable = dpaa2_dev_promiscuous_disable, + .link_update = dpaa2_dev_link_update, .dev_infos_get = dpaa2_dev_info_get, .dev_supported_ptypes_get = dpaa2_supported_ptypes_get, .mtu_set = dpaa2_dev_mtu_set,