## NMSettingBond

NMSettingBond — Describes connection properties for bonds

## Synopsis

    #include <nm-setting-bond.h>

    #define             NM_SETTING_BOND_SETTING_NAME
    enum                NMSettingBondError;
    #define             NM_SETTING_BOND_ERROR
    GQuark              nm_setting_bond_error_quark         (void);
    #define             NM_SETTING_BOND_INTERFACE_NAME
    #define             NM_SETTING_BOND_OPTIONS
    #define             NM_SETTING_BOND_OPTION_MODE
    #define             NM_SETTING_BOND_OPTION_MIIMON
    #define             NM_SETTING_BOND_OPTION_DOWNDELAY
    #define             NM_SETTING_BOND_OPTION_UPDELAY
    #define             NM_SETTING_BOND_OPTION_ARP_INTERVAL
    #define             NM_SETTING_BOND_OPTION_ARP_IP_TARGET
                        NMSettingBond;
                        NMSettingBondClass;
    NMSetting *         nm_setting_bond_new                 (void);
    const char *        nm_setting_bond_get_interface_name  (NMSettingBond *setting);
    guint32             nm_setting_bond_get_num_options     (NMSettingBond *setting);
    gboolean            nm_setting_bond_get_option          (NMSettingBond *setting,
                                                             guint32 idx,
                                                             const char **out_name,
                                                             const char **out_value);
    const char *        nm_setting_bond_get_option_by_name  (NMSettingBond *setting,
                                                             const char *name);
    gboolean            nm_setting_bond_add_option          (NMSettingBond *setting,
                                                             const char *name,
                                                             const char *value);
    gboolean            nm_setting_bond_remove_option       (NMSettingBond *setting,
                                                             const char *name);
    const char **       nm_setting_bond_get_valid_options   (NMSettingBond *setting);
    const char *        nm_setting_bond_get_option_default  (NMSettingBond *setting,
                                                             const char *name);

## Object Hierarchy

      GEnum
       +----NMSettingBondError

      GObject
       +----NMSetting
             +----NMSettingBond

## Properties

      "interface-name"           gchar*                : Read / Write
      "options"                  GHashTable_gchararray+gchararray_*  : Read / Write

## Description

The NMSettingBond object is a NMSetting subclass that describes properties necessary for bond connections.

## Details

### NM_SETTING_BOND_SETTING_NAME

    #define NM_SETTING_BOND_SETTING_NAME "bond"

### enum NMSettingBondError

    typedef enum {
    	NM_SETTING_BOND_ERROR_UNKNOWN = 0,      /*< nick=UnknownError >*/
    	NM_SETTING_BOND_ERROR_INVALID_PROPERTY, /*< nick=InvalidProperty >*/
    	NM_SETTING_BOND_ERROR_MISSING_PROPERTY, /*< nick=MissingProperty >*/
    	NM_SETTING_BOND_ERROR_INVALID_OPTION,   /*< nick=InvalidOption >*/
    	NM_SETTING_BOND_ERROR_MISSING_OPTION,   /*< nick=MissingOption >*/
    } NMSettingBondError;

`NM_SETTING_BOND_ERROR_UNKNOWN` | unknown or unclassified error
`NM_SETTING_BOND_ERROR_INVALID_PROPERTY` | the property was invalid
`NM_SETTING_BOND_ERROR_MISSING_PROPERTY` | the property was missing and is required
`NM_SETTING_BOND_ERROR_INVALID_OPTION` |
`NM_SETTING_BOND_ERROR_MISSING_OPTION` |

### NM_SETTING_BOND_ERROR

    #define NM_SETTING_BOND_ERROR nm_setting_bond_error_quark ()

### nm_setting_bond_error_quark ()

    GQuark              nm_setting_bond_error_quark         (void);

Registers an error quark for NMSettingBond if necessary.

Returns : | the error quark used for NMSettingBond errors.

### NM_SETTING_BOND_INTERFACE_NAME

    #define NM_SETTING_BOND_INTERFACE_NAME "interface-name"

### NM_SETTING_BOND_OPTIONS

    #define NM_SETTING_BOND_OPTIONS "options"

### NM_SETTING_BOND_OPTION_MODE

    #define NM_SETTING_BOND_OPTION_MODE          "mode"

### NM_SETTING_BOND_OPTION_MIIMON

    #define NM_SETTING_BOND_OPTION_MIIMON        "miimon"

### NM_SETTING_BOND_OPTION_DOWNDELAY

    #define NM_SETTING_BOND_OPTION_DOWNDELAY     "downdelay"

