include/trace/events/mptcp.h
Source file repositories/reference/linux-study-clean/include/trace/events/mptcp.h
File Facts
- System
- Linux kernel
- Corpus path
include/trace/events/mptcp.h- Extension
.h- Size
- 7145 bytes
- Lines
- 265
- Domain
- Repository Root And Misc
- Bucket
- include
- Inferred role
- Repository Root And Misc: implementation source
- Status
- source implementation candidate
Why This File Exists
Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Top-level or miscellaneous repository surface. Use this as map coverage unless a later manual pass promotes the file into a deeper subsystem dossier.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/ipv6.hlinux/tcp.hlinux/tracepoint.hnet/ipv6.hnet/tcp.hlinux/sock_diag.hnet/rstreason.htrace/events/net_probe_common.htrace/define_trace.h
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
if (ssk && sk_fullsock(ssk)) {
__entry->snd_wnd = tcp_sk(ssk)->snd_wnd;
__entry->pace = READ_ONCE(ssk->sk_pacing_rate);
} else {
__entry->snd_wnd = 0;
__entry->pace = 0;
}
if (ssk && sk_fullsock(ssk) && __entry->pace)
__entry->ratio = div_u64((u64)ssk->sk_wmem_queued << 32, __entry->pace);
else
__entry->ratio = 0;
),
TP_printk("active=%d free=%d snd_wnd=%u pace=%u backup=%u ratio=%llu",
__entry->active, __entry->free,
__entry->snd_wnd, __entry->pace,
__entry->backup, __entry->ratio)
);
DECLARE_EVENT_CLASS(mptcp_dump_mpext,
TP_PROTO(struct mptcp_ext *mpext),
TP_ARGS(mpext),
TP_STRUCT__entry(
__field(u64, data_ack)
__field(u64, data_seq)
__field(u32, subflow_seq)
__field(u16, data_len)
__field(u16, csum)
__field(u8, use_map)
__field(u8, dsn64)
__field(u8, data_fin)
__field(u8, use_ack)
__field(u8, ack64)
__field(u8, mpc_map)
__field(u8, frozen)
__field(u8, reset_transient)
__field(u8, reset_reason)
__field(u8, csum_reqd)
__field(u8, infinite_map)
),
TP_fast_assign(
__entry->data_ack = mpext->ack64 ? mpext->data_ack : mpext->data_ack32;
__entry->data_seq = mpext->data_seq;
__entry->subflow_seq = mpext->subflow_seq;
__entry->data_len = mpext->data_len;
__entry->csum = (__force u16)mpext->csum;
__entry->use_map = mpext->use_map;
__entry->dsn64 = mpext->dsn64;
__entry->data_fin = mpext->data_fin;
__entry->use_ack = mpext->use_ack;
__entry->ack64 = mpext->ack64;
__entry->mpc_map = mpext->mpc_map;
__entry->frozen = mpext->frozen;
__entry->reset_transient = mpext->reset_transient;
__entry->reset_reason = mpext->reset_reason;
__entry->csum_reqd = mpext->csum_reqd;
__entry->infinite_map = mpext->infinite_map;
),
TP_printk("data_ack=%llu data_seq=%llu subflow_seq=%u data_len=%u csum=%x use_map=%u dsn64=%u data_fin=%u use_ack=%u ack64=%u mpc_map=%u frozen=%u reset_transient=%u reset_reason=%u csum_reqd=%u infinite_map=%u",
__entry->data_ack, __entry->data_seq,
__entry->subflow_seq, __entry->data_len,
__entry->csum, __entry->use_map,
__entry->dsn64, __entry->data_fin,
__entry->use_ack, __entry->ack64,
__entry->mpc_map, __entry->frozen,
__entry->reset_transient, __entry->reset_reason,
__entry->csum_reqd, __entry->infinite_map)
);
DEFINE_EVENT(mptcp_dump_mpext, mptcp_sendmsg_frag,
TP_PROTO(struct mptcp_ext *mpext),
TP_ARGS(mpext));
DEFINE_EVENT(mptcp_dump_mpext, get_mapping_status,
TP_PROTO(struct mptcp_ext *mpext),
TP_ARGS(mpext));
TRACE_EVENT(ack_update_msk,
TP_PROTO(u64 data_ack, u64 old_snd_una,
u64 new_snd_una, u64 new_wnd_end,
u64 msk_wnd_end),
TP_ARGS(data_ack, old_snd_una,
Annotation
- Immediate include surface: `linux/ipv6.h`, `linux/tcp.h`, `linux/tracepoint.h`, `net/ipv6.h`, `net/tcp.h`, `linux/sock_diag.h`, `net/rstreason.h`, `trace/events/net_probe_common.h`.
- Atlas domain: Repository Root And Misc / include.
- 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.