xref: /linux/drivers/net/ethernet/mellanox/mlxsw/txheader.h (revision 31557f0f9755696530d08465cf9940404f2d48e2)
1*31557f0fSJiri Pirko /*
2*31557f0fSJiri Pirko  * drivers/net/ethernet/mellanox/mlxsw/txheader.h
3*31557f0fSJiri Pirko  * Copyright (c) 2015 Mellanox Technologies. All rights reserved.
4*31557f0fSJiri Pirko  * Copyright (c) 2015 Ido Schimmel <idosch@mellanox.com>
5*31557f0fSJiri Pirko  * Copyright (c) 2015 Jiri Pirko <jiri@mellanox.com>
6*31557f0fSJiri Pirko  *
7*31557f0fSJiri Pirko  * Redistribution and use in source and binary forms, with or without
8*31557f0fSJiri Pirko  * modification, are permitted provided that the following conditions are met:
9*31557f0fSJiri Pirko  *
10*31557f0fSJiri Pirko  * 1. Redistributions of source code must retain the above copyright
11*31557f0fSJiri Pirko  *    notice, this list of conditions and the following disclaimer.
12*31557f0fSJiri Pirko  * 2. Redistributions in binary form must reproduce the above copyright
13*31557f0fSJiri Pirko  *    notice, this list of conditions and the following disclaimer in the
14*31557f0fSJiri Pirko  *    documentation and/or other materials provided with the distribution.
15*31557f0fSJiri Pirko  * 3. Neither the names of the copyright holders nor the names of its
16*31557f0fSJiri Pirko  *    contributors may be used to endorse or promote products derived from
17*31557f0fSJiri Pirko  *    this software without specific prior written permission.
18*31557f0fSJiri Pirko  *
19*31557f0fSJiri Pirko  * Alternatively, this software may be distributed under the terms of the
20*31557f0fSJiri Pirko  * GNU General Public License ("GPL") version 2 as published by the Free
21*31557f0fSJiri Pirko  * Software Foundation.
22*31557f0fSJiri Pirko  *
23*31557f0fSJiri Pirko  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
24*31557f0fSJiri Pirko  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25*31557f0fSJiri Pirko  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26*31557f0fSJiri Pirko  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
27*31557f0fSJiri Pirko  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
28*31557f0fSJiri Pirko  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
29*31557f0fSJiri Pirko  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
30*31557f0fSJiri Pirko  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
31*31557f0fSJiri Pirko  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
32*31557f0fSJiri Pirko  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33*31557f0fSJiri Pirko  * POSSIBILITY OF SUCH DAMAGE.
34*31557f0fSJiri Pirko  */
35*31557f0fSJiri Pirko 
36*31557f0fSJiri Pirko #ifndef _MLXSW_TXHEADER_H
37*31557f0fSJiri Pirko #define _MLXSW_TXHEADER_H
38*31557f0fSJiri Pirko 
39*31557f0fSJiri Pirko #define MLXSW_TXHDR_LEN 0x10
40*31557f0fSJiri Pirko #define MLXSW_TXHDR_VERSION_0 0
41*31557f0fSJiri Pirko 
42*31557f0fSJiri Pirko enum {
43*31557f0fSJiri Pirko 	MLXSW_TXHDR_ETH_CTL,
44*31557f0fSJiri Pirko 	MLXSW_TXHDR_ETH_DATA,
45*31557f0fSJiri Pirko };
46*31557f0fSJiri Pirko 
47*31557f0fSJiri Pirko #define MLXSW_TXHDR_PROTO_ETH 1
48*31557f0fSJiri Pirko 
49*31557f0fSJiri Pirko enum {
50*31557f0fSJiri Pirko 	MLXSW_TXHDR_ETCLASS_0,
51*31557f0fSJiri Pirko 	MLXSW_TXHDR_ETCLASS_1,
52*31557f0fSJiri Pirko 	MLXSW_TXHDR_ETCLASS_2,
53*31557f0fSJiri Pirko 	MLXSW_TXHDR_ETCLASS_3,
54*31557f0fSJiri Pirko 	MLXSW_TXHDR_ETCLASS_4,
55*31557f0fSJiri Pirko 	MLXSW_TXHDR_ETCLASS_5,
56*31557f0fSJiri Pirko 	MLXSW_TXHDR_ETCLASS_6,
57*31557f0fSJiri Pirko 	MLXSW_TXHDR_ETCLASS_7,
58*31557f0fSJiri Pirko };
59*31557f0fSJiri Pirko 
60*31557f0fSJiri Pirko enum {
61*31557f0fSJiri Pirko 	MLXSW_TXHDR_RDQ_OTHER,
62*31557f0fSJiri Pirko 	MLXSW_TXHDR_RDQ_EMAD = 0x1f,
63*31557f0fSJiri Pirko };
64*31557f0fSJiri Pirko 
65*31557f0fSJiri Pirko #define MLXSW_TXHDR_CTCLASS3 0
66*31557f0fSJiri Pirko #define MLXSW_TXHDR_CPU_SIG 0
67*31557f0fSJiri Pirko #define MLXSW_TXHDR_SIG 0xE0E0
68*31557f0fSJiri Pirko #define MLXSW_TXHDR_STCLASS_NONE 0
69*31557f0fSJiri Pirko 
70*31557f0fSJiri Pirko enum {
71*31557f0fSJiri Pirko 	MLXSW_TXHDR_NOT_EMAD,
72*31557f0fSJiri Pirko 	MLXSW_TXHDR_EMAD,
73*31557f0fSJiri Pirko };
74*31557f0fSJiri Pirko 
75*31557f0fSJiri Pirko enum {
76*31557f0fSJiri Pirko 	MLXSW_TXHDR_TYPE_DATA,
77*31557f0fSJiri Pirko 	MLXSW_TXHDR_TYPE_CONTROL = 6,
78*31557f0fSJiri Pirko };
79*31557f0fSJiri Pirko 
80*31557f0fSJiri Pirko #endif
81