Networking¶
Refer to Networking subsystem (netdev) for a guide on netdev development process specifics.
Contents:
- AF_XDP
 - Bare UDP Tunnelling Module Documentation
 - batman-adv
 - SocketCAN - Controller Area Network
 - The UCAN Protocol
 - Hardware Device Drivers
 - Distributed Switch Architecture
 - Linux Devlink Documentation
 - CAIF
 - Netlink interface for ethtool
- Basic information
 - Conventions
 - Request header
 - Bit sets
 - List of message types
 - STRSET_GET
 - LINKINFO_GET
 - LINKINFO_SET
 - LINKMODES_GET
 - LINKMODES_SET
 - LINKSTATE_GET
 - DEBUG_GET
 - DEBUG_SET
 - WOL_GET
 - WOL_SET
 - FEATURES_GET
 - FEATURES_SET
 - PRIVFLAGS_GET
 - PRIVFLAGS_SET
 - RINGS_GET
 - RINGS_SET
 - CHANNELS_GET
 - CHANNELS_SET
 - COALESCE_GET
 - COALESCE_SET
 - PAUSE_GET
 - PAUSE_SET
 - EEE_GET
 - EEE_SET
 - TSINFO_GET
 - CABLE_TEST
 - CABLE_TEST TDR
 - TUNNEL_INFO
 - FEC_GET
 - FEC_SET
 - MODULE_EEPROM_GET
 - STATS_GET
 - PHC_VCLOCKS_GET
 - MODULE_GET
 - MODULE_SET
 - PSE_GET
 - PSE_SET
 - RSS_GET
 - PLCA_GET_CFG
 - PLCA_SET_CFG
 - PLCA_GET_STATUS
 - MM_GET
 - MM_SET
 - MODULE_FW_FLASH_ACT
 - PHY_GET
 - Request translation
 
 - IEEE 802.15.4 Developer’s Guide
 - ISO 15765-2 (ISO-TP)
 - J1939 Documentation
 - Linux Networking and Network Devices APIs
 - MSG_ZEROCOPY
 - FAILOVER
 - Net DIM - Generic Network Dynamic Interrupt Moderation
 - NET_FAILOVER
 - Page Pool API
 - PHY Abstraction Layer
 - phylink
 - IP-Aliasing
 - Ethernet Bridging
 - SNMP counter
- General IPv4 counters
 - ICMP counters
 - General TCP counters
 - TCP Fast Open
 - TCP Fast Path
 - TCP abort
 - TCP Hybrid Slow Start
 - TCP retransmission and congestion control
 - DSACK
 - invalid SACK and DSACK
 - SACK shift
 - TCP out of order
 - TCP PAWS
 - TCP ACK skip
 - TCP receive window
 - Delayed ACK
 - Tail Loss Probe (TLP)
 - TCP Fast Open description
 - SYN cookies
 - Challenge ACK
 - prune
 - examples
 
 - Checksum Offloads
 - Segmentation Offloads
 - Scaling in the Linux Networking Stack
 - Kernel TLS
 - Kernel TLS offload
 - In-Kernel TLS Handshake
 - Linux NFC subsystem
 - Netdev private dataroom for 6lowpan interfaces
 - 6pack Protocol
 - ARCnet Hardware
- Introduction to ARCnet
 - Cabling ARCnet Networks
 - Setting the Jumpers
 - Unclassified Stuff
 - Standard Microsystems Corp (SMC)
 - Possibly SMC
 - PureData Corp
 - CNet Technology Inc. (8-bit cards)
 - CNet Technology Inc. (16-bit cards)
 - Lantech
 - Acer
 - Datapoint?
 - Topware
 - Thomas-Conrad
 - Waterloo Microsystems Inc. ??
 - No Name
 - Tiara
 - Other Cards
 
 - ARCnet
 - ATM
 - AX.25
 - Linux Ethernet Bonding Driver HOWTO
- Introduction
 - 1. Bonding Driver Installation
 - 2. Bonding Driver Options
 - 3. Configuring Bonding Devices
 - 4 Querying Bonding Configuration
 - 5. Switch Configuration
 - 6. 802.1q VLAN Support
 - 7. Link Monitoring
 - 8. Potential Sources of Trouble
 - 9. SNMP agents
 - 10. Promiscuous mode
 - 11. Configuring Bonding for High Availability
 - 12. Configuring Bonding for Maximum Throughput
 - 13. Switch Behavior Issues
 - 14. Hardware Specific Considerations
 - 15. Frequently Asked Questions
 - 16. Resources and Links
 
 - cdc_mbim - Driver for CDC MBIM Mobile Broadband modems
 - DCCP protocol
 - DCTCP (DataCenter TCP)
 - Device Memory TCP
 - DNS Resolver Module
 - Softnet Driver Issues
 - EQL Driver: Serial IP Load Balancing HOWTO
 - LC-trie implementation notes
 - Linux Socket Filtering aka Berkeley Packet Filter (BPF)
 - Generic HDLC layer
 - Generic Netlink
 - Netlink Family Specifications
