.. SPDX-License-Identifier: GPL-2.0
.. NOTE: This document was auto-generated.


========================================
Family ``devlink`` netlink specification
========================================


.. contents:: :depth: 3


-------
Summary
-------


Partial family for Devlink.

----------
Operations
----------


.. _devlink-operation-get:

get
===
Get devlink instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict', 'dump']
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``reload-failed``, ``dev-stats``]

:dump:
    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``reload-failed``, ``dev-stats``]



.. _devlink-operation-port-get:

port-get
========
Get devlink port instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:do:
    **pre**
        devlink-nl-pre-doit-port

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``]

:dump:
    **request**
        :attributes: [``bus-name``, ``dev-name``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``]



.. _devlink-operation-port-set:

port-set
========
Set devlink port instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit-port

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``port-type``, ``port-function``]



.. _devlink-operation-port-new:

port-new
========
Create devlink port instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``port-flavour``, ``port-pci-pf-number``, ``port-pci-sf-number``, ``port-controller-number``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``]



.. _devlink-operation-port-del:

port-del
========
Delete devlink port instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit-port

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``]



.. _devlink-operation-port-split:

port-split
==========
Split devlink port instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit-port

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``port-split-count``]



.. _devlink-operation-port-unsplit:

port-unsplit
============
Unplit devlink port instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit-port

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``]



.. _devlink-operation-sb-get:

sb-get
======
Get shared buffer instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``sb-index``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``sb-index``]

:dump:
    **request**
        :attributes: [``bus-name``, ``dev-name``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``sb-index``]



.. _devlink-operation-sb-pool-get:

sb-pool-get
===========
Get shared buffer pool instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``sb-index``, ``sb-pool-index``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``sb-index``, ``sb-pool-index``]

:dump:
    **request**
        :attributes: [``bus-name``, ``dev-name``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``sb-index``, ``sb-pool-index``]



.. _devlink-operation-sb-pool-set:

sb-pool-set
===========
Set shared buffer pool instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``sb-index``, ``sb-pool-index``, ``sb-pool-threshold-type``, ``sb-pool-size``]



.. _devlink-operation-sb-port-pool-get:

sb-port-pool-get
================
Get shared buffer port-pool combinations and threshold.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:do:
    **pre**
        devlink-nl-pre-doit-port

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``sb-index``, ``sb-pool-index``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``sb-index``, ``sb-pool-index``]

:dump:
    **request**
        :attributes: [``bus-name``, ``dev-name``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``sb-index``, ``sb-pool-index``]



.. _devlink-operation-sb-port-pool-set:

sb-port-pool-set
================
Set shared buffer port-pool combinations and threshold.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit-port

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``sb-index``, ``sb-pool-index``, ``sb-threshold``]



.. _devlink-operation-sb-tc-pool-bind-get:

sb-tc-pool-bind-get
===================
Get shared buffer port-TC to pool bindings and threshold.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:do:
    **pre**
        devlink-nl-pre-doit-port

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``sb-index``, ``sb-pool-type``, ``sb-tc-index``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``sb-index``, ``sb-pool-type``, ``sb-tc-index``]

:dump:
    **request**
        :attributes: [``bus-name``, ``dev-name``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``sb-index``, ``sb-pool-type``, ``sb-tc-index``]



.. _devlink-operation-sb-tc-pool-bind-set:

sb-tc-pool-bind-set
===================
Set shared buffer port-TC to pool bindings and threshold.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit-port

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``sb-index``, ``sb-pool-index``, ``sb-pool-type``, ``sb-tc-index``, ``sb-threshold``]



.. _devlink-operation-sb-occ-snapshot:

sb-occ-snapshot
===============
Take occupancy snapshot of shared buffer.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``sb-index``]



.. _devlink-operation-sb-occ-max-clear:

sb-occ-max-clear
================
Clear occupancy watermarks of shared buffer.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``sb-index``]



.. _devlink-operation-eswitch-get:

eswitch-get
===========
Get eswitch attributes.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``eswitch-mode``, ``eswitch-inline-mode``, ``eswitch-encap-mode``]



.. _devlink-operation-eswitch-set:

eswitch-set
===========
Set eswitch attributes.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``eswitch-mode``, ``eswitch-inline-mode``, ``eswitch-encap-mode``]



.. _devlink-operation-dpipe-table-get:

dpipe-table-get
===============
Get dpipe table attributes.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``dpipe-table-name``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``dpipe-tables``]



.. _devlink-operation-dpipe-entries-get:

dpipe-entries-get
=================
Get dpipe entries attributes.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``dpipe-table-name``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``dpipe-entries``]



.. _devlink-operation-dpipe-headers-get:

dpipe-headers-get
=================
Get dpipe headers attributes.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``dpipe-headers``]



