From b6d666e5f30aeac590364ac9925240ce6b8b40af Mon Sep 17 00:00:00 2001 From: Ruxandra Stăncioi Date: Fri, 17 Jul 2020 12:55:21 +0000 Subject: sys/linux: add lwtunnel_encap_ip description https://elixir.bootlin.com/linux/latest/source/include/uapi/linux/lwtunnel.h#L102 https://elixir.bootlin.com/linux/latest/source/net/ipv4/ip_tunnel_core.c#L219 The policies added have a suffix (_lwt), because they already exist in syzkaller with the kernel name. An example of a union with the same name described in sys/linux/socket_netlink_route_sched.txt: https://elixir.bootlin.com/linux/latest/source/net/sched/cls_flower.c#L709 --- sys/linux/socket_netlink_route.txt | 33 +++++++++++++++++++++++++++ sys/linux/socket_netlink_route_386.const | 21 +++++++++++++++++ sys/linux/socket_netlink_route_amd64.const | 21 +++++++++++++++++ sys/linux/socket_netlink_route_arm.const | 21 +++++++++++++++++ sys/linux/socket_netlink_route_arm64.const | 21 +++++++++++++++++ sys/linux/socket_netlink_route_mips64le.const | 21 +++++++++++++++++ sys/linux/socket_netlink_route_ppc64le.const | 21 +++++++++++++++++ sys/linux/socket_netlink_route_riscv64.const | 21 +++++++++++++++++ sys/linux/socket_netlink_route_s390x.const | 21 +++++++++++++++++ 9 files changed, 201 insertions(+) (limited to 'sys/linux') diff --git a/sys/linux/socket_netlink_route.txt b/sys/linux/socket_netlink_route.txt index 122330e9a..3563a756c 100644 --- a/sys/linux/socket_netlink_route.txt +++ b/sys/linux/socket_netlink_route.txt @@ -972,9 +972,42 @@ lwtunnel_policy [ MPLS_IPTUNNEL_DST nlattr[MPLS_IPTUNNEL_DST, array[mpls_label]] MPLS_IPTUNNEL_TTL nlattr[MPLS_IPTUNNEL_TTL, int8] + LWTUNNEL_IP_ID nlattr[LWTUNNEL_IP_ID, int64be] + LWTUNNEL_IP_DST nlattr[LWTUNNEL_IP_DST, ipv4_addr] + LWTUNNEL_IP_SRC nlattr[LWTUNNEL_IP_SRC, ipv4_addr] + LWTUNNEL_IP_TTL nlattr[LWTUNNEL_IP_TTL, int8] + LWTUNNEL_IP_TOS nlattr[LWTUNNEL_IP_TOS, int8] + LWTUNNEL_IP_FLAGS nlattr[LWTUNNEL_IP_FLAGS, flags[lwtunnel_ip_flags, int16be]] + LWTUNNEL_IP_OPTS nlnest[LWTUNNEL_IP_OPTS, ip_opts_policy] + RPL_IPTUNNEL_SRH nlattr[RPL_IPTUNNEL_SRH, ipv6_rpl_sr_hdr] ] [varlen] +lwtunnel_ip_flags = TUNNEL_GENEVE_OPT, TUNNEL_VXLAN_OPT, TUNNEL_ERSPAN_OPT + +ip_opts_policy [ + LWTUNNEL_IP_OPTS_GENEVE nlnest[LWTUNNEL_IP_OPTS_GENEVE, geneve_opt_policy_lwt] + LWTUNNEL_IP_OPTS_VXLAN nlnest[LWTUNNEL_IP_OPTS_VXLAN, vxlan_opt_policy_lwt] + LWTUNNEL_IP_OPTS_ERSPAN nlnest[LWTUNNEL_IP_OPTS_ERSPAN, erspan_opt_policy_lwt] +] [varlen] + +geneve_opt_policy_lwt [ + LWTUNNEL_IP_OPT_GENEVE_CLASS nlattr[LWTUNNEL_IP_OPT_GENEVE_CLASS, int16be] + LWTUNNEL_IP_OPT_GENEVE_TYPE nlattr[LWTUNNEL_IP_OPT_GENEVE_TYPE, int8] + LWTUNNEL_IP_OPT_GENEVE_DATA nlattr[LWTUNNEL_IP_OPT_GENEVE_DATA, array[int8, 0:128]] +] [varlen] + +vxlan_opt_policy_lwt [ + LWTUNNEL_IP_OPT_VXLAN_GBP nlattr[LWTUNNEL_IP_OPT_VXLAN_GBP, int32] +] [varlen] + +erspan_opt_policy_lwt [ + LWTUNNEL_IP_OPT_ERSPAN_VER nlattr[LWTUNNEL_IP_OPT_ERSPAN_VER, int8[1:2]] + LWTUNNEL_IP_OPT_ERSPAN_INDEX nlattr[LWTUNNEL_IP_OPT_ERSPAN_INDEX, int32be] + LWTUNNEL_IP_OPT_ERSPAN_DIR nlattr[LWTUNNEL_IP_OPT_ERSPAN_DIR, int8] + LWTUNNEL_IP_OPT_ERSPAN_HWID nlattr[LWTUNNEL_IP_OPT_ERSPAN_HWID, int8] +] [varlen] + ipv6_rpl_sr_hdr { nexthdr int8 hdrlen len[parent, int8] diff --git a/sys/linux/socket_netlink_route_386.const b/sys/linux/socket_netlink_route_386.const index 0af9ea350..378a0f6b1 100644 --- a/sys/linux/socket_netlink_route_386.const +++ b/sys/linux/socket_netlink_route_386.const @@ -392,6 +392,24 @@ LWTUNNEL_ENCAP_NONE = 0 LWTUNNEL_ENCAP_RPL = 8 LWTUNNEL_ENCAP_SEG6 = 5 LWTUNNEL_ENCAP_SEG6_LOCAL = 7 +LWTUNNEL_IP_DST = 2 +LWTUNNEL_IP_FLAGS = 6 +LWTUNNEL_IP_ID = 1 +LWTUNNEL_IP_OPTS = 8 +LWTUNNEL_IP_OPTS_ERSPAN = 3 +LWTUNNEL_IP_OPTS_GENEVE = 1 +LWTUNNEL_IP_OPTS_VXLAN = 2 +LWTUNNEL_IP_OPT_ERSPAN_DIR = 3 +LWTUNNEL_IP_OPT_ERSPAN_HWID = 4 +LWTUNNEL_IP_OPT_ERSPAN_INDEX = 2 +LWTUNNEL_IP_OPT_ERSPAN_VER = 1 +LWTUNNEL_IP_OPT_GENEVE_CLASS = 1 +LWTUNNEL_IP_OPT_GENEVE_DATA = 3 +LWTUNNEL_IP_OPT_GENEVE_TYPE = 2 +LWTUNNEL_IP_OPT_VXLAN_GBP = 1 +LWTUNNEL_IP_SRC = 3 +LWTUNNEL_IP_TOS = 5 +LWTUNNEL_IP_TTL = 4 MACVLAN_MACADDR_ADD = 0 MACVLAN_MACADDR_DEL = 1 MACVLAN_MACADDR_FLUSH = 2 @@ -559,6 +577,9 @@ TUNNEL_ENCAP_FOU = 1 TUNNEL_ENCAP_GUE = 2 TUNNEL_ENCAP_MPLS = 3 TUNNEL_ENCAP_NONE = 0 +TUNNEL_ERSPAN_OPT = 64 +TUNNEL_GENEVE_OPT = 8 +TUNNEL_VXLAN_OPT = 16 VETH_INFO_PEER = 1 VLAN_FLAG_BRIDGE_BINDING = 16 VLAN_FLAG_GVRP = 2 diff --git a/sys/linux/socket_netlink_route_amd64.const b/sys/linux/socket_netlink_route_amd64.const index 1985dce56..05e415987 100644 --- a/sys/linux/socket_netlink_route_amd64.const +++ b/sys/linux/socket_netlink_route_amd64.const @@ -392,6 +392,24 @@ LWTUNNEL_ENCAP_NONE = 0 LWTUNNEL_ENCAP_RPL = 8 LWTUNNEL_ENCAP_SEG6 = 5 LWTUNNEL_ENCAP_SEG6_LOCAL = 7 +LWTUNNEL_IP_DST = 2 +LWTUNNEL_IP_FLAGS = 6 +LWTUNNEL_IP_ID = 1 +LWTUNNEL_IP_OPTS = 8 +LWTUNNEL_IP_OPTS_ERSPAN = 3 +LWTUNNEL_IP_OPTS_GENEVE = 1 +LWTUNNEL_IP_OPTS_VXLAN = 2 +LWTUNNEL_IP_OPT_ERSPAN_DIR = 3 +LWTUNNEL_IP_OPT_ERSPAN_HWID = 4 +LWTUNNEL_IP_OPT_ERSPAN_INDEX = 2 +LWTUNNEL_IP_OPT_ERSPAN_VER = 1 +LWTUNNEL_IP_OPT_GENEVE_CLASS = 1 +LWTUNNEL_IP_OPT_GENEVE_DATA = 3 +LWTUNNEL_IP_OPT_GENEVE_TYPE = 2 +LWTUNNEL_IP_OPT_VXLAN_GBP = 1 +LWTUNNEL_IP_SRC = 3 +LWTUNNEL_IP_TOS = 5 +LWTUNNEL_IP_TTL = 4 MACVLAN_MACADDR_ADD = 0 MACVLAN_MACADDR_DEL = 1 MACVLAN_MACADDR_FLUSH = 2 @@ -559,6 +577,9 @@ TUNNEL_ENCAP_FOU = 1 TUNNEL_ENCAP_GUE = 2 TUNNEL_ENCAP_MPLS = 3 TUNNEL_ENCAP_NONE = 0 +TUNNEL_ERSPAN_OPT = 64 +TUNNEL_GENEVE_OPT = 8 +TUNNEL_VXLAN_OPT = 16 VETH_INFO_PEER = 1 VLAN_FLAG_BRIDGE_BINDING = 16 VLAN_FLAG_GVRP = 2 diff --git a/sys/linux/socket_netlink_route_arm.const b/sys/linux/socket_netlink_route_arm.const index 9b1a2b725..d6c4ae94d 100644 --- a/sys/linux/socket_netlink_route_arm.const +++ b/sys/linux/socket_netlink_route_arm.const @@ -392,6 +392,24 @@ LWTUNNEL_ENCAP_NONE = 0 LWTUNNEL_ENCAP_RPL = 8 LWTUNNEL_ENCAP_SEG6 = 5 LWTUNNEL_ENCAP_SEG6_LOCAL = 7 +LWTUNNEL_IP_DST = 2 +LWTUNNEL_IP_FLAGS = 6 +LWTUNNEL_IP_ID = 1 +LWTUNNEL_IP_OPTS = 8 +LWTUNNEL_IP_OPTS_ERSPAN = 3 +LWTUNNEL_IP_OPTS_GENEVE = 1 +LWTUNNEL_IP_OPTS_VXLAN = 2 +LWTUNNEL_IP_OPT_ERSPAN_DIR = 3 +LWTUNNEL_IP_OPT_ERSPAN_HWID = 4 +LWTUNNEL_IP_OPT_ERSPAN_INDEX = 2 +LWTUNNEL_IP_OPT_ERSPAN_VER = 1 +LWTUNNEL_IP_OPT_GENEVE_CLASS = 1 +LWTUNNEL_IP_OPT_GENEVE_DATA = 3 +LWTUNNEL_IP_OPT_GENEVE_TYPE = 2 +LWTUNNEL_IP_OPT_VXLAN_GBP = 1 +LWTUNNEL_IP_SRC = 3 +LWTUNNEL_IP_TOS = 5 +LWTUNNEL_IP_TTL = 4 MACVLAN_MACADDR_ADD = 0 MACVLAN_MACADDR_DEL = 1 MACVLAN_MACADDR_FLUSH = 2 @@ -559,6 +577,9 @@ TUNNEL_ENCAP_FOU = 1 TUNNEL_ENCAP_GUE = 2 TUNNEL_ENCAP_MPLS = 3 TUNNEL_ENCAP_NONE = 0 +TUNNEL_ERSPAN_OPT = 64 +TUNNEL_GENEVE_OPT = 8 +TUNNEL_VXLAN_OPT = 16 VETH_INFO_PEER = 1 VLAN_FLAG_BRIDGE_BINDING = 16 VLAN_FLAG_GVRP = 2 diff --git a/sys/linux/socket_netlink_route_arm64.const b/sys/linux/socket_netlink_route_arm64.const index 91273fa81..8f32a23c9 100644 --- a/sys/linux/socket_netlink_route_arm64.const +++ b/sys/linux/socket_netlink_route_arm64.const @@ -392,6 +392,24 @@ LWTUNNEL_ENCAP_NONE = 0 LWTUNNEL_ENCAP_RPL = 8 LWTUNNEL_ENCAP_SEG6 = 5 LWTUNNEL_ENCAP_SEG6_LOCAL = 7 +LWTUNNEL_IP_DST = 2 +LWTUNNEL_IP_FLAGS = 6 +LWTUNNEL_IP_ID = 1 +LWTUNNEL_IP_OPTS = 8 +LWTUNNEL_IP_OPTS_ERSPAN = 3 +LWTUNNEL_IP_OPTS_GENEVE = 1 +LWTUNNEL_IP_OPTS_VXLAN = 2 +LWTUNNEL_IP_OPT_ERSPAN_DIR = 3 +LWTUNNEL_IP_OPT_ERSPAN_HWID = 4 +LWTUNNEL_IP_OPT_ERSPAN_INDEX = 2 +LWTUNNEL_IP_OPT_ERSPAN_VER = 1 +LWTUNNEL_IP_OPT_GENEVE_CLASS = 1 +LWTUNNEL_IP_OPT_GENEVE_DATA = 3 +LWTUNNEL_IP_OPT_GENEVE_TYPE = 2 +LWTUNNEL_IP_OPT_VXLAN_GBP = 1 +LWTUNNEL_IP_SRC = 3 +LWTUNNEL_IP_TOS = 5 +LWTUNNEL_IP_TTL = 4 MACVLAN_MACADDR_ADD = 0 MACVLAN_MACADDR_DEL = 1 MACVLAN_MACADDR_FLUSH = 2 @@ -559,6 +577,9 @@ TUNNEL_ENCAP_FOU = 1 TUNNEL_ENCAP_GUE = 2 TUNNEL_ENCAP_MPLS = 3 TUNNEL_ENCAP_NONE = 0 +TUNNEL_ERSPAN_OPT = 64 +TUNNEL_GENEVE_OPT = 8 +TUNNEL_VXLAN_OPT = 16 VETH_INFO_PEER = 1 VLAN_FLAG_BRIDGE_BINDING = 16 VLAN_FLAG_GVRP = 2 diff --git a/sys/linux/socket_netlink_route_mips64le.const b/sys/linux/socket_netlink_route_mips64le.const index a3a004791..6f101137b 100644 --- a/sys/linux/socket_netlink_route_mips64le.const +++ b/sys/linux/socket_netlink_route_mips64le.const @@ -392,6 +392,24 @@ LWTUNNEL_ENCAP_NONE = 0 LWTUNNEL_ENCAP_RPL = 8 LWTUNNEL_ENCAP_SEG6 = 5 LWTUNNEL_ENCAP_SEG6_LOCAL = 7 +LWTUNNEL_IP_DST = 2 +LWTUNNEL_IP_FLAGS = 6 +LWTUNNEL_IP_ID = 1 +LWTUNNEL_IP_OPTS = 8 +LWTUNNEL_IP_OPTS_ERSPAN = 3 +LWTUNNEL_IP_OPTS_GENEVE = 1 +LWTUNNEL_IP_OPTS_VXLAN = 2 +LWTUNNEL_IP_OPT_ERSPAN_DIR = 3 +LWTUNNEL_IP_OPT_ERSPAN_HWID = 4 +LWTUNNEL_IP_OPT_ERSPAN_INDEX = 2 +LWTUNNEL_IP_OPT_ERSPAN_VER = 1 +LWTUNNEL_IP_OPT_GENEVE_CLASS = 1 +LWTUNNEL_IP_OPT_GENEVE_DATA = 3 +LWTUNNEL_IP_OPT_GENEVE_TYPE = 2 +LWTUNNEL_IP_OPT_VXLAN_GBP = 1 +LWTUNNEL_IP_SRC = 3 +LWTUNNEL_IP_TOS = 5 +LWTUNNEL_IP_TTL = 4 MACVLAN_MACADDR_ADD = 0 MACVLAN_MACADDR_DEL = 1 MACVLAN_MACADDR_FLUSH = 2 @@ -559,6 +577,9 @@ TUNNEL_ENCAP_FOU = 1 TUNNEL_ENCAP_GUE = 2 TUNNEL_ENCAP_MPLS = 3 TUNNEL_ENCAP_NONE = 0 +TUNNEL_ERSPAN_OPT = 64 +TUNNEL_GENEVE_OPT = 8 +TUNNEL_VXLAN_OPT = 16 VETH_INFO_PEER = 1 VLAN_FLAG_BRIDGE_BINDING = 16 VLAN_FLAG_GVRP = 2 diff --git a/sys/linux/socket_netlink_route_ppc64le.const b/sys/linux/socket_netlink_route_ppc64le.const index add16a6b2..81d281b4e 100644 --- a/sys/linux/socket_netlink_route_ppc64le.const +++ b/sys/linux/socket_netlink_route_ppc64le.const @@ -392,6 +392,24 @@ LWTUNNEL_ENCAP_NONE = 0 LWTUNNEL_ENCAP_RPL = 8 LWTUNNEL_ENCAP_SEG6 = 5 LWTUNNEL_ENCAP_SEG6_LOCAL = 7 +LWTUNNEL_IP_DST = 2 +LWTUNNEL_IP_FLAGS = 6 +LWTUNNEL_IP_ID = 1 +LWTUNNEL_IP_OPTS = 8 +LWTUNNEL_IP_OPTS_ERSPAN = 3 +LWTUNNEL_IP_OPTS_GENEVE = 1 +LWTUNNEL_IP_OPTS_VXLAN = 2 +LWTUNNEL_IP_OPT_ERSPAN_DIR = 3 +LWTUNNEL_IP_OPT_ERSPAN_HWID = 4 +LWTUNNEL_IP_OPT_ERSPAN_INDEX = 2 +LWTUNNEL_IP_OPT_ERSPAN_VER = 1 +LWTUNNEL_IP_OPT_GENEVE_CLASS = 1 +LWTUNNEL_IP_OPT_GENEVE_DATA = 3 +LWTUNNEL_IP_OPT_GENEVE_TYPE = 2 +LWTUNNEL_IP_OPT_VXLAN_GBP = 1 +LWTUNNEL_IP_SRC = 3 +LWTUNNEL_IP_TOS = 5 +LWTUNNEL_IP_TTL = 4 MACVLAN_MACADDR_ADD = 0 MACVLAN_MACADDR_DEL = 1 MACVLAN_MACADDR_FLUSH = 2 @@ -559,6 +577,9 @@ TUNNEL_ENCAP_FOU = 1 TUNNEL_ENCAP_GUE = 2 TUNNEL_ENCAP_MPLS = 3 TUNNEL_ENCAP_NONE = 0 +TUNNEL_ERSPAN_OPT = 64 +TUNNEL_GENEVE_OPT = 8 +TUNNEL_VXLAN_OPT = 16 VETH_INFO_PEER = 1 VLAN_FLAG_BRIDGE_BINDING = 16 VLAN_FLAG_GVRP = 2 diff --git a/sys/linux/socket_netlink_route_riscv64.const b/sys/linux/socket_netlink_route_riscv64.const index 91273fa81..8f32a23c9 100644 --- a/sys/linux/socket_netlink_route_riscv64.const +++ b/sys/linux/socket_netlink_route_riscv64.const @@ -392,6 +392,24 @@ LWTUNNEL_ENCAP_NONE = 0 LWTUNNEL_ENCAP_RPL = 8 LWTUNNEL_ENCAP_SEG6 = 5 LWTUNNEL_ENCAP_SEG6_LOCAL = 7 +LWTUNNEL_IP_DST = 2 +LWTUNNEL_IP_FLAGS = 6 +LWTUNNEL_IP_ID = 1 +LWTUNNEL_IP_OPTS = 8 +LWTUNNEL_IP_OPTS_ERSPAN = 3 +LWTUNNEL_IP_OPTS_GENEVE = 1 +LWTUNNEL_IP_OPTS_VXLAN = 2 +LWTUNNEL_IP_OPT_ERSPAN_DIR = 3 +LWTUNNEL_IP_OPT_ERSPAN_HWID = 4 +LWTUNNEL_IP_OPT_ERSPAN_INDEX = 2 +LWTUNNEL_IP_OPT_ERSPAN_VER = 1 +LWTUNNEL_IP_OPT_GENEVE_CLASS = 1 +LWTUNNEL_IP_OPT_GENEVE_DATA = 3 +LWTUNNEL_IP_OPT_GENEVE_TYPE = 2 +LWTUNNEL_IP_OPT_VXLAN_GBP = 1 +LWTUNNEL_IP_SRC = 3 +LWTUNNEL_IP_TOS = 5 +LWTUNNEL_IP_TTL = 4 MACVLAN_MACADDR_ADD = 0 MACVLAN_MACADDR_DEL = 1 MACVLAN_MACADDR_FLUSH = 2 @@ -559,6 +577,9 @@ TUNNEL_ENCAP_FOU = 1 TUNNEL_ENCAP_GUE = 2 TUNNEL_ENCAP_MPLS = 3 TUNNEL_ENCAP_NONE = 0 +TUNNEL_ERSPAN_OPT = 64 +TUNNEL_GENEVE_OPT = 8 +TUNNEL_VXLAN_OPT = 16 VETH_INFO_PEER = 1 VLAN_FLAG_BRIDGE_BINDING = 16 VLAN_FLAG_GVRP = 2 diff --git a/sys/linux/socket_netlink_route_s390x.const b/sys/linux/socket_netlink_route_s390x.const index 0af9ea350..b19fafbec 100644 --- a/sys/linux/socket_netlink_route_s390x.const +++ b/sys/linux/socket_netlink_route_s390x.const @@ -392,6 +392,24 @@ LWTUNNEL_ENCAP_NONE = 0 LWTUNNEL_ENCAP_RPL = 8 LWTUNNEL_ENCAP_SEG6 = 5 LWTUNNEL_ENCAP_SEG6_LOCAL = 7 +LWTUNNEL_IP_DST = 2 +LWTUNNEL_IP_FLAGS = 6 +LWTUNNEL_IP_ID = 1 +LWTUNNEL_IP_OPTS = 8 +LWTUNNEL_IP_OPTS_ERSPAN = 3 +LWTUNNEL_IP_OPTS_GENEVE = 1 +LWTUNNEL_IP_OPTS_VXLAN = 2 +LWTUNNEL_IP_OPT_ERSPAN_DIR = 3 +LWTUNNEL_IP_OPT_ERSPAN_HWID = 4 +LWTUNNEL_IP_OPT_ERSPAN_INDEX = 2 +LWTUNNEL_IP_OPT_ERSPAN_VER = 1 +LWTUNNEL_IP_OPT_GENEVE_CLASS = 1 +LWTUNNEL_IP_OPT_GENEVE_DATA = 3 +LWTUNNEL_IP_OPT_GENEVE_TYPE = 2 +LWTUNNEL_IP_OPT_VXLAN_GBP = 1 +LWTUNNEL_IP_SRC = 3 +LWTUNNEL_IP_TOS = 5 +LWTUNNEL_IP_TTL = 4 MACVLAN_MACADDR_ADD = 0 MACVLAN_MACADDR_DEL = 1 MACVLAN_MACADDR_FLUSH = 2 @@ -559,6 +577,9 @@ TUNNEL_ENCAP_FOU = 1 TUNNEL_ENCAP_GUE = 2 TUNNEL_ENCAP_MPLS = 3 TUNNEL_ENCAP_NONE = 0 +TUNNEL_ERSPAN_OPT = 16384 +TUNNEL_GENEVE_OPT = 2048 +TUNNEL_VXLAN_OPT = 4096 VETH_INFO_PEER = 1 VLAN_FLAG_BRIDGE_BINDING = 16 VLAN_FLAG_GVRP = 2 -- cgit mrf-deployment