When you add a virtual switch or virtual network device to a domain, you can specify its device number by setting the id property.
# ldm add-vsw [id=switch-id] vswitch-name ldom # ldm add-vnet [id=network-id] if-name vswitch-name ldom
Each virtual switch and virtual network device of a domain has a unique device number that is assigned when the domain is bound. If a virtual switch or virtual network device was added with an explicit device number (by setting the id property), the specified device number is used. Otherwise, the system automatically assigns the lowest device number available. In that case, the device number assigned depends on how virtual switch or virtual network devices were added to the system. The device number eventually assigned to a virtual switch or virtual network device is visible in the output of the ldm list-bindings command when a domain is bound.
The following example shows that the primary domain has one virtual switch, primary-vsw0. This virtual switch has a device number of 0 (switch@0).
primary# ldm list-bindings primary ... VSW NAME MAC NET-DEV DEVICE DEFAULT-VLAN-ID PVID VID MTU MODE primary-vsw0 00:14:4f:fb:54:f2 nxge0 switch@0 1 1 5,6 1500 ...
The following example shows that the ldg1 domain has two virtual network devices: vnet and vnet1. The vnet device has a device number of 0 (network@0) and the vnet1 device has a device number of 1 (network@1).
primary# ldm list-bindings ldg1 ... NETWORK NAME SERVICE DEVICE MAC MODE PVID VID MTU vnet primary-vsw0@primary network@0 00:14:4f:fb:e0:4b hybrid 1 1500 ... vnet1 primary-vsw0@primary network@1 00:14:4f:f8:e1:ea 1 1500 ...
When a domain with a virtual switch is running the Oracle Solaris OS, the virtual switch has a network interface, vswN. However, the network interface number of the virtual switch, N, is not necessarily the same as the device number of the virtual switch, n.
Similarly, when a domain with a virtual network device is running the Oracle Solaris OS, the virtual network device has a network interface, vnetN. However, the network interface number of the virtual network device, N, is not necessarily the same as the device number of the virtual network device, n.
Caution - The Oracle Solaris OS preserves the mapping between the name of a network interface and a virtual switch or virtual network based on the device number. If a device number is not explicitly assigned to a virtual switch or virtual network device, its device number can change when the domain is unbound and is later bound again. In that case, the network interface name assigned by the OS running in the domain can also change and break the existing configuration of the system. This might happen, for example, when a virtual switch or a virtual network interface is removed from the configuration of the domain.
You cannot use the ldm list-* commands to directly determine the Oracle Solaris OS network interface name that corresponds to a virtual switch or virtual network device. However, you can obtain this information by using a combination of the output from ldm list -l command and from the entries under /devices on the Oracle Solaris OS.
In this example procedure, guest domain ldg1 contains two virtual network devices, net-a and net-c. To find the Oracle Solaris OS network interface name in ldg1 that corresponds to net-c, do the following. This example also shows differences if you are looking for the network interface name of a virtual switch instead of a virtual network device.
# ldm list -l ldg1 ... NETWORK NAME SERVICE DEVICE MAC net-a primary-vsw0@primary network@0 00:14:4f:f8:91:4f net-c primary-vsw0@primary network@2 00:14:4f:f8:dd:68 ...
The virtual network device number for net-c is 2 (network@2).
To determine the network interface name of a virtual switch, find the virtual switch device number, n as switch@n.
# uname -n ldg1 # find /devices/virtual-devices@100 -type c -name network@2\* /devices/virtual-devices@100/channel-devices@200/network@2:vnet1
The network interface name is the part of the entry after the colon; that is, vnet1.
To determine the network interface name of a virtual switch, replace the argument to the -name option with virtual-network-switch@n\*. Then, find the network interface with the name vswN.
# ifconfig vnet1 vnet1: flags=1000842<BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3 inet 0.0.0.0 netmask 0 ether 0:14:4f:f8:dd:68