Its here:
#define OVS_NODES \
OVS_NODE(open_vswitch, "open_vswitch") \
OVS_NODE(bridge, "bridge") \
OVS_NODE(port, "port") \
OVS_NODE(interface, "interface") \
OVS_NODE(qos, "qos") \
OVS_NODE(queue, "queue") \
OVS_NODE(flow_sample_collector_set, "flow_sample_collector_set")
OVS_NODE(interface, "interface") \
But maybe there is a better option to avoid that issue...
________________________________
Von: Dumitru Ceara <[email protected]>
Gesendet: Donnerstag, 6. März 2025 11:27
An: Frank Wagner <[email protected]>; [email protected]
<[email protected]>
Betreff: Re: [ovs-dev] [PATCH ovn 5/10] controller: Fix conflict with windows
macro.
On 3/1/25 2:55 PM, Frank Wagner wrote:
> Windows declares a macro interface in its headers which conflicts with
> OVS_NODE. This patch undefines the macro until the end of the file.
>
>
> Signed-off-by: Frank Wagner <[email protected]>
>
> ---
Hi Frank,
Thanks for the patch!
> controller/ovn-controller.c | 14 +++++++++++++-
> 1 file changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/controller/ovn-controller.c b/controller/ovn-controller.c
> index d8d1f363e..73a7140fe 100644
> --- a/controller/ovn-controller.c
> +++ b/controller/ovn-controller.c
> @@ -132,6 +132,13 @@ static unixctl_cb_func debug_ignore_startup_delay;
> #define OVS_NB_CFG_TS_NAME "ovn-nb-cfg-ts"
> #define OVS_STARTUP_TS_NAME "ovn-startup-ts"
>
> +/* macro interface is already defined in Windows headers,
> + undef until end of file for OVS_NODE */
> +#ifdef _WIN32
> + #pragma push_macro("interface")
> + #undef interface
> +#endif
> +
I'm confused, where do we use "interface" as a standalone name in
ovn-controller? Maybe I missed it but I didn't see any case.
I'd like to avoid adding "#ifdef _WIN32" in various places if we can.
> struct br_int_remote {
> char *target;
> int probe_interval;
> @@ -3709,7 +3716,7 @@ struct ed_type_lflow_output {
> /* meter ids for QoS */
> struct ovn_extend_table meter_table;
> /* lflow <-> resource cross reference */
> - struct objdep_mgr lflow_deps_mgr;;
> + struct objdep_mgr lflow_deps_mgr;
While that's a good fix, it should probably be a separate patch.
> /* conjunciton ID usage information of lflows */
> struct conj_ids conj_ids;
>
> @@ -6994,3 +7001,8 @@ debug_ignore_startup_delay(struct unixctl_conn *conn,
> int argc OVS_UNUSED,
> daemon_started_recently_ignore();
> unixctl_command_reply(conn, NULL);
> }
> +
> +/* restore macro interface from Windows headers*/
> +#ifdef _WIN32
> + #pragma pop_macro("interface")
> +#endif
> \ No newline at end of file
No newline at end of file. :)
Thanks,
Dumitru
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev