dropdown menu

POWERVM - SEA

Shared Ethernet Adapter (SEA)

A SEA can be used to connect a physical Ethernet network to a virtul Ethernet network. The SEA hosted in the Virtual I/O Server acts as a layer-2 bridge between the internal and external network. With Shared Ethernet Adapters on the Virtual I/O Server, virtual Ethernet adapters on client logical partitions can send and receive outside network traffic.

Shared Ethernet Adapter is a Virtual I/O Server component that bridges a physical Ethernet adapter and one or more virtual Ethernet adapters:
-The real adapter can be a physical Ethernet adapter, a Link Aggregation or EtherChannel device, or a Logical Host Ethernet Adapter . The real adapter cannot be another Shared Ethernet Adapter or a VLAN pseudo-device.
-The virtual Ethernet adapter (trunk adpater in the SEA) must be created with the following settings:


Adapter ID: Any ID for the Virtual ethernet adapter
Port Virtual Ethernet: PVID given to this adapter (usually a VLAN ID which is not used at any other adapter to avoid untagging packets)
IEE 802.1q: Additional VLAN IDs can be specified here
Ethernet bridging: This checkbox enables accessing external networks
Priority: For SEA Failover mode, you can specify which SEA should be the primary (here it is the secondary SEA)


--------------------------------------------------

A Shared Ethernet Adapter provides access by connecting the internal VLANs with the VLANs on the external switches. Using this connection, logical partitions without physical adapters can share the IP subnet with stand-alone systems and other external logical partitions. (A virtual Ethernet adapter connected to the SEA must have the Access External Networks check box enabled.)

The Shared Ethernet Adapter forwards outbound packets received from a virtual Ethernet adapter to the external network and forwards inbound packets to the appropriate client logical partition over the virtual Ethernet link to that logical partition.

IF SEA failover has been configured leave SEA without IP addresses. (It makes maintenance of SEA also easier)

Checking SEA on VIO server:
padmin@vios1: / # lsdev -dev ent* | grep Shared
ent8    Available       Shared Ethernet Adapter

padmin@vios1: / # lsdev -dev ent8 -attr | grep adapter
pvid_adapter  ent4     Default virtual adapter to use for non-VLAN-tagged packets         True
real_adapter  ent0     Physical adapter associated with the SEA                           True

---------------------------------------------------

Quality of Service

Quality of Service (QoS) is a Shared Ethernet Adapter feature which infulences bamdwidth. QoS allows the Virtual I/O Server to give a higher priority to some types of packets. Shared Ethernet Adapter on the VIO Server can inspect bridged VLAN-tagged traffic for the VLAN priority field in the VLAN header. The 3-bit VLAN priority field allows each individual packet to be prioritized with a value from 0 to 7 to distinguish more important traffic from less important traffic. More important traffic is sent preferentially and uses more Virtual I/O Server bandwidth than less important traffic.

---------------------------------------------------

PVID:

The SEA directs packets based on the VLAN ID tags. One of the virtual adapters in the SEA must be designated (at creation) as the default PVID adapter (ent1 on the below picture). Ethernet frames without any VLAN ID tags that the SEA receives from the external network are forwarded to this adapter and assigned the default PVID

---------------------------------------------------

SEA and VLAN traffic:

The VLAN tag information is referred to as VLAN ID (VID). Ports on a switch are configured as being members of a VLAN designated by the VID for that port. The default VID for a port is referred to as the Port VID (PVID). The VID can be added to an Ethernet packet either by a VLAN-aware host, or by the switch in the case of VLAN-unaware hosts.

For VLAN-unaware hosts, a port is set up as untagged and the switch will tag all packets entering through that port with the Port VLAN ID (PVID). The switch will also untag all packets exiting that port before delivery to the VLAN unaware host. A port used to connect VLAN-unaware hosts is called an untagged port, and it can be a member of only one VLAN identified by its PVID.

Hosts that are VLAN-aware can insert and remove their own tags and can be members of more than one VLAN. These hosts are typically attached to ports that do not remove the tags before delivering the packets to the host, but will insert the PVID tag when an untagged packet enters the port.