### NM_SETTING_BOND_OPTION_UPDELAY

    #define NM_SETTING_BOND_OPTION_UPDELAY       "updelay"

### NM_SETTING_BOND_OPTION_ARP_INTERVAL

    #define NM_SETTING_BOND_OPTION_ARP_INTERVAL  "arp_interval"

### NM_SETTING_BOND_OPTION_ARP_IP_TARGET

    #define NM_SETTING_BOND_OPTION_ARP_IP_TARGET "arp_ip_target"

### NMSettingBond

    typedef struct _NMSettingBond NMSettingBond;

### NMSettingBondClass

    typedef struct {
    	NMSettingClass parent;

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

### nm_setting_bond_new ()

    NMSetting *         nm_setting_bond_new                 (void);

Creates a new NMSettingBond object with default values.

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

### nm_setting_bond_get_interface_name ()

    const char *        nm_setting_bond_get_interface_name  (NMSettingBond *setting);

`setting` : | the NMSettingBond
Returns : | the "interface-name" property of the setting

### nm_setting_bond_get_num_options ()

    guint32             nm_setting_bond_get_num_options     (NMSettingBond *setting);

Returns the number of options that should be set for this bond when it is activated. This can be used to retrieve each option individually using `nm_setting_bond_get_option()`.

`setting` : | the NMSettingBond
Returns : | the number of bonding options

### nm_setting_bond_get_option ()

    gboolean            nm_setting_bond_get_option          (NMSettingBond *setting,
                                                             guint32 idx,
                                                             const char **out_name,
                                                             const char **out_value);

Given an index, return the value of the bonding option at that index. Indexes are *not* guaranteed to be static across modifications to options done by `nm_setting_bond_add_option()` and `nm_setting_bond_remove_option()`, and should not be used to refer to options except for short periods of time such as during option iteration.

`setting` : | the NMSettingBond
`idx` : | index of the desired option, from 0 to `nm_setting_bond_get_num_options()` - 1
`out_name` : | on return, the name of the bonding option; this value is owned by the setting and should not be modified. [out]
`out_value` : | on return, the value of the name of the bonding option; this value is owned by the setting and should not be modified. [out]
Returns : | `TRUE` on success if the index was valid and an option was found, `FALSE` if the index was invalid (ie, greater than the number of options currently held by the setting)

### nm_setting_bond_get_option_by_name ()

    const char *        nm_setting_bond_get_option_by_name  (NMSettingBond *setting,
                                                             const char *name);

Returns the value associated with the bonding option specified by `name`, if it exists.

`setting` : | the NMSettingBond
`name` : | the option name for which to retrieve the value
Returns : | the value, or `NULL` if the key/value pair was never added to the setting; the value is owned by the setting and must not be modified

### nm_setting_bond_add_option ()

    gboolean            nm_setting_bond_add_option          (NMSettingBond *setting,
                                                             const char *name,
                                                             const char *value);

Add an option to the table. The option is compared to an internal list of allowed options. Option names may contain only alphanumeric characters (ie [a-zA-Z0-9]). Adding a new name replaces any existing name/value pair that may already exist.

`setting` : | the NMSettingBond
`name` : | name for the option
`value` : | value for the option
Returns : | `TRUE` if the option was valid and was added to the internal option list, `FALSE` if it was not.

### nm_setting_bond_remove_option ()

    gboolean            nm_setting_bond_remove_option       (NMSettingBond *setting,
                                                             const char *name);

Remove the bonding option referenced by `name` from the internal option list.

`setting` : | the NMSettingBond
`name` : | name of the option to remove
Returns : | `TRUE` if the option was found and removed from the internal option list, `FALSE` if it was not.

### nm_setting_bond_get_valid_options ()

    const char **       nm_setting_bond_get_valid_options   (NMSettingBond *setting);

Returns a list of valid bond options.

`setting` : | the NMSettingBond
Returns : | a `NULL`-terminated array of strings of valid bond options. [transfer none]

### nm_setting_bond_get_option_default ()

    const char *        nm_setting_bond_get_option_default  (NMSettingBond *setting,
                                                             const char *name);

`setting` : | the NMSettingBond
`name` : | the name of the option
Returns : | the value of the bond option if not overridden by an entry in the "options" property.

## Property Details

### The `"interface-name"` property

      "interface-name"           gchar*                : Read / Write

The name of the virtual in-kernel bonding network interface

Default value: NULL

### The `"options"` property

      "options"                  GHashTable_gchararray+gchararray_*  : Read / Write

Dictionary of key/value pairs of bonding options. Both keys and values must be strings. Option names must contain only alphanumeric characters (ie, [a-zA-Z0-9]).