## NMSettingInfiniband NMSettingInfiniband — Describes connection properties for IP-over-InfiniBand networks |

## Synopsis

    #include <nm-setting-infiniband.h>

    #define             NM_SETTING_INFINIBAND_SETTING_NAME
    enum                NMSettingInfinibandError;
    #define             NM_SETTING_INFINIBAND_ERROR
    GQuark              nm_setting_infiniband_error_quark   (void);
    #define             NM_SETTING_INFINIBAND_MAC_ADDRESS
    #define             NM_SETTING_INFINIBAND_MTU
    #define             NM_SETTING_INFINIBAND_TRANSPORT_MODE
    #define             NM_SETTING_INFINIBAND_P_KEY
    #define             NM_SETTING_INFINIBAND_PARENT
                        NMSettingInfiniband;
                        NMSettingInfinibandClass;
    NMSetting *         nm_setting_infiniband_new           (void);
    const GByteArray *  nm_setting_infiniband_get_mac_address
                                                            (NMSettingInfiniband *setting);
    guint32             nm_setting_infiniband_get_mtu       (NMSettingInfiniband *setting);
    const char *        nm_setting_infiniband_get_transport_mode
                                                            (NMSettingInfiniband *setting);
    int                 nm_setting_infiniband_get_p_key     (NMSettingInfiniband *setting);
    const char *        nm_setting_infiniband_get_parent    (NMSettingInfiniband *setting);

## Object Hierarchy

      GEnum
       +----NMSettingInfinibandError

      GObject
       +----NMSetting
             +----NMSettingInfiniband

## Properties

      "mac-address"              GArray_guchar_*       : Read / Write
      "mtu"                      guint                 : Read / Write / Construct
      "p-key"                    gint                  : Read / Write / Construct
      "parent"                   gchar*                : Read / Write / Construct
      "transport-mode"           gchar*                : Read / Write / Construct

## Description

The NMSettingInfiniband object is a NMSetting subclass that describes properties necessary for connection to IP-over-InfiniBand networks.

## Details

### NM_SETTING_INFINIBAND_SETTING_NAME

    #define NM_SETTING_INFINIBAND_SETTING_NAME "infiniband"

### enum NMSettingInfinibandError

    typedef enum {
    	NM_SETTING_INFINIBAND_ERROR_UNKNOWN = 0,      /*< nick=UnknownError >*/
    	NM_SETTING_INFINIBAND_ERROR_INVALID_PROPERTY, /*< nick=InvalidProperty >*/
    	NM_SETTING_INFINIBAND_ERROR_MISSING_PROPERTY  /*< nick=MissingProperty >*/
    } NMSettingInfinibandError;

`NM_SETTING_INFINIBAND_ERROR_UNKNOWN` | unknown or unclassified error
`NM_SETTING_INFINIBAND_ERROR_INVALID_PROPERTY` | the property was invalid
`NM_SETTING_INFINIBAND_ERROR_MISSING_PROPERTY` | the property was missing and is required

### NM_SETTING_INFINIBAND_ERROR

    #define NM_SETTING_INFINIBAND_ERROR nm_setting_infiniband_error_quark ()

### nm_setting_infiniband_error_quark ()

    GQuark              nm_setting_infiniband_error_quark   (void);

Registers an error quark for NMSettingInfiniband if necessary.

Returns : | the error quark used for NMSettingInfiniband errors.

### NM_SETTING_INFINIBAND_MAC_ADDRESS

    #define NM_SETTING_INFINIBAND_MAC_ADDRESS    "mac-address"

### NM_SETTING_INFINIBAND_MTU

    #define NM_SETTING_INFINIBAND_MTU            "mtu"

### NM_SETTING_INFINIBAND_TRANSPORT_MODE

    #define NM_SETTING_INFINIBAND_TRANSPORT_MODE "transport-mode"

### NM_SETTING_INFINIBAND_P_KEY

    #define NM_SETTING_INFINIBAND_P_KEY          "p-key"

### NM_SETTING_INFINIBAND_PARENT

    #define NM_SETTING_INFINIBAND_PARENT         "parent"

### NMSettingInfiniband

    typedef struct _NMSettingInfiniband NMSettingInfiniband;

### NMSettingInfinibandClass

    typedef struct {
    	NMSettingClass parent;

    	/* Padding for future expansion */
    	void (*_reserved1) (void);
    	void (*_reserved2) (void);
    	void (*_reserved3) (void);
    	void (*_reserved4) (void);
    } NMSettingInfinibandClass;

### nm_setting_infiniband_new ()

    NMSetting *         nm_setting_infiniband_new           (void);

Creates a new NMSettingInfiniband object with default values.

Returns : | the new empty NMSettingInfiniband object. [transfer full]

### nm_setting_infiniband_get_mac_address ()

    const GByteArray *  nm_setting_infiniband_get_mac_address
                                                            (NMSettingInfiniband *setting);

`setting` : | the NMSettingInfiniband
Returns : | the "mac-address" property of the setting

### nm_setting_infiniband_get_mtu ()

    guint32             nm_setting_infiniband_get_mtu       (NMSettingInfiniband *setting);

`setting` : | the NMSettingInfiniband
Returns : | the "mtu" property of the setting

### nm_setting_infiniband_get_transport_mode ()

    const char *        nm_setting_infiniband_get_transport_mode
                                                            (NMSettingInfiniband *setting);

Returns the transport mode for this device. Either 'datagram' or 'connected'.

`setting` : | the NMSettingInfiniband
Returns : | the IPoIB transport mode

### nm_setting_infiniband_get_p_key ()

    int                 nm_setting_infiniband_get_p_key     (NMSettingInfiniband *setting);

Returns the P_Key to use for this device. A value of -1 means to use the default P_Key (aka "the P_Key at index 0"). Otherwise it is a 16-bit unsigned integer.

`setting` : | the NMSettingInfiniband
Returns : | the IPoIB P_Key

### nm_setting_infiniband_get_parent ()

    const char *        nm_setting_infiniband_get_parent    (NMSettingInfiniband *setting);

Returns the parent interface name for this device, if set.

`setting` : | the NMSettingInfiniband
Returns : | the parent interface name

## Property Details

### The `"mac-address"` property

      "mac-address"              GArray_guchar_*       : Read / Write

If specified, this connection will only apply to the IPoIB device whose permanent MAC address matches. This property does not change the MAC address of the device (i.e. MAC spoofing).

### The `"mtu"` property

      "mtu"                      guint                 : Read / Write / Construct

If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames.

Default value: 0

### The `"p-key"` property

      "p-key"                    gint                  : Read / Write / Construct

The InfiniBand P_Key to use for this device. A value of -1 means to use the default P_Key (aka "the P_Key at index 0"). Otherwise it is a 16-bit unsigned integer, whose high bit is set if it is a "full membership" P_Key.

Allowed values: [-1,65535]

Default value: -1

### The `"parent"` property

      "parent"                   gchar*                : Read / Write / Construct

The interface name of the parent device of this device. Normally `NULL`, but if the "p_key" property is set, then you must specify the base device by setting either this property or "mac-address".

Default value: NULL

### The `"transport-mode"` property

      "transport-mode"           gchar*                : Read / Write / Construct

The IP-over-InfiniBand transport mode. Either "datagram" or "connected".

Default value: NULL