8.5.1. SEA without VLAN Tagging

If VLAN tagging is not used (extremely unlikely for most environments), only 2 adapters are required for a SEA, a trunking adapter for connection to the virtual hypervisor switch and a physical adapter for the connection to an external network. The trunking adapter can be IEEE802.1q compatible, but it does not have to be, since VLAN tagging is not used in our example. Any VLAN can be used for the PVID to be specified; the selected VLAN ID is only used within the virtual switch.

As already discussed in the chapter on Virtual Ethernet, each connected external network should use its own virtual switch so that the externally separated networks are not connected together within the managed system. Therefore we first create a new virtual switch with the command “ms addvswitch“:

$ ms addvswitch ms05 ETHTEST1
$

The new virtual switch ETHTEST1 is not yet aware of any VLANs:

$ ms lsvswitch ms05
NAME  VSWITCH             SWITCH_MODE  VLAN_IDS
ms05  ETHNAS            VEB          1,2,13,19
ms05  ETHERNET0(Default)  VEB          1,2,100,110,200
ms05  ETHCTRL           VEB          1,2
ms05  ETHTEST1            VEB          none
$

A free slot number is needed for the required trunking adapter. We therefore list all the virtual slots used, in order to select a suitable free slot number:

$ lpar lsvslot ms05-vio1
SLOT  REQ  ADAPTER_TYPE   STATE  DATA
0     Yes  serial/server  1      remote: (any)/any connect_status=unavailable hmc=1
1     Yes  serial/server  1      remote: (any)/any connect_status=unavailable hmc=1
10    No   eth            1      PVID=100 VLANS= ETHERNET0 A556570DFD0A
20    No   eth            1      PVID=1 VLANS= ETHCTRL A556570DFD14
21    No   eth            1      TRUNK(1) IEEE PVID=1 VLANS=100,110 ETHERNET0 A556570DFD15
22    No   eth            1      TRUNK(1) IEEE PVID=2 VLANS=200 ETHERNET0 A556570DFD16
40    No   eth            1      PVID=2 VLANS= ETHCTRL A556570DFD28
41    No   eth            1      TRUNK(1) IEEE PVID=1 VLANS=13 ETHNAS A556570DFD29
42    No   eth            1      TRUNK(1) IEEE PVID=2 VLANS=19 ETHNAS A556570DFD2A
$

We decided to use the free slot 51 as the slot number for the trunking adapter. The trunking adapter can be created with the command “lpar addeth” (add virtual ethernet). A trunking priority (1-15) must be specified. In addition, the virtual switch to be used and the slot number for the adapter must be specified. We use VLAN ID 1 as the PVID here:

$ lpar addeth -t 1 -s ETHTEST1 ms05-vio1 51 1
$

(Note: Specifying a trunking priority makes the virtual Ethernet adapter a trunking adapter!)

The “vios lssea” command offers the option ‘-c‘ (candidates) to list possible candidates for a shared Ethernet adapter. Both candidates for the physical adapter of the SEA and candidates for the trunking adapter of the SEA are listed:

$ vios lssea -c ms05-vio1
NAME   STATUS     PHYSLOC                      PARENT  DESCRIPTION
ent3   Available  U78AA.001.VYRGU0Q-P1-C7-T4   pci1    4-Port Gigabit Ethernet PCI-Express Adapter (e414571614102004)
ent2   Available  U78AA.001.VYRGU0Q-P1-C7-T3   pci1    4-Port Gigabit Ethernet PCI-Express Adapter (e414571614102004)
ent1   Available  U78AA.001.VYRGU0Q-P1-C7-T2   pci1    4-Port Gigabit Ethernet PCI-Express Adapter (e414571614102004)
ent38  Available  U8205.E6C.05E4E5Q-V1-C51-T1  vio0    Virtual I/O Ethernet Adapter (l-lan)
$

The ‘-c‘ option is very useful on larger systems with a large number of adapters. Only unused adapters are displayed. Adapters that are already in use in other SEAs are not listed.

The trunking adapter that has just been created in slot 51, is the Ethernet adapter ent38. The physical port ent1 is to be used for the newly created SEA. The command to create a SEA is “vios mksea” (make SEA). At least the physical adapter for the SEA, the first argument after the name of the virtual I/O server, and a trunking adapter must be specified:

$ vios mksea ms05-vio1 ent1 ent38
SEA ent39 created
$

If you want to see all adapters belonging to a SEA (virtual and physical), the option ‘-a‘ (all adapters) of “vios lssea” can be used:

$ vios lssea -a ms05-vio1 ent39
SEA    LNAGG  NAME   TYPE     STATUS  SPEED    VSWITCH   MODE  PHYSLOC
ent39  -      ent1   real     Up      1000 Mbps Full Duplex  -         -     U78AA.001.VYRGU0Q-P1-C7-T2
ent39  -      ent38  virtual  -       -        ETHTEST1  VEB   U8205.E6C.05E4E5Q-V1-C51-T1
$

The physical adapter ent1 (column TYPE, value real) has the status Up and currently has a speed of 1000 Mbps. The only trunking adapter (column TYPE, value virtual) is connected to the virtual switch ETHTEST1.

The newly created SEA is shown in figure 8.3. The client LPAR in the upper left, forwards an untagged Ethernet frame to the virtual hypervisor switch ETHTEST1 via the virtual Ethernet adapter ent0 of the LPAR (with PVID 1). The hypervisor adds a VLAN header to the frame using the PVID 1 as the VLAN and forwards the frame to the trunking port for VLAN 1. There, the VLAN tag is removed again (since the VLAN ID matches the PVID of the trunking port) and then the frame is forwarded to the SEA ent39 of the virtual I/O server as an untagged Ethernet frame. The SEA in turn forwards the Ethernet frame using its physical adapter ent1 to the connected external network as an untagged frame.

Transport of an Ethernet frame with tagging and untagging on the virtual switch ETHTEST1.
Figure 8.3: Transport of an Ethernet frame with tagging and untagging on the virtual switch ETHTEST1.

Untagged frames from the external network to an LPAR within the managed system take the reverse route.

Client LPARs must use PVID 1 if they want to exchange data with the outside world, as there is only a trunking port for VLAN 1!