A port will only allow packets that are untagged or tagged with the tag of one of the VLANs that the port belongs to.


Based on the above image, incoming packets from external networks:
- SEA forwards untagged packets to ent1 and these are tagged with the default PVID=1
- SEA forwards packets with VID=1 or VID=10 to adapter ent1 as well
- before LPAR2 recieves packets Hypervisor will remove VLAN tag
- en0 on LPAR1 will receive untagged packets
- en1 on LPAR1 will receive only packets with VID=10

Outgoing packets to external networks:
- packets sent by LPAR2 will be tagged by Hypervisor, with PVID=1
- packets sent by LPAR1 through en1 are tagged with VID=10 by AIX, and en0 packets are tagged with PVID=1 by Hypervisor
- at VIOS: packets tagged with VID=10, are processed with the VLAN tag unmodified.
- at VIOS: packets with VID=1 (PVID of ent1 in SEA) are untagged before ent1 receives them, then bridged to ent0 and sent out.
 (VLAN-unaware destination devices on the external network will be able to receive these packets.)

(The virtual Ethernet adapter ent1 of the SEA also uses VID 10 and will receive the packet from the POWER Hypervisor with the VLAN tag unmodified. The packet will then be sent out through ent0 with the VLAN tag unmodified. So, only VLAN-capable destination devices will be able to receive these. )

---------------------------------------------------

Shared Ethernet Adapter Failover:

In a Shared Ethernet Adapter failover configuration there are two Virtual I/O Servers, each running a Shared Ethernet Adapter. The Shared Ethernet Adapters communicate with each other on a control channel using two virtual Ethernet adapters configured on a separate VLAN. The control channel is used to carry heartbeat packets between the two Shared Ethernet Adapters. When the primary Shared Ethernet Adapter loses connectivity the network traffic is automatically switched to the backup Shared Ethernet Adapter.



The trunk priority for the Virtual Ethernet adapters on VIO Server 1 (which has the Access external network flag set) is set to 1. This means that normally the network traffic will go through VIO Server 1. VIO Server 2 with trunk priority 2 is used as backup in case VIO Server 1 has no connectivity to the external network.

more info: https://www-304.ibm.com/support/docview.wss?uid=isg3T1011040

---------------------------------------------------

Shared Ethernet Adapter failover with Loadsharing

The Virtual I/O Server Version 2.2.1.0, or later, provides a load sharing function to enable to use the bandwidth of the backup Shared Ethernet Adapter (SEA).It makes an effective use of the backup SEA bandwidth.



In this example the packets of VLAN 10 will go through VIOS1 and packets of VLAN 20 will go through VIOS2.

Prerequisites:
- Both of primary and backup Virtual I/O Servers are at Version 2.2.1.0, or later.
- Two or more trunk adapters are configured for the primary and backup SEA pair.
- The virtual local area network (VLAN) definitions of the trunk adapters are identical between the primary and backup SEA pair.

To create or enable the SEA failover with Load Sharing, you have to enable the load sharing mode on the primary SEA first before enabling load sharing mode on the backup SEA. The load sharing algorithm automatically determines which trunk adapters will be activated and will treat network packets for VLANs in the SEA
pair. You can not specify the active trunk adapters of the SEAs manually in the load sharing mode.

Changing the SEA to Load Sharing mode:
$ chdev -dev ent6 -attr ha_mode=sharing

---------------------------------------------------

To reduce SEA failover time to minimum these can help:

- For all AIX client partitions, set up Dead Gateway Detection (DGD) on the default route:
1. route change default -active_dgd       <--Set up DGD on the default route
2. in etc/rc.tcpip add: route change default -active_dgd to the        <--it makes this change to permanent
3. no -p -o dgd_ping_time=2       <--set pings interval of a gateway by DGD to 2 seconds
       (default is 5s; 2s will allow faster recovery):
- On the network switch, enable PortFast if Spanning Tree is on or disable Spanning Tree.
- On the network switch, set the channel group for your ports to Active if they are currently set to Passive

---------------------------------------------------

Simplified SEA (without control channel):

