Both in the configuration file format and everywhere else in the code.
disables the configuration file entirely.</para>
<refsect2><title>Virtual Network Devices</title>
- <para>Netdev files must have the extension <filename>.netdev</filename>;
- other extensions are ignored. Virtual network devices are created as soon
- as networkd is started.</para>
+ <para>Virtual Network Device files must have the extension
+ <filename>.netdev</filename>; other extensions are ignored. Virtual
+ network devices are created as soon as networkd is started.</para>
- <para>The <literal>[Netdev]</literal> section accepts the following
+ <para>The <literal>[NetDev]</literal> section accepts the following
keys:</para>
<variablelist class='network-directives'>
DHCPv4.UseHostname, config_parse_bool, 0, offsetof(Network, dhcp_hostname)
DHCPv4.UseDomainName, config_parse_bool, 0, offsetof(Network, dhcp_domainname)
DHCPv4.CriticalConnection, config_parse_bool, 0, offsetof(Network, dhcp_critical)
-Netdev.Description, config_parse_string, 0, offsetof(Netdev, description)
-Netdev.Name, config_parse_ifname, 0, offsetof(Netdev, name)
-Netdev.Kind, config_parse_netdev_kind, 0, offsetof(Netdev, kind)
-VLAN.Id, config_parse_int, 0, offsetof(Netdev, vlanid)
+NetDev.Description, config_parse_string, 0, offsetof(NetDev, description)
+NetDev.Name, config_parse_ifname, 0, offsetof(NetDev, name)
+NetDev.Kind, config_parse_netdev_kind, 0, offsetof(NetDev, kind)
+VLAN.Id, config_parse_int, 0, offsetof(NetDev, vlanid)
void manager_free(Manager *m) {
Network *network;
- Netdev *netdev;
+ NetDev *netdev;
Link *link;
udev_monitor_unref(m->udev_monitor);
if (r < 0)
log_debug("received RTM_NEWLINK message without valid IFLA_IFNAME");
else {
- Netdev *netdev;
+ NetDev *netdev;
r = netdev_get(m, name, &netdev);
if (r >= 0) {
[NETDEV_KIND_VLAN] = "vlan",
};
-DEFINE_STRING_TABLE_LOOKUP(netdev_kind, NetdevKind);
-DEFINE_CONFIG_PARSE_ENUM(config_parse_netdev_kind, netdev_kind, NetdevKind, "Failed to parse netdev kind");
+DEFINE_STRING_TABLE_LOOKUP(netdev_kind, NetDevKind);
+DEFINE_CONFIG_PARSE_ENUM(config_parse_netdev_kind, netdev_kind, NetDevKind, "Failed to parse netdev kind");
-void netdev_free(Netdev *netdev) {
+void netdev_free(NetDev *netdev) {
netdev_enslave_callback *callback;
if (!netdev)
free(netdev);
}
-int netdev_get(Manager *manager, const char *name, Netdev **ret) {
- Netdev *netdev;
+int netdev_get(Manager *manager, const char *name, NetDev **ret) {
+ NetDev *netdev;
assert(manager);
assert(name);
return 0;
}
-static int netdev_enter_failed(Netdev *netdev) {
+static int netdev_enter_failed(NetDev *netdev) {
netdev->state = NETDEV_STATE_FAILED;
return 0;
}
-static int netdev_enslave_ready(Netdev *netdev, Link* link, sd_rtnl_message_handler_t callback) {
+static int netdev_enslave_ready(NetDev *netdev, Link* link, sd_rtnl_message_handler_t callback) {
_cleanup_sd_rtnl_message_unref_ sd_rtnl_message *req = NULL;
int r;
return 0;
}
-static int netdev_enter_ready(Netdev *netdev) {
+static int netdev_enter_ready(NetDev *netdev) {
netdev_enslave_callback *callback;
assert(netdev);
}
static int netdev_create_handler(sd_rtnl *rtnl, sd_rtnl_message *m, void *userdata) {
- Netdev *netdev = userdata;
+ NetDev *netdev = userdata;
int r;
assert(netdev->state != _NETDEV_STATE_INVALID);
return 1;
}
-static int netdev_create(Netdev *netdev, Link *link, sd_rtnl_message_handler_t callback) {
+static int netdev_create(NetDev *netdev, Link *link, sd_rtnl_message_handler_t callback) {
_cleanup_sd_rtnl_message_unref_ sd_rtnl_message *req = NULL;
const char *kind;
int r;
return 0;
}
-int netdev_enslave(Netdev *netdev, Link *link, sd_rtnl_message_handler_t callback) {
+int netdev_enslave(NetDev *netdev, Link *link, sd_rtnl_message_handler_t callback) {
if (netdev->kind == NETDEV_KIND_VLAN)
return netdev_create(netdev, link, callback);
return 0;
}
-int netdev_set_ifindex(Netdev *netdev, int ifindex) {
+int netdev_set_ifindex(NetDev *netdev, int ifindex) {
assert(netdev);
assert(ifindex > 0);
}
static int netdev_load_one(Manager *manager, const char *filename) {
- _cleanup_netdev_free_ Netdev *netdev = NULL;
+ _cleanup_netdev_free_ NetDev *netdev = NULL;
_cleanup_fclose_ FILE *file = NULL;
int r;
return errno;
}
- netdev = new0(Netdev, 1);
+ netdev = new0(NetDev, 1);
if (!netdev)
return log_oom();
netdev->kind = _NETDEV_KIND_INVALID;
netdev->vlanid = -1;
- r = config_parse(NULL, filename, file, "Netdev\0VLAN\0", config_item_perf_lookup,
+ r = config_parse(NULL, filename, file, "NetDev\0VLAN\0", config_item_perf_lookup,
(void*) network_gperf_lookup, false, false, netdev);
if (r < 0) {
log_warning("Could not parse config file %s: %s", filename, strerror(-r));
}
if (netdev->kind == _NETDEV_KIND_INVALID) {
- log_warning("Netdev without Kind configured in %s. Ignoring", filename);
+ log_warning("NetDev without Kind configured in %s. Ignoring", filename);
return 0;
}
if (!netdev->name) {
- log_warning("Netdev without Name configured in %s. Ignoring", filename);
+ log_warning("NetDev without Name configured in %s. Ignoring", filename);
return 0;
}
}
int netdev_load(Manager *manager) {
- Netdev *netdev;
+ NetDev *netdev;
char **files, **f;
int r;
void *data,
void *userdata) {
Network *network = userdata;
- Netdev *netdev;
+ NetDev *netdev;
int r;
assert(filename);
if (netdev->kind != NETDEV_KIND_BRIDGE) {
log_syntax(unit, LOG_ERR, filename, line, EINVAL,
- "Netdev is not a bridge, ignoring assignment: %s", rvalue);
+ "NetDev is not a bridge, ignoring assignment: %s", rvalue);
return 0;
}
void *data,
void *userdata) {
Network *network = userdata;
- Netdev *netdev;
+ NetDev *netdev;
int r;
assert(filename);
if (netdev->kind != NETDEV_KIND_BOND) {
log_syntax(unit, LOG_ERR, filename, line, EINVAL,
- "Netdev is not a bond, ignoring assignment: %s", rvalue);
+ "NetDev is not a bond, ignoring assignment: %s", rvalue);
return 0;
}
void *data,
void *userdata) {
Network *network = userdata;
- Netdev *netdev;
+ NetDev *netdev;
int r;
assert(filename);
if (netdev->kind != NETDEV_KIND_VLAN) {
log_syntax(unit, LOG_ERR, filename, line, EINVAL,
- "Netdev is not a VLAN, ignoring assignment: %s", rvalue);
+ "NetDev is not a VLAN, ignoring assignment: %s", rvalue);
return 0;
}
#include "hashmap.h"
#include "list.h"
-typedef struct Netdev Netdev;
+typedef struct NetDev NetDev;
typedef struct Network Network;
typedef struct Link Link;
typedef struct Address Address;
LIST_FIELDS(netdev_enslave_callback, callbacks);
};
-typedef enum NetdevKind {
+typedef enum NetDevKind {
NETDEV_KIND_BRIDGE,
NETDEV_KIND_BOND,
NETDEV_KIND_VLAN,
_NETDEV_KIND_MAX,
_NETDEV_KIND_INVALID = -1
-} NetdevKind;
+} NetDevKind;
-typedef enum NetdevState {
+typedef enum NetDevState {
NETDEV_STATE_FAILED,
NETDEV_STATE_CREATING,
NETDEV_STATE_READY,
_NETDEV_STATE_MAX,
_NETDEV_STATE_INVALID = -1,
-} NetdevState;
+} NetDevState;
-struct Netdev {
+struct NetDev {
Manager *manager;
char *filename;
char *description;
char *name;
- NetdevKind kind;
+ NetDevKind kind;
int vlanid;
int ifindex;
- NetdevState state;
+ NetDevState state;
LIST_HEAD(netdev_enslave_callback, callbacks);
};
char *match_name;
char *description;
- Netdev *bridge;
- Netdev *bond;
- Netdev *vlan;
+ NetDev *bridge;
+ NetDev *bond;
+ NetDev *vlan;
bool dhcp;
bool dhcp_dns;
bool dhcp_mtu;
DEFINE_TRIVIAL_CLEANUP_FUNC(Manager*, manager_free);
#define _cleanup_manager_free_ _cleanup_(manager_freep)
-/* Netdev */
+/* NetDev */
int netdev_load(Manager *manager);
-void netdev_free(Netdev *netdev);
+void netdev_free(NetDev *netdev);
-DEFINE_TRIVIAL_CLEANUP_FUNC(Netdev*, netdev_free);
+DEFINE_TRIVIAL_CLEANUP_FUNC(NetDev*, netdev_free);
#define _cleanup_netdev_free_ _cleanup_(netdev_freep)
-int netdev_get(Manager *manager, const char *name, Netdev **ret);
-int netdev_set_ifindex(Netdev *netdev, int ifindex);
-int netdev_enslave(Netdev *netdev, Link *link, sd_rtnl_message_handler_t cb);
+int netdev_get(Manager *manager, const char *name, NetDev **ret);
+int netdev_set_ifindex(NetDev *netdev, int ifindex);
+int netdev_enslave(NetDev *netdev, Link *link, sd_rtnl_message_handler_t cb);
-const char *netdev_kind_to_string(NetdevKind d) _const_;
-NetdevKind netdev_kind_from_string(const char *d) _pure_;
+const char *netdev_kind_to_string(NetDevKind d) _const_;
+NetDevKind netdev_kind_from_string(const char *d) _pure_;
int config_parse_netdev_kind(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);