From owner-freebsd-testing@freebsd.org Tue Mar 13 00:31:26 2018 Return-Path: Delivered-To: freebsd-testing@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8F20BA7BA6E for ; Tue, 13 Mar 2018 00:31:26 +0000 (UTC) (envelope-from asomers@gmail.com) Received: from mail-lf0-x231.google.com (mail-lf0-x231.google.com [IPv6:2a00:1450:4010:c07::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id DFCD17C296; Tue, 13 Mar 2018 00:31:25 +0000 (UTC) (envelope-from asomers@gmail.com) Received: by mail-lf0-x231.google.com with SMTP id q69-v6so26023638lfi.10; Mon, 12 Mar 2018 17:31:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=N7mLGXG4EiTzBwoLDhwNztqAx94e14eGwDnQAQNyeHU=; b=lqTZziOnNIDYWB0tAt722R6ad7o+65BoYIKNCWrRGtg9Imw9QnOLcLm6ZKQpNnXbJj 7gbRgiDzZe7/dqNXvbhCLUq5PTQmZWpq+IgTyi/zdNT3LDTHnPFa2dDV9qcQiPOV75Y2 Ecnb5kk1PfJt37oxP+DcAFuHgcZOD/rqinkCoLyu9q3oX9dRd6kAKX9Lh4ByC8ZgatXD 1IMIOwNENn6r45JDpXj0SgbWBQhQpez1oc4X4uH6IO6Ttuzug1eeoQXwd30stVY+/ZRJ eGur72FTFKVJkinedx26CgHgexASVTEO/Rdwzj1j/lGW6hyHvdChJehRw7L2zPQtCIXD W75A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=N7mLGXG4EiTzBwoLDhwNztqAx94e14eGwDnQAQNyeHU=; b=ZXSKThPBC6L6k5pQCE47k/hDUQQVbv3e4xqmX55zDp82+dZhProKW/VgDBS/jaNoqn eMplLYIYoXtfYUsoX0M3YlJa6lRvIBTdoX5cj5j17OmtNKbHlmsdVxC0MUlZZIkxYgXq A8mj+dCqvsEsuQSc2LncHLco1pEicEFk6zYM55kSISCsPfkU6y0ryby4yuWFD+QRAU0a WgqntGeiMFb5ju5/vB71t+Qmffk2K4EHI9QV8YY+ppGLiaYS9nTpevC9f4kylNHB8O+f 8mWMCXr4HuTA/wXSjAN2jXBV6f8H4ZQC7VuHnJhiaOZt+yKZF8mKS6+r3rFSajM/LxQr akNw== X-Gm-Message-State: AElRT7GroGrRo7d3HB6d6sjwQJAhGlUgBjltWwZcw7vsGs3RwYqmGug9 nG7V7kehLGsyp+m/Fh8dkfh9Q0Mr8qiZ6FA7zvk= X-Google-Smtp-Source: AG47ELuV40u8AUQGgGwJ2QnBQjrDGR/0Ynz4fY5xOK5oI+hyZ3hkx9beYyHFPEenRtyNMEMPsh/ehLmabTXAOkHGHdI= X-Received: by 10.46.77.135 with SMTP id c7mr710773ljd.116.1520901083127; Mon, 12 Mar 2018 17:31:23 -0700 (PDT) MIME-Version: 1.0 Sender: asomers@gmail.com Received: by 10.179.2.195 with HTTP; Mon, 12 Mar 2018 17:31:22 -0700 (PDT) In-Reply-To: <20180312213319.GB97195@raichu> References: <20180312154346.GA97195@raichu> <20180312213319.GB97195@raichu> From: Alan Somers Date: Mon, 12 Mar 2018 18:31:22 -0600 X-Google-Sender-Auth: UBmHVixbbs51Nb2z0wyB48i6LtI Message-ID: Subject: Re: automatically provisioning a bhyve test VM To: Mark Johnston Cc: "freebsd-testing@freebsd.org" Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.25 X-BeenThere: freebsd-testing@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: Testing on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Mar 2018 00:31:26 -0000 On Mon, Mar 12, 2018 at 3:33 PM, Mark Johnston wrote: > On Mon, Mar 12, 2018 at 02:57:32PM -0600, Alan Somers wrote: > > On Mon, Mar 12, 2018 at 9:43 AM, Mark Johnston > wrote: > > > > > Hi, > > > > > > I have some tests for FreeBSD's kernel dump code that I'd like to make > > > more robust. They use bhyve to test a variety of combinations of kernel > > > dump configurations: e.g., full dump vs. minidump, encryption, > > > compression, dump device block size, etc.. Each test triggers a kernel > > > panic and dump, and upon reboot opens the dump in kgdb, in the VM, to > > > get some confidence that the dump is valid. > > > > > > I use sysutils/vm-bhyve to simplify some aspects of VM management, and > > > that works pretty well. I use some hacks to configure networking for > the > > > VM, and this is the part that I don't like. The tests run on the host > > > and use ssh to run commands in the VM. For this to work, I need to > > > hardcode an IP for the guest and for the bridge to which the guest's > tap > > > interface is connected, which of course only works if those IPs aren't > > > already somehow in use by the host. I'd prefer something that makes > zero > > > assumptions about the host and just provides the bare minimum needed to > > > establish a private communication channel to run commands on the guest > > > (which includes getting the output and exit status of said commands). > > > Ideally this would still involve assigning private IPv4 addresses to > > > each side since I'd like to expand my test suite to cover netdump, > which > > > makes it possible for a panicking kernel to transmit a dump to a remote > > > host. Does anyone have any suggestions for a more elegant way to go > > > about this? Does anyone else automatically provision and tear down > bhyve > > > VMs as part of a test suite? > > > _______________________________________________ > > > freebsd-testing@freebsd.org mailing list > > > https://lists.freebsd.org/mailman/listinfo/freebsd-testing > > > To unsubscribe, send any mail to "freebsd-testing-unsubscribe@ > freebsd.org" > > > > > > > Could you use the virtual serial port instead of a virtual network? That > > would eliminate the assumption about a suitable IP address for the guest. > > Is there an easy way to programmatically run commands over that serial > port from the host? > Um, you could try expect? > > > You could also try using an IPv6-only guest with a link-local address. > > Thanks to IPv6's scoping rules, this would be guaranteed not to interfere > > with any other interface on the host, so long as you don't bridge it. > > I'd thought a bit about this, but there's also a discoverability problem > in that I'd need a way for the host to figure out the guest's link-local > address without talking to the guest. The serial port might let me work > around this though. > That's what mDNS is for. Or, since there won't be any unexpected neighbors, you could simply assign link-local addresses statically. Nobody ever said that a link local address _must_ be automatically generated. -Alan