162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0+ */ 262306a36Sopenharmony_ci 362306a36Sopenharmony_ci#ifndef __LAN966X_IFH_H__ 462306a36Sopenharmony_ci#define __LAN966X_IFH_H__ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci/* Fields with description (*) should just be cleared upon injection 762306a36Sopenharmony_ci * IFH is transmitted MSByte first (Highest bit pos sent as MSB of first byte) 862306a36Sopenharmony_ci */ 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#define IFH_LEN 7 1162306a36Sopenharmony_ci#define IFH_LEN_BYTES (IFH_LEN * sizeof(u32)) 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci/* Timestamp for frame */ 1462306a36Sopenharmony_ci#define IFH_POS_TIMESTAMP 192 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci/* Bypass analyzer with a prefilled IFH */ 1762306a36Sopenharmony_ci#define IFH_POS_BYPASS 191 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci/* Masqueraded injection with masq_port defining logical source port */ 2062306a36Sopenharmony_ci#define IFH_POS_MASQ 190 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci/* Masqueraded port number for injection */ 2362306a36Sopenharmony_ci#define IFH_POS_MASQ_PORT 186 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_ci/* Frame length (*) */ 2662306a36Sopenharmony_ci#define IFH_POS_LEN 178 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci/* Cell filling mode. Full(0),Etype(1), LlctOpt(2), Llct(3) */ 2962306a36Sopenharmony_ci#define IFH_POS_WRDMODE 176 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_ci/* Frame has 16 bits rtag removed compared to line data */ 3262306a36Sopenharmony_ci#define IFH_POS_RTAG48 175 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ci/* Frame has a redundancy tag */ 3562306a36Sopenharmony_ci#define IFH_POS_HAS_RED_TAG 174 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci/* Frame has been cut through forwarded (*) */ 3862306a36Sopenharmony_ci#define IFH_POS_CUTTHRU 173 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci/* Rewriter command */ 4162306a36Sopenharmony_ci#define IFH_POS_REW_CMD 163 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci/* Enable OAM-related rewriting. PDU_TYPE encodes OAM type. */ 4462306a36Sopenharmony_ci#define IFH_POS_REW_OAM 162 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ci/* PDU type. Encoding: (0-NONE, 1-Y1731_CCM, 2-MRP_TST, 3-MRP_ITST, 4-DLR_BCN, 4762306a36Sopenharmony_ci * 5-DLR_ADV, 6-RTE_NULL_INJ, 7-IPV4, 8-IPV6, 9-Y1731_NON_CCM). 4862306a36Sopenharmony_ci */ 4962306a36Sopenharmony_ci#define IFH_POS_PDU_TYPE 158 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci/* Update FCS before transmission */ 5262306a36Sopenharmony_ci#define IFH_POS_FCS_UPD 157 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci/* Classified DSCP value of frame */ 5562306a36Sopenharmony_ci#define IFH_POS_DSCP 151 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci/* Yellow indication */ 5862306a36Sopenharmony_ci#define IFH_POS_DP 150 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ci/* Process in RTE/inbound */ 6162306a36Sopenharmony_ci#define IFH_POS_RTE_INB_UPDATE 149 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ci/* Number of tags to pop from frame */ 6462306a36Sopenharmony_ci#define IFH_POS_POP_CNT 147 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ci/* Number of tags in front of the ethertype */ 6762306a36Sopenharmony_ci#define IFH_POS_ETYPE_OFS 145 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ci/* Logical source port of frame (*) */ 7062306a36Sopenharmony_ci#define IFH_POS_SRCPORT 141 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ci/* Sequence number in redundancy tag */ 7362306a36Sopenharmony_ci#define IFH_POS_SEQ_NUM 120 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci/* Stagd flag and classified TCI of frame (PCP/DEI/VID) */ 7662306a36Sopenharmony_ci#define IFH_POS_TCI 103 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_ci/* Classified internal priority for queuing */ 7962306a36Sopenharmony_ci#define IFH_POS_QOS_CLASS 100 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ci/* Bit mask with eight cpu copy classses */ 8262306a36Sopenharmony_ci#define IFH_POS_CPUQ 92 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ci/* Relearn + learn flags (*) */ 8562306a36Sopenharmony_ci#define IFH_POS_LEARN_FLAGS 90 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci/* SFLOW identifier for frame (0-8: Tx port, 9: Rx sampling, 15: No sampling) */ 8862306a36Sopenharmony_ci#define IFH_POS_SFLOW_ID 86 8962306a36Sopenharmony_ci 9062306a36Sopenharmony_ci/* Set if an ACL/S2 rule was hit (*). 9162306a36Sopenharmony_ci * Super priority: acl_hit=0 and acl_hit(4)=1. 9262306a36Sopenharmony_ci */ 9362306a36Sopenharmony_ci#define IFH_POS_ACL_HIT 85 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_ci/* S2 rule index hit (*) */ 9662306a36Sopenharmony_ci#define IFH_POS_ACL_IDX 79 9762306a36Sopenharmony_ci 9862306a36Sopenharmony_ci/* ISDX as classified by S1 */ 9962306a36Sopenharmony_ci#define IFH_POS_ISDX 71 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_ci/* Destination ports for frame */ 10262306a36Sopenharmony_ci#define IFH_POS_DSTS 62 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_ci/* Storm policer to be applied: None/Uni/Multi/Broad (*) */ 10562306a36Sopenharmony_ci#define IFH_POS_FLOOD 60 10662306a36Sopenharmony_ci 10762306a36Sopenharmony_ci/* Redundancy tag operation */ 10862306a36Sopenharmony_ci#define IFH_POS_SEQ_OP 58 10962306a36Sopenharmony_ci 11062306a36Sopenharmony_ci/* Classified internal priority for resourcemgt, tagging etc */ 11162306a36Sopenharmony_ci#define IFH_POS_IPV 55 11262306a36Sopenharmony_ci 11362306a36Sopenharmony_ci/* Frame is for AFI use */ 11462306a36Sopenharmony_ci#define IFH_POS_AFI 54 11562306a36Sopenharmony_ci 11662306a36Sopenharmony_ci/* Internal aging value (*) */ 11762306a36Sopenharmony_ci#define IFH_POS_AGED 52 11862306a36Sopenharmony_ci 11962306a36Sopenharmony_ci/* RTP Identifier */ 12062306a36Sopenharmony_ci#define IFH_POS_RTP_ID 42 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_ci/* RTP MRPD flow */ 12362306a36Sopenharmony_ci#define IFH_POS_RTP_SUBID 41 12462306a36Sopenharmony_ci 12562306a36Sopenharmony_ci/* Profinet DataStatus or opcua GroupVersion MSB */ 12662306a36Sopenharmony_ci#define IFH_POS_PN_DATA_STATUS 33 12762306a36Sopenharmony_ci 12862306a36Sopenharmony_ci/* Profinet transfer status (1 iff the status is 0) */ 12962306a36Sopenharmony_ci#define IFH_POS_PN_TRANSF_STATUS_ZERO 32 13062306a36Sopenharmony_ci 13162306a36Sopenharmony_ci/* Profinet cycle counter or opcua NetworkMessageNumber */ 13262306a36Sopenharmony_ci#define IFH_POS_PN_CC 16 13362306a36Sopenharmony_ci 13462306a36Sopenharmony_ci#define IFH_WID_TIMESTAMP 32 13562306a36Sopenharmony_ci#define IFH_WID_BYPASS 1 13662306a36Sopenharmony_ci#define IFH_WID_MASQ 1 13762306a36Sopenharmony_ci#define IFH_WID_MASQ_PORT 4 13862306a36Sopenharmony_ci#define IFH_WID_LEN 14 13962306a36Sopenharmony_ci#define IFH_WID_WRDMODE 2 14062306a36Sopenharmony_ci#define IFH_WID_RTAG48 1 14162306a36Sopenharmony_ci#define IFH_WID_HAS_RED_TAG 1 14262306a36Sopenharmony_ci#define IFH_WID_CUTTHRU 1 14362306a36Sopenharmony_ci#define IFH_WID_REW_CMD 10 14462306a36Sopenharmony_ci#define IFH_WID_REW_OAM 1 14562306a36Sopenharmony_ci#define IFH_WID_PDU_TYPE 4 14662306a36Sopenharmony_ci#define IFH_WID_FCS_UPD 1 14762306a36Sopenharmony_ci#define IFH_WID_DSCP 6 14862306a36Sopenharmony_ci#define IFH_WID_DP 1 14962306a36Sopenharmony_ci#define IFH_WID_RTE_INB_UPDATE 1 15062306a36Sopenharmony_ci#define IFH_WID_POP_CNT 2 15162306a36Sopenharmony_ci#define IFH_WID_ETYPE_OFS 2 15262306a36Sopenharmony_ci#define IFH_WID_SRCPORT 4 15362306a36Sopenharmony_ci#define IFH_WID_SEQ_NUM 16 15462306a36Sopenharmony_ci#define IFH_WID_TCI 17 15562306a36Sopenharmony_ci#define IFH_WID_QOS_CLASS 3 15662306a36Sopenharmony_ci#define IFH_WID_CPUQ 8 15762306a36Sopenharmony_ci#define IFH_WID_LEARN_FLAGS 2 15862306a36Sopenharmony_ci#define IFH_WID_SFLOW_ID 4 15962306a36Sopenharmony_ci#define IFH_WID_ACL_HIT 1 16062306a36Sopenharmony_ci#define IFH_WID_ACL_IDX 6 16162306a36Sopenharmony_ci#define IFH_WID_ISDX 8 16262306a36Sopenharmony_ci#define IFH_WID_DSTS 9 16362306a36Sopenharmony_ci#define IFH_WID_FLOOD 2 16462306a36Sopenharmony_ci#define IFH_WID_SEQ_OP 2 16562306a36Sopenharmony_ci#define IFH_WID_IPV 3 16662306a36Sopenharmony_ci#define IFH_WID_AFI 1 16762306a36Sopenharmony_ci#define IFH_WID_AGED 2 16862306a36Sopenharmony_ci#define IFH_WID_RTP_ID 10 16962306a36Sopenharmony_ci#define IFH_WID_RTP_SUBID 1 17062306a36Sopenharmony_ci#define IFH_WID_PN_DATA_STATUS 8 17162306a36Sopenharmony_ci#define IFH_WID_PN_TRANSF_STATUS_ZERO 1 17262306a36Sopenharmony_ci#define IFH_WID_PN_CC 16 17362306a36Sopenharmony_ci 17462306a36Sopenharmony_ci#endif /* __LAN966X_IFH_H__ */ 175