]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/network/generator/network-generator.h
1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
4 #include <net/ethernet.h>
8 #include "in-addr-util.h"
11 typedef enum DHCPType
{
22 _DHCP_TYPE_INVALID
= -1,
25 typedef struct Address Address
;
26 typedef struct Link Link
;
27 typedef struct NetDev NetDev
;
28 typedef struct Network Network
;
29 typedef struct Route Route
;
30 typedef struct Context Context
;
35 union in_addr_union address
, peer
;
36 unsigned char prefixlen
;
39 LIST_FIELDS(Address
, addresses
);
45 union in_addr_union dest
, gateway
;
46 unsigned char prefixlen
;
49 LIST_FIELDS(Route
, routes
);
57 struct ether_addr mac
;
71 LIST_HEAD(Address
, addresses
);
72 LIST_HEAD(Route
, routes
);
85 struct ether_addr mac
;
88 typedef struct Context
{
89 Hashmap
*networks_by_name
;
90 Hashmap
*netdevs_by_name
;
91 Hashmap
*links_by_name
;
94 int parse_cmdline_item(const char *key
, const char *value
, void *data
);
95 int context_merge_networks(Context
*context
);
96 void context_clear(Context
*context
);
98 Network
*network_get(Context
*context
, const char *ifname
);
99 void network_dump(Network
*network
, FILE *f
);
100 int network_format(Network
*network
, char **ret
);
102 NetDev
*netdev_get(Context
*context
, const char *ifname
);
103 void netdev_dump(NetDev
*netdev
, FILE *f
);
104 int netdev_format(NetDev
*netdev
, char **ret
);
106 Link
*link_get(Context
*context
, const char *ifname
);
107 void link_dump(Link
*link
, FILE *f
);
108 int link_format(Link
*link
, char **ret
);