X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fnetwork%2Fnetworkd.h;h=f079473758dda02904de637b7afd98198ae80c25;hb=96c907429e3224289fd360b8d9c8fdc573f4363b;hp=cfe24f5702f0d0328290c27c3d2ee66a9b0f7cb8;hpb=e375dcde7202d5df4e29f5258e0f8c2bcea4535c;p=elogind.git diff --git a/src/network/networkd.h b/src/network/networkd.h index cfe24f570..f07947375 100644 --- a/src/network/networkd.h +++ b/src/network/networkd.h @@ -27,6 +27,7 @@ #include "sd-rtnl.h" #include "sd-bus.h" #include "sd-dhcp-client.h" +#include "sd-dhcp-server.h" #include "sd-ipv4ll.h" #include "udev.h" @@ -71,6 +72,8 @@ typedef enum NetDevKind { NETDEV_KIND_IPIP, NETDEV_KIND_GRE, NETDEV_KIND_SIT, + NETDEV_KIND_VETH, + NETDEV_KIND_VTI, _NETDEV_KIND_MAX, _NETDEV_KIND_INVALID = -1 } NetDevKind; @@ -98,7 +101,10 @@ struct NetDev { char *description; char *ifname; + char *ifname_peer; size_t mtu; + struct ether_addr *mac; + struct ether_addr *mac_peer; NetDevKind kind; uint64_t vlanid; @@ -107,6 +113,7 @@ struct NetDev { int ifindex; NetDevState state; + bool tunnel_pmtudisc; unsigned tunnel_ttl; unsigned tunnel_tos; struct in_addr tunnel_local; @@ -145,6 +152,8 @@ struct Network { bool dhcp_critical; bool ipv4ll; + bool dhcp_server; + LIST_HEAD(Address, static_addresses); LIST_HEAD(Route, static_routes); @@ -252,6 +261,8 @@ struct Link { char *lease_file; uint16_t original_mtu; sd_ipv4ll *ipv4ll; + + sd_dhcp_server *dhcp_server; }; struct Manager { @@ -271,7 +282,6 @@ struct Manager { LIST_HEAD(Network, networks); usec_t network_dirs_ts_usec; - struct kmod_ctx *kmod_ctx; }; extern const char* const network_dirs[]; @@ -310,6 +320,7 @@ int netdev_get(Manager *manager, const char *name, NetDev **ret); int netdev_set_ifindex(NetDev *netdev, sd_rtnl_message *newlink); int netdev_enslave(NetDev *netdev, Link *link, sd_rtnl_message_handler_t cb); int netdev_create_tunnel(Link *link, sd_rtnl_message_handler_t callback); +int netdev_create_veth(NetDev *netdev, sd_rtnl_message_handler_t callback); const char *netdev_kind_to_string(NetDevKind d) _const_; NetDevKind netdev_kind_from_string(const char *d) _pure_; @@ -442,7 +453,7 @@ DEFINE_TRIVIAL_CLEANUP_FUNC(Link*, link_unref); /* Macros which append INTERFACE= to the message */ -#define log_full_link(level, link, fmt, ...) log_meta_object(level, __FILE__, __LINE__, __func__, "INTERFACE=", link->ifname, "%*s: " fmt, IFNAMSIZ, link->ifname, ##__VA_ARGS__) +#define log_full_link(level, link, fmt, ...) log_meta_object(level, __FILE__, __LINE__, __func__, "INTERFACE=", link->ifname, "%-*s: " fmt, IFNAMSIZ, link->ifname, ##__VA_ARGS__) #define log_debug_link(link, ...) log_full_link(LOG_DEBUG, link, ##__VA_ARGS__) #define log_info_link(link, ...) log_full_link(LOG_INFO, link, ##__VA_ARGS__) #define log_notice_link(link, ...) log_full_link(LOG_NOTICE, link, ##__VA_ARGS__) @@ -453,7 +464,7 @@ DEFINE_TRIVIAL_CLEANUP_FUNC(Link*, link_unref); /* More macros which append INTERFACE= to the message */ -#define log_full_netdev(level, netdev, fmt, ...) log_meta_object(level, __FILE__, __LINE__, __func__, "INTERFACE=", netdev->ifname, "%*s: " fmt, IFNAMSIZ, netdev->ifname, ##__VA_ARGS__) +#define log_full_netdev(level, netdev, fmt, ...) log_meta_object(level, __FILE__, __LINE__, __func__, "INTERFACE=", netdev->ifname, "%-*s: " fmt, IFNAMSIZ, netdev->ifname, ##__VA_ARGS__) #define log_debug_netdev(netdev, ...) log_full_netdev(LOG_DEBUG, netdev, ##__VA_ARGS__) #define log_info_netdev(netdev, ...) log_full_netdev(LOG_INFO, netdev, ##__VA_ARGS__) #define log_notice_netdev(netdev, ...) log_full_netdev(LOG_NOTICE, netdev, ##__VA_ARGS__)