diff options
Diffstat (limited to 'datapath-windows/ovsext/DpInternal.h')
-rw-r--r-- | datapath-windows/ovsext/DpInternal.h | 171 |
1 files changed, 3 insertions, 168 deletions
diff --git a/datapath-windows/ovsext/DpInternal.h b/datapath-windows/ovsext/DpInternal.h index 89e9b6a38..3da9d6afa 100644 --- a/datapath-windows/ovsext/DpInternal.h +++ b/datapath-windows/ovsext/DpInternal.h @@ -21,119 +21,12 @@ #define IFNAMSIZ IF_NAMESIZE #include "../ovsext/Netlink/Netlink.h" -#define OVS_DRIVER_MAJOR_VER 1 -#define OVS_DRIVER_MINOR_VER 0 - -#define OVS_DEVICE_TYPE 45000 -#define OVS_IOCTL_TYPE OVS_DEVICE_TYPE #define OVS_DP_NUMBER ((uint32_t) 0) -#define OVSWIN_DEVICE_NAME_MAX_LENGTH 32 - -#define IFF_RUNNING 0x20 -#define IFF_PROMISC 0x40 - -#define OVS_MAX_OPAQUE_NETWORK_ID_LEN 128 - -#define OVS_NT_DEVICE_NAME L"\\Device\\OvsIoctl" -#define OVS_DOS_DEVICE_NAME L"\\DosDevices\\OvsIoctl" -#define OVS_USER_DEVICE_PATH TEXT("\\\\.\\OvsIoctl") - -#define OVS_IOCTL_DP_START 0x100 -#define OVS_IOCTL_DP_DUMP \ - CTL_CODE (OVS_DEVICE_TYPE, OVS_IOCTL_DP_START + 0x0, METHOD_BUFFERED, FILE_READ_ACCESS) -#define OVS_IOCTL_DP_GET \ - CTL_CODE (OVS_DEVICE_TYPE, OVS_IOCTL_DP_START + 0x1, METHOD_OUT_DIRECT, FILE_READ_ACCESS) -#define OVS_IOCTL_DP_SET \ - CTL_CODE (OVS_DEVICE_TYPE, OVS_IOCTL_DP_START + 0x2, METHOD_IN_DIRECT, FILE_WRITE_ACCESS) -#define OVS_IOCTL_DP_TIMESTAMP_SET \ - CTL_CODE (OVS_DEVICE_TYPE, OVS_IOCTL_DP_START + 0x3, METHOD_BUFFERED, FILE_ANY_ACCESS) - - -#define OVS_IOCTL_VPORT_START 0x200 -#define OVS_IOCTL_VPORT_DUMP \ - CTL_CODE (OVS_DEVICE_TYPE, OVS_IOCTL_VPORT_START + 0x0, METHOD_OUT_DIRECT, FILE_READ_ACCESS) -#define OVS_IOCTL_VPORT_GET \ - CTL_CODE (OVS_DEVICE_TYPE, OVS_IOCTL_VPORT_START + 0x1, METHOD_OUT_DIRECT, FILE_READ_ACCESS) -#define OVS_IOCTL_VPORT_SET \ - CTL_CODE (OVS_DEVICE_TYPE, OVS_IOCTL_VPORT_START + 0x2, METHOD_IN_DIRECT, FILE_WRITE_ACCESS) -#define OVS_IOCTL_VPORT_ADD \ - CTL_CODE (OVS_DEVICE_TYPE, OVS_IOCTL_VPORT_START + 0x3, METHOD_IN_DIRECT, FILE_WRITE_ACCESS) -#define OVS_IOCTL_VPORT_DEL \ - CTL_CODE (OVS_DEVICE_TYPE, OVS_IOCTL_VPORT_START + 0x4, METHOD_IN_DIRECT, FILE_WRITE_ACCESS) -#define OVS_IOCTL_VPORT_EXT_INFO \ - CTL_CODE (OVS_DEVICE_TYPE, OVS_IOCTL_VPORT_START + 0x5, METHOD_OUT_DIRECT, FILE_READ_ACCESS) - -#define OVS_IOCTL_FLOW_START 0x300 -#define OVS_IOCTL_FLOW_DUMP \ - CTL_CODE (OVS_DEVICE_TYPE, OVS_IOCTL_FLOW_START + 0x0, METHOD_OUT_DIRECT, FILE_READ_ACCESS) -#define OVS_IOCTL_FLOW_GET \ - CTL_CODE (OVS_DEVICE_TYPE, OVS_IOCTL_FLOW_START + 0x1, METHOD_OUT_DIRECT, FILE_ANY_ACCESS) - -#define OVS_IOCTL_FLOW_PUT \ - CTL_CODE (OVS_DEVICE_TYPE, OVS_IOCTL_FLOW_START + 0x2, METHOD_BUFFERED, FILE_ANY_ACCESS) -#define OVS_IOCTL_FLOW_FLUSH \ - CTL_CODE (OVS_DEVICE_TYPE, OVS_IOCTL_FLOW_START + 0x3, METHOD_BUFFERED, FILE_WRITE_ACCESS) - - -#define OVS_IOCTL_QOS_START 0x400 -#define OVS_IOCTL_QOS_QUEUE_DUMP \ - CTL_CODE (OVS_DEVICE_TYPE, OVS_IOCTL_QOS_START + 0x0, METHOD_OUT_DIRECT, FILE_READ_ACCESS) -#define OVS_IOCTL_QOS_QUEUE_GET \ - CTL_CODE (OVS_DEVICE_TYPE, OVS_IOCTL_QOS_START + 0x1, METHOD_OUT_DIRECT, FILE_READ_ACCESS) -#define OVS_IOCTL_QOS_QUEUE_SET \ - CTL_CODE (OVS_DEVICE_TYPE, OVS_IOCTL_QOS_START + 0x2, METHOD_IN_DIRECT, FILE_WRITE_ACCESS) - - -#define OVS_IOCTL_DATAPATH_START 0x500 -#define OVS_IOCTL_DATAPATH_SUBSCRIBE \ - CTL_CODE (OVS_DEVICE_TYPE, OVS_IOCTL_DATAPATH_START + 0x0, METHOD_BUFFERED, FILE_WRITE_ACCESS) -#define OVS_IOCTL_DATAPATH_READ \ - CTL_CODE (OVS_DEVICE_TYPE, OVS_IOCTL_DATAPATH_START + 0x1, METHOD_OUT_DIRECT, FILE_READ_ACCESS) -#define OVS_IOCTL_DATAPATH_EXECUTE \ - CTL_CODE (OVS_DEVICE_TYPE, OVS_IOCTL_DATAPATH_START + 0x2, METHOD_IN_DIRECT, FILE_WRITE_ACCESS) -#define OVS_IOCTL_DATAPATH_OPERATE \ - CTL_CODE (OVS_DEVICE_TYPE, OVS_IOCTL_DATAPATH_START + 0x3, METHOD_IN_DIRECT, FILE_ANY_ACCESS) -#define OVS_IOCTL_DATAPATH_PURGE \ - CTL_CODE (OVS_DEVICE_TYPE, OVS_IOCTL_DATAPATH_START + 0x4, METHOD_NEITHER, FILE_ANY_ACCESS) -#define OVS_IOCTL_DATAPATH_WAIT \ - CTL_CODE (OVS_DEVICE_TYPE, OVS_IOCTL_DATAPATH_START + 0x5, METHOD_NEITHER, FILE_ANY_ACCESS) - - - -#define OVS_IOCTL_EVENT_START 0x600 -#define OVS_IOCTL_EVENT_SUBSCRIBE \ - CTL_CODE (OVS_DEVICE_TYPE, OVS_IOCTL_EVENT_START + 0x0, METHOD_BUFFERED, FILE_WRITE_ACCESS) -#define OVS_IOCTL_EVENT_POLL \ - CTL_CODE (OVS_DEVICE_TYPE, OVS_IOCTL_EVENT_START + 0x1, METHOD_OUT_DIRECT, FILE_ANY_ACCESS) -#define OVS_IOCTL_EVENT_WAIT \ - CTL_CODE (OVS_DEVICE_TYPE, OVS_IOCTL_EVENT_START + 0x2, METHOD_BUFFERED, FILE_ANY_ACCESS) - - -#define OVS_IOCTL_VERSION_START 0x700 -#define OVS_IOCTL_VERSION_GET \ - CTL_CODE(OVS_DEVICE_TYPE, OVS_IOCTL_VERSION_START + 0x0, METHOD_BUFFERED, FILE_ANY_ACCESS) typedef __declspec(align(8)) uint64_t Ovs64AlignedU64; typedef __declspec(align(8)) ovs_be64 Ovs64AlignedBe64; #pragma pack(push, 1) - -typedef struct _OVS_DP_INFO { - char name[128]; - uint32_t dpNo; - uint32_t queue; - Ovs64AlignedU64 nHit; - Ovs64AlignedU64 nMissed; - Ovs64AlignedU64 nLost; - Ovs64AlignedU64 nFlows; -} OVS_DP_INFO, *POVS_DP_INFO; - - -typedef struct _OVS_VERSION { - uint8_t mjrDrvVer; - uint8_t mnrDrvVer; -} OVS_VERSION, *POVS_VERSION; - #define OVS_MAX_PORT_NAME_LENGTH IFNAMSIZ typedef struct _OVS_VPORT_GET { @@ -142,72 +35,15 @@ typedef struct _OVS_VPORT_GET { char name[OVS_MAX_PORT_NAME_LENGTH]; } OVS_VPORT_GET, *POVS_VPORT_GET; -static __inline const char * -OvsVportTypeToStr(OVS_VPORT_TYPE t) -{ - switch(t) { -#define STR(t) case OVS_VPORT_TYPE_##t : return "VPORT_##t"; - STR(UNSPEC) - STR(NETDEV) - STR(INTERNAL) - STR(GRE) - STR(GRE64) - STR(VXLAN) - STR(GENEVE) - STR(LISP) - } -#undef STR - - return "Invalid type"; -} - -#define MAC_ADDRESS_LEN 6 - -typedef struct _OVS_VPORT_INFO { - uint32_t dpNo; - uint32_t portNo; - char name[OVS_MAX_PORT_NAME_LENGTH]; - uint32_t type; - uint32_t queue; - - Ovs64AlignedU64 rxPackets; - Ovs64AlignedU64 txPackets; - Ovs64AlignedU64 rxBytes; - Ovs64AlignedU64 txBytes; - Ovs64AlignedU64 rxErrors; - Ovs64AlignedU64 txErrors; - Ovs64AlignedU64 rxDropped; - Ovs64AlignedU64 txDropped; - - uint8_t macAddress[MAC_ADDRESS_LEN]; - uint16_t pad; -} OVS_VPORT_INFO, *POVS_VPORT_INFO; - -typedef struct _OVS_VPORT_ADD_REQUEST { - uint32_t dpNo; - uint32_t type; - char name[OVS_MAX_PORT_NAME_LENGTH]; - uint16_t dstPort; - uint16_t pad[3]; -} OVS_VPORT_ADD_REQUEST, *POVS_VPORT_ADD_REQUEST; - - -typedef struct _OVS_VPORT_DELETE_REQUEST { - uint32_t dpNo; - uint32_t portNo; - char name[OVS_MAX_PORT_NAME_LENGTH]; -} OVS_VPORT_DELETE_REQUEST, *POVS_VPORT_DELETE_REQUEST; - - #define OVS_MAX_VM_UUID_LEN 128 #define OVS_MAX_VIF_UUID_LEN 128 typedef struct _OVS_VPORT_EXT_INFO { uint32_t dpNo; uint32_t portNo; - uint8_t macAddress[MAC_ADDRESS_LEN]; - uint8_t permMACAddress[MAC_ADDRESS_LEN]; - uint8_t vmMACAddress[MAC_ADDRESS_LEN]; + uint8_t macAddress[ETH_ADDR_LEN]; + uint8_t permMACAddress[ETH_ADDR_LEN]; + uint8_t vmMACAddress[ETH_ADDR_LEN]; uint16_t nicIndex; uint32_t portId; uint32_t type; @@ -221,7 +57,6 @@ typedef struct _OVS_VPORT_EXT_INFO { /* Flows. */ #define OVSWIN_VLAN_CFI 0x1000 -#define OVSWIN_INPORT_INVALID 0xffffffff /* Used for OvsFlowKey's dlType member for frames that have no Ethernet type, * that is, pure 802.2 frames. */ |