Blame libnm-core/nm-setting-dcb.h

Packit Service 87a54e
/* SPDX-License-Identifier: LGPL-2.1-or-later */
Packit 5756e2
/*
Packit 5756e2
 * Copyright (C) 2013 Red Hat, Inc.
Packit 5756e2
 */
Packit 5756e2
Packit 5756e2
#ifndef __NM_SETTING_DCB_H__
Packit 5756e2
#define __NM_SETTING_DCB_H__
Packit 5756e2
Packit Service a1bd4f
#if !defined(__NETWORKMANAGER_H_INSIDE__) && !defined(NETWORKMANAGER_COMPILATION)
Packit Service a1bd4f
    #error "Only <NetworkManager.h> can be included directly."
Packit 5756e2
#endif
Packit 5756e2
Packit 5756e2
#include "nm-setting.h"
Packit 5756e2
Packit 5756e2
G_BEGIN_DECLS
Packit 5756e2
Packit Service a1bd4f
#define NM_TYPE_SETTING_DCB (nm_setting_dcb_get_type())
Packit Service a1bd4f
#define NM_SETTING_DCB(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), NM_TYPE_SETTING_DCB, NMSettingDcb))
Packit Service a1bd4f
#define NM_SETTING_DCB_CLASS(klass) \
Packit Service a1bd4f
    (G_TYPE_CHECK_CLASS_CAST((klass), NM_TYPE_SETTING_DCB, NMSettingDcbClass))
Packit Service a1bd4f
#define NM_IS_SETTING_DCB(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj), NM_TYPE_SETTING_DCB))
Packit Service a1bd4f
#define NM_IS_SETTING_DCB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), NM_TYPE_SETTING_DCB))
Packit Service a1bd4f
#define NM_SETTING_DCB_GET_CLASS(obj) \
Packit Service a1bd4f
    (G_TYPE_INSTANCE_GET_CLASS((obj), NM_TYPE_SETTING_DCB, NMSettingDcbClass))
Packit 5756e2
Packit 5756e2
#define NM_SETTING_DCB_SETTING_NAME "dcb"
Packit 5756e2
Packit 5756e2
/**
Packit 5756e2
 * NMSettingDcbFlags:
Packit 5756e2
 * @NM_SETTING_DCB_FLAG_NONE: no flag
Packit 5756e2
 * @NM_SETTING_DCB_FLAG_ENABLE: the feature is enabled
Packit 5756e2
 * @NM_SETTING_DCB_FLAG_ADVERTISE: the feature is advertised
Packit 5756e2
 * @NM_SETTING_DCB_FLAG_WILLING: the feature is willing to change based on
Packit 5756e2
 * peer configuration advertisements
Packit 5756e2
 *
Packit 5756e2
 * DCB feature flags.
Packit 5756e2
 **/
Packit 5756e2
typedef enum { /*< flags >*/
Packit Service a1bd4f
               NM_SETTING_DCB_FLAG_NONE      = 0x00000000,
Packit Service a1bd4f
               NM_SETTING_DCB_FLAG_ENABLE    = 0x00000001,
Packit Service a1bd4f
               NM_SETTING_DCB_FLAG_ADVERTISE = 0x00000002,
Packit Service a1bd4f
               NM_SETTING_DCB_FLAG_WILLING   = 0x00000004
Packit 5756e2
} NMSettingDcbFlags;
Packit 5756e2
Packit 5756e2
/**
Packit 5756e2
 * NM_SETTING_DCB_FCOE_MODE_FABRIC:
Packit 5756e2
 *
Packit 5756e2
 * Indicates that the FCoE controller should use "fabric" mode (default)
Packit 5756e2
 */
Packit Service a1bd4f
#define NM_SETTING_DCB_FCOE_MODE_FABRIC "fabric"
Packit 5756e2
Packit 5756e2
/**
Packit 5756e2
 * NM_SETTING_DCB_FCOE_MODE_VN2VN:
Packit 5756e2
 *
Packit 5756e2
 * Indicates that the FCoE controller should use "VN2VN" mode.
Packit 5756e2
 */
Packit Service a1bd4f
#define NM_SETTING_DCB_FCOE_MODE_VN2VN "vn2vn"
Packit 5756e2
Packit 5756e2
/* Properties */
Packit Service a1bd4f
#define NM_SETTING_DCB_APP_FCOE_FLAGS    "app-fcoe-flags"
Packit Service a1bd4f
#define NM_SETTING_DCB_APP_FCOE_PRIORITY "app-fcoe-priority"
Packit Service a1bd4f
#define NM_SETTING_DCB_APP_FCOE_MODE     "app-fcoe-mode"
Packit 5756e2
Packit Service a1bd4f
#define NM_SETTING_DCB_APP_ISCSI_FLAGS    "app-iscsi-flags"
Packit Service a1bd4f
#define NM_SETTING_DCB_APP_ISCSI_PRIORITY "app-iscsi-priority"
Packit 5756e2
Packit Service a1bd4f
#define NM_SETTING_DCB_APP_FIP_FLAGS    "app-fip-flags"
Packit Service a1bd4f
#define NM_SETTING_DCB_APP_FIP_PRIORITY "app-fip-priority"
Packit 5756e2
Packit Service a1bd4f
#define NM_SETTING_DCB_PRIORITY_FLOW_CONTROL_FLAGS "priority-flow-control-flags"
Packit Service a1bd4f
#define NM_SETTING_DCB_PRIORITY_FLOW_CONTROL       "priority-flow-control"
Packit 5756e2
Packit 5756e2
#define NM_SETTING_DCB_PRIORITY_GROUP_FLAGS      "priority-group-flags"
Packit 5756e2
#define NM_SETTING_DCB_PRIORITY_GROUP_ID         "priority-group-id"
Packit 5756e2
#define NM_SETTING_DCB_PRIORITY_GROUP_BANDWIDTH  "priority-group-bandwidth"
Packit 5756e2
#define NM_SETTING_DCB_PRIORITY_BANDWIDTH        "priority-bandwidth"
Packit 5756e2
#define NM_SETTING_DCB_PRIORITY_STRICT_BANDWIDTH "priority-strict-bandwidth"
Packit 5756e2
#define NM_SETTING_DCB_PRIORITY_TRAFFIC_CLASS    "priority-traffic-class"
Packit 5756e2
Packit 5756e2
/**
Packit 5756e2
 * NMSettingDcb:
Packit 5756e2
 *
Packit 5756e2
 * Data Center Bridging Settings
Packit 5756e2
 */
