From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0055.outbound.protection.outlook.com [104.47.32.55]) by dpdk.org (Postfix) with ESMTP id 220D2D2C2 for ; Tue, 11 Apr 2017 15:50:38 +0200 (CEST) Received: from DM5PR03CA0042.namprd03.prod.outlook.com (10.174.189.159) by CY1PR0301MB1290.namprd03.prod.outlook.com (10.161.213.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1019.17; Tue, 11 Apr 2017 13:50:37 +0000 Received: from BN1BFFO11FD011.protection.gbl (2a01:111:f400:7c10::1:163) by DM5PR03CA0042.outlook.office365.com (2603:10b6:4:3b::31) 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; Tue, 11 Apr 2017 13:50:37 +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 BN1BFFO11FD011.mail.protection.outlook.com (10.58.144.74) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.1019.14 via Frontend Transport; Tue, 11 Apr 2017 13:50:37 +0000 Received: from bf-netperf1.ap.freescale.net (bf-netperf1.ap.freescale.net [10.232.134.28]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v3BDnjG4000706; Tue, 11 Apr 2017 06:50:34 -0700 From: Hemant Agrawal To: CC: , , , , , Date: Tue, 11 Apr 2017 19:19:31 +0530 Message-ID: <1491918578-4902-16-git-send-email-hemant.agrawal@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1491918578-4902-1-git-send-email-hemant.agrawal@nxp.com> References: <1491725483-6619-1-git-send-email-hemant.agrawal@nxp.com> <1491918578-4902-1-git-send-email-hemant.agrawal@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131363922376639528; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(979002)(6009001)(336005)(39850400002)(39400400002)(39860400002)(39840400002)(39410400002)(39380400002)(39450400003)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(9170700003)(110136004)(356003)(305945005)(2351001)(38730400002)(50466002)(33646002)(4326008)(8676002)(6916009)(81166006)(6666003)(5660300001)(2950100002)(15650500001)(47776003)(106466001)(5003940100001)(97736004)(53936002)(8936002)(50986999)(76176999)(54906002)(36756003)(189998001)(77096006)(48376002)(85426001)(575784001)(50226002)(2906002)(104016004)(8656002)(105606002)(86362001)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0301MB1290; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; A:1; MX:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD011; 1:vs4Axf6CBvWMFSvHRUFNLiOy+L0/V0jgrmtWDC/PTYnUf6Nh39QRG1+TXA9J/tpN/47PUdqIwT6e2HxGle0OFeSsHqh0Fdb9FxOwX/wALDft/yXIhvgVIwR7yGRpsTBut/kcl/jr0BR+SL6ejr2N2pP+o1QzRzc6bJBzGTu02yFVVpvFahdnX5CQYu3U4g/3zT1Y60HCvdZLqlpl3h5vOeUExrZEEQ500lciNTTy/rKKuK0EKJrmFzX3rtQNPwu3M7XXsOAEne9YPCkdKQlaNDYDgOScFlHC0HKrG5zwAvUbezo8/tSGUcB++X6PnVM83BUue1fquHacji2isEt0gjyS/QGvuFCNHWPy5Dsu7K9Mc6U1Pm1xJ9E1+PYKQmBlRain0ghLv6125AJ99vbLwKnY6Og2sfu/VaYsk9Ho8nugiitkEzpISnlUPrpzCDKYSO+yCgllq7K1YuaRkB8Aehgn7DXHz5S0oNnhaOfURXHdDHwfAQBoiTF65ya+b3O0guBwEJJrFtsHG0OMUNo/1J85S7VmGy/lDV/S4g53eCNosBLsEOy8dEeZJ/E5ZTYqTSZEmt3oPkXrKc4mlp9CxrbviVoG8+meL2+5nPia/LTNwOOlMidCd5SrNyYpb4f4wi6VdtV0kJqm20p8Fdrf3bOfDViTD4bvVnniNIn2J3M= MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: 6d7324e1-9958-4b46-62c7-08d480e1bc04 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030255120)(201703131430075)(201703131517081); SRVR:CY1PR0301MB1290; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB1290; 3:ouCO9ajYpKepTQqV9WiyejCRNMJx+P4GN0J9aDZtm1Woe6VgJYAxYugss6sVd2a5EBZezZSg8GJ6+oLNyyyoGf3Cmhhvi4zRJPSKLXRx9LBnlWTIEnGJMLGlBb0f7M611YeEPuYM+yeik6NDjSYz5vKZs2o7RpT/4EvPCDft7Nl08rozXZ+ru8X6W5HAUqI1XdvqYr4q8zyIUvpYiYx+y9VA4PcuSzy1qAhxaoBcnrDv7GusNvSrqzNf/MBK4oF4QOFH4WLtycQUX6bD0LbCkR05nbSGlo8A5P54WUXvWPcDoVd2GHZRd13am5T4kBL4/KtDqgEh98kb9uDIZXkIxpUL3GWJjE5iea+BnXIfzTdo/UjQDbrlnv7B0jOuMPj3PBeEZF6lz3iZziQPHGARGK53Ow+6xcVOV+93HF6AzodMWTmCMI8QG12U5ohDTnbnW+ti9Qat2PiminwWzaHAgg== X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB1290; 25:uomT6uQchM79o9Hxn5qct+3jMp+t5brvIJz7YxXQhTpJQXkXqMBXFfLABKpGPjfFFm04/L1d/LAF/yot5S0GnQ1XnRczs8tbC6CoSHdq/5MwYr9NXIo5lx7msqDFMN2/7UrzLWBsoS0u/EbaimPCRcyr5F6OH8qe0DvJd1ypxMn+tEMyYxpa15F0q17K6HDITDq7ymSYzOulGHr50gFfrgIxJqSpb+0odZkoMz7OeS16aJ7pTsT6GvlRau/16CKekoj4ZdWuAc/0nf0Tg1i0WQYFxqsLzA32sdkj0+/P0m/i0GEeUnNWrgZIvmmTvH54ogAoGWqUd6ff3YIGZrVk0BS1o80MkgZdP11O6kKVGsk0V6iETkRJInPyHkHP4UBo0Z6wIpR4pzRDH+okb0tkky/KoppmfRLPe67a3R63KBLZN9ddnReTS34WD6y2Ou1oJjOHnwKIyBhpWgMhBRlCdw==; 31:p5Kj8hTyaUITgaV/xQspwEg/qe+FejYMmCNhRenJIjlPEcExoMk6mGtqCcptmU0iOKvlj2RCvvNguRdN7iBhBHj19PZ/mK14nq8KNIuR6J1qcfqEpktTkoHkJsXaaSh6bUKgy1+FNhAXM81+NG7m4kqJG9vP9RhmTma0x46HaTzBt12X0ySvEB6u0bNyxLVwc3g5pOGMCK2ur0sB3mxNR5+Sov/IUhiSHAcrwJLZcnUBzC/WeymLNsoTt9vU88VgPBbV1QM0dwQiX8vy///+ig== 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)(8121501046)(13015025)(5005006)(13018025)(13017025)(13024025)(13023025)(3002001)(93006095)(93001095)(10201501046)(6055026)(6096035)(20161123565025)(20161123556025)(201703131430075)(201703131448075)(201703131433075)(201703161259108)(20161123563025)(20161123561025); SRVR:CY1PR0301MB1290; BCL:0; PCL:0; RULEID:(400006); SRVR:CY1PR0301MB1290; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB1290; 4:HqKkscg1ZLX5AHmrOlF+RQY86Bbho921AvjOoF+Zg8X5j16BNGRHjCfj+HLKCYkAwvP/AxQTcOMKeSe1GYZEbY5tJJpbMmuKqUyxN7K0jrYXWj0qTW2SGupkb6fDO9PqWSWLc40fqs6ySpd0jQtfiLJSzmhRaQDeKrOo3TQVs+z2iFz6bLSoqh4oX2x1tzqm8ix0QiJQXRLaDrFRRHbClvz//P1WuPYLMxBKfOp+mGMJv0V41G25nLWdql8N5inEGYIfH3EoL5c4rJVoNDkv/dC/EDj+wHcaV3uiBFWXWCoc+MCBNEUBSAwerOyS+b3Zti4zktMwpMJ0HIP/mSLGe/WJ8is5aiFjtKY4c9qNh10vydLqijDPhAjkTqVxZWG3eBxiQ+CnxGEuqA/VbzLc2KTgIWhrPtFgHbN3+XFTh5UHNmbXQKJ5blwmv1NUcNjUQBz3WPckIujyXRBzhcwEu2UvCoPxnkyrrRVFgYMthEk5EQaGKx7QoZTruypwvkaSlbUn67HQtMUy4BoOwOgxR6jZREizh+49V0PBblJhLp/vaz9euJvms3jts+iVyBFGpQcu6JyF6tvrcbIEk8Gp/y52ng/sbtiC/meXCjexbmGcWopn9s98O2FRTz8dRo9C30zGlivzYDqKz5gPKV4xqyZcTur8koLRVFqymg1gEXUnbJQkNdQii/PRnTOKnKMOQQt82usaVQqANNVUF2UzwQ4XySHf4veV21yW+iNFt81h25eaVw9QCIMJBkbivGqLurmadMU2mVCeMeWr8KCJyzGTaXQKXaSRCb2bTSx/cpEHeeMe9a0gBNZH9CAGN50H1MBJxdUWqwK+glzguZgoZWBhQAjSa3Tk+QZipIoGqiUpaI1ljUDlZ93ggMBMRafD X-Forefront-PRVS: 0274272F87 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0301MB1290; 23:5nigtlh6U+IZvXmRjgn4SucoHkEKfOUxRMvWVit?= =?us-ascii?Q?XVh1ZF37iD6nvXosQZ5+7hdBvAbRmepRPbsALQfgd8eIl6q3BkygNcPFNEQq?= =?us-ascii?Q?9TQI6lc0qBFr5Kcgyj4GrU7WgQBoODcI3RM9gnOqRFvhGK+YrfZd1q4KYC8w?= =?us-ascii?Q?GAW5iwTd+a9GtKpFc3mtoonwdAq7YB+XtyUjXirFVQyzpnoIyD6zgNaHzLaJ?= =?us-ascii?Q?zoZnEDfvSWiq5G/vUdazu61TXNg2bVfJAT4jDeHpY6teESyQ0wQi0sxLECxd?= =?us-ascii?Q?0n3SGP2AwnK6RRj7Fp6HwhZjsnA6QsaS6h96a0/bIr9wkFTLgpIXhod37D3g?= =?us-ascii?Q?8sBb2FVmiIKbKu07J7UMxD28liibJj49/eA3FaoX4WqcTypVwxI8EPxyLB6d?= =?us-ascii?Q?w+i87urUxt/CHw9Usq9NHYQ6SdwTdA/ub333+vKjAhoplLkwMvfuQ4iOefv7?= =?us-ascii?Q?58b5HfReIfaQxQ0FLwbTSQQLrVGrRA87VX2dkTomGym9Q8AiqfQuj4GRX0We?= =?us-ascii?Q?xSdB9pfTxipbqGR9fohGoX5nrfrjyygzLm91li1nzplhf3gMy3f6MMw2ljZG?= =?us-ascii?Q?HBemON1rAhFmsGTK22e/UnbJFv4uK1IUu3B4+trQJuXv99Umluil4n2VWiey?= =?us-ascii?Q?sl2h0c+wi59mlJ6ufoaz5Pu2vq9y0Yjd874xddcDGh6KyzHhTHwVE83vfnU8?= =?us-ascii?Q?xybPGA+glNcGg4mcX/7JAnmxT5Hb4W2i9wYkYgBuDgfSaGBkLuNuVHjvltWb?= =?us-ascii?Q?AhG6cZatp3+IVZDf17Rvecc0XsZgtCJpaT67YkmALIG78SEVYEzQF83cziWA?= =?us-ascii?Q?9hcMnN+j2dl4jl1B9QKs2tGGSke1X41p7NOxO+dgjIkP/QRaAeWTz2ltk9Kn?= =?us-ascii?Q?ocGfqIj7147xP3ylobzK7XKsthamQmCJochHSAdA3YvMVGum11/amps492Ng?= =?us-ascii?Q?TuzZQccle63rDM6b3vImMx/B2cg2FLO2SFWqkEMpPlxNZR9Ph2YPWrCCZYGu?= =?us-ascii?Q?TmJZAITFgbfhEIpQGmkZTq7xduQOGoHd4tYzjj1xzjT6dlAlB6XNIaSI8qZp?= =?us-ascii?Q?A0lbU/An361V7/kL037rqC7XXmyjiMGPruKpzrgAkRYSqoYlQHnJ4gS84xNG?= =?us-ascii?Q?XNWtSh/25gSKs4rvYrfd8TJwB7zK+8DEecfzZ+dblFGyTNlxn3yLfbMpJGDi?= =?us-ascii?Q?qsCEt1bEzZWAT73/AQobZX+Z4Xn77nrxA7+QqwiT6R6PTEvd4dqUD1MrOued?= =?us-ascii?Q?kO8Tmnq0VTE7iB/lUeAKgZZmpZ6B6JNsX02fa5QHA3BC8+kqq8FLx/iPVSzn?= =?us-ascii?Q?BLxjAUVtpDdJRx/Pe0u7dlWDnxN6eS/yegS+bCM4nc++AjyQQkm/j7gqB/du?= =?us-ascii?Q?jnhuVfg2KxfkluU3QCDowFu3BKl8=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB1290; 6:luvGUPAzxQNd6ErCy6rys5ixk3J5G5H5Qqjnb/MvxSnWEjO17XRO0iTUAvFZdiu18oHcyZjLPrJxqveQGGkBXw0OimjZPoooCuRXfSZgO09FxFOAjpWph13aBKbUrjsGi6f5v0QfeQJwjmuCmoCJX4o3Sz8PMHC6SooaVPjFgV7hLi0wz8/sLCLu9zE/ILRP3Rd8f6Bd/mTEVZl5HeAxwBO+STEeH2uTK917UgfkSpaQ15GCDzH91+5H84S/GrJa7EEyjCDMIlJrFWq5AWv+s+UWGAbIQhVXRNfMtyzb09blzBl8tKvzKjWF6ZtDJHy7MsAC0bhXCG7n1c6sRBkU0jKXm9wRuHlelNNc+fzXlfukGqyPDU08Tej4+Xm+N0HjLCsWENz5Mg7nAz8cxCvDNUkR6xXouT05zNn8AwR0L9rb37tDinvYr+hS2BHjieZG32SXk7KvEJLOY0+pYcK2tQ==; 5:MzS6eRUN0J6pl/c3Re64NbWhFTVTVQXIUucjZSXghpVyqZMfZJeBA3c8oDbYTt+G877cdzYWvwbgNg1QwP42ui12TajiCweIr7f4B75jcFndrhbmfnDp7mRggoToltMYjrODinD25ssnTUUJMUTEL5aoU2/zDC7XsjDE1KspLPMNJhP2DsBe7Od6nNXvXrc7; 24:2cnLN2EglAK++vslOjf3cwMHrz7eOvj2MjqhxvIR/HdY9xEw7u3aML8qn7LLD0725pd3MnNevHOPFafE5s4jTukkufG99RuafT+UUojFWtc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB1290; 7:wTVZyzpZ0UlkQ1xfTMwFkFiUFu1LhkcZvFsiKRGumjRuanG1MBJWTz4LnLydu1mOU/VhliErOsPthX27HeQ/HdU3CRpTDANkpHfBtD5hHUNI3p9NwAVFqPjFeebVmRfOH9gkAZ4b95fcX5g4zis94Y4Q31WOaeRHAKVBCR1EvLV2LaFjAsrqCvGat3LkRBTgqDp8i2TKGDdf3xFsFhGzJvOrrrkcA2PC950QxR0ft072sgC+6ymxXvnBmqP73h0biLLR/JuHwn9fdPtrVcXsGh9WJ2n4HKAHsBE0mL6J/WxzUmghQPoyCxOS/UJBmEpodIOYIDGv28i5bvQ6kp876w== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Apr 2017 13:50:37.4767 (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: CY1PR0301MB1290 Subject: [dpdk-dev] [PATCH v12 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: , X-List-Received-Date: Tue, 11 Apr 2017 13:50:40 -0000 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 c92b865..03d0e8c 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 @@ 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 @@ 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 @@ 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 @@ .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, -- 1.9.1