1 /* SPDX-License-Identifier: LGPL-2.1+ */
8 #include "sd-network.h"
12 bool network_is_online(void);
14 typedef enum LinkOperationalState
{
15 LINK_OPERSTATE_MISSING
,
17 LINK_OPERSTATE_NO_CARRIER
,
18 LINK_OPERSTATE_DORMANT
,
19 LINK_OPERSTATE_DEGRADED_CARRIER
,
20 LINK_OPERSTATE_CARRIER
,
21 LINK_OPERSTATE_DEGRADED
,
22 LINK_OPERSTATE_ENSLAVED
,
23 LINK_OPERSTATE_ROUTABLE
,
25 _LINK_OPERSTATE_INVALID
= -1
26 } LinkOperationalState
;
28 typedef enum LinkCarrierState
{
29 LINK_CARRIER_STATE_OFF
= LINK_OPERSTATE_OFF
,
30 LINK_CARRIER_STATE_NO_CARRIER
= LINK_OPERSTATE_NO_CARRIER
,
31 LINK_CARRIER_STATE_DORMANT
= LINK_OPERSTATE_DORMANT
,
32 LINK_CARRIER_STATE_DEGRADED_CARRIER
= LINK_OPERSTATE_DEGRADED_CARRIER
,
33 LINK_CARRIER_STATE_CARRIER
= LINK_OPERSTATE_CARRIER
,
34 LINK_CARRIER_STATE_ENSLAVED
= LINK_OPERSTATE_ENSLAVED
,
35 _LINK_CARRIER_STATE_MAX
,
36 _LINK_CARRIER_STATE_INVALID
= -1
39 typedef enum LinkAddressState
{
40 LINK_ADDRESS_STATE_OFF
,
41 LINK_ADDRESS_STATE_DEGRADED
,
42 LINK_ADDRESS_STATE_ROUTABLE
,
43 _LINK_ADDRESS_STATE_MAX
,
44 _LINK_ADDRESS_STATE_INVALID
= -1
47 const char* link_operstate_to_string(LinkOperationalState s
) _const_
;
48 LinkOperationalState
link_operstate_from_string(const char *s
) _pure_
;
50 const char* link_carrier_state_to_string(LinkCarrierState s
) _const_
;
51 LinkCarrierState
link_carrier_state_from_string(const char *s
) _pure_
;
53 const char* link_address_state_to_string(LinkAddressState s
) _const_
;
54 LinkAddressState
link_address_state_from_string(const char *s
) _pure_
;
56 typedef struct LinkOperationalStateRange
{
57 LinkOperationalState min
;
58 LinkOperationalState max
;
59 } LinkOperationalStateRange
;
61 #define LINK_OPERSTATE_RANGE_DEFAULT (LinkOperationalStateRange) { LINK_OPERSTATE_DEGRADED, \
62 LINK_OPERSTATE_ROUTABLE }
64 int parse_operational_state_range(const char *str
, LinkOperationalStateRange
*out
);
66 char *link_get_type_string(sd_device
*device
, unsigned short iftype
);
67 int net_get_unique_predictable_data(sd_device
*device
, bool use_sysname
, uint64_t *result
);
68 const char *net_get_name_persistent(sd_device
*device
);