1/* SPDX-License-Identifier: LGPL-2.1-or-later */
2/*
3 * Copyright (C) 2017 Red Hat, Inc.
4 */
5
6#ifndef __NM_SETTING_OVS_PORT_H__
7#define __NM_SETTING_OVS_PORT_H__
8
9#if !defined(__NETWORKMANAGER_H_INSIDE__) && !defined(NETWORKMANAGER_COMPILATION)
10#error "Only <NetworkManager.h> can be included directly."
11#endif
12
13#include "nm-setting.h"
14
15G_BEGIN_DECLS
16
17#define NM_TYPE_SETTING_OVS_PORT (nm_setting_ovs_port_get_type())
18#define NM_SETTING_OVS_PORT(obj) \
19 (G_TYPE_CHECK_INSTANCE_CAST((obj), NM_TYPE_SETTING_OVS_PORT, NMSettingOvsPort))
20#define NM_SETTING_OVS_PORT_CLASS(klass) \
21 (G_TYPE_CHECK_CLASS_CAST((klass), NM_TYPE_SETTING_OVS_PORTCONFIG, NMSettingOvsPortClass))
22#define NM_IS_SETTING_OVS_PORT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), NM_TYPE_SETTING_OVS_PORT))
23#define NM_IS_SETTING_OVS_PORT_CLASS(klass) \
24 (G_TYPE_CHECK_CLASS_TYPE((klass), NM_TYPE_SETTING_OVS_PORT))
25#define NM_SETTING_OVS_PORT_GET_CLASS(obj) \
26 (G_TYPE_INSTANCE_GET_CLASS((obj), NM_TYPE_SETTING_OVS_PORT, NMSettingOvsPortClass))
27
28#define NM_SETTING_OVS_PORT_SETTING_NAME "ovs-port"
29
30#define NM_SETTING_OVS_PORT_VLAN_MODE "vlan-mode"
31#define NM_SETTING_OVS_PORT_TAG "tag"
32#define NM_SETTING_OVS_PORT_TRUNKS "trunks"
33#define NM_SETTING_OVS_PORT_LACP "lacp"
34#define NM_SETTING_OVS_PORT_BOND_MODE "bond-mode"
35#define NM_SETTING_OVS_PORT_BOND_UPDELAY "bond-updelay"
36#define NM_SETTING_OVS_PORT_BOND_DOWNDELAY "bond-downdelay"
37
38typedef struct _NMSettingOvsPortClass NMSettingOvsPortClass;
39
40NM_AVAILABLE_IN_1_10
41GType nm_setting_ovs_port_get_type(void);
42NM_AVAILABLE_IN_1_10
43NMSetting *nm_setting_ovs_port_new(void);
44
45NM_AVAILABLE_IN_1_10
46const char *nm_setting_ovs_port_get_vlan_mode(NMSettingOvsPort *self);
47NM_AVAILABLE_IN_1_10
48guint nm_setting_ovs_port_get_tag(NMSettingOvsPort *self);
49NM_AVAILABLE_IN_1_10
50const char *nm_setting_ovs_port_get_lacp(NMSettingOvsPort *self);
51NM_AVAILABLE_IN_1_10
52const char *nm_setting_ovs_port_get_bond_mode(NMSettingOvsPort *self);
53NM_AVAILABLE_IN_1_10
54guint nm_setting_ovs_port_get_bond_updelay(NMSettingOvsPort *self);
55NM_AVAILABLE_IN_1_10
56guint nm_setting_ovs_port_get_bond_downdelay(NMSettingOvsPort *self);
57
58NM_AVAILABLE_IN_1_42
59void nm_setting_ovs_port_add_trunk(NMSettingOvsPort *setting, NMRange *trunk);
60NM_AVAILABLE_IN_1_42
61guint nm_setting_ovs_port_get_num_trunks(NMSettingOvsPort *setting);
62NM_AVAILABLE_IN_1_42
63NMRange *nm_setting_ovs_port_get_trunk(NMSettingOvsPort *setting, guint idx);
64NM_AVAILABLE_IN_1_42
65void nm_setting_ovs_port_remove_trunk(NMSettingOvsPort *setting, guint idx);
66NM_AVAILABLE_IN_1_42
67gboolean
68nm_setting_ovs_port_remove_trunk_by_value(NMSettingOvsPort *setting, guint start, guint end);
69NM_AVAILABLE_IN_1_42
70void nm_setting_ovs_port_clear_trunks(NMSettingOvsPort *setting);
71
72G_END_DECLS
73
74#endif /* __NM_SETTING_OVS_PORT_H__ */
75

source code of include/libnm/nm-setting-ovs-port.h