Family netdev
netlink specification¶
Contents
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.