| # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) |
| |
| name: netdev |
| |
| doc: |
| netdev configuration over generic netlink. |
| |
| definitions: |
| - |
| type: flags |
| name: xdp-act |
| render-max: true |
| entries: |
| - |
| name: basic |
| doc: |
| XDP features set supported by all drivers |
| (XDP_ABORTED, XDP_DROP, XDP_PASS, XDP_TX) |
| - |
| name: redirect |
| doc: |
| The netdev supports XDP_REDIRECT |
| - |
| name: ndo-xmit |
| doc: |
| This feature informs if netdev implements ndo_xdp_xmit callback. |
| - |
| name: xsk-zerocopy |
| doc: |
| This feature informs if netdev supports AF_XDP in zero copy mode. |
| - |
| name: hw-offload |
| doc: |
| This feature informs if netdev supports XDP hw offloading. |
| - |
| name: rx-sg |
| doc: |
| This feature informs if netdev implements non-linear XDP buffer |
| support in the driver napi callback. |
| - |
| name: ndo-xmit-sg |
| doc: |
| This feature informs if netdev implements non-linear XDP buffer |
| support in ndo_xdp_xmit callback. |
| - |
| type: flags |
| name: xdp-rx-metadata |
| entries: |
| - |
| name: timestamp |
| doc: |
| Device is capable of exposing receive HW timestamp via bpf_xdp_metadata_rx_timestamp(). |
| - |
| name: hash |
| doc: |
| Device is capable of exposing receive packet hash via bpf_xdp_metadata_rx_hash(). |
| - |
| type: flags |
| name: xsk-flags |
| entries: |
| - |
| name: tx-timestamp |
| doc: |
| HW timestamping egress packets is supported by the driver. |
| - |
| name: tx-checksum |
| doc: |
| L3 checksum HW offload is supported by the driver. |
| - |
| name: queue-type |
| type: enum |
| entries: [ rx, tx ] |
| |
| attribute-sets: |
| - |
| name: dev |
| attributes: |
| - |
| name: ifindex |
| doc: netdev ifindex |
| type: u32 |
| checks: |
| min: 1 |
| - |
| name: pad |
| type: pad |
| - |
| name: xdp-features |
| doc: Bitmask of enabled xdp-features. |
| type: u64 |
| enum: xdp-act |
| - |
| name: xdp-zc-max-segs |
| doc: max fragment count supported by ZC driver |
| type: u32 |
| checks: |
| min: 1 |
| - |
| name: xdp-rx-metadata-features |
| doc: Bitmask of supported XDP receive metadata features. |
| See Documentation/networking/xdp-rx-metadata.rst for more details. |
| type: u64 |
| enum: xdp-rx-metadata |
| - |
| name: xsk-features |
| doc: Bitmask of enabled AF_XDP features. |
| type: u64 |
| enum: xsk-flags |
| - |
| name: page-pool |
| attributes: |
| - |
| name: id |
| doc: Unique ID of a Page Pool instance. |
| type: uint |
| checks: |
| min: 1 |
| max: u32-max |
| - |
| name: ifindex |
| doc: | |
| ifindex of the netdev to which the pool belongs. |
| May be reported as 0 if the page pool was allocated for a netdev |
| which got destroyed already (page pools may outlast their netdevs |
| because they wait for all memory to be returned). |
| type: u32 |
| checks: |
| min: 1 |
| max: s32-max |
| - |
| name: napi-id |
| doc: Id of NAPI using this Page Pool instance. |
| type: uint |
| checks: |
| min: 1 |
| max: u32-max |
| - |
| name: inflight |
| type: uint |
| doc: | |
| Number of outstanding references to this page pool (allocated |
| but yet to be freed pages). Allocated pages may be held in |
| socket receive queues, driver receive ring, page pool recycling |
| ring, the page pool cache, etc. |
| - |
| name: inflight-mem |
| type: uint |
| doc: | |
| Amount of memory held by inflight pages. |
| - |
| name: detach-time |
| type: uint |
| doc: | |
| Seconds in CLOCK_BOOTTIME of when Page Pool was detached by |
| the driver. Once detached Page Pool can no longer be used to |
| allocate memory. |
| Page Pools wait for all the memory allocated from them to be freed |
| before 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, and |
| can still be used to allocate new memory. |
| - |
| name: page-pool-info |
| subset-of: page-pool |
| attributes: |
| - |
| name: id |
| - |
| name: ifindex |
| - |
| name: page-pool-stats |
| doc: | |
| Page pool statistics, see docs for struct page_pool_stats |
| for information about individual statistics. |
| attributes: |
| - |
| name: info |
| doc: Page pool identifying information. |
| type: nest |
| nested-attributes: page-pool-info |
| - |
| name: alloc-fast |
| type: uint |
| value: 8 # reserve some attr ids in case we need more metadata later |
| - |
| name: alloc-slow |
| type: uint |
| - |
| name: alloc-slow-high-order |
| type: uint |
| - |
| name: alloc-empty |
| type: uint |
| - |
| name: alloc-refill |
| type: uint |
| - |
| name: alloc-waive |
| type: uint |
| - |
| name: recycle-cached |
| type: uint |
| - |
| name: recycle-cache-full |
| type: uint |
| - |
| name: recycle-ring |
| type: uint |
| - |
| name: recycle-ring-full |
| type: uint |
| - |
| name: recycle-released-refcnt |
| type: uint |
| |
| - |
| name: napi |
| attributes: |
| - |
| name: ifindex |
| doc: ifindex of the netdevice to which NAPI instance belongs. |
| type: u32 |
| checks: |
| min: 1 |
| - |
| name: id |
| doc: ID of the NAPI instance. |
| type: u32 |
| - |
| name: irq |
| doc: The associated interrupt vector number for the napi |
| type: u32 |
| - |
| name: pid |
| 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. |
| type: u32 |
| - |
| name: queue |
| attributes: |
| - |
| name: id |
| 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. |
| type: u32 |
| - |
| name: ifindex |
| doc: ifindex of the netdevice to which the queue belongs. |
| type: u32 |
| checks: |
| min: 1 |
| - |
| name: type |
| doc: Queue type as rx, tx. Each queue type defines a separate ID space. |
| type: u32 |
| enum: queue-type |
| - |
| name: napi-id |
| doc: ID of the NAPI instance which services this queue. |
| type: u32 |
| |
| operations: |
| list: |
| - |
| name: dev-get |
| doc: Get / dump information about a netdev. |
| attribute-set: dev |
| do: |
| request: |
| attributes: |
| - ifindex |
| reply: &dev-all |
| attributes: |
| - ifindex |
| - xdp-features |
| - xdp-zc-max-segs |
| - xdp-rx-metadata-features |
| - xsk-features |
| dump: |
| reply: *dev-all |
| - |
| name: dev-add-ntf |
| doc: Notification about device appearing. |
| notify: dev-get |
| mcgrp: mgmt |
| - |
| name: dev-del-ntf |
| doc: Notification about device disappearing. |
| notify: dev-get |
| mcgrp: mgmt |
| - |
| name: dev-change-ntf |
| doc: Notification about device configuration being changed. |
| notify: dev-get |
| mcgrp: mgmt |
| - |
| name: page-pool-get |
| doc: | |
| Get / dump information about Page Pools. |
| (Only Page Pools associated with a net_device can be listed.) |
| attribute-set: page-pool |
| do: |
| request: |
| attributes: |
| - id |
| reply: &pp-reply |
| attributes: |
| - id |
| - ifindex |
| - napi-id |
| - inflight |
| - inflight-mem |
| - detach-time |
| dump: |
| reply: *pp-reply |
| config-cond: page-pool |
| - |
| name: page-pool-add-ntf |
| doc: Notification about page pool appearing. |
| notify: page-pool-get |
| mcgrp: page-pool |
| config-cond: page-pool |
| - |
| name: page-pool-del-ntf |
| doc: Notification about page pool disappearing. |
| notify: page-pool-get |
| mcgrp: page-pool |
| config-cond: page-pool |
| - |
| name: page-pool-change-ntf |
| doc: Notification about page pool configuration being changed. |
| notify: page-pool-get |
| mcgrp: page-pool |
| config-cond: page-pool |
| - |
| name: page-pool-stats-get |
| doc: Get page pool statistics. |
| attribute-set: page-pool-stats |
| do: |
| request: |
| attributes: |
| - info |
| reply: &pp-stats-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: *pp-stats-reply |
| config-cond: page-pool-stats |
| - |
| name: queue-get |
| doc: 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: &queue-get-op |
| attributes: |
| - id |
| - type |
| - napi-id |
| - ifindex |
| dump: |
| request: |
| attributes: |
| - ifindex |
| reply: *queue-get-op |
| - |
| name: napi-get |
| doc: Get information about NAPI instances configured on the system. |
| attribute-set: napi |
| do: |
| request: |
| attributes: |
| - id |
| reply: &napi-get-op |
| attributes: |
| - id |
| - ifindex |
| - irq |
| - pid |
| dump: |
| request: |
| attributes: |
| - ifindex |
| reply: *napi-get-op |
| |
| mcast-groups: |
| list: |
| - |
| name: mgmt |
| - |
| name: page-pool |