888 lines · 24.4 KB · YAML
RawDownload
# SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)---name: netdev doc: >-  netdev configuration over generic netlink. definitions:  -    type: const    name: page-size    # Dummy value, codegen needs a number. The real value comes from    # the PAGE_SIZE macro in the header below.    value: 0    header: asm/page.h    scope: kernel  -    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().      -        name: vlan-tag        doc: |          Device is capable of exposing receive packet VLAN tag via          bpf_xdp_metadata_rx_vlan_tag().  -    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: tx-launch-time-fifo        doc: >-          Launch time HW offload is supported by the driver.  -    name: queue-type    type: enum    entries: [rx, tx]  -    name: qstats-scope    type: flags    entries: [queue]  -    name: napi-threaded    type: enum    entries: [disabled, enabled, busy-poll] 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: io-uring-provider-info    attributes:      -        name: rx-buf-len        type: uint        doc: |          RX buffer length in bytes for this io_uring memory provider.          Reflects the rx_buf_len passed at io_uring zerocopy rx          registration time.  -    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 not be reported 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: dmabuf        doc: ID of the dmabuf this page-pool is attached to.        type: u32      -        name: io-uring        doc: io-uring memory provider information.        type: nest        nested-attributes: io-uring-provider-info  -    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: defer-hard-irqs        doc: The number of consecutive empty polls before IRQ deferral ends             and hardware IRQs are re-enabled.        type: u32        checks:          max: s32-max      -        name: gro-flush-timeout        doc: The timeout, in nanoseconds, of when to trigger the NAPI watchdog             timer which schedules NAPI processing. Additionally, a non-zero             value will also prevent GRO from flushing recent super-frames at             the end of a NAPI cycle. This may add receive latency in exchange             for reducing the number of frames processed by the network stack.        type: uint      -        name: irq-suspend-timeout        doc: The timeout, in nanoseconds, of how long to suspend irq             processing, if event polling finds events        type: uint      -        name: threaded        doc: Whether the NAPI is configured to operate in threaded polling             mode. If this is set to enabled then the NAPI context operates             in threaded polling mode. If this is set to busy-poll, then the             threaded polling mode also busy polls.        type: u32        enum: napi-threaded  -    name: xsk-info    attributes: []  -    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.             XDP TX queues allocated in the kernel are not linked to NAPIs and             thus not listed. AF_XDP queues will have more information set in             the xsk attribute.        type: u32        enum: queue-type      -        name: napi-id        doc: ID of the NAPI instance which services this queue.        type: u32      -        name: dmabuf        doc: ID of the dmabuf attached to this queue, if any.        type: u32      -        name: io-uring        doc: io_uring memory provider information.        type: nest        nested-attributes: io-uring-provider-info      -        name: xsk        doc: XSK information for this queue, if any.        type: nest        nested-attributes: xsk-info      -        name: lease        doc: |          A queue from a virtual device can have a lease which refers to          another queue from a physical device. This is useful for memory          providers and AF_XDP operations which take an ifindex and queue id          to allow applications to bind against virtual devices in containers.        type: nest        nested-attributes: lease  -    name: qstats    doc: |      Get device statistics, scoped to a device or a queue.      These statistics extend (and partially duplicate) statistics available      in struct rtnl_link_stats64.      Value of the `scope` attribute determines how statistics are      aggregated. When aggregated for the entire device the statistics      represent the total number of events since last explicit reset of      the device (i.e. not a reconfiguration like changing queue count).      When reported per-queue, however, the statistics may not add      up to the total number of events, will only be reported for currently      active objects, and will likely report the number of events since last      reconfiguration.    attributes:      -        name: ifindex        doc: ifindex of the netdevice to which stats belong.        type: u32        checks:          min: 1      -        name: queue-type        doc: Queue type as rx, tx, for queue-id.        type: u32        enum: queue-type      -        name: queue-id        doc: Queue ID, if stats are scoped to a single queue instance.        type: u32      -        name: scope        doc: |          What object type should be used to iterate over the stats.        type: uint        enum: qstats-scope      -        name: rx-packets        doc: |          Number of wire packets successfully received and passed to the stack.          For drivers supporting XDP, XDP is considered the first layer          of the stack, so packets consumed by XDP are still counted here.        type: uint        value: 8  # reserve some attr ids in case we need more metadata later      -        name: rx-bytes        doc: Successfully received bytes, see `rx-packets`.        type: uint      -        name: tx-packets        doc: |          Number of wire packets successfully sent. Packet is considered to be          successfully sent once it is in device memory (usually this means          the device has issued a DMA completion for the packet).        type: uint      -        name: tx-bytes        doc: Successfully sent bytes, see `tx-packets`.        type: uint      -        name: rx-alloc-fail        doc: |          Number of times skb or buffer allocation failed on the Rx datapath.          Allocation failure may, or may not result in a packet drop, depending          on driver implementation and whether system recovers quickly.        type: uint      -        name: rx-hw-drops        doc: |          Number of all packets which entered the device, but never left it,          including but not limited to: packets dropped due to lack of buffer          space, processing errors, explicit or implicit policies and packet          filters.        type: uint      -        name: rx-hw-drop-overruns        doc: |          Number of packets dropped due to transient lack of resources, such as          buffer space, host descriptors etc.        type: uint      -        name: rx-csum-complete        doc: Number of packets that were marked as CHECKSUM_COMPLETE.        type: uint      -        name: rx-csum-unnecessary        doc: Number of packets that were marked as CHECKSUM_UNNECESSARY.        type: uint      -        name: rx-csum-none        doc: Number of packets that were not checksummed by device.        type: uint      -        name: rx-csum-bad        doc: |          Number of packets with bad checksum. The packets are not discarded,          but still delivered to the stack.        type: uint      -        name: rx-hw-gro-packets        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.        type: uint      -        name: rx-hw-gro-bytes        doc: See `rx-hw-gro-packets`.        type: uint      -        name: rx-hw-gro-wire-packets        doc: |          Number of packets that were coalesced to bigger packetss with the          HW-GRO netdevice feature. LRO-coalesced packets are not counted.        type: uint      -        name: rx-hw-gro-wire-bytes        doc: See `rx-hw-gro-wire-packets`.        type: uint      -        name: rx-hw-drop-ratelimits        doc: |          Number of the packets dropped by the device due to the received          packets bitrate exceeding the device rate limit.        type: uint      -        name: tx-hw-drops        doc: |          Number of packets that arrived at the device but never left it,          encompassing packets dropped for reasons such as processing errors, as          well as those affected by explicitly defined policies and packet          filtering criteria.        type: uint      -        name: tx-hw-drop-errors

Lines 1–500 of 888.