summaryrefslogtreecommitdiff
path: root/datapath-windows/ovsext
diff options
context:
space:
mode:
Diffstat (limited to 'datapath-windows/ovsext')
-rw-r--r--datapath-windows/ovsext/DpInternal.h171
-rw-r--r--datapath-windows/ovsext/IpHelper.c10
-rw-r--r--datapath-windows/ovsext/IpHelper.h6
-rw-r--r--datapath-windows/ovsext/Vport.h6
4 files changed, 14 insertions, 179 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. */
diff --git a/datapath-windows/ovsext/IpHelper.c b/datapath-windows/ovsext/IpHelper.c
index fd663dc3a..0c64be44b 100644
--- a/datapath-windows/ovsext/IpHelper.c
+++ b/datapath-windows/ovsext/IpHelper.c
@@ -787,7 +787,7 @@ OvsCreateIPNeighEntry(PMIB_IPNET_ROW2 ipNeigh)
KeQuerySystemTime((LARGE_INTEGER *)&timeVal);
entry->timeout = timeVal + OVS_IPNEIGH_TIMEOUT;
RtlCopyMemory(entry->macAddr, ipNeigh->PhysicalAddress,
- MAC_ADDRESS_LEN);
+ ETH_ADDR_LEN);
InitializeListHead(&entry->fwdList);
return entry;
@@ -1305,9 +1305,9 @@ fwd_request_done:
*/
fwdInfo.dstIpAddr = request->fwdReq.tunnelKey.dst;
fwdInfo.srcIpAddr = srcAddr;
- RtlCopyMemory(fwdInfo.dstMacAddr, ipn->macAddr, MAC_ADDRESS_LEN);
+ RtlCopyMemory(fwdInfo.dstMacAddr, ipn->macAddr, ETH_ADDR_LEN);
RtlCopyMemory(fwdInfo.srcMacAddr, ovsInternalRow.PhysicalAddress,
- MAC_ADDRESS_LEN);
+ ETH_ADDR_LEN);
fwdInfo.srcPortNo = request->fwdReq.inPort;
fwdEntry = OvsCreateFwdEntry(&fwdInfo);
@@ -1386,7 +1386,7 @@ OvsUpdateIPNeighEntry(UINT32 ipAddr,
if (memcmp((const PVOID)ipn->macAddr,
(const PVOID)ipNeigh->PhysicalAddress,
- (size_t)MAC_ADDRESS_LEN)) {
+ (size_t)ETH_ADDR_LEN)) {
PLIST_ENTRY link;
POVS_FWD_ENTRY fwdEntry;
NdisReleaseRWLock(ovsTableLock, &lockState);
@@ -1406,7 +1406,7 @@ OvsUpdateIPNeighEntry(UINT32 ipAddr,
LIST_FORALL(&ipn->fwdList, link) {
fwdEntry = CONTAINING_RECORD(link, OVS_FWD_ENTRY, ipnLink);
RtlCopyMemory(fwdEntry->info.dstMacAddr,
- ipNeigh->PhysicalAddress, MAC_ADDRESS_LEN);
+ ipNeigh->PhysicalAddress, ETH_ADDR_LEN);
}
}
/*
diff --git a/datapath-windows/ovsext/IpHelper.h b/datapath-windows/ovsext/IpHelper.h
index 00f17f194..19702a2f3 100644
--- a/datapath-windows/ovsext/IpHelper.h
+++ b/datapath-windows/ovsext/IpHelper.h
@@ -33,7 +33,7 @@
typedef struct _OVS_IPNEIGH_ENTRY {
- UINT8 macAddr[MAC_ADDRESS_LEN];
+ UINT8 macAddr[ETH_ADDR_LEN];
UINT16 refCount;
UINT32 ipAddr;
UINT32 pad;
@@ -55,8 +55,8 @@ typedef union _OVS_FWD_INFO {
struct {
UINT32 dstIpAddr;
UINT32 srcIpAddr;
- UINT8 dstMacAddr[MAC_ADDRESS_LEN];
- UINT8 srcMacAddr[MAC_ADDRESS_LEN];
+ UINT8 dstMacAddr[ETH_ADDR_LEN];
+ UINT8 srcMacAddr[ETH_ADDR_LEN];
UINT32 srcPortNo;
};
UINT64 value[3];
diff --git a/datapath-windows/ovsext/Vport.h b/datapath-windows/ovsext/Vport.h
index 911029245..724b126c8 100644
--- a/datapath-windows/ovsext/Vport.h
+++ b/datapath-windows/ovsext/Vport.h
@@ -102,9 +102,9 @@ typedef struct _OVS_VPORT_ENTRY {
NDIS_SWITCH_NIC_STATE nicState;
NDIS_SWITCH_PORT_TYPE portType;
- UINT8 permMacAddress[MAC_ADDRESS_LEN];
- UINT8 currMacAddress[MAC_ADDRESS_LEN];
- UINT8 vmMacAddress[MAC_ADDRESS_LEN];
+ UINT8 permMacAddress[ETH_ADDR_LEN];
+ UINT8 currMacAddress[ETH_ADDR_LEN];
+ UINT8 vmMacAddress[ETH_ADDR_LEN];
NDIS_SWITCH_PORT_NAME hvPortName;
IF_COUNTED_STRING portFriendlyName;