mirror of
https://github.com/weaveworks/scope.git
synced 2026-07-18 12:59:31 +00:00
221 lines
4.6 KiB
Go
221 lines
4.6 KiB
Go
package odp
|
|
|
|
import "syscall"
|
|
|
|
// from linux/include/linux/socket.h
|
|
const SOL_NETLINK = 270
|
|
|
|
type GenlMsghdr struct {
|
|
Cmd uint8
|
|
Version uint8
|
|
Reserved uint16
|
|
}
|
|
|
|
const SizeofGenlMsghdr = 4
|
|
|
|
// reserved static generic netlink identifiers:
|
|
const (
|
|
GENL_ID_GENERATE = 0
|
|
GENL_ID_CTRL = syscall.NLMSG_MIN_TYPE
|
|
GENL_ID_VFS_DQUOT = syscall.NLMSG_MIN_TYPE + 1
|
|
GENL_ID_PMCRAID = syscall.NLMSG_MIN_TYPE + 2
|
|
)
|
|
|
|
const (
|
|
CTRL_CMD_UNSPEC = 0
|
|
CTRL_CMD_NEWFAMILY = 1
|
|
CTRL_CMD_DELFAMILY = 2
|
|
CTRL_CMD_GETFAMILY = 3
|
|
CTRL_CMD_NEWOPS = 4
|
|
CTRL_CMD_DELOPS = 5
|
|
CTRL_CMD_GETOPS = 6
|
|
CTRL_CMD_NEWMCAST_GRP = 7
|
|
CTRL_CMD_DELMCAST_GRP = 8
|
|
)
|
|
|
|
const (
|
|
CTRL_ATTR_UNSPEC = 0
|
|
CTRL_ATTR_FAMILY_ID = 1
|
|
CTRL_ATTR_FAMILY_NAME = 2
|
|
CTRL_ATTR_VERSION = 3
|
|
CTRL_ATTR_HDRSIZE = 4
|
|
CTRL_ATTR_MAXATTR = 5
|
|
CTRL_ATTR_OPS = 6
|
|
CTRL_ATTR_MCAST_GROUPS = 7
|
|
)
|
|
|
|
const (
|
|
CTRL_ATTR_MCAST_GRP_UNSPEC = 0
|
|
CTRL_ATTR_MCAST_GRP_NAME = 1
|
|
CTRL_ATTR_MCAST_GRP_ID = 2
|
|
)
|
|
|
|
type OvsHeader struct {
|
|
DpIfIndex int32
|
|
}
|
|
|
|
const SizeofOvsHeader = 4
|
|
|
|
const (
|
|
OVS_DATAPATH_VERSION = 2
|
|
OVS_VPORT_VERSION = 1
|
|
OVS_FLOW_VERSION = 1
|
|
OVS_PACKET_VERSION = 1
|
|
)
|
|
|
|
const ( // ovs_datapath_cmd
|
|
OVS_DP_CMD_UNSPEC = 0
|
|
OVS_DP_CMD_NEW = 1
|
|
OVS_DP_CMD_DEL = 2
|
|
OVS_DP_CMD_GET = 3
|
|
OVS_DP_CMD_SET = 4
|
|
)
|
|
|
|
const ( // ovs_datapath_attr
|
|
OVS_DP_ATTR_UNSPEC = 0
|
|
OVS_DP_ATTR_NAME = 1
|
|
OVS_DP_ATTR_UPCALL_PID = 2
|
|
OVS_DP_ATTR_STATS = 3
|
|
OVS_DP_ATTR_MEGAFLOW_STATS = 4
|
|
OVS_DP_ATTR_USER_FEATURES = 5
|
|
)
|
|
|
|
const (
|
|
OVS_DP_F_UNALIGNED = 1
|
|
OVS_DP_F_VPORT_PIDS = 2
|
|
)
|
|
|
|
const ( // ovs_vport_cmd
|
|
OVS_VPORT_CMD_UNSPEC = 0
|
|
OVS_VPORT_CMD_NEW = 1
|
|
OVS_VPORT_CMD_DEL = 2
|
|
OVS_VPORT_CMD_GET = 3
|
|
OVS_VPORT_CMD_SET = 4
|
|
)
|
|
|
|
const ( // ovs_vport_attr
|
|
OVS_VPORT_ATTR_UNSPEC = 0
|
|
OVS_VPORT_ATTR_PORT_NO = 1
|
|
OVS_VPORT_ATTR_TYPE = 2
|
|
OVS_VPORT_ATTR_NAME = 3
|
|
OVS_VPORT_ATTR_OPTIONS = 4
|
|
OVS_VPORT_ATTR_UPCALL_PID = 5
|
|
OVS_VPORT_ATTR_STATS = 6
|
|
)
|
|
|
|
const ( // ovs_vport_type
|
|
OVS_VPORT_TYPE_UNSPEC = 0
|
|
OVS_VPORT_TYPE_NETDEV = 1
|
|
OVS_VPORT_TYPE_INTERNAL = 2
|
|
OVS_VPORT_TYPE_GRE = 3
|
|
OVS_VPORT_TYPE_VXLAN = 4
|
|
)
|
|
|
|
const ( // OVS_VPORT_ATTR_OPTIONS attributes for tunnels
|
|
OVS_TUNNEL_ATTR_UNSPEC = 0
|
|
OVS_TUNNEL_ATTR_DST_PORT = 1
|
|
)
|
|
|
|
const ( // ovs_flow_cmd
|
|
OVS_FLOW_CMD_UNSPEC = 0
|
|
OVS_FLOW_CMD_NEW = 1
|
|
OVS_FLOW_CMD_DEL = 2
|
|
OVS_FLOW_CMD_GET = 3
|
|
OVS_FLOW_CMD_SET = 4
|
|
)
|
|
|
|
const ( // ovs_flow_attr
|
|
OVS_FLOW_ATTR_UNSPEC = 0
|
|
OVS_FLOW_ATTR_KEY = 1
|
|
OVS_FLOW_ATTR_ACTIONS = 2
|
|
OVS_FLOW_ATTR_STATS = 3
|
|
OVS_FLOW_ATTR_TCP_FLAGS = 4
|
|
OVS_FLOW_ATTR_USED = 5
|
|
OVS_FLOW_ATTR_CLEAR = 6
|
|
OVS_FLOW_ATTR_MASK = 7
|
|
)
|
|
|
|
type OvsFlowStats struct {
|
|
NPackets uint64
|
|
NBytes uint64
|
|
}
|
|
|
|
const SizeofOvsFlowStats = 16
|
|
|
|
const ( // ovs_key_attr
|
|
OVS_KEY_ATTR_UNSPEC = 0
|
|
OVS_KEY_ATTR_ENCAP = 1
|
|
OVS_KEY_ATTR_PRIORITY = 2
|
|
OVS_KEY_ATTR_IN_PORT = 3
|
|
OVS_KEY_ATTR_ETHERNET = 4
|
|
OVS_KEY_ATTR_VLAN = 5
|
|
OVS_KEY_ATTR_ETHERTYPE = 6
|
|
OVS_KEY_ATTR_IPV4 = 7
|
|
OVS_KEY_ATTR_IPV6 = 8
|
|
OVS_KEY_ATTR_TCP = 9
|
|
OVS_KEY_ATTR_UDP = 10
|
|
OVS_KEY_ATTR_ICMP = 11
|
|
OVS_KEY_ATTR_ICMPV6 = 12
|
|
OVS_KEY_ATTR_ARP = 13
|
|
OVS_KEY_ATTR_ND = 14
|
|
OVS_KEY_ATTR_SKB_MARK = 15
|
|
OVS_KEY_ATTR_TUNNEL = 16
|
|
OVS_KEY_ATTR_SCTP = 17
|
|
OVS_KEY_ATTR_TCP_FLAGS = 18
|
|
OVS_KEY_ATTR_DP_HASH = 19
|
|
OVS_KEY_ATTR_RECIRC_ID = 20
|
|
)
|
|
|
|
const ( // ovs_tunnel_key_attr
|
|
OVS_TUNNEL_KEY_ATTR_ID = 0
|
|
OVS_TUNNEL_KEY_ATTR_IPV4_SRC = 1
|
|
OVS_TUNNEL_KEY_ATTR_IPV4_DST = 2
|
|
OVS_TUNNEL_KEY_ATTR_TOS = 3
|
|
OVS_TUNNEL_KEY_ATTR_TTL = 4
|
|
OVS_TUNNEL_KEY_ATTR_DONT_FRAGMENT = 5
|
|
OVS_TUNNEL_KEY_ATTR_CSUM = 6
|
|
OVS_TUNNEL_KEY_ATTR_OAM = 7
|
|
OVS_TUNNEL_KEY_ATTR_GENEVE_OPTS = 8
|
|
OVS_TUNNEL_KEY_ATTR_TP_SRC = 9
|
|
OVS_TUNNEL_KEY_ATTR_TP_DST = 10
|
|
)
|
|
|
|
const ETH_ALEN = 6
|
|
|
|
type OvsKeyEthernet struct {
|
|
EthSrc [ETH_ALEN]byte
|
|
EthDst [ETH_ALEN]byte
|
|
}
|
|
|
|
const SizeofOvsKeyEthernet = 12
|
|
|
|
const ( // ovs_action_attr
|
|
OVS_ACTION_ATTR_UNSPEC = 0
|
|
OVS_ACTION_ATTR_OUTPUT = 1
|
|
OVS_ACTION_ATTR_USERSPACE = 2
|
|
OVS_ACTION_ATTR_SET = 3
|
|
OVS_ACTION_ATTR_PUSH_VLAN = 4
|
|
OVS_ACTION_ATTR_POP_VLAN = 5
|
|
OVS_ACTION_ATTR_SAMPLE = 6
|
|
)
|
|
|
|
const ( // ovs_packet_cmd
|
|
OVS_PACKET_CMD_UNSPEC = 0
|
|
OVS_PACKET_CMD_MISS = 1
|
|
OVS_PACKET_CMD_ACTION = 2
|
|
OVS_PACKET_CMD_EXECUTE = 3
|
|
)
|
|
|
|
const ( // ovs_packet_attr
|
|
OVS_PACKET_ATTR_UNSPEC = 0
|
|
OVS_PACKET_ATTR_PACKET = 1
|
|
OVS_PACKET_ATTR_KEY = 2
|
|
OVS_PACKET_ATTR_ACTIONS = 3
|
|
OVS_PACKET_ATTR_USERDATA = 4
|
|
)
|
|
|
|
type ifreqIfindex struct {
|
|
name [syscall.IFNAMSIZ]byte
|
|
ifindex int32
|
|
}
|