drivers/net/ethernet/freescale/dpaa2/dpkg.h

Source file repositories/reference/linux-study-clean/drivers/net/ethernet/freescale/dpaa2/dpkg.h

File Facts

System
Linux kernel
Corpus path
drivers/net/ethernet/freescale/dpaa2/dpkg.h
Extension
.h
Size
14375 bytes
Lines
482
Domain
Driver Families
Bucket
drivers/net
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct dpkg_mask {
	u8 mask;
	u8 offset;
};

/* Protocol fields */

/* Ethernet fields */
#define NH_FLD_ETH_DA				BIT(0)
#define NH_FLD_ETH_SA				BIT(1)
#define NH_FLD_ETH_LENGTH			BIT(2)
#define NH_FLD_ETH_TYPE				BIT(3)
#define NH_FLD_ETH_FINAL_CKSUM			BIT(4)
#define NH_FLD_ETH_PADDING			BIT(5)
#define NH_FLD_ETH_ALL_FIELDS			(BIT(6) - 1)

/* VLAN fields */
#define NH_FLD_VLAN_VPRI			BIT(0)
#define NH_FLD_VLAN_CFI				BIT(1)
#define NH_FLD_VLAN_VID				BIT(2)
#define NH_FLD_VLAN_LENGTH			BIT(3)
#define NH_FLD_VLAN_TYPE			BIT(4)
#define NH_FLD_VLAN_ALL_FIELDS			(BIT(5) - 1)

#define NH_FLD_VLAN_TCI				(NH_FLD_VLAN_VPRI | \
						 NH_FLD_VLAN_CFI | \
						 NH_FLD_VLAN_VID)

/* IP (generic) fields */
#define NH_FLD_IP_VER				BIT(0)
#define NH_FLD_IP_DSCP				BIT(2)
#define NH_FLD_IP_ECN				BIT(3)
#define NH_FLD_IP_PROTO				BIT(4)
#define NH_FLD_IP_SRC				BIT(5)
#define NH_FLD_IP_DST				BIT(6)
#define NH_FLD_IP_TOS_TC			BIT(7)
#define NH_FLD_IP_ID				BIT(8)
#define NH_FLD_IP_ALL_FIELDS			(BIT(9) - 1)

/* IPV4 fields */
#define NH_FLD_IPV4_VER				BIT(0)
#define NH_FLD_IPV4_HDR_LEN			BIT(1)
#define NH_FLD_IPV4_TOS				BIT(2)
#define NH_FLD_IPV4_TOTAL_LEN			BIT(3)
#define NH_FLD_IPV4_ID				BIT(4)
#define NH_FLD_IPV4_FLAG_D			BIT(5)
#define NH_FLD_IPV4_FLAG_M			BIT(6)
#define NH_FLD_IPV4_OFFSET			BIT(7)
#define NH_FLD_IPV4_TTL				BIT(8)
#define NH_FLD_IPV4_PROTO			BIT(9)
#define NH_FLD_IPV4_CKSUM			BIT(10)
#define NH_FLD_IPV4_SRC_IP			BIT(11)
#define NH_FLD_IPV4_DST_IP			BIT(12)
#define NH_FLD_IPV4_OPTS			BIT(13)
#define NH_FLD_IPV4_OPTS_COUNT			BIT(14)
#define NH_FLD_IPV4_ALL_FIELDS			(BIT(15) - 1)

/* IPV6 fields */
#define NH_FLD_IPV6_VER				BIT(0)
#define NH_FLD_IPV6_TC				BIT(1)
#define NH_FLD_IPV6_SRC_IP			BIT(2)
#define NH_FLD_IPV6_DST_IP			BIT(3)
#define NH_FLD_IPV6_NEXT_HDR			BIT(4)
#define NH_FLD_IPV6_FL				BIT(5)
#define NH_FLD_IPV6_HOP_LIMIT			BIT(6)
#define NH_FLD_IPV6_ID				BIT(7)
#define NH_FLD_IPV6_ALL_FIELDS			(BIT(8) - 1)

/* ICMP fields */
#define NH_FLD_ICMP_TYPE			BIT(0)
#define NH_FLD_ICMP_CODE			BIT(1)
#define NH_FLD_ICMP_CKSUM			BIT(2)
#define NH_FLD_ICMP_ID				BIT(3)
#define NH_FLD_ICMP_SQ_NUM			BIT(4)
#define NH_FLD_ICMP_ALL_FIELDS			(BIT(5) - 1)

/* IGMP fields */
#define NH_FLD_IGMP_VERSION			BIT(0)
#define NH_FLD_IGMP_TYPE			BIT(1)
#define NH_FLD_IGMP_CKSUM			BIT(2)
#define NH_FLD_IGMP_DATA			BIT(3)
#define NH_FLD_IGMP_ALL_FIELDS			(BIT(4) - 1)

/* TCP fields */
#define NH_FLD_TCP_PORT_SRC			BIT(0)
#define NH_FLD_TCP_PORT_DST			BIT(1)
#define NH_FLD_TCP_SEQ				BIT(2)
#define NH_FLD_TCP_ACK				BIT(3)
#define NH_FLD_TCP_OFFSET			BIT(4)
#define NH_FLD_TCP_FLAGS			BIT(5)

Annotation

Implementation Notes