unix: add Linux lwtunnel constants for use with rtnetlink APIs
Change-Id: Ibe39b315321c18916870dcfc97b083a18b91be2b
Reviewed-on: https://go-review.googlesource.com/c/sys/+/271077
Run-TryBot: Matt Layher <mdlayher@gmail.com>
TryBot-Result: Go Bot <gobot@golang.org>
Trust: Matt Layher <mdlayher@gmail.com>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
diff --git a/unix/linux/types.go b/unix/linux/types.go
index f80776a..84c7c0d 100644
--- a/unix/linux/types.go
+++ b/unix/linux/types.go
@@ -102,6 +102,7 @@
#include <linux/if_xdp.h>
#include <linux/keyctl.h>
#include <linux/loop.h>
+#include <linux/lwtunnel.h>
#include <linux/ncsi.h>
#include <linux/net_namespace.h>
#include <linux/net_tstamp.h>
@@ -2921,3 +2922,18 @@
PPS_GETCAP = C.PPS_GETCAP
PPS_FETCH = C.PPS_FETCH
)
+
+// lwtunnel APIs
+
+const (
+ LWTUNNEL_ENCAP_NONE = C.LWTUNNEL_ENCAP_NONE
+ LWTUNNEL_ENCAP_MPLS = C.LWTUNNEL_ENCAP_MPLS
+ LWTUNNEL_ENCAP_IP = C.LWTUNNEL_ENCAP_IP
+ LWTUNNEL_ENCAP_ILA = C.LWTUNNEL_ENCAP_ILA
+ LWTUNNEL_ENCAP_IP6 = C.LWTUNNEL_ENCAP_IP6
+ LWTUNNEL_ENCAP_SEG6 = C.LWTUNNEL_ENCAP_SEG6
+ LWTUNNEL_ENCAP_BPF = C.LWTUNNEL_ENCAP_BPF
+ LWTUNNEL_ENCAP_SEG6_LOCAL = C.LWTUNNEL_ENCAP_SEG6_LOCAL
+ LWTUNNEL_ENCAP_RPL = C.LWTUNNEL_ENCAP_RPL
+ LWTUNNEL_ENCAP_MAX = C.LWTUNNEL_ENCAP_MAX
+)
diff --git a/unix/mkerrors.sh b/unix/mkerrors.sh
index 0c9a5c4..c0f9f2d 100755
--- a/unix/mkerrors.sh
+++ b/unix/mkerrors.sh
@@ -225,6 +225,7 @@
#include <linux/kexec.h>
#include <linux/keyctl.h>
#include <linux/loop.h>
+#include <linux/lwtunnel.h>
#include <linux/magic.h>
#include <linux/memfd.h>
#include <linux/module.h>
@@ -561,6 +562,7 @@
$2 ~ /^CRYPTO_/ ||
$2 ~ /^TIPC_/ ||
$2 ~ /^DEVLINK_/ ||
+ $2 ~ /^LWTUNNEL_IP/ ||
$2 !~ "WMESGLEN" &&
$2 ~ /^W[A-Z0-9]+$/ ||
$2 ~/^PPPIOC/ ||
diff --git a/unix/zerrors_linux.go b/unix/zerrors_linux.go
index 2069fb8..b461103 100644
--- a/unix/zerrors_linux.go
+++ b/unix/zerrors_linux.go
@@ -1217,6 +1217,12 @@
LOOP_SET_STATUS_SETTABLE_FLAGS = 0xc
LO_KEY_SIZE = 0x20
LO_NAME_SIZE = 0x40
+ LWTUNNEL_IP6_MAX = 0x8
+ LWTUNNEL_IP_MAX = 0x8
+ LWTUNNEL_IP_OPTS_MAX = 0x3
+ LWTUNNEL_IP_OPT_ERSPAN_MAX = 0x4
+ LWTUNNEL_IP_OPT_GENEVE_MAX = 0x3
+ LWTUNNEL_IP_OPT_VXLAN_MAX = 0x1
MADV_COLD = 0x14
MADV_DODUMP = 0x11
MADV_DOFORK = 0xb
diff --git a/unix/ztypes_linux.go b/unix/ztypes_linux.go
index a96ad4c..22e67b2 100644
--- a/unix/ztypes_linux.go
+++ b/unix/ztypes_linux.go
@@ -2981,3 +2981,16 @@
Nsec int32
Flags uint32
}
+
+const (
+ LWTUNNEL_ENCAP_NONE = 0x0
+ LWTUNNEL_ENCAP_MPLS = 0x1
+ LWTUNNEL_ENCAP_IP = 0x2
+ LWTUNNEL_ENCAP_ILA = 0x3
+ LWTUNNEL_ENCAP_IP6 = 0x4
+ LWTUNNEL_ENCAP_SEG6 = 0x5
+ LWTUNNEL_ENCAP_BPF = 0x6
+ LWTUNNEL_ENCAP_SEG6_LOCAL = 0x7
+ LWTUNNEL_ENCAP_RPL = 0x8
+ LWTUNNEL_ENCAP_MAX = 0x8
+)