Logo of The Linux Kernel

The Linux Kernel

7.3.0

Quick search

Contents

Working with the development community

  • Development process
  • Submitting patches
  • Code of conduct
  • Maintainer handbook
  • All development-process docs

Internal API manuals

  • Core API
  • Driver APIs
  • Subsystems
    • Core subsystems
    • Human interfaces
    • Networking interfaces
      • Networking
      • NetLabel
      • InfiniBand
      • MHI
    • Storage interfaces
    • Other subsystems
  • Locking

Development tools and processes

  • Licensing rules
  • Writing documentation
  • Development tools
  • Testing guide
  • Hacking guide
  • Tracing
  • Fault injection
  • Livepatching
  • Rust

User-oriented documentation

  • Administration
  • Build system
  • Reporting issues
  • Userspace tools
  • Userspace API

Firmware-related documentation

  • Firmware
  • Firmware and Devicetree

Architecture-specific documentation

  • CPU architectures

Other documentation

  • Unsorted documentation

Translations

  • Translations

This Page

  • Show Source

Family rt-route netlink specification¶

Contents

  • Family rt-route netlink specification

    • Summary

    • Operations

      • getroute

      • newroute

      • delroute

      • newroute-ntf

      • delroute-ntf

    • Multicast groups

    • Definitions

      • rtm-type

      • rtmsg

      • rta-cacheinfo

      • del-reason

      • encap-type

      • seg6-local-actions

      • seg6-local-flv-ops

    • Attribute sets

      • route-attrs

      • metrics

      • mpls-iptunnel

      • lwtunnel-ip

      • ila-attrs

      • lwtunnel-ip6

      • seg6-iptunnel

      • lwt-bpf

      • seg6-local

      • rpl-iptunnel

      • ioam6-iptunnel

      • lwt-xfrm

      • lwtunnel-ip-opts

      • lwtunnel-ip-opt-vxlan

      • lwtunnel-ip-opt-erspan

      • lwt-bpf-prog

      • seg6-local-bpf

      • seg6-local-cnt

      • seg6-local-flv

    • Sub-messages

      • encap-data

Summary¶

Route configuration over rtnetlink.

Operations¶

getroute¶

Dump route information.

attribute-set:

route-attrs

do:
request
attributes:

[src, dst, iif, oif, ip-proto, sport, dport, mark, uid, flowlabel]

reply
attributes:

[dst, src, iif, oif, gateway, priority, prefsrc, metrics, multipath, flow, cacheinfo, table, mark, mfc-stats, via, newdst, pref, encap-type, encap, expires, pad, uid, ttl-propagate, ip-proto, sport, dport, nh-id, flowlabel, del-reason]

dump:
request
attributes:

[]

reply
attributes:

[dst, src, iif, oif, gateway, priority, prefsrc, metrics, multipath, flow, cacheinfo, table, mark, mfc-stats, via, newdst, pref, encap-type, encap, expires, pad, uid, ttl-propagate, ip-proto, sport, dport, nh-id, flowlabel, del-reason]

newroute¶

Create a new route

attribute-set:

route-attrs

do:
request
attributes:

[dst, src, iif, oif, gateway, priority, prefsrc, metrics, multipath, flow, cacheinfo, table, mark, mfc-stats, via, newdst, pref, encap-type, encap, expires, pad, uid, ttl-propagate, ip-proto, sport, dport, nh-id, flowlabel]

delroute¶

Delete an existing route

attribute-set:

route-attrs

do:
request
attributes:

[dst, src, iif, oif, gateway, priority, prefsrc, metrics, multipath, flow, cacheinfo, table, mark, mfc-stats, via, newdst, pref, encap-type, encap, expires, pad, uid, ttl-propagate, ip-proto, sport, dport, nh-id, flowlabel]

newroute-ntf¶

Notification about a created route.

value:

24

notify:

getroute

delroute-ntf¶

Notification about a deleted route.

value:

25

notify:

getroute

Multicast groups¶

  • rtnlgrp-ipv4-route

  • rtnlgrp-ipv6-route

Definitions¶

rtm-type¶

name-prefix:

rtn-

enum-name:

None