.. _devlink-operation-dpipe-table-counters-set:

dpipe-table-counters-set
========================
Set dpipe counter attributes.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``dpipe-table-name``, ``dpipe-table-counters-enabled``]



.. _devlink-operation-resource-set:

resource-set
============
Set resource attributes.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``resource-id``, ``resource-size``]



.. _devlink-operation-resource-dump:

resource-dump
=============
Get resource attributes.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``resource-list``]



.. _devlink-operation-reload:

reload
======
Reload devlink.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit-dev-lock

    **post**
        devlink-nl-post-doit-dev-lock

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``reload-action``, ``reload-limits``, ``netns-pid``, ``netns-fd``, ``netns-id``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``reload-actions-performed``]



.. _devlink-operation-param-get:

param-get
=========
Get param instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``param-name``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``param-name``]

:dump:
    **request**
        :attributes: [``bus-name``, ``dev-name``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``param-name``]



.. _devlink-operation-param-set:

param-set
=========
Set param instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``param-name``, ``param-type``, ``param-value-cmode``]



.. _devlink-operation-region-get:

region-get
==========
Get region instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:do:
    **pre**
        devlink-nl-pre-doit-port-optional

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``region-name``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``region-name``]

:dump:
    **request**
        :attributes: [``bus-name``, ``dev-name``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``region-name``]



.. _devlink-operation-region-new:

region-new
==========
Create region snapshot.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit-port-optional

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``region-name``, ``region-snapshot-id``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``region-name``, ``region-snapshot-id``]



.. _devlink-operation-region-del:

region-del
==========
Delete region snapshot.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit-port-optional

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``region-name``, ``region-snapshot-id``]



.. _devlink-operation-region-read:

region-read
===========
Read region data.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['dump-strict']
:flags: [``admin-perm``]
:dump:
    **request**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``region-name``, ``region-snapshot-id``, ``region-direct``, ``region-chunk-addr``, ``region-chunk-len``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``region-name``]



.. _devlink-operation-port-param-get:

port-param-get
==============
Get port param instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict', 'dump-strict']
:do:
    **pre**
        devlink-nl-pre-doit-port

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``]

:dump:
    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``]



.. _devlink-operation-port-param-set:

port-param-set
==============
Set port param instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit-port

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``]



.. _devlink-operation-info-get:

info-get
========
Get device information, like driver name, hardware and firmware versions etc.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict', 'dump']
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``info-driver-name``, ``info-serial-number``, ``info-version-fixed``, ``info-version-running``, ``info-version-stored``]

:dump:
    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``info-driver-name``, ``info-serial-number``, ``info-version-fixed``, ``info-version-running``, ``info-version-stored``]



.. _devlink-operation-health-reporter-get:

health-reporter-get
===================
Get health reporter instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:do:
    **pre**
        devlink-nl-pre-doit-port-optional

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``health-reporter-name``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``health-reporter-name``]

:dump:
    **request**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``health-reporter-name``]



.. _devlink-operation-health-reporter-set:

health-reporter-set
===================
Set health reporter instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit-port-optional

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``health-reporter-name``, ``health-reporter-graceful-period``, ``health-reporter-auto-recover``, ``health-reporter-auto-dump``]



.. _devlink-operation-health-reporter-recover:

health-reporter-recover
=======================
Recover health reporter instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit-port-optional

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``health-reporter-name``]



.. _devlink-operation-health-reporter-diagnose:

health-reporter-diagnose
========================
Diagnose health reporter instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit-port-optional

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``health-reporter-name``]



.. _devlink-operation-health-reporter-dump-get:

health-reporter-dump-get
========================
Dump health reporter instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['dump-strict']
:flags: [``admin-perm``]
:dump:
    **request**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``health-reporter-name``]

    **reply**
        :attributes: [``fmsg``]



.. _devlink-operation-health-reporter-dump-clear:

health-reporter-dump-clear
==========================
Clear dump of health reporter instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit-port-optional

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``health-reporter-name``]



.. _devlink-operation-flash-update:

flash-update
============
Flash update devlink instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``flash-update-file-name``, ``flash-update-component``, ``flash-update-overwrite-mask``]



.. _devlink-operation-trap-get:

trap-get
========
Get trap instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``trap-name``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``trap-name``]

:dump:
    **request**
        :attributes: [``bus-name``, ``dev-name``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``trap-name``]



.. _devlink-operation-trap-set:

trap-set
========
Set trap instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``trap-name``, ``trap-action``]



.. _devlink-operation-trap-group-get:

trap-group-get
==============
Get trap group instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``trap-group-name``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``trap-group-name``]

:dump:
    **request**
        :attributes: [``bus-name``, ``dev-name``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``trap-group-name``]



.. _devlink-operation-trap-group-set:

