* Reyk Floeter <r...@openbsd.org> wrote: > On Thu, Mar 16, 2017 at 11:27:24AM -0400, Jon Bernard wrote: > > Hi, > > > > I made a quick change to show the assigned tap interface in vmctl's > > status listing. mlarkin@ pointed out that ifconfig shows this > > information already, so maybe this isn't useful but I wanted to post it > > just in case. I don't have a good answer for the case where multiple > > interfaces are assigned to a single guest without making a mess of the > > status output. > > > > Well, my problem with this approach: > > - It only shows the first interface, how is this useful? > - Considering the 80 chars line limit, it shortens the space for VM name. > > And, indeed, ifconfig description shows it already and the "switch" > concept actually makes it less important to know (you can dynamically > use switches and assign interface groups to create pf rules and > everything without even caring about the individual tap names).
That makes a lot more sense, thanks. > For the information, my suggestion is to put it into a detailed view: > > 1. normal list as it is: > $ vmctl status > > 2. more detailed information including interfaces etc.: > $ vmctl status myvm > (it currently only adds VCPU state) > > For 2., you don't have to put everything into struct vmop_info_result, > you could just send an additional imsg including the original struct > vmop_create_params that is part of each struct vmd_vm. Okay, let me see what I can come up with. Thanks for the feedback. -- Jon > > Reyk > > > -- > > Jon > > > > Index: usr.sbin/vmctl/vmctl.c > > =================================================================== > > RCS file: /var/cvs/openbsd/src/usr.sbin/vmctl/vmctl.c,v > > retrieving revision 1.26 > > diff -u -p -r1.26 vmctl.c > > --- usr.sbin/vmctl/vmctl.c 3 Mar 2017 09:12:40 -0000 1.26 > > +++ usr.sbin/vmctl/vmctl.c 13 Mar 2017 17:14:54 -0000 > > @@ -375,8 +375,8 @@ print_vm_info(struct vmop_info_result *l > > struct passwd *pw; > > struct group *gr; > > > > - printf("%5s %5s %5s %7s %7s %7s %12s %s\n", "ID", "PID", "VCPUS", > > - "MAXMEM", "CURMEM", "TTY", "OWNER", "NAME"); > > + printf("%5s %5s %5s %5s %7s %7s %7s %12s %s\n", "ID", "PID", > > + "VCPUS", "TAP", "MAXMEM", "CURMEM", "TTY", "OWNER", "NAME"); > > > > for (i = 0; i < ct; i++) { > > vmi = &list[i]; > > @@ -417,15 +417,15 @@ print_vm_info(struct vmop_info_result *l > > (void)fmt_scaled(vir->vir_used_size, curmem); > > > > /* running vm */ > > - printf("%5u %5u %5zd %7s %7s %7s %12s %s\n", > > + printf("%5u %5u %5zd %5s %7s %7s %7s %12s %s\n", > > vir->vir_id, vir->vir_creator_pid, > > - vir->vir_ncpus, maxmem, curmem, > > + vir->vir_ncpus, vmi->vir_ifname, maxmem, > > curmem, > > tty, user, vir->vir_name); > > } else { > > /* disabled vm */ > > - printf("%5s %5s %5zd %7s %7s %7s %12s %s\n", > > + printf("%5s %5s %5zd %5s %7s %7s %7s %12s %s\n", > > "-", "-", > > - vir->vir_ncpus, maxmem, curmem, > > + vir->vir_ncpus, "-", maxmem, curmem, > > "-", user, vir->vir_name); > > } > > } > > Index: usr.sbin/vmd/vmd.c > > =================================================================== > > RCS file: /var/cvs/openbsd/src/usr.sbin/vmd/vmd.c,v > > retrieving revision 1.53 > > diff -u -p -r1.53 vmd.c > > --- usr.sbin/vmd/vmd.c 2 Mar 2017 07:33:37 -0000 1.53 > > +++ usr.sbin/vmd/vmd.c 15 Mar 2017 11:26:16 -0000 > > @@ -265,6 +265,9 @@ vmd_dispatch_vmm(int fd, struct privsep_ > > if ((vm = vm_getbyid(vir.vir_info.vir_id)) != NULL) { > > (void)strlcpy(vir.vir_ttyname, vm->vm_ttyname, > > sizeof(vir.vir_ttyname)); > > + if (vm->vm_ifs[0].vif_name != NULL) > > + (void)strlcpy(vir.vir_ifname, > > vm->vm_ifs[0].vif_name, > > + sizeof(vir.vir_ifname)); > > /* get the user id who started the vm */ > > vir.vir_uid = vm->vm_uid; > > vir.vir_gid = vm->vm_params.vmc_gid; > > Index: usr.sbin/vmd/vmd.h > > =================================================================== > > RCS file: /var/cvs/openbsd/src/usr.sbin/vmd/vmd.h,v > > retrieving revision 1.47 > > diff -u -p -r1.47 vmd.h > > --- usr.sbin/vmd/vmd.h 2 Mar 2017 07:33:37 -0000 1.47 > > +++ usr.sbin/vmd/vmd.h 13 Mar 2017 16:15:09 -0000 > > @@ -87,6 +87,7 @@ struct vmop_result { > > struct vmop_info_result { > > struct vm_info_result vir_info; > > char vir_ttyname[VM_TTYNAME_MAX]; > > + char vir_ifname[IF_NAMESIZE]; > > uid_t vir_uid; > > int64_t vir_gid; > > }; > > > > -- >