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 classes */ 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