SEA can implement a new method to discover SEA pair partners using the VLAN ID 4095 in its virtual switch. After partners are identified, a new SEA high availability (HA) protocol is used to communicate between them.

If the followings are met during SEA creation no control channel adapter is necessary:
-VIOS Version 2.2.3
-Hardware Management Console (HMC) 7.7.8
-Firmware Level 780 or higher

---------------------------------------------------

Good overview of SEA sharing mode + VLANs:
entstat -all entX | grep -e "  Priority" -e "Virtual Adapter" -e "  State:" -e "High Availability Mode" -e "  ent"

Good overview of SEA Link status + MAC address:
entstat -all entX | grep -e "(ent" -e "Type:" -e "Address:" -e "Link Status" -e "Link State:" -e "Switch "


---------------------------------------------------

Checking SEA Load sharing distribution:

# entstat -all ent8 | grep -e "  Priority" -e "Virtual Adapter" -e "  State:" -e "High Availability Mode"

ent8:       SEA adapter
ent4, ent5: Trunk virtual ethernet adapters in SEA

VIO1:
State: PRIMARY_SH                    <--shows it is in load sharing mode and it is the primary SEA adapter (if we were in failover mode)
High Availability Mode: Sharing
Priority: 1
...
Virtual Adapter: ent4
  Priority: 1  Active: False
Virtual Adapter: ent5
  Priority: 1  Active: True

VIO2:
State: BACKUP_SH                    <--shows it is in load sharing mode and it is the backup SEA adapter (if we were in failover mode)
High Availability Mode: Sharing
Priority: 2
...
Virtual Adapter: ent4
  Priority: 2  Active: True
Virtual Adapter: ent5
  Priority: 2  Active: False

---------------------------------------------------

SEA and SEA failover creation:

To create a Shared Ethernet Adapter (SEA) you need:
- <PHYS>: a physical adapter as backend
- <VIRT>: a virtual adapter
- <VLAN>: an internal VLAN ID
- default: specifies the default virtual adapter to be used for non-VLAN-tagged packets
- defaultid:  this VLAN ID used for untagged packets (the PVID used for the SEA device)

for SEA failover:
- <CONT>: a second virtual adapter for the control channel

