summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/microchip/lan966x/lan966x_ifh.h
blob: e706163ce9cc03e811557e663cc12242cace6f08 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
/* SPDX-License-Identifier: GPL-2.0+ */

#ifndef __LAN966X_IFH_H__
#define __LAN966X_IFH_H__

/* Fields with description (*) should just be cleared upon injection
 * IFH is transmitted MSByte first (Highest bit pos sent as MSB of first byte)
 */

#define IFH_LEN                      7
#define IFH_LEN_BYTES                (IFH_LEN * sizeof(u32))

/* Timestamp for frame */
#define IFH_POS_TIMESTAMP            192

/* Bypass analyzer with a prefilled IFH */
#define IFH_POS_BYPASS               191

/* Masqueraded injection with masq_port defining logical source port */
#define IFH_POS_MASQ                 190

/* Masqueraded port number for injection */
#define IFH_POS_MASQ_PORT            186

/* Frame length (*) */
#define IFH_POS_LEN                  178

/* Cell filling mode. Full(0),Etype(1), LlctOpt(2), Llct(3) */
#define IFH_POS_WRDMODE              176

/* Frame has 16 bits rtag removed compared to line data */
#define IFH_POS_RTAG48               175

/* Frame has a redundancy tag */
#define IFH_POS_HAS_RED_TAG          174

/* Frame has been cut through forwarded (*) */
#define IFH_POS_CUTTHRU              173

/* Rewriter command */
#define IFH_POS_REW_CMD              163

/* Enable OAM-related rewriting. PDU_TYPE encodes OAM type. */
#define IFH_POS_REW_OAM              162

/* PDU type. Encoding: (0-NONE, 1-Y1731_CCM, 2-MRP_TST, 3-MRP_ITST, 4-DLR_BCN,
 * 5-DLR_ADV, 6-RTE_NULL_INJ, 7-IPV4, 8-IPV6, 9-Y1731_NON_CCM).
 */
#define IFH_POS_PDU_TYPE             158

/* Update FCS before transmission */
#define IFH_POS_FCS_UPD              157

/* Classified DSCP value of frame */
#define IFH_POS_DSCP                 151

/* Yellow indication */
#define IFH_POS_DP                   150

/* Process in RTE/inbound */
#define IFH_POS_RTE_INB_UPDATE       149

/* Number of tags to pop from frame */
#define IFH_POS_POP_CNT              147

/* Number of tags in front of the ethertype */
#define IFH_POS_ETYPE_OFS            145

/* Logical source port of frame (*) */
#define IFH_POS_SRCPORT              141

/* Sequence number in redundancy tag */
#define IFH_POS_SEQ_NUM              120

/* Stagd flag and classified TCI of frame (PCP/DEI/VID) */
#define IFH_POS_TCI                  103

/* Classified internal priority for queuing */
#define IFH_POS_QOS_CLASS            100

/* Bit mask with eight cpu copy classes */
#define IFH_POS_CPUQ                 92

/* Relearn + learn flags (*) */
#define IFH_POS_LEARN_FLAGS          90

/* SFLOW identifier for frame (0-8: Tx port, 9: Rx sampling, 15: No sampling) */
#define IFH_POS_SFLOW_ID             86

/* Set if an ACL/S2 rule was hit (*).
 * Super priority: acl_hit=0 and acl_hit(4)=1.
 */
#define IFH_POS_ACL_HIT              85

/* S2 rule index hit (*) */
#define IFH_POS_ACL_IDX              79

/* ISDX as classified by S1 */
#define IFH_POS_ISDX                 71

/* Destination ports for frame */
#define IFH_POS_DSTS                 62

/* Storm policer to be applied: None/Uni/Multi/Broad (*) */
#define IFH_POS_FLOOD                60

/* Redundancy tag operation */
#define IFH_POS_SEQ_OP               58

/* Classified internal priority for resourcemgt, tagging etc */
#define IFH_POS_IPV                  55

/* Frame is for AFI use */
#define IFH_POS_AFI                  54

/* Internal aging value (*) */
#define IFH_POS_AGED                 52

/* RTP Identifier */
#define IFH_POS_RTP_ID               42

/* RTP MRPD flow */
#define IFH_POS_RTP_SUBID            41

/* Profinet DataStatus or opcua GroupVersion MSB */
#define IFH_POS_PN_DATA_STATUS       33

/* Profinet transfer status (1 iff the status is 0) */
#define IFH_POS_PN_TRANSF_STATUS_ZERO 32

/* Profinet cycle counter or opcua NetworkMessageNumber */
#define IFH_POS_PN_CC                16

#define IFH_WID_TIMESTAMP            32
#define IFH_WID_BYPASS               1
#define IFH_WID_MASQ                 1
#define IFH_WID_MASQ_PORT            4
#define IFH_WID_LEN                  14
#define IFH_WID_WRDMODE              2
#define IFH_WID_RTAG48               1
#define IFH_WID_HAS_RED_TAG          1
#define IFH_WID_CUTTHRU              1
#define IFH_WID_REW_CMD              10
#define IFH_WID_REW_OAM              1
#define IFH_WID_PDU_TYPE             4
#define IFH_WID_FCS_UPD              1
#define IFH_WID_DSCP                 6
#define IFH_WID_DP                   1
#define IFH_WID_RTE_INB_UPDATE       1
#define IFH_WID_POP_CNT              2
#define IFH_WID_ETYPE_OFS            2
#define IFH_WID_SRCPORT              4
#define IFH_WID_SEQ_NUM              16
#define IFH_WID_TCI                  17
#define IFH_WID_QOS_CLASS            3
#define IFH_WID_CPUQ                 8
#define IFH_WID_LEARN_FLAGS          2
#define IFH_WID_SFLOW_ID             4
#define IFH_WID_ACL_HIT              1
#define IFH_WID_ACL_IDX              6
#define IFH_WID_ISDX                 8
#define IFH_WID_DSTS                 9
#define IFH_WID_FLOOD                2
#define IFH_WID_SEQ_OP               2
#define IFH_WID_IPV                  3
#define IFH_WID_AFI                  1
#define IFH_WID_AGED                 2
#define IFH_WID_RTP_ID               10
#define IFH_WID_RTP_SUBID            1
#define IFH_WID_PN_DATA_STATUS       8
#define IFH_WID_PN_TRANSF_STATUS_ZERO 1
#define IFH_WID_PN_CC                16

#endif /* __LAN966X_IFH_H__ */