trap-group-set
==============
Set trap group instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``trap-group-name``, ``trap-action``, ``trap-policer-id``]



.. _devlink-operation-trap-policer-get:

trap-policer-get
================
Get trap policer instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``trap-policer-id``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``trap-policer-id``]

:dump:
    **request**
        :attributes: [``bus-name``, ``dev-name``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``trap-policer-id``]



.. _devlink-operation-trap-policer-set:

trap-policer-set
================
Get trap policer instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``trap-policer-id``, ``trap-policer-rate``, ``trap-policer-burst``]



.. _devlink-operation-health-reporter-test:

health-reporter-test
====================
Test health reporter instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit-port-optional

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``health-reporter-name``]



.. _devlink-operation-rate-get:

rate-get
========
Get rate instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``rate-node-name``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``rate-node-name``]

:dump:
    **request**
        :attributes: [``bus-name``, ``dev-name``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``, ``rate-node-name``]



.. _devlink-operation-rate-set:

rate-set
========
Set rate instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``rate-node-name``, ``rate-tx-share``, ``rate-tx-max``, ``rate-tx-priority``, ``rate-tx-weight``, ``rate-parent-node-name``]



.. _devlink-operation-rate-new:

rate-new
========
Create rate instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``rate-node-name``, ``rate-tx-share``, ``rate-tx-max``, ``rate-tx-priority``, ``rate-tx-weight``, ``rate-parent-node-name``]



.. _devlink-operation-rate-del:

rate-del
========
Delete rate instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``rate-node-name``]



.. _devlink-operation-linecard-get:

linecard-get
============
Get line card instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``linecard-index``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``linecard-index``]

:dump:
    **request**
        :attributes: [``bus-name``, ``dev-name``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``, ``linecard-index``]



.. _devlink-operation-linecard-set:

linecard-set
============
Set line card instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``linecard-index``, ``linecard-type``]



.. _devlink-operation-selftests-get:

selftests-get
=============
Get device selftest instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict', 'dump']
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``]

    **reply**
        :attributes: [``bus-name``, ``dev-name``]

:dump:
    **reply**
        :attributes: [``bus-name``, ``dev-name``]



.. _devlink-operation-selftests-run:

selftests-run
=============
Run device selftest instances.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:dont-validate: ['strict']
:flags: [``admin-perm``]
:do:
    **pre**
        devlink-nl-pre-doit

    **post**
        devlink-nl-post-doit

    **request**
        :attributes: [``bus-name``, ``dev-name``, ``selftests``]



.. _devlink-operation-notify-filter-set:

notify-filter-set
=================
Set notification messages socket filter.

:attribute-set: :ref:`devlink-attribute-set-devlink`
:do:
    **request**
        :attributes: [``bus-name``, ``dev-name``, ``port-index``]




-----------
Definitions
-----------


.. _devlink-definition-sb-pool-type:

sb-pool-type
============
:type: enum


:entries:
    :ingress: 
    :egress: 


.. _devlink-definition-port-type:

port-type
=========
:type: enum


:entries:
    :notset: 
    :auto: 
    :eth: 
    :ib: 


.. _devlink-definition-port-flavour:

port-flavour
============
:type: enum


:entries:
    :physical: 
    :cpu: 
    :dsa: 
    :pci_pf: 
    :pci_vf: 
    :virtual: 
    :unused: 
    :pci_sf: 


.. _devlink-definition-port-fn-state:

port-fn-state
=============
:type: enum


:entries:
    :inactive: 
    :active: 


.. _devlink-definition-port-fn-opstate:

port-fn-opstate
===============
:type: enum


:entries:
    :detached: 
    :attached: 


.. _devlink-definition-port-fn-attr-cap:

port-fn-attr-cap
================
:type: enum


:entries:
    :roce-bit: 
    :migratable-bit: 
    :ipsec-crypto-bit: 
    :ipsec-packet-bit: 


.. _devlink-definition-rate-type:

rate-type
=========
:type: enum


:entries:
    :leaf: 
    :node: 


.. _devlink-definition-sb-threshold-type:

sb-threshold-type
=================
:type: enum


:entries:
    :static: 
    :dynamic: 


.. _devlink-definition-eswitch-mode:

eswitch-mode
============
:type: enum


:entries:
    :legacy: 
    :switchdev: 


.. _devlink-definition-eswitch-inline-mode:

eswitch-inline-mode
===================
:type: enum


:entries:
    :none: 
    :link: 
    :network: 
    :transport: 


.. _devlink-definition-eswitch-encap-mode:

eswitch-encap-mode
==================
:type: enum


:entries:
    :none: 
    :basic: 


.. _devlink-definition-dpipe-header-id:

dpipe-header-id
===============
:type: enum


