joyent / freebsd-vpc Goto Github PK
View Code? Open in Web Editor NEWControl plane for `projects/VPC` branch of `joyent/freebsd`
License: BSD 2-Clause "Simplified" License
Control plane for `projects/VPC` branch of `joyent/freebsd`
License: BSD 2-Clause "Simplified" License
Convert vpc.ID
's Node
attribute to be of type net.HardwareAddr
. This is purely for type safety. A net.HardwareAddr
is a [6]byte
under the hood.
Decompose vpc switch port add
into:
vpc ethlink create
vpc ethlink connect
bhyve
provider for Packervpc(4)
dynamically for packer
buildervpcsw
vpcp
vmnic
vpcnat
vpc vm run
Add hostlink
subcommand to vpc
.
We need some way of querying vpc(4)
to see what features are supported. I would suggest an extensible bit flag system, like:
n := vpc_ctl(..., GET_FEATURE_SIZE,...);
buf := [n]byte
n := vpc_ctl(..., GET_FEATURE_FLAGS, NULL, NULL, n, &buf);
Or something ascii where buf is a newline delimited list of features in the form of:
feature:switch.add=1
feature:switch.del=1
feature:vpcp.add=1
And this could just be a const char*
in the kernel someplace.
It would be nice if the VPC ID for a Port ID mapped cleanly into LLDP TLVs.
Right now VPC IDs for vpcp
s are random and don't retain any mention of the Chassis ID. Unlike a vmnic
, a vpcp
belongs to a vpcsw
and can not be moved between different vpcsw
devices. A vpcp
's VPC ID should therefore contain a hint of the parent vpcsw
so that there is some semantic equivilance with hardware switches and discoverability via tools/protocols such as LLDP.
It's not high priority and it is unclear how to make this happen without using bits above the Node in a VPC ID.
https://en.wikipedia.org/wiki/Link_Layer_Discovery_Protocol
WTB the last 24bits or first 24bits of the UUID to match the Port ID TLV from LLDP.
First attempt after having installed the prereqs mentioned in the README.md:
[16:57:37 trentm@bluesteel:~/fase/freebsd-vpc (master t:coal)]
$ vagrant up
Bringing machine 'compile' up with 'vmware_fusion' provider...
==> compile: Box 'jen20/FreeBSD-12.0-CURRENT-VPC' could not be found. Attempting to find and install...
compile: Box Provider: vmware_desktop, vmware_fusion, vmware_workstation
compile: Box Version: >= 0
The box 'jen20/FreeBSD-12.0-CURRENT-VPC' could not be found or
could not be accessed in the remote catalog. If this is a private
box on HashiCorp's Vagrant Cloud, please verify you're logged in via
`vagrant login`. Also, please double-check the name. The expanded
URL and error message are shown below:
URL: ["https://vagrantcloud.com/jen20/FreeBSD-12.0-CURRENT-VPC"]
Error: The requested URL returned error: 404 Not Found
Had to apply this diff:
diff --git a/Vagrantfile b/Vagrantfile
index 02c7527..dc3f934 100644
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -1,7 +1,7 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :
-freebsd_box = 'jen20/FreeBSD-12.0-CURRENT-VPC'
+freebsd_box = 'joyent/FreeBSD-12.0-CURRENT-VPC'
guest_disk_path = "#{File.dirname(__FILE__)}/vagrant/guest_disks"
Or should I have to "vagrant login" to get access to that image?
Second attempt:
[16:57:37 trentm@bluesteel:~/fase/freebsd-vpc (master t:coal)]
$ vagrant up
Bringing machine 'compile' up with 'vmware_fusion' provider...
==> compile: Box 'joyent/FreeBSD-12.0-CURRENT-VPC' could not be found. Attempting to find and install...
compile: Box Provider: vmware_desktop, vmware_fusion, vmware_workstation
compile: Box Version: >= 0
==> compile: Loading metadata for box 'joyent/FreeBSD-12.0-CURRENT-VPC'
compile: URL: https://vagrantcloud.com/joyent/FreeBSD-12.0-CURRENT-VPC
==> compile: Adding box 'joyent/FreeBSD-12.0-CURRENT-VPC' (v0.1.0) for provider: vmware_desktop
compile: Downloading: https://vagrantcloud.com/joyent/boxes/FreeBSD-12.0-CURRENT-VPC/versions/0.1.0/providers/vmware_desktop.box
==> compile: Successfully added box 'joyent/FreeBSD-12.0-CURRENT-VPC' (v0.1.0) for 'vmware_desktop'!
==> compile: Cloning VMware VM: 'joyent/FreeBSD-12.0-CURRENT-VPC'. This can take some time...
==> compile: Checking if box 'joyent/FreeBSD-12.0-CURRENT-VPC' is up to date...
==> compile: Verifying vmnet devices are healthy...
==> compile: Preparing network adapters...
==> compile: Starting the VMware VM...
==> compile: Waiting for the VM to receive an address...
==> compile: Forwarding ports...
compile: -- 22 => 2222
==> compile: Waiting for machine to boot. This may take a few minutes...
compile: SSH address: 127.0.0.1:2222
compile: SSH username: vagrant
compile: SSH auth method: private key
compile:
compile: Vagrant insecure key detected. Vagrant will automatically replace
compile: this with a newly generated keypair for better security.
compile:
compile: Inserting generated public key within guest...
compile: Removing insecure key from the guest if it's present...
compile: Key inserted! Disconnecting and reconnecting using new SSH key...
==> compile: Machine booted and ready!
==> compile: Setting hostname...
==> compile: Configuring network adapters within the VM...
==> compile: Exporting NFS shared folders...
==> compile: Preparing to edit /etc/exports. Administrator privileges will be required...
Password:
The nfsd service does not appear to be running.
Starting the nfsd service
==> compile: Mounting NFS shared folders...
==> compile: Running provisioner: file...
==> compile: Running provisioner: file...
==> compile: Running provisioner: file...
==> compile: Running provisioner: shell...
compile: Running: /var/folders/7n/tzb0b89x61d3bgkvd38468840000gq/T/vagrant-shell20180315-35921-56mwzz.sh
compile: Updating FreeBSD repository catalogue...
compile: FreeBSD repository is up to date.
compile: All repositories are up to date.
compile: Updating FreeBSD repository catalogue...
compile: FreeBSD repository is up to date.
compile: All repositories are up to date.
compile: The following 16 package(s) will be affected (of 0 checked):
compile:
compile: New packages to be INSTALLED:
compile: cockroach: 1.1.5
compile: git: 2.16.2
compile: vim-console: 8.0.1594
compile: go: 1.10,1
compile: bash: 4.4.19
compile: tmux: 2.6_1
compile: tree: 1.7.0
compile: expat: 2.2.5
compile: p5-Authen-SASL: 2.16_1
compile: p5-GSSAPI: 0.28_1
compile: p5-Digest-HMAC: 1.03_1
compile: p5-Error: 0.17025
compile: curl: 7.58.0_3
compile: libnghttp2: 1.31.0
compile: cvsps: 2.1_2
compile: libevent: 2.1.8_1
compile:
compile: Number of packages to be installed: 16
compile:
compile: The process will require 413 MiB more space.
compile: 80 MiB to be downloaded.
compile: [1/16] Fetching cockroach-1.1.5.txz:
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: . done
compile: [2/16] Fetching git-2.16.2.txz:
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: . done
compile: [3/16] Fetching vim-console-8.0.1594.txz:
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: . done
compile: [4/16] Fetching go-1.10,1.txz:
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: . done
compile: [5/16] Fetching bash-4.4.19.txz:
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: . done
compile: [6/16] Fetching tmux-2.6_1.txz:
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: . done
compile: [7/16] Fetching tree-1.7.0.txz:
compile: .
compile: .
compile: .
compile: .
compile: .. done
compile: [8/16] Fetching expat-2.2.5.txz:
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: . done
compile: [9/16] Fetching p5-Authen-SASL-2.16_1.txz:
compile: .
compile: .
compile: .
compile: .
compile: .. done
compile: [10/16] Fetching p5-GSSAPI-0.28_1.txz:
compile: .
compile: .
compile: .
compile: .
compile: .. done
compile: [11/16] Fetching p5-Digest-HMAC-1.03_1.txz:
compile: .. done
compile: [12/16] Fetching p5-Error-0.17025.txz:
compile: .
compile: .
compile: . done
compile: [13/16] Fetching curl-7.58.0_3.txz:
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: . done
compile: [14/16] Fetching libnghttp2-1.31.0.txz:
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: . done
compile: [15/16] Fetching cvsps-2.1_2.txz:
compile: .
compile: .
compile: .
compile: .
compile: .
compile: . done
compile: [16/16] Fetching libevent-2.1.8_1.txz:
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: . done
compile: Checking integrity...
compile: done (0 conflicting)
compile: [1/16] Installing p5-GSSAPI-0.28_1...
compile: [1/16] Extracting p5-GSSAPI-0.28_1:
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: . done
compile: [2/16] Installing p5-Digest-HMAC-1.03_1...
compile: [2/16] Extracting p5-Digest-HMAC-1.03_1:
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .. done
compile: [3/16] Installing libnghttp2-1.31.0...
compile: [3/16] Extracting libnghttp2-1.31.0:
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .. done
compile: [4/16] Installing expat-2.2.5...
compile: [4/16] Extracting expat-2.2.5:
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .. done
compile: [5/16] Installing p5-Authen-SASL-2.16_1...
compile: [5/16] Extracting p5-Authen-SASL-2.16_1:
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: . done
compile: [6/16] Installing p5-Error-0.17025...
compile: [6/16] Extracting p5-Error-0.17025:
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .. done
compile: [7/16] Installing curl-7.58.0_3...
compile: [7/16] Extracting curl-7.58.0_3:
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: . done
compile: [8/16] Installing cvsps-2.1_2...
compile: [8/16] Extracting cvsps-2.1_2:
compile: .
compile: .
compile: .
compile: .
compile: .. done
compile: [9/16] Installing libevent-2.1.8_1...
compile: [9/16] Extracting libevent-2.1.8_1:
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: . done
compile: [10/16] Installing cockroach-1.1.5...
compile: ===> Creating groups.
compile: Creating group 'cockroach' with gid '771'.
compile: ===> Creating users
compile: Creating user 'cockroach' with uid '771'.
compile: [10/16] Extracting cockroach-1.1.5:
compile: .
compile: .
compile: .
compile: .. done
compile: [11/16] Installing git-2.16.2...
compile: ===> Creating groups.
compile: Creating group 'git_daemon' with gid '964'.
compile: ===> Creating users
compile: Creating user 'git_daemon' with uid '964'.
compile: [11/16] Extracting git-2.16.2:
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: . done
compile: [12/16] Installing vim-console-8.0.1594...
compile: [12/16] Extracting vim-console-8.0.1594:
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: . done
compile: [13/16] Installing go-1.10,1...
compile: [13/16] Extracting go-1.10,1:
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: . done
compile: [14/16] Installing bash-4.4.19...
compile: [14/16] Extracting bash-4.4.19:
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: . done
compile: [15/16] Installing tmux-2.6_1...
compile: [15/16] Extracting tmux-2.6_1:
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .. done
compile: [16/16] Installing tree-1.7.0...
compile: [16/16] Extracting tree-1.7.0:
compile: .
compile: .
compile: .
compile: .
compile: .
compile: .. done
compile: Message from cvsps-2.1_2:
compile:
compile: ===> NOTICE:
compile:
compile: The cvsps port currently does not have a maintainer. As a result, it is
compile: more likely to have unresolved issues, not be up-to-date, or even be removed in
compile: the future. To volunteer to maintain this port, please create an issue at:
compile:
compile: https://bugs.freebsd.org/bugzilla
compile:
compile: More information about port maintainership is available at:
compile:
compile: https://www.freebsd.org/doc/en/articles/contributing/ports-contributing.html#maintain-port
compile: Message from git-2.16.2:
compile:
compile: ------------------------------------------------------------------------
compile: *************************** GITWEB *************************************
compile: If you installed the GITWEB option please follow these instructions:
compile:
compile: In the directory /usr/local/share/examples/git/gitweb you can find all files to
compile: make gitweb work as a public repository on the web.
compile:
compile: All you have to do to make gitweb work is:
compile: 1) Copy the files /usr/local/share/examples/git/gitweb/* to a directory on
compile: your web server (e.g. Apache2) in which you are able to execute
compile: CGI-scripts.
compile: 2) In gitweb.cgi, adjust the variable $projectroot to point to
compile: your git repository (that is where you have your *.git project
compile: directories).
compile: *************************** GITWEB *************************************
compile:
compile: *************************** CONTRIB ************************************
compile: If you installed the CONTRIB option please note that the scripts are
compile: installed in /usr/local/share/git-core/contrib. Some of them require
compile: other ports to be installed (perl, python, etc), which you may need to
compile: install manually.
compile: *************************** CONTRIB ************************************
compile: ------------------------------------------------------------------------
compile: chsh: user information updated
compile: chsh: user information updated
==> compile: Running provisioner: shell...
compile: Running: /var/folders/7n/tzb0b89x61d3bgkvd38468840000gq/T/vagrant-shell20180315-35921-1ehbxuu.sh
compile: go get -u github.com/ahmetb/govvv
compile: go get -u github.com/jteeuwen/go-bindata/...
compile: go get -u github.com/golang/dep/cmd/dep
compile: go get -u github.com/sean-/cfgt
compile: go get -u github.com/hashicorp/packer
compile: go get -u github.com/alecthomas/gometalinter
compile: gometalinter --install
compile: Installing:
compile: deadcode
compile: dupl
compile: errcheck
compile: gas
compile: goconst
compile: gocyclo
compile: goimports
compile: golint
compile: gosimple
compile: gotype
compile: gotypex
compile: ineffassign
compile: interfacer
compile: lll
compile: maligned
compile: megacheck
compile: misspell
compile: nakedret
compile: safesql
compile: staticcheck
compile: structcheck
compile: unconvert
compile: unparam
compile: unused
compile: varcheck
compile: vet
compile: cd db/migrations && /opt/gopath/bin/go-bindata -o bindata.go -pkg migrations -ignore '(~|\.bak)$' -prefix crdb crdb/
compile: mkdir -p ./bin
compile: govvv build -ldflags "-X main.DocsDate=2018-02-28T23:59:59Z" -o bin/vpc ./cmd/vpc
compile: bin/vpc shell autocomplete bash -d docs/bash.d/ | cat
compile: {"level":"info","time":"2018-03-16T00:05:56.503745447Z","message":"Installation completed successfully."}
compile: bin/vpc docs man | cat
compile: {"level":"info","MANDIR":"./docs/man","section":8,"time":"2018-03-16T00:05:56.513141055Z","message":"Installing man(1) pages"}
compile: {"level":"info","time":"2018-03-16T00:05:56.559302788Z","message":"Installation completed successfully."}
compile: bin/vpc docs md | cat
compile: {"level":"info","doc.markdown-dir":"./docs/md","time":"2018-03-16T00:05:56.567074725Z","message":"Installing markdown documentation"}
compile: {"level":"info","time":"2018-03-16T00:05:56.596437675Z","message":"Installation completed successfully."}
compile: {"level":"info","cmd":"migrate","time":"2018-03-16T00:05:56.603011974Z"}
compile: {"level":"info","address":"172.27.10.11:26257","network":"tcp","time":"2018-03-16T00:05:56.614463150Z","message":"Dialing PostgreSQL server"}
compile: {"level":"error","err":"dial tcp 172.27.10.11:26257: i/o timeout","time":"2018-03-16T00:06:06.638322607Z","message":"connect failed"}
compile: {"level":"fatal","error":"unable to create a new DB connection pool: dial tcp 172.27.10.11:26257: i/o timeout","time":"2018-03-16T00:06:06.639594557Z","message":"unable to create database pool"}
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.
Given this I'm not sure what to do now:
$ vagrant up
Bringing machine 'compile' up with 'vmware_fusion' provider...
==> compile: Checking if box 'joyent/FreeBSD-12.0-CURRENT-VPC' is up to date...
==> compile: Machine is already running.
$ vagrant box list
joyent/FreeBSD-12.0-CURRENT-VPC (vmware_desktop, 0.1.0)
$ vagrant status
Creating disk 'cn1_guests.vmdk'
Virtual disk creation successful.
Creating disk 'cn2_guests.vmdk'
Virtual disk creation successful.
Current machine states:
compile running (vmware_fusion)
crdb1 not created (vmware_fusion)
crdb2 not created (vmware_fusion)
crdb3 not created (vmware_fusion)
cn1 not created (vmware_fusion)
cn2 not created (vmware_fusion)
This environment represents multiple VMs. The VMs are all listed
above with their current state. For more information about a specific
VM, run `vagrant status NAME`.
Given a vpc descriptor, it should be possible to query the VPC ID of the descriptor.
mdata
clientmdata
server.ssh/authorized_key
entrycmd
support (i.e. provider-level doas
/sudo
) - optional and disabled by defaulthttps://app.vagrantup.com/joyent/boxes/FreeBSD-12.0-CURRENT-VPC
How is that image built? Sean and Sam didn't know. For example, if (for starters) I wanted to update /home/vagrant/.profile like so:
[vagrant@freebsd-compile ~]$ diff -u .profile.bak .profile
--- .profile.bak 2018-03-16 18:51:59.288037000 +0000
+++ .profile 2018-03-16 18:49:45.273190000 +0000
@@ -29,4 +29,4 @@
export GOPATH=/opt/gopath
export PATH=$GOPATH/bin:$PATH
-cd /opt/gopath/src/github.com/sean-/vpc
+cd /opt/gopath/src/github.com/joyent/freebsd-vpc
How would I go about doing that and getting a new image?
In the guest we need to set the number of queues. On the CLI the command is:
ethtool -L enp0s6 combined <nqueues>
and you verify with:
ethtool -l enp0s6
On a memory-bound system this is the difference between 56Gbps for the guest and 65Gbps for the guest.
Tab completion already works, however it only works for verbs and argument names, not argument values. When tab completing a VPC ID, the UUID needs to be looked up and completed using a prefix search. i.e.
# vpc list -t vpcsw
TYPE ID UNIT NAME
vpcsw da64c3f3-095d-91e5-df01-5aabcfc52468 vpcsw0
TOTAL 1
# vpc sw destroy --switch-id=da[tab]
Should work.
You shouldn't have to lookup the nmdm(4)
device name to attach to it via cu(1)
.
flow-id
is disabled atm. It's not required for the performance we're getting atm, but it would be good to figure out why we need to have this disabled.
It is possible to re-add the same vpcp
to a vpcsw
. Both a vpcp
needs to prevent reuse (pretty certain this is the case now) and the vpcsw
needs to ensure uniqueness for all vpcp
s added to itself.
This issue can be closed if a vpcp
can only be assigned to a vpcsw
and can not be reused. At present vpcp
s are created by the vpcsw
however this is going to be broken out so that a vpcp
's lifecycle is independent of a vpcsw
.
When a vpcp
is plugged into a vpcsw
or a vmnic
is added to a vpcp
, implicitly commit/freeze the object in question and move its internal state to an immutable state.
Useful for iterating
This came up in conversation with someone at AsiaBSD who was interested in being able to use vpc(4)
to participate in MPLS networks. I never thought about this before, but we could bridge between vpc(4)
and MPLS networks using hosts that spanned the two encapsulation technologies in order to bridge VPC hosts across MPLS virtualized circuits.
I'm putting this on the back-burner as a really clever idea that someone else can implement.
When running CI testing, two or more hosts should be spun up and perform basic regression testing between the two hosts. Tests should include:
iperf
benchmarking with low-watermark alarmscat random-file | nc
&& md5
verification for stream integrity checking/usr/src/.envrc
:
export STRIP=/usr/local/bin/strip
export YACC=/usr/local/bin/yacc
export OBJCOPY=/usr/local/bin/objcopy
export NM=/usr/local/bin/nm
export LD=/usr/local/bin/ld.lld60
export CC=/usr/local/bin/clang60
export CXX=/usr/local/bin/clang++60
export CPP=/usr/local/bin/clang-cpp60
export CLANG_BOOTSTRAP=no
export KERNFAST=1
# export MAKEOBJDIRPREFIX=/usr/obj
export TARGET_ARCH=amd64
export TARGET=amd64
#export CROSS_TOOLCHAIN=amd64-gcc
export CROSS_TOOLCHAIN=llvm60
PSA: periodically it's required to build kernel with env -u KERNFAST make...
/etc/src.conf
:
MK_ELFTOOLCHAIN_BOOSTRAP=no
MK_ELFTOOLCHAIN=no
WITH_EXTRA_TCP_STACKS=true
WITHOUT_AMD=true
WITHOUT_APM=true
WITHOUT_ATM=true
WITHOUT_AUDIT=true
WITHOUT_AUTOFS=true
WITHOUT_BINUTILS_BOOTSTRAP=true
WITHOUT_BINUTILS=true
WITHOUT_BLUETOOTH=true
WITHOUT_BSDINSTALL=true
WITHOUT_CLANG_BOOTSTRAP=true
WITHOUT_CLANG=true
WITHOUT_CTM=true
WITHOUT_ELFTOOLCHAIN_BOOTSTRAP=true
WITHOUT_FLOPPY=true
WITHOUT_FREEBSD_UPDATE=true
WITHOUT_FTP=true
WITHOUT_GAMES=true
#WITHOUT_GSSAPI=true
WITHOUT_HESIOD=true
WITHOUT_HYPERV=true
WITHOUT_INETD=true
WITHOUT_IPFILTER=true
WITHOUT_KERBEROS=true
WITHOUT_LIB32=true
WITHOUT_LLD_BOOTSTRAP=true
WITHOUT_LLD=true
WITHOUT_LLDB=true
WITHOUT_NDIS=true
WITHOUT_NIS=true
# Use net/chrony instead
#WITHOUT_NTP=false
WITHOUT_PF=true
WITHOUT_QUOTAS=true
WITHOUT_RBOOTD=true
# WITHOUT_RESCUE must be commented out, not set to false
#WITHOUT_RESCUE=true
WITHOUT_ROUTED=true
WITHOUT_SENDMAIL=true
WITHOUT_SVNLITE=true
WITHOUT_TESTS_SUPPORT=true
WITHOUT_TESTS=true
WITHOUT_TIMED=true
WITHOUT_TOOLCHAIN=true
WITHOUT_UNBOUND=true
WITHOUT_WIRELESS_SUPPORT=true
WITHOUT_WIRELESS=true
VTEP support in vpc agent
is a required prerequisite for vpclink(4).
gcache
kqueue(2)
asdine/storm
vpc_ctl(2)
write the results back to the kerneliflib(9)
drivervpc(4)
functionality and performanceGeneralize the vpc vmnic genmac
command to be something closer to:
vpc genid --type=switch
vpc genid --type=vmnic
Fixes: #35
vpc vtep
subcommand - #12vpc vm create
- #27vpc vm run
- #28vpc vm destroy
- #29vpc vtep dump
- debugging aidvpc vm list
vmnic list
- already possible with vpc list -t vmnic
, wtb symmetric UXvpcsw get
using info from vpc_ctl(2)
vmnic set
option: mac
- currently inferred from VPC IDvmnic set
option: mtu
- defaults to 1500port connect
interface - not currently expoesdvpc vm list
- wtb package that handles state of individual bhyve VMsvpc vm get
vpc account list
- list VNIs for each accountvpc account destroy
vpc subnet create
- Adds a subnet to a vpcsw
vpc subnet list
- Lists subnets on a given vpcsw
vpc subnet destroy
- Removes a given subnetvpc mux
subcommand - #41vpc hostlink
subcommand - #40There are more, but this was the identified critical path.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.