Constants

try to find source address in routing lookups

Destination port

Destination address

flow/class id

mask for netfilter mark

Target to jump to

Interface name

IP protocol

iif or oif is l3mdev goto its table

priority/preference

Originator of the rule

Source port

Source address

Extended table id

UID range

Drop without notification

Jump to another rule

No operation

Drop with EACCES

Pass to fixed table

Drop with ENETUNREACH

see https://github.com/torvalds/linux/blob/master/include/uapi/linux/fib_rules.h

Link supports multicast routing

Driver supports setting media type (only used by ARM ethernet)

Link supports broadcasting

Tell driver to do debugging (currently unused)

Driver signals IFF_DORMANT

Link loopback network

Link layer is operational

Master of a load balancer (bonding)

Link supports multicasting

ARP is not supported

u32erface is point-to-point link

Link selects port automatically (only used by ARM ethernet)

Receive all packets.

Link is up and carrier is OK (RFC2863 OPER_UP)

Slave of a load balancer

Link is up (administratively).

Neighbour cache entry type: entry for cache statistics

Neighbour cache entry type: entry for a network layer destination address

Neighbour cache entry type: entry for a link layer destination address

Neighbour cache entry type: unknown type

Request for an acknowledgment on success. Typical direction of request is from user space (CPC) to kernel space (FEC).

extended ACK TVLs were included

Add to the end of the object list.

Return an atomic snapshot of the table. Requires CAP_NET_ADMIN capability or a effective UID of 0.

request was capped

Create object if it doesn’t already exist.

Dump was filtered as requested

Dump was inconsistent due to sequence change

Echo this request. Typical direction of request is from user space (CPC) to kernel space (FEC).

Don’t replace if the object already exists.

Return all entries matching criteria passed in message content.

Indicates the message is part of a multipart message terminated by NLMSG_DONE

Do not delete recursively

Replace existing matching object.

Must be set on all request messages (typically from user space to kernel space)

Return the complete table instead of a single entry.

Neighbour cache entry state: the validation of this entry is currently delayed

Neighbour cache entry state: the validation of this entry has failed

Neighbour cache entry state: the neighbour has not (yet) been resolved

Neighbour cache entry state: entry is valid and the kernel will not try to validate or refresh it.

Neighbour cache entry state: pseudo state for fresh entries or before deleting entries

Neighbour cache entry state: entry is valid forever and can only be removed explicitly from userspace.

Neighbour cache entry state: the neighbour entry is being probed

Neighbour cache entry state: the neighbour entry is valid until its lifetime expires

Neighbour cache entry state: the neighbour entry is valid but suspicious

This route is cloned. Cloned routes are routes coming from the cache instead of the FIB. For IPv4, the cache was removed in Linux 3.6 (see IPv4 route lookup on Linux for more information about IPv4 routing)

Multipath equalizer (not yet implemented)

Return the full FIB lookup match (see commit b61798130f1be5bff08712308126c2d7ebe390ef)

Show the table from which the lookup result comes. Note that before commit c36ba6603a11, Linux would always hardcode RouteMessageHeader.table (known as rtmsg.rtm_table in the kernel) to RT_TABLE_MAIN.

If the route changes, notify the user via rtnetlink

Prefix addresses

A local broadcast route (sent as a unicast)

A packet dropping route

A local broadcast route (sent as a broadcast)

A local interface route

A multicast route

A network address translation rule

A packet rejection route

Continue routing lookup in another table

A gateway or direct route

An unreachable destination

Unknown route

Refer to an external resolver (not implemented)

Route was learnt during boot

Route was learnt by the kernel

Route was learnt by an ICMP redirect

Route was set statically

The destination is valid only on this host

The destination is link local

Destination doesn’t exist

(IPv6 only) the destination is site local, i.e. it is valid inside this site. This is for interior routes in the local autonomous system

The destination is globally valid.

A route table introduced for compatibility with old software which do not support table IDs greater than 255. See commit 709772e6e065 in the kernel:

The default routing table.

The local table.

The main routing table.

An unspecified routing table