drivers/net/ethernet/intel/ice/ice_tc_lib.h
Source file repositories/reference/linux-study-clean/drivers/net/ethernet/intel/ice/ice_tc_lib.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/ethernet/intel/ice/ice_tc_lib.h- Extension
.h- Size
- 6687 bytes
- Lines
- 234
- 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.
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/bits.hnet/pfcp.h
Detected Declarations
struct ice_indr_block_privstruct ice_tc_flower_actionstruct ice_tc_vlan_hdrstruct ice_tc_pppoe_hdrstruct ice_tc_l2_hdrstruct ice_tc_l3_hdrstruct ice_tc_l2tpv3_hdrstruct ice_tc_l4_hdrstruct ice_tc_flower_lyr_2_4_hdrsstruct ice_tc_flower_fltrenum ice_eswitch_fltr_directionfunction VSI_CHNLfunction ice_chnl_dmac_fltr_cntfunction ice_is_forward_action
Annotated Snippet
struct ice_indr_block_priv {
struct net_device *netdev;
struct ice_netdev_priv *np;
struct list_head list;
};
struct ice_tc_flower_action {
/* forward action specific params */
union {
struct {
u32 tc_class; /* forward to hw_tc */
u32 rsvd;
} tc;
struct {
u16 queue; /* forward to queue */
/* To add filter in HW, absolute queue number in global
* space of queues (between 0...N) is needed
*/
u16 hw_queue;
} q;
} fwd;
enum ice_sw_fwd_act_type fltr_act;
};
struct ice_tc_vlan_hdr {
__be16 vlan_id; /* Only last 12 bits valid */
__be16 vlan_prio; /* Only last 3 bits valid (valid values: 0..7) */
__be16 vlan_tpid;
};
struct ice_tc_pppoe_hdr {
__be16 session_id;
__be16 ppp_proto;
};
struct ice_tc_l2_hdr {
u8 dst_mac[ETH_ALEN];
u8 src_mac[ETH_ALEN];
__be16 n_proto; /* Ethernet Protocol */
};
struct ice_tc_l3_hdr {
u8 ip_proto; /* IPPROTO value */
union {
struct {
struct in_addr dst_ip;
struct in_addr src_ip;
} v4;
struct {
struct in6_addr dst_ip6;
struct in6_addr src_ip6;
} v6;
} ip;
#define dst_ipv6 ip.v6.dst_ip6.s6_addr32
#define dst_ipv6_addr ip.v6.dst_ip6.s6_addr
#define src_ipv6 ip.v6.src_ip6.s6_addr32
#define src_ipv6_addr ip.v6.src_ip6.s6_addr
#define dst_ipv4 ip.v4.dst_ip.s_addr
#define src_ipv4 ip.v4.src_ip.s_addr
u8 tos;
u8 ttl;
};
struct ice_tc_l2tpv3_hdr {
__be32 session_id;
};
struct ice_tc_l4_hdr {
__be16 dst_port;
__be16 src_port;
};
struct ice_tc_flower_lyr_2_4_hdrs {
/* L2 layer fields with their mask */
struct ice_tc_l2_hdr l2_key;
struct ice_tc_l2_hdr l2_mask;
struct ice_tc_vlan_hdr vlan_hdr;
struct ice_tc_vlan_hdr cvlan_hdr;
struct ice_tc_pppoe_hdr pppoe_hdr;
struct ice_tc_l2tpv3_hdr l2tpv3_hdr;
/* L3 (IPv4[6]) layer fields with their mask */
struct ice_tc_l3_hdr l3_key;
struct ice_tc_l3_hdr l3_mask;
/* L4 layer fields with their mask */
struct ice_tc_l4_hdr l4_key;
struct ice_tc_l4_hdr l4_mask;
};
Annotation
- Immediate include surface: `linux/bits.h`, `net/pfcp.h`.
- Detected declarations: `struct ice_indr_block_priv`, `struct ice_tc_flower_action`, `struct ice_tc_vlan_hdr`, `struct ice_tc_pppoe_hdr`, `struct ice_tc_l2_hdr`, `struct ice_tc_l3_hdr`, `struct ice_tc_l2tpv3_hdr`, `struct ice_tc_l4_hdr`, `struct ice_tc_flower_lyr_2_4_hdrs`, `struct ice_tc_flower_fltr`.
- Atlas domain: Driver Families / drivers/net.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.