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


========================================
Family ``rt-link`` netlink specification
========================================


.. contents:: :depth: 3


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


Link configuration over rtnetlink.

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


.. _rt-link-operation-newlink:

newlink
=======
Create a new link.

:attribute-set: :ref:`rt-link-attribute-set-link-attrs`
:fixed-header: :ref:`rt-link-definition-ifinfomsg`
:do:
    **request**
        :attributes: [``ifi-index``, ``ifname``, ``net-ns-pid``, ``net-ns-fd``, ``target-netnsid``, ``link-netnsid``, ``linkinfo``, ``group``, ``num-tx-queues``, ``num-rx-queues``, ``address``, ``broadcast``, ``mtu``, ``txqlen``, ``operstate``, ``linkmode``, ``group``, ``gso-max-size``, ``gso-max-segs``, ``gro-max-size``, ``gso-ipv4-max-size``, ``gro-ipv4-max-size``, ``af-spec``]



.. _rt-link-operation-dellink:

dellink
=======
Delete an existing link.

:attribute-set: :ref:`rt-link-attribute-set-link-attrs`
:fixed-header: :ref:`rt-link-definition-ifinfomsg`
:do:
    **request**
        :attributes: [``ifi-index``, ``ifname``]



.. _rt-link-operation-getlink:

getlink
=======
Get / dump information about a link.

:attribute-set: :ref:`rt-link-attribute-set-link-attrs`
:fixed-header: :ref:`rt-link-definition-ifinfomsg`
:do:
    **request**
        :attributes: [``ifi-index``, ``ifname``, ``alt-ifname``, ``ext-mask``, ``target-netnsid``]

    **reply**
        :attributes: [``ifi-family``, ``ifi-type``, ``ifi-index``, ``ifi-flags``, ``ifi-change``, ``address``, ``broadcast``, ``ifname``, ``mtu``, ``link``, ``qdisc``, ``stats``, ``cost``, ``priority``, ``master``, ``wireless``, ``protinfo``, ``txqlen``, ``map``, ``weight``, ``operstate``, ``linkmode``, ``linkinfo``, ``net-ns-pid``, ``ifalias``, ``num-vf``, ``vfinfo-list``, ``stats64``, ``vf-ports``, ``port-self``, ``af-spec``, ``group``, ``net-ns-fd``, ``ext-mask``, ``promiscuity``, ``num-tx-queues``, ``num-rx-queues``, ``carrier``, ``phys-port-id``, ``carrier-changes``, ``phys-switch-id``, ``link-netnsid``, ``phys-port-name``, ``proto-down``, ``gso-max-segs``, ``gso-max-size``, ``pad``, ``xdp``, ``event``, ``new-netnsid``, ``if-netnsid``, ``target-netnsid``, ``carrier-up-count``, ``carrier-down-count``, ``new-ifindex``, ``min-mtu``, ``max-mtu``, ``prop-list``, ``alt-ifname``, ``perm-address``, ``proto-down-reason``, ``parent-dev-name``, ``parent-dev-bus-name``, ``gro-max-size``, ``tso-max-size``, ``tso-max-segs``, ``allmulti``, ``devlink-port``, ``gso-ipv4-max-size``, ``gro-ipv4-max-size``]

:dump:
    **request**
        :attributes: [``target-netnsid``, ``ext-mask``, ``master``, ``linkinfo``]

    **reply**
        :attributes: [``ifi-family``, ``ifi-type``, ``ifi-index``, ``ifi-flags``, ``ifi-change``, ``address``, ``broadcast``, ``ifname``, ``mtu``, ``link``, ``qdisc``, ``stats``, ``cost``, ``priority``, ``master``, ``wireless``, ``protinfo``, ``txqlen``, ``map``, ``weight``, ``operstate``, ``linkmode``, ``linkinfo``, ``net-ns-pid``, ``ifalias``, ``num-vf``, ``vfinfo-list``, ``stats64``, ``vf-ports``, ``port-self``, ``af-spec``, ``group``, ``net-ns-fd``, ``ext-mask``, ``promiscuity``, ``num-tx-queues``, ``num-rx-queues``, ``carrier``, ``phys-port-id``, ``carrier-changes``, ``phys-switch-id``, ``link-netnsid``, ``phys-port-name``, ``proto-down``, ``gso-max-segs``, ``gso-max-size``, ``pad``, ``xdp``, ``event``, ``new-netnsid``, ``if-netnsid``, ``target-netnsid``, ``carrier-up-count``, ``carrier-down-count``, ``new-ifindex``, ``min-mtu``, ``max-mtu``, ``prop-list``, ``alt-ifname``, ``perm-address``, ``proto-down-reason``, ``parent-dev-name``, ``parent-dev-bus-name``, ``gro-max-size``, ``tso-max-size``, ``tso-max-segs``, ``allmulti``, ``devlink-port``, ``gso-ipv4-max-size``, ``gro-ipv4-max-size``]



.. _rt-link-operation-setlink:

setlink
=======
Set information about a link.

:attribute-set: :ref:`rt-link-attribute-set-link-attrs`
:fixed-header: :ref:`rt-link-definition-ifinfomsg`
:do:
    **request**
        :attributes: [``ifi-family``, ``ifi-type``, ``ifi-index``, ``ifi-flags``, ``ifi-change``, ``address``, ``broadcast``, ``ifname``, ``mtu``, ``link``, ``qdisc``, ``stats``, ``cost``, ``priority``, ``master``, ``wireless``, ``protinfo``, ``txqlen``, ``map``, ``weight``, ``operstate``, ``linkmode``, ``linkinfo``, ``net-ns-pid``, ``ifalias``, ``num-vf``, ``vfinfo-list``, ``stats64``, ``vf-ports``, ``port-self``, ``af-spec``, ``group``, ``net-ns-fd``, ``ext-mask``, ``promiscuity``, ``num-tx-queues``, ``num-rx-queues``, ``carrier``, ``phys-port-id``, ``carrier-changes``, ``phys-switch-id``, ``link-netnsid``, ``phys-port-name``, ``proto-down``, ``gso-max-segs``, ``gso-max-size``, ``pad``, ``xdp``, ``event``, ``new-netnsid``, ``if-netnsid``, ``target-netnsid``, ``carrier-up-count``, ``carrier-down-count``, ``new-ifindex``, ``min-mtu``, ``max-mtu``, ``prop-list``, ``alt-ifname``, ``perm-address``, ``proto-down-reason``, ``parent-dev-name``, ``parent-dev-bus-name``, ``gro-max-size``, ``tso-max-size``, ``tso-max-segs``, ``allmulti``, ``devlink-port``, ``gso-ipv4-max-size``, ``gro-ipv4-max-size``]



