#ifndef _BIRD_WIREGUARD_H #define _BIRD_WIREGUARD_H #include "nest/protocol.h" #include "sysdep/linux/wireguard.h" struct peer_config { node n; const char *public_key; u16 listen_port; ip_addr endpoint; u16 remote_port; struct net_addr allowedip; }; struct wg_config { struct proto_config c; const char *ifname; const char *socket_path; const char *private_key; u16 tunnel_type; u16 listen_port; list peers; }; struct wg_proto { struct proto p; struct iface *iface; wg_key private_key; wg_device *dev; }; struct wg_channel_config { struct channel_config c; }; struct wg_channel { struct channel c; struct fib rtable; }; struct wg_entry { bool is_tunnel_ep; wg_key public_key; struct fib_node n; }; extern struct channel_class channel_wg; struct peer_config *peer_new(struct wg_config *c); #endif /* _BIRD_WIREGUARD_H */