summaryrefslogtreecommitdiff
path: root/proto/wireguard/config.Y
diff options
context:
space:
mode:
authorMikael Magnusson <mikma@users.sourceforge.net>2019-03-26 00:55:09 +0100
committerMikael Magnusson <mikma@users.sourceforge.net>2021-01-12 23:34:17 +0100
commitcd43c7667fa86a2a160be32c13a57fb5072bbb76 (patch)
tree87fa2dde22133b3733e4f781d20c33e8ba06d8e9 /proto/wireguard/config.Y
parent7c45b93a5a6d63b6b7f1dff38279e3acb5ac2e57 (diff)
Wireguard: Add peer config settings
Diffstat (limited to 'proto/wireguard/config.Y')
-rw-r--r--proto/wireguard/config.Y37
1 files changed, 36 insertions, 1 deletions
diff --git a/proto/wireguard/config.Y b/proto/wireguard/config.Y
index 2eee7e72..9a414085 100644
--- a/proto/wireguard/config.Y
+++ b/proto/wireguard/config.Y
@@ -16,7 +16,7 @@ CF_DEFINES
CF_DECLS
-CF_KEYWORDS(WIREGUARD)
+CF_KEYWORDS(WIREGUARD, PUBKEY, ENDPOINT, ALLOWED_IPS)
CF_GRAMMAR
@@ -32,6 +32,41 @@ wireguard_proto:
| wireguard_proto wg_proto_channel ';'
| wireguard_proto proto_item ';'
| wireguard_proto INTERFACE TEXT ';' { WG_CFG->ifname = $3; }
+ | wireguard_proto wg_peer ';'
+ ;
+
+wg_peer: wg_peer_start wg_peer_opt_list wg_peer_end;
+
+wg_peer_start: PEER
+
+wg_peer_end:
+ ;
+
+wg_peer_item:
+ PUBKEY pubkey
+ | ENDPOINT endpoint
+ | PORT port
+ | ALLOWED_IPS allowed_ips
+ ;
+
+wg_peer_opts:
+ /* empty */
+ | wg_peer_opts wg_peer_item ';'
+ ;
+
+wg_peer_opt_list:
+ /* empty */
+ | '{' wg_peer_opts '}'
+ ;
+
+pubkey: text { WG_CFG->peer.pubkey = $1; }
+
+endpoint: ipa { WG_CFG->peer.endpoint = $1; }
+
+port: expr { WG_CFG->peer.remote_port = $1; }
+
+allowed_ips:
+ net_or_ipa { WG_CFG->peer.allowed_ips = $1; }
;
wg_proto_channel: wg_channel_start channel_opt_list wg_channel_end;