cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

en_port.h (14375B)


      1/*
      2 * Copyright (c) 2007 Mellanox Technologies. All rights reserved.
      3 *
      4 * This software is available to you under a choice of one of two
      5 * licenses.  You may choose to be licensed under the terms of the GNU
      6 * General Public License (GPL) Version 2, available from the file
      7 * COPYING in the main directory of this source tree, or the
      8 * OpenIB.org BSD license below:
      9 *
     10 *     Redistribution and use in source and binary forms, with or
     11 *     without modification, are permitted provided that the following
     12 *     conditions are met:
     13 *
     14 *      - Redistributions of source code must retain the above
     15 *        copyright notice, this list of conditions and the following
     16 *        disclaimer.
     17 *
     18 *      - Redistributions in binary form must reproduce the above
     19 *        copyright notice, this list of conditions and the following
     20 *        disclaimer in the documentation and/or other materials
     21 *        provided with the distribution.
     22 *
     23 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
     24 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
     25 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
     26 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
     27 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
     28 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
     29 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
     30 * SOFTWARE.
     31 *
     32 */
     33
     34#ifndef _MLX4_EN_PORT_H_
     35#define _MLX4_EN_PORT_H_
     36
     37
     38#define SET_PORT_PROMISC_SHIFT	31
     39#define SET_PORT_MC_PROMISC_SHIFT	30
     40
     41#define MLX4_EN_NUM_TC		8
     42
     43#define VLAN_FLTR_SIZE	128
     44struct mlx4_set_vlan_fltr_mbox {
     45	__be32 entry[VLAN_FLTR_SIZE];
     46};
     47
     48
     49enum {
     50	MLX4_MCAST_CONFIG       = 0,
     51	MLX4_MCAST_DISABLE      = 1,
     52	MLX4_MCAST_ENABLE       = 2,
     53};
     54
     55enum mlx4_link_mode {
     56	MLX4_1000BASE_CX_SGMII	 = 0,
     57	MLX4_1000BASE_KX	 = 1,
     58	MLX4_10GBASE_CX4	 = 2,
     59	MLX4_10GBASE_KX4	 = 3,
     60	MLX4_10GBASE_KR		 = 4,
     61	MLX4_20GBASE_KR2	 = 5,
     62	MLX4_40GBASE_CR4	 = 6,
     63	MLX4_40GBASE_KR4	 = 7,
     64	MLX4_56GBASE_KR4	 = 8,
     65	MLX4_10GBASE_CR		 = 12,
     66	MLX4_10GBASE_SR		 = 13,
     67	MLX4_40GBASE_SR4	 = 15,
     68	MLX4_56GBASE_CR4	 = 17,
     69	MLX4_56GBASE_SR4	 = 18,
     70	MLX4_100BASE_TX		 = 24,
     71	MLX4_1000BASE_T		 = 25,
     72	MLX4_10GBASE_T		 = 26,
     73};
     74
     75#define MLX4_PROT_MASK(link_mode) (1<<link_mode)
     76
     77enum {
     78	MLX4_EN_100M_SPEED	= 0x04,
     79	MLX4_EN_10G_SPEED_XAUI	= 0x00,
     80	MLX4_EN_10G_SPEED_XFI	= 0x01,
     81	MLX4_EN_1G_SPEED	= 0x02,
     82	MLX4_EN_20G_SPEED	= 0x08,
     83	MLX4_EN_40G_SPEED	= 0x40,
     84	MLX4_EN_56G_SPEED	= 0x20,
     85	MLX4_EN_OTHER_SPEED	= 0x0f,
     86};
     87
     88struct mlx4_en_query_port_context {
     89	u8 link_up;
     90#define MLX4_EN_LINK_UP_MASK	0x80
     91#define MLX4_EN_ANC_MASK	0x40
     92	u8 autoneg;
     93#define MLX4_EN_AUTONEG_MASK	0x80
     94	__be16 mtu;
     95	u8 reserved2;
     96	u8 link_speed;
     97#define MLX4_EN_SPEED_MASK	0x6f
     98	u16 reserved3[5];
     99	__be64 mac;
    100	u8 transceiver;
    101};
    102
    103
    104struct mlx4_en_stat_out_mbox {
    105	/* Received frames with a length of 64 octets */
    106	__be64 R64_prio_0;
    107	__be64 R64_prio_1;
    108	__be64 R64_prio_2;
    109	__be64 R64_prio_3;
    110	__be64 R64_prio_4;
    111	__be64 R64_prio_5;
    112	__be64 R64_prio_6;
    113	__be64 R64_prio_7;
    114	__be64 R64_novlan;
    115	/* Received frames with a length of 127 octets */
    116	__be64 R127_prio_0;
    117	__be64 R127_prio_1;
    118	__be64 R127_prio_2;
    119	__be64 R127_prio_3;
    120	__be64 R127_prio_4;
    121	__be64 R127_prio_5;
    122	__be64 R127_prio_6;
    123	__be64 R127_prio_7;
    124	__be64 R127_novlan;
    125	/* Received frames with a length of 255 octets */
    126	__be64 R255_prio_0;
    127	__be64 R255_prio_1;
    128	__be64 R255_prio_2;
    129	__be64 R255_prio_3;
    130	__be64 R255_prio_4;
    131	__be64 R255_prio_5;
    132	__be64 R255_prio_6;
    133	__be64 R255_prio_7;
    134	__be64 R255_novlan;
    135	/* Received frames with a length of 511 octets */
    136	__be64 R511_prio_0;
    137	__be64 R511_prio_1;
    138	__be64 R511_prio_2;
    139	__be64 R511_prio_3;
    140	__be64 R511_prio_4;
    141	__be64 R511_prio_5;
    142	__be64 R511_prio_6;
    143	__be64 R511_prio_7;
    144	__be64 R511_novlan;
    145	/* Received frames with a length of 1023 octets */
    146	__be64 R1023_prio_0;
    147	__be64 R1023_prio_1;
    148	__be64 R1023_prio_2;
    149	__be64 R1023_prio_3;
    150	__be64 R1023_prio_4;
    151	__be64 R1023_prio_5;
    152	__be64 R1023_prio_6;
    153	__be64 R1023_prio_7;
    154	__be64 R1023_novlan;
    155	/* Received frames with a length of 1518 octets */
    156	__be64 R1518_prio_0;
    157	__be64 R1518_prio_1;
    158	__be64 R1518_prio_2;
    159	__be64 R1518_prio_3;
    160	__be64 R1518_prio_4;
    161	__be64 R1518_prio_5;
    162	__be64 R1518_prio_6;
    163	__be64 R1518_prio_7;
    164	__be64 R1518_novlan;
    165	/* Received frames with a length of 1522 octets */
    166	__be64 R1522_prio_0;
    167	__be64 R1522_prio_1;
    168	__be64 R1522_prio_2;
    169	__be64 R1522_prio_3;
    170	__be64 R1522_prio_4;
    171	__be64 R1522_prio_5;
    172	__be64 R1522_prio_6;
    173	__be64 R1522_prio_7;
    174	__be64 R1522_novlan;
    175	/* Received frames with a length of 1548 octets */
    176	__be64 R1548_prio_0;
    177	__be64 R1548_prio_1;
    178	__be64 R1548_prio_2;
    179	__be64 R1548_prio_3;
    180	__be64 R1548_prio_4;
    181	__be64 R1548_prio_5;
    182	__be64 R1548_prio_6;
    183	__be64 R1548_prio_7;
    184	__be64 R1548_novlan;
    185	/* Received frames with a length of 1548 < octets < MTU */
    186	__be64 R2MTU_prio_0;
    187	__be64 R2MTU_prio_1;
    188	__be64 R2MTU_prio_2;
    189	__be64 R2MTU_prio_3;
    190	__be64 R2MTU_prio_4;
    191	__be64 R2MTU_prio_5;
    192	__be64 R2MTU_prio_6;
    193	__be64 R2MTU_prio_7;
    194	__be64 R2MTU_novlan;
    195	/* Received frames with a length of MTU< octets and good CRC */
    196	__be64 RGIANT_prio_0;
    197	__be64 RGIANT_prio_1;
    198	__be64 RGIANT_prio_2;
    199	__be64 RGIANT_prio_3;
    200	__be64 RGIANT_prio_4;
    201	__be64 RGIANT_prio_5;
    202	__be64 RGIANT_prio_6;
    203	__be64 RGIANT_prio_7;
    204	__be64 RGIANT_novlan;
    205	/* Received broadcast frames with good CRC */
    206	__be64 RBCAST_prio_0;
    207	__be64 RBCAST_prio_1;
    208	__be64 RBCAST_prio_2;
    209	__be64 RBCAST_prio_3;
    210	__be64 RBCAST_prio_4;
    211	__be64 RBCAST_prio_5;
    212	__be64 RBCAST_prio_6;
    213	__be64 RBCAST_prio_7;
    214	__be64 RBCAST_novlan;
    215	/* Received multicast frames with good CRC */
    216	__be64 MCAST_prio_0;
    217	__be64 MCAST_prio_1;
    218	__be64 MCAST_prio_2;
    219	__be64 MCAST_prio_3;
    220	__be64 MCAST_prio_4;
    221	__be64 MCAST_prio_5;
    222	__be64 MCAST_prio_6;
    223	__be64 MCAST_prio_7;
    224	__be64 MCAST_novlan;
    225	/* Received unicast not short or GIANT frames with good CRC */
    226	__be64 RTOTG_prio_0;
    227	__be64 RTOTG_prio_1;
    228	__be64 RTOTG_prio_2;
    229	__be64 RTOTG_prio_3;
    230	__be64 RTOTG_prio_4;
    231	__be64 RTOTG_prio_5;
    232	__be64 RTOTG_prio_6;
    233	__be64 RTOTG_prio_7;
    234	__be64 RTOTG_novlan;
    235
    236	/* Count of total octets of received frames, includes framing characters */
    237	__be64 RTTLOCT_prio_0;
    238	/* Count of total octets of received frames, not including framing
    239	   characters */
    240	__be64 RTTLOCT_NOFRM_prio_0;
    241	/* Count of Total number of octets received
    242	   (only for frames without errors) */
    243	__be64 ROCT_prio_0;
    244
    245	__be64 RTTLOCT_prio_1;
    246	__be64 RTTLOCT_NOFRM_prio_1;
    247	__be64 ROCT_prio_1;
    248
    249	__be64 RTTLOCT_prio_2;
    250	__be64 RTTLOCT_NOFRM_prio_2;
    251	__be64 ROCT_prio_2;
    252
    253	__be64 RTTLOCT_prio_3;
    254	__be64 RTTLOCT_NOFRM_prio_3;
    255	__be64 ROCT_prio_3;
    256
    257	__be64 RTTLOCT_prio_4;
    258	__be64 RTTLOCT_NOFRM_prio_4;
    259	__be64 ROCT_prio_4;
    260
    261	__be64 RTTLOCT_prio_5;
    262	__be64 RTTLOCT_NOFRM_prio_5;
    263	__be64 ROCT_prio_5;
    264
    265	__be64 RTTLOCT_prio_6;
    266	__be64 RTTLOCT_NOFRM_prio_6;
    267	__be64 ROCT_prio_6;
    268
    269	__be64 RTTLOCT_prio_7;
    270	__be64 RTTLOCT_NOFRM_prio_7;
    271	__be64 ROCT_prio_7;
    272
    273	__be64 RTTLOCT_novlan;
    274	__be64 RTTLOCT_NOFRM_novlan;
    275	__be64 ROCT_novlan;
    276
    277	/* Count of Total received frames including bad frames */
    278	__be64 RTOT_prio_0;
    279	/* Count of  Total number of received frames with 802.1Q encapsulation */
    280	__be64 R1Q_prio_0;
    281	__be64 reserved1;
    282
    283	__be64 RTOT_prio_1;
    284	__be64 R1Q_prio_1;
    285	__be64 reserved2;
    286
    287	__be64 RTOT_prio_2;
    288	__be64 R1Q_prio_2;
    289	__be64 reserved3;
    290
    291	__be64 RTOT_prio_3;
    292	__be64 R1Q_prio_3;
    293	__be64 reserved4;
    294
    295	__be64 RTOT_prio_4;
    296	__be64 R1Q_prio_4;
    297	__be64 reserved5;
    298
    299	__be64 RTOT_prio_5;
    300	__be64 R1Q_prio_5;
    301	__be64 reserved6;
    302
    303	__be64 RTOT_prio_6;
    304	__be64 R1Q_prio_6;
    305	__be64 reserved7;
    306
    307	__be64 RTOT_prio_7;
    308	__be64 R1Q_prio_7;
    309	__be64 reserved8;
    310
    311	__be64 RTOT_novlan;
    312	__be64 R1Q_novlan;
    313	__be64 reserved9;
    314
    315	/* Total number of Successfully Received Control Frames */
    316	__be64 RCNTL;
    317	__be64 reserved10;
    318	__be64 reserved11;
    319	__be64 reserved12;
    320	/* Count of received frames with a length/type field  value between 46
    321	   (42 for VLANtagged frames) and 1500 (also 1500 for VLAN-tagged frames),
    322	   inclusive */
    323	__be64 RInRangeLengthErr;
    324	/* Count of received frames with length/type field between 1501 and 1535
    325	   decimal, inclusive */
    326	__be64 ROutRangeLengthErr;
    327	/* Count of received frames that are longer than max allowed size for
    328	   802.3 frames (1518/1522) */
    329	__be64 RFrmTooLong;
    330	/* Count frames received with PCS error */
    331	__be64 PCS;
    332
    333	/* Transmit frames with a length of 64 octets */
    334	__be64 T64_prio_0;
    335	__be64 T64_prio_1;
    336	__be64 T64_prio_2;
    337	__be64 T64_prio_3;
    338	__be64 T64_prio_4;
    339	__be64 T64_prio_5;
    340	__be64 T64_prio_6;
    341	__be64 T64_prio_7;
    342	__be64 T64_novlan;
    343	__be64 T64_loopbk;
    344	/* Transmit frames with a length of 65 to 127 octets. */
    345	__be64 T127_prio_0;
    346	__be64 T127_prio_1;
    347	__be64 T127_prio_2;
    348	__be64 T127_prio_3;
    349	__be64 T127_prio_4;
    350	__be64 T127_prio_5;
    351	__be64 T127_prio_6;
    352	__be64 T127_prio_7;
    353	__be64 T127_novlan;
    354	__be64 T127_loopbk;
    355	/* Transmit frames with a length of 128 to 255 octets */
    356	__be64 T255_prio_0;
    357	__be64 T255_prio_1;
    358	__be64 T255_prio_2;
    359	__be64 T255_prio_3;
    360	__be64 T255_prio_4;
    361	__be64 T255_prio_5;
    362	__be64 T255_prio_6;
    363	__be64 T255_prio_7;
    364	__be64 T255_novlan;
    365	__be64 T255_loopbk;
    366	/* Transmit frames with a length of 256 to 511 octets */
    367	__be64 T511_prio_0;
    368	__be64 T511_prio_1;
    369	__be64 T511_prio_2;
    370	__be64 T511_prio_3;
    371	__be64 T511_prio_4;
    372	__be64 T511_prio_5;
    373	__be64 T511_prio_6;
    374	__be64 T511_prio_7;
    375	__be64 T511_novlan;
    376	__be64 T511_loopbk;
    377	/* Transmit frames with a length of 512 to 1023 octets */
    378	__be64 T1023_prio_0;
    379	__be64 T1023_prio_1;
    380	__be64 T1023_prio_2;
    381	__be64 T1023_prio_3;
    382	__be64 T1023_prio_4;
    383	__be64 T1023_prio_5;
    384	__be64 T1023_prio_6;
    385	__be64 T1023_prio_7;
    386	__be64 T1023_novlan;
    387	__be64 T1023_loopbk;
    388	/* Transmit frames with a length of 1024 to 1518 octets */
    389	__be64 T1518_prio_0;
    390	__be64 T1518_prio_1;
    391	__be64 T1518_prio_2;
    392	__be64 T1518_prio_3;
    393	__be64 T1518_prio_4;
    394	__be64 T1518_prio_5;
    395	__be64 T1518_prio_6;
    396	__be64 T1518_prio_7;
    397	__be64 T1518_novlan;
    398	__be64 T1518_loopbk;
    399	/* Counts transmit frames with a length of 1519 to 1522 bytes */
    400	__be64 T1522_prio_0;
    401	__be64 T1522_prio_1;
    402	__be64 T1522_prio_2;
    403	__be64 T1522_prio_3;
    404	__be64 T1522_prio_4;
    405	__be64 T1522_prio_5;
    406	__be64 T1522_prio_6;
    407	__be64 T1522_prio_7;
    408	__be64 T1522_novlan;
    409	__be64 T1522_loopbk;
    410	/* Transmit frames with a length of 1523 to 1548 octets */
    411	__be64 T1548_prio_0;
    412	__be64 T1548_prio_1;
    413	__be64 T1548_prio_2;
    414	__be64 T1548_prio_3;
    415	__be64 T1548_prio_4;
    416	__be64 T1548_prio_5;
    417	__be64 T1548_prio_6;
    418	__be64 T1548_prio_7;
    419	__be64 T1548_novlan;
    420	__be64 T1548_loopbk;
    421	/* Counts transmit frames with a length of 1549 to MTU bytes */
    422	__be64 T2MTU_prio_0;
    423	__be64 T2MTU_prio_1;
    424	__be64 T2MTU_prio_2;
    425	__be64 T2MTU_prio_3;
    426	__be64 T2MTU_prio_4;
    427	__be64 T2MTU_prio_5;
    428	__be64 T2MTU_prio_6;
    429	__be64 T2MTU_prio_7;
    430	__be64 T2MTU_novlan;
    431	__be64 T2MTU_loopbk;
    432	/* Transmit frames with a length greater than MTU octets and a good CRC. */
    433	__be64 TGIANT_prio_0;
    434	__be64 TGIANT_prio_1;
    435	__be64 TGIANT_prio_2;
    436	__be64 TGIANT_prio_3;
    437	__be64 TGIANT_prio_4;
    438	__be64 TGIANT_prio_5;
    439	__be64 TGIANT_prio_6;
    440	__be64 TGIANT_prio_7;
    441	__be64 TGIANT_novlan;
    442	__be64 TGIANT_loopbk;
    443	/* Transmit broadcast frames with a good CRC */
    444	__be64 TBCAST_prio_0;
    445	__be64 TBCAST_prio_1;
    446	__be64 TBCAST_prio_2;
    447	__be64 TBCAST_prio_3;
    448	__be64 TBCAST_prio_4;
    449	__be64 TBCAST_prio_5;
    450	__be64 TBCAST_prio_6;
    451	__be64 TBCAST_prio_7;
    452	__be64 TBCAST_novlan;
    453	__be64 TBCAST_loopbk;
    454	/* Transmit multicast frames with a good CRC */
    455	__be64 TMCAST_prio_0;
    456	__be64 TMCAST_prio_1;
    457	__be64 TMCAST_prio_2;
    458	__be64 TMCAST_prio_3;
    459	__be64 TMCAST_prio_4;
    460	__be64 TMCAST_prio_5;
    461	__be64 TMCAST_prio_6;
    462	__be64 TMCAST_prio_7;
    463	__be64 TMCAST_novlan;
    464	__be64 TMCAST_loopbk;
    465	/* Transmit good frames that are neither broadcast nor multicast */
    466	__be64 TTOTG_prio_0;
    467	__be64 TTOTG_prio_1;
    468	__be64 TTOTG_prio_2;
    469	__be64 TTOTG_prio_3;
    470	__be64 TTOTG_prio_4;
    471	__be64 TTOTG_prio_5;
    472	__be64 TTOTG_prio_6;
    473	__be64 TTOTG_prio_7;
    474	__be64 TTOTG_novlan;
    475	__be64 TTOTG_loopbk;
    476
    477	/* total octets of transmitted frames, including framing characters */
    478	__be64 TTTLOCT_prio_0;
    479	/* total octets of transmitted frames, not including framing characters */
    480	__be64 TTTLOCT_NOFRM_prio_0;
    481	/* ifOutOctets */
    482	__be64 TOCT_prio_0;
    483
    484	__be64 TTTLOCT_prio_1;
    485	__be64 TTTLOCT_NOFRM_prio_1;
    486	__be64 TOCT_prio_1;
    487
    488	__be64 TTTLOCT_prio_2;
    489	__be64 TTTLOCT_NOFRM_prio_2;
    490	__be64 TOCT_prio_2;
    491
    492	__be64 TTTLOCT_prio_3;
    493	__be64 TTTLOCT_NOFRM_prio_3;
    494	__be64 TOCT_prio_3;
    495
    496	__be64 TTTLOCT_prio_4;
    497	__be64 TTTLOCT_NOFRM_prio_4;
    498	__be64 TOCT_prio_4;
    499
    500	__be64 TTTLOCT_prio_5;
    501	__be64 TTTLOCT_NOFRM_prio_5;
    502	__be64 TOCT_prio_5;
    503
    504	__be64 TTTLOCT_prio_6;
    505	__be64 TTTLOCT_NOFRM_prio_6;
    506	__be64 TOCT_prio_6;
    507
    508	__be64 TTTLOCT_prio_7;
    509	__be64 TTTLOCT_NOFRM_prio_7;
    510	__be64 TOCT_prio_7;
    511
    512	__be64 TTTLOCT_novlan;
    513	__be64 TTTLOCT_NOFRM_novlan;
    514	__be64 TOCT_novlan;
    515
    516	__be64 TTTLOCT_loopbk;
    517	__be64 TTTLOCT_NOFRM_loopbk;
    518	__be64 TOCT_loopbk;
    519
    520	/* Total frames transmitted with a good CRC that are not aborted  */
    521	__be64 TTOT_prio_0;
    522	/* Total number of frames transmitted with 802.1Q encapsulation */
    523	__be64 T1Q_prio_0;
    524	__be64 reserved13;
    525
    526	__be64 TTOT_prio_1;
    527	__be64 T1Q_prio_1;
    528	__be64 reserved14;
    529
    530	__be64 TTOT_prio_2;
    531	__be64 T1Q_prio_2;
    532	__be64 reserved15;
    533
    534	__be64 TTOT_prio_3;
    535	__be64 T1Q_prio_3;
    536	__be64 reserved16;
    537
    538	__be64 TTOT_prio_4;
    539	__be64 T1Q_prio_4;
    540	__be64 reserved17;
    541
    542	__be64 TTOT_prio_5;
    543	__be64 T1Q_prio_5;
    544	__be64 reserved18;
    545
    546	__be64 TTOT_prio_6;
    547	__be64 T1Q_prio_6;
    548	__be64 reserved19;
    549
    550	__be64 TTOT_prio_7;
    551	__be64 T1Q_prio_7;
    552	__be64 reserved20;
    553
    554	__be64 TTOT_novlan;
    555	__be64 T1Q_novlan;
    556	__be64 reserved21;
    557
    558	__be64 TTOT_loopbk;
    559	__be64 T1Q_loopbk;
    560	__be64 reserved22;
    561
    562	/* Received frames with a length greater than MTU octets and a bad CRC */
    563	__be32 RJBBR;
    564	/* Received frames with a bad CRC that are not runts, jabbers,
    565	   or alignment errors */
    566	__be32 RCRC;
    567	/* Received frames with SFD with a length of less than 64 octets and a
    568	   bad CRC */
    569	__be32 RRUNT;
    570	/* Received frames with a length less than 64 octets and a good CRC */
    571	__be32 RSHORT;
    572	/* Total Number of Received Packets Dropped */
    573	__be32 RDROP;
    574	/* Drop due to overflow  */
    575	__be32 RdropOvflw;
    576	/* Drop due to overflow */
    577	__be32 RdropLength;
    578	/* Total of good frames. Does not include frames received with
    579	   frame-too-long, FCS, or length errors */
    580	__be32 RTOTFRMS;
    581	/* Total dropped Xmited packets */
    582	__be32 TDROP;
    583};
    584
    585
    586#endif