summaryrefslogtreecommitdiffstats
path: root/usr.sbin/ldomctl/parse.y
diff options
context:
space:
mode:
authorkn <kn@openbsd.org>2020-02-21 19:39:28 +0000
committerkn <kn@openbsd.org>2020-02-21 19:39:28 +0000
commita3b2112fbe71069941758ed79aa30cc694df9f1c (patch)
tree6dc393fec04ab1bf1a69a9842ec26f7c5b0cb558 /usr.sbin/ldomctl/parse.y
parentActually pass devalias from parser to config (diff)
downloadwireguard-openbsd-a3b2112fbe71069941758ed79aa30cc694df9f1c.tar.xz
wireguard-openbsd-a3b2112fbe71069941758ed79aa30cc694df9f1c.zip
Support devaliases for vnet
vnet devalias=netboot Creates a device alias to be used in OBP: {ok} boot netboot This helps navigating inside guests without remembering device paths or rather their order as specified in the config. OK kettenis
Diffstat (limited to 'usr.sbin/ldomctl/parse.y')
-rw-r--r--usr.sbin/ldomctl/parse.y18
1 files changed, 14 insertions, 4 deletions
diff --git a/usr.sbin/ldomctl/parse.y b/usr.sbin/ldomctl/parse.y
index e50f40721a1..ec28d5d9f72 100644
--- a/usr.sbin/ldomctl/parse.y
+++ b/usr.sbin/ldomctl/parse.y
@@ -1,4 +1,4 @@
-/* $OpenBSD: parse.y,v 1.17 2020/02/21 19:29:41 kn Exp $ */
+/* $OpenBSD: parse.y,v 1.18 2020/02/21 19:39:28 kn Exp $ */
/*
* Copyright (c) 2012 Mark Kettenis <kettenis@openbsd.org>
@@ -77,6 +77,7 @@ struct vdisk_opts {
struct vnet_opts {
uint64_t mac_addr;
uint64_t mtu;
+ const char *devalias;
} vnet_opts;
void vcput_opts_default(void);
@@ -105,10 +106,11 @@ typedef struct {
%type <v.number> memory
%type <v.vcpu_opts> vcpu
%type <v.vdisk_opts> vdisk_opts vdisk_opts_l vdisk_opt
-%type <v.vdisk_opts> devalias
+%type <v.vdisk_opts> vdisk_devalias
%type <v.vnet_opts> vnet_opts vnet_opts_l vnet_opt
%type <v.vnet_opts> mac_addr
%type <v.vnet_opts> mtu
+%type <v.vnet_opts> vnet_devalias
%%
grammar : /* empty */
@@ -180,6 +182,7 @@ domainopts : VCPU vcpu {
struct vnet *vnet = xmalloc(sizeof(struct vnet));
vnet->mac_addr = $2.mac_addr;
vnet->mtu = $2.mtu;
+ vnet->devalias = $2.devalias;
SIMPLEQ_INSERT_TAIL(&domain->vnet_list, vnet, entry);
}
| VARIABLE STRING '=' STRING {
@@ -203,10 +206,10 @@ vdisk_opts : { vdisk_opts_default(); }
vdisk_opts_l : vdisk_opts_l vdisk_opt
| vdisk_opt
;
-vdisk_opt : devalias
+vdisk_opt : vdisk_devalias
;
-devalias : DEVALIAS '=' STRING {
+vdisk_devalias : DEVALIAS '=' STRING {
vdisk_opts.devalias = $3;
}
;
@@ -221,6 +224,7 @@ vnet_opts_l : vnet_opts_l vnet_opt
;
vnet_opt : mac_addr
| mtu
+ | vnet_devalias
;
mac_addr : MAC_ADDR '=' STRING {
@@ -246,6 +250,11 @@ mtu : MTU '=' NUMBER {
}
;
+vnet_devalias : DEVALIAS '=' STRING {
+ vnet_opts.devalias = $3;
+ }
+ ;
+
vcpu : STRING {
const char *errstr;
char *colon;
@@ -314,6 +323,7 @@ vnet_opts_default(void)
{
vnet_opts.mac_addr = -1;
vnet_opts.mtu = 1500;
+ vnet_opts.devalias = NULL;
}
struct keywords {