+ optional settings:
-netaddr: SEA will periodically ping this IP address, so it can detect network failures
-largesend: enable TCP segmentation offload


 # simple SEA
 $ mkvdev -sea <PHYS> -vadapter <VIRT> -default <VIRT> -defaultid <VLAN>

 # Shared Ethernet Adapter Failover:
 $ mkvdev -sea <PHYS> -vadapter <VIRT> -default <VIRT> -defaultid <VLAN> -attr ha_mode=auto ctl_chan=<CONT>

 # Shared Ethernet Adapter Failover without control channel, example:
 $ mkvdev -sea ent14 -vadapter ent8 ent10 ent12 ent13 -default ent8 -defaultid 4000 -attr jumbo_frames=yes ha_mode=auto
 (After creation possible to change to sharing mode, 1st on primary VIO after backup VIO: chdev -dev ent15 -attr ha_mode=sharing

 (with optional settings)
 $ mkvdev -sea ent0 -vadapter ent2 -default ent2 -defaultid 1 -attr ha_mode=auto ctl_chan=ent3 netaddr=9.3.4.1 largesend=1

(Any interface with an IP address on the adapters used when defining the SEA must be detached.)
(When you want to change something on SEA (enable/disable load sharing...), do the change on the primary SEA first, then set it on the backup SEA.)

---------------

adding a virtual adapter later to the SEA:

chdev -dev entx -attr virt_adapters=entY,entZ
(entX: SEA adapter; entY,entZ: virtual adapters - all virt. adapters has to be listed here, not just the new one)

---------------

Changing SEA online (without downtime):

SEA configured on VIO1 with priority 1 and on VIO2 on priority 2 (it is important when changing sharing mode)
SEA configured in load sharing mode, so first I change it to auto, and after to standby on each VIO where I work:

1.chdev -dev entX -attr ha_mode=auto                        <--1st on VIO1 after VIO2 change to auto mode, so both will have auto

2.chdev -dev entX -attr ha_mode=standby                     <--on VIO1: so network will go through on VIO2
3.rmvdev -sea entX                                        <--on VIO1: remove SEA
4.rmvdev -lnagg entY                                      <--on VIO1: remove Etherchannel
5.<<do any change/HW repair>>
6.mkvdev -lnagg ent0 ent1 -attr mode=8023ad...              <--on VIO1: recreate Etherchannel
7.mkvdev -sea ent2 -vadapter ent8 ent9 ... ha_mode=standby  <--on VIO1: recreate SEA
8.chdev -dev entX -attr ha_mode=auto                        <--on VIO1: set back ha_mode to auto, so traffic will go based on priority

do same tasks (from standby) on VIOS2...when finished:
chdev -dev entX -attr ha_mode=sharing                       <--1st on VIO1 after on VIO2


This works as well:
rmdev -l ent15
chdev -l ent15 -a jumbo_frames=yes
mkdev -l ent15

---------------

remove VLAN from SEA (HMC CLI):
lshwres -m <man.sys.> -r virtualio --rsubtype eth --level lpar --filter "lpar_names=<vio name>" -F lpar_name,port_vlan_id,addl_vlan_ids
chhwres -r virtualio --rsubtype eth -m <man.sys.> -o s --id <lpar id> -s <virt eth id> -a "addl_vlan_ids-=311"
(lpar id and virt. eth. adapter id on HMC is needed, for checking: entstat ..., and save vio profile may needed)


remove VLAN from SEA (HMC GUI):
choose Man. Sys. --> Virtual Networks --> choose VLAN --> Action:remove
chdev -dev entX -attr virt_adapters=entY,entZ
(chdev is needed only because on VIO entstat … still showed removed VLAN, so chdev did the trick.)
(Did not do anything else with SEA, no removal, reconfig is needed only chdev.)

---------------

SEA Failover testing:

On VIOS1 and VIOS2 virtual adapters have been created. At creation time trunk priority has been set:
VIOS1: 1
VIOS2: 2

With command 'mkvdev' SEAs (ent14) have been created on both VIO

1. check settings:

    VIOS1:
    lsattr -El ent14 | grep ha_mode            <--should show: ha_mode=auto
    netstat -v ent14 | grep Active             <--should show: Priority: 1  Active: True

    VIOS2:
    lsattr -El ent14 | grep ha_mode            <--should show: ha_mode=auto
    netstat -v ent14 | grep Active             <--should show: Priority: 2  Active: False

2. perform manual SEA failover:

    VIOS1:
    chdev -l ent14 -a ha_mode=standby

3. check settings:

    VIOS1:
    lsattr -El ent14 | grep ha_mode            <--should show: ha_mode=standby
    netstat -v ent14 | grep Active             <--should show: Priority: 1  Active: False
    errpt | head                               <--should show: BECOME BACKUP

    VIOS2:
    lsattr -El ent14 | grep ha_mode            <--should show: ha_mode=auto
    netstat -v ent14 | grep Active             <--should show: Priority: 2  Active: True
    errpt | head                               <--should show: BECOME PRIMARY

4. switching back:

    VIOS1:
    chdev -l ent14 -a ha_mode=auto

5. check settings:

    VIOS1:
    lsattr -El ent14 | grep ha_mode            <--should show: ha_mode=auto
    netstat -v ent14 | grep Active             <--should show: Priority: 1  Active: True
    errpt | head                               <--should show: BECOME PRIMARY

    VIOS2:
    lsattr -El ent14 | grep ha_mode            <--should show: ha_mode=auto
    netstat -v ent14 | grep Active             <--should show: Priority: 2  Active: False
    errpt | head                               <--should show: BECOME BACKUP

---------------

thread attribute:

Threading ensures that CPU resources are shared fairly when a Virtual I/O Server provides a mix of SEA and VSCSI services.
If it set to 1, it will equalize  the priority between virtual disk and SEA network I/O. This throttles Ethernet traffic to prevent it from consuming a higher percentage of CPU resources versus the virtual SCSI activity. This is a concern only when CPU resources are constrained resources.)

