The Linux Kernel

6.4.0

Quick search

Contents

  • A guide to the Kernel Development Process
  • Submitting patches: the essential guide to getting your code into the kernel
  • Code of conduct
  • Kernel Maintainer Handbook
  • All development-process docs
  • Core API Documentation
  • Driver implementer’s API guide
  • Kernel subsystem documentation
    • Driver implementer’s API guide
    • Core API Documentation
    • Locking
    • Accounting
    • Block
    • CD-ROM
    • CPUFreq - CPU frequency and voltage scaling code in the Linux(TM) kernel
    • Frame Buffer
    • FPGA
    • Human Interface Devices (HID)
    • I2C/SMBus Subsystem
    • Industrial I/O
    • ISDN
    • InfiniBand
    • LEDs
    • NetLabel
    • Networking
      • 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
      • IEEE 802.15.4 Developer’s Guide
      • 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
      • 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
      • ARCnet
      • ATM
      • AX.25
      • Linux Ethernet Bonding Driver HOWTO
      • cdc_mbim - Driver for CDC MBIM Mobile Broadband modems
      • DCCP protocol
      • DCTCP (DataCenter 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
      • Generic networking statistics for netlink users
      • The Linux kernel GTP tunneling module
      • Identifier Locator Addressing (ILA)
      • IOAM6 Sysfs variables
      • AppleTalk-IP Decapsulation and AppleTalk-IP Encapsulation
      • 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
      • MPTCP Sysfs variables
      • HOWTO for multiqueue network device support
      • 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 vSwitch datapath developer documentation
      • Operational States
      • Packet MMAP
      • Linux Phonet protocol family
      • 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
      • 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
      • Interface statistics
      • Stream Parser (strparser)
      • Ethernet switch device driver model (switchdev)
      • Sysfs tagging
      • TC Actions - Environmental Rules
      • TC queue based filtering
      • 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
    • PCMCIA
    • Power Management
    • TCM Virtual Device
    • Timers
    • Serial Peripheral Interface (SPI)
    • 1-Wire Subsystem
    • Watchdog Support
    • Virtualization Support
    • Input Documentation
    • Hardware Monitoring
    • GPU Driver Developer’s Guide
    • Compute Accelerators
    • Security Documentation
    • Sound Subsystem Documentation
    • Crypto API
    • Filesystems in the Linux kernel
    • Memory Management Documentation
    • BPF Documentation
    • USB support
    • PCI Bus Subsystem
    • SCSI Subsystem
    • Assorted Miscellaneous Devices Documentation
    • Scheduler
    • MHI
    • PECI Subsystem
  • Locking in the kernel
  • Linux kernel licensing rules
  • How to write kernel documentation
  • Development tools for the kernel
  • Kernel Testing Guide
  • Kernel Hacking Guides
  • Linux Tracing Technologies
  • fault-injection
  • Kernel Livepatching
  • Rust
  • The Linux kernel user’s and administrator’s guide
  • The kernel build system
  • Reporting issues
  • User-space tools
  • The Linux kernel user-space API guide
  • The Linux kernel firmware guide
  • Open Firmware and Devicetree
  • CPU Architectures
  • Unsorted Documentation
  • Reliability, Availability and Serviceability (RAS) features
  • Translations

This Page

  • Show Source

Family netdev netlink specification¶

Contents

  • Family netdev netlink specification

    • Summary

    • Operations

      • dev-get

      • dev-add-ntf

      • dev-del-ntf

      • dev-change-ntf

      • page-pool-get

      • page-pool-add-ntf

      • page-pool-del-ntf

      • page-pool-change-ntf

      • page-pool-stats-get

      • queue-get

      • napi-get

      • qstats-get

    • Multicast groups

    • Definitions

      • xdp-act

      • xdp-rx-metadata

      • xsk-flags

      • queue-type

      • qstats-scope

    • Attribute sets

      • dev

      • page-pool

      • page-pool-info

      • page-pool-stats

      • napi

      • queue

      • qstats

Summary¶

netdev configuration over generic netlink.

Operations¶

dev-get¶

Get / dump information about a netdev.

attribute-set

dev

do
request
attributes

[ifindex]

reply
attributes

[ifindex, xdp-features, xdp-zc-max-segs, xdp-rx-metadata-features, xsk-features]

dump
reply
attributes

[ifindex, xdp-features, xdp-zc-max-segs, xdp-rx-metadata-features, xsk-features]

dev-add-ntf¶

Notification about device appearing.

notify

dev-get

mcgrp

mgmt

dev-del-ntf¶

Notification about device disappearing.

notify

dev-get

mcgrp

mgmt

dev-change-ntf¶

Notification about device configuration being changed.

notify

dev-get

mcgrp

mgmt

page-pool-get¶

Get / dump information about Page Pools.(Only Page Pools associated with a net_device can be listed.)

attribute-set

page-pool

config-cond

page-pool

do
request
attributes

[id]

reply
attributes

[id, ifindex, napi-id, inflight, inflight-mem, detach-time]

dump
reply
attributes

[id, ifindex, napi-id, inflight, inflight-mem, detach-time]

page-pool-add-ntf¶

Notification about page pool appearing.

notify

page-pool-get

mcgrp

page-pool

config-cond

page-pool

page-pool-del-ntf¶

Notification about page pool disappearing.

notify

page-pool-get

mcgrp

page-pool

config-cond

page-pool

page-pool-change-ntf¶

Notification about page pool configuration being changed.

notify

page-pool-get

mcgrp

page-pool

config-cond

page-pool

page-pool-stats-get¶

Get page pool statistics.

attribute-set

page-pool-stats

config-cond

page-pool-stats

do
request
attributes

[info]

reply
attributes

[info, alloc-fast, alloc-slow, alloc-slow-high-order, alloc-empty, alloc-refill, alloc-waive, recycle-cached, recycle-cache-full, recycle-ring, recycle-ring-full, recycle-released-refcnt]

dump
reply
attributes

[info, alloc-fast, alloc-slow, alloc-slow-high-order, alloc-empty, alloc-refill, alloc-waive, recycle-cached, recycle-cache-full, recycle-ring, recycle-ring-full, recycle-released-refcnt]

queue-get¶

Get queue information from the kernel. Only configured queues will be reported (as opposed to all available hardware queues).

attribute-set

queue

do
request
attributes

[ifindex, type, id]

reply
attributes

[id, type, napi-id, ifindex]

dump
request
attributes

[ifindex]

reply
attributes

[id, type, napi-id, ifindex]

napi-get¶

Get information about NAPI instances configured on the system.

attribute-set

napi

do
request
attributes

[id]

reply
attributes

[id, ifindex, irq, pid]

dump
request
attributes

[ifindex]

reply
attributes

[id, ifindex, irq, pid]

qstats-get¶

Get / dump fine grained statistics. Which statistics are reporteddepends on the device and the driver, and whether the driver storessoftware counters per-queue.

attribute-set

qstats

dump
request
attributes

[scope]

reply
attributes

[ifindex, queue-type, queue-id, rx-packets, rx-bytes, tx-packets, tx-bytes]

Multicast groups¶

  • mgmt

  • page-pool

Definitions¶

xdp-act¶

type

flags

entries
basic

XDP features set supported by all drivers (XDP_ABORTED, XDP_DROP, XDP_PASS, XDP_TX)

redirect

The netdev supports XDP_REDIRECT

ndo-xmit

This feature informs if netdev implements ndo_xdp_xmit callback.

xsk-zerocopy

This feature informs if netdev supports AF_XDP in zero copy mode.

hw-offload

This feature informs if netdev supports XDP hw offloading.

rx-sg

This feature informs if netdev implements non-linear XDP buffer support in the driver napi callback.

ndo-xmit-sg

This feature informs if netdev implements non-linear XDP buffer support in ndo_xdp_xmit callback.

xdp-rx-metadata¶

type

flags

entries
timestamp

Device is capable of exposing receive HW timestamp via bpf_xdp_metadata_rx_timestamp().

hash

Device is capable of exposing receive packet hash via bpf_xdp_metadata_rx_hash().

vlan-tag

Device is capable of exposing receive packet VLAN tag via bpf_xdp_metadata_rx_vlan_tag().

xsk-flags¶

type

flags

entries
tx-timestamp

HW timestamping egress packets is supported by the driver.

tx-checksum

L3 checksum HW offload is supported by the driver.

queue-type¶

type

enum

entries
  • rx

  • tx

qstats-scope¶

type

flags

entries
  • queue

Attribute sets¶

dev¶

ifindex (u32)¶

doc

netdev ifindex

pad (pad)¶

xdp-features (u64)¶

doc

Bitmask of enabled xdp-features.

enum

xdp-act

xdp-zc-max-segs (u32)¶

doc

max fragment count supported by ZC driver

xdp-rx-metadata-features (u64)¶

doc

Bitmask of supported XDP receive metadata features. See XDP RX Metadata for more details.

enum

xdp-rx-metadata

xsk-features (u64)¶

doc

Bitmask of enabled AF_XDP features.

enum

xsk-flags

page-pool¶

id (uint)¶

doc

Unique ID of a Page Pool instance.

ifindex (u32)¶

doc

ifindex of the netdev to which the pool belongs.May be reported as 0 if the page pool was allocated for a netdevwhich got destroyed already (page pools may outlast their netdevsbecause they wait for all memory to be returned).

napi-id (uint)¶

doc

Id of NAPI using this Page Pool instance.

inflight (uint)¶

doc

Number of outstanding references to this page pool (allocatedbut yet to be freed pages). Allocated pages may be held insocket receive queues, driver receive ring, page pool recyclingring, the page pool cache, etc.

inflight-mem (uint)¶

doc

Amount of memory held by inflight pages.

detach-time (uint)¶

doc

Seconds in CLOCK_BOOTTIME of when Page Pool was detached bythe driver. Once detached Page Pool can no longer be used toallocate memory.Page Pools wait for all the memory allocated from them to be freedbefore truly disappearing. “Detached” Page Pools cannot be”re-attached”, they are just waiting to disappear.Attribute is absent if Page Pool has not been detached, andcan still be used to allocate new memory.

page-pool-info¶

id¶

ifindex¶

page-pool-stats¶

info (nest)¶

doc

Page pool identifying information.

nested-attributes

page-pool-info

alloc-fast (uint)¶

value

8

alloc-slow (uint)¶

alloc-slow-high-order (uint)¶

alloc-empty (uint)¶

alloc-refill (uint)¶

alloc-waive (uint)¶

recycle-cached (uint)¶

recycle-cache-full (uint)¶

recycle-ring (uint)¶

recycle-ring-full (uint)¶

recycle-released-refcnt (uint)¶

napi¶

ifindex (u32)¶

doc

ifindex of the netdevice to which NAPI instance belongs.

id (u32)¶

doc

ID of the NAPI instance.

irq (u32)¶

doc

The associated interrupt vector number for the napi

pid (u32)¶

doc

PID of the napi thread, if NAPI is configured to operate in threaded mode. If NAPI is not in threaded mode (i.e. uses normal softirq context), the attribute will be absent.

queue¶

id (u32)¶

doc

Queue index; most queue types are indexed like a C array, with indexes starting at 0 and ending at queue count - 1. Queue indexes are scoped to an interface and queue type.

ifindex (u32)¶

doc

ifindex of the netdevice to which the queue belongs.

type (u32)¶

doc

Queue type as rx, tx. Each queue type defines a separate ID space.

enum

queue-type

napi-id (u32)¶

doc

ID of the NAPI instance which services this queue.

qstats¶

ifindex (u32)¶

doc

ifindex of the netdevice to which stats belong.

queue-type (u32)¶

doc

Queue type as rx, tx, for queue-id.

enum

queue-type

queue-id (u32)¶

doc

Queue ID, if stats are scoped to a single queue instance.

scope (uint)¶

doc

What object type should be used to iterate over the stats.

enum

qstats-scope

rx-packets (uint)¶

doc

Number of wire packets successfully received and passed to the stack.For drivers supporting XDP, XDP is considered the first layerof the stack, so packets consumed by XDP are still counted here.

value

8

rx-bytes (uint)¶

doc

Successfully received bytes, see rx-packets.

tx-packets (uint)¶

doc

Number of wire packets successfully sent. Packet is considered to besuccessfully sent once it is in device memory (usually this meansthe device has issued a DMA completion for the packet).

tx-bytes (uint)¶

doc

Successfully sent bytes, see tx-packets.

rx-alloc-fail (uint)¶

doc

Number of times skb or buffer allocation failed on the Rx datapath.Allocation failure may, or may not result in a packet drop, dependingon driver implementation and whether system recovers quickly.

rx-hw-drops (uint)¶

doc

Number of all packets which entered the device, but never left it,including but not limited to: packets dropped due to lack of bufferspace, processing errors, explicit or implicit policies and packetfilters.

rx-hw-drop-overruns (uint)¶

doc

Number of packets dropped due to transient lack of resources, such asbuffer space, host descriptors etc.

rx-csum-complete (uint)¶

doc

Number of packets that were marked as CHECKSUM_COMPLETE.

rx-csum-unnecessary (uint)¶

doc

Number of packets that were marked as CHECKSUM_UNNECESSARY.

rx-csum-none (uint)¶

doc

Number of packets that were not checksummed by device.

rx-csum-bad (uint)¶

doc

Number of packets with bad checksum. The packets are not discarded,but still delivered to the stack.

rx-hw-gro-packets (uint)¶

doc

Number of packets that were coalesced from smaller packets by the device.Counts only packets coalesced with the HW-GRO netdevice feature,LRO-coalesced packets are not counted.

rx-hw-gro-bytes (uint)¶

doc

See rx-hw-gro-packets.

rx-hw-gro-wire-packets (uint)¶

doc

Number of packets that were coalesced to bigger packetss with the HW-GROnetdevice feature. LRO-coalesced packets are not counted.

rx-hw-gro-wire-bytes (uint)¶

doc

See rx-hw-gro-wire-packets.

rx-hw-drop-ratelimits (uint)¶

doc

Number of the packets dropped by the device due to the receivedpackets bitrate exceeding the device rate limit.

tx-hw-drops (uint)¶

doc

Number of packets that arrived at the device but never left it,encompassing packets dropped for reasons such as processing errors, aswell as those affected by explicitly defined policies and packetfiltering criteria.

tx-hw-drop-errors (uint)¶

doc

Number of packets dropped because they were invalid or malformed.

tx-csum-none (uint)¶

doc

Number of packets that did not require the device to calculate thechecksum.

tx-needs-csum (uint)¶

doc

Number of packets that required the device to calculate the checksum.

tx-hw-gso-packets (uint)¶

doc

Number of packets that necessitated segmentation into smaller packetsby the device.

tx-hw-gso-bytes (uint)¶

doc

See tx-hw-gso-packets.

tx-hw-gso-wire-packets (uint)¶

doc

Number of wire-sized packets generated by processing`tx-hw-gso-packets`

tx-hw-gso-wire-bytes (uint)¶

doc

See tx-hw-gso-wire-packets.

tx-hw-drop-ratelimits (uint)¶

doc

Number of the packets dropped by the device due to the transmitpackets bitrate exceeding the device rate limit.

©The kernel development community. | Powered by Sphinx 2.3.1 & Alabaster 0.7.10 | Page source