net/ipv4/fou_core.c
Source file repositories/reference/linux-study-clean/net/ipv4/fou_core.c
File Facts
- System
- Linux kernel
- Corpus path
net/ipv4/fou_core.c- Extension
.c- Size
- 27324 bytes
- Lines
- 1281
- Domain
- Networking Core
- Bucket
- Sockets, Protocols, Packet Path, And Network Policy
- Inferred role
- Networking Core: exported/initcall integration point
- Status
- integration 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.
- Exports symbols or registers init work; inspect boot/module ordering and who consumes the exported contract.
- Uses kernel synchronization; read lock ordering, sleepability, and interrupt context assumptions before translating.
- Allocates kernel memory; connect allocation flags and lifetime to context constraints.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/module.hlinux/errno.hlinux/socket.hlinux/skbuff.hlinux/ip.hlinux/icmp.hlinux/udp.hlinux/types.hlinux/kernel.hnet/genetlink.hnet/gro.hnet/gue.hnet/fou.hnet/ip.hnet/protocol.hnet/udp.hnet/udp_tunnel.huapi/linux/fou.huapi/linux/genetlink.hfou_nl.h
Detected Declarations
struct foustruct fou_cfgstruct fou_netfunction fou_recv_pullfunction fou_udp_recvfunction gue_control_messagefunction gue_udp_recvfunction fou_gro_completefunction list_for_each_entryfunction gue_gro_completefunction fou_cfg_cmpfunction fou_add_to_port_listfunction fou_releasefunction fou_createfunction fou_destroyfunction parse_nl_configfunction fou_nl_add_doitfunction fou_nl_del_doitfunction fou_fill_infofunction fou_dump_infofunction fou_nl_get_doitfunction fou_nl_get_dumpitfunction fou_encap_hlenfunction gue_encap_hlenfunction __fou_build_headerfunction __gue_build_headerfunction fou_build_udpfunction fou_build_headerfunction gue_build_headerfunction gue_err_proto_handlerfunction gue_errfunction ip_tunnel_encap_add_fou_opsfunction ip_tunnel_encap_del_fou_opsfunction ip_tunnel_encap_add_fou_opsfunction ip_tunnel_encap_del_fou_opsfunction fou_exit_netfunction fou_initfunction fou_finimodule init fou_initexport fou_encap_hlenexport gue_encap_hlenexport __fou_build_headerexport __gue_build_header
Annotated Snippet
module_init(fou_init);
module_exit(fou_fini);
MODULE_AUTHOR("Tom Herbert <therbert@google.com>");
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Foo over UDP");
Annotation
- Immediate include surface: `linux/module.h`, `linux/errno.h`, `linux/socket.h`, `linux/skbuff.h`, `linux/ip.h`, `linux/icmp.h`, `linux/udp.h`, `linux/types.h`.
- Detected declarations: `struct fou`, `struct fou_cfg`, `struct fou_net`, `function fou_recv_pull`, `function fou_udp_recv`, `function gue_control_message`, `function gue_udp_recv`, `function fou_gro_complete`, `function list_for_each_entry`, `function gue_gro_complete`.
- Atlas domain: Networking Core / Sockets, Protocols, Packet Path, And Network Policy.
- Implementation status: integration implementation candidate.
- Synchronization appears in or near this file; preserve lock ordering, sleepability, and interrupt-context constraints.
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.