.. _rt-link-operation-getstats:

getstats
========
Get / dump link stats.

:attribute-set: :ref:`rt-link-attribute-set-stats-attrs`
:fixed-header: :ref:`rt-link-definition-if_stats_msg`
:do:
    **request**
        :attributes: [``ifindex``]

    **reply**
        :attributes: [``family``, ``ifindex``, ``filter-mask``, ``link-64``, ``link-xstats``, ``link-xstats-slave``, ``link-offload-xstats``, ``af-spec``]

:dump:
    **request**


    **reply**
        :attributes: [``family``, ``ifindex``, ``filter-mask``, ``link-64``, ``link-xstats``, ``link-xstats-slave``, ``link-offload-xstats``, ``af-spec``]




----------------
Multicast groups
----------------


- rtnlgrp-link
- rtnlgrp-stats

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


.. _rt-link-definition-ifinfo-flags:

ifinfo-flags
============
:type: flags


:entries:
    :up: 
    :broadcast: 
    :debug: 
    :loopback: 
    :point-to-point: 
    :no-trailers: 
    :running: 
    :no-arp: 
    :promisc: 
    :all-multi: 
    :master: 
    :slave: 
    :multicast: 
    :portsel: 
    :auto-media: 
    :dynamic: 
    :lower-up: 
    :dormant: 
    :echo: 


.. _rt-link-definition-vlan-protocols:

vlan-protocols
==============
:type: enum


:entries:
    :8021q: 
    :8021ad: 


.. _rt-link-definition-rtgenmsg:

rtgenmsg
========
:type: struct


:members:
    :family (``u8``): 


.. _rt-link-definition-ifinfomsg:

ifinfomsg
=========
:type: struct


:members:
    :ifi-family (``u8``): 
    :ifi-type (``u16``): 
    :ifi-index (``s32``): 
    :ifi-flags (``u32``): 
    :ifi-change (``u32``): 


.. _rt-link-definition-ifla-bridge-id:

ifla-bridge-id
==============
:type: struct


:members:
    :prio (``u16``): 
    :addr (``binary``): 


.. _rt-link-definition-ifla-cacheinfo:

ifla-cacheinfo
==============
:type: struct


:members:
    :max-reasm-len (``u32``): 
    :tstamp (``u32``): 
    :reachable-time (``s32``): 
    :retrans-time (``u32``): 


.. _rt-link-definition-rtnl-link-stats:

rtnl-link-stats
===============
:type: struct


:members:
    :rx-packets (``u32``): 
    :tx-packets (``u32``): 
    :rx-bytes (``u32``): 
    :tx-bytes (``u32``): 
    :rx-errors (``u32``): 
    :tx-errors (``u32``): 
    :rx-dropped (``u32``): 
    :tx-dropped (``u32``): 
    :multicast (``u32``): 
    :collisions (``u32``): 
    :rx-length-errors (``u32``): 
    :rx-over-errors (``u32``): 
    :rx-crc-errors (``u32``): 
    :rx-frame-errors (``u32``): 
    :rx-fifo-errors (``u32``): 
    :rx-missed-errors (``u32``): 
    :tx-aborted-errors (``u32``): 
    :tx-carrier-errors (``u32``): 
    :tx-fifo-errors (``u32``): 
    :tx-heartbeat-errors (``u32``): 
    :tx-window-errors (``u32``): 
    :rx-compressed (``u32``): 
    :tx-compressed (``u32``): 
    :rx-nohandler (``u32``): 


.. _rt-link-definition-rtnl-link-stats64:

rtnl-link-stats64
=================
:type: struct


:members:
    :rx-packets (``u64``): 
    :tx-packets (``u64``): 
    :rx-bytes (``u64``): 
    :tx-bytes (``u64``): 
    :rx-errors (``u64``): 
    :tx-errors (``u64``): 
    :rx-dropped (``u64``): 
    :tx-dropped (``u64``): 
    :multicast (``u64``): 
    :collisions (``u64``): 
    :rx-length-errors (``u64``): 
    :rx-over-errors (``u64``): 
    :rx-crc-errors (``u64``): 
    :rx-frame-errors (``u64``): 
    :rx-fifo-errors (``u64``): 
    :rx-missed-errors (``u64``): 
    :tx-aborted-errors (``u64``): 
    :tx-carrier-errors (``u64``): 
    :tx-fifo-errors (``u64``): 
    :tx-heartbeat-errors (``u64``): 
    :tx-window-errors (``u64``): 
    :rx-compressed (``u64``): 
    :tx-compressed (``u64``): 
    :rx-nohandler (``u64``): 
    :rx-otherhost-dropped (``u64``): 


.. _rt-link-definition-rtnl-link-ifmap:

rtnl-link-ifmap
===============
:type: struct


:members:
    :mem-start (``u64``): 
    :mem-end (``u64``): 
    :base-addr (``u64``): 
    :irq (``u16``): 
    :dma (``u8``): 
    :port (``u8``): 


.. _rt-link-definition-ipv4-devconf:

ipv4-devconf
============
:type: struct


:members:
    :forwarding (``u32``): 
    :mc-forwarding (``u32``): 
    :proxy-arp (``u32``): 
    :accept-redirects (``u32``): 
    :secure-redirects (``u32``): 
    :send-redirects (``u32``): 
    :shared-media (``u32``): 
    :rp-filter (``u32``): 
    :accept-source-route (``u32``): 
    :bootp-relay (``u32``): 
    :log-martians (``u32``): 
    :tag (``u32``): 
    :arpfilter (``u32``): 
    :medium-id (``u32``): 
    :noxfrm (``u32``): 
    :nopolicy (``u32``): 
    :force-igmp-version (``u32``): 
    :arp-announce (``u32``): 
    :arp-ignore (``u32``): 
    :promote-secondaries (``u32``): 
    :arp-accept (``u32``): 
    :arp-notify (``u32``): 
    :accept-local (``u32``): 
    :src-vmark (``u32``): 
    :proxy-arp-pvlan (``u32``): 
    :route-localnet (``u32``): 
    :igmpv2-unsolicited-report-interval (``u32``): 
    :igmpv3-unsolicited-report-interval (``u32``): 
    :ignore-routes-with-linkdown (``u32``): 
    :drop-unicast-in-l2-multicast (``u32``): 
    :drop-gratuitous-arp (``u32``): 
    :bc-forwarding (``u32``): 
    :arp-evict-nocarrier (``u32``): 