:entries:
    :ethernet: 
    :ipv4: 
    :ipv6: 


.. _devlink-definition-dpipe-match-type:

dpipe-match-type
================
:type: enum


:entries:
    :field-exact: 


.. _devlink-definition-dpipe-action-type:

dpipe-action-type
=================
:type: enum


:entries:
    :field-modify: 


.. _devlink-definition-dpipe-field-mapping-type:

dpipe-field-mapping-type
========================
:type: enum


:entries:
    :none: 
    :ifindex: 


.. _devlink-definition-resource-unit:

resource-unit
=============
:type: enum


:entries:
    :entry: 


.. _devlink-definition-reload-action:

reload-action
=============
:type: enum


:entries:
    :driver-reinit: 
    :fw-activate: 


.. _devlink-definition-param-cmode:

param-cmode
===========
:type: enum


:entries:
    :runtime: 
    :driverinit: 
    :permanent: 


.. _devlink-definition-flash-overwrite:

flash-overwrite
===============
:type: enum


:entries:
    :settings-bit: 
    :identifiers-bit: 


.. _devlink-definition-trap-action:

trap-action
===========
:type: enum


:entries:
    :drop: 
    :trap: 
    :mirror: 


.. _devlink-definition-trap-type:

trap-type
=========
:type: enum


:entries:
    :drop: 
    :exception: 
    :control: 



--------------
Attribute sets
--------------


.. _devlink-attribute-set-devlink:

devlink
=======
bus-name (``string``)
~~~~~~~~~~~~~~~~~~~~~
:value: 1


dev-name (``string``)
~~~~~~~~~~~~~~~~~~~~~


port-index (``u32``)
~~~~~~~~~~~~~~~~~~~~


port-type (``u16``)
~~~~~~~~~~~~~~~~~~~
:enum: :ref:`devlink-definition-port-type`


