Description
When we create an instance, we create an OPTE port and currently a VNIC over that. We correctly destroy this state when the instance is completely deleted, but not when it's just stopped. If you stop and re-start an instance with the CLI, you should see something like this:
bnaecker@feldspar : ~/omicron $ pfexec opteadm list-ports
LINK MAC ADDRESS IPv4 ADDRESS STATE
opte0 A8:40:25:F2:86:DB 172.30.0.5 running
opte1 A8:40:25:F2:86:DB 172.30.0.5 running
bnaecker@feldspar : ~/omicron $
That's two OPTE ports for the guest, with the same exact information. It's not really a bug in OPTE that this doesn't raise an error, since it's theoretically possible to get to this state normally. (The current implementation in Nexus will never assign the same MAC twice, but that's not necessary, rather a convenience.) The sled-agent needs to also destroy this state when it stops an instance, consistent with the idea that stopped instances consume no resources on the sled.