.. _rt-link-definition-ipv6-devconf:

ipv6-devconf
============
:type: struct


:members:
    :forwarding (``u32``): 
    :hoplimit (``u32``): 
    :mtu6 (``u32``): 
    :accept-ra (``u32``): 
    :accept-redirects (``u32``): 
    :autoconf (``u32``): 
    :dad-transmits (``u32``): 
    :rtr-solicits (``u32``): 
    :rtr-solicit-interval (``u32``): 
    :rtr-solicit-delay (``u32``): 
    :use-tempaddr (``u32``): 
    :temp-valid-lft (``u32``): 
    :temp-prefered-lft (``u32``): 
    :regen-max-retry (``u32``): 
    :max-desync-factor (``u32``): 
    :max-addresses (``u32``): 
    :force-mld-version (``u32``): 
    :accept-ra-defrtr (``u32``): 
    :accept-ra-pinfo (``u32``): 
    :accept-ra-rtr-pref (``u32``): 
    :rtr-probe-interval (``u32``): 
    :accept-ra-rt-info-max-plen (``u32``): 
    :proxy-ndp (``u32``): 
    :optimistic-dad (``u32``): 
    :accept-source-route (``u32``): 
    :mc-forwarding (``u32``): 
    :disable-ipv6 (``u32``): 
    :accept-dad (``u32``): 
    :force-tllao (``u32``): 
    :ndisc-notify (``u32``): 
    :mldv1-unsolicited-report-interval (``u32``): 
    :mldv2-unsolicited-report-interval (``u32``): 
    :suppress-frag-ndisc (``u32``): 
    :accept-ra-from-local (``u32``): 
    :use-optimistic (``u32``): 
    :accept-ra-mtu (``u32``): 
    :stable-secret (``u32``): 
    :use-oif-addrs-only (``u32``): 
    :accept-ra-min-hop-limit (``u32``): 
    :ignore-routes-with-linkdown (``u32``): 
    :drop-unicast-in-l2-multicast (``u32``): 
    :drop-unsolicited-na (``u32``): 
    :keep-addr-on-down (``u32``): 
    :rtr-solicit-max-interval (``u32``): 
    :seg6-enabled (``u32``): 
    :seg6-require-hmac (``u32``): 
    :enhanced-dad (``u32``): 
    :addr-gen-mode (``u8``): 
    :disable-policy (``u32``): 
    :accept-ra-rt-info-min-plen (``u32``): 
    :ndisc-tclass (``u32``): 
    :rpl-seg-enabled (``u32``): 
    :ra-defrtr-metric (``u32``): 
    :ioam6-enabled (``u32``): 
    :ioam6-id (``u32``): 
    :ioam6-id-wide (``u32``): 
    :ndisc-evict-nocarrier (``u32``): 
    :accept-untracked-na (``u32``): 


.. _rt-link-definition-ifla-icmp6-stats:

ifla-icmp6-stats
================
:type: struct


:members:
    :inmsgs (``u64``): 
    :inerrors (``u64``): 
    :outmsgs (``u64``): 
    :outerrors (``u64``): 
    :csumerrors (``u64``): 
    :ratelimithost (``u64``): 


.. _rt-link-definition-ifla-inet6-stats:

ifla-inet6-stats
================
:type: struct


:members:
    :inpkts (``u64``): 
    :inoctets (``u64``): 
    :indelivers (``u64``): 
    :outforwdatagrams (``u64``): 
    :outpkts (``u64``): 
    :outoctets (``u64``): 
    :inhdrerrors (``u64``): 
    :intoobigerrors (``u64``): 
    :innoroutes (``u64``): 
    :inaddrerrors (``u64``): 
    :inunknownprotos (``u64``): 
    :intruncatedpkts (``u64``): 
    :indiscards (``u64``): 
    :outdiscards (``u64``): 
    :outnoroutes (``u64``): 
    :reasmtimeout (``u64``): 
    :reasmreqds (``u64``): 
    :reasmoks (``u64``): 
    :reasmfails (``u64``): 
    :fragoks (``u64``): 
    :fragfails (``u64``): 
    :fragcreates (``u64``): 
    :inmcastpkts (``u64``): 
    :outmcastpkts (``u64``): 
    :inbcastpkts (``u64``): 
    :outbcastpkts (``u64``): 
    :inmcastoctets (``u64``): 
    :outmcastoctets (``u64``): 
    :inbcastoctets (``u64``): 
    :outbcastoctets (``u64``): 
    :csumerrors (``u64``): 
    :noectpkts (``u64``): 
    :ect1-pkts (``u64``): 
    :ect0-pkts (``u64``): 
    :cepkts (``u64``): 
    :reasm-overlaps (``u64``): 


.. _rt-link-definition-br-boolopt-multi:

br-boolopt-multi
================
:type: struct


:members:
    :optval (``u32``): 
    :optmask (``u32``): 


.. _rt-link-definition-if_stats_msg:

if_stats_msg
============
:type: struct


:members:
    :family (``u8``): 
    :ifindex (``u32``): 
    :filter-mask (``u32``): 


.. _rt-link-definition-ifla-vlan-flags:

ifla-vlan-flags
===============
:type: struct


:members:
    :flags (``u32``): 
    :mask (``u32``): 


.. _rt-link-definition-vlan-flags:

vlan-flags
==========
:type: flags


:entries:
    - ``reorder-hdr``
    - ``gvrp``
    - ``loose-binding``
    - ``mvrp``
    - ``bridge-binding``


.. _rt-link-definition-ifla-vlan-qos-mapping:

ifla-vlan-qos-mapping
=====================
:type: struct


:members:
    :from (``u32``): 
    :to (``u32``): 


.. _rt-link-definition-ifla-vf-mac:

ifla-vf-mac
===========
:type: struct


:members:
    :vf (``u32``): 
    :mac (``binary``): 


.. _rt-link-definition-ifla-vf-vlan:

ifla-vf-vlan
============
:type: struct


:members:
    :vf (``u32``): 
    :vlan (``u32``): 
    :qos (``u32``): 