type:

enum

entries:
  • unspec

  • unicast

  • local

  • broadcast

  • anycast

  • multicast

  • blackhole

  • unreachable

  • prohibit

  • throw

  • nat

  • xresolve

rtmsg¶

type:

struct

members:
rtm-family (u8):

rtm-dst-len (u8):

rtm-src-len (u8):

rtm-tos (u8):

rtm-table (u8):

rtm-protocol (u8):

rtm-scope (u8):

rtm-type (u8):

rtm-flags (u32):

rta-cacheinfo¶

type:

struct

members:
rta-clntref (u32):

rta-lastuse (u32):

rta-expires (u32):

rta-error (u32):

rta-used (u32):

del-reason¶

type:

enum

name-prefix:

rt-del-reason-

enum-name:

rt-del-reason

doc:

Why the kernel deleted a route. New causes may be appended. The value space is family-agnostic, a value is never reinterpreted per address family.

entries:
unspec:

The deletion path does not record a cause.

expired:

The RTF_EXPIRES lifetime ran out and the route was garbage collected.

ra-withdrawn:

A Router Advertisement withdrew the route with a zero lifetime.

encap-type¶

type:

enum

name-prefix:

lwtunnel-encap-

enum-name:

None

entries:
  • none

  • mpls

  • ip

  • ila

  • ip6

  • seg6

  • bpf

  • seg6-local

  • rpl

  • ioam6

  • xfrm

seg6-local-actions¶

type:

enum

name-prefix:

seg6-local-action-

enum-name:

None

entries:
  • unspec

  • end

  • end-x

  • end-t

  • end-dx2

  • end-dx6

  • end-dx4

  • end-dt6

  • end-dt4

  • end-b6

  • end-b6-encap

  • end-bm

  • end-s

  • end-as

  • end-am

  • end-bpf

  • end-dt46

seg6-local-flv-ops¶

type:

enum

name-prefix:

seg6-local-flv-op-

enum-name:

None

entries:
unspec:

psp:

usp:

usd:

next-csid:

Attribute sets¶

route-attrs¶

dst (binary)¶

display-hint:

ipv4-or-v6

src (binary)¶

display-hint:

ipv4-or-v6

iif (u32)¶

oif (u32)¶

gateway (binary)¶

display-hint:

ipv4-or-v6

priority (u32)¶

prefsrc (binary)¶

display-hint:

ipv4-or-v6

metrics (nest)¶

nested-attributes:

metrics

multipath (binary)¶

protoinfo (binary)¶

flow (u32)¶

cacheinfo (binary)¶

struct:

rta-cacheinfo

session (binary)¶

mp-algo (binary)¶

table (u32)¶

mark (u32)¶

mfc-stats (binary)¶

via (binary)¶

newdst (binary)¶

pref (u8)¶

encap-type (u16)¶

enum:

encap-type

encap (sub-message)¶

sub-message:

encap-data

selector:

encap-type

expires (u32)¶

pad (binary)¶

uid (u32)¶

ttl-propagate (u8)¶

ip-proto (u8)¶

sport (u16)¶

dport (u16)¶

nh-id (u32)¶

flowlabel (u32)¶

byte-order:

big-endian

display-hint:

hex

del-reason (u32)¶

enum:

del-reason

doc:

Emitted only on RTM_DELROUTE notifications, and only when the deletion path records a cause. An absent attribute means either an older kernel or a deletion path that does not record its cause, consumers must treat absent and unspec identically. Currently only IPv6 deletion paths record a cause. The attribute is notification-only, the kernel rejects it in requests.

metrics¶

unspec (unused)¶

value:

0

lock (u32)¶

mtu (u32)¶

window (u32)¶

rtt (u32)¶

rttvar (u32)¶

ssthresh (u32)¶

cwnd (u32)¶

advmss (u32)¶

reordering (u32)¶

hoplimit (u32)¶

initcwnd (u32)¶

features (u32)¶

rto-min (u32)¶

initrwnd (u32)¶

quickack (u32)¶

cc-algo (string)¶

fastopen-no-cookie (u32)¶

mpls-iptunnel¶

dst (binary)¶

