summaryrefslogtreecommitdiffstats
path: root/src/network/netdev/netdev-util.h
blob: 02b07e3670b72d0171691cc68b5a858a62f1659f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once

#include "in-addr-util.h"
#include "macro.h"

typedef struct Link Link;

typedef enum NetDevLocalAddressType {
        NETDEV_LOCAL_ADDRESS_IPV4LL,
        NETDEV_LOCAL_ADDRESS_IPV6LL,
        NETDEV_LOCAL_ADDRESS_DHCP4,
        NETDEV_LOCAL_ADDRESS_DHCP6,
        NETDEV_LOCAL_ADDRESS_SLAAC,
        _NETDEV_LOCAL_ADDRESS_TYPE_MAX,
        _NETDEV_LOCAL_ADDRESS_TYPE_INVALID = -EINVAL,
} NetDevLocalAddressType;

const char *netdev_local_address_type_to_string(NetDevLocalAddressType t) _const_;
NetDevLocalAddressType netdev_local_address_type_from_string(const char *s) _pure_;

int link_get_local_address(
                Link *link,
                NetDevLocalAddressType type,
                int family,
                int *ret_family,
                union in_addr_union *ret_address);