diff --git a/.ci/windows-build.sh b/.ci/windows-build.sh new file mode 100644 index 00000000000..e6c45e027ca --- /dev/null +++ b/.ci/windows-build.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +set -o errexit +set -x + +CFLAGS_FOR_OVS="-g -O2" +EXTRA_OPTS="--with-pthread=`realpath ./PTHREADS-BUILT | xargs cygpath -m`" + +function configure_ovs() +{ + ./boot.sh + ./configure CC="./build-aux/cccl" LD="`which link`" \ + LIBS="-lws2_32 -lShlwapi -liphlpapi -lwbemuuid -lole32 -loleaut32" \ + CFLAGS="${CFLAGS_FOR_OVS}" $* || { cat config.log; exit 1; } +} + + +OPTS="${EXTRA_OPTS} ${OPTS} $*" +configure_ovs $OPTS +make || { cat config.log; exit 1; } + +if [ "$TESTSUITE" ]; then + if ! make check RECHECK=yes; then + # testsuite.log is necessary for debugging. + cat ./tests/testsuite.log + exit 1 + fi +fi + +exit 0 diff --git a/.ci/windows-prepare.sh b/.ci/windows-prepare.sh new file mode 100644 index 00000000000..aeaf4a9ee66 --- /dev/null +++ b/.ci/windows-prepare.sh @@ -0,0 +1,9 @@ +#!/bin/bash +set -ev + +# clone and build pthreads4w +git clone https://git.code.sf.net/p/pthreads4w/code pthreads4w-code +cd pthreads4w-code +nmake all install +cd .. +rm -rf pthreads4w-code \ No newline at end of file diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml new file mode 100644 index 00000000000..211f49fde20 --- /dev/null +++ b/.github/workflows/build-windows.yml @@ -0,0 +1,100 @@ +name: Build for Windows + +on: [push, pull_request] + +jobs: + build-windows: + name: windows ${{ join(matrix.*, ' ') }} + env: + OPTS: --with-vstudiotarget=${{ matrix.target }} --with-vstudiotargetver=Win10 --prefix=C:/openvswitch/usr --localstatedir=C:/ProgramData/openvswitch/var --sysconfdir=C:/ProgramData/openvswitch/etc --disable-ssl ${{ matrix.opts }} + TESTSUITE: ${{ matrix.testsuite }} + + runs-on: windows-latest + timeout-minutes: 60 + + strategy: + fail-fast: false + matrix: + include: + # run only one job for windows, as more than one be enough currently to verify + # PRs + # tests are not enabled as they take very long and a lot of them will fail + - target: Release + + defaults: + run: + shell: msys2 {0} + + steps: + - name: checkout + uses: actions/checkout@v2 + - name: install msys + uses: msys2/setup-msys2@v2 + with: + msystem: UCRT64 + update: true + install: base-devel git mingw-w64-ucrt-x86_64-toolchain autotools + - name: set up python + uses: actions/setup-python@v2 + with: + python-version: '3.x' + + # pypiwin32 has to be installed with a Windows python version therefore + # this step will configure python first on Windows and exports + # its location for MSYS bash. + - name: configure python in Windows cmdline + shell: cmd + run: | + python -m pip install --upgrade pip + pip install pypiwin32 + echo export pythonLocation="%pythonLocation%" > %RUNNER_TEMP%\msys64\home\%USERNAME%\.pythonenv.sh + echo export PYTHONPATH="%pythonLocation%\Lib;%pythonLocation%\DLLs;%pythonLocation%\Lib\lib-tk" >> %RUNNER_TEMP%\msys64\home\%USERNAME%\.pythonenv.sh + echo ".pythonenv.sh was generated in %RUNNER_TEMP%\msys64\home\%USERNAME%" + - name: generate Visual Studio environment + shell: cmd + run: | + powershell -c ./build-aux/envdiff.ps1 + @call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" + powershell -c ./build-aux/envdiff.ps1 > %RUNNER_TEMP%\msys64\home\%USERNAME%\.visualstudio.sh + echo ".visualstudio.sh was generated in %RUNNER_TEMP%\msys64\home\%USERNAME%" + - name: configure python for MSYS + run: | + source ~/.pythonenv.sh + echo "using python from path $pythonLocation" + mv /ucrt64/bin/python /ucrt64/bin/python_off + mv /ucrt64/bin/python3 /ucrt64/bin/python3_off + ln -s "$pythonLocation\python" /ucrt64/bin/python3 + - name: prepare + run: | + [[ -f /usr/bin/link ]] && mv /usr/bin/link /usr/bin/link_off + source ~/.visualstudio.sh + ./.ci/windows-prepare.sh + - name: build + run: | + source ~/.visualstudio.sh + source ~/.pythonenv.sh + echo $PYTHONPATH + ./.ci/windows-build.sh + - name: upload logs on failure + if: failure() + uses: actions/upload-artifact@v2 + with: + name: logs-windows-${{ join(matrix.*, '-') }} + path: config.log + - name: install + run: | + source ~/.visualstudio.sh + source ~/.pythonenv.sh + make install + cp ./PTHREADS-BUILT/bin/pthreadVC3.dll /C/openvswitch/usr/sbin + cp ./PTHREADS-BUILT/bin/pthreadVC3.dll /C/openvswitch/usr/bin + mkdir /C/openvswitch/driver + cp ./datapath-windows/x64/Win10${{ matrix.target }}/package/* /C/openvswitch/driver + cp ./datapath-windows/x64/Win10${{ matrix.target }}/package.cer /C/openvswitch/driver + cp ./datapath-windows/misc/* /C/openvswitch/driver + cp ./datapath-windows/ovsext/x64/Win10${{ matrix.target }}/DBO_OVSE.pdb /C/openvswitch/driver + - name: upload build artifacts + uses: actions/upload-artifact@v2 + with: + name: openvswitch-windows-${{ join(matrix.*, '-') }} + path: c:\openvswitch diff --git a/.gitignore b/.gitignore index 26ed8d3d067..000435d46fa 100644 --- a/.gitignore +++ b/.gitignore @@ -79,3 +79,14 @@ testsuite.tmp.orig /Documentation/_build /.venv /cxx-check +snapshot.env +PTHREADS-BUILT/bin/pthreadVC3.dll +PTHREADS-BUILT/bin/pthreadVC3d.dll +PTHREADS-BUILT/bin/pthreadVCE3.dll +PTHREADS-BUILT/bin/pthreadVCE3d.dll +PTHREADS-BUILT/bin/pthreadVSE3.dll +PTHREADS-BUILT/bin/pthreadVSE3d.dll +PTHREADS-BUILT/include/_ptw32.h +PTHREADS-BUILT/include/pthread.h +PTHREADS-BUILT/include/sched.h +PTHREADS-BUILT/include/semaphore.h diff --git a/Makefile.am b/Makefile.am index 94f488d1837..e2d2cbde2e9 100644 --- a/Makefile.am +++ b/Makefile.am @@ -79,11 +79,14 @@ EXTRA_DIST = \ .ci/dpdk-prepare.sh \ .ci/linux-build.sh \ .ci/linux-prepare.sh \ + .ci/windows-build.sh \ + .ci/windows-prepare.sh \ .ci/osx-build.sh \ .ci/osx-prepare.sh \ .cirrus.yml \ .editorconfig \ .github/workflows/build-and-test.yml \ + .github/workflows/build-windows.yml \ .readthedocs.yaml \ appveyor.yml \ boot.sh \ diff --git a/README.rst b/README.rst index a2c234f4d17..318371578dd 100644 --- a/README.rst +++ b/README.rst @@ -3,9 +3,11 @@ are kept up-to-date. ============ -Open vSwitch +Open vSwitch (dbosoft fork) ============ +.. image:: https://github.com/dbosoft/ovs/workflows/Build%20and%20Test/badge.svg + :target: https://github.com/dbosoft/ovs/actions .. image:: https://github.com/openvswitch/ovs/workflows/Build%20and%20Test/badge.svg :target: https://github.com/openvswitch/ovs/actions .. image:: https://ci.appveyor.com/api/projects/status/github/openvswitch/ovs?branch=master&svg=true&retina=true @@ -49,6 +51,10 @@ the kernel-based switch. OVS in userspace can access Linux or DPDK devices. Note Open vSwitch with userspace datapath and non DPDK devices is considered experimental and comes with a cost in performance. +What is the dbosoft fork? +------------------------- +We have forked openvswitch to build it for windows and to work on upstream patches. + What's here? ------------ diff --git a/appveyor.yml b/appveyor.yml index 5903b90d078..993676c7fc5 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -15,15 +15,15 @@ init: mkdir C:\openvswitch\driver - $source = "https://slproweb.com/download/Win64OpenSSL-1_0_2u.exe" + $source = "https://slproweb.com/download/Win64OpenSSL-1_1_1s.exe" - $destination = "C:\ovs-build-downloads\Win64OpenSSL-1_0_2u.exe" + $destination = "C:\ovs-build-downloads\Win64OpenSSL-1_1_1s.exe" Invoke-WebRequest $source -OutFile $destination cd C:\ovs-build-downloads - .\Win64OpenSSL-1_0_2u.exe /silent /verysilent /sp- /suppressmsgboxes + .\Win64OpenSSL-1_1_1s.exe /silent /verysilent /sp- /suppressmsgboxes Start-Sleep -s 30 diff --git a/build-aux/automake.mk b/build-aux/automake.mk index d65b6da6c5a..c3e402d945c 100644 --- a/build-aux/automake.mk +++ b/build-aux/automake.mk @@ -18,7 +18,8 @@ EXTRA_DIST += \ build-aux/sodepends.py \ build-aux/soexpand.py \ build-aux/text2c \ - build-aux/xml2nroff + build-aux/xml2nroff \ + build-aux/envdiff.ps1 FLAKE8_PYFILES += \ build-aux/dpdkstrip.py \ diff --git a/build-aux/envdiff.ps1 b/build-aux/envdiff.ps1 new file mode 100644 index 00000000000..c46d17f2cfb --- /dev/null +++ b/build-aux/envdiff.ps1 @@ -0,0 +1,44 @@ +# script to export windows environment variables to bash shell +# This is useful to create bash environments from vcvars64.bat +# based on the solution from this article https://anadoxin.org/blog/bringing-visual-studio-compiler-into-msys2-environment.html/ + +if((Test-Path "snapshot.env") -eq $false){ + + Get-ChildItem env: | Select-Object Key,Value | ConvertTo-Json | Set-Content "snapshot.env" + Write-Host "Stored snapshot.env" + return +} + +$snapshotEnv = Get-Content "snapshot.env" | ConvertFrom-Json + +foreach($e in Get-ChildItem env:){ + if($e.Key -contains '/') { + # Sometimes Windows uses environment variables like i.e. + # ProgramFiles(x86)=c:\... + # but let's just skip this. + continue; + } + $key = $e.Key + $keyUpperCase = $e.Key.ToUpperInvariant() + + if($keyUpperCase -eq "PATH") { + $path = $e.Value.Replace("c:", "/c").Replace("C:", "/c").Replace("\", "/").Replace(";", ":") + Write-Output "export PATH=""`$PATH:$path""" + continue + } + $valueEscaped = $e.value.replace("\", "\\"); + + $snapShotEntry = $snapshotEnv | Where-Object -Property Key -eq $key | Select-Object -First 1 + + if($null -ne $snapShotEntry){ + Write-Output "# debug: key=$keyUpperCase" + $oldValue = $snapShotEntry.Value + if($oldValue -ne $e.Value) { + Write-Output "export $key=""$valueEscaped"" #changed" + } + } + else{ + Write-Output "export $key=""$valueEscaped"" #new" + + } +} \ No newline at end of file diff --git a/datapath-windows/Package/package.VcxProj b/datapath-windows/Package/package.VcxProj index 994c34dc229..bb6472023e6 100644 --- a/datapath-windows/Package/package.VcxProj +++ b/datapath-windows/Package/package.VcxProj @@ -68,15 +68,14 @@ WindowsKernelModeDriver$(PlatformToolsetVer) - - + Windows10 true 10.0 WindowsKernelModeDriver$(PlatformToolsetVer) Desktop - + Windows10 true 10.0 WindowsKernelModeDriver$(PlatformToolsetVer) @@ -95,8 +94,7 @@ WindowsKernelModeDriver$(PlatformToolsetVer) - - + Windows10 false 10.0 WindowsKernelModeDriver$(PlatformToolsetVer) diff --git a/datapath-windows/include/OvsDpInterfaceExt.h b/datapath-windows/include/OvsDpInterfaceExt.h index 045e4cbd6a9..c8db1e2a083 100644 --- a/datapath-windows/include/OvsDpInterfaceExt.h +++ b/datapath-windows/include/OvsDpInterfaceExt.h @@ -23,9 +23,9 @@ #define OVS_DATAPATH_EXT_VERSION 1 /* Name of the device. */ -#define OVS_DEVICE_NAME_NT L"\\Device\\OpenvSwitchDevice" -#define OVS_DEVICE_NAME_DOS L"\\DosDevices\\OpenvSwitchDevice" -#define OVS_DEVICE_NAME_USER TEXT("\\\\.\\OpenvSwitchDevice") +#define OVS_DEVICE_NAME_NT L"\\Device\\DbosoftOVSD" +#define OVS_DEVICE_NAME_DOS L"\\DosDevices\\DbosoftOVSD" +#define OVS_DEVICE_NAME_USER TEXT("\\\\.\\DbosoftOVSD") #define OVS_IOCTL_DEVICE_TYPE 45000 diff --git a/datapath-windows/ovsext/Driver.c b/datapath-windows/ovsext/Driver.c index 0d23adaf729..2d832e20a7b 100644 --- a/datapath-windows/ovsext/Driver.c +++ b/datapath-windows/ovsext/Driver.c @@ -47,17 +47,17 @@ NDIS_HANDLE gOvsExtDriverHandle; */ extern POVS_SWITCH_CONTEXT gOvsSwitchContext; -static PWCHAR ovsExtFriendlyName = L"Open vSwitch Extension"; -static PWCHAR ovsExtServiceName = L"OVSExt"; +static PWCHAR ovsExtFriendlyName = L"dbosoft Open vSwitch Extension"; +static PWCHAR ovsExtServiceName = L"DBO_OVSE"; NDIS_STRING ovsExtGuidUC; NDIS_STRING ovsExtFriendlyNameUC; -static PWCHAR ovsExtGuidStr = L"{583CC151-73EC-4A6A-8B47-578297AD7623}"; +static PWCHAR ovsExtGuidStr = L"{63E968D9-754E-4704-A5CE-6E3BF7DDF59B}"; static const GUID ovsExtGuid = { - 0x583cc151, - 0x73ec, - 0x4a6a, - {0x8b, 0x47, 0x57, 0x82, 0x97, 0xad, 0x76, 0x23} + 0x63e968d9, + 0x754e, + 0x4704, + {0xa5, 0xce, 0x6e, 0x3b, 0xf7, 0xdd, 0xf5, 0x9b} }; DRIVER_INITIALIZE DriverEntry; diff --git a/datapath-windows/ovsext/User.c b/datapath-windows/ovsext/User.c index c4563b28b2c..63da4747dbe 100644 --- a/datapath-windows/ovsext/User.c +++ b/datapath-windows/ovsext/User.c @@ -407,7 +407,10 @@ _MapNlAttrToOvsPktExec(PNL_MSG_HDR nlMsgHdr, PNL_ATTR *nlAttrs, execute->actionsLen = NlAttrGetSize(nlAttrs[OVS_PACKET_ATTR_ACTIONS]); ASSERT(keyAttrs[OVS_KEY_ATTR_IN_PORT]); - execute->inPort = NlAttrGetU32(keyAttrs[OVS_KEY_ATTR_IN_PORT]); + if (keyAttrs[OVS_KEY_ATTR_IN_PORT]) { + execute->inPort = NlAttrGetU32(keyAttrs[OVS_KEY_ATTR_IN_PORT]); + } + execute->keyAttrs = keyAttrs; if (nlAttrs[OVS_PACKET_ATTR_MRU]) { diff --git a/datapath-windows/ovsext/Util.c b/datapath-windows/ovsext/Util.c index d703b2468b4..b54f640bd45 100644 --- a/datapath-windows/ovsext/Util.c +++ b/datapath-windows/ovsext/Util.c @@ -34,14 +34,14 @@ OvsAllocateMemoryWithTag(size_t size, ULONG tag) } VOID -OvsFreeMemoryWithTag(VOID *ptr, ULONG tag) +OvsFreeMemoryWithTag(VOID* ptr, ULONG tag) { ASSERT(ptr); NdisFreeMemoryWithTagPriority(gOvsExtDriverHandle, ptr, tag); } _Use_decl_annotations_ -VOID * +VOID* OvsAllocateMemory(size_t size) { return NdisAllocateMemoryWithTagPriority(gOvsExtDriverHandle, @@ -49,7 +49,7 @@ OvsAllocateMemory(size_t size) } _Use_decl_annotations_ -VOID * +VOID* OvsAllocateAlignedMemory(size_t size, UINT16 align) { ASSERT((align == 8) || (align == 16)); @@ -59,9 +59,9 @@ OvsAllocateAlignedMemory(size_t size, UINT16 align) * XXX: NdisAllocateMemory*() functions don't talk anything about * alignment. Hence using ExAllocatePool*(); */ - return (VOID *)ExAllocatePoolWithTagPriority(NonPagedPoolNx, size, - OVS_MEMORY_TAG, - NormalPoolPriority); + return (VOID*)ExAllocatePoolPriorityUninitialized(NonPagedPoolNx, size, + OVS_MEMORY_TAG, + NormalPoolPriority); } /* Invalid user input. */ @@ -69,14 +69,14 @@ OvsAllocateAlignedMemory(size_t size, UINT16 align) } VOID -OvsFreeMemory(VOID *ptr) +OvsFreeMemory(VOID* ptr) { ASSERT(ptr); NdisFreeMemoryWithTagPriority(gOvsExtDriverHandle, ptr, OVS_MEMORY_TAG); } VOID -OvsFreeAlignedMemory(VOID *ptr) +OvsFreeAlignedMemory(VOID* ptr) { ASSERT(ptr); ExFreePoolWithTag(ptr, OVS_MEMORY_TAG); @@ -117,12 +117,12 @@ OvsCompareString(PVOID string1, PVOID string2) return RtlEqualString(&str1, &str2, FALSE); } -VOID * +VOID* OvsAllocateMemoryPerCpu(size_t size, - size_t count, - ULONG tag) + size_t count, + ULONG tag) { - VOID *ptr = NULL; + VOID* ptr = NULL; ASSERT(KeQueryActiveGroupCount() == 1); @@ -163,19 +163,19 @@ OvsPerCpuDataCleanup() } NTSTATUS -OvsIpv6StringToAddress(const char* ip6String, struct in6_addr *ipv6Addr) +OvsIpv6StringToAddress(const char* ip6String, struct in6_addr* ipv6Addr) { NTSTATUS status = STATUS_SUCCESS; - char *terminator = NULL; + char* terminator = NULL; status = RtlIpv6StringToAddressA(ip6String, &terminator, ipv6Addr); return status; } -char * +char* OvsIpv6AddressToString(struct in6_addr ipv6Addr, char* ip6String) { - char *returnedIpv6Str = NULL; + char* returnedIpv6Str = NULL; returnedIpv6Str = RtlIpv6AddressToStringA((&ipv6Addr), ip6String); return returnedIpv6Str; diff --git a/datapath-windows/ovsext/ovsext.inf b/datapath-windows/ovsext/ovsext.inf index e68b94a363f..bca8018a89f 100644 --- a/datapath-windows/ovsext/ovsext.inf +++ b/datapath-windows/ovsext/ovsext.inf @@ -1,5 +1,5 @@ ; -; Copyright (c) VMware. All Rights Reserved. +; Copyright (c) dbosoft GmbH. All Rights Reserved. ; [version] @@ -7,20 +7,20 @@ Signature = "$Windows NT$" Class = NetService ClassGUID = {4D36E974-E325-11CE-BFC1-08002BE10318} Provider = %OVS% -CatalogFile = ovsext.cat +CatalogFile = DBO_OVSE.cat DriverVer = 10/10/2013,1.0 [Manufacturer] %OVS%=OVS,NTx86,NTia64,NTamd64 [OVS.NTx86] -%OVSExt_Desc%=Install, OVSExt +%DBO_OVSE_Desc%=Install, DBO_OVSE [OVS.NTia64] -%OVSExt_Desc%=Install, OVSExt +%DBO_OVSE_Desc%=Install, DBO_OVSE [OVS.NTamd64] -%OVSExt_Desc%=Install, OVSExt +%DBO_OVSE_Desc%=Install, DBO_OVSE ;------------------------------------------------------------------------- ; Installation Section @@ -28,30 +28,30 @@ DriverVer = 10/10/2013,1.0 [Install] AddReg=Inst_Ndi Characteristics=0x40000 -NetCfgInstanceId="{583CC151-73EC-4A6A-8B47-578297AD7623}" -Copyfiles = OVSExt.copyfiles.sys +NetCfgInstanceId="{63E968D9-754E-4704-A5CE-6E3BF7DDF59B}" +Copyfiles = DBO_OVSE.copyfiles.sys [SourceDisksNames] -1=%OVSExt_Desc%,"",, +1=%DBO_OVSE_Desc%,"",, [SourceDisksFiles] -OVSExt.sys=1 +DBO_OVSE.sys=1 [DestinationDirs] DefaultDestDir=12 -OVSExt.copyfiles.sys=12 +DBO_OVSE.copyfiles.sys=12 -[OVSExt.copyfiles.sys] -OVSExt.sys,,,2 +[DBO_OVSE.copyfiles.sys] +DBO_OVSE.sys,,,2 ;------------------------------------------------------------------------- ; Ndi installation support ;------------------------------------------------------------------------- [Inst_Ndi] -HKR, Ndi,Service,,"OVSExt" -HKR, Ndi,CoServices,0x00010000,"OVSExt" -HKR, Ndi,HelpText,,%OVSExt_HelpText% +HKR, Ndi,Service,,"DBO_OVSE" +HKR, Ndi,CoServices,0x00010000,"DBO_OVSE" +HKR, Ndi,HelpText,,%DBO_OVSE_HelpText% HKR, Ndi,FilterClass,,"ms_switch_forward" HKR, Ndi,FilterType,0x00010001,0x00000002 HKR, Ndi\Interfaces,UpperRange,,"noupper" @@ -64,21 +64,21 @@ HKR, Ndi,FilterRunType, 0x00010001, 2 ; optional ; write an enent log ;------------------------------------------------------------------------- [Install.Services] -AddService=OVSExt,,OVSExt_Service_Inst;, common.EventLog +AddService=DBO_OVSE,,DBO_OVSE_Service_Inst;, common.EventLog -[OVSExt_Service_Inst] -DisplayName = %OVSExt_Desc% +[DBO_OVSE_Service_Inst] +DisplayName = %DBO_OVSE_Desc% ServiceType = 1 ;SERVICE_KERNEL_DRIVER StartType = 1 ;SERVICE_SYSTEM_START ErrorControl = 1 ;SERVICE_ERROR_NORMAL -ServiceBinary = %12%\OVSExt.sys +ServiceBinary = %12%\DBO_OVSE.sys LoadOrderGroup = NDIS -Description = %OVSExt_Desc% +Description = %DBO_OVSE_Desc% [Install.Remove.Services] -DelService=OVSExt,0x200 +DelService=DBO_OVSE,0x200 [Strings] -OVS = "The Linux Foundation (R)" -OVSExt_Desc = "Open vSwitch Extension" -OVSExt_HelpText = "Open vSwitch forwarding switch extension" +OVS = "dbosoft GmbH" +DBO_OVSE_Desc = "dbosoft Open vSwitch Extension" +DBO_OVSE_HelpText = "Open vSwitch forwarding switch extension" diff --git a/datapath-windows/ovsext/ovsext.vcxproj b/datapath-windows/ovsext/ovsext.vcxproj index 8ee56aa000b..cf643f2f2a7 100644 --- a/datapath-windows/ovsext/ovsext.vcxproj +++ b/datapath-windows/ovsext/ovsext.vcxproj @@ -54,7 +54,7 @@ {63FE215D-98BE-4440-8081-C6160EFB80FA} $(MSBuildProjectName) - + WindowsV6.3 True @@ -68,15 +68,14 @@ WindowsKernelModeDriver$(PlatformToolsetVer) - - + Windows10 True 10.0 WindowsKernelModeDriver$(PlatformToolsetVer) Desktop - + Windows10 True 10.0 WindowsKernelModeDriver$(PlatformToolsetVer) @@ -101,12 +100,12 @@ WindowsKernelModeDriver$(PlatformToolsetVer) - - + Windows10 False 10.0 WindowsKernelModeDriver$(PlatformToolsetVer) Desktop + <_NT_TARGET_VERSION>0x0A00 Windows8 @@ -190,7 +189,7 @@ - OVSExt + DBO_OVSE true @@ -456,4 +455,4 @@ - + \ No newline at end of file diff --git a/include/openvswitch/json.h b/include/openvswitch/json.h index 55544076084..d9362567345 100644 --- a/include/openvswitch/json.h +++ b/include/openvswitch/json.h @@ -111,13 +111,13 @@ double json_real(const struct json *); int64_t json_integer(const struct json *); struct json *json_deep_clone(const struct json *); -static inline struct json *json_clone(const struct json *); +static struct json *json_clone(const struct json *); struct json *json_nullable_clone(const struct json *); -static inline void json_destroy(struct json *); +static void json_destroy(struct json *); size_t json_hash(const struct json *, size_t basis); bool json_equal(const struct json *, const struct json *); - + /* Parsing JSON. */ enum { JSPF_TRAILER = 1 << 0 /* Check for garbage following input. */ @@ -133,7 +133,7 @@ struct json *json_from_string(const char *string); struct json *json_from_serialized_object(const struct json *); struct json *json_from_file(const char *file_name); struct json *json_from_stream(FILE *stream); - + /* Serializing JSON. */ enum { @@ -142,12 +142,12 @@ enum { }; char *json_to_string(const struct json *, int flags); void json_to_ds(const struct json *, int flags, struct ds *); - + /* JSON string formatting operations. */ bool json_string_unescape(const char *in, size_t in_len, char **outp); void json_string_escape(const char *in, struct ds *out); - + /* Inline functions. */ /* Returns 'json', with the reference count incremented. */ diff --git a/lib/wmi.c b/lib/wmi.c index 44c1d75e9ab..8416e4ced27 100644 --- a/lib/wmi.c +++ b/lib/wmi.c @@ -725,7 +725,7 @@ create_wmi_port(char *name) { L"SELECT * " L"FROM Msvm_EthernetSwitchExtension " L"WHERE " - L"ElementName=\"Open vSwitch Extension\" " + L"ElementName=\"dbosoft Open vSwitch Extension\" " L"AND EnabledState=2 " L"AND HealthState=5", WBEM_FLAG_FORWARD_ONLY | @@ -739,7 +739,7 @@ create_wmi_port(char *name) { } if (!get_first_element(penumerate, &pcls_obj)) { - VLOG_WARN("Open vSwitch Extension is not enabled on any switch"); + VLOG_WARN("dbosoft Open vSwitch Extension is not enabled on any switch"); retval = false; goto error; } diff --git a/m4/ax_check_openssl.m4 b/m4/ax_check_openssl.m4 index 281d4dc65eb..1433a33ce96 100644 --- a/m4/ax_check_openssl.m4 +++ b/m4/ax_check_openssl.m4 @@ -81,7 +81,7 @@ AC_DEFUN([AX_CHECK_OPENSSL], [ SSL_INCLUDES="-I$ssldir/include" SSL_LDFLAGS="-L$ssldir/lib" if test "$WIN32" = "yes"; then - SSL_LIBS="-lssleay32 -llibeay32" + SSL_LIBS="-llibcrypto -llibssl" SSL_DIR=/$(echo ${ssldir} | ${SED} -e 's/://') else SSL_LIBS="-lssl -lcrypto"