1 | /* SPDX-License-Identifier: GPL-2.0+ */ |
2 | |
3 | #ifndef __LAN966X_IFH_H__ |
4 | #define __LAN966X_IFH_H__ |
5 | |
6 | /* Fields with description (*) should just be cleared upon injection |
7 | * IFH is transmitted MSByte first (Highest bit pos sent as MSB of first byte) |
8 | */ |
9 | |
10 | #define IFH_LEN 7 |
11 | #define IFH_LEN_BYTES (IFH_LEN * sizeof(u32)) |
12 | |
13 | /* Timestamp for frame */ |
14 | #define IFH_POS_TIMESTAMP 192 |
15 | |
16 | /* Bypass analyzer with a prefilled IFH */ |
17 | #define IFH_POS_BYPASS 191 |
18 | |
19 | /* Masqueraded injection with masq_port defining logical source port */ |
20 | #define IFH_POS_MASQ 190 |
21 | |
22 | /* Masqueraded port number for injection */ |
23 | #define IFH_POS_MASQ_PORT 186 |
24 | |
25 | /* Frame length (*) */ |
26 | #define IFH_POS_LEN 178 |
27 | |
28 | /* Cell filling mode. Full(0),Etype(1), LlctOpt(2), Llct(3) */ |
29 | #define IFH_POS_WRDMODE 176 |
30 | |
31 | /* Frame has 16 bits rtag removed compared to line data */ |
32 | #define IFH_POS_RTAG48 175 |
33 | |
34 | /* Frame has a redundancy tag */ |
35 | #define IFH_POS_HAS_RED_TAG 174 |
36 | |
37 | /* Frame has been cut through forwarded (*) */ |
38 | #define IFH_POS_CUTTHRU 173 |
39 | |
40 | /* Rewriter command */ |
41 | #define IFH_POS_REW_CMD 163 |
42 | |
43 | /* Enable OAM-related rewriting. PDU_TYPE encodes OAM type. */ |
44 | #define IFH_POS_REW_OAM 162 |
45 | |
46 | /* PDU type. Encoding: (0-NONE, 1-Y1731_CCM, 2-MRP_TST, 3-MRP_ITST, 4-DLR_BCN, |
47 | * 5-DLR_ADV, 6-RTE_NULL_INJ, 7-IPV4, 8-IPV6, 9-Y1731_NON_CCM). |
48 | */ |
49 | #define IFH_POS_PDU_TYPE 158 |
50 | |
51 | /* Update FCS before transmission */ |
52 | #define IFH_POS_FCS_UPD 157 |
53 | |
54 | /* Classified DSCP value of frame */ |
55 | #define IFH_POS_DSCP 151 |
56 | |
57 | /* Yellow indication */ |
58 | #define IFH_POS_DP 150 |
59 | |
60 | /* Process in RTE/inbound */ |
61 | #define IFH_POS_RTE_INB_UPDATE 149 |
62 | |
63 | /* Number of tags to pop from frame */ |
64 | #define IFH_POS_POP_CNT 147 |
65 | |
66 | /* Number of tags in front of the ethertype */ |
67 | #define IFH_POS_ETYPE_OFS 145 |
68 | |
69 | /* Logical source port of frame (*) */ |
70 | #define IFH_POS_SRCPORT 141 |
71 | |
72 | /* Sequence number in redundancy tag */ |
73 | #define IFH_POS_SEQ_NUM 120 |
74 | |
75 | /* Stagd flag and classified TCI of frame (PCP/DEI/VID) */ |
76 | #define IFH_POS_TCI 103 |
77 | |
78 | /* Classified internal priority for queuing */ |
79 | #define IFH_POS_QOS_CLASS 100 |
80 | |
81 | /* Bit mask with eight cpu copy classses */ |
82 | #define IFH_POS_CPUQ 92 |
83 | |
84 | /* Relearn + learn flags (*) */ |
85 | #define IFH_POS_LEARN_FLAGS 90 |
86 | |
87 | /* SFLOW identifier for frame (0-8: Tx port, 9: Rx sampling, 15: No sampling) */ |
88 | #define IFH_POS_SFLOW_ID 86 |
89 | |
90 | /* Set if an ACL/S2 rule was hit (*). |
91 | * Super priority: acl_hit=0 and acl_hit(4)=1. |
92 | */ |
93 | #define IFH_POS_ACL_HIT 85 |
94 | |
95 | /* S2 rule index hit (*) */ |
96 | #define IFH_POS_ACL_IDX 79 |
97 | |
98 | /* ISDX as classified by S1 */ |
99 | #define IFH_POS_ISDX 71 |
100 | |
101 | /* Destination ports for frame */ |
102 | #define IFH_POS_DSTS 62 |
103 | |
104 | /* Storm policer to be applied: None/Uni/Multi/Broad (*) */ |
105 | #define IFH_POS_FLOOD 60 |
106 | |
107 | /* Redundancy tag operation */ |
108 | #define IFH_POS_SEQ_OP 58 |
109 | |
110 | /* Classified internal priority for resourcemgt, tagging etc */ |
111 | #define IFH_POS_IPV 55 |
112 | |
113 | /* Frame is for AFI use */ |
114 | #define IFH_POS_AFI 54 |
115 | |
116 | /* Internal aging value (*) */ |
117 | #define IFH_POS_AGED 52 |
118 | |
119 | /* RTP Identifier */ |
120 | #define IFH_POS_RTP_ID 42 |
121 | |
122 | /* RTP MRPD flow */ |
123 | #define IFH_POS_RTP_SUBID 41 |
124 | |
125 | /* Profinet DataStatus or opcua GroupVersion MSB */ |
126 | #define IFH_POS_PN_DATA_STATUS 33 |
127 | |
128 | /* Profinet transfer status (1 iff the status is 0) */ |
129 | #define IFH_POS_PN_TRANSF_STATUS_ZERO 32 |
130 | |
131 | /* Profinet cycle counter or opcua NetworkMessageNumber */ |
132 | #define IFH_POS_PN_CC 16 |
133 | |
134 | #define IFH_WID_TIMESTAMP 32 |
135 | #define IFH_WID_BYPASS 1 |
136 | #define IFH_WID_MASQ 1 |
137 | #define IFH_WID_MASQ_PORT 4 |
138 | #define IFH_WID_LEN 14 |
139 | #define IFH_WID_WRDMODE 2 |
140 | #define IFH_WID_RTAG48 1 |
141 | #define IFH_WID_HAS_RED_TAG 1 |
142 | #define IFH_WID_CUTTHRU 1 |
143 | #define IFH_WID_REW_CMD 10 |
144 | #define IFH_WID_REW_OAM 1 |
145 | #define IFH_WID_PDU_TYPE 4 |
146 | #define IFH_WID_FCS_UPD 1 |
147 | #define IFH_WID_DSCP 6 |
148 | #define IFH_WID_DP 1 |
149 | #define IFH_WID_RTE_INB_UPDATE 1 |
150 | #define IFH_WID_POP_CNT 2 |
151 | #define IFH_WID_ETYPE_OFS 2 |
152 | #define IFH_WID_SRCPORT 4 |
153 | #define IFH_WID_SEQ_NUM 16 |
154 | #define IFH_WID_TCI 17 |
155 | #define IFH_WID_QOS_CLASS 3 |
156 | #define IFH_WID_CPUQ 8 |
157 | #define IFH_WID_LEARN_FLAGS 2 |
158 | #define IFH_WID_SFLOW_ID 4 |
159 | #define IFH_WID_ACL_HIT 1 |
160 | #define IFH_WID_ACL_IDX 6 |
161 | #define IFH_WID_ISDX 8 |
162 | #define IFH_WID_DSTS 9 |
163 | #define IFH_WID_FLOOD 2 |
164 | #define IFH_WID_SEQ_OP 2 |
165 | #define IFH_WID_IPV 3 |
166 | #define IFH_WID_AFI 1 |
167 | #define IFH_WID_AGED 2 |
168 | #define IFH_WID_RTP_ID 10 |
169 | #define IFH_WID_RTP_SUBID 1 |
170 | #define IFH_WID_PN_DATA_STATUS 8 |
171 | #define IFH_WID_PN_TRANSF_STATUS_ZERO 1 |
172 | #define IFH_WID_PN_CC 16 |
173 | |
174 | #endif /* __LAN966X_IFH_H__ */ |
175 | |