- Family 
devlinknetlink specification - Family 
dpllnetlink specification - Family 
ethtoolnetlink specification - Family 
founetlink specification - Family 
handshakenetlink specification - Family 
mptcp_pmnetlink specification - Family 
netdevnetlink specification - Family 
nfsdnetlink specification - Family 
nftablesnetlink specification - Family 
nlctrlnetlink specification - Family 
ovs_datapathnetlink specification - Family 
ovs_flownetlink specification - Family 
ovs_vportnetlink specification - Family 
rt-addrnetlink specification - Family 
rt-linknetlink specification - Family 
rt-routenetlink specification - Family 
tcnetlink specification - Family 
tcp_metricsnetlink specification - Family 
teamnetlink specification 
 - Family 
 - Generic networking statistics for netlink users
 - The Linux kernel GTP tunneling module
 - Identifier Locator Addressing (ILA)
 - IOAM6 Sysfs variables
 - IP dynamic address hack-port v0.03
 - IPsec
 - IP Sysctl
 - IPv6
 - IPVLAN Driver HOWTO
 - IPvs-sysctl
 - Kernel Connection Multiplexor
 - L2TP
 - The Linux LAPB Module Interface
 - How to use packet injection with mac80211
 - Management Component Transport Protocol (MCTP)
 - MPLS Sysfs variables
 - Multipath TCP (MPTCP)
 - MPTCP Sysfs variables
 - HOWTO for multiqueue network device support
 - Multi-PF Netdev
 - NAPI
 - Common Networking Struct Cachelines
 - Netconsole
 - Netdev features mess and how to get out from it alive
 - Network Devices, the Kernel, and You!
 - Netfilter Sysfs variables
 - NETIF Msg Level
 - Resilient Next-hop Groups
 - Netfilter Conntrack Sysfs variables
 - Netfilter’s flowtable infrastructure
 - OPEN Alliance 10BASE-T1x MAC-PHY Serial Interface (TC6) Framework Support
 - Open vSwitch datapath developer documentation
 - Operational States
 - Packet MMAP
- Abstract
 - Why use PACKET_MMAP
 - How to use mmap() to improve capture process
 - How to use mmap() directly to improve capture process
 - How to use mmap() directly to improve transmission process
 - PACKET_MMAP settings
 - PACKET_MMAP setting constraints
 - PACKET_MMAP buffer size calculator
 - What TPACKET versions are available and when to use them?
 - AF_PACKET fanout mode
 - AF_PACKET TPACKET_V3 example
 - PACKET_QDISC_BYPASS
 - PACKET_TIMESTAMP
 - Miscellaneous bits
 - THANKS
 
 - Linux Phonet protocol family
 - PHY link topology
 - HOWTO for the linux packet generator
 - PLIP: The Parallel Line Internet Protocol Device
 - PPP Generic Driver and Channel Interface
 - The proc/net/tcp and proc/net/tcp6 variables
 - Power Sourcing Equipment (PSE) Documentation
 - How to use radiotap headers
 - RDS
 - Linux wireless regulatory documentation
- Keeping regulatory domains in userspace
 - How to get regulatory domains to the kernel
 - How to get regulatory domains to the kernel (old CRDA solution)
 - Who asks for regulatory domains?
 - Example code - drivers hinting an alpha2:
 - Example code - drivers providing a built in regulatory domain:
 - Statically compiled regulatory database
 
 - Network Function Representors
 - RxRPC Network Protocol
 - SOCKET OPTIONS
 - SECURITY
 - EXAMPLE CLIENT USAGE
 - Linux Kernel SCTP
 - LSM/SeLinux secid
 - Seg6 Sysfs variables
 - struct sk_buff
 - SMC Sysctl
 - NIC SR-IOV APIs
 - Interface statistics
 - Stream Parser (strparser)
 - Ethernet switch device driver model (switchdev)
 - Sysfs tagging
 - TC Actions - Environmental Rules
 - TC queue based filtering
 - TCP Authentication Option Linux implementation (RFC5925)
 - Thin-streams and TCP
 - Team
 - Timestamping
 - Linux Kernel TIPC
 - Transparent proxy support
 - Universal TUN/TAP device driver
 - The UDP-Lite protocol (RFC 3828)
 - Virtual Routing and Forwarding (VRF)
 - Virtual eXtensible Local Area Networking documentation
 - Linux X.25 Project
 - X.25 Device Driver Interface
 - XFRM device - offloading the IPsec computations
 - XFRM proc - /proc/net/xfrm_* files
 - XFRM
 - XFRM Syscall
 - XDP RX Metadata
 - AF_XDP TX Metadata