ttl (u8)¶

lwtunnel-ip¶

id (u64)¶

byte-order:

big-endian

dst (u32)¶

byte-order:

big-endian

display-hint:

ipv4

src (u32)¶

byte-order:

big-endian

display-hint:

ipv4

ttl (u8)¶

tos (u8)¶

flags (u16)¶

byte-order:

big-endian

pad (pad)¶

opts (nest)¶

nested-attributes:

lwtunnel-ip-opts

ila-attrs¶

locator (u64)¶

byte-order:

big-endian

identifier (u64)¶

locator-match (u64)¶

byte-order:

big-endian

ifindex (s32)¶

dir (u32)¶

pad (pad)¶

csum-mode (u8)¶

ident-type (u8)¶

hook-type (u8)¶

lwtunnel-ip6¶

id (u64)¶

byte-order:

big-endian

dst (binary)¶

display-hint:

ipv6

src (binary)¶

display-hint:

ipv6

hoplimit (u8)¶

tc (u8)¶

flags (u16)¶

byte-order:

big-endian

pad (pad)¶

opts (nest)¶

nested-attributes:

lwtunnel-ip-opts

seg6-iptunnel¶

srh (binary)¶

src (binary)¶

display-hint:

ipv6

table (u32)¶

lwt-bpf¶

in (nest)¶

nested-attributes:

lwt-bpf-prog

out (nest)¶

nested-attributes:

lwt-bpf-prog

xmit (nest)¶

nested-attributes:

lwt-bpf-prog

xmit-headroom (u32)¶

seg6-local¶

action (u32)¶

enum:

seg6-local-actions

srh (binary)¶

table (u32)¶

nh4 (u32)¶

byte-order:

big-endian

display-hint:

ipv4

nh6 (binary)¶

display-hint:

ipv6

iif (u32)¶

oif (u32)¶

bpf (nest)¶

nested-attributes:

seg6-local-bpf

vrftable (u32)¶

counters (nest)¶

nested-attributes:

seg6-local-cnt

flavors (nest)¶

nested-attributes:

seg6-local-flv

rpl-iptunnel¶

srh (binary)¶

ioam6-iptunnel¶

mode (u8)¶

dst (binary)¶

display-hint:

ipv6

trace (binary)¶

freq-k (u32)¶

freq-n (u32)¶

src (binary)¶

display-hint:

ipv6

lwt-xfrm¶

if-id (u32)¶

link (u32)¶

lwtunnel-ip-opts¶

geneve (binary)¶

vxlan (nest)¶

nested-attributes:

lwtunnel-ip-opt-vxlan

erspan (nest)¶

nested-attributes:

lwtunnel-ip-opt-erspan

lwtunnel-ip-opt-vxlan¶

gbp (u32)¶

lwtunnel-ip-opt-erspan¶

ver (u8)¶

index (u32)¶

byte-order:

big-endian

dir (u8)¶

hwid (u8)¶

lwt-bpf-prog¶

fd (u32)¶

name (string)¶

seg6-local-bpf¶

prog (u32)¶

prog-name (string)¶

seg6-local-cnt¶

pad (pad)¶

packets (u64)¶

bytes (u64)¶

errors (u64)¶

seg6-local-flv¶

operation (u32)¶

enum:

seg6-local-flv-ops

enum-as-flags:

True

lcblock-bits (u8)¶

lcnode-fn-bits (u8)¶

Sub-messages¶

encap-data¶

  • mpls
    attribute-set:

    mpls-iptunnel

  • ip
    attribute-set:

    lwtunnel-ip

  • ila
    attribute-set:

    ila-attrs

  • ip6
    attribute-set:

    lwtunnel-ip6

  • seg6
    attribute-set:

    seg6-iptunnel

  • bpf
    attribute-set:

    lwt-bpf

  • seg6-local
    attribute-set:

    seg6-local

  • rpl
    attribute-set:

    rpl-iptunnel

  • ioam6
    attribute-set:

    ioam6-iptunnel

  • xfrm
    attribute-set:

    lwt-xfrm

©The kernel development community. | Powered by Sphinx 9.1.0 & Alabaster 0.7.16 | Page source