]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/systemd/sd-network.h
networkd: Fix a couple of typos
[thirdparty/systemd.git] / src / systemd / sd-network.h
CommitLineData
fe8db0c5
TG
1/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
2
82bdf8ce
TG
3#ifndef foosdnetworkhfoo
4#define foosdnetworkhfoo
fe8db0c5
TG
5
6/***
7 This file is part of systemd.
8
9 Copyright 2011 Lennart Poettering
10 Copyright 2014 Tom Gundersen
11
12 systemd is free software; you can redistribute it and/or modify it
13 under the terms of the GNU Lesser General Public License as published by
14 the Free Software Foundation; either version 2.1 of the License, or
15 (at your option) any later version.
16
17 systemd is distributed in the hope that it will be useful, but
18 WITHOUT ANY WARRANTY; without even the implied warranty of
19 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 Lesser General Public License for more details.
21
22 You should have received a copy of the GNU Lesser General Public License
23 along with systemd; If not, see <http://www.gnu.org/licenses/>.
24***/
25
26#include <sys/types.h>
27#include <inttypes.h>
28
fe8db0c5
TG
29#include "_sd-common.h"
30
31/*
32 * A few points:
33 *
34 * Instead of returning an empty string array or empty integer array, we
35 * may return NULL.
36 *
37 * Free the data the library returns with libc free(). String arrays
10b17992 38 * are NULL terminated, and you need to free the array itself in
fe8db0c5
TG
39 * addition to the strings contained.
40 *
10b17992
JSJ
41 * We return error codes as negative errno, kernel-style. On success, we
42 * return 0 or positive.
fe8db0c5 43 *
10b17992
JSJ
44 * These functions access data in /run. This is a virtual file system;
45 * therefore, accesses are relatively cheap.
fe8db0c5
TG
46 *
47 * See sd-network(3) for more information.
48 */
49
50_SD_BEGIN_DECLARATIONS;
51
6436165d 52/* Get overall operational state
54cba0b1 53 * Possible states: down, up, dormant, carrier, degraded, routable
6436165d
LP
54 * Possible return codes:
55 * -ENODATA: networkd is not aware of any links
56 */
57int sd_network_get_operational_state(char **state);
58
03cc0fd1
LP
59/* Get DNS entries for all links. These are string representations of
60 * IP addresses */
8612e936 61int sd_network_get_dns(char ***dns);
03cc0fd1
LP
62
63/* Get NTP entries for all links. These are domain names or string
91c40d86 64 * representations of IP addresses */
8612e936
LP
65int sd_network_get_ntp(char ***ntp);
66
67/* Get the search/routing domains for all links. */
68int sd_network_get_domains(char ***domains);
03cc0fd1 69
438ca2bb 70/* Get setup state from ifindex.
8434fd5c
TG
71 * Possible states:
72 * pending: udev is still processing the link, we don't yet know if we will manage it
73 * failed: networkd failed to manage the link
74 * configuring: in the process of retrieving configuration or configuring the link
75 * configured: link configured successfully
76 * unmanaged: networkd is not handling the link
77 * linger: the link is gone, but has not yet been dropped by networkd
deb2e523
TG
78 * Possible return codes:
79 * -ENODATA: networkd is not aware of the link
deb2e523 80 */
438ca2bb 81int sd_network_link_get_setup_state(int ifindex, char **state);
deb2e523 82
91c40d86 83/* Get operational state from ifindex.
d3df0e39
TG
84 * Possible states:
85 * off: the device is powered down
86 * no-carrier: the device is powered up, but it does not yet have a carrier
87 * dormant: the device has a carrier, but is not yet ready for normal traffic
88 * carrier: the link has a carrier
89 * degraded: the link has carrier and addresses valid on the local link configured
90 * routable: the link has carrier and routable address configured
deb2e523
TG
91 * Possible return codes:
92 * -ENODATA: networkd is not aware of the link
93 */
d6731e4c 94int sd_network_link_get_operational_state(int ifindex, char **state);
deb2e523 95
adc5b2e2
TG
96/* Get path to .network file applied to link */
97int sd_network_link_get_network_file(int ifindex, char **filename);
98
6f4dedb2
TG
99/* Get DNS entries for a given link. These are string representations of
100 * IP addresses */
d6731e4c 101int sd_network_link_get_dns(int ifindex, char ***addr);
7dbf94a9 102
6f4dedb2 103/* Get NTP entries for a given link. These are domain names or string
91c40d86 104 * representations of IP addresses */
d6731e4c 105int sd_network_link_get_ntp(int ifindex, char ***addr);
7dbf94a9 106
03cc0fd1
LP
107/* Indicates whether or not LLMNR should be enabled for the link
108 * Possible levels of support: yes, no, resolve
109 * Possible return codes:
91c40d86
TH
110 * -ENODATA: networkd is not aware of the link
111 */
d6731e4c 112int sd_network_link_get_llmnr(int ifindex, char **llmnr);
03cc0fd1 113
9b4d1882
TG
114/* Get the DNS domain names for a given link. */
115int sd_network_link_get_domains(int ifindex, char ***domains);
116
67272d15
TG
117/* Returns whether or not domains that don't match any link should be resolved
118 * on this link. 1 for yes, 0 for no and negative value for error */
119int sd_network_link_get_wildcard_domain(int ifindex);
120
fe8db0c5
TG
121/* Monitor object */
122typedef struct sd_network_monitor sd_network_monitor;
123
7e141e49 124/* Create a new monitor. Category must be NULL, "links" or "leases". */
0014a4ad 125int sd_network_monitor_new(sd_network_monitor **ret, const char *category);
fe8db0c5
TG
126
127/* Destroys the passed monitor. Returns NULL. */
128sd_network_monitor* sd_network_monitor_unref(sd_network_monitor *m);
129
130/* Flushes the monitor */
131int sd_network_monitor_flush(sd_network_monitor *m);
132
133/* Get FD from monitor */
134int sd_network_monitor_get_fd(sd_network_monitor *m);
135
136/* Get poll() mask to monitor */
137int sd_network_monitor_get_events(sd_network_monitor *m);
138
139/* Get timeout for poll(), as usec value relative to CLOCK_MONOTONIC's epoch */
140int sd_network_monitor_get_timeout(sd_network_monitor *m, uint64_t *timeout_usec);
141
142_SD_END_DECLARATIONS;
143
144#endif