.. _rt-link-definition-ifla-vf-tx-rate:

ifla-vf-tx-rate
===============
:type: struct


:members:
    :vf (``u32``): 
    :rate (``u32``): 


.. _rt-link-definition-ifla-vf-spoofchk:

ifla-vf-spoofchk
================
:type: struct


:members:
    :vf (``u32``): 
    :setting (``u32``): 


.. _rt-link-definition-ifla-vf-link-state:

ifla-vf-link-state
==================
:type: struct


:members:
    :vf (``u32``): 
    :link-state (``u32``): 


.. _rt-link-definition-ifla-vf-link-state-enum:

ifla-vf-link-state-enum
=======================
:type: enum


:entries:
    - ``auto``
    - ``enable``
    - ``disable``


.. _rt-link-definition-ifla-vf-rate:

ifla-vf-rate
============
:type: struct


:members:
    :vf (``u32``): 
    :min-tx-rate (``u32``): 
    :max-tx-rate (``u32``): 


.. _rt-link-definition-ifla-vf-rss-query-en:

ifla-vf-rss-query-en
====================
:type: struct


:members:
    :vf (``u32``): 
    :setting (``u32``): 


.. _rt-link-definition-ifla-vf-trust:

ifla-vf-trust
=============
:type: struct


:members:
    :vf (``u32``): 
    :setting (``u32``): 


.. _rt-link-definition-ifla-vf-guid:

ifla-vf-guid
============
:type: struct


:members:
    :vf (``u32``): 
    :guid (``u64``): 


.. _rt-link-definition-ifla-vf-vlan-info:

ifla-vf-vlan-info
=================
:type: struct


:members:
    :vf (``u32``): 
    :vlan (``u32``): 
    :qos (``u32``): 
    :vlan-proto (``u32``): 


.. _rt-link-definition-rtext-filter:

rtext-filter
============
:type: flags


:entries:
    - ``vf``
    - ``brvlan``
    - ``brvlan-compressed``
    - ``skip-stats``
    - ``mrp``
    - ``cfm-config``
    - ``cfm-status``
    - ``mst``


.. _rt-link-definition-netkit-policy:

netkit-policy
=============
:type: enum


:entries:
    :forward: 
    :blackhole: 


.. _rt-link-definition-netkit-mode:

netkit-mode
===========
:type: enum


:entries:
    :l2: 
    :l3: 



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


.. _rt-link-attribute-set-link-attrs:

link-attrs
==========
address (``binary``)
~~~~~~~~~~~~~~~~~~~~
:display-hint: mac


broadcast (``binary``)
~~~~~~~~~~~~~~~~~~~~~~
:display-hint: mac


ifname (``string``)
~~~~~~~~~~~~~~~~~~~


mtu (``u32``)
~~~~~~~~~~~~~


link (``u32``)
~~~~~~~~~~~~~~


qdisc (``string``)
~~~~~~~~~~~~~~~~~~


stats (``binary``)
~~~~~~~~~~~~~~~~~~
:struct: :ref:`rt-link-definition-rtnl-link-stats`


cost (``string``)
~~~~~~~~~~~~~~~~~


priority (``string``)
~~~~~~~~~~~~~~~~~~~~~


master (``u32``)
~~~~~~~~~~~~~~~~


wireless (``string``)
~~~~~~~~~~~~~~~~~~~~~


protinfo (``string``)
~~~~~~~~~~~~~~~~~~~~~


txqlen (``u32``)
~~~~~~~~~~~~~~~~


map (``binary``)
~~~~~~~~~~~~~~~~
:struct: :ref:`rt-link-definition-rtnl-link-ifmap`


weight (``u32``)
~~~~~~~~~~~~~~~~


operstate (``u8``)
~~~~~~~~~~~~~~~~~~


linkmode (``u8``)
~~~~~~~~~~~~~~~~~


linkinfo (``nest``)
~~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`rt-link-attribute-set-linkinfo-attrs`


net-ns-pid (``u32``)
~~~~~~~~~~~~~~~~~~~~


ifalias (``string``)
~~~~~~~~~~~~~~~~~~~~


num-vf (``u32``)
~~~~~~~~~~~~~~~~


vfinfo-list (``nest``)
~~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`rt-link-attribute-set-vfinfo-list-attrs`


stats64 (``binary``)
~~~~~~~~~~~~~~~~~~~~
:struct: :ref:`rt-link-definition-rtnl-link-stats64`


vf-ports (``nest``)
~~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`rt-link-attribute-set-vf-ports-attrs`


port-self (``nest``)
~~~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`rt-link-attribute-set-port-self-attrs`


af-spec (``nest``)
~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`rt-link-attribute-set-af-spec-attrs`


group (``u32``)
~~~~~~~~~~~~~~~


net-ns-fd (``u32``)
~~~~~~~~~~~~~~~~~~~


ext-mask (``u32``)
~~~~~~~~~~~~~~~~~~
:enum: :ref:`rt-link-definition-rtext-filter`
:enum-as-flags: True


promiscuity (``u32``)
~~~~~~~~~~~~~~~~~~~~~


