/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* Copyright (C) 2017 Red Hat, Inc.
*/
#ifndef __NETWORKMANAGER_OVSDB_H__
#define __NETWORKMANAGER_OVSDB_H__
#define NM_TYPE_OVSDB (nm_ovsdb_get_type())
#define NM_OVSDB(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), NM_TYPE_OVSDB, NMOvsdb))
#define NM_OVSDB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), NM_TYPE_OVSDB, NMOvsdbClass))
#define NM_IS_OVSDB(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NM_TYPE_OVSDB))
#define NM_IS_OVSDB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NM_TYPE_OVSDB))
#define NM_OVSDB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), NM_TYPE_OVSDB, NMOvsdbClass))
#define NM_OVSDB_DEVICE_ADDED "device-added"
#define NM_OVSDB_DEVICE_REMOVED "device-removed"
#define NM_OVSDB_INTERFACE_FAILED "interface-failed"
typedef struct _NMOvsdb NMOvsdb;
typedef struct _NMOvsdbClass NMOvsdbClass;
typedef void (*NMOvsdbCallback)(GError *error, gpointer user_data);
NMOvsdb *nm_ovsdb_get(void);
GType nm_ovsdb_get_type(void);
void nm_ovsdb_add_interface(NMOvsdb * self,
NMConnection * bridge,
NMConnection * port,
NMConnection * interface,
NMDevice * bridge_device,
NMDevice * interface_device,
NMOvsdbCallback callback,
gpointer user_data);
void nm_ovsdb_del_interface(NMOvsdb * self,
const char * ifname,
NMOvsdbCallback callback,
gpointer user_data);
void nm_ovsdb_set_interface_mtu(NMOvsdb * self,
const char * ifname,
guint32 mtu,
NMOvsdbCallback callback,
gpointer user_data);
struct _NMSettingOvsExternalIDs;
void nm_ovsdb_set_external_ids(NMOvsdb * self,
NMDeviceType device_type,
const char * ifname,
const char * connection_uuid,
struct _NMSettingOvsExternalIDs *s_exid_old,
struct _NMSettingOvsExternalIDs *s_exid_new);
#endif /* __NETWORKMANAGER_OVSDB_H__ */