padmin@vios1 : /home/padmin # lsdev -dev ent14 -attr | grep thread
thread        1          Thread mode enabled (1) or disabled (0)                            True

Threading is enabled by default for shared Ethernet adapters.
Disable threading when a Virtual I/O Server is not used for VSCSI (chdev –dev entX –attr thread=0).

---------------

entstat -all ent4                                          shows if this adapter is active or not (entstat -all ent4 | grep Active)
netstat -cdlistats | grep -Ei "\(ent|media|link status"    this lists links on all physical adapter (good!!!)

---------------

Configuring the interface on SEA (adding ip...):

cfgassist or mktcpip command:
mktcpip -hostname VIO_Server1 -inetaddr 9.3.5.196 -interface en3 -netmask 255.255.254.0 -gateway 9.3.4.1

---------------

SEA load sharing mode error:

$ chdev -dev ent23 -attr ha _mode=sharing

Method error (/usr/lib/methods/chgsea):
        0514-018 The values specified for the following attributes
                 are not valid:
ha_mode. Insufficient no. of adapters.



This indicates that you have only 1 virtual adapter configured in the SEA, so load cannot be shared (that is why you cannot chage ha_mode attribute). Add additional Virtual Ethernet Adpater to the SEA for this sharing mode to activate.

---------------

Total Etherchannel failure and LIMBO state on SEA:

During dual VIOS install, when second SEA configured on VIOS2, network connection was lost and received this:

errpt:
CE9566DF   0719154713 P H ent9           TOTAL ETHERCHANNEL FAILURE

entstat for SEA:
    State: LIMBO
    High Availability Mode: Auto
    Priority: 1
...
Virtual Adapter: ent5
  Priority: 1  Active: False
Virtual Adapter: ent4
  Priority: 1  Active: False
Virtual Adapter: ent3
  Priority: 1  Active: False
Virtual Adapter: ent2
  Priority: 1  Active: False


Limbo state means:
The physical network is not operational or network state is unknown, or the Shared Ethernet Adapter cannot ping the specified remote host.

Limbo packets are sent by the primary Shared Ethernet Adapter when it detects that its physical network is not operational, or when it cannot ping the specified remote host (to inform the backup that it needs to become active).

After checking control channel on both SEA, found configuration problem. One of the control channel was in virtual switch ETHERNET0 the other on was in ETHERNET1, so control channel could not work properly. (You can check it in VIOS LPAR properties on HMC, or with entstat command.)

On the VIOS LPAR with wrong control channel:
1. remove SEA device: rmdev...
2. shutdown LPAR and change profile on HMC: control channel virt. adapter to the correct virtual switch
3. start LPAR and create SEA device again.

After this everything was OK.

---------------

70 comments:

Prench said...

Great!!!Very good article as all I have seen in this blog. You have done a fantastic job
Thanks!!!

aix said...

Thanks for your feedback :)

Anonymous said...

Hi i'm new at Aix and this blog is really helping me :)

aix said...

:)

Avinash said...

Take a bow....good blog on AIX..

aix said...

cool :)

Anonymous said...

Excellent article...thanks

aix said...

welcome :)

aa said...

excellent THANKS!

Anonymous said...

Hi,

Is there any way to set trunk priorities using HMC CLI for LAN vio? if yes then please reply. This will help me a LOT

Regards,
Santosh

aix said...

Hi, everything which is possible under HMC GUI is possible in HMC CLI (command line interface).
So, the answer is yes, but the syntax is not so simple.
I suggest you to read the man page of "chsyscfg", there is a section:

virtual_eth_adapters
Comma separated list of virtual ethernet adapters,
with each adapter having the following format:

virtual-slot-number/is-IEEE/port-vlan-ID/
[additional-vlan-IDs]/[trunk-priority]/
is-required[/[virtual-switch][/[MAC-address]/
[allowed-OS-MAC-addresses]/[QoS-priority]]]"

In the middle you can see trunk-priority is there, and later man page describes more:

Valid values for trunk-priority:
0 - this adapter is not a trunk adapter (default
value)
1 - 15 - this adapter is a trunk adapter with the
specified priority

So, it is possible, just the syntax is a bit complicated.