Packit 5756e2
struct _NMSettingDcb {
Packit Service a1bd4f
    NMSetting parent;
Packit 5756e2
};
Packit 5756e2
Packit 5756e2
typedef struct {
Packit Service a1bd4f
    NMSettingClass parent;
Packit 5756e2
Packit Service a1bd4f
    /*< private >*/
Packit Service a1bd4f
    gpointer padding[4];
Packit 5756e2
} NMSettingDcbClass;
Packit 5756e2
Packit Service a1bd4f
GType nm_setting_dcb_get_type(void);
Packit 5756e2
Packit Service a1bd4f
NMSetting *nm_setting_dcb_new(void);
Packit 5756e2
Packit Service a1bd4f
NMSettingDcbFlags nm_setting_dcb_get_app_fcoe_flags(NMSettingDcb *setting);
Packit Service a1bd4f
int               nm_setting_dcb_get_app_fcoe_priority(NMSettingDcb *setting);
Packit Service a1bd4f
const char *      nm_setting_dcb_get_app_fcoe_mode(NMSettingDcb *setting);
Packit 5756e2
Packit Service a1bd4f
NMSettingDcbFlags nm_setting_dcb_get_app_iscsi_flags(NMSettingDcb *setting);
Packit Service a1bd4f
int               nm_setting_dcb_get_app_iscsi_priority(NMSettingDcb *setting);
Packit 5756e2
Packit Service a1bd4f
NMSettingDcbFlags nm_setting_dcb_get_app_fip_flags(NMSettingDcb *setting);
Packit Service a1bd4f
int               nm_setting_dcb_get_app_fip_priority(NMSettingDcb *setting);
Packit 5756e2
Packit 5756e2
/* Priority Flow Control */
Packit Service a1bd4f
NMSettingDcbFlags nm_setting_dcb_get_priority_flow_control_flags(NMSettingDcb *setting);
Packit Service a1bd4f
gboolean nm_setting_dcb_get_priority_flow_control(NMSettingDcb *setting, guint user_priority);
Packit Service a1bd4f
void     nm_setting_dcb_set_priority_flow_control(NMSettingDcb *setting,
Packit Service a1bd4f
                                                  guint         user_priority,
Packit Service a1bd4f
                                                  gboolean      enabled);
Packit 5756e2
Packit 5756e2
/* Priority Groups */
Packit Service a1bd4f
NMSettingDcbFlags nm_setting_dcb_get_priority_group_flags(NMSettingDcb *setting);
Packit Service a1bd4f
Packit Service a1bd4f
guint nm_setting_dcb_get_priority_group_id(NMSettingDcb *setting, guint user_priority);
Packit Service a1bd4f
void
Packit Service a1bd4f
nm_setting_dcb_set_priority_group_id(NMSettingDcb *setting, guint user_priority, guint group_id);
Packit Service a1bd4f
Packit Service a1bd4f
guint nm_setting_dcb_get_priority_group_bandwidth(NMSettingDcb *setting, guint group_id);
Packit Service a1bd4f
void  nm_setting_dcb_set_priority_group_bandwidth(NMSettingDcb *setting,
Packit Service a1bd4f
                                                  guint         group_id,
Packit Service a1bd4f
                                                  guint         bandwidth_percent);
Packit Service a1bd4f
Packit Service a1bd4f
guint nm_setting_dcb_get_priority_bandwidth(NMSettingDcb *setting, guint user_priority);
Packit Service a1bd4f
void  nm_setting_dcb_set_priority_bandwidth(NMSettingDcb *setting,
Packit Service a1bd4f
                                            guint         user_priority,
Packit Service a1bd4f
                                            guint         bandwidth_percent);
Packit Service a1bd4f
Packit Service a1bd4f
gboolean nm_setting_dcb_get_priority_strict_bandwidth(NMSettingDcb *setting, guint user_priority);
Packit Service a1bd4f
void     nm_setting_dcb_set_priority_strict_bandwidth(NMSettingDcb *setting,
Packit Service a1bd4f
                                                      guint         user_priority,
Packit Service a1bd4f
                                                      gboolean      strict);
Packit Service a1bd4f
Packit Service a1bd4f
guint nm_setting_dcb_get_priority_traffic_class(NMSettingDcb *setting, guint user_priority);
Packit Service a1bd4f
void  nm_setting_dcb_set_priority_traffic_class(NMSettingDcb *setting,
Packit Service a1bd4f
                                                guint         user_priority,
Packit Service a1bd4f
                                                guint         traffic_class);
Packit 5756e2
Packit 5756e2
G_END_DECLS
Packit 5756e2
Packit 5756e2
#endif /* __NM_SETTING_DCB_H__ */