From patchwork Fri Aug 18 00:04:13 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Lendacky X-Patchwork-Id: 802988 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="qPTGcI8g"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xYNc71z3Wz9t3p for ; Fri, 18 Aug 2017 10:04:23 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932087AbdHRAEV (ORCPT ); Thu, 17 Aug 2017 20:04:21 -0400 Received: from mail-sn1nam02on0083.outbound.protection.outlook.com ([104.47.36.83]:51328 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753887AbdHRAES (ORCPT ); Thu, 17 Aug 2017 20:04:18 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=/tQvRb8R1xRsgguUMk/IWHEkdqyPwDogeekNeNoY6RU=; b=qPTGcI8gk8L+pRARGoTEA+lU06hxmvndL/Sc7AtXBBINp/u8+N9GbpCvIfFllGaeXCBia5CtMhP1XoMhFi5DH01hckbbQr+5iXGpkAgO6IQ4h+G9iQ+oXizIn6gUua9N/gyVYcXZEiltarjOKOddvxyQ+5aPD4PlgSToLroPaaE= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Thomas.Lendacky@amd.com; Received: from tlendack-t1.amdoffice.net (165.204.77.1) by CY4PR12MB1141.namprd12.prod.outlook.com (10.168.163.149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1341.21; Fri, 18 Aug 2017 00:04:17 +0000 From: Tom Lendacky Subject: [PATCH net-next v1 14/14] amd-xgbe: Add additional ethtool statistics To: netdev@vger.kernel.org Cc: David Miller Date: Thu, 17 Aug 2017 19:04:13 -0500 Message-ID: <20170818000413.10005.60568.stgit@tlendack-t1.amdoffice.net> In-Reply-To: <20170818000201.10005.36182.stgit@tlendack-t1.amdoffice.net> References: <20170818000201.10005.36182.stgit@tlendack-t1.amdoffice.net> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: MWHPR06CA0028.namprd06.prod.outlook.com (10.174.172.169) To CY4PR12MB1141.namprd12.prod.outlook.com (10.168.163.149) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7d43763b-2213-4464-b2b5-08d4e5ccab29 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(48565401081)(300000503095)(300135400095)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:CY4PR12MB1141; X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1141; 3:M5bNP+z8y+ukmiuysHIl8GSARiqd7ElLL6At2q9ThO44+dw8DILGgqKLdTIc/RAd8B66RhPSWB9UdsbsqI8knuIgw/jvW4sNy8BqMCW0mIo7//VcL8vswb+XTyVyV+Cl339o9HO9/eSqzX9Bc8/FW4IswZ5Ey47I2SjvdR+ZGalUfnu9JmlXHLgR7GTXty/Vx4dJFp9VyFeuVQkDIIS+3DyF5LbtpyDE1HuRRgbM0X4ThIFamT6DKkEEq4twvsff; 25:U6B1NCLPCWWhwOt17t7md5nVyju0y3DyXN8Gk3rilGIvdmrUXHYWX3oBV47+nOBUycMcqkUZMI3WTbN/abecpnR4Qe6ZiymJAYbemo3EtzR9K97VVCOgxwO01n1HKwdbCzwVH+CfaG1UVhlQKiz9G1DiLFT62fk5rwXFukjaBZY9/AYM/7DLh20dkpNfu9FsoOZfYUyT/pHf+cMX2lllav5Ih1ocbYs9KPIAT0yfGTiIC8raScDeuIR//q7X574bIUJCqEUQUhuflRSsRDvhNy7fNGSPONB748D9Psj2ZfsdvzrEqpOTk5lVHdz30aLmP+9yjcIJsUyOPUjB/GsNhQ==; 31:QBmGAqAR09ukuaAzLGIeRbfAhbaAJuGQB6uRP3+ZTrh3JomkWsSt2tO8KuxmgTkT/xM5vwFu3cWCtKjsbN0NEfo186upWHKvmHbRlKHftMz0bOi+mzjlAJabQtQsDW40WhrRL53xXaCDscT0G8/PWNiZGloMG4cd4diOlTGEJLBwk+sn9AR8B7ubx6TU9e7zMvPKCZ8PulGNPK8O1A4KPMQjpMZAtED2Cg6nHQOLCws= X-MS-TrafficTypeDiagnostic: CY4PR12MB1141: X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1141; 20:fXs0qS7ynU55CM/IEQ6KYSwn11eCWDs0TQ4t+OBns8IetWdDr4+AmrK+CuhNrLt1ERb7kSoM6TJ2drclKMZK54M9huIUcJFkONvUqEExaK4kLlo99Y42pSUZFXxwiSR380zzLOWdLY8JVdSE+521bhRYqQPII1NmzGXoeMmKEKecac8NhNjC6O92CaJTPx9Jnp+X/fda2LuGCmdgQdWvC8uKUt2LXzp/N+K78a50VNua6gvQtUqT6/AlR9mHRgSNg1Nrc728VYCuHhewJ8Fyg0HUaPdXnBDJD/RjOGLDo6GMMC4FsxCCRk+50nhNqHPTxblzv4TCES8WGiUnCtWFn4R2QTJrUqSrRHZonUvXdJAV0ob+NF98C8TtcSYtXHCwuJF3cVB7lL5uttlOHhQOE0oKIkW+Jvq7sHLIOZa6+sksdl0B2RHyLplBiQMxQirgZQPqptol18C94v1+AVW/3MwUvhB3tRh63Zfd2K8gCb3tXQgauJNiSV13qeLO7MNs; 4:dUBaO5coG7Y1tZtvp3vp4d+kYEhej3ONjouWJ8YR9B6IggBfAfQbDox73TbjAwX1mVlDhwAmM3T/zFK3KLIklCcTAyh5G/3IV7PVZE7tyezY3k05qM6j1xCXws/ycYaE1IN0wJzRmAor6KNKzYikDbks04PHTsIKI++663o8zRlFRoy1UA4E5HTcJLzqLNTWD1XbVxK44lmnT7vXMwC4lBPyYJdgmsnDWur1Bv31q1NzNZnDMnXUatM6y30wI2lJHS1ckV+7fxwzAhCcBSsNEMo0cp/7/P11vFXrw1D9KXs= X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(3002001)(93006095)(93001095)(100000703101)(100105400095)(10201501046)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123562025)(20161123564025)(20161123558100)(20161123560025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY4PR12MB1141; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY4PR12MB1141; X-Forefront-PRVS: 040359335D X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(7370300001)(4630300001)(6009001)(39860400002)(189002)(199003)(86362001)(2906002)(72206003)(575784001)(25786009)(69596002)(2361001)(105586002)(106356001)(66066001)(6506006)(2351001)(478600001)(305945005)(7736002)(97736004)(4326008)(4001350100001)(97746001)(1076002)(8676002)(230700001)(81156014)(6116002)(81166006)(3846002)(83506001)(7350300001)(110136004)(189998001)(101416001)(53936002)(9686003)(55016002)(23676002)(54356999)(76176999)(50986999)(50466002)(68736007)(53416004)(5660300001)(42186005)(47776003)(6916009)(33646002)(2950100002)(103116003)(6666003); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR12MB1141; H:tlendack-t1.amdoffice.net; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTRQUjEyTUIxMTQxOzIzOkl1eGdJdWIyQzlzcjg4Y3BLMDBpbTd3dXB5?= =?utf-8?B?VjhDU0p1MWVzVzV2YlFUZmY3Y2UzaDIrWG1VNi9td3E2NWc0eHFKWitQZzBU?= =?utf-8?B?K2Z2QUp0NjU2Z1p4ZmNQYkJhSHlQWDA2bi9wclRFRG90RDQ3NFFvUVJtaE9r?= =?utf-8?B?R0xLODFkby9WZkVLMW9SUjJpWUlkNi9XZHZRSkpFcXZ0NEE2U0V4MjcvTTlT?= =?utf-8?B?ZEN6bW5ucCt2OGNOTXQ4MzRFazVCbGFhWVlKT2gvTXlxYmhEalJqamJNYkVj?= =?utf-8?B?TnpJZlJDQ0UrUVBjWm1UcDVqVkZLTUhZdXd2MVp0M3JGL2V2NFk3YWZSTWVK?= =?utf-8?B?d0ZRUytmaUU2QmlpenVVMnAwVmlUaXZudzZLaVk3Mmd1WlZhVnBMRnhYbTNH?= =?utf-8?B?MlhRK2FUUlhoeWt3ZUZXalVNR2hXZWwyWW8zcmJpaGhGTU8vbFZOQ1NuMDdS?= =?utf-8?B?ZWNKdnJ4bnNFNFNuY1Q2amFpY0VGR1hTaHhveVBldzMxVENDSXQyMGhWNlpV?= =?utf-8?B?TFZXTjEwaTlPRjFVTE42SG1BazJ5WmxHcE9MRTFEOWZ0QTRaQ3BveHJIUjRp?= =?utf-8?B?TXJLbmprV1lQVUxBWkpydC9IVEtzYlJFK2tjS3dwTzBFTlhMN0F3S3VOVmtv?= =?utf-8?B?WWZickk3Rjk3Zm1ydHZUQkZWem11MEJGcDh1K2VncnA2cVZpa0x1R3oxdEoy?= =?utf-8?B?WjJOaVhjMnU2NzRWQkFodUFpMnhRYWU3Z3BLaWpuVFRPRmlyMEFYbGtZemRJ?= =?utf-8?B?SkxkMkxucTJQSnpNSEcxR0J5MGg0cEQxNWpoZXgvM1pQZHBHV1hmYlZjVmUw?= =?utf-8?B?RnA4VlE0MkRPMm9EKzVyTWwxTXhuYS9vVmt1c28zK09FRzRWNWNhY1Jab3Vn?= =?utf-8?B?MG1lQkJBMEljSmJLRzhzRUg3Mks0VE00M2l5cDNMU1pHQWlYSW4rQ3NZVnFx?= =?utf-8?B?K3R2bng5ajhic2szamNmd2xlTGlKaHdES2lYQUZKY1RJQWU4MkY3QjdEekdV?= =?utf-8?B?RFhkSy9XWmoyN0lqVzVHUVRKRzMzVDNFVGhCdDNGRzNvOW5HbTE1TzdzZ2tu?= =?utf-8?B?RmZuNGZRQlh0alRZWDdwL29GYlJzdk42cDF3dlU5Q1BJdDlnNnBMbEo5TW11?= =?utf-8?B?SnpKcVdXYkNDbGtzaXR1V2hUdTBCeUM4V1RDUUtsYUtCdGhXbFRmVlh1U3Br?= =?utf-8?B?OGV1NmxHY0RwQVkxUWVtRE9tc3F5WXNMSlRRT2d1eUlaZTc2TzlHTTVEd0Mx?= =?utf-8?B?NlFNbjMxNFZ4cWF6eUhwNFh1VmZLRGxTdkRVR3E2eHVGOEEzeGYwYkpXQ1d1?= =?utf-8?B?WVBndklPaU1HQ0pobDJCelBHSjcvUWIzQjFYcjdmalFEa3AxNU05SlpnazE2?= =?utf-8?B?aUpNczZLdW9NR053Zm5kd2pKeU9QaDVJTytlNE9JeWdtUElWQ09ZSjlScE9h?= =?utf-8?B?cXZwUWlkUGIxZ3FId2NlNlNGRzl6QTAxeUtuSjVRRHkraGdnOTY1TnRvY0NU?= =?utf-8?B?Wm0vbjhiUnVQVU9yOXVQNS9DMlQ5T0hob3RkVlNxcjZrbW1ya2lNTGtxMkRR?= =?utf-8?B?czcrQnVUVWs4SVFvNzM0SGpLV01LbkMwcGIvRXZSeS9yQ2lBQ1RZM2h0N1J3?= =?utf-8?B?SStpVlRHemF3MjlGK21BcmhnQTd0WjA3bEJHZXlLb2JoMFUvWXFMR0VndXpC?= =?utf-8?B?QThwRE1ja2UrRFBQMVovbGpwTHZNVVhQeTcyWVF0em9uSmgwMURxYlRMZXR0?= =?utf-8?Q?UxIeMw2F5fGv83jxvguffbaQJlLx4x1hOw3F0=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1141; 6:1b50y5era0hdx566opAqeMccuAG2ZjE7diCBkDvANOSv9K/Mu4Z8cR2RllHLxbnKFKTYHuS7vba12RBXHm4SxOiniyNxA9rxApvPJSQP2JSsK515BFtOCiqtm/7mQP2cOm6No6g0VG8S6ES16fj2EPmUiefkStAZhY5wJptFe6LPyJ0zqkKITOFiTpzXK9/yQg+cbJsNyvYTCgTm87V6ZfT8E/JKqDIw64GSqfJRIIxLu4EXo4fyh4Hw4RT/9/xeYlfYZEprkgk8g0VI3Tr2SQ7BCsAb1c/8T7EVzrUOliEyii2MoWjy4dHzrtSenoJ7sHIBuh3CrnmhvbQ/kqLlMw==; 5:zZDeatRyXFr8Szf5p8gAcChHhA54cOFucY4pJ20LBHgioG1CFEct5sWu+KkURu99yANwTIgAcQ8jKj0q6Nf6BYfry+pkTvt3/93pYDLUIVG/TmpFeeSZ0qMpq8qXweYvuOtt1WsshxWuleSZRtd2bQ==; 24:kAPc8H0CNoQTopuNYbTtNpsZAHeG5gBqnvhXjj+bfOJ+cXmnEmADNDhEELrPApLwno12o5nGtjg2Iv75QcjEHpDhTE3ncCwsTEAm/SLRbpw=; 7:pEiaX8nC2l8JiktX5v6wP09Pk1ciqvlHbRxJSGHNjJi0vEZz7xp32nH1DmHjfvSRk8u0Yn73kCwdYwoxtdeH0wu11I4XDg78WAxlN+q3kYCmjBC2h8niQlW3SaaTQNgk7uBWyP4Cgs+qScC6vrw6a24kkTisYIUNDdMtUSG37dXX0y2U81UkO7dqDaU2bVUH+bSXmggdZ33PeKnQRVAT9oy/zWiKXDtbArBQ7xriMoA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR12MB1141; 20:r+PrplBeYkglxgML3UVrcqeBD/blGUx6C80lwHd/XqgZtGsq7Sa6UaUniholR04dbdazsK6rsPuRunwAxToGXqwhihTg6WX3UONwp2/2UrII4a9+tvIwivhv7uPHxikmvLNyBoUkIl1E05f3U3u/vM1xrgzsS4pwjQHD+jO0fMEWfaEOsmKL5gzEwk9IAL3QxjKCQElOl3Y+raVoTUzg8/3sfzGnSvapb1slr3qzaoXpUGDwf3PrcPD6zhSIJ85K X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Aug 2017 00:04:17.0058 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1141 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Add some additional statistics for tracking VXLAN packets and checksum errors. Signed-off-by: Tom Lendacky --- drivers/net/ethernet/amd/xgbe/xgbe-dev.c | 8 +++++++- drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c | 4 ++++ drivers/net/ethernet/amd/xgbe/xgbe.h | 5 +++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-dev.c b/drivers/net/ethernet/amd/xgbe/xgbe-dev.c index 1bf671e..671203d 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-dev.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-dev.c @@ -1805,10 +1805,13 @@ static void xgbe_dev_xmit(struct xgbe_channel *channel) packet->length); } - if (vxlan) + if (vxlan) { XGMAC_SET_BITS_LE(rdesc->desc3, TX_NORMAL_DESC3, VNP, TX_NORMAL_DESC3_VXLAN_PACKET); + pdata->ext_stats.tx_vxlan_packets += packet->tx_packets; + } + for (i = cur_index - start_index + 1; i < packet->rdesc_count; i++) { cur_index++; rdata = XGBE_GET_DESC_DATA(ring, cur_index); @@ -1981,6 +1984,7 @@ static int xgbe_dev_read(struct xgbe_channel *channel) if (XGMAC_GET_BITS_LE(rdesc->desc2, RX_NORMAL_DESC2, TNP)) { XGMAC_SET_BITS(packet->attributes, RX_PACKET_ATTRIBUTES, TNP, 1); + pdata->ext_stats.rx_vxlan_packets++; l34t = XGMAC_GET_BITS_LE(rdesc->desc3, RX_NORMAL_DESC3, L34T); switch (l34t) { @@ -2018,11 +2022,13 @@ static int xgbe_dev_read(struct xgbe_channel *channel) CSUM_DONE, 0); XGMAC_SET_BITS(packet->attributes, RX_PACKET_ATTRIBUTES, TNPCSUM_DONE, 0); + pdata->ext_stats.rx_csum_errors++; } else if (tnp && ((etlt == 0x09) || (etlt == 0x0a))) { XGMAC_SET_BITS(packet->attributes, RX_PACKET_ATTRIBUTES, CSUM_DONE, 0); XGMAC_SET_BITS(packet->attributes, RX_PACKET_ATTRIBUTES, TNPCSUM_DONE, 0); + pdata->ext_stats.rx_vxlan_csum_errors++; } else { XGMAC_SET_BITS(packet->errors, RX_PACKET_ERRORS, FRAME, 1); diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c b/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c index cea25ac..ff397bb 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c @@ -146,6 +146,7 @@ struct xgbe_stats { XGMAC_MMC_STAT("tx_broadcast_packets", txbroadcastframes_gb), XGMAC_MMC_STAT("tx_multicast_packets", txmulticastframes_gb), XGMAC_MMC_STAT("tx_vlan_packets", txvlanframes_g), + XGMAC_EXT_STAT("tx_vxlan_packets", tx_vxlan_packets), XGMAC_EXT_STAT("tx_tso_packets", tx_tso_packets), XGMAC_MMC_STAT("tx_64_byte_packets", tx64octets_gb), XGMAC_MMC_STAT("tx_65_to_127_byte_packets", tx65to127octets_gb), @@ -162,6 +163,7 @@ struct xgbe_stats { XGMAC_MMC_STAT("rx_broadcast_packets", rxbroadcastframes_g), XGMAC_MMC_STAT("rx_multicast_packets", rxmulticastframes_g), XGMAC_MMC_STAT("rx_vlan_packets", rxvlanframes_gb), + XGMAC_EXT_STAT("rx_vxlan_packets", rx_vxlan_packets), XGMAC_MMC_STAT("rx_64_byte_packets", rx64octets_gb), XGMAC_MMC_STAT("rx_65_to_127_byte_packets", rx65to127octets_gb), XGMAC_MMC_STAT("rx_128_to_255_byte_packets", rx128to255octets_gb), @@ -177,6 +179,8 @@ struct xgbe_stats { XGMAC_MMC_STAT("rx_out_of_range_errors", rxoutofrangetype), XGMAC_MMC_STAT("rx_fifo_overflow_errors", rxfifooverflow), XGMAC_MMC_STAT("rx_watchdog_errors", rxwatchdogerror), + XGMAC_EXT_STAT("rx_csum_errors", rx_csum_errors), + XGMAC_EXT_STAT("rx_vxlan_csum_errors", rx_vxlan_csum_errors), XGMAC_MMC_STAT("rx_pause_frames", rxpauseframes), XGMAC_EXT_STAT("rx_split_header_packets", rx_split_header_packets), XGMAC_EXT_STAT("rx_buffer_unavailable", rx_buffer_unavailable), diff --git a/drivers/net/ethernet/amd/xgbe/xgbe.h b/drivers/net/ethernet/amd/xgbe/xgbe.h index 6d4057a..c0c78ee 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe.h +++ b/drivers/net/ethernet/amd/xgbe/xgbe.h @@ -715,6 +715,11 @@ struct xgbe_ext_stats { u64 txq_bytes[XGBE_MAX_DMA_CHANNELS]; u64 rxq_packets[XGBE_MAX_DMA_CHANNELS]; u64 rxq_bytes[XGBE_MAX_DMA_CHANNELS]; + + u64 tx_vxlan_packets; + u64 rx_vxlan_packets; + u64 rx_csum_errors; + u64 rx_vxlan_csum_errors; }; struct xgbe_hw_if {