num-tx-queues (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~


num-rx-queues (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~


carrier (``u8``)
~~~~~~~~~~~~~~~~


phys-port-id (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~


carrier-changes (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~


phys-switch-id (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


link-netnsid (``s32``)
~~~~~~~~~~~~~~~~~~~~~~


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


proto-down (``u8``)
~~~~~~~~~~~~~~~~~~~


gso-max-segs (``u32``)
~~~~~~~~~~~~~~~~~~~~~~


gso-max-size (``u32``)
~~~~~~~~~~~~~~~~~~~~~~


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


xdp (``nest``)
~~~~~~~~~~~~~~
:nested-attributes: :ref:`rt-link-attribute-set-xdp-attrs`


event (``u32``)
~~~~~~~~~~~~~~~


new-netnsid (``s32``)
~~~~~~~~~~~~~~~~~~~~~


target-netnsid (``s32``)
~~~~~~~~~~~~~~~~~~~~~~~~


carrier-up-count (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~


carrier-down-count (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~


new-ifindex (``s32``)
~~~~~~~~~~~~~~~~~~~~~


min-mtu (``u32``)
~~~~~~~~~~~~~~~~~


max-mtu (``u32``)
~~~~~~~~~~~~~~~~~


prop-list (``nest``)
~~~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`rt-link-attribute-set-link-attrs`


alt-ifname (``string``)
~~~~~~~~~~~~~~~~~~~~~~~
:multi-attr: True


perm-address (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~
:display-hint: mac


proto-down-reason (``string``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


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


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


gro-max-size (``u32``)
~~~~~~~~~~~~~~~~~~~~~~


tso-max-size (``u32``)
~~~~~~~~~~~~~~~~~~~~~~


tso-max-segs (``u32``)
~~~~~~~~~~~~~~~~~~~~~~


allmulti (``u32``)
~~~~~~~~~~~~~~~~~~


devlink-port (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~


gso-ipv4-max-size (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


gro-ipv4-max-size (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


dpll-pin (``nest``)
~~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`rt-link-attribute-set-link-dpll-pin-attrs`


.. _rt-link-attribute-set-af-spec-attrs:

af-spec-attrs
=============
inet (``nest``)
~~~~~~~~~~~~~~~
:value: 2
:nested-attributes: :ref:`rt-link-attribute-set-ifla-attrs`


inet6 (``nest``)
~~~~~~~~~~~~~~~~
:value: 10
:nested-attributes: :ref:`rt-link-attribute-set-ifla6-attrs`


mctp (``nest``)
~~~~~~~~~~~~~~~
:value: 45
:nested-attributes: :ref:`rt-link-attribute-set-mctp-attrs`


.. _rt-link-attribute-set-vfinfo-list-attrs:

vfinfo-list-attrs
=================
info (``nest``)
~~~~~~~~~~~~~~~
:nested-attributes: :ref:`rt-link-attribute-set-vfinfo-attrs`
:multi-attr: True


.. _rt-link-attribute-set-vfinfo-attrs:

vfinfo-attrs
============
mac (``binary``)
~~~~~~~~~~~~~~~~
:struct: :ref:`rt-link-definition-ifla-vf-mac`


vlan (``binary``)
~~~~~~~~~~~~~~~~~
:struct: :ref:`rt-link-definition-ifla-vf-vlan`


tx-rate (``binary``)
~~~~~~~~~~~~~~~~~~~~
:struct: :ref:`rt-link-definition-ifla-vf-tx-rate`


spoofchk (``binary``)
~~~~~~~~~~~~~~~~~~~~~
:struct: :ref:`rt-link-definition-ifla-vf-spoofchk`


link-state (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~
:struct: :ref:`rt-link-definition-ifla-vf-link-state`


rate (``binary``)
~~~~~~~~~~~~~~~~~
:struct: :ref:`rt-link-definition-ifla-vf-rate`


rss-query-en (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~
:struct: :ref:`rt-link-definition-ifla-vf-rss-query-en`


stats (``nest``)
~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`rt-link-attribute-set-vf-stats-attrs`


trust (``binary``)
~~~~~~~~~~~~~~~~~~
:struct: :ref:`rt-link-definition-ifla-vf-trust`


ib-node-guid (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~
:struct: :ref:`rt-link-definition-ifla-vf-guid`


ib-port-guid (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~
:struct: :ref:`rt-link-definition-ifla-vf-guid`


vlan-list (``nest``)
~~~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`rt-link-attribute-set-vf-vlan-attrs`


broadcast (``binary``)
~~~~~~~~~~~~~~~~~~~~~~


.. _rt-link-attribute-set-vf-stats-attrs:

vf-stats-attrs
==============
rx-packets (``u64``)
~~~~~~~~~~~~~~~~~~~~
:value: 0


tx-packets (``u64``)
~~~~~~~~~~~~~~~~~~~~


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


tx-bytes (``u64``)
~~~~~~~~~~~~~~~~~~


broadcast (``u64``)
~~~~~~~~~~~~~~~~~~~


multicast (``u64``)
~~~~~~~~~~~~~~~~~~~


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


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


tx-dropped (``u64``)
~~~~~~~~~~~~~~~~~~~~


.. _rt-link-attribute-set-vf-vlan-attrs:

vf-vlan-attrs
=============
info (``binary``)
~~~~~~~~~~~~~~~~~
:struct: :ref:`rt-link-definition-ifla-vf-vlan-info`
:multi-attr: True


.. _rt-link-attribute-set-vf-ports-attrs:

vf-ports-attrs
==============
.. _rt-link-attribute-set-port-self-attrs:

port-self-attrs
===============
.. _rt-link-attribute-set-linkinfo-attrs:

linkinfo-attrs
==============
kind (``string``)
~~~~~~~~~~~~~~~~~


data (``sub-message``)
~~~~~~~~~~~~~~~~~~~~~~
:sub-message: :ref:`rt-link-sub-message-linkinfo-data-msg`
:selector: kind


xstats (``binary``)
~~~~~~~~~~~~~~~~~~~


slave-kind (``string``)
~~~~~~~~~~~~~~~~~~~~~~~


slave-data (``sub-message``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:sub-message: :ref:`rt-link-sub-message-linkinfo-member-data-msg`
:selector: slave-kind


.. _rt-link-attribute-set-linkinfo-bond-attrs:

linkinfo-bond-attrs
===================
mode (``u8``)
~~~~~~~~~~~~~


active-slave (``u32``)
~~~~~~~~~~~~~~~~~~~~~~


miimon (``u32``)
~~~~~~~~~~~~~~~~


updelay (``u32``)
~~~~~~~~~~~~~~~~~


downdelay (``u32``)
~~~~~~~~~~~~~~~~~~~


use-carrier (``u8``)
~~~~~~~~~~~~~~~~~~~~


arp-interval (``u32``)
~~~~~~~~~~~~~~~~~~~~~~


arp-ip-target (``indexed-array``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:sub-type: u32
:byte-order: big-endian
:display-hint: ipv4


arp-validate (``u32``)
~~~~~~~~~~~~~~~~~~~~~~


arp-all-targets (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~


primary (``u32``)
~~~~~~~~~~~~~~~~~


primary-reselect (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~


fail-over-mac (``u8``)
~~~~~~~~~~~~~~~~~~~~~~


xmit-hash-policy (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~


resend-igmp (``u32``)
~~~~~~~~~~~~~~~~~~~~~


num-peer-notif (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~


all-slaves-active (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~


min-links (``u32``)
~~~~~~~~~~~~~~~~~~~


lp-interval (``u32``)
~~~~~~~~~~~~~~~~~~~~~


packets-per-slave (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


ad-lacp-rate (``u8``)
~~~~~~~~~~~~~~~~~~~~~


ad-select (``u8``)
~~~~~~~~~~~~~~~~~~


ad-info (``nest``)
~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`rt-link-attribute-set-bond-ad-info-attrs`


ad-actor-sys-prio (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


ad-user-port-key (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~


ad-actor-system (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:display-hint: mac


tlb-dynamic-lb (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~


peer-notif-delay (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~


ad-lacp-active (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~


missed-max (``u8``)
~~~~~~~~~~~~~~~~~~~


ns-ip6-target (``indexed-array``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:sub-type: binary
:display-hint: ipv6


coupled-control (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~


.. _rt-link-attribute-set-bond-ad-info-attrs:

bond-ad-info-attrs
==================
aggregator (``u16``)
~~~~~~~~~~~~~~~~~~~~


num-ports (``u16``)
~~~~~~~~~~~~~~~~~~~


actor-key (``u16``)
~~~~~~~~~~~~~~~~~~~


partner-key (``u16``)
~~~~~~~~~~~~~~~~~~~~~


partner-mac (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~
:display-hint: mac


.. _rt-link-attribute-set-bond-slave-attrs:

bond-slave-attrs
================
state (``u8``)
~~~~~~~~~~~~~~


mii-status (``u8``)
~~~~~~~~~~~~~~~~~~~


link-failure-count (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~


perm-hwaddr (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~
:display-hint: mac


queue-id (``u16``)
~~~~~~~~~~~~~~~~~~


ad-aggregator-id (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~


ad-actor-oper-port-state (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


ad-partner-oper-port-state (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


prio (``u32``)
~~~~~~~~~~~~~~


.. _rt-link-attribute-set-linkinfo-bridge-attrs:

linkinfo-bridge-attrs
=====================
forward-delay (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~


hello-time (``u32``)
~~~~~~~~~~~~~~~~~~~~


max-age (``u32``)
~~~~~~~~~~~~~~~~~


ageing-time (``u32``)
~~~~~~~~~~~~~~~~~~~~~


stp-state (``u32``)
~~~~~~~~~~~~~~~~~~~


priority (``u16``)
~~~~~~~~~~~~~~~~~~


vlan-filtering (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~


vlan-protocol (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~


group-fwd-mask (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~


root-id (``binary``)
~~~~~~~~~~~~~~~~~~~~
:struct: :ref:`rt-link-definition-ifla-bridge-id`


bridge-id (``binary``)
~~~~~~~~~~~~~~~~~~~~~~
:struct: :ref:`rt-link-definition-ifla-bridge-id`


root-port (``u16``)
~~~~~~~~~~~~~~~~~~~


root-path-cost (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~


topology-change (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~


topology-change-detected (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


hello-timer (``u64``)
~~~~~~~~~~~~~~~~~~~~~


tcn-timer (``u64``)
~~~~~~~~~~~~~~~~~~~


topology-change-timer (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


gc-timer (``u64``)
~~~~~~~~~~~~~~~~~~


group-addr (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~
:display-hint: mac


fdb-flush (``binary``)
~~~~~~~~~~~~~~~~~~~~~~


mcast-router (``u8``)
~~~~~~~~~~~~~~~~~~~~~


mcast-snooping (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~


mcast-query-use-ifaddr (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


mcast-querier (``u8``)
~~~~~~~~~~~~~~~~~~~~~~


mcast-hash-elasticity (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


mcast-hash-max (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~


mcast-last-member-cnt (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


mcast-startup-query-cnt (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


mcast-last-member-intvl (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


mcast-membership-intvl (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


mcast-querier-intvl (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


mcast-query-intvl (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


mcast-query-response-intvl (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


mcast-startup-query-intvl (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


nf-call-iptables (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~


nf-call-ip6-tables (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


nf-call-arptables (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~


vlan-default-pvid (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


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


vlan-stats-enabled (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


mcast-stats-enabled (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~


mcast-igmp-version (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


mcast-mld-version (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~


vlan-stats-per-port (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~


multi-boolopt (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~~
:struct: :ref:`rt-link-definition-br-boolopt-multi`


mcast-querier-state (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


fdb-n-learned (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~


fdb-max-learned (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~


.. _rt-link-attribute-set-linkinfo-brport-attrs:

linkinfo-brport-attrs
=====================
state (``u8``)
~~~~~~~~~~~~~~


priority (``u16``)
~~~~~~~~~~~~~~~~~~


cost (``u32``)
~~~~~~~~~~~~~~


mode (``flag``)
~~~~~~~~~~~~~~~


guard (``flag``)
~~~~~~~~~~~~~~~~


protect (``flag``)
~~~~~~~~~~~~~~~~~~


fast-leave (``flag``)
~~~~~~~~~~~~~~~~~~~~~


learning (``flag``)
~~~~~~~~~~~~~~~~~~~


unicast-flood (``flag``)
~~~~~~~~~~~~~~~~~~~~~~~~


proxyarp (``flag``)
~~~~~~~~~~~~~~~~~~~


learning-sync (``flag``)
~~~~~~~~~~~~~~~~~~~~~~~~


proxyarp-wifi (``flag``)
~~~~~~~~~~~~~~~~~~~~~~~~


root-id (``binary``)
~~~~~~~~~~~~~~~~~~~~
:struct: :ref:`rt-link-definition-ifla-bridge-id`


bridge-id (``binary``)
~~~~~~~~~~~~~~~~~~~~~~
:struct: :ref:`rt-link-definition-ifla-bridge-id`


designated-port (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~


designated-cost (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~


id (``u16``)
~~~~~~~~~~~~


no (``u16``)
~~~~~~~~~~~~


topology-change-ack (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~


config-pending (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~


message-age-timer (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


forward-delay-timer (``u64``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


hold-timer (``u64``)
~~~~~~~~~~~~~~~~~~~~


flush (``flag``)
~~~~~~~~~~~~~~~~


multicast-router (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~


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


mcast-flood (``flag``)
~~~~~~~~~~~~~~~~~~~~~~


mcast-to-ucast (``flag``)
~~~~~~~~~~~~~~~~~~~~~~~~~


vlan-tunnel (``flag``)
~~~~~~~~~~~~~~~~~~~~~~


bcast-flood (``flag``)
~~~~~~~~~~~~~~~~~~~~~~


group-fwd-mask (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~


neigh-suppress (``flag``)
~~~~~~~~~~~~~~~~~~~~~~~~~


isolated (``flag``)
~~~~~~~~~~~~~~~~~~~


backup-port (``u32``)
~~~~~~~~~~~~~~~~~~~~~


mrp-ring-open (``flag``)
~~~~~~~~~~~~~~~~~~~~~~~~


mrp-in-open (``flag``)
~~~~~~~~~~~~~~~~~~~~~~


mcast-eht-hosts-limit (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


mcast-eht-hosts-cnt (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


locked (``flag``)
~~~~~~~~~~~~~~~~~


mab (``flag``)
~~~~~~~~~~~~~~


mcast-n-groups (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~


mcast-max-groups (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~


neigh-vlan-suppress (``flag``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


backup-nhid (``u32``)
~~~~~~~~~~~~~~~~~~~~~


.. _rt-link-attribute-set-linkinfo-gre-attrs:

linkinfo-gre-attrs
==================
link (``u32``)
~~~~~~~~~~~~~~


iflags (``u16``)
~~~~~~~~~~~~~~~~


oflags (``u16``)
~~~~~~~~~~~~~~~~


ikey (``u32``)
~~~~~~~~~~~~~~


okey (``u32``)
~~~~~~~~~~~~~~


local (``binary``)
~~~~~~~~~~~~~~~~~~
:display-hint: ipv4


remote (``binary``)
~~~~~~~~~~~~~~~~~~~
:display-hint: ipv4


ttl (``u8``)
~~~~~~~~~~~~


tos (``u8``)
~~~~~~~~~~~~


pmtudisc (``u8``)
~~~~~~~~~~~~~~~~~


encap-limit (``u32``)
~~~~~~~~~~~~~~~~~~~~~


flowinfo (``u32``)
~~~~~~~~~~~~~~~~~~


flags (``u32``)
~~~~~~~~~~~~~~~


encap-type (``u16``)
~~~~~~~~~~~~~~~~~~~~


encap-flags (``u16``)
~~~~~~~~~~~~~~~~~~~~~


encap-sport (``u16``)
~~~~~~~~~~~~~~~~~~~~~


encap-dport (``u16``)
~~~~~~~~~~~~~~~~~~~~~


collect-metadata (``flag``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


ignore-df (``u8``)
~~~~~~~~~~~~~~~~~~


fwmark (``u32``)
~~~~~~~~~~~~~~~~


erspan-index (``u32``)
~~~~~~~~~~~~~~~~~~~~~~


erspan-ver (``u8``)
~~~~~~~~~~~~~~~~~~~


erspan-dir (``u8``)
~~~~~~~~~~~~~~~~~~~


erspan-hwid (``u16``)
~~~~~~~~~~~~~~~~~~~~~


.. _rt-link-attribute-set-linkinfo-geneve-attrs:

linkinfo-geneve-attrs
=====================
id (``u32``)
~~~~~~~~~~~~


remote (``binary``)
~~~~~~~~~~~~~~~~~~~
:display-hint: ipv4


ttl (``u8``)
~~~~~~~~~~~~


tos (``u8``)
~~~~~~~~~~~~


port (``u16``)
~~~~~~~~~~~~~~


collect-metadata (``flag``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


remote6 (``binary``)
~~~~~~~~~~~~~~~~~~~~
:display-hint: ipv6


udp-csum (``u8``)
~~~~~~~~~~~~~~~~~


udp-zero-csum6-tx (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~


udp-zero-csum6-rx (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~~~


label (``u32``)
~~~~~~~~~~~~~~~


ttl-inherit (``u8``)
~~~~~~~~~~~~~~~~~~~~


df (``u8``)
~~~~~~~~~~~


inner-proto-inherit (``flag``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


.. _rt-link-attribute-set-linkinfo-iptun-attrs:

linkinfo-iptun-attrs
====================
link (``u32``)
~~~~~~~~~~~~~~


local (``binary``)
~~~~~~~~~~~~~~~~~~
:display-hint: ipv4


remote (``binary``)
~~~~~~~~~~~~~~~~~~~
:display-hint: ipv4


ttl (``u8``)
~~~~~~~~~~~~


tos (``u8``)
~~~~~~~~~~~~


encap-limit (``u8``)
~~~~~~~~~~~~~~~~~~~~


flowinfo (``u32``)
~~~~~~~~~~~~~~~~~~


flags (``u16``)
~~~~~~~~~~~~~~~


proto (``u8``)
~~~~~~~~~~~~~~


pmtudisc (``u8``)
~~~~~~~~~~~~~~~~~


6rd-prefix (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~
:display-hint: ipv6


6rd-relay-prefix (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:display-hint: ipv4


6rd-prefixlen (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~


6rd-relay-prefixlen (``u16``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


encap-type (``u16``)
~~~~~~~~~~~~~~~~~~~~


encap-flags (``u16``)
~~~~~~~~~~~~~~~~~~~~~


encap-sport (``u16``)
~~~~~~~~~~~~~~~~~~~~~


encap-dport (``u16``)
~~~~~~~~~~~~~~~~~~~~~


collect-metadata (``flag``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~


fwmark (``u32``)
~~~~~~~~~~~~~~~~


.. _rt-link-attribute-set-linkinfo-tun-attrs:

linkinfo-tun-attrs
==================
owner (``u32``)
~~~~~~~~~~~~~~~


group (``u32``)
~~~~~~~~~~~~~~~


type (``u8``)
~~~~~~~~~~~~~


pi (``u8``)
~~~~~~~~~~~


vnet-hdr (``u8``)
~~~~~~~~~~~~~~~~~


persist (``u8``)
~~~~~~~~~~~~~~~~


multi-queue (``u8``)
~~~~~~~~~~~~~~~~~~~~


num-queues (``u32``)
~~~~~~~~~~~~~~~~~~~~


num-disabled-queues (``u32``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


.. _rt-link-attribute-set-linkinfo-vlan-attrs:

linkinfo-vlan-attrs
===================
id (``u16``)
~~~~~~~~~~~~


flag (``binary``)
~~~~~~~~~~~~~~~~~
:struct: :ref:`rt-link-definition-ifla-vlan-flags`


egress-qos (``nest``)
~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`rt-link-attribute-set-ifla-vlan-qos`


ingress-qos (``nest``)
~~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`rt-link-attribute-set-ifla-vlan-qos`


protocol (``u16``)
~~~~~~~~~~~~~~~~~~
:enum: :ref:`rt-link-definition-vlan-protocols`
:byte-order: big-endian


.. _rt-link-attribute-set-ifla-vlan-qos:

ifla-vlan-qos
=============
mapping (``binary``)
~~~~~~~~~~~~~~~~~~~~
:multi-attr: True
:struct: :ref:`rt-link-definition-ifla-vlan-qos-mapping`


.. _rt-link-attribute-set-linkinfo-vrf-attrs:

linkinfo-vrf-attrs
==================
table (``u32``)
~~~~~~~~~~~~~~~


.. _rt-link-attribute-set-xdp-attrs:

xdp-attrs
=========
fd (``s32``)
~~~~~~~~~~~~


attached (``u8``)
~~~~~~~~~~~~~~~~~


flags (``u32``)
~~~~~~~~~~~~~~~


prog-id (``u32``)
~~~~~~~~~~~~~~~~~


drv-prog-id (``u32``)
~~~~~~~~~~~~~~~~~~~~~


skb-prog-id (``u32``)
~~~~~~~~~~~~~~~~~~~~~


hw-prog-id (``u32``)
~~~~~~~~~~~~~~~~~~~~


expected-fd (``s32``)
~~~~~~~~~~~~~~~~~~~~~


.. _rt-link-attribute-set-ifla-attrs:

ifla-attrs
==========
conf (``binary``)
~~~~~~~~~~~~~~~~~
:struct: :ref:`rt-link-definition-ipv4-devconf`


.. _rt-link-attribute-set-ifla6-attrs:

ifla6-attrs
===========
flags (``u32``)
~~~~~~~~~~~~~~~


conf (``binary``)
~~~~~~~~~~~~~~~~~
:struct: :ref:`rt-link-definition-ipv6-devconf`


stats (``binary``)
~~~~~~~~~~~~~~~~~~
:struct: :ref:`rt-link-definition-ifla-inet6-stats`


mcast (``binary``)
~~~~~~~~~~~~~~~~~~


cacheinfo (``binary``)
~~~~~~~~~~~~~~~~~~~~~~
:struct: :ref:`rt-link-definition-ifla-cacheinfo`


icmp6-stats (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~
:struct: :ref:`rt-link-definition-ifla-icmp6-stats`


token (``binary``)
~~~~~~~~~~~~~~~~~~


addr-gen-mode (``u8``)
~~~~~~~~~~~~~~~~~~~~~~


ra-mtu (``u32``)
~~~~~~~~~~~~~~~~


.. _rt-link-attribute-set-mctp-attrs:

mctp-attrs
==========
mctp-net (``u32``)
~~~~~~~~~~~~~~~~~~


.. _rt-link-attribute-set-stats-attrs:

stats-attrs
===========
link-64 (``binary``)
~~~~~~~~~~~~~~~~~~~~
:struct: :ref:`rt-link-definition-rtnl-link-stats64`


link-xstats (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~


link-xstats-slave (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


link-offload-xstats (``nest``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:nested-attributes: :ref:`rt-link-attribute-set-link-offload-xstats`


af-spec (``binary``)
~~~~~~~~~~~~~~~~~~~~


.. _rt-link-attribute-set-link-offload-xstats:

link-offload-xstats
===================
cpu-hit (``binary``)
~~~~~~~~~~~~~~~~~~~~


hw-s-info (``indexed-array``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:sub-type: nest
:nested-attributes: :ref:`rt-link-attribute-set-hw-s-info-one`


l3-stats (``binary``)
~~~~~~~~~~~~~~~~~~~~~


.. _rt-link-attribute-set-hw-s-info-one:

hw-s-info-one
=============
request (``u8``)
~~~~~~~~~~~~~~~~


used (``u8``)
~~~~~~~~~~~~~


.. _rt-link-attribute-set-link-dpll-pin-attrs:

link-dpll-pin-attrs
===================
id (``u32``)
~~~~~~~~~~~~


.. _rt-link-attribute-set-linkinfo-netkit-attrs:

linkinfo-netkit-attrs
=====================
peer-info (``binary``)
~~~~~~~~~~~~~~~~~~~~~~


primary (``u8``)
~~~~~~~~~~~~~~~~


policy (``u32``)
~~~~~~~~~~~~~~~~
:enum: :ref:`rt-link-definition-netkit-policy`


peer-policy (``u32``)
~~~~~~~~~~~~~~~~~~~~~
:enum: :ref:`rt-link-definition-netkit-policy`


mode (``u32``)
~~~~~~~~~~~~~~
:enum: :ref:`rt-link-definition-netkit-mode`



------------
Sub-messages
------------


.. _rt-link-sub-message-linkinfo-data-msg:

linkinfo-data-msg
=================
- **bond**
    :attribute-set: :ref:`rt-link-attribute-set-linkinfo-bond-attrs`


- **bridge**
    :attribute-set: :ref:`rt-link-attribute-set-linkinfo-bridge-attrs`


- **erspan**
    :attribute-set: :ref:`rt-link-attribute-set-linkinfo-gre-attrs`


- **gre**
    :attribute-set: :ref:`rt-link-attribute-set-linkinfo-gre-attrs`


- **gretap**
    :attribute-set: :ref:`rt-link-attribute-set-linkinfo-gre-attrs`


- **geneve**
    :attribute-set: :ref:`rt-link-attribute-set-linkinfo-geneve-attrs`


- **ipip**
    :attribute-set: :ref:`rt-link-attribute-set-linkinfo-iptun-attrs`


- **sit**
    :attribute-set: :ref:`rt-link-attribute-set-linkinfo-iptun-attrs`


- **tun**
    :attribute-set: :ref:`rt-link-attribute-set-linkinfo-tun-attrs`


- **vlan**
    :attribute-set: :ref:`rt-link-attribute-set-linkinfo-vlan-attrs`


- **vrf**
    :attribute-set: :ref:`rt-link-attribute-set-linkinfo-vrf-attrs`


- **netkit**
    :attribute-set: :ref:`rt-link-attribute-set-linkinfo-netkit-attrs`


.. _rt-link-sub-message-linkinfo-member-data-msg:

linkinfo-member-data-msg
========================
- **bridge**
    :attribute-set: :ref:`rt-link-attribute-set-linkinfo-brport-attrs`


- **bond**
    :attribute-set: :ref:`rt-link-attribute-set-bond-slave-attrs`