.. 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: [``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``, ``gso-max-size``, ``gso-max-segs``, ``gro-max-size``, ``gso-ipv4-max-size``, ``gro-ipv4-max-size``, ``af-spec``]



.. _rt-link-operation-newlink-ntf:

newlink-ntf
===========
Notify that a link has been created

:value: 16
:notify: getlink
:fixed-header: :ref:`rt-link-definition-ifinfomsg`


.. _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: [``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: [``ifname``, ``alt-ifname``, ``ext-mask``, ``target-netnsid``]

    **reply**
        :attributes: [``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``, ``target-netnsid``, ``carrier-up-count``, ``carrier-down-count``, ``new-ifindex``, ``min-mtu``, ``max-mtu``, ``prop-list``, ``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: [``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``, ``target-netnsid``, ``carrier-up-count``, ``carrier-down-count``, ``new-ifindex``, ``min-mtu``, ``max-mtu``, ``prop-list``, ``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: [``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``, ``target-netnsid``, ``carrier-up-count``, ``carrier-down-count``, ``new-ifindex``, ``min-mtu``, ``max-mtu``, ``prop-list``, ``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**


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

:dump:
    **request**


    **reply**
        :attributes: [``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
:header: linux/if.h
:enum-name: net-device-flags
:name-prefix: iff-


: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
:enum-name: None


: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
============
:enum-name: None
:type: enum


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


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

ipv6-devconf
============
:enum-name: None
:type: enum


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


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

ifla-icmp6-stats
================
:enum-name: None
:type: enum


:entries:
    :num: 
    :inmsgs: 
    :inerrors: 
    :outmsgs: 
    :outerrors: 
    :csumerrors: 
    :ratelimithost: 


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

ifla-inet6-stats
================
:enum-name: None
:type: enum


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


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

br-boolopt-multi
================
:type: struct
:header: linux/if_bridge.h


: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
:enum-name: None


: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-geneve-port-range:

ifla-geneve-port-range
======================
:type: struct


:members:
    :low (``u16``): 
    :high (``u16``): 


.. _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
:enum-name: None


: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
:enum-name: None


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


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

netkit-policy
=============
:type: enum
:enum-name: None


:entries:
    :forward: 
    :blackhole: 


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

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


:entries:
    :l2: 
    :l3: 


.. _rt-link-definition-netkit-scrub:

netkit-scrub
============
:type: enum
:enum-name: None


:entries:
    :none: 
    :default: 


.. _rt-link-definition-ovpn-mode:

ovpn-mode
=========
:enum-name: ovpn-mode
:name-prefix: ovpn-mode
:type: enum


:entries:
    - ``p2p``
    - ``mp``



--------------
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-prop-list-link-attrs`


alt-ifname (``string``)
~~~~~~~~~~~~~~~~~~~~~~~


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`


max-pacing-offload-horizon (``uint``)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:doc: EDT offload horizon supported by the device (in nsec).


netns-immutable (``u8``)
~~~~~~~~~~~~~~~~~~~~~~~~


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

prop-list-link-attrs
====================
alt-ifname
~~~~~~~~~~
:multi-attr: True


.. _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-ip6tables (``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``)
~~~~~~~~~~~~~~~~
:byte-order: big-endian


oflags (``u16``)
~~~~~~~~~~~~~~~~
:byte-order: big-endian


ikey (``u32``)
~~~~~~~~~~~~~~
:byte-order: big-endian


okey (``u32``)
~~~~~~~~~~~~~~
:byte-order: big-endian


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


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


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


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


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


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


flowinfo (``u32``)
~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


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


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


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


encap-sport (``u16``)
~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


encap-dport (``u16``)
~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


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-gre6-attrs:

linkinfo-gre6-attrs
===================
link
~~~~


iflags
~~~~~~


oflags
~~~~~~


ikey
~~~~


okey
~~~~


local
~~~~~
:display-hint: ipv6


remote
~~~~~~
:display-hint: ipv6


ttl
~~~


encap-limit
~~~~~~~~~~~


flowinfo
~~~~~~~~


flags
~~~~~


encap-type
~~~~~~~~~~


encap-flags
~~~~~~~~~~~


encap-sport
~~~~~~~~~~~


encap-dport
~~~~~~~~~~~


collect-metadata
~~~~~~~~~~~~~~~~


fwmark
~~~~~~


erspan-index
~~~~~~~~~~~~


erspan-ver
~~~~~~~~~~


erspan-dir
~~~~~~~~~~


erspan-hwid
~~~~~~~~~~~


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

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


ikey (``u32``)
~~~~~~~~~~~~~~
:byte-order: big-endian


okey (``u32``)
~~~~~~~~~~~~~~
:byte-order: big-endian


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


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


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


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

linkinfo-vti6-attrs
===================
link
~~~~


ikey
~~~~


okey
~~~~


local
~~~~~
:display-hint: ipv6


remote
~~~~~~
:display-hint: ipv6


fwmark
~~~~~~


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

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


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


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


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


port (``u16``)
~~~~~~~~~~~~~~
:byte-order: big-endian


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


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


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


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


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


label (``u32``)
~~~~~~~~~~~~~~~
:byte-order: big-endian


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


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


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


port-range (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~
:struct: :ref:`rt-link-definition-ifla-geneve-port-range`


.. _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``)
~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


flags (``u16``)
~~~~~~~~~~~~~~~
:byte-order: big-endian


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``)
~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


encap-dport (``u16``)
~~~~~~~~~~~~~~~~~~~~~
:byte-order: big-endian


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


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


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

linkinfo-ip6tnl-attrs
=====================
link
~~~~


local
~~~~~
:display-hint: ipv6


remote
~~~~~~
:display-hint: ipv6


ttl
~~~


encap-limit
~~~~~~~~~~~


flowinfo
~~~~~~~~


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


proto
~~~~~


encap-type
~~~~~~~~~~


encap-flags
~~~~~~~~~~~


encap-sport
~~~~~~~~~~~


encap-dport
~~~~~~~~~~~


collect-metadata
~~~~~~~~~~~~~~~~


fwmark
~~~~~~


.. _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``)
~~~~~~~~~~~~


flags (``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``)
~~~~~~~~~~~~~~~~~
:sub-type: u32
:doc: u32 indexed by ipv4-devconf - 1 on output, on input it's a nest


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

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


conf (``binary``)
~~~~~~~~~~~~~~~~~
:sub-type: u32
:doc: u32 indexed by ipv6-devconf - 1 on output, on input it's a nest


stats (``binary``)
~~~~~~~~~~~~~~~~~~
:sub-type: u64


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


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


icmp6stats (``binary``)
~~~~~~~~~~~~~~~~~~~~~~~
:sub-type: u64


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


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


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


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

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


phys-binding (``u8``)
~~~~~~~~~~~~~~~~~~~~~


.. _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`


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


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


headroom (``u16``)
~~~~~~~~~~~~~~~~~~


tailroom (``u16``)
~~~~~~~~~~~~~~~~~~


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

linkinfo-ovpn-attrs
===================
mode (``u8``)
~~~~~~~~~~~~~
:enum: :ref:`rt-link-definition-ovpn-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`


- **ip6gre**
    :attribute-set: :ref:`rt-link-attribute-set-linkinfo-gre6-attrs`


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


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


- **ip6tnl**
    :attribute-set: :ref:`rt-link-attribute-set-linkinfo-ip6tnl-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`


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


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


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


- **ovpn**
    :attribute-set: :ref:`rt-link-attribute-set-linkinfo-ovpn-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`