Anonymous said...

Hi

This blog is amazing , your doing really a fantastic job.

aix said...

Thanks :-)

Anonymous said...

Simple and Effective :)

Anonymous said...

very helpful for AIX Admin. Please keep posting updates

aix said...

thanks!

Siva said...

Hi,

Assume, in an environment having 2 VIOS pairs (4 VIOS). Out of these, how to identify which VIOSs are in pair of each other?

Regards,
Siva

aix said...

Hi, I like your question :)
I assume these 2 VIOS pairs are providing network traffic for different VLANs / VIOS pairs.

There are 2 methods to find these pairs:
1. you can check priority values for SEA adapters (entstat), so you will have two prio 1 and two prio 2. Then check VLAN IDs which they are responsible for, after that you can match a prio 1 & prio 2 server which are responsible for the same VLANs.

2. check VLAN ID for the control channels. I would create different VLANs for the control channel pairs, so VLAN ID can identify those pairs.

Regards,
Balazs

Siva said...

Hi,

One of my SEA adapter showing the status of "LIMBO" . What is meant by this and why it occurs?

Regards,
Siva

aix said...

Hi, here you can find what status SEA can be: http://pic.dhe.ibm.com/infocenter/powersys/v3r1m5/index.jsp?topic=/iphb1/iphb1statsseafailover.htm

"LIMBO
One of the following situations is true:

The physical network is not operational.
The physical network's state is unknown.
The Shared Ethernet Adapter cannot ping the specified remote host."

Hope this helps,
Balazs

Subhash said...

Superb blog for AIX Admin.. Thanks a lot :)

aix said...

thanks!

Anonymous said...

nice keep on blogging

Anonymous said...

I don't understand the relationship between the "port virtual ID (VLAN ID)" from HMC virtual adapter and the "defaultid" from SEA adapter.
For example, if I got a virtual adapter from both VIO and client LPAR with PVID(from HMC) to 1, then I create a SEA using defaultid 2, then will SEA bridge client virtual adapter with PVID 1?

BTW, this blog is really really nice! Thanks a lot!

aix said...

If client virtual adapter with PVID 1 sends a packet, Hypervisor will untag the packet before VIO virtual adapter receives it (as it matches with the PVID of the VIO adapter), so packet will be sent out as an untagged packet. Default id of the SEA is important only (IMHO), when you put an IP on the SEA, so you can define which packets with a VLAN ID should be received by that IP address (without IP on the SEA, SEA will transfer the traffic and does not receive any). This is my understanding about this not so well documented subject....

Anonymous said...

Hi , how to make your sea inactive ?

aix said...

Hi, you can try to put it into defined state with rmdev.

Anonymous said...

Un blog veramente interesante per gli amministratori di sistemi AIX.
A blog really interesting for system administrators AIX.
Thanks Nick

aix said...

Greeting to italian AIX admins :-)

Anonymous said...

Hi , Its not about deleting an sea but rather to make the status : In-available

My thoughts : TO make the physical adapter link-down and check ??

Please Advice !!

Anonymous said...

Please find the below link for SEA with load sharing :
http://www-01.ibm.com/support/docview.wss?uid=isg3T7000527

Anonymous said...

I've been talking through the use of the netaddr field on the SEA to give the SEA an address to ping. This environment has a dual VIO configuration where the SEA has two trunk adapters, one with a PVID of 1, and the other with a PVID of 2; with a number of VIDs distributed among them, configured in a load sharing configuration. My initial thought would be to use a PVID of the VLAN of my netaddr target on trunk One, (used as the default ID when defining the SEA) which would allow me to configure an IP address on the SEA in the same VLAN and ultimately. Is this the best way to tackle this, could I use a VLAN of one the VIDs for my IP on the SEA or does it have to be VLAN defined by the PVID? My other concern would be that, if I read this correctly, traffic arriving with the PVID of the trunk adapter would have it's VLAN tag stripped and sent out as untagged;l which would be dropped by the switch.

aix said...

Hi, for your question I don't know which one you should use, I suggest to do some tests...but on the second part you are right PVID will be stripped and packets will be sent out as untagged packets.