port-desired-type (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


port-netdev-ifindex (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


port-netdev-name (``string``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


port-ibdev-name (``string``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~


port-split-count (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~


port-split-group (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~


sb-index (``u32``)
~~~~~~~~~~~~~~~~~~


sb-size (``u32``)
~~~~~~~~~~~~~~~~~


sb-ingress-pool-count (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


sb-egress-pool-count (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


sb-ingress-tc-count (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


sb-egress-tc-count (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~


sb-pool-index (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~


sb-pool-type (``u8``)
~~~~~~~~~~~~~~~~~~~~~
:enum: :ref:`devlink-definition-sb-pool-type`


sb-pool-size (``u32``)
~~~~~~~~~~~~~~~~~~~~~~


sb-pool-threshold-type (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:enum: :ref:`devlink-definition-sb-threshold-type`


sb-threshold (``u32``)
~~~~~~~~~~~~~~~~~~~~~~


sb-tc-index (``u16``)
~~~~~~~~~~~~~~~~~~~~~


sb-occ-cur (``u32``)
~~~~~~~~~~~~~~~~~~~~


sb-occ-max (``u32``)
~~~~~~~~~~~~~~~~~~~~


eswitch-mode (``u16``)
~~~~~~~~~~~~~~~~~~~~~~
:enum: :ref:`devlink-definition-eswitch-mode`


eswitch-inline-mode (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:enum: :ref:`devlink-definition-eswitch-inline-mode`


dpipe-tables (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`devlink-attribute-set-dl-dpipe-tables`


dpipe-table (``nest``)
~~~~~~~~~~~~~~~~~~~~~~
:multi-attr: True
:nested-attributes: :ref:`devlink-attribute-set-dl-dpipe-table`


dpipe-table-name (``string``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


dpipe-table-size (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~


dpipe-table-matches (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`devlink-attribute-set-dl-dpipe-table-matches`


dpipe-table-actions (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`devlink-attribute-set-dl-dpipe-table-actions`


dpipe-table-counters-enabled (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


dpipe-entries (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`devlink-attribute-set-dl-dpipe-entries`


dpipe-entry (``nest``)
~~~~~~~~~~~~~~~~~~~~~~
:multi-attr: True
:nested-attributes: :ref:`devlink-attribute-set-dl-dpipe-entry`


dpipe-entry-index (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


dpipe-entry-match-values (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`devlink-attribute-set-dl-dpipe-entry-match-values`


dpipe-entry-action-values (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`devlink-attribute-set-dl-dpipe-entry-action-values`


dpipe-entry-counter (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


dpipe-match (``nest``)
~~~~~~~~~~~~~~~~~~~~~~
:multi-attr: True
:nested-attributes: :ref:`devlink-attribute-set-dl-dpipe-match`


dpipe-match-value (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:multi-attr: True
:nested-attributes: :ref:`devlink-attribute-set-dl-dpipe-match-value`


dpipe-match-type (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~
:enum: :ref:`devlink-definition-dpipe-match-type`


dpipe-action (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~
:multi-attr: True
:nested-attributes: :ref:`devlink-attribute-set-dl-dpipe-action`


dpipe-action-value (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:multi-attr: True
:nested-attributes: :ref:`devlink-attribute-set-dl-dpipe-action-value`


dpipe-action-type (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
:enum: :ref:`devlink-definition-dpipe-action-type`


dpipe-value (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~


dpipe-value-mask (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


dpipe-value-mapping (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


dpipe-headers (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`devlink-attribute-set-dl-dpipe-headers`


dpipe-header (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~
:multi-attr: True
:nested-attributes: :ref:`devlink-attribute-set-dl-dpipe-header`


dpipe-header-name (``string``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


dpipe-header-id (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~
:enum: :ref:`devlink-definition-dpipe-header-id`


dpipe-header-fields (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`devlink-attribute-set-dl-dpipe-header-fields`


dpipe-header-global (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~


dpipe-header-index (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~


dpipe-field (``nest``)
~~~~~~~~~~~~~~~~~~~~~~
:multi-attr: True
:nested-attributes: :ref:`devlink-attribute-set-dl-dpipe-field`


dpipe-field-name (``string``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


dpipe-field-id (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~


dpipe-field-bitwidth (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


dpipe-field-mapping-type (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:enum: :ref:`devlink-definition-dpipe-field-mapping-type`


pad (``pad``)
~~~~~~~~~~~~~


eswitch-encap-mode (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
:enum: :ref:`devlink-definition-eswitch-encap-mode`


resource-list (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`devlink-attribute-set-dl-resource-list`


resource (``nest``)
~~~~~~~~~~~~~~~~~~~
:multi-attr: True
:nested-attributes: :ref:`devlink-attribute-set-dl-resource`


resource-name (``string``)
~~~~~~~~~~~~~~~~~~~~~~~~~~


resource-id (``u64``)
~~~~~~~~~~~~~~~~~~~~~


resource-size (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~


resource-size-new (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


resource-size-valid (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~


resource-size-min (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


resource-size-max (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


resource-size-gran (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~


resource-unit (``u8``)
~~~~~~~~~~~~~~~~~~~~~~
:enum: :ref:`devlink-definition-resource-unit`


resource-occ (``u64``)
~~~~~~~~~~~~~~~~~~~~~~


dpipe-table-resource-id (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


dpipe-table-resource-units (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


port-flavour (``u16``)
~~~~~~~~~~~~~~~~~~~~~~
:enum: :ref:`devlink-definition-port-flavour`


port-number (``u32``)
~~~~~~~~~~~~~~~~~~~~~


port-split-subport-number (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


param (``nest``)
~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`devlink-attribute-set-dl-param`


param-name (``string``)
~~~~~~~~~~~~~~~~~~~~~~~


param-generic (``flag``)
~~~~~~~~~~~~~~~~~~~~~~~~


param-type (``u8``)
~~~~~~~~~~~~~~~~~~~


param-value-cmode (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~
:enum: :ref:`devlink-definition-param-cmode`
:value: 87


region-name (``string``)
~~~~~~~~~~~~~~~~~~~~~~~~


region-size (``u64``)
~~~~~~~~~~~~~~~~~~~~~


region-snapshots (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`devlink-attribute-set-dl-region-snapshots`


region-snapshot (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`devlink-attribute-set-dl-region-snapshot`


region-snapshot-id (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~


region-chunks (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`devlink-attribute-set-dl-region-chunks`


region-chunk (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`devlink-attribute-set-dl-region-chunk`


region-chunk-data (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


region-chunk-addr (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


region-chunk-len (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~


info-driver-name (``string``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


info-serial-number (``string``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


info-version-fixed (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:multi-attr: True
:nested-attributes: :ref:`devlink-attribute-set-dl-info-version`


info-version-running (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:multi-attr: True
:nested-attributes: :ref:`devlink-attribute-set-dl-info-version`


info-version-stored (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:multi-attr: True
:nested-attributes: :ref:`devlink-attribute-set-dl-info-version`


info-version-name (``string``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


info-version-value (``string``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


sb-pool-cell-size (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


fmsg (``nest``)
~~~~~~~~~~~~~~~
:nested-attributes: :ref:`devlink-attribute-set-dl-fmsg`


fmsg-obj-nest-start (``flag``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


fmsg-pair-nest-start (``flag``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


fmsg-arr-nest-start (``flag``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


fmsg-nest-end (``flag``)
~~~~~~~~~~~~~~~~~~~~~~~~


fmsg-obj-name (``string``)
~~~~~~~~~~~~~~~~~~~~~~~~~~


fmsg-obj-value-type (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~


health-reporter (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~~~~
:value: 114
:nested-attributes: :ref:`devlink-attribute-set-dl-health-reporter`


health-reporter-name (``string``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


health-reporter-state (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


health-reporter-err-count (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


health-reporter-recover-count (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


health-reporter-dump-ts (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


health-reporter-graceful-period (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


health-reporter-auto-recover (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


flash-update-file-name (``string``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


flash-update-component (``string``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


flash-update-status-msg (``string``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


flash-update-status-done (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


flash-update-status-total (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


port-pci-pf-number (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~


port-pci-vf-number (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~


stats (``nest``)
~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`devlink-attribute-set-dl-attr-stats`


trap-name (``string``)
~~~~~~~~~~~~~~~~~~~~~~


trap-action (``u8``)
~~~~~~~~~~~~~~~~~~~~
:enum: :ref:`devlink-definition-trap-action`


trap-type (``u8``)
~~~~~~~~~~~~~~~~~~
:enum: :ref:`devlink-definition-trap-type`


trap-generic (``flag``)
~~~~~~~~~~~~~~~~~~~~~~~


trap-metadata (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`devlink-attribute-set-dl-trap-metadata`


trap-group-name (``string``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~


reload-failed (``u8``)
~~~~~~~~~~~~~~~~~~~~~~


health-reporter-dump-ts-ns (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


netns-fd (``u32``)
~~~~~~~~~~~~~~~~~~


netns-pid (``u32``)
~~~~~~~~~~~~~~~~~~~


netns-id (``u32``)
~~~~~~~~~~~~~~~~~~


health-reporter-auto-dump (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


trap-policer-id (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~


trap-policer-rate (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


trap-policer-burst (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~


port-function (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`devlink-attribute-set-dl-port-function`


info-board-serial-number (``string``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


port-lanes (``u32``)
~~~~~~~~~~~~~~~~~~~~


port-splittable (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~


port-external (``u8``)
~~~~~~~~~~~~~~~~~~~~~~


port-controller-number (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


flash-update-status-timeout (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


flash-update-overwrite-mask (``bitfield32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:enum: :ref:`devlink-definition-flash-overwrite`
:enum-as-flags: True


reload-action (``u8``)
~~~~~~~~~~~~~~~~~~~~~~
:enum: :ref:`devlink-definition-reload-action`


reload-actions-performed (``bitfield32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:enum: :ref:`devlink-definition-reload-action`
:enum-as-flags: True


reload-limits (``bitfield32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:enum: :ref:`devlink-definition-reload-action`
:enum-as-flags: True


dev-stats (``nest``)
~~~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`devlink-attribute-set-dl-dev-stats`


reload-stats (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`devlink-attribute-set-dl-reload-stats`


reload-stats-entry (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:multi-attr: True
:nested-attributes: :ref:`devlink-attribute-set-dl-reload-stats-entry`


reload-stats-limit (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


reload-stats-value (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~


remote-reload-stats (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`devlink-attribute-set-dl-reload-stats`


reload-action-info (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:multi-attr: True
:nested-attributes: :ref:`devlink-attribute-set-dl-reload-act-info`


reload-action-stats (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:multi-attr: True
:nested-attributes: :ref:`devlink-attribute-set-dl-reload-act-stats`


port-pci-sf-number (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~


rate-type (``u16``)
~~~~~~~~~~~~~~~~~~~
:enum: :ref:`devlink-definition-rate-type`


rate-tx-share (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~


rate-tx-max (``u64``)
~~~~~~~~~~~~~~~~~~~~~


rate-node-name (``string``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


rate-parent-node-name (``string``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


region-max-snapshots (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


linecard-index (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~


linecard-state (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~


linecard-type (``string``)
~~~~~~~~~~~~~~~~~~~~~~~~~~


linecard-supported-types (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`devlink-attribute-set-dl-linecard-supported-types`


selftests (``nest``)
~~~~~~~~~~~~~~~~~~~~
:value: 176
:nested-attributes: :ref:`devlink-attribute-set-dl-selftest-id`


rate-tx-priority (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~


rate-tx-weight (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~


region-direct (``flag``)
~~~~~~~~~~~~~~~~~~~~~~~~


.. _devlink-attribute-set-dl-dev-stats:

dl-dev-stats
============
reload-stats
~~~~~~~~~~~~


remote-reload-stats
~~~~~~~~~~~~~~~~~~~


.. _devlink-attribute-set-dl-reload-stats:

dl-reload-stats
===============
reload-action-info
~~~~~~~~~~~~~~~~~~


.. _devlink-attribute-set-dl-reload-act-info:

dl-reload-act-info
==================
reload-action
~~~~~~~~~~~~~


reload-action-stats
~~~~~~~~~~~~~~~~~~~


.. _devlink-attribute-set-dl-reload-act-stats:

dl-reload-act-stats
===================
reload-stats-entry
~~~~~~~~~~~~~~~~~~


.. _devlink-attribute-set-dl-reload-stats-entry:

dl-reload-stats-entry
=====================
reload-stats-limit
~~~~~~~~~~~~~~~~~~


reload-stats-value
~~~~~~~~~~~~~~~~~~


.. _devlink-attribute-set-dl-info-version:

dl-info-version
===============
info-version-name
~~~~~~~~~~~~~~~~~


info-version-value
~~~~~~~~~~~~~~~~~~


.. _devlink-attribute-set-dl-port-function:

dl-port-function
================
hw-addr (``binary``)
~~~~~~~~~~~~~~~~~~~~
:name-prefix: devlink-port-function-attr-
:value: 1


state (``u8``)
~~~~~~~~~~~~~~
:enum: :ref:`devlink-definition-port-fn-state`


opstate (``u8``)
~~~~~~~~~~~~~~~~
:enum: :ref:`devlink-definition-port-fn-opstate`


caps (``bitfield32``)
~~~~~~~~~~~~~~~~~~~~~
:enum: :ref:`devlink-definition-port-fn-attr-cap`
:enum-as-flags: True


.. _devlink-attribute-set-dl-dpipe-tables:

dl-dpipe-tables
===============
dpipe-table
~~~~~~~~~~~


.. _devlink-attribute-set-dl-dpipe-table:

dl-dpipe-table
==============
dpipe-table-name
~~~~~~~~~~~~~~~~


dpipe-table-size
~~~~~~~~~~~~~~~~


dpipe-table-name
~~~~~~~~~~~~~~~~


dpipe-table-size
~~~~~~~~~~~~~~~~


dpipe-table-matches
~~~~~~~~~~~~~~~~~~~


dpipe-table-actions
~~~~~~~~~~~~~~~~~~~


dpipe-table-counters-enabled
~~~~~~~~~~~~~~~~~~~~~~~~~~~~


dpipe-table-resource-id
~~~~~~~~~~~~~~~~~~~~~~~


dpipe-table-resource-units
~~~~~~~~~~~~~~~~~~~~~~~~~~


.. _devlink-attribute-set-dl-dpipe-table-matches:

dl-dpipe-table-matches
======================
dpipe-match
~~~~~~~~~~~


.. _devlink-attribute-set-dl-dpipe-table-actions:

dl-dpipe-table-actions
======================
dpipe-action
~~~~~~~~~~~~


.. _devlink-attribute-set-dl-dpipe-entries:

dl-dpipe-entries
================
dpipe-entry
~~~~~~~~~~~


.. _devlink-attribute-set-dl-dpipe-entry:

dl-dpipe-entry
==============
dpipe-entry-index
~~~~~~~~~~~~~~~~~


dpipe-entry-match-values
~~~~~~~~~~~~~~~~~~~~~~~~


dpipe-entry-action-values
~~~~~~~~~~~~~~~~~~~~~~~~~


dpipe-entry-counter
~~~~~~~~~~~~~~~~~~~


.. _devlink-attribute-set-dl-dpipe-entry-match-values:

dl-dpipe-entry-match-values
===========================
dpipe-match-value
~~~~~~~~~~~~~~~~~


.. _devlink-attribute-set-dl-dpipe-entry-action-values:

dl-dpipe-entry-action-values
============================
dpipe-action-value
~~~~~~~~~~~~~~~~~~


.. _devlink-attribute-set-dl-dpipe-match:

dl-dpipe-match
==============
dpipe-match-type
~~~~~~~~~~~~~~~~


dpipe-header-id
~~~~~~~~~~~~~~~


dpipe-header-global
~~~~~~~~~~~~~~~~~~~


dpipe-header-index
~~~~~~~~~~~~~~~~~~


dpipe-field-id
~~~~~~~~~~~~~~


.. _devlink-attribute-set-dl-dpipe-match-value:

dl-dpipe-match-value
====================
dpipe-match
~~~~~~~~~~~


dpipe-value
~~~~~~~~~~~


dpipe-value-mask
~~~~~~~~~~~~~~~~


dpipe-value-mapping
~~~~~~~~~~~~~~~~~~~


.. _devlink-attribute-set-dl-dpipe-action:

dl-dpipe-action
===============
dpipe-action-type
~~~~~~~~~~~~~~~~~


dpipe-header-id
~~~~~~~~~~~~~~~


dpipe-header-global
~~~~~~~~~~~~~~~~~~~


dpipe-header-index
~~~~~~~~~~~~~~~~~~


dpipe-field-id
~~~~~~~~~~~~~~


.. _devlink-attribute-set-dl-dpipe-action-value:

dl-dpipe-action-value
=====================
dpipe-action
~~~~~~~~~~~~


dpipe-value
~~~~~~~~~~~


dpipe-value-mask
~~~~~~~~~~~~~~~~


dpipe-value-mapping
~~~~~~~~~~~~~~~~~~~


.. _devlink-attribute-set-dl-dpipe-headers:

dl-dpipe-headers
================
dpipe-header
~~~~~~~~~~~~


.. _devlink-attribute-set-dl-dpipe-header:

dl-dpipe-header
===============
dpipe-header-name
~~~~~~~~~~~~~~~~~


dpipe-header-id
~~~~~~~~~~~~~~~


dpipe-header-global
~~~~~~~~~~~~~~~~~~~


dpipe-header-fields
~~~~~~~~~~~~~~~~~~~


.. _devlink-attribute-set-dl-dpipe-header-fields:

dl-dpipe-header-fields
======================
dpipe-field
~~~~~~~~~~~


.. _devlink-attribute-set-dl-dpipe-field:

dl-dpipe-field
==============
dpipe-field-name
~~~~~~~~~~~~~~~~


dpipe-field-id
~~~~~~~~~~~~~~


dpipe-field-bitwidth
~~~~~~~~~~~~~~~~~~~~


dpipe-field-mapping-type
~~~~~~~~~~~~~~~~~~~~~~~~


.. _devlink-attribute-set-dl-resource:

dl-resource
===========
resource-name
~~~~~~~~~~~~~


resource-id
~~~~~~~~~~~


resource-size
~~~~~~~~~~~~~


resource-size-new
~~~~~~~~~~~~~~~~~


resource-size-valid
~~~~~~~~~~~~~~~~~~~


resource-size-min
~~~~~~~~~~~~~~~~~


resource-size-max
~~~~~~~~~~~~~~~~~


resource-size-gran
~~~~~~~~~~~~~~~~~~


resource-unit
~~~~~~~~~~~~~


resource-occ
~~~~~~~~~~~~


.. _devlink-attribute-set-dl-resource-list:

dl-resource-list
================
resource
~~~~~~~~


.. _devlink-attribute-set-dl-param:

dl-param
========
param-name
~~~~~~~~~~


param-generic
~~~~~~~~~~~~~


param-type
~~~~~~~~~~


.. _devlink-attribute-set-dl-region-snapshots:

dl-region-snapshots
===================
region-snapshot
~~~~~~~~~~~~~~~


.. _devlink-attribute-set-dl-region-snapshot:

dl-region-snapshot
==================
region-snapshot-id
~~~~~~~~~~~~~~~~~~


.. _devlink-attribute-set-dl-region-chunks:

dl-region-chunks
================
region-chunk
~~~~~~~~~~~~


.. _devlink-attribute-set-dl-region-chunk:

dl-region-chunk
===============
region-chunk-data
~~~~~~~~~~~~~~~~~


region-chunk-addr
~~~~~~~~~~~~~~~~~


.. _devlink-attribute-set-dl-fmsg:

dl-fmsg
=======
fmsg-obj-nest-start
~~~~~~~~~~~~~~~~~~~


fmsg-pair-nest-start
~~~~~~~~~~~~~~~~~~~~


fmsg-arr-nest-start
~~~~~~~~~~~~~~~~~~~


fmsg-nest-end
~~~~~~~~~~~~~


fmsg-obj-name
~~~~~~~~~~~~~


.. _devlink-attribute-set-dl-health-reporter:

dl-health-reporter
==================
health-reporter-name
~~~~~~~~~~~~~~~~~~~~


health-reporter-state
~~~~~~~~~~~~~~~~~~~~~


health-reporter-err-count
~~~~~~~~~~~~~~~~~~~~~~~~~


health-reporter-recover-count
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


health-reporter-graceful-period
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


health-reporter-auto-recover
~~~~~~~~~~~~~~~~~~~~~~~~~~~~


health-reporter-dump-ts
~~~~~~~~~~~~~~~~~~~~~~~


health-reporter-dump-ts-ns
~~~~~~~~~~~~~~~~~~~~~~~~~~


health-reporter-auto-dump
~~~~~~~~~~~~~~~~~~~~~~~~~


.. _devlink-attribute-set-dl-attr-stats:

dl-attr-stats
=============
stats-rx-packets (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~
:value: 0


stats-rx-bytes (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~


stats-rx-dropped (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~


.. _devlink-attribute-set-dl-trap-metadata:

dl-trap-metadata
================
trap-metadata-type-in-port (``flag``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:value: 0


trap-metadata-type-fa-cookie (``flag``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


.. _devlink-attribute-set-dl-linecard-supported-types:

dl-linecard-supported-types
===========================
linecard-type
~~~~~~~~~~~~~


.. _devlink-attribute-set-dl-selftest-id:

dl-selftest-id
==============
flash (``flag``)
~~~~~~~~~~~~~~~~