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