1 #ifndef __INTERFACE_IP_H
2 #define __INTERFACE_IP_H
6 enum device_addr_flags
{
7 /* address family for routes and addresses */
8 DEVADDR_INET4
= (0 << 0),
9 DEVADDR_INET6
= (1 << 0),
10 DEVADDR_FAMILY
= DEVADDR_INET4
| DEVADDR_INET6
,
12 /* device route (no gateway) */
13 DEVADDR_DEVICE
= (1 << 1),
15 /* externally added address */
16 DEVADDR_EXTERNAL
= (1 << 2),
25 struct vlist_node node
;
27 enum device_addr_flags flags
;
35 struct vlist_node node
;
37 enum device_addr_flags flags
;
40 union if_addr nexthop
;
41 struct device
*device
;
49 struct list_head list
;
54 struct dns_search_domain
{
55 struct list_head list
;
59 void interface_ip_init(struct interface_ip_settings
*ip
, struct interface
*iface
);
60 void interface_add_dns_server(struct interface_ip_settings
*ip
, const char *str
);
61 void interface_add_dns_server_list(struct interface_ip_settings
*ip
, struct blob_attr
*list
);
62 void interface_add_dns_search_list(struct interface_ip_settings
*ip
, struct blob_attr
*list
);
63 void interface_write_resolv_conf(void);
65 void interface_ip_update_start(struct interface_ip_settings
*ip
);
66 void interface_ip_update_complete(struct interface_ip_settings
*ip
);
67 void interface_ip_flush(struct interface_ip_settings
*ip
);