You have a shared Ethernet adapter (SEA) with VLAN tagging that services mission-critical websites. A new website requires an additional VLAN to be attached to the SEA. Outages are difficult to arrange. You can not use dynamic logical partitioning (DLPAR) to add VLANs to an existing virtual adapter on the SEA, because the adapter is in use as part of the SEA configuration.
In the initial setup of the SEA with VLAN tagging, a virtual Ethernet adapter is required to trunk, or bridge, traffic. This adapter must have the default port virtual LAN ID (PVID) to allow the virtual Ethernet adapter to communicate with other virtual Ethernet adapters that have the same PVID. You can also configure the virtual Ethernet adapter to communicate over multiple VLANs by selecting IEEE 802.1 compatible adapter. (For details on how to set up an SEA, see Resources.)
By creating a separate virtual adapter for each additional VLAN, the SEA configuration becomes more modular, allowing you to add single adapters with new VLANs to the SEA. Similarly, when you need to retire a VLAN from the SEA, you can remove its adapter from the SEA's list of virtual adapters. This modular approach saves having to remove and re-create the SEA, which involves an outage.
This modular approach can best be explained by looking at an existing configuration and seeing how it can be improved.
Existing configuration: Multiple VLANs on one adapter
The existing configuration shows that one virtual adapter is used for VLAN tagged packets.
List VLANs on the virtual adapter
You can list the SEA's existing virtual adapters by logging into the virtual I/O (VIO)
server as padmin and running the lsdev command for the
SEA. The example in Listing 1 below includes a list of virtual adapters,
shown as virt_adapters. There is only one adapter in this
list: ent3. As it is the only one, it has also been set as the default adapter (see
pvid_adapter).
Listing 1. List attributes of the SEA
lsdev -dev ent5 -attr attribute value description accounting disabled Enable per-client accounting of network statistics ctl_chan ent4 Control Channel adapter for SEA failover gvrp no Enable GARP VLAN Registration Protocol (GVRP) ha_mode auto High Availability Mode jumbo_frames no Enable Gigabit Ethernet Jumbo Frames large_receive no Enable receive TCP segment aggregation largesend 0 Enable Hardware Transmit TCP Resegmentation netaddr 0 Address to ping pvid 1 PVID to use for the SEA device pvid_adapter ent3 Default virtual adapter to use for non-VLAN-tagged packets qos_mode disabled N/A real_adapter ent2 Physical adapter associated with the SEA thread 1 Thread mode enabled (1) or disabled (0) virt_adapters ent3 List of virtual adapters associated with the SEA (comma separated) |
All VLANs using external access go through ent3. This virtual adapter has been set up with a PVID of 1 and three additional VLANs: 100, 200, and 300. The new website requires VLAN tagging on the SEA using VLAN 400.
Rebuild the virtual adapter and the SEA
The virtual adapter ent3 has additional VLANs 100, 200, and 300 attached to it. You can not add another VLAN (VLAN 400) to that adapter while the adapter is in use as part of the SEA. To add VLAN 400 to the existing adapter would require blocking all traffic through that adapter, removing the SEA, creating a new adapter with all required additional VLANs, and then creating the SEA again.
Modular approach: Separate VLANs, separate adapters
The alternative is to add a new virtual adapter to the VIO server for the new VLAN, and then assign it to the SEA.
Create a new virtual adapter for the VIOS LPAR
Using the Hardware Management Console (HMC), you can create a new virtual adapter (ent6) with a throwaway PVID for untagged packets and an additional VLAN of 400. You do so through the HMC using DLPAR and by editing the profile for the VIO server, ready for the next time it is activated via the HMC.
Assign a virtual adapter to the SEA
When the new adapter has been created on the VIO server, you need to assign it
to the SEA. You do so through the VIO server command line—without
removing and recreating the SEA device. You just update the list of virtual
adapters that the SEA uses with the chdev command.
Note that the list of virtual adapters replaces the existing list of adapters, so
make sure you include all the adapters you want in the new SEA
configuration, not just the new virtual adapter you have created. The VIO command
used is shown below. The virtual adapters should be in a comma-separated list.
chdev -dev ent5 -virt_adapters ent3,ent6 |
If you are using a dual-VIO server configuration with failover, you must run this command on the SEA on both VIO servers. The device names may be different on the second VIO server.
Once the new adapter is allocated to the active SEA, traffic for VLAN 400 should start going through the SEA.
At this stage, the SEA has two virtual adapters for VLAN tagging. The original adapter
(ent3) tags traffic for VLANs 100, 200, and 300, and the new adapter (ent6) handles
traffic for VLAN 400. These adapters can be listed via the lsdev
command again, as you can see below in Listing 2.
Listing 2. List attributes of the SEA
lsdev -dev ent5 -attr attribute value description accounting disabled Enable per-client accounting of network statistics ctl_chan ent4 Control Channel adapter for SEA failover gvrp no Enable GARP VLAN Registration Protocol (GVRP) ha_mode auto High Availability Mode jumbo_frames no Enable Gigabit Ethernet Jumbo Frames large_receive no Enable receive TCP segment aggregation largesend 0 Enable Hardware Transmit TCP Resegmentation netaddr 0 Address to ping pvid 1 PVID to use for the SEA device pvid_adapter ent3 Default virtual adapter to use for non-VLAN-tagged packets qos_mode disabled N/A real_adapter ent2 Physical adapter associated with the SEA thread 1 Thread mode enabled (1) or disabled (0) virt_adapters ent3,ent6 List of virtual adapters associated with the SEA (comma separated) |
You can see the VLANs that these adapters use via the entstat
command for the SEA. The relevant fields are displayed here:
entstat -all ent5 Port VLAN ID: 1 VLAN Tag IDs: 100 200 300 400 |
The PVID is set to 1, which is used for untagged packets. The additional VLANs (100, 200, 300, and 400) are also shown.
If the design of your organization's network needs to change, you may need to remove a VLAN from the SEA. Perhaps that VLAN will be used elsewhere, or maybe it's being phased out. Whatever the reason, how would you go about removing VLAN 200, which is on the adapter servicing two other valid VLANs that need to be kept (100 and 300)? The unfortunate answer is that you would need to remove the SEA and add it again with a new adapter that has only the VLANs you want to use.
If each VLAN is on its own separate adapter, you can add or remove any VLAN by changing the list of virtual adapters on the SEA.
One of the virtual adapters must be assigned as the default adapter. It is used
for untagged packets. If there is only one virtual adapter, it should be the default
adapter. You set the default using the chdev command.
The attribute is called pvid_adapter.
If you want to remove a virtual adapter that is also acting as the default adapter, you
must first set a new default adapter using the chdev
command. With that done, you can remove the obsolete adapter by excluding it
from the list of virtual adapters on the SEA.
By using a separate virtual adapter for each tagged VLAN, it's a minute's work to start additional VLAN traffic to the SEA. Having tagged VLANs on separate adapters is especially helpful if you need to remove a VLAN that is no longer used through the SEA.
Learn
-
Configuring
a Shared Ethernet Adapter from IBM provides the information you need to set up
your SEA.
-
Learn how to set up SEA
failover on dual VIO servers.
-
Find helpful VIO tips and tricks in the developerWorks article
VIO
cheat sheet (Christian Pruett, July 2010).
-
Stay current with developerWorks
technical events and webcasts focused on a variety of IBM products and IT industry
topics.
-
Attend a free developerWorks
Live! briefing to get up to speed quickly on IBM products and tools as well as IT
industry trends.
-
Follow developerWorks on Twitter.
-
AIX and UNIX developerWorks
zone: The AIX and UNIX zone provides a wealth of information relating to
all aspects of AIX systems administration and expanding your UNIX skills.
-
New to AIX and UNIX?
Visit the New to AIX and UNIX page to learn more.
-
Technology
bookstore: Browse the technology bookstore for books on this and other
technical topics.
-
Check out my blog, AIX
Down Under, on IBM developerWorks. It has lots of tips and practical examples for
AIX administrators, as well as tips for beginners and some more advanced topics.
-
Follow me on Twitter and keep up with
my blog updates.
Get products and technologies
-
Try out IBM
software for free. Download a trial version, log into an online trial, work with
a product in a sandbox environment, or access it through the cloud. Choose from over 100 IBM product trials.
Discuss
-
Get involved in the My developerWorks
community. Connect with other developerWorks users while exploring the
developer-driven blogs, forums, groups, and wikis.
- Follow developerWorks on Twitter.
-
Participate in developerWorks blogs and get involved in the developerWorks community.
- Get involved in the My developerWorks community.
-
Participate in the AIX and UNIX® forums:
- AIX Forum
- AIX Forum for developers
- Cluster Systems Management
- Performance Tools Forum
- Virtualization Forum
- More AIX and UNIX Forums

Anthony English is an independent contractor from Sydney, Australia. He has worked on AIX systems since 1991 and writes the IBM developerWorks blog, AIX Down Under. He is also recognized as an IBM Champion for Power Systems. You can reach Anthony at anthonyenglish@levitar.com.au.




