diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2018-01-15 20:22:27 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2018-01-15 20:22:27 +0100 |
| commit | 47501d0f3be031c9ef6121e48050b5d2d4d5a7f5 (patch) | |
| tree | 9ab03f75bc1d34c3c37a0ae5b0f5f0126b8e0371 /sys/linux/socket_netlink_route.txt | |
| parent | 837a69870d1419bf706dd6c12de82adcc0137030 (diff) | |
sys/linux: more NETLINK_ROUTE descriptions
Diffstat (limited to 'sys/linux/socket_netlink_route.txt')
| -rw-r--r-- | sys/linux/socket_netlink_route.txt | 136 |
1 files changed, 128 insertions, 8 deletions
diff --git a/sys/linux/socket_netlink_route.txt b/sys/linux/socket_netlink_route.txt index f20b33ef1..4a2d27f59 100644 --- a/sys/linux/socket_netlink_route.txt +++ b/sys/linux/socket_netlink_route.txt @@ -12,6 +12,7 @@ include <uapi/linux/netlink.h> include <uapi/linux/netconf.h> include <uapi/linux/rtnetlink.h> include <uapi/linux/lwtunnel.h> +include <uapi/linux/neighbour.h> resource sock_nl_route[sock_netlink] @@ -24,25 +25,49 @@ netlink_msg_route [ getlink netlink_msg[RTM_GETLINK, ifinfomsg[AF_UNSPEC], ifla_policy] setlink netlink_msg[RTM_SETLINK, ifinfomsg[AF_UNSPEC], ifla_policy] dellink netlink_msg[RTM_DELLINK, ifinfomsg[AF_UNSPEC], ifla_policy] + getaddr netlink_msg[RTM_GETADDR, rtgenmsg[AF_UNSPEC], void] + getroute netlink_msg[RTM_GETROUTE, rtgenmsg[AF_UNSPEC], void] + getnetconf netlink_msg[RTM_GETNETCONF, rtgenmsg[AF_UNSPEC], void] + getstats netlink_msg[RTM_GETSTATS, rtgenmsg[AF_UNSPEC], void] + newneigh netlink_msg[RTM_NEWNEIGH, ndmsg, nd_policy] + delneigh netlink_msg[RTM_DELNEIGH, ndmsg, nd_policy] + getneigh netlink_msg[RTM_GETNEIGH, rtgenmsg[AF_UNSPEC], void] + getneightbl netlink_msg[RTM_GETNEIGHTBL, rtgenmsg[AF_UNSPEC], void] + setneightbl netlink_msg[RTM_SETNEIGHTBL, ndtmsg, nl_neightbl_policy] ipv4_newaddr netlink_msg[RTM_NEWADDR, ifaddrmsg[AF_INET], ifa_ipv4_policy] ipv4_deladdr netlink_msg[RTM_DELADDR, ifaddrmsg[AF_INET], ifa_ipv4_policy] ipv4_getaddr netlink_msg[RTM_GETADDR, ifaddrmsg[AF_INET], ifa_ipv4_policy] - ipv4_getnetconf netlink_msg[RTM_GETNETCONF, netconfmsg[AF_INET], devconf_ip_policy] ipv4_newroute netlink_msg[RTM_NEWROUTE, rtmsg[AF_INET], rtm_ipv4_policy] ipv4_delroute netlink_msg[RTM_DELROUTE, rtmsg[AF_INET], rtm_ipv4_policy] ipv4_getroute netlink_msg[RTM_GETROUTE, rtgenmsg[AF_INET], void] - - ipmr_newroute netlink_msg[RTM_NEWROUTE, rtmsg[RTNL_FAMILY_IPMR], rtm_ipv4_policy] - ipmr_delroute netlink_msg[RTM_DELROUTE, rtmsg[RTNL_FAMILY_IPMR], rtm_ipv4_policy] - ipmr_getroute netlink_msg[RTM_GETROUTE, rtgenmsg[RTNL_FAMILY_IPMR], void] + ipv4_getnetconf netlink_msg[RTM_GETNETCONF, netconfmsg[AF_INET], devconf_ip_policy] ipv6_newaddr netlink_msg[RTM_NEWADDR, ifaddrmsg[AF_INET6], ifa_ipv6_policy] ipv6_deladdr netlink_msg[RTM_DELADDR, ifaddrmsg[AF_INET6], ifa_ipv6_policy] ipv6_getaddr netlink_msg[RTM_GETADDR, ifaddrmsg[AF_INET6], ifa_ipv6_policy] + ipv6_newroute netlink_msg[RTM_NEWROUTE, rtmsg[AF_INET6], rtm_ipv6_policy] + ipv6_delroute netlink_msg[RTM_DELROUTE, rtmsg[AF_INET6], rtm_ipv6_policy] + ipv6_getroute netlink_msg[RTM_GETROUTE, rtmsg[AF_INET6], rtm_ipv6_policy] ipv6_getmulticast netlink_msg[RTM_GETMULTICAST, rtgenmsg[AF_INET6], void] ipv6_getanyicast netlink_msg[RTM_GETANYCAST, rtgenmsg[AF_INET6], void] ipv6_getnetconf netlink_msg[RTM_GETNETCONF, netconfmsg[AF_INET6], devconf_ip_policy] + + ipmr_newroute netlink_msg[RTM_NEWROUTE, rtmsg[RTNL_FAMILY_IPMR], rtm_ipv4_policy] + ipmr_delroute netlink_msg[RTM_DELROUTE, rtmsg[RTNL_FAMILY_IPMR], rtm_ipv4_policy] + ipmr_getroute netlink_msg[RTM_GETROUTE, rtgenmsg[RTNL_FAMILY_IPMR], void] + + mpls_newroute netlink_msg[RTM_NEWROUTE, rtmsg[AF_MPLS], rtm_mpls_policy] + mpls_delroute netlink_msg[RTM_DELROUTE, rtmsg[AF_MPLS], rtm_mpls_policy] + mpls_getroute netlink_msg[RTM_GETROUTE, rtmsg[AF_MPLS], rtm_mpls_policy] + mpls_getnetconf netlink_msg[RTM_GETNETCONF, netconfmsg[AF_MPLS], devconf_mpls_policy] + + bridge_newneigh netlink_msg[RTM_NEWNEIGH, ndmsg, nd_policy] + bridge_delneigh netlink_msg[RTM_DELNEIGH, ndmsg, nd_policy] + bridge_getneigh netlink_msg[RTM_GETNEIGH, ifinfomsg[AF_BRIDGE], ifla_policy] + bridge_getlink netlink_msg[RTM_GETLINK, ifinfomsg[AF_BRIDGE], ifla_policy] + bridge_setlink netlink_msg[RTM_SETLINK, ifinfomsg[AF_BRIDGE], ifla_policy] + bridge_dellink netlink_msg[RTM_DELLINK, ifinfomsg[AF_BRIDGE], ifla_policy] ] [varlen] type rtgenmsg[FAMILY] { @@ -75,13 +100,29 @@ type rtmsg[FAMILY] { rtm_dst_len flags[rtm_addr_len, int8] rtmsrcdst_len flags[rtm_addr_len, int8] rtm_tos int8 - rtm_table int8[0:4] + rtm_table flags[rt_table_types, int8] rtm_protocol flags[rtm_protocol, int8] rtm_scope flags[rt_scope_t, int8] rtm_type flags[rtm_type, int8] rtm_flags flags[rtm_flags, int32] } +ndmsg { + ndm_family flags[rtnl_af, int8] + ndm_pad1 const[0, int8] + ndm_pad2 const[0, int16] + ndm_ifindex ifindex + ndm_state flags[ndm_state, int16] + ndm_flags flags[ndm_flags, int8] + ndm_type flags[rtm_type, int8] +} + +ndtmsg { + ndm_family flags[rtnl_af, int8] + ndm_pad1 const[0, int8] + ndm_pad2 const[0, int16] +} + ifla_policy [ IFLA_IFNAME nlattr[IFLA_IFNAME, devname] IFLA_ADDRESS nlattr[IFLA_ADDRESS, mac_addr] @@ -151,7 +192,7 @@ rtm_ipv4_policy [ RTA_SRC nlattr[RTA_SRC, ipv4_addr] RTA_IIF nlattr[RTA_DST, ifindex] RTA_OIF nlattr[RTA_OIF, ifindex] - RTA_GATEWAY nlattr[RTA_GATEWAY, int32] + RTA_GATEWAY nlattr[RTA_GATEWAY, ipv4_addr] RTA_PRIORITY nlattr[RTA_PRIORITY, int32] RTA_PREFSRC nlattr[RTA_PREFSRC, ipv4_addr] # TODO: what's this? is this interesting? @@ -165,6 +206,78 @@ rtm_ipv4_policy [ RTA_MARK nlattr[RTA_MARK, int32] ] [varlen] +rtm_ipv6_policy [ + RTA_GATEWAY nlattr[RTA_GATEWAY, ipv6_addr] + RTA_IIF nlattr[RTA_DST, ifindex] + RTA_OIF nlattr[RTA_OIF, ifindex] + RTA_PRIORITY nlattr[RTA_PRIORITY, int32] +# TODO: what's this? is this interesting? + RTA_METRICS nlattr[RTA_METRICS, array[int8]] + RTA_MULTIPATH nlattr[RTA_MULTIPATH, array[rtnexthop]] + RTA_PREF nlattr[RTA_PREF, int8] + RTA_ENCAP_TYPE nlattr[RTA_ENCAP_TYPE, flags[lwtunnel_encap_types, int16]] +# TODO: describe RTA_ENCAP + RTA_ENCAP nlattr[RTA_ENCAP, nl_generic_attr] + RTA_EXPIRES nlattr[RTA_MARK, int32] + RTA_UID nlattr[RTA_UID, uid] + RTA_MARK nlattr[RTA_MARK, int32] +] [varlen] + +rtm_mpls_policy [ + RTA_DST nlattr[RTA_DST, array[mpls_label]] + RTA_OIF nlattr[RTA_OIF, ifindex] + RTA_TTL_PROPAGATE nlattr[RTA_TTL_PROPAGATE, int8] +] [varlen] + +nl_neightbl_policy [ + NDTA_NAME nlattr[NDTA_NAME, string] + NDTA_THRESH1 nlattr[NDTA_THRESH1, int32] + NDTA_THRESH2 nlattr[NDTA_THRESH2, int32] + NDTA_THRESH3 nlattr[NDTA_THRESH3, int32] + NDTA_GC_INTERVAL nlattr[NDTA_GC_INTERVAL, int64] + NDTA_PARMS nlattr[NDTA_PARMS, array[nl_ntbl_parm_policy]] +] [varlen] + +nl_ntbl_parm_policy [ + NDTPA_IFINDEX nlattr[NDTPA_IFINDEX, ifindex] + NDTPA_QUEUE_LEN nlattr[NDTPA_QUEUE_LEN, int32] + NDTPA_PROXY_QLEN nlattr[NDTPA_PROXY_QLEN, int32] + NDTPA_APP_PROBES nlattr[NDTPA_APP_PROBES, int32] + NDTPA_UCAST_PROBES nlattr[NDTPA_UCAST_PROBES, int32] + NDTPA_MCAST_PROBES nlattr[NDTPA_MCAST_PROBES, int32] + NDTPA_MCAST_REPROBES nlattr[NDTPA_MCAST_REPROBES, int32] + NDTPA_BASE_REACHABLE_TIME nlattr[NDTPA_BASE_REACHABLE_TIME, int64] + NDTPA_GC_STALETIME nlattr[NDTPA_GC_STALETIME, int64] + NDTPA_DELAY_PROBE_TIME nlattr[NDTPA_DELAY_PROBE_TIME, int64] + NDTPA_RETRANS_TIME nlattr[NDTPA_RETRANS_TIME, int64] + NDTPA_ANYCAST_DELAY nlattr[NDTPA_ANYCAST_DELAY, int64] + NDTPA_PROXY_DELAY nlattr[NDTPA_PROXY_DELAY, int64] + NDTPA_LOCKTIME nlattr[NDTPA_LOCKTIME, int64] +] [varlen] + +nd_policy [ + NDA_DST_IPV4 nlattr[NDA_DST, ipv4_addr] + NDA_DST_IPV6 nlattr[NDA_DST, ipv6_addr] + NDA_DST_MAC nlattr[NDA_DST, mac_addr] + NDA_LLADDR nlattr[NDA_LLADDR, mac_addr] + NDA_CACHEINFO nlattr[NDA_CACHEINFO, nda_cacheinfo] + NDA_PROBES nlattr[NDA_PROBES, int32] + NDA_VLAN nlattr[NDA_VLAN, int16[0:4]] + NDA_PORT nlattr[NDA_PORT, sock_port] + NDA_VNI nlattr[NDA_VNI, int32] + NDA_IFINDEX nlattr[NDA_IFINDEX, ifindex] + NDA_MASTER nlattr[NDA_MASTER, int32] + NDA_LINK_NETNSID nlattr[NDA_LINK_NETNSID, int32] + NDA_SRC_VNI nlattr[NDA_SRC_VNI, int32] +] [varlen] + +nda_cacheinfo { + ndm_confirmed int32 + ndm_used int32 + ndm_updated int32 + ndm_refcnt int32 +} + rtnexthop { rtnh_len int16 rtnh_flags int8 @@ -187,6 +300,11 @@ devconf_ip_policy [ IGNORE_ROUTES_WITH_LINKDOWN nlattr[NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN, int32] ] [varlen] +devconf_mpls_policy [ + NETCONFA_IFINDEX nlattr[NETCONFA_IFINDEX, ifindex] + IGNORE_ROUTES_WITH_LINKDOWN nlattr[NETCONFA_IGNORE_ROUTES_WITH_LINKDOWN, int32] +] [varlen] + # TODO: implement these type ifla_vf_policy nl_generic_attr type ifla_port_policy nl_generic_attr @@ -207,7 +325,6 @@ rtnl_link_ifmap { } rtnl_af = AF_INET, AF_INET6, AF_BRIDGE, AF_MPLS - net_device_flags = IFF_UP, IFF_BROADCAST, IFF_DEBUG, IFF_LOOPBACK, IFF_POINTOPOINT, IFF_NOTRAILERS, IFF_RUNNING, IFF_NOARP, IFF_PROMISC, IFF_ALLMULTI, IFF_MASTER, IFF_SLAVE, IFF_MULTICAST, IFF_PORTSEL, IFF_AUTOMEDIA, IFF_DYNAMIC, IFF_LOWER_UP, IFF_DORMANT, IFF_ECHO ifa_flags = IFA_F_SECONDARY, IFA_F_NODAD, IFA_F_OPTIMISTIC, IFA_F_DADFAILED, IFA_F_HOMEADDRESS, IFA_F_DEPRECATED, IFA_F_TENTATIVE, IFA_F_PERMANENT, IFA_F_MANAGETEMPADDR, IFA_F_NOPREFIXROUTE, IFA_F_MCAUTOJOIN rt_scope_t = RT_SCOPE_UNIVERSE, RT_SCOPE_SITE, RT_SCOPE_LINK, RT_SCOPE_HOST, RT_SCOPE_NOWHERE @@ -215,5 +332,8 @@ rtm_protocol = RTPROT_UNSPEC, RTPROT_REDIRECT, RTPROT_KERNEL, RTPROT_BOOT, RTPRO rtm_type = RTN_UNSPEC, RTN_UNICAST, RTN_LOCAL, RTN_BROADCAST, RTN_ANYCAST, RTN_MULTICAST, RTN_BLACKHOLE, RTN_UNREACHABLE, RTN_PROHIBIT, RTN_THROW, RTN_NAT, RTN_XRESOLVE rtm_flags = RTM_F_NOTIFY, RTM_F_CLONED, RTM_F_EQUALIZE, RTM_F_PREFIX, RTM_F_LOOKUP_TABLE, RTM_F_FIB_MATCH lwtunnel_encap_types = LWTUNNEL_ENCAP_NONE, LWTUNNEL_ENCAP_MPLS, LWTUNNEL_ENCAP_IP, LWTUNNEL_ENCAP_ILA, LWTUNNEL_ENCAP_IP6, LWTUNNEL_ENCAP_SEG6, LWTUNNEL_ENCAP_BPF, LWTUNNEL_ENCAP_SEG6_LOCAL +rt_table_types = RT_TABLE_UNSPEC, RT_TABLE_COMPAT, RT_TABLE_DEFAULT, RT_TABLE_MAIN, RT_TABLE_LOCAL +ndm_state = NUD_INCOMPLETE, NUD_REACHABLE, NUD_STALE, NUD_DELAY, NUD_PROBE, NUD_FAILED, NUD_NOARP, NUD_PERMANENT, NUD_NONE +ndm_flags = NTF_USE, NTF_SELF, NTF_MASTER, NTF_PROXY, NTF_EXT_LEARNED, NTF_OFFLOADED, NTF_ROUTER ifa_prefixlen = 0, 1, 8, 16, 24, 31, 32, 56, 63, 64, 128 rtm_addr_len = 0, 16, 20, 32, 128 |
