197549c34SHans Petter Selasky /* 297549c34SHans Petter Selasky * Copyright (c) 2007, 2014 Mellanox Technologies. All rights reserved. 397549c34SHans Petter Selasky * 497549c34SHans Petter Selasky * This software is available to you under a choice of one of two 597549c34SHans Petter Selasky * licenses. You may choose to be licensed under the terms of the GNU 697549c34SHans Petter Selasky * General Public License (GPL) Version 2, available from the file 797549c34SHans Petter Selasky * COPYING in the main directory of this source tree, or the 897549c34SHans Petter Selasky * OpenIB.org BSD license below: 997549c34SHans Petter Selasky * 1097549c34SHans Petter Selasky * Redistribution and use in source and binary forms, with or 1197549c34SHans Petter Selasky * without modification, are permitted provided that the following 1297549c34SHans Petter Selasky * conditions are met: 1397549c34SHans Petter Selasky * 1497549c34SHans Petter Selasky * - Redistributions of source code must retain the above 1597549c34SHans Petter Selasky * copyright notice, this list of conditions and the following 1697549c34SHans Petter Selasky * disclaimer. 1797549c34SHans Petter Selasky * 1897549c34SHans Petter Selasky * - Redistributions in binary form must reproduce the above 1997549c34SHans Petter Selasky * copyright notice, this list of conditions and the following 2097549c34SHans Petter Selasky * disclaimer in the documentation and/or other materials 2197549c34SHans Petter Selasky * provided with the distribution. 2297549c34SHans Petter Selasky * 2397549c34SHans Petter Selasky * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 2497549c34SHans Petter Selasky * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 2597549c34SHans Petter Selasky * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 2697549c34SHans Petter Selasky * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 2797549c34SHans Petter Selasky * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 2897549c34SHans Petter Selasky * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 2997549c34SHans Petter Selasky * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 3097549c34SHans Petter Selasky * SOFTWARE. 3197549c34SHans Petter Selasky * 3297549c34SHans Petter Selasky */ 3397549c34SHans Petter Selasky 3497549c34SHans Petter Selasky #ifndef _MLX4_EN_PORT_H_ 3597549c34SHans Petter Selasky #define _MLX4_EN_PORT_H_ 3697549c34SHans Petter Selasky 3797549c34SHans Petter Selasky 3897549c34SHans Petter Selasky #define SET_PORT_GEN_ALL_VALID 0x7 3997549c34SHans Petter Selasky #define SET_PORT_PROMISC_SHIFT 31 4097549c34SHans Petter Selasky #define SET_PORT_MC_PROMISC_SHIFT 30 4197549c34SHans Petter Selasky 4297549c34SHans Petter Selasky #define MLX4_EN_NUM_TC 8 4397549c34SHans Petter Selasky 4497549c34SHans Petter Selasky #define VLAN_FLTR_SIZE 128 4597549c34SHans Petter Selasky struct mlx4_set_vlan_fltr_mbox { 4697549c34SHans Petter Selasky __be32 entry[VLAN_FLTR_SIZE]; 4797549c34SHans Petter Selasky }; 4897549c34SHans Petter Selasky 4997549c34SHans Petter Selasky 5097549c34SHans Petter Selasky enum { 5197549c34SHans Petter Selasky MLX4_MCAST_CONFIG = 0, 5297549c34SHans Petter Selasky MLX4_MCAST_DISABLE = 1, 5397549c34SHans Petter Selasky MLX4_MCAST_ENABLE = 2, 5497549c34SHans Petter Selasky }; 5597549c34SHans Petter Selasky 56*c3191c2eSHans Petter Selasky enum mlx4_link_mode { 57*c3191c2eSHans Petter Selasky MLX4_1000BASE_CX_SGMII = 0, 58*c3191c2eSHans Petter Selasky MLX4_1000BASE_KX = 1, 59*c3191c2eSHans Petter Selasky MLX4_10GBASE_CX4 = 2, 60*c3191c2eSHans Petter Selasky MLX4_10GBASE_KX4 = 3, 61*c3191c2eSHans Petter Selasky MLX4_10GBASE_KR = 4, 62*c3191c2eSHans Petter Selasky MLX4_20GBASE_KR2 = 5, 63*c3191c2eSHans Petter Selasky MLX4_40GBASE_CR4 = 6, 64*c3191c2eSHans Petter Selasky MLX4_40GBASE_KR4 = 7, 65*c3191c2eSHans Petter Selasky MLX4_56GBASE_KR4 = 8, 66*c3191c2eSHans Petter Selasky MLX4_10GBASE_CR = 12, 67*c3191c2eSHans Petter Selasky MLX4_10GBASE_SR = 13, 68*c3191c2eSHans Petter Selasky MLX4_40GBASE_SR4 = 15, 69*c3191c2eSHans Petter Selasky MLX4_56GBASE_CR4 = 17, 70*c3191c2eSHans Petter Selasky MLX4_56GBASE_SR4 = 18, 71*c3191c2eSHans Petter Selasky MLX4_100BASE_TX = 24, 72*c3191c2eSHans Petter Selasky MLX4_1000BASE_T = 25, 73*c3191c2eSHans Petter Selasky MLX4_10GBASE_T = 26, 74*c3191c2eSHans Petter Selasky }; 75*c3191c2eSHans Petter Selasky 76*c3191c2eSHans Petter Selasky #define MLX4_PROT_MASK(link_mode) (1<<(link_mode)) 77*c3191c2eSHans Petter Selasky 7897549c34SHans Petter Selasky enum { 79*c3191c2eSHans Petter Selasky MLX4_EN_100M_SPEED = 0x04, 8097549c34SHans Petter Selasky MLX4_EN_10G_SPEED_XAUI = 0x00, 8197549c34SHans Petter Selasky MLX4_EN_10G_SPEED_XFI = 0x01, 8297549c34SHans Petter Selasky MLX4_EN_1G_SPEED = 0x02, 8397549c34SHans Petter Selasky MLX4_EN_20G_SPEED = 0x08, 8497549c34SHans Petter Selasky MLX4_EN_40G_SPEED = 0x40, 8597549c34SHans Petter Selasky MLX4_EN_56G_SPEED = 0x20, 8697549c34SHans Petter Selasky MLX4_EN_OTHER_SPEED = 0x0f, 8797549c34SHans Petter Selasky }; 8897549c34SHans Petter Selasky 8997549c34SHans Petter Selasky struct mlx4_en_query_port_context { 9097549c34SHans Petter Selasky u8 link_up; 9197549c34SHans Petter Selasky #define MLX4_EN_LINK_UP_MASK 0x80 92*c3191c2eSHans Petter Selasky #define MLX4_EN_ANC_MASK 0x40 9397549c34SHans Petter Selasky u8 autoneg; 9497549c34SHans Petter Selasky #define MLX4_EN_AUTONEG_MASK 0x80 9597549c34SHans Petter Selasky __be16 mtu; 9697549c34SHans Petter Selasky u8 reserved2; 9797549c34SHans Petter Selasky u8 link_speed; 98*c3191c2eSHans Petter Selasky #define MLX4_EN_SPEED_MASK 0x6f 9997549c34SHans Petter Selasky u16 reserved3[5]; 10097549c34SHans Petter Selasky __be64 mac; 10197549c34SHans Petter Selasky u8 transceiver; 10297549c34SHans Petter Selasky }; 10397549c34SHans Petter Selasky 10497549c34SHans Petter Selasky 10597549c34SHans Petter Selasky struct mlx4_en_stat_out_mbox { 10697549c34SHans Petter Selasky /* Received frames with a length of 64 octets */ 10797549c34SHans Petter Selasky __be64 R64_prio_0; 10897549c34SHans Petter Selasky __be64 R64_prio_1; 10997549c34SHans Petter Selasky __be64 R64_prio_2; 11097549c34SHans Petter Selasky __be64 R64_prio_3; 11197549c34SHans Petter Selasky __be64 R64_prio_4; 11297549c34SHans Petter Selasky __be64 R64_prio_5; 11397549c34SHans Petter Selasky __be64 R64_prio_6; 11497549c34SHans Petter Selasky __be64 R64_prio_7; 11597549c34SHans Petter Selasky __be64 R64_novlan; 11697549c34SHans Petter Selasky /* Received frames with a length of 127 octets */ 11797549c34SHans Petter Selasky __be64 R127_prio_0; 11897549c34SHans Petter Selasky __be64 R127_prio_1; 11997549c34SHans Petter Selasky __be64 R127_prio_2; 12097549c34SHans Petter Selasky __be64 R127_prio_3; 12197549c34SHans Petter Selasky __be64 R127_prio_4; 12297549c34SHans Petter Selasky __be64 R127_prio_5; 12397549c34SHans Petter Selasky __be64 R127_prio_6; 12497549c34SHans Petter Selasky __be64 R127_prio_7; 12597549c34SHans Petter Selasky __be64 R127_novlan; 12697549c34SHans Petter Selasky /* Received frames with a length of 255 octets */ 12797549c34SHans Petter Selasky __be64 R255_prio_0; 12897549c34SHans Petter Selasky __be64 R255_prio_1; 12997549c34SHans Petter Selasky __be64 R255_prio_2; 13097549c34SHans Petter Selasky __be64 R255_prio_3; 13197549c34SHans Petter Selasky __be64 R255_prio_4; 13297549c34SHans Petter Selasky __be64 R255_prio_5; 13397549c34SHans Petter Selasky __be64 R255_prio_6; 13497549c34SHans Petter Selasky __be64 R255_prio_7; 13597549c34SHans Petter Selasky __be64 R255_novlan; 13697549c34SHans Petter Selasky /* Received frames with a length of 511 octets */ 13797549c34SHans Petter Selasky __be64 R511_prio_0; 13897549c34SHans Petter Selasky __be64 R511_prio_1; 13997549c34SHans Petter Selasky __be64 R511_prio_2; 14097549c34SHans Petter Selasky __be64 R511_prio_3; 14197549c34SHans Petter Selasky __be64 R511_prio_4; 14297549c34SHans Petter Selasky __be64 R511_prio_5; 14397549c34SHans Petter Selasky __be64 R511_prio_6; 14497549c34SHans Petter Selasky __be64 R511_prio_7; 14597549c34SHans Petter Selasky __be64 R511_novlan; 14697549c34SHans Petter Selasky /* Received frames with a length of 1023 octets */ 14797549c34SHans Petter Selasky __be64 R1023_prio_0; 14897549c34SHans Petter Selasky __be64 R1023_prio_1; 14997549c34SHans Petter Selasky __be64 R1023_prio_2; 15097549c34SHans Petter Selasky __be64 R1023_prio_3; 15197549c34SHans Petter Selasky __be64 R1023_prio_4; 15297549c34SHans Petter Selasky __be64 R1023_prio_5; 15397549c34SHans Petter Selasky __be64 R1023_prio_6; 15497549c34SHans Petter Selasky __be64 R1023_prio_7; 15597549c34SHans Petter Selasky __be64 R1023_novlan; 15697549c34SHans Petter Selasky /* Received frames with a length of 1518 octets */ 15797549c34SHans Petter Selasky __be64 R1518_prio_0; 15897549c34SHans Petter Selasky __be64 R1518_prio_1; 15997549c34SHans Petter Selasky __be64 R1518_prio_2; 16097549c34SHans Petter Selasky __be64 R1518_prio_3; 16197549c34SHans Petter Selasky __be64 R1518_prio_4; 16297549c34SHans Petter Selasky __be64 R1518_prio_5; 16397549c34SHans Petter Selasky __be64 R1518_prio_6; 16497549c34SHans Petter Selasky __be64 R1518_prio_7; 16597549c34SHans Petter Selasky __be64 R1518_novlan; 16697549c34SHans Petter Selasky /* Received frames with a length of 1522 octets */ 16797549c34SHans Petter Selasky __be64 R1522_prio_0; 16897549c34SHans Petter Selasky __be64 R1522_prio_1; 16997549c34SHans Petter Selasky __be64 R1522_prio_2; 17097549c34SHans Petter Selasky __be64 R1522_prio_3; 17197549c34SHans Petter Selasky __be64 R1522_prio_4; 17297549c34SHans Petter Selasky __be64 R1522_prio_5; 17397549c34SHans Petter Selasky __be64 R1522_prio_6; 17497549c34SHans Petter Selasky __be64 R1522_prio_7; 17597549c34SHans Petter Selasky __be64 R1522_novlan; 17697549c34SHans Petter Selasky /* Received frames with a length of 1548 octets */ 17797549c34SHans Petter Selasky __be64 R1548_prio_0; 17897549c34SHans Petter Selasky __be64 R1548_prio_1; 17997549c34SHans Petter Selasky __be64 R1548_prio_2; 18097549c34SHans Petter Selasky __be64 R1548_prio_3; 18197549c34SHans Petter Selasky __be64 R1548_prio_4; 18297549c34SHans Petter Selasky __be64 R1548_prio_5; 18397549c34SHans Petter Selasky __be64 R1548_prio_6; 18497549c34SHans Petter Selasky __be64 R1548_prio_7; 18597549c34SHans Petter Selasky __be64 R1548_novlan; 18697549c34SHans Petter Selasky /* Received frames with a length of 1548 < octets < MTU */ 18797549c34SHans Petter Selasky __be64 R2MTU_prio_0; 18897549c34SHans Petter Selasky __be64 R2MTU_prio_1; 18997549c34SHans Petter Selasky __be64 R2MTU_prio_2; 19097549c34SHans Petter Selasky __be64 R2MTU_prio_3; 19197549c34SHans Petter Selasky __be64 R2MTU_prio_4; 19297549c34SHans Petter Selasky __be64 R2MTU_prio_5; 19397549c34SHans Petter Selasky __be64 R2MTU_prio_6; 19497549c34SHans Petter Selasky __be64 R2MTU_prio_7; 19597549c34SHans Petter Selasky __be64 R2MTU_novlan; 19697549c34SHans Petter Selasky /* Received frames with a length of MTU< octets and good CRC */ 19797549c34SHans Petter Selasky __be64 RGIANT_prio_0; 19897549c34SHans Petter Selasky __be64 RGIANT_prio_1; 19997549c34SHans Petter Selasky __be64 RGIANT_prio_2; 20097549c34SHans Petter Selasky __be64 RGIANT_prio_3; 20197549c34SHans Petter Selasky __be64 RGIANT_prio_4; 20297549c34SHans Petter Selasky __be64 RGIANT_prio_5; 20397549c34SHans Petter Selasky __be64 RGIANT_prio_6; 20497549c34SHans Petter Selasky __be64 RGIANT_prio_7; 20597549c34SHans Petter Selasky __be64 RGIANT_novlan; 20697549c34SHans Petter Selasky /* Received broadcast frames with good CRC */ 20797549c34SHans Petter Selasky __be64 RBCAST_prio_0; 20897549c34SHans Petter Selasky __be64 RBCAST_prio_1; 20997549c34SHans Petter Selasky __be64 RBCAST_prio_2; 21097549c34SHans Petter Selasky __be64 RBCAST_prio_3; 21197549c34SHans Petter Selasky __be64 RBCAST_prio_4; 21297549c34SHans Petter Selasky __be64 RBCAST_prio_5; 21397549c34SHans Petter Selasky __be64 RBCAST_prio_6; 21497549c34SHans Petter Selasky __be64 RBCAST_prio_7; 21597549c34SHans Petter Selasky __be64 RBCAST_novlan; 21697549c34SHans Petter Selasky /* Received multicast frames with good CRC */ 21797549c34SHans Petter Selasky __be64 MCAST_prio_0; 21897549c34SHans Petter Selasky __be64 MCAST_prio_1; 21997549c34SHans Petter Selasky __be64 MCAST_prio_2; 22097549c34SHans Petter Selasky __be64 MCAST_prio_3; 22197549c34SHans Petter Selasky __be64 MCAST_prio_4; 22297549c34SHans Petter Selasky __be64 MCAST_prio_5; 22397549c34SHans Petter Selasky __be64 MCAST_prio_6; 22497549c34SHans Petter Selasky __be64 MCAST_prio_7; 22597549c34SHans Petter Selasky __be64 MCAST_novlan; 22697549c34SHans Petter Selasky /* Received unicast not short or GIANT frames with good CRC */ 22797549c34SHans Petter Selasky __be64 RTOTG_prio_0; 22897549c34SHans Petter Selasky __be64 RTOTG_prio_1; 22997549c34SHans Petter Selasky __be64 RTOTG_prio_2; 23097549c34SHans Petter Selasky __be64 RTOTG_prio_3; 23197549c34SHans Petter Selasky __be64 RTOTG_prio_4; 23297549c34SHans Petter Selasky __be64 RTOTG_prio_5; 23397549c34SHans Petter Selasky __be64 RTOTG_prio_6; 23497549c34SHans Petter Selasky __be64 RTOTG_prio_7; 23597549c34SHans Petter Selasky __be64 RTOTG_novlan; 23697549c34SHans Petter Selasky 23797549c34SHans Petter Selasky /* Count of total octets of received frames, includes framing characters */ 23897549c34SHans Petter Selasky __be64 RTTLOCT_prio_0; 23997549c34SHans Petter Selasky /* Count of total octets of received frames, not including framing 24097549c34SHans Petter Selasky characters */ 24197549c34SHans Petter Selasky __be64 RTTLOCT_NOFRM_prio_0; 24297549c34SHans Petter Selasky /* Count of Total number of octets received 24397549c34SHans Petter Selasky (only for frames without errors) */ 24497549c34SHans Petter Selasky __be64 ROCT_prio_0; 24597549c34SHans Petter Selasky 24697549c34SHans Petter Selasky __be64 RTTLOCT_prio_1; 24797549c34SHans Petter Selasky __be64 RTTLOCT_NOFRM_prio_1; 24897549c34SHans Petter Selasky __be64 ROCT_prio_1; 24997549c34SHans Petter Selasky 25097549c34SHans Petter Selasky __be64 RTTLOCT_prio_2; 25197549c34SHans Petter Selasky __be64 RTTLOCT_NOFRM_prio_2; 25297549c34SHans Petter Selasky __be64 ROCT_prio_2; 25397549c34SHans Petter Selasky 25497549c34SHans Petter Selasky __be64 RTTLOCT_prio_3; 25597549c34SHans Petter Selasky __be64 RTTLOCT_NOFRM_prio_3; 25697549c34SHans Petter Selasky __be64 ROCT_prio_3; 25797549c34SHans Petter Selasky 25897549c34SHans Petter Selasky __be64 RTTLOCT_prio_4; 25997549c34SHans Petter Selasky __be64 RTTLOCT_NOFRM_prio_4; 26097549c34SHans Petter Selasky __be64 ROCT_prio_4; 26197549c34SHans Petter Selasky 26297549c34SHans Petter Selasky __be64 RTTLOCT_prio_5; 26397549c34SHans Petter Selasky __be64 RTTLOCT_NOFRM_prio_5; 26497549c34SHans Petter Selasky __be64 ROCT_prio_5; 26597549c34SHans Petter Selasky 26697549c34SHans Petter Selasky __be64 RTTLOCT_prio_6; 26797549c34SHans Petter Selasky __be64 RTTLOCT_NOFRM_prio_6; 26897549c34SHans Petter Selasky __be64 ROCT_prio_6; 26997549c34SHans Petter Selasky 27097549c34SHans Petter Selasky __be64 RTTLOCT_prio_7; 27197549c34SHans Petter Selasky __be64 RTTLOCT_NOFRM_prio_7; 27297549c34SHans Petter Selasky __be64 ROCT_prio_7; 27397549c34SHans Petter Selasky 27497549c34SHans Petter Selasky __be64 RTTLOCT_novlan; 27597549c34SHans Petter Selasky __be64 RTTLOCT_NOFRM_novlan; 27697549c34SHans Petter Selasky __be64 ROCT_novlan; 27797549c34SHans Petter Selasky 27897549c34SHans Petter Selasky /* Count of Total received frames including bad frames */ 27997549c34SHans Petter Selasky __be64 RTOT_prio_0; 28097549c34SHans Petter Selasky /* Count of Total number of received frames with 802.1Q encapsulation */ 28197549c34SHans Petter Selasky __be64 R1Q_prio_0; 28297549c34SHans Petter Selasky __be64 reserved1; 28397549c34SHans Petter Selasky 28497549c34SHans Petter Selasky __be64 RTOT_prio_1; 28597549c34SHans Petter Selasky __be64 R1Q_prio_1; 28697549c34SHans Petter Selasky __be64 reserved2; 28797549c34SHans Petter Selasky 28897549c34SHans Petter Selasky __be64 RTOT_prio_2; 28997549c34SHans Petter Selasky __be64 R1Q_prio_2; 29097549c34SHans Petter Selasky __be64 reserved3; 29197549c34SHans Petter Selasky 29297549c34SHans Petter Selasky __be64 RTOT_prio_3; 29397549c34SHans Petter Selasky __be64 R1Q_prio_3; 29497549c34SHans Petter Selasky __be64 reserved4; 29597549c34SHans Petter Selasky 29697549c34SHans Petter Selasky __be64 RTOT_prio_4; 29797549c34SHans Petter Selasky __be64 R1Q_prio_4; 29897549c34SHans Petter Selasky __be64 reserved5; 29997549c34SHans Petter Selasky 30097549c34SHans Petter Selasky __be64 RTOT_prio_5; 30197549c34SHans Petter Selasky __be64 R1Q_prio_5; 30297549c34SHans Petter Selasky __be64 reserved6; 30397549c34SHans Petter Selasky 30497549c34SHans Petter Selasky __be64 RTOT_prio_6; 30597549c34SHans Petter Selasky __be64 R1Q_prio_6; 30697549c34SHans Petter Selasky __be64 reserved7; 30797549c34SHans Petter Selasky 30897549c34SHans Petter Selasky __be64 RTOT_prio_7; 30997549c34SHans Petter Selasky __be64 R1Q_prio_7; 31097549c34SHans Petter Selasky __be64 reserved8; 31197549c34SHans Petter Selasky 31297549c34SHans Petter Selasky __be64 RTOT_novlan; 31397549c34SHans Petter Selasky __be64 R1Q_novlan; 31497549c34SHans Petter Selasky __be64 reserved9; 31597549c34SHans Petter Selasky 31697549c34SHans Petter Selasky /* Total number of Successfully Received Control Frames */ 31797549c34SHans Petter Selasky __be64 RCNTL; 31897549c34SHans Petter Selasky __be64 reserved10; 31997549c34SHans Petter Selasky __be64 reserved11; 32097549c34SHans Petter Selasky __be64 reserved12; 32197549c34SHans Petter Selasky /* Count of received frames with a length/type field value between 46 32297549c34SHans Petter Selasky (42 for VLANtagged frames) and 1500 (also 1500 for VLAN-tagged frames), 32397549c34SHans Petter Selasky inclusive */ 32497549c34SHans Petter Selasky __be64 RInRangeLengthErr; 32597549c34SHans Petter Selasky /* Count of received frames with length/type field between 1501 and 1535 32697549c34SHans Petter Selasky decimal, inclusive */ 32797549c34SHans Petter Selasky __be64 ROutRangeLengthErr; 32897549c34SHans Petter Selasky /* Count of received frames that are longer than max allowed size for 32997549c34SHans Petter Selasky 802.3 frames (1518/1522) */ 33097549c34SHans Petter Selasky __be64 RFrmTooLong; 33197549c34SHans Petter Selasky /* Count frames received with PCS error */ 33297549c34SHans Petter Selasky __be64 PCS; 33397549c34SHans Petter Selasky 33497549c34SHans Petter Selasky /* Transmit frames with a length of 64 octets */ 33597549c34SHans Petter Selasky __be64 T64_prio_0; 33697549c34SHans Petter Selasky __be64 T64_prio_1; 33797549c34SHans Petter Selasky __be64 T64_prio_2; 33897549c34SHans Petter Selasky __be64 T64_prio_3; 33997549c34SHans Petter Selasky __be64 T64_prio_4; 34097549c34SHans Petter Selasky __be64 T64_prio_5; 34197549c34SHans Petter Selasky __be64 T64_prio_6; 34297549c34SHans Petter Selasky __be64 T64_prio_7; 34397549c34SHans Petter Selasky __be64 T64_novlan; 34497549c34SHans Petter Selasky __be64 T64_loopbk; 34597549c34SHans Petter Selasky /* Transmit frames with a length of 65 to 127 octets. */ 34697549c34SHans Petter Selasky __be64 T127_prio_0; 34797549c34SHans Petter Selasky __be64 T127_prio_1; 34897549c34SHans Petter Selasky __be64 T127_prio_2; 34997549c34SHans Petter Selasky __be64 T127_prio_3; 35097549c34SHans Petter Selasky __be64 T127_prio_4; 35197549c34SHans Petter Selasky __be64 T127_prio_5; 35297549c34SHans Petter Selasky __be64 T127_prio_6; 35397549c34SHans Petter Selasky __be64 T127_prio_7; 35497549c34SHans Petter Selasky __be64 T127_novlan; 35597549c34SHans Petter Selasky __be64 T127_loopbk; 35697549c34SHans Petter Selasky /* Transmit frames with a length of 128 to 255 octets */ 35797549c34SHans Petter Selasky __be64 T255_prio_0; 35897549c34SHans Petter Selasky __be64 T255_prio_1; 35997549c34SHans Petter Selasky __be64 T255_prio_2; 36097549c34SHans Petter Selasky __be64 T255_prio_3; 36197549c34SHans Petter Selasky __be64 T255_prio_4; 36297549c34SHans Petter Selasky __be64 T255_prio_5; 36397549c34SHans Petter Selasky __be64 T255_prio_6; 36497549c34SHans Petter Selasky __be64 T255_prio_7; 36597549c34SHans Petter Selasky __be64 T255_novlan; 36697549c34SHans Petter Selasky __be64 T255_loopbk; 36797549c34SHans Petter Selasky /* Transmit frames with a length of 256 to 511 octets */ 36897549c34SHans Petter Selasky __be64 T511_prio_0; 36997549c34SHans Petter Selasky __be64 T511_prio_1; 37097549c34SHans Petter Selasky __be64 T511_prio_2; 37197549c34SHans Petter Selasky __be64 T511_prio_3; 37297549c34SHans Petter Selasky __be64 T511_prio_4; 37397549c34SHans Petter Selasky __be64 T511_prio_5; 37497549c34SHans Petter Selasky __be64 T511_prio_6; 37597549c34SHans Petter Selasky __be64 T511_prio_7; 37697549c34SHans Petter Selasky __be64 T511_novlan; 37797549c34SHans Petter Selasky __be64 T511_loopbk; 37897549c34SHans Petter Selasky /* Transmit frames with a length of 512 to 1023 octets */ 37997549c34SHans Petter Selasky __be64 T1023_prio_0; 38097549c34SHans Petter Selasky __be64 T1023_prio_1; 38197549c34SHans Petter Selasky __be64 T1023_prio_2; 38297549c34SHans Petter Selasky __be64 T1023_prio_3; 38397549c34SHans Petter Selasky __be64 T1023_prio_4; 38497549c34SHans Petter Selasky __be64 T1023_prio_5; 38597549c34SHans Petter Selasky __be64 T1023_prio_6; 38697549c34SHans Petter Selasky __be64 T1023_prio_7; 38797549c34SHans Petter Selasky __be64 T1023_novlan; 38897549c34SHans Petter Selasky __be64 T1023_loopbk; 38997549c34SHans Petter Selasky /* Transmit frames with a length of 1024 to 1518 octets */ 39097549c34SHans Petter Selasky __be64 T1518_prio_0; 39197549c34SHans Petter Selasky __be64 T1518_prio_1; 39297549c34SHans Petter Selasky __be64 T1518_prio_2; 39397549c34SHans Petter Selasky __be64 T1518_prio_3; 39497549c34SHans Petter Selasky __be64 T1518_prio_4; 39597549c34SHans Petter Selasky __be64 T1518_prio_5; 39697549c34SHans Petter Selasky __be64 T1518_prio_6; 39797549c34SHans Petter Selasky __be64 T1518_prio_7; 39897549c34SHans Petter Selasky __be64 T1518_novlan; 39997549c34SHans Petter Selasky __be64 T1518_loopbk; 40097549c34SHans Petter Selasky /* Counts transmit frames with a length of 1519 to 1522 bytes */ 40197549c34SHans Petter Selasky __be64 T1522_prio_0; 40297549c34SHans Petter Selasky __be64 T1522_prio_1; 40397549c34SHans Petter Selasky __be64 T1522_prio_2; 40497549c34SHans Petter Selasky __be64 T1522_prio_3; 40597549c34SHans Petter Selasky __be64 T1522_prio_4; 40697549c34SHans Petter Selasky __be64 T1522_prio_5; 40797549c34SHans Petter Selasky __be64 T1522_prio_6; 40897549c34SHans Petter Selasky __be64 T1522_prio_7; 40997549c34SHans Petter Selasky __be64 T1522_novlan; 41097549c34SHans Petter Selasky __be64 T1522_loopbk; 41197549c34SHans Petter Selasky /* Transmit frames with a length of 1523 to 1548 octets */ 41297549c34SHans Petter Selasky __be64 T1548_prio_0; 41397549c34SHans Petter Selasky __be64 T1548_prio_1; 41497549c34SHans Petter Selasky __be64 T1548_prio_2; 41597549c34SHans Petter Selasky __be64 T1548_prio_3; 41697549c34SHans Petter Selasky __be64 T1548_prio_4; 41797549c34SHans Petter Selasky __be64 T1548_prio_5; 41897549c34SHans Petter Selasky __be64 T1548_prio_6; 41997549c34SHans Petter Selasky __be64 T1548_prio_7; 42097549c34SHans Petter Selasky __be64 T1548_novlan; 42197549c34SHans Petter Selasky __be64 T1548_loopbk; 42297549c34SHans Petter Selasky /* Counts transmit frames with a length of 1549 to MTU bytes */ 42397549c34SHans Petter Selasky __be64 T2MTU_prio_0; 42497549c34SHans Petter Selasky __be64 T2MTU_prio_1; 42597549c34SHans Petter Selasky __be64 T2MTU_prio_2; 42697549c34SHans Petter Selasky __be64 T2MTU_prio_3; 42797549c34SHans Petter Selasky __be64 T2MTU_prio_4; 42897549c34SHans Petter Selasky __be64 T2MTU_prio_5; 42997549c34SHans Petter Selasky __be64 T2MTU_prio_6; 43097549c34SHans Petter Selasky __be64 T2MTU_prio_7; 43197549c34SHans Petter Selasky __be64 T2MTU_novlan; 43297549c34SHans Petter Selasky __be64 T2MTU_loopbk; 43397549c34SHans Petter Selasky /* Transmit frames with a length greater than MTU octets and a good CRC. */ 43497549c34SHans Petter Selasky __be64 TGIANT_prio_0; 43597549c34SHans Petter Selasky __be64 TGIANT_prio_1; 43697549c34SHans Petter Selasky __be64 TGIANT_prio_2; 43797549c34SHans Petter Selasky __be64 TGIANT_prio_3; 43897549c34SHans Petter Selasky __be64 TGIANT_prio_4; 43997549c34SHans Petter Selasky __be64 TGIANT_prio_5; 44097549c34SHans Petter Selasky __be64 TGIANT_prio_6; 44197549c34SHans Petter Selasky __be64 TGIANT_prio_7; 44297549c34SHans Petter Selasky __be64 TGIANT_novlan; 44397549c34SHans Petter Selasky __be64 TGIANT_loopbk; 44497549c34SHans Petter Selasky /* Transmit broadcast frames with a good CRC */ 44597549c34SHans Petter Selasky __be64 TBCAST_prio_0; 44697549c34SHans Petter Selasky __be64 TBCAST_prio_1; 44797549c34SHans Petter Selasky __be64 TBCAST_prio_2; 44897549c34SHans Petter Selasky __be64 TBCAST_prio_3; 44997549c34SHans Petter Selasky __be64 TBCAST_prio_4; 45097549c34SHans Petter Selasky __be64 TBCAST_prio_5; 45197549c34SHans Petter Selasky __be64 TBCAST_prio_6; 45297549c34SHans Petter Selasky __be64 TBCAST_prio_7; 45397549c34SHans Petter Selasky __be64 TBCAST_novlan; 45497549c34SHans Petter Selasky __be64 TBCAST_loopbk; 45597549c34SHans Petter Selasky /* Transmit multicast frames with a good CRC */ 45697549c34SHans Petter Selasky __be64 TMCAST_prio_0; 45797549c34SHans Petter Selasky __be64 TMCAST_prio_1; 45897549c34SHans Petter Selasky __be64 TMCAST_prio_2; 45997549c34SHans Petter Selasky __be64 TMCAST_prio_3; 46097549c34SHans Petter Selasky __be64 TMCAST_prio_4; 46197549c34SHans Petter Selasky __be64 TMCAST_prio_5; 46297549c34SHans Petter Selasky __be64 TMCAST_prio_6; 46397549c34SHans Petter Selasky __be64 TMCAST_prio_7; 46497549c34SHans Petter Selasky __be64 TMCAST_novlan; 46597549c34SHans Petter Selasky __be64 TMCAST_loopbk; 46697549c34SHans Petter Selasky /* Transmit good frames that are neither broadcast nor multicast */ 46797549c34SHans Petter Selasky __be64 TTOTG_prio_0; 46897549c34SHans Petter Selasky __be64 TTOTG_prio_1; 46997549c34SHans Petter Selasky __be64 TTOTG_prio_2; 47097549c34SHans Petter Selasky __be64 TTOTG_prio_3; 47197549c34SHans Petter Selasky __be64 TTOTG_prio_4; 47297549c34SHans Petter Selasky __be64 TTOTG_prio_5; 47397549c34SHans Petter Selasky __be64 TTOTG_prio_6; 47497549c34SHans Petter Selasky __be64 TTOTG_prio_7; 47597549c34SHans Petter Selasky __be64 TTOTG_novlan; 47697549c34SHans Petter Selasky __be64 TTOTG_loopbk; 47797549c34SHans Petter Selasky 47897549c34SHans Petter Selasky /* total octets of transmitted frames, including framing characters */ 47997549c34SHans Petter Selasky __be64 TTTLOCT_prio_0; 48097549c34SHans Petter Selasky /* total octets of transmitted frames, not including framing characters */ 48197549c34SHans Petter Selasky __be64 TTTLOCT_NOFRM_prio_0; 48297549c34SHans Petter Selasky /* ifOutOctets */ 48397549c34SHans Petter Selasky __be64 TOCT_prio_0; 48497549c34SHans Petter Selasky 48597549c34SHans Petter Selasky __be64 TTTLOCT_prio_1; 48697549c34SHans Petter Selasky __be64 TTTLOCT_NOFRM_prio_1; 48797549c34SHans Petter Selasky __be64 TOCT_prio_1; 48897549c34SHans Petter Selasky 48997549c34SHans Petter Selasky __be64 TTTLOCT_prio_2; 49097549c34SHans Petter Selasky __be64 TTTLOCT_NOFRM_prio_2; 49197549c34SHans Petter Selasky __be64 TOCT_prio_2; 49297549c34SHans Petter Selasky 49397549c34SHans Petter Selasky __be64 TTTLOCT_prio_3; 49497549c34SHans Petter Selasky __be64 TTTLOCT_NOFRM_prio_3; 49597549c34SHans Petter Selasky __be64 TOCT_prio_3; 49697549c34SHans Petter Selasky 49797549c34SHans Petter Selasky __be64 TTTLOCT_prio_4; 49897549c34SHans Petter Selasky __be64 TTTLOCT_NOFRM_prio_4; 49997549c34SHans Petter Selasky __be64 TOCT_prio_4; 50097549c34SHans Petter Selasky 50197549c34SHans Petter Selasky __be64 TTTLOCT_prio_5; 50297549c34SHans Petter Selasky __be64 TTTLOCT_NOFRM_prio_5; 50397549c34SHans Petter Selasky __be64 TOCT_prio_5; 50497549c34SHans Petter Selasky 50597549c34SHans Petter Selasky __be64 TTTLOCT_prio_6; 50697549c34SHans Petter Selasky __be64 TTTLOCT_NOFRM_prio_6; 50797549c34SHans Petter Selasky __be64 TOCT_prio_6; 50897549c34SHans Petter Selasky 50997549c34SHans Petter Selasky __be64 TTTLOCT_prio_7; 51097549c34SHans Petter Selasky __be64 TTTLOCT_NOFRM_prio_7; 51197549c34SHans Petter Selasky __be64 TOCT_prio_7; 51297549c34SHans Petter Selasky 51397549c34SHans Petter Selasky __be64 TTTLOCT_novlan; 51497549c34SHans Petter Selasky __be64 TTTLOCT_NOFRM_novlan; 51597549c34SHans Petter Selasky __be64 TOCT_novlan; 51697549c34SHans Petter Selasky 51797549c34SHans Petter Selasky __be64 TTTLOCT_loopbk; 51897549c34SHans Petter Selasky __be64 TTTLOCT_NOFRM_loopbk; 51997549c34SHans Petter Selasky __be64 TOCT_loopbk; 52097549c34SHans Petter Selasky 52197549c34SHans Petter Selasky /* Total frames transmitted with a good CRC that are not aborted */ 52297549c34SHans Petter Selasky __be64 TTOT_prio_0; 52397549c34SHans Petter Selasky /* Total number of frames transmitted with 802.1Q encapsulation */ 52497549c34SHans Petter Selasky __be64 T1Q_prio_0; 52597549c34SHans Petter Selasky __be64 reserved13; 52697549c34SHans Petter Selasky 52797549c34SHans Petter Selasky __be64 TTOT_prio_1; 52897549c34SHans Petter Selasky __be64 T1Q_prio_1; 52997549c34SHans Petter Selasky __be64 reserved14; 53097549c34SHans Petter Selasky 53197549c34SHans Petter Selasky __be64 TTOT_prio_2; 53297549c34SHans Petter Selasky __be64 T1Q_prio_2; 53397549c34SHans Petter Selasky __be64 reserved15; 53497549c34SHans Petter Selasky 53597549c34SHans Petter Selasky __be64 TTOT_prio_3; 53697549c34SHans Petter Selasky __be64 T1Q_prio_3; 53797549c34SHans Petter Selasky __be64 reserved16; 53897549c34SHans Petter Selasky 53997549c34SHans Petter Selasky __be64 TTOT_prio_4; 54097549c34SHans Petter Selasky __be64 T1Q_prio_4; 54197549c34SHans Petter Selasky __be64 reserved17; 54297549c34SHans Petter Selasky 54397549c34SHans Petter Selasky __be64 TTOT_prio_5; 54497549c34SHans Petter Selasky __be64 T1Q_prio_5; 54597549c34SHans Petter Selasky __be64 reserved18; 54697549c34SHans Petter Selasky 54797549c34SHans Petter Selasky __be64 TTOT_prio_6; 54897549c34SHans Petter Selasky __be64 T1Q_prio_6; 54997549c34SHans Petter Selasky __be64 reserved19; 55097549c34SHans Petter Selasky 55197549c34SHans Petter Selasky __be64 TTOT_prio_7; 55297549c34SHans Petter Selasky __be64 T1Q_prio_7; 55397549c34SHans Petter Selasky __be64 reserved20; 55497549c34SHans Petter Selasky 55597549c34SHans Petter Selasky __be64 TTOT_novlan; 55697549c34SHans Petter Selasky __be64 T1Q_novlan; 55797549c34SHans Petter Selasky __be64 reserved21; 55897549c34SHans Petter Selasky 55997549c34SHans Petter Selasky __be64 TTOT_loopbk; 56097549c34SHans Petter Selasky __be64 T1Q_loopbk; 56197549c34SHans Petter Selasky __be64 reserved22; 56297549c34SHans Petter Selasky 56397549c34SHans Petter Selasky /* Received frames with a length greater than MTU octets and a bad CRC */ 56497549c34SHans Petter Selasky __be32 RJBBR; 56597549c34SHans Petter Selasky /* Received frames with a bad CRC that are not runts, jabbers, 56697549c34SHans Petter Selasky or alignment errors */ 56797549c34SHans Petter Selasky __be32 RCRC; 56897549c34SHans Petter Selasky /* Received frames with SFD with a length of less than 64 octets and a 56997549c34SHans Petter Selasky bad CRC */ 57097549c34SHans Petter Selasky __be32 RRUNT; 57197549c34SHans Petter Selasky /* Received frames with a length less than 64 octets and a good CRC */ 57297549c34SHans Petter Selasky __be32 RSHORT; 57397549c34SHans Petter Selasky /* Total Number of Received Packets Dropped */ 57497549c34SHans Petter Selasky __be32 RDROP; 57597549c34SHans Petter Selasky /* Drop due to overflow */ 57697549c34SHans Petter Selasky __be32 RdropOvflw; 57797549c34SHans Petter Selasky /* Drop due to overflow */ 57897549c34SHans Petter Selasky __be32 RdropLength; 57997549c34SHans Petter Selasky /* Total of good frames. Does not include frames received with 58097549c34SHans Petter Selasky frame-too-long, FCS, or length errors */ 58197549c34SHans Petter Selasky __be32 RTOTFRMS; 58297549c34SHans Petter Selasky /* Total dropped Xmited packets */ 58397549c34SHans Petter Selasky __be32 TDROP; 58497549c34SHans Petter Selasky }; 58597549c34SHans Petter Selasky 58697549c34SHans Petter Selasky #endif 587