On 6 May 2026, at 0:52, Ilya Maximets wrote:
> Windows support was deprecated in 3.7, it's time to remove it.
>
> We already removed the installer and the datapath implementation.
> Now removing all the code related to talking to the Windows datapath,
> building on Windows, using MSVC as a compiler, and the final bits of
> documentation related to Windows-specific behavior of certain features.
>
> It is possible to split this change into smaller parts, but it will
> be a non-trivial amount of work to keep the patches in a working state
> in the process. So, just removing everything at once. It would also
> be easier to re-apply in case someone wants to resurrect this code or
> maintain the Windows support in their own fork.
>
> A couple mentions of MSVC quirks are left in public headers as the
> code is good enough and there is no real need to change the way it
> is written at the moment.
>
> Signed-off-by: Ilya Maximets <[email protected]>
This took some time to review, so it was probably also hard to make all these
changes ;)
See some comments inline, but also some general ones here:
- faq/contributing.rst still has the below paragraph:
The Windows datapath kernel module support, on the other hand, is
maintained within the OVS tree, so patches for that can go directly to
ovs-dev.
- /faq/general.rst still has the following Windows reference:
We've seen
Open vSwitch ported to a number of different platforms, including FreeBSD,
Windows, and even non-POSIX embedded systems.
- The below comments still reference to windows, but I guess it should be fine:
- vswitchd/bridge.c:2125; "only necessary on Windows"
- include/openvswitch/util.h:146,285; MSVC variadic/init macro comments
- include/openvswitch/ofp-errors.h:44; "and Windows"
- lib/timeval.c:775; Visual Studio 2013 crash comment
//Eelco
[...]
> diff --git a/lib/dpif-netlink.c b/lib/dpif-netlink.c
> index f22a87934..65a9c3be5 100644
> --- a/lib/dpif-netlink.c
> +++ b/lib/dpif-netlink.c
[...]
> @@ -3555,8 +3249,6 @@ dpif_netlink_ct_timeout_policy_dump_done(struct dpif
> *dpif OVS_UNUSED,
> free(dump_state);
> return err;
> }
> -#endif
> -
The diff does not show it, but we should keep one additional
newline after the FF.
[...]
> diff --git a/lib/lockfile.c b/lib/lockfile.c
> index 42782d29e..6ecbb307e 100644
> --- a/lib/lockfile.c
> +++ b/lib/lockfile.c
In the struct below, there is still 'HANDLE lock_handle', should this be
removed?
struct lockfile {
struct hmap_node hmap_node;
char *name;
dev_t device;
ino_t inode;
int fd;
HANDLE lock_handle;
};
[...]
> diff --git a/lib/poll-loop.c b/lib/poll-loop.c
> index 70fabeb8a..cbeb6990b 100644
> --- a/lib/poll-loop.c
> +++ b/lib/poll-loop.c
The below structure and some of the other code in poll-loop.c still have
'wevent' references, I guess they all need to be removed.
struct poll_node {
struct hmap_node hmap_node;
struct pollfd pollfd; /* Events to pass to time_poll(). */
HANDLE wevent; /* Events for WaitForMultipleObjects(). */
const char *where; /* Where poll_node was created. */
};
[...]
> diff --git a/ovsdb/log.c b/ovsdb/log.c
> index 86d6bdc24..6d75427cf 100644
> --- a/ovsdb/log.c
> +++ b/ovsdb/log.c
>
[...]
> @@ -882,20 +822,12 @@ void
> ovsdb_log_replace_abort(struct ovsdb_log *new)
> {
> if (new) {
> - /* Unlink the new file, but only after we close it (because Windows
> - * does not allow removing an open file). */
> - char *name = xstrdup(new->name);
> + /* Unlink and close the new file. */
> + unlink(new->name);
> ovsdb_log_close(new);
> - unlink(name);
> - free(name);
> }
> }
>
> -void
> -ovsdb_log_disable_renaming_open_files(void)
This function's declaration still exists in ./ovsdb/log.h.
> -{
> - rename_open_files = false;
> -}
>
[...]
> diff --git a/utilities/checkpatch.py b/utilities/checkpatch.py
> index 9a10b78a9..2f7123586 100755
> --- a/utilities/checkpatch.py
> +++ b/utilities/checkpatch.py
> @@ -1059,7 +1059,7 @@ def ovs_checkpatch_parse(text, filename, author=None,
> committer=None):
> continue
>
> # Skip files which have /datapath in them, since they are
> - # linux or windows coding standards
> + # linux coding standards
Should we add a dot (.) while we are at it?
> if current_file.startswith('datapath'):
> continue
> if current_file.startswith('include/linux'):
[...]
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev