Family netdev
netlink specification¶
Contents
Summary¶
netdev configuration over generic netlink.
Operations¶
dev-get¶
Get / dump information about a netdev.
- attribute-set
- 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
- 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
- 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
- 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
- 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
- dump
- request
- attributes
[
ifindex
,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-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
xsk-features (u64
)¶
- doc
Bitmask of enabled AF_XDP features.
- enum
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
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
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-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
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-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.