Unknown said...

Really an excellent article for mid level aix person.....

Abhi said...

Hello Anonymous, As far as i understand you will have to assign the IP on the VLAN adapter (mkvdev -vlan -tagid ) not on the SEA interface

Unknown said...

Good job . . Really an excellent article

vema said...

Please let me know How many LPARs can connect to 1 VLAN

aix said...

Hi, VLAN is just a container, network traffic should reach an IP address, which is part of the VLAN. So it depends on your subnet and IP range of LPARs.

- Balazs

Anonymous said...

Excellent blog...

In an environment, there are 100s of LPARs. Admin knows the IP address of all LPARs but doesn't know which one is virtual and which one is physical. It is not possible to enter in every LAPR and check. my question is

How to centrally (HMC or VIO) determine it?

lparstat from HMC CLI may be my answer, looking for more detail and alternate commands.

Walking in the rain said...

Hello
maybe some of this commands can help you :

ssh hscroot@$HMC "viosvrcmd -m $BOX -p $VIOS -c 'lsdev -virtual'" |grep ent| grep Virtual ## Get virtual adapters

ssh hscroot@$HMC viosvrcmd -m $BOX -p $VIOS -c '"$(printf "oem_setup_env\nlscfg -vl ent11")"'| grep ent ##ent11 virtual adapter
example output : ent10 U9117.MMD.10E83C6-V2-C5-T1 Virtual I/O Ethernet Adapter (l-lan) ###--> C5
ssh hscroot@$HMC "lshwres -r virtualio --rsubtype eth --level lpar -m $BOX -F port_vlan_id,addl_vlan_ids,is_trunk --filter lpar_names=MILPAR" ## get port_vlan wich is the same as in the vio server
example output : 5,,0 ## like in previous command

ssh hscroot@$HMC "lssyscfg -r prof -m $BOX -F lpar_name,virtual_eth_adapters" ## get all virtual adapters

(Nice page ;)

Ayalo :D

Walking in the rain said...

I have a question,
My problem is that I want to modify one etherchannel in my vioServer1 wich has a failover configuration with vioServer2.
I want to add 2 more ports ( ehterchannel with ent2 ent6 ent26 ent27 ) . I was removing the SEA and the etherchannel
( but not the virtual and the control channel )
Then the new etherchanneland the SEA were created . The failover to the vioServer2 switch only the two first ports
(ent2 and ent6 UP with entstat -d SEA; and ent26,ent27 DOWN) Is like the etherchannel is not knowing that has 4 ports.
My errpt looks like that

IDENTIFIER TIMESTAMP T C RESOURCE_NAME DESCRIPTION
E136EAFA 0311172014 I H ent21 BECOME PRIMARY
40D97644 0311171914 I H ent21 BECOME BACKUP
263C2A83 0311171814 T H ent27 ETHERNET DOWN <<--- Ports from the SEA ent21 (added to etherchannel)
263C2A83 0311171814 T H ent26 ETHERNET DOWN <<---
E136EAFA 0311171114 I H ent21 BECOME PRIMARY

