networkd-network.h revision aaa297d4e5401fd4466632555432774863457f1d
95fe27d9307628a4a593e63794000c09ecb91b95Thomas Hindoe Paaboel Andersen/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
95fe27d9307628a4a593e63794000c09ecb91b95Thomas Hindoe Paaboel Andersen This file is part of systemd.
95fe27d9307628a4a593e63794000c09ecb91b95Thomas Hindoe Paaboel Andersen Copyright 2013 Tom Gundersen <teg@jklm.no>
95fe27d9307628a4a593e63794000c09ecb91b95Thomas Hindoe Paaboel Andersen systemd is free software; you can redistribute it and/or modify it
95fe27d9307628a4a593e63794000c09ecb91b95Thomas Hindoe Paaboel Andersen under the terms of the GNU Lesser General Public License as published by
95fe27d9307628a4a593e63794000c09ecb91b95Thomas Hindoe Paaboel Andersen the Free Software Foundation; either version 2.1 of the License, or
95fe27d9307628a4a593e63794000c09ecb91b95Thomas Hindoe Paaboel Andersen (at your option) any later version.
95fe27d9307628a4a593e63794000c09ecb91b95Thomas Hindoe Paaboel Andersen systemd is distributed in the hope that it will be useful, but
95fe27d9307628a4a593e63794000c09ecb91b95Thomas Hindoe Paaboel Andersen WITHOUT ANY WARRANTY; without even the implied warranty of
95fe27d9307628a4a593e63794000c09ecb91b95Thomas Hindoe Paaboel Andersen MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
95fe27d9307628a4a593e63794000c09ecb91b95Thomas Hindoe Paaboel Andersen Lesser General Public License for more details.
95fe27d9307628a4a593e63794000c09ecb91b95Thomas Hindoe Paaboel Andersen You should have received a copy of the GNU Lesser General Public License
95fe27d9307628a4a593e63794000c09ecb91b95Thomas Hindoe Paaboel Andersen along with systemd; If not, see <http://www.gnu.org/licenses/>.
95fe27d9307628a4a593e63794000c09ecb91b95Thomas Hindoe Paaboel Andersentypedef struct Network Network;
95fe27d9307628a4a593e63794000c09ecb91b95Thomas Hindoe Paaboel Andersen#define DHCP_ROUTE_METRIC 1024
95fe27d9307628a4a593e63794000c09ecb91b95Thomas Hindoe Paaboel Andersen#define IPV4LL_ROUTE_METRIC 2048
95fe27d9307628a4a593e63794000c09ecb91b95Thomas Hindoe Paaboel Andersentypedef enum DCHPClientIdentifier {
95fe27d9307628a4a593e63794000c09ecb91b95Thomas Hindoe Paaboel Andersen _DHCP_CLIENT_ID_INVALID = -1,
95fe27d9307628a4a593e63794000c09ecb91b95Thomas Hindoe Paaboel Andersentypedef enum IPv6PrivacyExtensions {
95fe27d9307628a4a593e63794000c09ecb91b95Thomas Hindoe Paaboel Andersen /* The values map to the kernel's /proc/sys/net/ipv6/conf/xxx/use_tempaddr values */
95fe27d9307628a4a593e63794000c09ecb91b95Thomas Hindoe Paaboel Andersen IPV6_PRIVACY_EXTENSIONS_PREFER_PUBLIC,
95fe27d9307628a4a593e63794000c09ecb91b95Thomas Hindoe Paaboel Andersen IPV6_PRIVACY_EXTENSIONS_YES, /* aka prefer-temporary */
95fe27d9307628a4a593e63794000c09ecb91b95Thomas Hindoe Paaboel Andersen _IPV6_PRIVACY_EXTENSIONS_MAX,
95fe27d9307628a4a593e63794000c09ecb91b95Thomas Hindoe Paaboel Andersen _IPV6_PRIVACY_EXTENSIONS_INVALID = -1,
char **match_path;
char **match_driver;
char **match_type;
char **match_name;
char *description;
char *dhcp_vendor_class_identifier;
char *hostname;
bool dhcp_dns;
bool dhcp_ntp;
bool dhcp_mtu;
bool dhcp_hostname;
bool dhcp_domains;
bool dhcp_sendhost;
bool dhcp_broadcast;
bool dhcp_critical;
bool dhcp_routes;
bool dhcp_timezone;
unsigned dhcp_route_metric;
bool dhcp_server;
bool dhcp_server_emit_dns;
unsigned n_dhcp_server_dns;
bool dhcp_server_emit_ntp;
unsigned n_dhcp_server_ntp;
char *dhcp_server_timezone;
bool ipv4ll_route;
bool use_bpdu;
bool hairpin;
bool fast_leave;
bool allow_port_to_be_root;
bool unicast_flood;
unsigned cost;
bool ip_masquerade;
int ipv6_accept_ra;
int ipv6_dad_transmits;
int ipv6_hop_limit;
unsigned mtu;
bool lldp;
bool wildcard_domain;
int network_get(Manager *manager, struct udev_device *device, const char *ifname, const struct ether_addr *mac, Network **ret);
int config_parse_netdev(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);
int config_parse_domains(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);
int config_parse_tunnel(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);
int config_parse_dhcp(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);
int config_parse_dhcp_client_identifier(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);
int config_parse_ipv6token(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);
int config_parse_ipv6_privacy_extensions(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);
int config_parse_hostname(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);
int config_parse_timezone(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);
int config_parse_dhcp_server_dns(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);
int config_parse_dhcp_server_ntp(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);
int config_parse_ipv4ll(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);
int network_node_enumerator(sd_bus *bus, const char *path, void *userdata, char ***nodes, sd_bus_error *error);
int network_object_find(sd_bus *bus, const char *path, const char *interface, void *userdata, void **found, sd_bus_error *error);