include/net/tc_act/tc_ct.h
Source file repositories/reference/linux-study-clean/include/net/tc_act/tc_ct.h
File Facts
- System
- Linux kernel
- Corpus path
include/net/tc_act/tc_ct.h- Extension
.h- Size
- 2224 bytes
- Lines
- 96
- Domain
- Networking Core
- Bucket
- Sockets, Protocols, Packet Path, And Network Policy
- Inferred role
- Networking Core: implementation source
- Status
- source implementation candidate
Why This File Exists
Networking stack implementation surface: socket APIs, protocol dispatch, packet flow, routing, filtering, and network namespaces.
- Networking stack implementation surface: socket APIs, protocol dispatch, packet flow, routing, filtering, and network namespaces.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
net/act_api.huapi/linux/tc_act/tc_ct.hnet/netfilter/nf_nat.hnet/netfilter/nf_conntrack_labels.h
Detected Declarations
struct tcf_ct_paramsstruct tcf_ctfunction rcu_dereference_protectedfunction tcf_ct_actionfunction tcf_ct_zonefunction tcf_ct_actionfunction tcf_ct_flow_table_restore_skbfunction tcf_ct_flow_table_restore_skb
Annotated Snippet
struct tcf_ct_params {
struct nf_conntrack_helper *helper;
struct nf_conn *tmpl;
u16 zone;
int action;
u32 mark;
u32 mark_mask;
u32 labels[NF_CT_LABELS_MAX_SIZE / sizeof(u32)];
u32 labels_mask[NF_CT_LABELS_MAX_SIZE / sizeof(u32)];
struct nf_nat_range2 range;
bool ipv4_range;
bool put_labels;
u16 ct_action;
struct rcu_head rcu;
struct tcf_ct_flow_table *ct_ft;
struct nf_flowtable *nf_ft;
};
struct tcf_ct {
struct tc_action common;
struct tcf_ct_params __rcu *params;
};
#define to_ct(a) ((struct tcf_ct *)a)
#define to_ct_params(a) \
((struct tcf_ct_params *) \
rcu_dereference_protected(to_ct(a)->params, \
lockdep_is_held(&a->tcfa_lock)))
static inline uint16_t tcf_ct_zone(const struct tc_action *a)
{
return to_ct_params(a)->zone;
}
static inline int tcf_ct_action(const struct tc_action *a)
{
return to_ct_params(a)->ct_action;
}
static inline struct nf_flowtable *tcf_ct_ft(const struct tc_action *a)
{
return to_ct_params(a)->nf_ft;
}
static inline struct nf_conntrack_helper *tcf_ct_helper(const struct tc_action *a)
{
return to_ct_params(a)->helper;
}
#else
static inline uint16_t tcf_ct_zone(const struct tc_action *a) { return 0; }
static inline int tcf_ct_action(const struct tc_action *a) { return 0; }
static inline struct nf_flowtable *tcf_ct_ft(const struct tc_action *a)
{
return NULL;
}
static inline struct nf_conntrack_helper *tcf_ct_helper(const struct tc_action *a)
{
return NULL;
}
#endif /* CONFIG_NF_CONNTRACK */
#if IS_ENABLED(CONFIG_NET_ACT_CT)
static inline void
tcf_ct_flow_table_restore_skb(struct sk_buff *skb, unsigned long cookie)
{
enum ip_conntrack_info ctinfo = cookie & NFCT_INFOMASK;
struct nf_conn *ct;
ct = (struct nf_conn *)(cookie & NFCT_PTRMASK);
nf_conntrack_get(&ct->ct_general);
nf_ct_set(skb, ct, ctinfo);
}
#else
static inline void
tcf_ct_flow_table_restore_skb(struct sk_buff *skb, unsigned long cookie) { }
#endif
#endif /* __NET_TC_CT_H */
Annotation
- Immediate include surface: `net/act_api.h`, `uapi/linux/tc_act/tc_ct.h`, `net/netfilter/nf_nat.h`, `net/netfilter/nf_conntrack_labels.h`.
- Detected declarations: `struct tcf_ct_params`, `struct tcf_ct`, `function rcu_dereference_protected`, `function tcf_ct_action`, `function tcf_ct_zone`, `function tcf_ct_action`, `function tcf_ct_flow_table_restore_skb`, `function tcf_ct_flow_table_restore_skb`.
- Atlas domain: Networking Core / Sockets, Protocols, Packet Path, And Network Policy.
- 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.