The Network guys said that both ports are included into the same control_group in the switch like the first 2 ports.
All the configuration is the same :(

ent21 Available Shared Ethernet Adapter
ent18 Available EtherChannel / IEEE 802.3ad Link Aggregation
EtherChannel / Link Aggregation ent18
Parent Adapter ent21
EtherChannel / Link Aggregation Adapters ent2,ent6,ent26,ent27 +
Backup Adapter NONE +
Automatically Recover to Main Channel yes +
Perform Lossless Failover After Ping Failure yes +
Delete Backup Adapter +
Add Main Adapter +
Delete Main Adapter +
Add Backup Adapter +
Enable Alternate Address no +
Alternate Address [0x000000000000] +
Enable Gigabit Ethernet Jumbo Frames no +
Mode 8023ad

ent26 Available 0E-04 Int Multifunction Card w/ Base-TX 10/100/1000 1GbE (a21910071410d203)
ent27 Available 0E-05 Int Multifunction Card w/ Base-TX 10/100/1000 1GbE (a21910071410d203)
ent2 Available 09-00 4-Port 10/100/1000 Base-TX PCI-Express Adapter (14106803)
ent6 Available 0C-00 4-Port 10/100/1000 Base-TX PCI-Express Adapter (14106803)

Could be the problem that I didn't remove the control channel ??

Thank you in advance

Ayalo :p

Walking in the rain said...
This comment has been removed by the author.
aix said...

cool, thx!

Walking in the rain said...

Hi again
I removed the post because adding the main adapter with the smitty didn't work. I still having the same problem. I'm thinking about It could be that the adapters are different and maybe need to force the speed . :(

Ravin said...

Hello. I got an issue with IVM on a FLEX node P260. The command : $ lshwres -r virtualio --rsubtype eth --level lpar does not display my SEA.

Anonymous said...

Excellent.

Anonymous said...

I visit aix4admins blogspot for all the problems since 2012 and to be honest I jumped from L1 to L3 within 6months after referring this site. I learned all VIO stuff here and did implement in real time. Thank you very much for all your valualble stuff here.

Thanks
Hussain

aix said...

Thanks man!

Unknown said...

Hi
In the SEA Failover with "load sharing" mode how does the failover/fallback of network traffic happens if any of the VIOS goes down.
Could you please clarify

Unknown said...

how can we identify that which is ur primmary vio and which is ur secondary vio in sea fail over

Unknown said...
This comment has been removed by the author.
Unknown said...

Hi,
I need one clarification....

In VIOS latest version control channel adapter (CTRL_CHAN) is needed for SEA failover/fallback ?

and, Please provide me new features in Latest version.

Anonymous said...

Great docs, excellent place to refer all AIX related stuff. Thanks for the Knowledge sharing.!!!!

Walking in the rain said...

Finally the solution was remove the control channel and make the SEA again :D

One of the bests blogs about AIX ;)

Anonymous said...

Great explanation ! Very helpful (I had the basics, and already implemented this)...
Combining the explanations of Virtual Ethernet on Power, VIOS, Double VIOS, Sea, VLAN... Great stuff
Only thing missing is adding Link Aggregation (802.3ad and/or Etherchannel) in the mix ;)

Anonymous said...

Do you have information about GPFS and LTFS?

Anonymous said...

what app did you use to make the drawings above ?

aix said...

Microsoft Word :)

Unknown said...

I have Dual VIO setup. ha_mode=auto. ctl_chan adapter on the VIOS are different. hence SEA adapters are not in sync. I cannot failover. can I use "chdev -l -a ctl_chan= ? while SEA is primary and taking entire frame load ?

Unknown said...

chdev -l ent16 -a ctl_chan=ent15 ( SEA adapter is ent16, correct value for ctl_chan is ent15. )

Unknown said...

every time i read your blog , I always get some useful

aix said...

:)

Unknown said...
This comment has been removed by the author.
Unknown said...

Hi, this Blog is very very usefull.. Your are doing a very good work.
I have a question.. i'm looking for a How to setup QoS on AIX and vios.. do you have any docs about it ? Thanks in advance

Mangesh said...
This comment has been removed by the author.
Mangesh said...

Hello, we have dual VIO server where we have configured multiple SEA. Each SEA consist of etherchannel, which has 4 physical ethernet adapters. Now we want to monitor a traffic flowing through each physical adapter (how much MB/GB data it is transferring). Is there any way to do the same? I know we can monitor SEA traffic by nmon but want monitor individual adapter traffic.

Thanks in advance.

Anonymous said...

nice docs

Unknown said...

I have configured many of shared enternet adapters in VIOS.. How can I see which is currently active and getting used ?? I was trying to see in entstat but could not understand which parameter I should use? COuld you please help

aix said...

If you put the SEA interface into up status (ifconfig enX up), after that "topas -E" will show you incoming and outgoing packets at the SEA and at the Virtual Adapters. (Please try it on a test system first.)

Anonymous said...

I am confused between PVID and VID. I understood like this:-
In order to establish communication between any lpars/switch(External/Internal virtual switch)ports, their PVID should be the same.If PVID is different, communication is not possible. Group of same PVID is referred as VID.