summaryrefslogtreecommitdiff
path: root/vendor/github.com/vishvananda/netlink/nl
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/vishvananda/netlink/nl')
-rw-r--r--vendor/github.com/vishvananda/netlink/nl/addr_linux.go77
-rw-r--r--vendor/github.com/vishvananda/netlink/nl/bridge_linux.go74
-rw-r--r--vendor/github.com/vishvananda/netlink/nl/conntrack_linux.go189
-rw-r--r--vendor/github.com/vishvananda/netlink/nl/genetlink_linux.go89
-rw-r--r--vendor/github.com/vishvananda/netlink/nl/link_linux.go548
-rw-r--r--vendor/github.com/vishvananda/netlink/nl/mpls_linux.go36
-rw-r--r--vendor/github.com/vishvananda/netlink/nl/nl_linux.go738
-rw-r--r--vendor/github.com/vishvananda/netlink/nl/nl_unspecified.go11
-rw-r--r--vendor/github.com/vishvananda/netlink/nl/route_linux.go81
-rw-r--r--vendor/github.com/vishvananda/netlink/nl/seg6_linux.go111
-rw-r--r--vendor/github.com/vishvananda/netlink/nl/syscall.go78
-rw-r--r--vendor/github.com/vishvananda/netlink/nl/tc_linux.go710
-rw-r--r--vendor/github.com/vishvananda/netlink/nl/xfrm_linux.go296
-rw-r--r--vendor/github.com/vishvananda/netlink/nl/xfrm_monitor_linux.go32
-rw-r--r--vendor/github.com/vishvananda/netlink/nl/xfrm_policy_linux.go119
-rw-r--r--vendor/github.com/vishvananda/netlink/nl/xfrm_state_linux.go334
16 files changed, 0 insertions, 3523 deletions
diff --git a/vendor/github.com/vishvananda/netlink/nl/addr_linux.go b/vendor/github.com/vishvananda/netlink/nl/addr_linux.go
deleted file mode 100644
index 50db3b4..0000000
--- a/vendor/github.com/vishvananda/netlink/nl/addr_linux.go
+++ /dev/null
@@ -1,77 +0,0 @@
-package nl
-
-import (
- "unsafe"
-
- "golang.org/x/sys/unix"
-)
-
-type IfAddrmsg struct {
- unix.IfAddrmsg
-}
-
-func NewIfAddrmsg(family int) *IfAddrmsg {
- return &IfAddrmsg{
- IfAddrmsg: unix.IfAddrmsg{
- Family: uint8(family),
- },
- }
-}
-
-// struct ifaddrmsg {
-// __u8 ifa_family;
-// __u8 ifa_prefixlen; /* The prefix length */
-// __u8 ifa_flags; /* Flags */
-// __u8 ifa_scope; /* Address scope */
-// __u32 ifa_index; /* Link index */
-// };
-
-// type IfAddrmsg struct {
-// Family uint8
-// Prefixlen uint8
-// Flags uint8
-// Scope uint8
-// Index uint32
-// }
-// SizeofIfAddrmsg = 0x8
-
-func DeserializeIfAddrmsg(b []byte) *IfAddrmsg {
- return (*IfAddrmsg)(unsafe.Pointer(&b[0:unix.SizeofIfAddrmsg][0]))
-}
-
-func (msg *IfAddrmsg) Serialize() []byte {
- return (*(*[unix.SizeofIfAddrmsg]byte)(unsafe.Pointer(msg)))[:]
-}
-
-func (msg *IfAddrmsg) Len() int {
- return unix.SizeofIfAddrmsg
-}
-
-// struct ifa_cacheinfo {
-// __u32 ifa_prefered;
-// __u32 ifa_valid;
-// __u32 cstamp; /* created timestamp, hundredths of seconds */
-// __u32 tstamp; /* updated timestamp, hundredths of seconds */
-// };
-
-const IFA_CACHEINFO = 6
-const SizeofIfaCacheInfo = 0x10
-
-type IfaCacheInfo struct {
- IfaPrefered uint32
- IfaValid uint32
- Cstamp uint32
- Tstamp uint32
-}
-
-func (msg *IfaCacheInfo) Len() int {
- return SizeofIfaCacheInfo
-}
-
-func DeserializeIfaCacheInfo(b []byte) *IfaCacheInfo {
- return (*IfaCacheInfo)(unsafe.Pointer(&b[0:SizeofIfaCacheInfo][0]))
-}
-
-func (msg *IfaCacheInfo) Serialize() []byte {
- return (*(*[SizeofIfaCacheInfo]byte)(unsafe.Pointer(msg)))[:]
-}
diff --git a/vendor/github.com/vishvananda/netlink/nl/bridge_linux.go b/vendor/github.com/vishvananda/netlink/nl/bridge_linux.go
deleted file mode 100644
index 6c0d333..0000000
--- a/vendor/github.com/vishvananda/netlink/nl/bridge_linux.go
+++ /dev/null
@@ -1,74 +0,0 @@
-package nl
-
-import (
- "fmt"
- "unsafe"
-)
-
-const (
- SizeofBridgeVlanInfo = 0x04
-)
-
-/* Bridge Flags */
-const (
- BRIDGE_FLAGS_MASTER = iota /* Bridge command to/from master */
- BRIDGE_FLAGS_SELF /* Bridge command to/from lowerdev */
-)
-
-/* Bridge management nested attributes
- * [IFLA_AF_SPEC] = {
- * [IFLA_BRIDGE_FLAGS]
- * [IFLA_BRIDGE_MODE]
- * [IFLA_BRIDGE_VLAN_INFO]
- * }
- */
-const (
- IFLA_BRIDGE_FLAGS = iota
- IFLA_BRIDGE_MODE
- IFLA_BRIDGE_VLAN_INFO
-)
-
-const (
- BRIDGE_VLAN_INFO_MASTER = 1 << iota
- BRIDGE_VLAN_INFO_PVID
- BRIDGE_VLAN_INFO_UNTAGGED
- BRIDGE_VLAN_INFO_RANGE_BEGIN
- BRIDGE_VLAN_INFO_RANGE_END
-)
-
-// struct bridge_vlan_info {
-// __u16 flags;
-// __u16 vid;
-// };
-
-type BridgeVlanInfo struct {
- Flags uint16
- Vid uint16
-}
-
-func (b *BridgeVlanInfo) Serialize() []byte {
- return (*(*[SizeofBridgeVlanInfo]byte)(unsafe.Pointer(b)))[:]
-}
-
-func DeserializeBridgeVlanInfo(b []byte) *BridgeVlanInfo {
- return (*BridgeVlanInfo)(unsafe.Pointer(&b[0:SizeofBridgeVlanInfo][0]))
-}
-
-func (b *BridgeVlanInfo) PortVID() bool {
- return b.Flags&BRIDGE_VLAN_INFO_PVID > 0
-}
-
-func (b *BridgeVlanInfo) EngressUntag() bool {
- return b.Flags&BRIDGE_VLAN_INFO_UNTAGGED > 0
-}
-
-func (b *BridgeVlanInfo) String() string {
- return fmt.Sprintf("%+v", *b)
-}
-
-/* New extended info filters for IFLA_EXT_MASK */
-const (
- RTEXT_FILTER_VF = 1 << iota
- RTEXT_FILTER_BRVLAN
- RTEXT_FILTER_BRVLAN_COMPRESSED
-)
diff --git a/vendor/github.com/vishvananda/netlink/nl/conntrack_linux.go b/vendor/github.com/vishvananda/netlink/nl/conntrack_linux.go
deleted file mode 100644
index 380cc59..0000000
--- a/vendor/github.com/vishvananda/netlink/nl/conntrack_linux.go
+++ /dev/null
@@ -1,189 +0,0 @@
-package nl
-
-import "unsafe"
-
-// Track the message sizes for the correct serialization/deserialization
-const (
- SizeofNfgenmsg = 4
- SizeofNfattr = 4
- SizeofNfConntrack = 376
- SizeofNfctTupleHead = 52
-)
-
-var L4ProtoMap = map[uint8]string{
- 6: "tcp",
- 17: "udp",
-}
-
-// All the following constants are coming from:
-// https://github.com/torvalds/linux/blob/master/include/uapi/linux/netfilter/nfnetlink_conntrack.h
-
-// enum cntl_msg_types {
-// IPCTNL_MSG_CT_NEW,
-// IPCTNL_MSG_CT_GET,
-// IPCTNL_MSG_CT_DELETE,
-// IPCTNL_MSG_CT_GET_CTRZERO,
-// IPCTNL_MSG_CT_GET_STATS_CPU,
-// IPCTNL_MSG_CT_GET_STATS,
-// IPCTNL_MSG_CT_GET_DYING,
-// IPCTNL_MSG_CT_GET_UNCONFIRMED,
-//
-// IPCTNL_MSG_MAX
-// };
-const (
- IPCTNL_MSG_CT_GET = 1
- IPCTNL_MSG_CT_DELETE = 2
-)
-
-// #define NFNETLINK_V0 0
-const (
- NFNETLINK_V0 = 0
-)
-
-// #define NLA_F_NESTED (1 << 15)
-const (
- NLA_F_NESTED = (1 << 15)
-)
-
-// enum ctattr_type {
-// CTA_UNSPEC,
-// CTA_TUPLE_ORIG,
-// CTA_TUPLE_REPLY,
-// CTA_STATUS,
-// CTA_PROTOINFO,
-// CTA_HELP,
-// CTA_NAT_SRC,
-// #define CTA_NAT CTA_NAT_SRC /* backwards compatibility */
-// CTA_TIMEOUT,
-// CTA_MARK,
-// CTA_COUNTERS_ORIG,
-// CTA_COUNTERS_REPLY,
-// CTA_USE,
-// CTA_ID,
-// CTA_NAT_DST,
-// CTA_TUPLE_MASTER,
-// CTA_SEQ_ADJ_ORIG,
-// CTA_NAT_SEQ_ADJ_ORIG = CTA_SEQ_ADJ_ORIG,
-// CTA_SEQ_ADJ_REPLY,
-// CTA_NAT_SEQ_ADJ_REPLY = CTA_SEQ_ADJ_REPLY,
-// CTA_SECMARK, /* obsolete */
-// CTA_ZONE,
-// CTA_SECCTX,
-// CTA_TIMESTAMP,
-// CTA_MARK_MASK,
-// CTA_LABELS,
-// CTA_LABELS_MASK,
-// __CTA_MAX
-// };
-const (
- CTA_TUPLE_ORIG = 1
- CTA_TUPLE_REPLY = 2
- CTA_STATUS = 3
- CTA_TIMEOUT = 7
- CTA_MARK = 8
- CTA_PROTOINFO = 4
-)
-
-// enum ctattr_tuple {
-// CTA_TUPLE_UNSPEC,
-// CTA_TUPLE_IP,
-// CTA_TUPLE_PROTO,
-// CTA_TUPLE_ZONE,
-// __CTA_TUPLE_MAX
-// };
-// #define CTA_TUPLE_MAX (__CTA_TUPLE_MAX - 1)
-const (
- CTA_TUPLE_IP = 1
- CTA_TUPLE_PROTO = 2
-)
-
-// enum ctattr_ip {
-// CTA_IP_UNSPEC,
-// CTA_IP_V4_SRC,
-// CTA_IP_V4_DST,
-// CTA_IP_V6_SRC,
-// CTA_IP_V6_DST,
-// __CTA_IP_MAX
-// };
-// #define CTA_IP_MAX (__CTA_IP_MAX - 1)
-const (
- CTA_IP_V4_SRC = 1
- CTA_IP_V4_DST = 2
- CTA_IP_V6_SRC = 3
- CTA_IP_V6_DST = 4
-)
-
-// enum ctattr_l4proto {
-// CTA_PROTO_UNSPEC,
-// CTA_PROTO_NUM,
-// CTA_PROTO_SRC_PORT,
-// CTA_PROTO_DST_PORT,
-// CTA_PROTO_ICMP_ID,
-// CTA_PROTO_ICMP_TYPE,
-// CTA_PROTO_ICMP_CODE,
-// CTA_PROTO_ICMPV6_ID,
-// CTA_PROTO_ICMPV6_TYPE,
-// CTA_PROTO_ICMPV6_CODE,
-// __CTA_PROTO_MAX
-// };
-// #define CTA_PROTO_MAX (__CTA_PROTO_MAX - 1)
-const (
- CTA_PROTO_NUM = 1
- CTA_PROTO_SRC_PORT = 2
- CTA_PROTO_DST_PORT = 3
-)
-
-// enum ctattr_protoinfo {
-// CTA_PROTOINFO_UNSPEC,
-// CTA_PROTOINFO_TCP,
-// CTA_PROTOINFO_DCCP,
-// CTA_PROTOINFO_SCTP,
-// __CTA_PROTOINFO_MAX
-// };
-// #define CTA_PROTOINFO_MAX (__CTA_PROTOINFO_MAX - 1)
-const (
- CTA_PROTOINFO_TCP = 1
-)
-
-// enum ctattr_protoinfo_tcp {
-// CTA_PROTOINFO_TCP_UNSPEC,
-// CTA_PROTOINFO_TCP_STATE,
-// CTA_PROTOINFO_TCP_WSCALE_ORIGINAL,
-// CTA_PROTOINFO_TCP_WSCALE_REPLY,
-// CTA_PROTOINFO_TCP_FLAGS_ORIGINAL,
-// CTA_PROTOINFO_TCP_FLAGS_REPLY,
-// __CTA_PROTOINFO_TCP_MAX
-// };
-// #define CTA_PROTOINFO_TCP_MAX (__CTA_PROTOINFO_TCP_MAX - 1)
-const (
- CTA_PROTOINFO_TCP_STATE = 1
- CTA_PROTOINFO_TCP_WSCALE_ORIGINAL = 2
- CTA_PROTOINFO_TCP_WSCALE_REPLY = 3
- CTA_PROTOINFO_TCP_FLAGS_ORIGINAL = 4
- CTA_PROTOINFO_TCP_FLAGS_REPLY = 5
-)
-
-// /* General form of address family dependent message.
-// */
-// struct nfgenmsg {
-// __u8 nfgen_family; /* AF_xxx */
-// __u8 version; /* nfnetlink version */
-// __be16 res_id; /* resource id */
-// };
-type Nfgenmsg struct {
- NfgenFamily uint8
- Version uint8
- ResId uint16 // big endian
-}
-
-func (msg *Nfgenmsg) Len() int {
- return SizeofNfgenmsg
-}
-
-func DeserializeNfgenmsg(b []byte) *Nfgenmsg {
- return (*Nfgenmsg)(unsafe.Pointer(&b[0:SizeofNfgenmsg][0]))
-}
-
-func (msg *Nfgenmsg) Serialize() []byte {
- return (*(*[SizeofNfgenmsg]byte)(unsafe.Pointer(msg)))[:]
-}
diff --git a/vendor/github.com/vishvananda/netlink/nl/genetlink_linux.go b/vendor/github.com/vishvananda/netlink/nl/genetlink_linux.go
deleted file mode 100644
index 81b46f2..0000000
--- a/vendor/github.com/vishvananda/netlink/nl/genetlink_linux.go
+++ /dev/null
@@ -1,89 +0,0 @@
-package nl
-
-import (
- "unsafe"
-)
-
-const SizeofGenlmsg = 4
-
-const (
- GENL_ID_CTRL = 0x10
- GENL_CTRL_VERSION = 2
- GENL_CTRL_NAME = "nlctrl"
-)
-
-const (
- GENL_CTRL_CMD_GETFAMILY = 3
-)
-
-const (
- GENL_CTRL_ATTR_UNSPEC = iota
- GENL_CTRL_ATTR_FAMILY_ID
- GENL_CTRL_ATTR_FAMILY_NAME
- GENL_CTRL_ATTR_VERSION
- GENL_CTRL_ATTR_HDRSIZE
- GENL_CTRL_ATTR_MAXATTR
- GENL_CTRL_ATTR_OPS
- GENL_CTRL_ATTR_MCAST_GROUPS
-)
-
-const (
- GENL_CTRL_ATTR_OP_UNSPEC = iota
- GENL_CTRL_ATTR_OP_ID
- GENL_CTRL_ATTR_OP_FLAGS
-)
-
-const (
- GENL_ADMIN_PERM = 1 << iota
- GENL_CMD_CAP_DO
- GENL_CMD_CAP_DUMP
- GENL_CMD_CAP_HASPOL
-)
-
-const (
- GENL_CTRL_ATTR_MCAST_GRP_UNSPEC = iota
- GENL_CTRL_ATTR_MCAST_GRP_NAME
- GENL_CTRL_ATTR_MCAST_GRP_ID
-)
-
-const (
- GENL_GTP_VERSION = 0
- GENL_GTP_NAME = "gtp"
-)
-
-const (
- GENL_GTP_CMD_NEWPDP = iota
- GENL_GTP_CMD_DELPDP
- GENL_GTP_CMD_GETPDP
-)
-
-const (
- GENL_GTP_ATTR_UNSPEC = iota
- GENL_GTP_ATTR_LINK
- GENL_GTP_ATTR_VERSION
- GENL_GTP_ATTR_TID
- GENL_GTP_ATTR_PEER_ADDRESS
- GENL_GTP_ATTR_MS_ADDRESS
- GENL_GTP_ATTR_FLOW
- GENL_GTP_ATTR_NET_NS_FD
- GENL_GTP_ATTR_I_TEI
- GENL_GTP_ATTR_O_TEI
- GENL_GTP_ATTR_PAD
-)
-
-type Genlmsg struct {
- Command uint8
- Version uint8
-}
-
-func (msg *Genlmsg) Len() int {
- return SizeofGenlmsg
-}
-
-func DeserializeGenlmsg(b []byte) *Genlmsg {
- return (*Genlmsg)(unsafe.Pointer(&b[0:SizeofGenlmsg][0]))
-}
-
-func (msg *Genlmsg) Serialize() []byte {
- return (*(*[SizeofGenlmsg]byte)(unsafe.Pointer(msg)))[:]
-}
diff --git a/vendor/github.com/vishvananda/netlink/nl/link_linux.go b/vendor/github.com/vishvananda/netlink/nl/link_linux.go
deleted file mode 100644
index 84a3498..0000000
--- a/vendor/github.com/vishvananda/netlink/nl/link_linux.go
+++ /dev/null
@@ -1,548 +0,0 @@
-package nl
-
-import (
- "unsafe"
-)
-
-const (
- DEFAULT_CHANGE = 0xFFFFFFFF
-)
-
-const (
- IFLA_INFO_UNSPEC = iota
- IFLA_INFO_KIND
- IFLA_INFO_DATA
- IFLA_INFO_XSTATS
- IFLA_INFO_MAX = IFLA_INFO_XSTATS
-)
-
-const (
- IFLA_VLAN_UNSPEC = iota
- IFLA_VLAN_ID
- IFLA_VLAN_FLAGS
- IFLA_VLAN_EGRESS_QOS
- IFLA_VLAN_INGRESS_QOS
- IFLA_VLAN_PROTOCOL
- IFLA_VLAN_MAX = IFLA_VLAN_PROTOCOL
-)
-
-const (
- VETH_INFO_UNSPEC = iota
- VETH_INFO_PEER
- VETH_INFO_MAX = VETH_INFO_PEER
-)
-
-const (
- IFLA_VXLAN_UNSPEC = iota
- IFLA_VXLAN_ID
- IFLA_VXLAN_GROUP
- IFLA_VXLAN_LINK
- IFLA_VXLAN_LOCAL
- IFLA_VXLAN_TTL
- IFLA_VXLAN_TOS
- IFLA_VXLAN_LEARNING
- IFLA_VXLAN_AGEING
- IFLA_VXLAN_LIMIT
- IFLA_VXLAN_PORT_RANGE
- IFLA_VXLAN_PROXY
- IFLA_VXLAN_RSC
- IFLA_VXLAN_L2MISS
- IFLA_VXLAN_L3MISS
- IFLA_VXLAN_PORT
- IFLA_VXLAN_GROUP6
- IFLA_VXLAN_LOCAL6
- IFLA_VXLAN_UDP_CSUM
- IFLA_VXLAN_UDP_ZERO_CSUM6_TX
- IFLA_VXLAN_UDP_ZERO_CSUM6_RX
- IFLA_VXLAN_REMCSUM_TX
- IFLA_VXLAN_REMCSUM_RX
- IFLA_VXLAN_GBP
- IFLA_VXLAN_REMCSUM_NOPARTIAL
- IFLA_VXLAN_FLOWBASED
- IFLA_VXLAN_MAX = IFLA_VXLAN_FLOWBASED
-)
-
-const (
- BRIDGE_MODE_UNSPEC = iota
- BRIDGE_MODE_HAIRPIN
-)
-
-const (
- IFLA_BRPORT_UNSPEC = iota
- IFLA_BRPORT_STATE
- IFLA_BRPORT_PRIORITY
- IFLA_BRPORT_COST
- IFLA_BRPORT_MODE
- IFLA_BRPORT_GUARD
- IFLA_BRPORT_PROTECT
- IFLA_BRPORT_FAST_LEAVE
- IFLA_BRPORT_LEARNING
- IFLA_BRPORT_UNICAST_FLOOD
- IFLA_BRPORT_PROXYARP
- IFLA_BRPORT_LEARNING_SYNC
- IFLA_BRPORT_PROXYARP_WIFI
- IFLA_BRPORT_MAX = IFLA_BRPORT_PROXYARP_WIFI
-)
-
-const (
- IFLA_IPVLAN_UNSPEC = iota
- IFLA_IPVLAN_MODE
- IFLA_IPVLAN_MAX = IFLA_IPVLAN_MODE
-)
-
-const (
- IFLA_MACVLAN_UNSPEC = iota
- IFLA_MACVLAN_MODE
- IFLA_MACVLAN_FLAGS
- IFLA_MACVLAN_MACADDR_MODE
- IFLA_MACVLAN_MACADDR
- IFLA_MACVLAN_MACADDR_DATA
- IFLA_MACVLAN_MACADDR_COUNT
- IFLA_MACVLAN_MAX = IFLA_MACVLAN_FLAGS
-)
-
-const (
- MACVLAN_MODE_PRIVATE = 1
- MACVLAN_MODE_VEPA = 2
- MACVLAN_MODE_BRIDGE = 4
- MACVLAN_MODE_PASSTHRU = 8
- MACVLAN_MODE_SOURCE = 16
-)
-
-const (
- MACVLAN_MACADDR_ADD = iota
- MACVLAN_MACADDR_DEL
- MACVLAN_MACADDR_FLUSH
- MACVLAN_MACADDR_SET
-)
-
-const (
- IFLA_BOND_UNSPEC = iota
- IFLA_BOND_MODE
- IFLA_BOND_ACTIVE_SLAVE
- IFLA_BOND_MIIMON
- IFLA_BOND_UPDELAY
- IFLA_BOND_DOWNDELAY
- IFLA_BOND_USE_CARRIER
- IFLA_BOND_ARP_INTERVAL
- IFLA_BOND_ARP_IP_TARGET
- IFLA_BOND_ARP_VALIDATE
- IFLA_BOND_ARP_ALL_TARGETS
- IFLA_BOND_PRIMARY
- IFLA_BOND_PRIMARY_RESELECT
- IFLA_BOND_FAIL_OVER_MAC
- IFLA_BOND_XMIT_HASH_POLICY
- IFLA_BOND_RESEND_IGMP
- IFLA_BOND_NUM_PEER_NOTIF
- IFLA_BOND_ALL_SLAVES_ACTIVE
- IFLA_BOND_MIN_LINKS
- IFLA_BOND_LP_INTERVAL
- IFLA_BOND_PACKETS_PER_SLAVE
- IFLA_BOND_AD_LACP_RATE
- IFLA_BOND_AD_SELECT
- IFLA_BOND_AD_INFO
- IFLA_BOND_AD_ACTOR_SYS_PRIO
- IFLA_BOND_AD_USER_PORT_KEY
- IFLA_BOND_AD_ACTOR_SYSTEM
- IFLA_BOND_TLB_DYNAMIC_LB
-)
-
-const (
- IFLA_BOND_AD_INFO_UNSPEC = iota
- IFLA_BOND_AD_INFO_AGGREGATOR
- IFLA_BOND_AD_INFO_NUM_PORTS
- IFLA_BOND_AD_INFO_ACTOR_KEY
- IFLA_BOND_AD_INFO_PARTNER_KEY
- IFLA_BOND_AD_INFO_PARTNER_MAC
-)
-
-const (
- IFLA_BOND_SLAVE_UNSPEC = iota
- IFLA_BOND_SLAVE_STATE
- IFLA_BOND_SLAVE_MII_STATUS
- IFLA_BOND_SLAVE_LINK_FAILURE_COUNT
- IFLA_BOND_SLAVE_PERM_HWADDR
- IFLA_BOND_SLAVE_QUEUE_ID
- IFLA_BOND_SLAVE_AD_AGGREGATOR_ID
-)
-
-const (
- IFLA_GRE_UNSPEC = iota
- IFLA_GRE_LINK
- IFLA_GRE_IFLAGS
- IFLA_GRE_OFLAGS
- IFLA_GRE_IKEY
- IFLA_GRE_OKEY
- IFLA_GRE_LOCAL
- IFLA_GRE_REMOTE
- IFLA_GRE_TTL
- IFLA_GRE_TOS
- IFLA_GRE_PMTUDISC
- IFLA_GRE_ENCAP_LIMIT
- IFLA_GRE_FLOWINFO
- IFLA_GRE_FLAGS
- IFLA_GRE_ENCAP_TYPE
- IFLA_GRE_ENCAP_FLAGS
- IFLA_GRE_ENCAP_SPORT
- IFLA_GRE_ENCAP_DPORT
- IFLA_GRE_COLLECT_METADATA
- IFLA_GRE_MAX = IFLA_GRE_COLLECT_METADATA
-)
-
-const (
- GRE_CSUM = 0x8000
- GRE_ROUTING = 0x4000
- GRE_KEY = 0x2000
- GRE_SEQ = 0x1000
- GRE_STRICT = 0x0800
- GRE_REC = 0x0700
- GRE_FLAGS = 0x00F8
- GRE_VERSION = 0x0007
-)
-
-const (
- IFLA_VF_INFO_UNSPEC = iota
- IFLA_VF_INFO
- IFLA_VF_INFO_MAX = IFLA_VF_INFO
-)
-
-const (
- IFLA_VF_UNSPEC = iota
- IFLA_VF_MAC /* Hardware queue specific attributes */
- IFLA_VF_VLAN
- IFLA_VF_TX_RATE /* Max TX Bandwidth Allocation */
- IFLA_VF_SPOOFCHK /* Spoof Checking on/off switch */
- IFLA_VF_LINK_STATE /* link state enable/disable/auto switch */
- IFLA_VF_RATE /* Min and Max TX Bandwidth Allocation */
- IFLA_VF_RSS_QUERY_EN /* RSS Redirection Table and Hash Key query
- * on/off switch
- */
- IFLA_VF_STATS /* network device statistics */
- IFLA_VF_TRUST /* Trust state of VF */
- IFLA_VF_MAX = IFLA_VF_TRUST
-)
-
-const (
- IFLA_VF_LINK_STATE_AUTO = iota /* link state of the uplink */
- IFLA_VF_LINK_STATE_ENABLE /* link always up */
- IFLA_VF_LINK_STATE_DISABLE /* link always down */
- IFLA_VF_LINK_STATE_MAX = IFLA_VF_LINK_STATE_DISABLE
-)
-
-const (
- IFLA_VF_STATS_RX_PACKETS = iota
- IFLA_VF_STATS_TX_PACKETS
- IFLA_VF_STATS_RX_BYTES
- IFLA_VF_STATS_TX_BYTES
- IFLA_VF_STATS_BROADCAST
- IFLA_VF_STATS_MULTICAST
- IFLA_VF_STATS_MAX = IFLA_VF_STATS_MULTICAST
-)
-
-const (
- SizeofVfMac = 0x24
- SizeofVfVlan = 0x0c
- SizeofVfTxRate = 0x08
- SizeofVfRate = 0x0c
- SizeofVfSpoofchk = 0x08
- SizeofVfLinkState = 0x08
- SizeofVfRssQueryEn = 0x08
- SizeofVfTrust = 0x08
-)
-
-// struct ifla_vf_mac {
-// __u32 vf;
-// __u8 mac[32]; /* MAX_ADDR_LEN */
-// };
-
-type VfMac struct {
- Vf uint32
- Mac [32]byte
-}
-
-func (msg *VfMac) Len() int {
- return SizeofVfMac
-}
-
-func DeserializeVfMac(b []byte) *VfMac {
- return (*VfMac)(unsafe.Pointer(&b[0:SizeofVfMac][0]))
-}
-
-func (msg *VfMac) Serialize() []byte {
- return (*(*[SizeofVfMac]byte)(unsafe.Pointer(msg)))[:]
-}
-
-// struct ifla_vf_vlan {
-// __u32 vf;
-// __u32 vlan; /* 0 - 4095, 0 disables VLAN filter */
-// __u32 qos;
-// };
-
-type VfVlan struct {
- Vf uint32
- Vlan uint32
- Qos uint32
-}
-
-func (msg *VfVlan) Len() int {
- return SizeofVfVlan
-}
-
-func DeserializeVfVlan(b []byte) *VfVlan {
- return (*VfVlan)(unsafe.Pointer(&b[0:SizeofVfVlan][0]))
-}
-
-func (msg *VfVlan) Serialize() []byte {
- return (*(*[SizeofVfVlan]byte)(unsafe.Pointer(msg)))[:]
-}
-
-// struct ifla_vf_tx_rate {
-// __u32 vf;
-// __u32 rate; /* Max TX bandwidth in Mbps, 0 disables throttling */
-// };
-
-type VfTxRate struct {
- Vf uint32
- Rate uint32
-}
-
-func (msg *VfTxRate) Len() int {
- return SizeofVfTxRate
-}
-
-func DeserializeVfTxRate(b []byte) *VfTxRate {
- return (*VfTxRate)(unsafe.Pointer(&b[0:SizeofVfTxRate][0]))
-}
-
-func (msg *VfTxRate) Serialize() []byte {
- return (*(*[SizeofVfTxRate]byte)(unsafe.Pointer(msg)))[:]
-}
-
-// struct ifla_vf_rate {
-// __u32 vf;
-// __u32 min_tx_rate; /* Min Bandwidth in Mbps */
-// __u32 max_tx_rate; /* Max Bandwidth in Mbps */
-// };
-
-type VfRate struct {
- Vf uint32
- MinTxRate uint32
- MaxTxRate uint32
-}
-
-func (msg *VfRate) Len() int {
- return SizeofVfRate
-}
-
-func DeserializeVfRate(b []byte) *VfRate {
- return (*VfRate)(unsafe.Pointer(&b[0:SizeofVfRate][0]))
-}
-
-func (msg *VfRate) Serialize() []byte {
- return (*(*[SizeofVfRate]byte)(unsafe.Pointer(msg)))[:]
-}
-
-// struct ifla_vf_spoofchk {
-// __u32 vf;
-// __u32 setting;
-// };
-
-type VfSpoofchk struct {
- Vf uint32
- Setting uint32
-}
-
-func (msg *VfSpoofchk) Len() int {
- return SizeofVfSpoofchk
-}
-
-func DeserializeVfSpoofchk(b []byte) *VfSpoofchk {
- return (*VfSpoofchk)(unsafe.Pointer(&b[0:SizeofVfSpoofchk][0]))
-}
-
-func (msg *VfSpoofchk) Serialize() []byte {
- return (*(*[SizeofVfSpoofchk]byte)(unsafe.Pointer(msg)))[:]
-}
-
-// struct ifla_vf_link_state {
-// __u32 vf;
-// __u32 link_state;
-// };
-
-type VfLinkState struct {
- Vf uint32
- LinkState uint32
-}
-
-func (msg *VfLinkState) Len() int {
- return SizeofVfLinkState
-}
-
-func DeserializeVfLinkState(b []byte) *VfLinkState {
- return (*VfLinkState)(unsafe.Pointer(&b[0:SizeofVfLinkState][0]))
-}
-
-func (msg *VfLinkState) Serialize() []byte {
- return (*(*[SizeofVfLinkState]byte)(unsafe.Pointer(msg)))[:]
-}
-
-// struct ifla_vf_rss_query_en {
-// __u32 vf;
-// __u32 setting;
-// };
-
-type VfRssQueryEn struct {
- Vf uint32
- Setting uint32
-}
-
-func (msg *VfRssQueryEn) Len() int {
- return SizeofVfRssQueryEn
-}
-
-func DeserializeVfRssQueryEn(b []byte) *VfRssQueryEn {
- return (*VfRssQueryEn)(unsafe.Pointer(&b[0:SizeofVfRssQueryEn][0]))
-}
-
-func (msg *VfRssQueryEn) Serialize() []byte {
- return (*(*[SizeofVfRssQueryEn]byte)(unsafe.Pointer(msg)))[:]
-}
-
-// struct ifla_vf_trust {
-// __u32 vf;
-// __u32 setting;
-// };
-
-type VfTrust struct {
- Vf uint32
- Setting uint32
-}
-
-func (msg *VfTrust) Len() int {
- return SizeofVfTrust
-}
-
-func DeserializeVfTrust(b []byte) *VfTrust {
- return (*VfTrust)(unsafe.Pointer(&b[0:SizeofVfTrust][0]))
-}
-
-func (msg *VfTrust) Serialize() []byte {
- return (*(*[SizeofVfTrust]byte)(unsafe.Pointer(msg)))[:]
-}
-
-const (
- XDP_FLAGS_UPDATE_IF_NOEXIST = 1 << iota
- XDP_FLAGS_SKB_MODE
- XDP_FLAGS_DRV_MODE
- XDP_FLAGS_MASK = XDP_FLAGS_UPDATE_IF_NOEXIST | XDP_FLAGS_SKB_MODE | XDP_FLAGS_DRV_MODE
-)
-
-const (
- IFLA_XDP_UNSPEC = iota
- IFLA_XDP_FD /* fd of xdp program to attach, or -1 to remove */
- IFLA_XDP_ATTACHED /* read-only bool indicating if prog is attached */
- IFLA_XDP_FLAGS /* xdp prog related flags */
- IFLA_XDP_PROG_ID /* xdp prog id */
- IFLA_XDP_MAX = IFLA_XDP_PROG_ID
-)
-
-const (
- IFLA_IPTUN_UNSPEC = iota
- IFLA_IPTUN_LINK
- IFLA_IPTUN_LOCAL
- IFLA_IPTUN_REMOTE
- IFLA_IPTUN_TTL
- IFLA_IPTUN_TOS
- IFLA_IPTUN_ENCAP_LIMIT
- IFLA_IPTUN_FLOWINFO
- IFLA_IPTUN_FLAGS
- IFLA_IPTUN_PROTO
- IFLA_IPTUN_PMTUDISC
- IFLA_IPTUN_6RD_PREFIX
- IFLA_IPTUN_6RD_RELAY_PREFIX
- IFLA_IPTUN_6RD_PREFIXLEN
- IFLA_IPTUN_6RD_RELAY_PREFIXLEN
- IFLA_IPTUN_ENCAP_TYPE
- IFLA_IPTUN_ENCAP_FLAGS
- IFLA_IPTUN_ENCAP_SPORT
- IFLA_IPTUN_ENCAP_DPORT
- IFLA_IPTUN_COLLECT_METADATA
- IFLA_IPTUN_MAX = IFLA_IPTUN_COLLECT_METADATA
-)
-
-const (
- IFLA_VTI_UNSPEC = iota
- IFLA_VTI_LINK
- IFLA_VTI_IKEY
- IFLA_VTI_OKEY
- IFLA_VTI_LOCAL
- IFLA_VTI_REMOTE
- IFLA_VTI_MAX = IFLA_VTI_REMOTE
-)
-
-const (
- IFLA_VRF_UNSPEC = iota
- IFLA_VRF_TABLE
-)
-
-const (
- IFLA_BR_UNSPEC = iota
- IFLA_BR_FORWARD_DELAY
- IFLA_BR_HELLO_TIME
- IFLA_BR_MAX_AGE
- IFLA_BR_AGEING_TIME
- IFLA_BR_STP_STATE
- IFLA_BR_PRIORITY
- IFLA_BR_VLAN_FILTERING
- IFLA_BR_VLAN_PROTOCOL
- IFLA_BR_GROUP_FWD_MASK
- IFLA_BR_ROOT_ID
- IFLA_BR_BRIDGE_ID
- IFLA_BR_ROOT_PORT
- IFLA_BR_ROOT_PATH_COST
- IFLA_BR_TOPOLOGY_CHANGE
- IFLA_BR_TOPOLOGY_CHANGE_DETECTED
- IFLA_BR_HELLO_TIMER
- IFLA_BR_TCN_TIMER
- IFLA_BR_TOPOLOGY_CHANGE_TIMER
- IFLA_BR_GC_TIMER
- IFLA_BR_GROUP_ADDR
- IFLA_BR_FDB_FLUSH
- IFLA_BR_MCAST_ROUTER
- IFLA_BR_MCAST_SNOOPING
- IFLA_BR_MCAST_QUERY_USE_IFADDR
- IFLA_BR_MCAST_QUERIER
- IFLA_BR_MCAST_HASH_ELASTICITY
- IFLA_BR_MCAST_HASH_MAX
- IFLA_BR_MCAST_LAST_MEMBER_CNT
- IFLA_BR_MCAST_STARTUP_QUERY_CNT
- IFLA_BR_MCAST_LAST_MEMBER_INTVL
- IFLA_BR_MCAST_MEMBERSHIP_INTVL
- IFLA_BR_MCAST_QUERIER_INTVL
- IFLA_BR_MCAST_QUERY_INTVL
- IFLA_BR_MCAST_QUERY_RESPONSE_INTVL
- IFLA_BR_MCAST_STARTUP_QUERY_INTVL
- IFLA_BR_NF_CALL_IPTABLES
- IFLA_BR_NF_CALL_IP6TABLES
- IFLA_BR_NF_CALL_ARPTABLES
- IFLA_BR_VLAN_DEFAULT_PVID
- IFLA_BR_PAD
- IFLA_BR_VLAN_STATS_ENABLED
- IFLA_BR_MCAST_STATS_ENABLED
- IFLA_BR_MCAST_IGMP_VERSION
- IFLA_BR_MCAST_MLD_VERSION
- IFLA_BR_MAX = IFLA_BR_MCAST_MLD_VERSION
-)
-
-const (
- IFLA_GTP_UNSPEC = iota
- IFLA_GTP_FD0
- IFLA_GTP_FD1
- IFLA_GTP_PDP_HASHSIZE
- IFLA_GTP_ROLE
-)
-
-const (
- GTP_ROLE_GGSN = iota
- GTP_ROLE_SGSN
-)
diff --git a/vendor/github.com/vishvananda/netlink/nl/mpls_linux.go b/vendor/github.com/vishvananda/netlink/nl/mpls_linux.go
deleted file mode 100644
index 3915b7e..0000000
--- a/vendor/github.com/vishvananda/netlink/nl/mpls_linux.go
+++ /dev/null
@@ -1,36 +0,0 @@
-package nl
-
-import "encoding/binary"
-
-const (
- MPLS_LS_LABEL_SHIFT = 12
- MPLS_LS_S_SHIFT = 8
-)
-
-func EncodeMPLSStack(labels ...int) []byte {
- b := make([]byte, 4*len(labels))
- for idx, label := range labels {
- l := label << MPLS_LS_LABEL_SHIFT
- if idx == len(labels)-1 {
- l |= 1 << MPLS_LS_S_SHIFT
- }
- binary.BigEndian.PutUint32(b[idx*4:], uint32(l))
- }
- return b
-}
-
-func DecodeMPLSStack(buf []byte) []int {
- if len(buf)%4 != 0 {
- return nil
- }
- stack := make([]int, 0, len(buf)/4)
- for len(buf) > 0 {
- l := binary.BigEndian.Uint32(buf[:4])
- buf = buf[4:]
- stack = append(stack, int(l)>>MPLS_LS_LABEL_SHIFT)
- if (l>>MPLS_LS_S_SHIFT)&1 > 0 {
- break
- }
- }
- return stack
-}
diff --git a/vendor/github.com/vishvananda/netlink/nl/nl_linux.go b/vendor/github.com/vishvananda/netlink/nl/nl_linux.go
deleted file mode 100644
index bc8e82c..0000000
--- a/vendor/github.com/vishvananda/netlink/nl/nl_linux.go
+++ /dev/null
@@ -1,738 +0,0 @@
-// Package nl has low level primitives for making Netlink calls.
-package nl
-
-import (
- "bytes"
- "encoding/binary"
- "fmt"
- "net"
- "runtime"
- "sync"
- "sync/atomic"
- "syscall"
- "unsafe"
-
- "github.com/vishvananda/netns"
- "golang.org/x/sys/unix"
-)
-
-const (
- // Family type definitions
- FAMILY_ALL = unix.AF_UNSPEC
- FAMILY_V4 = unix.AF_INET
- FAMILY_V6 = unix.AF_INET6
- FAMILY_MPLS = AF_MPLS
-)
-
-// SupportedNlFamilies contains the list of netlink families this netlink package supports
-var SupportedNlFamilies = []int{unix.NETLINK_ROUTE, unix.NETLINK_XFRM, unix.NETLINK_NETFILTER}
-
-var nextSeqNr uint32
-
-// GetIPFamily returns the family type of a net.IP.
-func GetIPFamily(ip net.IP) int {
- if len(ip) <= net.IPv4len {
- return FAMILY_V4
- }
- if ip.To4() != nil {
- return FAMILY_V4
- }
- return FAMILY_V6
-}
-
-var nativeEndian binary.ByteOrder
-
-// Get native endianness for the system
-func NativeEndian() binary.ByteOrder {
- if nativeEndian == nil {
- var x uint32 = 0x01020304
- if *(*byte)(unsafe.Pointer(&x)) == 0x01 {
- nativeEndian = binary.BigEndian
- } else {
- nativeEndian = binary.LittleEndian
- }
- }
- return nativeEndian
-}
-
-// Byte swap a 16 bit value if we aren't big endian
-func Swap16(i uint16) uint16 {
- if NativeEndian() == binary.BigEndian {
- return i
- }
- return (i&0xff00)>>8 | (i&0xff)<<8
-}
-
-// Byte swap a 32 bit value if aren't big endian
-func Swap32(i uint32) uint32 {
- if NativeEndian() == binary.BigEndian {
- return i
- }
- return (i&0xff000000)>>24 | (i&0xff0000)>>8 | (i&0xff00)<<8 | (i&0xff)<<24
-}
-
-type NetlinkRequestData interface {
- Len() int
- Serialize() []byte
-}
-
-// IfInfomsg is related to links, but it is used for list requests as well
-type IfInfomsg struct {
- unix.IfInfomsg
-}
-
-// Create an IfInfomsg with family specified
-func NewIfInfomsg(family int) *IfInfomsg {
- return &IfInfomsg{
- IfInfomsg: unix.IfInfomsg{
- Family: uint8(family),
- },
- }
-}
-
-func DeserializeIfInfomsg(b []byte) *IfInfomsg {
- return (*IfInfomsg)(unsafe.Pointer(&b[0:unix.SizeofIfInfomsg][0]))
-}
-
-func (msg *IfInfomsg) Serialize() []byte {
- return (*(*[unix.SizeofIfInfomsg]byte)(unsafe.Pointer(msg)))[:]
-}
-
-func (msg *IfInfomsg) Len() int {
- return unix.SizeofIfInfomsg
-}
-
-func (msg *IfInfomsg) EncapType() string {
- switch msg.Type {
- case 0:
- return "generic"
- case unix.ARPHRD_ETHER:
- return "ether"
- case unix.ARPHRD_EETHER:
- return "eether"
- case unix.ARPHRD_AX25:
- return "ax25"
- case unix.ARPHRD_PRONET:
- return "pronet"
- case unix.ARPHRD_CHAOS:
- return "chaos"
- case unix.ARPHRD_IEEE802:
- return "ieee802"
- case unix.ARPHRD_ARCNET:
- return "arcnet"
- case unix.ARPHRD_APPLETLK:
- return "atalk"
- case unix.ARPHRD_DLCI:
- return "dlci"
- case unix.ARPHRD_ATM:
- return "atm"
- case unix.ARPHRD_METRICOM:
- return "metricom"
- case unix.ARPHRD_IEEE1394:
- return "ieee1394"
- case unix.ARPHRD_INFINIBAND:
- return "infiniband"
- case unix.ARPHRD_SLIP:
- return "slip"
- case unix.ARPHRD_CSLIP:
- return "cslip"
- case unix.ARPHRD_SLIP6:
- return "slip6"
- case unix.ARPHRD_CSLIP6:
- return "cslip6"
- case unix.ARPHRD_RSRVD:
- return "rsrvd"
- case unix.ARPHRD_ADAPT:
- return "adapt"
- case unix.ARPHRD_ROSE:
- return "rose"
- case unix.ARPHRD_X25:
- return "x25"
- case unix.ARPHRD_HWX25:
- return "hwx25"
- case unix.ARPHRD_PPP:
- return "ppp"
- case unix.ARPHRD_HDLC:
- return "hdlc"
- case unix.ARPHRD_LAPB:
- return "lapb"
- case unix.ARPHRD_DDCMP:
- return "ddcmp"
- case unix.ARPHRD_RAWHDLC:
- return "rawhdlc"
- case unix.ARPHRD_TUNNEL:
- return "ipip"
- case unix.ARPHRD_TUNNEL6:
- return "tunnel6"
- case unix.ARPHRD_FRAD:
- return "frad"
- case unix.ARPHRD_SKIP:
- return "skip"
- case unix.ARPHRD_LOOPBACK:
- return "loopback"
- case unix.ARPHRD_LOCALTLK:
- return "ltalk"
- case unix.ARPHRD_FDDI:
- return "fddi"
- case unix.ARPHRD_BIF:
- return "bif"
- case unix.ARPHRD_SIT:
- return "sit"
- case unix.ARPHRD_IPDDP:
- return "ip/ddp"
- case unix.ARPHRD_IPGRE:
- return "gre"
- case unix.ARPHRD_PIMREG:
- return "pimreg"
- case unix.ARPHRD_HIPPI:
- return "hippi"
- case unix.ARPHRD_ASH:
- return "ash"
- case unix.ARPHRD_ECONET:
- return "econet"
- case unix.ARPHRD_IRDA:
- return "irda"
- case unix.ARPHRD_FCPP:
- return "fcpp"
- case unix.ARPHRD_FCAL:
- return "fcal"
- case unix.ARPHRD_FCPL:
- return "fcpl"
- case unix.ARPHRD_FCFABRIC:
- return "fcfb0"
- case unix.ARPHRD_FCFABRIC + 1:
- return "fcfb1"
- case unix.ARPHRD_FCFABRIC + 2:
- return "fcfb2"
- case unix.ARPHRD_FCFABRIC + 3:
- return "fcfb3"
- case unix.ARPHRD_FCFABRIC + 4:
- return "fcfb4"
- case unix.ARPHRD_FCFABRIC + 5:
- return "fcfb5"
- case unix.ARPHRD_FCFABRIC + 6:
- return "fcfb6"
- case unix.ARPHRD_FCFABRIC + 7:
- return "fcfb7"
- case unix.ARPHRD_FCFABRIC + 8:
- return "fcfb8"
- case unix.ARPHRD_FCFABRIC + 9:
- return "fcfb9"
- case unix.ARPHRD_FCFABRIC + 10:
- return "fcfb10"
- case unix.ARPHRD_FCFABRIC + 11:
- return "fcfb11"
- case unix.ARPHRD_FCFABRIC + 12:
- return "fcfb12"
- case unix.ARPHRD_IEEE802_TR:
- return "tr"
- case unix.ARPHRD_IEEE80211:
- return "ieee802.11"
- case unix.ARPHRD_IEEE80211_PRISM:
- return "ieee802.11/prism"
- case unix.ARPHRD_IEEE80211_RADIOTAP:
- return "ieee802.11/radiotap"
- case unix.ARPHRD_IEEE802154:
- return "ieee802.15.4"
-
- case 65534:
- return "none"
- case 65535:
- return "void"
- }
- return fmt.Sprintf("unknown%d", msg.Type)
-}
-
-func rtaAlignOf(attrlen int) int {
- return (attrlen + unix.RTA_ALIGNTO - 1) & ^(unix.RTA_ALIGNTO - 1)
-}
-
-func NewIfInfomsgChild(parent *RtAttr, family int) *IfInfomsg {
- msg := NewIfInfomsg(family)
- parent.children = append(parent.children, msg)
- return msg
-}
-
-// Extend RtAttr to handle data and children
-type RtAttr struct {
- unix.RtAttr
- Data []byte
- children []NetlinkRequestData
-}
-
-// Create a new Extended RtAttr object
-func NewRtAttr(attrType int, data []byte) *RtAttr {
- return &RtAttr{
- RtAttr: unix.RtAttr{
- Type: uint16(attrType),
- },
- children: []NetlinkRequestData{},
- Data: data,
- }
-}
-
-// Create a new RtAttr obj anc add it as a child of an existing object
-func NewRtAttrChild(parent *RtAttr, attrType int, data []byte) *RtAttr {
- attr := NewRtAttr(attrType, data)
- parent.children = append(parent.children, attr)
- return attr
-}
-
-// AddChild adds an existing RtAttr as a child.
-func (a *RtAttr) AddChild(attr *RtAttr) {
- a.children = append(a.children, attr)
-}
-
-func (a *RtAttr) Len() int {
- if len(a.children) == 0 {
- return (unix.SizeofRtAttr + len(a.Data))
- }
-
- l := 0
- for _, child := range a.children {
- l += rtaAlignOf(child.Len())
- }
- l += unix.SizeofRtAttr
- return rtaAlignOf(l + len(a.Data))
-}
-
-// Serialize the RtAttr into a byte array
-// This can't just unsafe.cast because it must iterate through children.
-func (a *RtAttr) Serialize() []byte {
- native := NativeEndian()
-
- length := a.Len()
- buf := make([]byte, rtaAlignOf(length))
-
- next := 4
- if a.Data != nil {
- copy(buf[next:], a.Data)
- next += rtaAlignOf(len(a.Data))
- }
- if len(a.children) > 0 {
- for _, child := range a.children {
- childBuf := child.Serialize()
- copy(buf[next:], childBuf)
- next += rtaAlignOf(len(childBuf))
- }
- }
-
- if l := uint16(length); l != 0 {
- native.PutUint16(buf[0:2], l)
- }
- native.PutUint16(buf[2:4], a.Type)
- return buf
-}
-
-type NetlinkRequest struct {
- unix.NlMsghdr
- Data []NetlinkRequestData
- RawData []byte
- Sockets map[int]*SocketHandle
-}
-
-// Serialize the Netlink Request into a byte array
-func (req *NetlinkRequest) Serialize() []byte {
- length := unix.SizeofNlMsghdr
- dataBytes := make([][]byte, len(req.Data))
- for i, data := range req.Data {
- dataBytes[i] = data.Serialize()
- length = length + len(dataBytes[i])
- }
- length += len(req.RawData)
-
- req.Len = uint32(length)
- b := make([]byte, length)
- hdr := (*(*[unix.SizeofNlMsghdr]byte)(unsafe.Pointer(req)))[:]
- next := unix.SizeofNlMsghdr
- copy(b[0:next], hdr)
- for _, data := range dataBytes {
- for _, dataByte := range data {
- b[next] = dataByte
- next = next + 1
- }
- }
- // Add the raw data if any
- if len(req.RawData) > 0 {
- copy(b[next:length], req.RawData)
- }
- return b
-}
-
-func (req *NetlinkRequest) AddData(data NetlinkRequestData) {
- if data != nil {
- req.Data = append(req.Data, data)
- }
-}
-
-// AddRawData adds raw bytes to the end of the NetlinkRequest object during serialization
-func (req *NetlinkRequest) AddRawData(data []byte) {
- if data != nil {
- req.RawData = append(req.RawData, data...)
- }
-}
-
-// Execute the request against a the given sockType.
-// Returns a list of netlink messages in serialized format, optionally filtered
-// by resType.
-func (req *NetlinkRequest) Execute(sockType int, resType uint16) ([][]byte, error) {
- var (
- s *NetlinkSocket
- err error
- )
-
- if req.Sockets != nil {
- if sh, ok := req.Sockets[sockType]; ok {
- s = sh.Socket
- req.Seq = atomic.AddUint32(&sh.Seq, 1)
- }
- }
- sharedSocket := s != nil
-
- if s == nil {
- s, err = getNetlinkSocket(sockType)
- if err != nil {
- return nil, err
- }
- defer s.Close()
- } else {
- s.Lock()
- defer s.Unlock()
- }
-
- if err := s.Send(req); err != nil {
- return nil, err
- }
-
- pid, err := s.GetPid()
- if err != nil {
- return nil, err
- }
-
- var res [][]byte
-
-done:
- for {
- msgs, err := s.Receive()
- if err != nil {
- return nil, err
- }
- for _, m := range msgs {
- if m.Header.Seq != req.Seq {
- if sharedSocket {
- continue
- }
- return nil, fmt.Errorf("Wrong Seq nr %d, expected %d", m.Header.Seq, req.Seq)
- }
- if m.Header.Pid != pid {
- return nil, fmt.Errorf("Wrong pid %d, expected %d", m.Header.Pid, pid)
- }
- if m.Header.Type == unix.NLMSG_DONE {
- break done
- }
- if m.Header.Type == unix.NLMSG_ERROR {
- native := NativeEndian()
- error := int32(native.Uint32(m.Data[0:4]))
- if error == 0 {
- break done
- }
- return nil, syscall.Errno(-error)
- }
- if resType != 0 && m.Header.Type != resType {
- continue
- }
- res = append(res, m.Data)
- if m.Header.Flags&unix.NLM_F_MULTI == 0 {
- break done
- }
- }
- }
- return res, nil
-}
-
-// Create a new netlink request from proto and flags
-// Note the Len value will be inaccurate once data is added until
-// the message is serialized
-func NewNetlinkRequest(proto, flags int) *NetlinkRequest {
- return &NetlinkRequest{
- NlMsghdr: unix.NlMsghdr{
- Len: uint32(unix.SizeofNlMsghdr),
- Type: uint16(proto),
- Flags: unix.NLM_F_REQUEST | uint16(flags),
- Seq: atomic.AddUint32(&nextSeqNr, 1),
- },
- }
-}
-
-type NetlinkSocket struct {
- fd int32
- lsa unix.SockaddrNetlink
- sync.Mutex
-}
-
-func getNetlinkSocket(protocol int) (*NetlinkSocket, error) {
- fd, err := unix.Socket(unix.AF_NETLINK, unix.SOCK_RAW|unix.SOCK_CLOEXEC, protocol)
- if err != nil {
- return nil, err
- }
- s := &NetlinkSocket{
- fd: int32(fd),
- }
- s.lsa.Family = unix.AF_NETLINK
- if err := unix.Bind(fd, &s.lsa); err != nil {
- unix.Close(fd)
- return nil, err
- }
-
- return s, nil
-}
-
-// GetNetlinkSocketAt opens a netlink socket in the network namespace newNs
-// and positions the thread back into the network namespace specified by curNs,
-// when done. If curNs is close, the function derives the current namespace and
-// moves back into it when done. If newNs is close, the socket will be opened
-// in the current network namespace.
-func GetNetlinkSocketAt(newNs, curNs netns.NsHandle, protocol int) (*NetlinkSocket, error) {
- c, err := executeInNetns(newNs, curNs)
- if err != nil {
- return nil, err
- }
- defer c()
- return getNetlinkSocket(protocol)
-}
-
-// executeInNetns sets execution of the code following this call to the
-// network namespace newNs, then moves the thread back to curNs if open,
-// otherwise to the current netns at the time the function was invoked
-// In case of success, the caller is expected to execute the returned function
-// at the end of the code that needs to be executed in the network namespace.
-// Example:
-// func jobAt(...) error {
-// d, err := executeInNetns(...)
-// if err != nil { return err}
-// defer d()
-// < code which needs to be executed in specific netns>
-// }
-// TODO: his function probably belongs to netns pkg.
-func executeInNetns(newNs, curNs netns.NsHandle) (func(), error) {
- var (
- err error
- moveBack func(netns.NsHandle) error
- closeNs func() error
- unlockThd func()
- )
- restore := func() {
- // order matters
- if moveBack != nil {
- moveBack(curNs)
- }
- if closeNs != nil {
- closeNs()
- }
- if unlockThd != nil {
- unlockThd()
- }
- }
- if newNs.IsOpen() {
- runtime.LockOSThread()
- unlockThd = runtime.UnlockOSThread
- if !curNs.IsOpen() {
- if curNs, err = netns.Get(); err != nil {
- restore()
- return nil, fmt.Errorf("could not get current namespace while creating netlink socket: %v", err)
- }
- closeNs = curNs.Close
- }
- if err := netns.Set(newNs); err != nil {
- restore()
- return nil, fmt.Errorf("failed to set into network namespace %d while creating netlink socket: %v", newNs, err)
- }
- moveBack = netns.Set
- }
- return restore, nil
-}
-
-// Create a netlink socket with a given protocol (e.g. NETLINK_ROUTE)
-// and subscribe it to multicast groups passed in variable argument list.
-// Returns the netlink socket on which Receive() method can be called
-// to retrieve the messages from the kernel.
-func Subscribe(protocol int, groups ...uint) (*NetlinkSocket, error) {
- fd, err := unix.Socket(unix.AF_NETLINK, unix.SOCK_RAW, protocol)
- if err != nil {
- return nil, err
- }
- s := &NetlinkSocket{
- fd: int32(fd),
- }
- s.lsa.Family = unix.AF_NETLINK
-
- for _, g := range groups {
- s.lsa.Groups |= (1 << (g - 1))
- }
-
- if err := unix.Bind(fd, &s.lsa); err != nil {
- unix.Close(fd)
- return nil, err
- }
-
- return s, nil
-}
-
-// SubscribeAt works like Subscribe plus let's the caller choose the network
-// namespace in which the socket would be opened (newNs). Then control goes back
-// to curNs if open, otherwise to the netns at the time this function was called.
-func SubscribeAt(newNs, curNs netns.NsHandle, protocol int, groups ...uint) (*NetlinkSocket, error) {
- c, err := executeInNetns(newNs, curNs)
- if err != nil {
- return nil, err
- }
- defer c()
- return Subscribe(protocol, groups...)
-}
-
-func (s *NetlinkSocket) Close() {
- fd := int(atomic.SwapInt32(&s.fd, -1))
- unix.Close(fd)
-}
-
-func (s *NetlinkSocket) GetFd() int {
- return int(atomic.LoadInt32(&s.fd))
-}
-
-func (s *NetlinkSocket) Send(request *NetlinkRequest) error {
- fd := int(atomic.LoadInt32(&s.fd))
- if fd < 0 {
- return fmt.Errorf("Send called on a closed socket")
- }
- if err := unix.Sendto(fd, request.Serialize(), 0, &s.lsa); err != nil {
- return err
- }
- return nil
-}
-
-func (s *NetlinkSocket) Receive() ([]syscall.NetlinkMessage, error) {
- fd := int(atomic.LoadInt32(&s.fd))
- if fd < 0 {
- return nil, fmt.Errorf("Receive called on a closed socket")
- }
- rb := make([]byte, unix.Getpagesize())
- nr, _, err := unix.Recvfrom(fd, rb, 0)
- if err != nil {
- return nil, err
- }
- if nr < unix.NLMSG_HDRLEN {
- return nil, fmt.Errorf("Got short response from netlink")
- }
- rb = rb[:nr]
- return syscall.ParseNetlinkMessage(rb)
-}
-
-// SetSendTimeout allows to set a send timeout on the socket
-func (s *NetlinkSocket) SetSendTimeout(timeout *unix.Timeval) error {
- // Set a send timeout of SOCKET_SEND_TIMEOUT, this will allow the Send to periodically unblock and avoid that a routine
- // remains stuck on a send on a closed fd
- return unix.SetsockoptTimeval(int(s.fd), unix.SOL_SOCKET, unix.SO_SNDTIMEO, timeout)
-}
-
-// SetReceiveTimeout allows to set a receive timeout on the socket
-func (s *NetlinkSocket) SetReceiveTimeout(timeout *unix.Timeval) error {
- // Set a read timeout of SOCKET_READ_TIMEOUT, this will allow the Read to periodically unblock and avoid that a routine
- // remains stuck on a recvmsg on a closed fd
- return unix.SetsockoptTimeval(int(s.fd), unix.SOL_SOCKET, unix.SO_RCVTIMEO, timeout)
-}
-
-func (s *NetlinkSocket) GetPid() (uint32, error) {
- fd := int(atomic.LoadInt32(&s.fd))
- lsa, err := unix.Getsockname(fd)
- if err != nil {
- return 0, err
- }
- switch v := lsa.(type) {
- case *unix.SockaddrNetlink:
- return v.Pid, nil
- }
- return 0, fmt.Errorf("Wrong socket type")
-}
-
-func ZeroTerminated(s string) []byte {
- bytes := make([]byte, len(s)+1)
- for i := 0; i < len(s); i++ {
- bytes[i] = s[i]
- }
- bytes[len(s)] = 0
- return bytes
-}
-
-func NonZeroTerminated(s string) []byte {
- bytes := make([]byte, len(s))
- for i := 0; i < len(s); i++ {
- bytes[i] = s[i]
- }
- return bytes
-}
-
-func BytesToString(b []byte) string {
- n := bytes.Index(b, []byte{0})
- return string(b[:n])
-}
-
-func Uint8Attr(v uint8) []byte {
- return []byte{byte(v)}
-}
-
-func Uint16Attr(v uint16) []byte {
- native := NativeEndian()
- bytes := make([]byte, 2)
- native.PutUint16(bytes, v)
- return bytes
-}
-
-func Uint32Attr(v uint32) []byte {
- native := NativeEndian()
- bytes := make([]byte, 4)
- native.PutUint32(bytes, v)
- return bytes
-}
-
-func Uint64Attr(v uint64) []byte {
- native := NativeEndian()
- bytes := make([]byte, 8)
- native.PutUint64(bytes, v)
- return bytes
-}
-
-func ParseRouteAttr(b []byte) ([]syscall.NetlinkRouteAttr, error) {
- var attrs []syscall.NetlinkRouteAttr
- for len(b) >= unix.SizeofRtAttr {
- a, vbuf, alen, err := netlinkRouteAttrAndValue(b)
- if err != nil {
- return nil, err
- }
- ra := syscall.NetlinkRouteAttr{Attr: syscall.RtAttr(*a), Value: vbuf[:int(a.Len)-unix.SizeofRtAttr]}
- attrs = append(attrs, ra)
- b = b[alen:]
- }
- return attrs, nil
-}
-
-func netlinkRouteAttrAndValue(b []byte) (*unix.RtAttr, []byte, int, error) {
- a := (*unix.RtAttr)(unsafe.Pointer(&b[0]))
- if int(a.Len) < unix.SizeofRtAttr || int(a.Len) > len(b) {
- return nil, nil, 0, unix.EINVAL
- }
- return a, b[unix.SizeofRtAttr:], rtaAlignOf(int(a.Len)), nil
-}
-
-// SocketHandle contains the netlink socket and the associated
-// sequence counter for a specific netlink family
-type SocketHandle struct {
- Seq uint32
- Socket *NetlinkSocket
-}
-
-// Close closes the netlink socket
-func (sh *SocketHandle) Close() {
- if sh.Socket != nil {
- sh.Socket.Close()
- }
-}
diff --git a/vendor/github.com/vishvananda/netlink/nl/nl_unspecified.go b/vendor/github.com/vishvananda/netlink/nl/nl_unspecified.go
deleted file mode 100644
index dfc0be6..0000000
--- a/vendor/github.com/vishvananda/netlink/nl/nl_unspecified.go
+++ /dev/null
@@ -1,11 +0,0 @@
-// +build !linux
-
-package nl
-
-import "encoding/binary"
-
-var SupportedNlFamilies = []int{}
-
-func NativeEndian() binary.ByteOrder {
- return nil
-}
diff --git a/vendor/github.com/vishvananda/netlink/nl/route_linux.go b/vendor/github.com/vishvananda/netlink/nl/route_linux.go
deleted file mode 100644
index f6906fc..0000000
--- a/vendor/github.com/vishvananda/netlink/nl/route_linux.go
+++ /dev/null
@@ -1,81 +0,0 @@
-package nl
-
-import (
- "unsafe"
-
- "golang.org/x/sys/unix"
-)
-
-type RtMsg struct {
- unix.RtMsg
-}
-
-func NewRtMsg() *RtMsg {
- return &RtMsg{
- RtMsg: unix.RtMsg{
- Table: unix.RT_TABLE_MAIN,
- Scope: unix.RT_SCOPE_UNIVERSE,
- Protocol: unix.RTPROT_BOOT,
- Type: unix.RTN_UNICAST,
- },
- }
-}
-
-func NewRtDelMsg() *RtMsg {
- return &RtMsg{
- RtMsg: unix.RtMsg{
- Table: unix.RT_TABLE_MAIN,
- Scope: unix.RT_SCOPE_NOWHERE,
- },
- }
-}
-
-func (msg *RtMsg) Len() int {
- return unix.SizeofRtMsg
-}
-
-func DeserializeRtMsg(b []byte) *RtMsg {
- return (*RtMsg)(unsafe.Pointer(&b[0:unix.SizeofRtMsg][0]))
-}
-
-func (msg *RtMsg) Serialize() []byte {
- return (*(*[unix.SizeofRtMsg]byte)(unsafe.Pointer(msg)))[:]
-}
-
-type RtNexthop struct {
- unix.RtNexthop
- Children []NetlinkRequestData
-}
-
-func DeserializeRtNexthop(b []byte) *RtNexthop {
- return (*RtNexthop)(unsafe.Pointer(&b[0:unix.SizeofRtNexthop][0]))
-}
-
-func (msg *RtNexthop) Len() int {
- if len(msg.Children) == 0 {
- return unix.SizeofRtNexthop
- }
-
- l := 0
- for _, child := range msg.Children {
- l += rtaAlignOf(child.Len())
- }
- l += unix.SizeofRtNexthop
- return rtaAlignOf(l)
-}
-
-func (msg *RtNexthop) Serialize() []byte {
- length := msg.Len()
- msg.RtNexthop.Len = uint16(length)
- buf := make([]byte, length)
- copy(buf, (*(*[unix.SizeofRtNexthop]byte)(unsafe.Pointer(msg)))[:])
- next := rtaAlignOf(unix.SizeofRtNexthop)
- if len(msg.Children) > 0 {
- for _, child := range msg.Children {
- childBuf := child.Serialize()
- copy(buf[next:], childBuf)
- next += rtaAlignOf(len(childBuf))
- }
- }
- return buf
-}
diff --git a/vendor/github.com/vishvananda/netlink/nl/seg6_linux.go b/vendor/github.com/vishvananda/netlink/nl/seg6_linux.go
deleted file mode 100644
index b3425f6..0000000
--- a/vendor/github.com/vishvananda/netlink/nl/seg6_linux.go
+++ /dev/null
@@ -1,111 +0,0 @@
-package nl
-
-import (
- "errors"
- "fmt"
- "net"
-)
-
-type IPv6SrHdr struct {
- nextHdr uint8
- hdrLen uint8
- routingType uint8
- segmentsLeft uint8
- firstSegment uint8
- flags uint8
- reserved uint16
-
- Segments []net.IP
-}
-
-func (s1 *IPv6SrHdr) Equal(s2 IPv6SrHdr) bool {
- if len(s1.Segments) != len(s2.Segments) {
- return false
- }
- for i := range s1.Segments {
- if s1.Segments[i].Equal(s2.Segments[i]) != true {
- return false
- }
- }
- return s1.nextHdr == s2.nextHdr &&
- s1.hdrLen == s2.hdrLen &&
- s1.routingType == s2.routingType &&
- s1.segmentsLeft == s2.segmentsLeft &&
- s1.firstSegment == s2.firstSegment &&
- s1.flags == s2.flags
- // reserved doesn't need to be identical.
-}
-
-// seg6 encap mode
-const (
- SEG6_IPTUN_MODE_INLINE = iota
- SEG6_IPTUN_MODE_ENCAP
-)
-
-// number of nested RTATTR
-// from include/uapi/linux/seg6_iptunnel.h
-const (
- SEG6_IPTUNNEL_UNSPEC = iota
- SEG6_IPTUNNEL_SRH
- __SEG6_IPTUNNEL_MAX
-)
-const (
- SEG6_IPTUNNEL_MAX = __SEG6_IPTUNNEL_MAX - 1
-)
-
-func EncodeSEG6Encap(mode int, segments []net.IP) ([]byte, error) {
- nsegs := len(segments) // nsegs: number of segments
- if nsegs == 0 {
- return nil, errors.New("EncodeSEG6Encap: No Segment in srh")
- }
- b := make([]byte, 12, 12+len(segments)*16)
- native := NativeEndian()
- native.PutUint32(b, uint32(mode))
- b[4] = 0 // srh.nextHdr (0 when calling netlink)
- b[5] = uint8(16 * nsegs >> 3) // srh.hdrLen (in 8-octets unit)
- b[6] = IPV6_SRCRT_TYPE_4 // srh.routingType (assigned by IANA)
- b[7] = uint8(nsegs - 1) // srh.segmentsLeft
- b[8] = uint8(nsegs - 1) // srh.firstSegment
- b[9] = 0 // srh.flags (SR6_FLAG1_HMAC for srh_hmac)
- // srh.reserved: Defined as "Tag" in draft-ietf-6man-segment-routing-header-07
- native.PutUint16(b[10:], 0) // srh.reserved
- for _, netIP := range segments {
- b = append(b, netIP...) // srh.Segments
- }
- return b, nil
-}
-
-func DecodeSEG6Encap(buf []byte) (int, []net.IP, error) {
- native := NativeEndian()
- mode := int(native.Uint32(buf))
- srh := IPv6SrHdr{
- nextHdr: buf[4],
- hdrLen: buf[5],
- routingType: buf[6],
- segmentsLeft: buf[7],
- firstSegment: buf[8],
- flags: buf[9],
- reserved: native.Uint16(buf[10:12]),
- }
- buf = buf[12:]
- if len(buf)%16 != 0 {
- err := fmt.Errorf("DecodeSEG6Encap: error parsing Segment List (buf len: %d)\n", len(buf))
- return mode, nil, err
- }
- for len(buf) > 0 {
- srh.Segments = append(srh.Segments, net.IP(buf[:16]))
- buf = buf[16:]
- }
- return mode, srh.Segments, nil
-}
-
-// Helper functions
-func SEG6EncapModeString(mode int) string {
- switch mode {
- case SEG6_IPTUN_MODE_INLINE:
- return "inline"
- case SEG6_IPTUN_MODE_ENCAP:
- return "encap"
- }
- return "unknown"
-}
diff --git a/vendor/github.com/vishvananda/netlink/nl/syscall.go b/vendor/github.com/vishvananda/netlink/nl/syscall.go
deleted file mode 100644
index fc631e0..0000000
--- a/vendor/github.com/vishvananda/netlink/nl/syscall.go
+++ /dev/null
@@ -1,78 +0,0 @@
-package nl
-
-// syscall package lack of rule atributes type.
-// Thus there are defined below
-const (
- FRA_UNSPEC = iota
- FRA_DST /* destination address */
- FRA_SRC /* source address */
- FRA_IIFNAME /* interface name */
- FRA_GOTO /* target to jump to (FR_ACT_GOTO) */
- FRA_UNUSED2
- FRA_PRIORITY /* priority/preference */
- FRA_UNUSED3
- FRA_UNUSED4
- FRA_UNUSED5
- FRA_FWMARK /* mark */
- FRA_FLOW /* flow/class id */
- FRA_TUN_ID
- FRA_SUPPRESS_IFGROUP
- FRA_SUPPRESS_PREFIXLEN
- FRA_TABLE /* Extended table id */
- FRA_FWMASK /* mask for netfilter mark */
- FRA_OIFNAME
-)
-
-// ip rule netlink request types
-const (
- FR_ACT_UNSPEC = iota
- FR_ACT_TO_TBL /* Pass to fixed table */
- FR_ACT_GOTO /* Jump to another rule */
- FR_ACT_NOP /* No operation */
- FR_ACT_RES3
- FR_ACT_RES4
- FR_ACT_BLACKHOLE /* Drop without notification */
- FR_ACT_UNREACHABLE /* Drop with ENETUNREACH */
- FR_ACT_PROHIBIT /* Drop with EACCES */
-)
-
-// socket diags related
-const (
- SOCK_DIAG_BY_FAMILY = 20 /* linux.sock_diag.h */
- TCPDIAG_NOCOOKIE = 0xFFFFFFFF /* TCPDIAG_NOCOOKIE in net/ipv4/tcp_diag.h*/
-)
-
-const (
- AF_MPLS = 28
-)
-
-const (
- RTA_NEWDST = 0x13
- RTA_ENCAP_TYPE = 0x15
- RTA_ENCAP = 0x16
-)
-
-// RTA_ENCAP subtype
-const (
- MPLS_IPTUNNEL_UNSPEC = iota
- MPLS_IPTUNNEL_DST
-)
-
-// light weight tunnel encap types
-const (
- LWTUNNEL_ENCAP_NONE = iota
- LWTUNNEL_ENCAP_MPLS
- LWTUNNEL_ENCAP_IP
- LWTUNNEL_ENCAP_ILA
- LWTUNNEL_ENCAP_IP6
- LWTUNNEL_ENCAP_SEG6
- LWTUNNEL_ENCAP_BPF
-)
-
-// routing header types
-const (
- IPV6_SRCRT_STRICT = 0x01 // Deprecated; will be removed
- IPV6_SRCRT_TYPE_0 = 0 // Deprecated; will be removed
- IPV6_SRCRT_TYPE_2 = 2 // IPv6 type 2 Routing Header
- IPV6_SRCRT_TYPE_4 = 4 // Segment Routing with IPv6
-)
diff --git a/vendor/github.com/vishvananda/netlink/nl/tc_linux.go b/vendor/github.com/vishvananda/netlink/nl/tc_linux.go
deleted file mode 100644
index 94ebc29..0000000
--- a/vendor/github.com/vishvananda/netlink/nl/tc_linux.go
+++ /dev/null
@@ -1,710 +0,0 @@
-package nl
-
-import (
- "unsafe"
-)
-
-// LinkLayer
-const (
- LINKLAYER_UNSPEC = iota
- LINKLAYER_ETHERNET
- LINKLAYER_ATM
-)
-
-// ATM
-const (
- ATM_CELL_PAYLOAD = 48
- ATM_CELL_SIZE = 53
-)
-
-const TC_LINKLAYER_MASK = 0x0F
-
-// Police
-const (
- TCA_POLICE_UNSPEC = iota
- TCA_POLICE_TBF
- TCA_POLICE_RATE
- TCA_POLICE_PEAKRATE
- TCA_POLICE_AVRATE
- TCA_POLICE_RESULT
- TCA_POLICE_MAX = TCA_POLICE_RESULT
-)
-
-// Message types
-const (
- TCA_UNSPEC = iota
- TCA_KIND
- TCA_OPTIONS
- TCA_STATS
- TCA_XSTATS
- TCA_RATE
- TCA_FCNT
- TCA_STATS2
- TCA_STAB
- TCA_MAX = TCA_STAB
-)
-
-const (
- TCA_ACT_TAB = 1
- TCAA_MAX = 1
-)
-
-const (
- TCA_ACT_UNSPEC = iota
- TCA_ACT_KIND
- TCA_ACT_OPTIONS
- TCA_ACT_INDEX
- TCA_ACT_STATS
- TCA_ACT_MAX
-)
-
-const (
- TCA_PRIO_UNSPEC = iota
- TCA_PRIO_MQ
- TCA_PRIO_MAX = TCA_PRIO_MQ
-)
-
-const (
- SizeofTcMsg = 0x14
- SizeofTcActionMsg = 0x04
- SizeofTcPrioMap = 0x14
- SizeofTcRateSpec = 0x0c
- SizeofTcNetemQopt = 0x18
- SizeofTcNetemCorr = 0x0c
- SizeofTcNetemReorder = 0x08
- SizeofTcNetemCorrupt = 0x08
- SizeofTcTbfQopt = 2*SizeofTcRateSpec + 0x0c
- SizeofTcHtbCopt = 2*SizeofTcRateSpec + 0x14
- SizeofTcHtbGlob = 0x14
- SizeofTcU32Key = 0x10
- SizeofTcU32Sel = 0x10 // without keys
- SizeofTcGen = 0x14
- SizeofTcMirred = SizeofTcGen + 0x08
- SizeofTcPolice = 2*SizeofTcRateSpec + 0x20
-)
-
-// struct tcmsg {
-// unsigned char tcm_family;
-// unsigned char tcm__pad1;
-// unsigned short tcm__pad2;
-// int tcm_ifindex;
-// __u32 tcm_handle;
-// __u32 tcm_parent;
-// __u32 tcm_info;
-// };
-
-type TcMsg struct {
- Family uint8
- Pad [3]byte
- Ifindex int32
- Handle uint32
- Parent uint32
- Info uint32
-}
-
-func (msg *TcMsg) Len() int {
- return SizeofTcMsg
-}
-
-func DeserializeTcMsg(b []byte) *TcMsg {
- return (*TcMsg)(unsafe.Pointer(&b[0:SizeofTcMsg][0]))
-}
-
-func (x *TcMsg) Serialize() []byte {
- return (*(*[SizeofTcMsg]byte)(unsafe.Pointer(x)))[:]
-}
-
-// struct tcamsg {
-// unsigned char tca_family;
-// unsigned char tca__pad1;
-// unsigned short tca__pad2;
-// };
-
-type TcActionMsg struct {
- Family uint8
- Pad [3]byte
-}
-
-func (msg *TcActionMsg) Len() int {
- return SizeofTcActionMsg
-}
-
-func DeserializeTcActionMsg(b []byte) *TcActionMsg {
- return (*TcActionMsg)(unsafe.Pointer(&b[0:SizeofTcActionMsg][0]))
-}
-
-func (x *TcActionMsg) Serialize() []byte {
- return (*(*[SizeofTcActionMsg]byte)(unsafe.Pointer(x)))[:]
-}
-
-const (
- TC_PRIO_MAX = 15
-)
-
-// struct tc_prio_qopt {
-// int bands; /* Number of bands */
-// __u8 priomap[TC_PRIO_MAX+1]; /* Map: logical priority -> PRIO band */
-// };
-
-type TcPrioMap struct {
- Bands int32
- Priomap [TC_PRIO_MAX + 1]uint8
-}
-
-func (msg *TcPrioMap) Len() int {
- return SizeofTcPrioMap
-}
-
-func DeserializeTcPrioMap(b []byte) *TcPrioMap {
- return (*TcPrioMap)(unsafe.Pointer(&b[0:SizeofTcPrioMap][0]))
-}
-
-func (x *TcPrioMap) Serialize() []byte {
- return (*(*[SizeofTcPrioMap]byte)(unsafe.Pointer(x)))[:]
-}
-
-const (
- TCA_TBF_UNSPEC = iota
- TCA_TBF_PARMS
- TCA_TBF_RTAB
- TCA_TBF_PTAB
- TCA_TBF_RATE64
- TCA_TBF_PRATE64
- TCA_TBF_BURST
- TCA_TBF_PBURST
- TCA_TBF_MAX = TCA_TBF_PBURST
-)
-
-// struct tc_ratespec {
-// unsigned char cell_log;
-// __u8 linklayer; /* lower 4 bits */
-// unsigned short overhead;
-// short cell_align;
-// unsigned short mpu;
-// __u32 rate;
-// };
-
-type TcRateSpec struct {
- CellLog uint8
- Linklayer uint8
- Overhead uint16
- CellAlign int16
- Mpu uint16
- Rate uint32
-}
-
-func (msg *TcRateSpec) Len() int {
- return SizeofTcRateSpec
-}
-
-func DeserializeTcRateSpec(b []byte) *TcRateSpec {
- return (*TcRateSpec)(unsafe.Pointer(&b[0:SizeofTcRateSpec][0]))
-}
-
-func (x *TcRateSpec) Serialize() []byte {
- return (*(*[SizeofTcRateSpec]byte)(unsafe.Pointer(x)))[:]
-}
-
-/**
-* NETEM
- */
-
-const (
- TCA_NETEM_UNSPEC = iota
- TCA_NETEM_CORR
- TCA_NETEM_DELAY_DIST
- TCA_NETEM_REORDER
- TCA_NETEM_CORRUPT
- TCA_NETEM_LOSS
- TCA_NETEM_RATE
- TCA_NETEM_ECN
- TCA_NETEM_RATE64
- TCA_NETEM_MAX = TCA_NETEM_RATE64
-)
-
-// struct tc_netem_qopt {
-// __u32 latency; /* added delay (us) */
-// __u32 limit; /* fifo limit (packets) */
-// __u32 loss; /* random packet loss (0=none ~0=100%) */
-// __u32 gap; /* re-ordering gap (0 for none) */
-// __u32 duplicate; /* random packet dup (0=none ~0=100%) */
-// __u32 jitter; /* random jitter in latency (us) */
-// };
-
-type TcNetemQopt struct {
- Latency uint32
- Limit uint32
- Loss uint32
- Gap uint32
- Duplicate uint32
- Jitter uint32
-}
-
-func (msg *TcNetemQopt) Len() int {
- return SizeofTcNetemQopt
-}
-
-func DeserializeTcNetemQopt(b []byte) *TcNetemQopt {
- return (*TcNetemQopt)(unsafe.Pointer(&b[0:SizeofTcNetemQopt][0]))
-}
-
-func (x *TcNetemQopt) Serialize() []byte {
- return (*(*[SizeofTcNetemQopt]byte)(unsafe.Pointer(x)))[:]
-}
-
-// struct tc_netem_corr {
-// __u32 delay_corr; /* delay correlation */
-// __u32 loss_corr; /* packet loss correlation */
-// __u32 dup_corr; /* duplicate correlation */
-// };
-
-type TcNetemCorr struct {
- DelayCorr uint32
- LossCorr uint32
- DupCorr uint32
-}
-
-func (msg *TcNetemCorr) Len() int {
- return SizeofTcNetemCorr
-}
-
-func DeserializeTcNetemCorr(b []byte) *TcNetemCorr {
- return (*TcNetemCorr)(unsafe.Pointer(&b[0:SizeofTcNetemCorr][0]))
-}
-
-func (x *TcNetemCorr) Serialize() []byte {
- return (*(*[SizeofTcNetemCorr]byte)(unsafe.Pointer(x)))[:]
-}
-
-// struct tc_netem_reorder {
-// __u32 probability;
-// __u32 correlation;
-// };
-
-type TcNetemReorder struct {
- Probability uint32
- Correlation uint32
-}
-
-func (msg *TcNetemReorder) Len() int {
- return SizeofTcNetemReorder
-}
-
-func DeserializeTcNetemReorder(b []byte) *TcNetemReorder {
- return (*TcNetemReorder)(unsafe.Pointer(&b[0:SizeofTcNetemReorder][0]))
-}
-
-func (x *TcNetemReorder) Serialize() []byte {
- return (*(*[SizeofTcNetemReorder]byte)(unsafe.Pointer(x)))[:]
-}
-
-// struct tc_netem_corrupt {
-// __u32 probability;
-// __u32 correlation;
-// };
-
-type TcNetemCorrupt struct {
- Probability uint32
- Correlation uint32
-}
-
-func (msg *TcNetemCorrupt) Len() int {
- return SizeofTcNetemCorrupt
-}
-
-func DeserializeTcNetemCorrupt(b []byte) *TcNetemCorrupt {
- return (*TcNetemCorrupt)(unsafe.Pointer(&b[0:SizeofTcNetemCorrupt][0]))
-}
-
-func (x *TcNetemCorrupt) Serialize() []byte {
- return (*(*[SizeofTcNetemCorrupt]byte)(unsafe.Pointer(x)))[:]
-}
-
-// struct tc_tbf_qopt {
-// struct tc_ratespec rate;
-// struct tc_ratespec peakrate;
-// __u32 limit;
-// __u32 buffer;
-// __u32 mtu;
-// };
-
-type TcTbfQopt struct {
- Rate TcRateSpec
- Peakrate TcRateSpec
- Limit uint32
- Buffer uint32
- Mtu uint32
-}
-
-func (msg *TcTbfQopt) Len() int {
- return SizeofTcTbfQopt
-}
-
-func DeserializeTcTbfQopt(b []byte) *TcTbfQopt {
- return (*TcTbfQopt)(unsafe.Pointer(&b[0:SizeofTcTbfQopt][0]))
-}
-
-func (x *TcTbfQopt) Serialize() []byte {
- return (*(*[SizeofTcTbfQopt]byte)(unsafe.Pointer(x)))[:]
-}
-
-const (
- TCA_HTB_UNSPEC = iota
- TCA_HTB_PARMS
- TCA_HTB_INIT
- TCA_HTB_CTAB
- TCA_HTB_RTAB
- TCA_HTB_DIRECT_QLEN
- TCA_HTB_RATE64
- TCA_HTB_CEIL64
- TCA_HTB_MAX = TCA_HTB_CEIL64
-)
-
-//struct tc_htb_opt {
-// struct tc_ratespec rate;
-// struct tc_ratespec ceil;
-// __u32 buffer;
-// __u32 cbuffer;
-// __u32 quantum;
-// __u32 level; /* out only */
-// __u32 prio;
-//};
-
-type TcHtbCopt struct {
- Rate TcRateSpec
- Ceil TcRateSpec
- Buffer uint32
- Cbuffer uint32
- Quantum uint32
- Level uint32
- Prio uint32
-}
-
-func (msg *TcHtbCopt) Len() int {
- return SizeofTcHtbCopt
-}
-
-func DeserializeTcHtbCopt(b []byte) *TcHtbCopt {
- return (*TcHtbCopt)(unsafe.Pointer(&b[0:SizeofTcHtbCopt][0]))
-}
-
-func (x *TcHtbCopt) Serialize() []byte {
- return (*(*[SizeofTcHtbCopt]byte)(unsafe.Pointer(x)))[:]
-}
-
-type TcHtbGlob struct {
- Version uint32
- Rate2Quantum uint32
- Defcls uint32
- Debug uint32
- DirectPkts uint32
-}
-
-func (msg *TcHtbGlob) Len() int {
- return SizeofTcHtbGlob
-}
-
-func DeserializeTcHtbGlob(b []byte) *TcHtbGlob {
- return (*TcHtbGlob)(unsafe.Pointer(&b[0:SizeofTcHtbGlob][0]))
-}
-
-func (x *TcHtbGlob) Serialize() []byte {
- return (*(*[SizeofTcHtbGlob]byte)(unsafe.Pointer(x)))[:]
-}
-
-const (
- TCA_U32_UNSPEC = iota
- TCA_U32_CLASSID
- TCA_U32_HASH
- TCA_U32_LINK
- TCA_U32_DIVISOR
- TCA_U32_SEL
- TCA_U32_POLICE
- TCA_U32_ACT
- TCA_U32_INDEV
- TCA_U32_PCNT
- TCA_U32_MARK
- TCA_U32_MAX = TCA_U32_MARK
-)
-
-// struct tc_u32_key {
-// __be32 mask;
-// __be32 val;
-// int off;
-// int offmask;
-// };
-
-type TcU32Key struct {
- Mask uint32 // big endian
- Val uint32 // big endian
- Off int32
- OffMask int32
-}
-
-func (msg *TcU32Key) Len() int {
- return SizeofTcU32Key
-}
-
-func DeserializeTcU32Key(b []byte) *TcU32Key {
- return (*TcU32Key)(unsafe.Pointer(&b[0:SizeofTcU32Key][0]))
-}
-
-func (x *TcU32Key) Serialize() []byte {
- return (*(*[SizeofTcU32Key]byte)(unsafe.Pointer(x)))[:]
-}
-
-// struct tc_u32_sel {
-// unsigned char flags;
-// unsigned char offshift;
-// unsigned char nkeys;
-//
-// __be16 offmask;
-// __u16 off;
-// short offoff;
-//
-// short hoff;
-// __be32 hmask;
-// struct tc_u32_key keys[0];
-// };
-
-const (
- TC_U32_TERMINAL = 1 << iota
- TC_U32_OFFSET = 1 << iota
- TC_U32_VAROFFSET = 1 << iota
- TC_U32_EAT = 1 << iota
-)
-
-type TcU32Sel struct {
- Flags uint8
- Offshift uint8
- Nkeys uint8
- Pad uint8
- Offmask uint16 // big endian
- Off uint16
- Offoff int16
- Hoff int16
- Hmask uint32 // big endian
- Keys []TcU32Key
-}
-
-func (msg *TcU32Sel) Len() int {
- return SizeofTcU32Sel + int(msg.Nkeys)*SizeofTcU32Key
-}
-
-func DeserializeTcU32Sel(b []byte) *TcU32Sel {
- x := &TcU32Sel{}
- copy((*(*[SizeofTcU32Sel]byte)(unsafe.Pointer(x)))[:], b)
- next := SizeofTcU32Sel
- var i uint8
- for i = 0; i < x.Nkeys; i++ {
- x.Keys = append(x.Keys, *DeserializeTcU32Key(b[next:]))
- next += SizeofTcU32Key
- }
- return x
-}
-
-func (x *TcU32Sel) Serialize() []byte {
- // This can't just unsafe.cast because it must iterate through keys.
- buf := make([]byte, x.Len())
- copy(buf, (*(*[SizeofTcU32Sel]byte)(unsafe.Pointer(x)))[:])
- next := SizeofTcU32Sel
- for _, key := range x.Keys {
- keyBuf := key.Serialize()
- copy(buf[next:], keyBuf)
- next += SizeofTcU32Key
- }
- return buf
-}
-
-type TcGen struct {
- Index uint32
- Capab uint32
- Action int32
- Refcnt int32
- Bindcnt int32
-}
-
-func (msg *TcGen) Len() int {
- return SizeofTcGen
-}
-
-func DeserializeTcGen(b []byte) *TcGen {
- return (*TcGen)(unsafe.Pointer(&b[0:SizeofTcGen][0]))
-}
-
-func (x *TcGen) Serialize() []byte {
- return (*(*[SizeofTcGen]byte)(unsafe.Pointer(x)))[:]
-}
-
-// #define tc_gen \
-// __u32 index; \
-// __u32 capab; \
-// int action; \
-// int refcnt; \
-// int bindcnt
-
-const (
- TCA_ACT_GACT = 5
-)
-
-const (
- TCA_GACT_UNSPEC = iota
- TCA_GACT_TM
- TCA_GACT_PARMS
- TCA_GACT_PROB
- TCA_GACT_MAX = TCA_GACT_PROB
-)
-
-type TcGact TcGen
-
-const (
- TCA_ACT_BPF = 13
-)
-
-const (
- TCA_ACT_BPF_UNSPEC = iota
- TCA_ACT_BPF_TM
- TCA_ACT_BPF_PARMS
- TCA_ACT_BPF_OPS_LEN
- TCA_ACT_BPF_OPS
- TCA_ACT_BPF_FD
- TCA_ACT_BPF_NAME
- TCA_ACT_BPF_MAX = TCA_ACT_BPF_NAME
-)
-
-const (
- TCA_BPF_FLAG_ACT_DIRECT uint32 = 1 << iota
-)
-
-const (
- TCA_BPF_UNSPEC = iota
- TCA_BPF_ACT
- TCA_BPF_POLICE
- TCA_BPF_CLASSID
- TCA_BPF_OPS_LEN
- TCA_BPF_OPS
- TCA_BPF_FD
- TCA_BPF_NAME
- TCA_BPF_FLAGS
- TCA_BPF_MAX = TCA_BPF_FLAGS
-)
-
-type TcBpf TcGen
-
-const (
- TCA_ACT_MIRRED = 8
-)
-
-const (
- TCA_MIRRED_UNSPEC = iota
- TCA_MIRRED_TM
- TCA_MIRRED_PARMS
- TCA_MIRRED_MAX = TCA_MIRRED_PARMS
-)
-
-// struct tc_mirred {
-// tc_gen;
-// int eaction; /* one of IN/EGRESS_MIRROR/REDIR */
-// __u32 ifindex; /* ifindex of egress port */
-// };
-
-type TcMirred struct {
- TcGen
- Eaction int32
- Ifindex uint32
-}
-
-func (msg *TcMirred) Len() int {
- return SizeofTcMirred
-}
-
-func DeserializeTcMirred(b []byte) *TcMirred {
- return (*TcMirred)(unsafe.Pointer(&b[0:SizeofTcMirred][0]))
-}
-
-func (x *TcMirred) Serialize() []byte {
- return (*(*[SizeofTcMirred]byte)(unsafe.Pointer(x)))[:]
-}
-
-// struct tc_police {
-// __u32 index;
-// int action;
-// __u32 limit;
-// __u32 burst;
-// __u32 mtu;
-// struct tc_ratespec rate;
-// struct tc_ratespec peakrate;
-// int refcnt;
-// int bindcnt;
-// __u32 capab;
-// };
-
-type TcPolice struct {
- Index uint32
- Action int32
- Limit uint32
- Burst uint32
- Mtu uint32
- Rate TcRateSpec
- PeakRate TcRateSpec
- Refcnt int32
- Bindcnt int32
- Capab uint32
-}
-
-func (msg *TcPolice) Len() int {
- return SizeofTcPolice
-}
-
-func DeserializeTcPolice(b []byte) *TcPolice {
- return (*TcPolice)(unsafe.Pointer(&b[0:SizeofTcPolice][0]))
-}
-
-func (x *TcPolice) Serialize() []byte {
- return (*(*[SizeofTcPolice]byte)(unsafe.Pointer(x)))[:]
-}
-
-const (
- TCA_FW_UNSPEC = iota
- TCA_FW_CLASSID
- TCA_FW_POLICE
- TCA_FW_INDEV
- TCA_FW_ACT
- TCA_FW_MASK
- TCA_FW_MAX = TCA_FW_MASK
-)
-
-const (
- TCA_MATCHALL_UNSPEC = iota
- TCA_MATCHALL_CLASSID
- TCA_MATCHALL_ACT
- TCA_MATCHALL_FLAGS
-)
-
-const (
- TCA_FQ_UNSPEC = iota
- TCA_FQ_PLIMIT // limit of total number of packets in queue
- TCA_FQ_FLOW_PLIMIT // limit of packets per flow
- TCA_FQ_QUANTUM // RR quantum
- TCA_FQ_INITIAL_QUANTUM // RR quantum for new flow
- TCA_FQ_RATE_ENABLE // enable/disable rate limiting
- TCA_FQ_FLOW_DEFAULT_RATE // obsolete do not use
- TCA_FQ_FLOW_MAX_RATE // per flow max rate
- TCA_FQ_BUCKETS_LOG // log2(number of buckets)
- TCA_FQ_FLOW_REFILL_DELAY // flow credit refill delay in usec
- TCA_FQ_ORPHAN_MASK // mask applied to orphaned skb hashes
- TCA_FQ_LOW_RATE_THRESHOLD // per packet delay under this rate
-)
-
-const (
- TCA_FQ_CODEL_UNSPEC = iota
- TCA_FQ_CODEL_TARGET
- TCA_FQ_CODEL_LIMIT
- TCA_FQ_CODEL_INTERVAL
- TCA_FQ_CODEL_ECN
- TCA_FQ_CODEL_FLOWS
- TCA_FQ_CODEL_QUANTUM
- TCA_FQ_CODEL_CE_THRESHOLD
- TCA_FQ_CODEL_DROP_BATCH_SIZE
- TCA_FQ_CODEL_MEMORY_LIMIT
-)
diff --git a/vendor/github.com/vishvananda/netlink/nl/xfrm_linux.go b/vendor/github.com/vishvananda/netlink/nl/xfrm_linux.go
deleted file mode 100644
index 09a2ffa..0000000
--- a/vendor/github.com/vishvananda/netlink/nl/xfrm_linux.go
+++ /dev/null
@@ -1,296 +0,0 @@
-package nl
-
-import (
- "bytes"
- "net"
- "unsafe"
-)
-
-// Infinity for packet and byte counts
-const (
- XFRM_INF = ^uint64(0)
-)
-
-type XfrmMsgType uint8
-
-type XfrmMsg interface {
- Type() XfrmMsgType
-}
-
-// Message Types
-const (
- XFRM_MSG_BASE XfrmMsgType = 0x10
- XFRM_MSG_NEWSA = 0x10
- XFRM_MSG_DELSA = 0x11
- XFRM_MSG_GETSA = 0x12
- XFRM_MSG_NEWPOLICY = 0x13
- XFRM_MSG_DELPOLICY = 0x14
- XFRM_MSG_GETPOLICY = 0x15
- XFRM_MSG_ALLOCSPI = 0x16
- XFRM_MSG_ACQUIRE = 0x17
- XFRM_MSG_EXPIRE = 0x18
- XFRM_MSG_UPDPOLICY = 0x19
- XFRM_MSG_UPDSA = 0x1a
- XFRM_MSG_POLEXPIRE = 0x1b
- XFRM_MSG_FLUSHSA = 0x1c
- XFRM_MSG_FLUSHPOLICY = 0x1d
- XFRM_MSG_NEWAE = 0x1e
- XFRM_MSG_GETAE = 0x1f
- XFRM_MSG_REPORT = 0x20
- XFRM_MSG_MIGRATE = 0x21
- XFRM_MSG_NEWSADINFO = 0x22
- XFRM_MSG_GETSADINFO = 0x23
- XFRM_MSG_NEWSPDINFO = 0x24
- XFRM_MSG_GETSPDINFO = 0x25
- XFRM_MSG_MAPPING = 0x26
- XFRM_MSG_MAX = 0x26
- XFRM_NR_MSGTYPES = 0x17
-)
-
-// Attribute types
-const (
- /* Netlink message attributes. */
- XFRMA_UNSPEC = 0x00
- XFRMA_ALG_AUTH = 0x01 /* struct xfrm_algo */
- XFRMA_ALG_CRYPT = 0x02 /* struct xfrm_algo */
- XFRMA_ALG_COMP = 0x03 /* struct xfrm_algo */
- XFRMA_ENCAP = 0x04 /* struct xfrm_algo + struct xfrm_encap_tmpl */
- XFRMA_TMPL = 0x05 /* 1 or more struct xfrm_user_tmpl */
- XFRMA_SA = 0x06 /* struct xfrm_usersa_info */
- XFRMA_POLICY = 0x07 /* struct xfrm_userpolicy_info */
- XFRMA_SEC_CTX = 0x08 /* struct xfrm_sec_ctx */
- XFRMA_LTIME_VAL = 0x09
- XFRMA_REPLAY_VAL = 0x0a
- XFRMA_REPLAY_THRESH = 0x0b
- XFRMA_ETIMER_THRESH = 0x0c
- XFRMA_SRCADDR = 0x0d /* xfrm_address_t */
- XFRMA_COADDR = 0x0e /* xfrm_address_t */
- XFRMA_LASTUSED = 0x0f /* unsigned long */
- XFRMA_POLICY_TYPE = 0x10 /* struct xfrm_userpolicy_type */
- XFRMA_MIGRATE = 0x11
- XFRMA_ALG_AEAD = 0x12 /* struct xfrm_algo_aead */
- XFRMA_KMADDRESS = 0x13 /* struct xfrm_user_kmaddress */
- XFRMA_ALG_AUTH_TRUNC = 0x14 /* struct xfrm_algo_auth */
- XFRMA_MARK = 0x15 /* struct xfrm_mark */
- XFRMA_TFCPAD = 0x16 /* __u32 */
- XFRMA_REPLAY_ESN_VAL = 0x17 /* struct xfrm_replay_esn */
- XFRMA_SA_EXTRA_FLAGS = 0x18 /* __u32 */
- XFRMA_MAX = 0x18
-)
-
-const (
- SizeofXfrmAddress = 0x10
- SizeofXfrmSelector = 0x38
- SizeofXfrmLifetimeCfg = 0x40
- SizeofXfrmLifetimeCur = 0x20
- SizeofXfrmId = 0x18
- SizeofXfrmMark = 0x08
-)
-
-// Netlink groups
-const (
- XFRMNLGRP_NONE = 0x0
- XFRMNLGRP_ACQUIRE = 0x1
- XFRMNLGRP_EXPIRE = 0x2
- XFRMNLGRP_SA = 0x3
- XFRMNLGRP_POLICY = 0x4
- XFRMNLGRP_AEVENTS = 0x5
- XFRMNLGRP_REPORT = 0x6
- XFRMNLGRP_MIGRATE = 0x7
- XFRMNLGRP_MAPPING = 0x8
- __XFRMNLGRP_MAX = 0x9
-)
-
-// typedef union {
-// __be32 a4;
-// __be32 a6[4];
-// } xfrm_address_t;
-
-type XfrmAddress [SizeofXfrmAddress]byte
-
-func (x *XfrmAddress) ToIP() net.IP {
- var empty = [12]byte{}
- ip := make(net.IP, net.IPv6len)
- if bytes.Equal(x[4:16], empty[:]) {
- ip[10] = 0xff
- ip[11] = 0xff
- copy(ip[12:16], x[0:4])
- } else {
- copy(ip[:], x[:])
- }
- return ip
-}
-
-func (x *XfrmAddress) ToIPNet(prefixlen uint8) *net.IPNet {
- ip := x.ToIP()
- if GetIPFamily(ip) == FAMILY_V4 {
- return &net.IPNet{IP: ip, Mask: net.CIDRMask(int(prefixlen), 32)}
- }
- return &net.IPNet{IP: ip, Mask: net.CIDRMask(int(prefixlen), 128)}
-}
-
-func (x *XfrmAddress) FromIP(ip net.IP) {
- var empty = [16]byte{}
- if len(ip) < net.IPv4len {
- copy(x[4:16], empty[:])
- } else if GetIPFamily(ip) == FAMILY_V4 {
- copy(x[0:4], ip.To4()[0:4])
- copy(x[4:16], empty[:12])
- } else {
- copy(x[0:16], ip.To16()[0:16])
- }
-}
-
-func DeserializeXfrmAddress(b []byte) *XfrmAddress {
- return (*XfrmAddress)(unsafe.Pointer(&b[0:SizeofXfrmAddress][0]))
-}
-
-func (x *XfrmAddress) Serialize() []byte {
- return (*(*[SizeofXfrmAddress]byte)(unsafe.Pointer(x)))[:]
-}
-
-// struct xfrm_selector {
-// xfrm_address_t daddr;
-// xfrm_address_t saddr;
-// __be16 dport;
-// __be16 dport_mask;
-// __be16 sport;
-// __be16 sport_mask;
-// __u16 family;
-// __u8 prefixlen_d;
-// __u8 prefixlen_s;
-// __u8 proto;
-// int ifindex;
-// __kernel_uid32_t user;
-// };
-
-type XfrmSelector struct {
- Daddr XfrmAddress
- Saddr XfrmAddress
- Dport uint16 // big endian
- DportMask uint16 // big endian
- Sport uint16 // big endian
- SportMask uint16 // big endian
- Family uint16
- PrefixlenD uint8
- PrefixlenS uint8
- Proto uint8
- Pad [3]byte
- Ifindex int32
- User uint32
-}
-
-func (msg *XfrmSelector) Len() int {
- return SizeofXfrmSelector
-}
-
-func DeserializeXfrmSelector(b []byte) *XfrmSelector {
- return (*XfrmSelector)(unsafe.Pointer(&b[0:SizeofXfrmSelector][0]))
-}
-
-func (msg *XfrmSelector) Serialize() []byte {
- return (*(*[SizeofXfrmSelector]byte)(unsafe.Pointer(msg)))[:]
-}
-
-// struct xfrm_lifetime_cfg {
-// __u64 soft_byte_limit;
-// __u64 hard_byte_limit;
-// __u64 soft_packet_limit;
-// __u64 hard_packet_limit;
-// __u64 soft_add_expires_seconds;
-// __u64 hard_add_expires_seconds;
-// __u64 soft_use_expires_seconds;
-// __u64 hard_use_expires_seconds;
-// };
-//
-
-type XfrmLifetimeCfg struct {
- SoftByteLimit uint64
- HardByteLimit uint64
- SoftPacketLimit uint64
- HardPacketLimit uint64
- SoftAddExpiresSeconds uint64
- HardAddExpiresSeconds uint64
- SoftUseExpiresSeconds uint64
- HardUseExpiresSeconds uint64
-}
-
-func (msg *XfrmLifetimeCfg) Len() int {
- return SizeofXfrmLifetimeCfg
-}
-
-func DeserializeXfrmLifetimeCfg(b []byte) *XfrmLifetimeCfg {
- return (*XfrmLifetimeCfg)(unsafe.Pointer(&b[0:SizeofXfrmLifetimeCfg][0]))
-}
-
-func (msg *XfrmLifetimeCfg) Serialize() []byte {
- return (*(*[SizeofXfrmLifetimeCfg]byte)(unsafe.Pointer(msg)))[:]
-}
-
-// struct xfrm_lifetime_cur {
-// __u64 bytes;
-// __u64 packets;
-// __u64 add_time;
-// __u64 use_time;
-// };
-
-type XfrmLifetimeCur struct {
- Bytes uint64
- Packets uint64
- AddTime uint64
- UseTime uint64
-}
-
-func (msg *XfrmLifetimeCur) Len() int {
- return SizeofXfrmLifetimeCur
-}
-
-func DeserializeXfrmLifetimeCur(b []byte) *XfrmLifetimeCur {
- return (*XfrmLifetimeCur)(unsafe.Pointer(&b[0:SizeofXfrmLifetimeCur][0]))
-}
-
-func (msg *XfrmLifetimeCur) Serialize() []byte {
- return (*(*[SizeofXfrmLifetimeCur]byte)(unsafe.Pointer(msg)))[:]
-}
-
-// struct xfrm_id {
-// xfrm_address_t daddr;
-// __be32 spi;
-// __u8 proto;
-// };
-
-type XfrmId struct {
- Daddr XfrmAddress
- Spi uint32 // big endian
- Proto uint8
- Pad [3]byte
-}
-
-func (msg *XfrmId) Len() int {
- return SizeofXfrmId
-}
-
-func DeserializeXfrmId(b []byte) *XfrmId {
- return (*XfrmId)(unsafe.Pointer(&b[0:SizeofXfrmId][0]))
-}
-
-func (msg *XfrmId) Serialize() []byte {
- return (*(*[SizeofXfrmId]byte)(unsafe.Pointer(msg)))[:]
-}
-
-type XfrmMark struct {
- Value uint32
- Mask uint32
-}
-
-func (msg *XfrmMark) Len() int {
- return SizeofXfrmMark
-}
-
-func DeserializeXfrmMark(b []byte) *XfrmMark {
- return (*XfrmMark)(unsafe.Pointer(&b[0:SizeofXfrmMark][0]))
-}
-
-func (msg *XfrmMark) Serialize() []byte {
- return (*(*[SizeofXfrmMark]byte)(unsafe.Pointer(msg)))[:]
-}
diff --git a/vendor/github.com/vishvananda/netlink/nl/xfrm_monitor_linux.go b/vendor/github.com/vishvananda/netlink/nl/xfrm_monitor_linux.go
deleted file mode 100644
index 715df4c..0000000
--- a/vendor/github.com/vishvananda/netlink/nl/xfrm_monitor_linux.go
+++ /dev/null
@@ -1,32 +0,0 @@
-package nl
-
-import (
- "unsafe"
-)
-
-const (
- SizeofXfrmUserExpire = 0xe8
-)
-
-// struct xfrm_user_expire {
-// struct xfrm_usersa_info state;
-// __u8 hard;
-// };
-
-type XfrmUserExpire struct {
- XfrmUsersaInfo XfrmUsersaInfo
- Hard uint8
- Pad [7]byte
-}
-
-func (msg *XfrmUserExpire) Len() int {
- return SizeofXfrmUserExpire
-}
-
-func DeserializeXfrmUserExpire(b []byte) *XfrmUserExpire {
- return (*XfrmUserExpire)(unsafe.Pointer(&b[0:SizeofXfrmUserExpire][0]))
-}
-
-func (msg *XfrmUserExpire) Serialize() []byte {
- return (*(*[SizeofXfrmUserExpire]byte)(unsafe.Pointer(msg)))[:]
-}
diff --git a/vendor/github.com/vishvananda/netlink/nl/xfrm_policy_linux.go b/vendor/github.com/vishvananda/netlink/nl/xfrm_policy_linux.go
deleted file mode 100644
index 66f7e03..0000000
--- a/vendor/github.com/vishvananda/netlink/nl/xfrm_policy_linux.go
+++ /dev/null
@@ -1,119 +0,0 @@
-package nl
-
-import (
- "unsafe"
-)
-
-const (
- SizeofXfrmUserpolicyId = 0x40
- SizeofXfrmUserpolicyInfo = 0xa8
- SizeofXfrmUserTmpl = 0x40
-)
-
-// struct xfrm_userpolicy_id {
-// struct xfrm_selector sel;
-// __u32 index;
-// __u8 dir;
-// };
-//
-
-type XfrmUserpolicyId struct {
- Sel XfrmSelector
- Index uint32
- Dir uint8
- Pad [3]byte
-}
-
-func (msg *XfrmUserpolicyId) Len() int {
- return SizeofXfrmUserpolicyId
-}
-
-func DeserializeXfrmUserpolicyId(b []byte) *XfrmUserpolicyId {
- return (*XfrmUserpolicyId)(unsafe.Pointer(&b[0:SizeofXfrmUserpolicyId][0]))
-}
-
-func (msg *XfrmUserpolicyId) Serialize() []byte {
- return (*(*[SizeofXfrmUserpolicyId]byte)(unsafe.Pointer(msg)))[:]
-}
-
-// struct xfrm_userpolicy_info {
-// struct xfrm_selector sel;
-// struct xfrm_lifetime_cfg lft;
-// struct xfrm_lifetime_cur curlft;
-// __u32 priority;
-// __u32 index;
-// __u8 dir;
-// __u8 action;
-// #define XFRM_POLICY_ALLOW 0
-// #define XFRM_POLICY_BLOCK 1
-// __u8 flags;
-// #define XFRM_POLICY_LOCALOK 1 /* Allow user to override global policy */
-// /* Automatically expand selector to include matching ICMP payloads. */
-// #define XFRM_POLICY_ICMP 2
-// __u8 share;
-// };
-
-type XfrmUserpolicyInfo struct {
- Sel XfrmSelector
- Lft XfrmLifetimeCfg
- Curlft XfrmLifetimeCur
- Priority uint32
- Index uint32
- Dir uint8
- Action uint8
- Flags uint8
- Share uint8
- Pad [4]byte
-}
-
-func (msg *XfrmUserpolicyInfo) Len() int {
- return SizeofXfrmUserpolicyInfo
-}
-
-func DeserializeXfrmUserpolicyInfo(b []byte) *XfrmUserpolicyInfo {
- return (*XfrmUserpolicyInfo)(unsafe.Pointer(&b[0:SizeofXfrmUserpolicyInfo][0]))
-}
-
-func (msg *XfrmUserpolicyInfo) Serialize() []byte {
- return (*(*[SizeofXfrmUserpolicyInfo]byte)(unsafe.Pointer(msg)))[:]
-}
-
-// struct xfrm_user_tmpl {
-// struct xfrm_id id;
-// __u16 family;
-// xfrm_address_t saddr;
-// __u32 reqid;
-// __u8 mode;
-// __u8 share;
-// __u8 optional;
-// __u32 aalgos;
-// __u32 ealgos;
-// __u32 calgos;
-// }
-
-type XfrmUserTmpl struct {
- XfrmId XfrmId
- Family uint16
- Pad1 [2]byte
- Saddr XfrmAddress
- Reqid uint32
- Mode uint8
- Share uint8
- Optional uint8
- Pad2 byte
- Aalgos uint32
- Ealgos uint32
- Calgos uint32
-}
-
-func (msg *XfrmUserTmpl) Len() int {
- return SizeofXfrmUserTmpl
-}
-
-func DeserializeXfrmUserTmpl(b []byte) *XfrmUserTmpl {
- return (*XfrmUserTmpl)(unsafe.Pointer(&b[0:SizeofXfrmUserTmpl][0]))
-}
-
-func (msg *XfrmUserTmpl) Serialize() []byte {
- return (*(*[SizeofXfrmUserTmpl]byte)(unsafe.Pointer(msg)))[:]
-}
diff --git a/vendor/github.com/vishvananda/netlink/nl/xfrm_state_linux.go b/vendor/github.com/vishvananda/netlink/nl/xfrm_state_linux.go
deleted file mode 100644
index b6290fd..0000000
--- a/vendor/github.com/vishvananda/netlink/nl/xfrm_state_linux.go
+++ /dev/null
@@ -1,334 +0,0 @@
-package nl
-
-import (
- "unsafe"
-)
-
-const (
- SizeofXfrmUsersaId = 0x18
- SizeofXfrmStats = 0x0c
- SizeofXfrmUsersaInfo = 0xe0
- SizeofXfrmUserSpiInfo = 0xe8
- SizeofXfrmAlgo = 0x44
- SizeofXfrmAlgoAuth = 0x48
- SizeofXfrmAlgoAEAD = 0x48
- SizeofXfrmEncapTmpl = 0x18
- SizeofXfrmUsersaFlush = 0x8
- SizeofXfrmReplayStateEsn = 0x18
-)
-
-const (
- XFRM_STATE_NOECN = 1
- XFRM_STATE_DECAP_DSCP = 2
- XFRM_STATE_NOPMTUDISC = 4
- XFRM_STATE_WILDRECV = 8
- XFRM_STATE_ICMP = 16
- XFRM_STATE_AF_UNSPEC = 32
- XFRM_STATE_ALIGN4 = 64
- XFRM_STATE_ESN = 128
-)
-
-// struct xfrm_usersa_id {
-// xfrm_address_t daddr;
-// __be32 spi;
-// __u16 family;
-// __u8 proto;
-// };
-
-type XfrmUsersaId struct {
- Daddr XfrmAddress
- Spi uint32 // big endian
- Family uint16
- Proto uint8
- Pad byte
-}
-
-func (msg *XfrmUsersaId) Len() int {
- return SizeofXfrmUsersaId
-}
-
-func DeserializeXfrmUsersaId(b []byte) *XfrmUsersaId {
- return (*XfrmUsersaId)(unsafe.Pointer(&b[0:SizeofXfrmUsersaId][0]))
-}
-
-func (msg *XfrmUsersaId) Serialize() []byte {
- return (*(*[SizeofXfrmUsersaId]byte)(unsafe.Pointer(msg)))[:]
-}
-
-// struct xfrm_stats {
-// __u32 replay_window;
-// __u32 replay;
-// __u32 integrity_failed;
-// };
-
-type XfrmStats struct {
- ReplayWindow uint32
- Replay uint32
- IntegrityFailed uint32
-}
-
-func (msg *XfrmStats) Len() int {
- return SizeofXfrmStats
-}
-
-func DeserializeXfrmStats(b []byte) *XfrmStats {
- return (*XfrmStats)(unsafe.Pointer(&b[0:SizeofXfrmStats][0]))
-}
-
-func (msg *XfrmStats) Serialize() []byte {
- return (*(*[SizeofXfrmStats]byte)(unsafe.Pointer(msg)))[:]
-}
-
-// struct xfrm_usersa_info {
-// struct xfrm_selector sel;
-// struct xfrm_id id;
-// xfrm_address_t saddr;
-// struct xfrm_lifetime_cfg lft;
-// struct xfrm_lifetime_cur curlft;
-// struct xfrm_stats stats;
-// __u32 seq;
-// __u32 reqid;
-// __u16 family;
-// __u8 mode; /* XFRM_MODE_xxx */
-// __u8 replay_window;
-// __u8 flags;
-// #define XFRM_STATE_NOECN 1
-// #define XFRM_STATE_DECAP_DSCP 2
-// #define XFRM_STATE_NOPMTUDISC 4
-// #define XFRM_STATE_WILDRECV 8
-// #define XFRM_STATE_ICMP 16
-// #define XFRM_STATE_AF_UNSPEC 32
-// #define XFRM_STATE_ALIGN4 64
-// #define XFRM_STATE_ESN 128
-// };
-//
-// #define XFRM_SA_XFLAG_DONT_ENCAP_DSCP 1
-//
-
-type XfrmUsersaInfo struct {
- Sel XfrmSelector
- Id XfrmId
- Saddr XfrmAddress
- Lft XfrmLifetimeCfg
- Curlft XfrmLifetimeCur
- Stats XfrmStats
- Seq uint32
- Reqid uint32
- Family uint16
- Mode uint8
- ReplayWindow uint8
- Flags uint8
- Pad [7]byte
-}
-
-func (msg *XfrmUsersaInfo) Len() int {
- return SizeofXfrmUsersaInfo
-}
-
-func DeserializeXfrmUsersaInfo(b []byte) *XfrmUsersaInfo {
- return (*XfrmUsersaInfo)(unsafe.Pointer(&b[0:SizeofXfrmUsersaInfo][0]))
-}
-
-func (msg *XfrmUsersaInfo) Serialize() []byte {
- return (*(*[SizeofXfrmUsersaInfo]byte)(unsafe.Pointer(msg)))[:]
-}
-
-// struct xfrm_userspi_info {
-// struct xfrm_usersa_info info;
-// __u32 min;
-// __u32 max;
-// };
-
-type XfrmUserSpiInfo struct {
- XfrmUsersaInfo XfrmUsersaInfo
- Min uint32
- Max uint32
-}
-
-func (msg *XfrmUserSpiInfo) Len() int {
- return SizeofXfrmUserSpiInfo
-}
-
-func DeserializeXfrmUserSpiInfo(b []byte) *XfrmUserSpiInfo {
- return (*XfrmUserSpiInfo)(unsafe.Pointer(&b[0:SizeofXfrmUserSpiInfo][0]))
-}
-
-func (msg *XfrmUserSpiInfo) Serialize() []byte {
- return (*(*[SizeofXfrmUserSpiInfo]byte)(unsafe.Pointer(msg)))[:]
-}
-
-// struct xfrm_algo {
-// char alg_name[64];
-// unsigned int alg_key_len; /* in bits */
-// char alg_key[0];
-// };
-
-type XfrmAlgo struct {
- AlgName [64]byte
- AlgKeyLen uint32
- AlgKey []byte
-}
-
-func (msg *XfrmAlgo) Len() int {
- return SizeofXfrmAlgo + int(msg.AlgKeyLen/8)
-}
-
-func DeserializeXfrmAlgo(b []byte) *XfrmAlgo {
- ret := XfrmAlgo{}
- copy(ret.AlgName[:], b[0:64])
- ret.AlgKeyLen = *(*uint32)(unsafe.Pointer(&b[64]))
- ret.AlgKey = b[68:ret.Len()]
- return &ret
-}
-
-func (msg *XfrmAlgo) Serialize() []byte {
- b := make([]byte, msg.Len())
- copy(b[0:64], msg.AlgName[:])
- copy(b[64:68], (*(*[4]byte)(unsafe.Pointer(&msg.AlgKeyLen)))[:])
- copy(b[68:msg.Len()], msg.AlgKey[:])
- return b
-}
-
-// struct xfrm_algo_auth {
-// char alg_name[64];
-// unsigned int alg_key_len; /* in bits */
-// unsigned int alg_trunc_len; /* in bits */
-// char alg_key[0];
-// };
-
-type XfrmAlgoAuth struct {
- AlgName [64]byte
- AlgKeyLen uint32
- AlgTruncLen uint32
- AlgKey []byte
-}
-
-func (msg *XfrmAlgoAuth) Len() int {
- return SizeofXfrmAlgoAuth + int(msg.AlgKeyLen/8)
-}
-
-func DeserializeXfrmAlgoAuth(b []byte) *XfrmAlgoAuth {
- ret := XfrmAlgoAuth{}
- copy(ret.AlgName[:], b[0:64])
- ret.AlgKeyLen = *(*uint32)(unsafe.Pointer(&b[64]))
- ret.AlgTruncLen = *(*uint32)(unsafe.Pointer(&b[68]))
- ret.AlgKey = b[72:ret.Len()]
- return &ret
-}
-
-func (msg *XfrmAlgoAuth) Serialize() []byte {
- b := make([]byte, msg.Len())
- copy(b[0:64], msg.AlgName[:])
- copy(b[64:68], (*(*[4]byte)(unsafe.Pointer(&msg.AlgKeyLen)))[:])
- copy(b[68:72], (*(*[4]byte)(unsafe.Pointer(&msg.AlgTruncLen)))[:])
- copy(b[72:msg.Len()], msg.AlgKey[:])
- return b
-}
-
-// struct xfrm_algo_aead {
-// char alg_name[64];
-// unsigned int alg_key_len; /* in bits */
-// unsigned int alg_icv_len; /* in bits */
-// char alg_key[0];
-// }
-
-type XfrmAlgoAEAD struct {
- AlgName [64]byte
- AlgKeyLen uint32
- AlgICVLen uint32
- AlgKey []byte
-}
-
-func (msg *XfrmAlgoAEAD) Len() int {
- return SizeofXfrmAlgoAEAD + int(msg.AlgKeyLen/8)
-}
-
-func DeserializeXfrmAlgoAEAD(b []byte) *XfrmAlgoAEAD {
- ret := XfrmAlgoAEAD{}
- copy(ret.AlgName[:], b[0:64])
- ret.AlgKeyLen = *(*uint32)(unsafe.Pointer(&b[64]))
- ret.AlgICVLen = *(*uint32)(unsafe.Pointer(&b[68]))
- ret.AlgKey = b[72:ret.Len()]
- return &ret
-}
-
-func (msg *XfrmAlgoAEAD) Serialize() []byte {
- b := make([]byte, msg.Len())
- copy(b[0:64], msg.AlgName[:])
- copy(b[64:68], (*(*[4]byte)(unsafe.Pointer(&msg.AlgKeyLen)))[:])
- copy(b[68:72], (*(*[4]byte)(unsafe.Pointer(&msg.AlgICVLen)))[:])
- copy(b[72:msg.Len()], msg.AlgKey[:])
- return b
-}
-
-// struct xfrm_encap_tmpl {
-// __u16 encap_type;
-// __be16 encap_sport;
-// __be16 encap_dport;
-// xfrm_address_t encap_oa;
-// };
-
-type XfrmEncapTmpl struct {
- EncapType uint16
- EncapSport uint16 // big endian
- EncapDport uint16 // big endian
- Pad [2]byte
- EncapOa XfrmAddress
-}
-
-func (msg *XfrmEncapTmpl) Len() int {
- return SizeofXfrmEncapTmpl
-}
-
-func DeserializeXfrmEncapTmpl(b []byte) *XfrmEncapTmpl {
- return (*XfrmEncapTmpl)(unsafe.Pointer(&b[0:SizeofXfrmEncapTmpl][0]))
-}
-
-func (msg *XfrmEncapTmpl) Serialize() []byte {
- return (*(*[SizeofXfrmEncapTmpl]byte)(unsafe.Pointer(msg)))[:]
-}
-
-// struct xfrm_usersa_flush {
-// __u8 proto;
-// };
-
-type XfrmUsersaFlush struct {
- Proto uint8
-}
-
-func (msg *XfrmUsersaFlush) Len() int {
- return SizeofXfrmUsersaFlush
-}
-
-func DeserializeXfrmUsersaFlush(b []byte) *XfrmUsersaFlush {
- return (*XfrmUsersaFlush)(unsafe.Pointer(&b[0:SizeofXfrmUsersaFlush][0]))
-}
-
-func (msg *XfrmUsersaFlush) Serialize() []byte {
- return (*(*[SizeofXfrmUsersaFlush]byte)(unsafe.Pointer(msg)))[:]
-}
-
-// struct xfrm_replay_state_esn {
-// unsigned int bmp_len;
-// __u32 oseq;
-// __u32 seq;
-// __u32 oseq_hi;
-// __u32 seq_hi;
-// __u32 replay_window;
-// __u32 bmp[0];
-// };
-
-type XfrmReplayStateEsn struct {
- BmpLen uint32
- OSeq uint32
- Seq uint32
- OSeqHi uint32
- SeqHi uint32
- ReplayWindow uint32
- Bmp []uint32
-}
-
-func (msg *XfrmReplayStateEsn) Serialize() []byte {
- // We deliberately do not pass Bmp, as it gets set by the kernel.
- return (*(*[SizeofXfrmReplayStateEsn]byte)(unsafe.Pointer(msg)))[:]
-}