Reset Search
 

 

Article

How to check ports for possible blocking

« Go Back

Information

 
TitleHow to check ports for possible blocking
Question
How to check ports if they are in blocking state
Environment
EXOS
Answer
The most easy method to check if a port blocks for a vlan is the port list in the command "show vlan <vlan>". If a port is blocking it will show a 'b' behind the port number.
Also checking the protocols used will show a port is blocking, like for stp "show stpd <stpd> ports".


A more low-level check of the port state can be done by checking the VPIF state. VPIF is a vlan port interface.
This can be done using the debug command "debug vlan show vpif <vlan> <port>".
Here is an example:
# debug vlan show vpif "tel" 31
VLAN: tel, port:1:31, vlanId:49, instance: 50000096, tag: 1,
        Ingress:0x5, Egress: 0x1, l2 prot priority: 0, cfgSave: TRUE
        l2Protos (IDs): 0x0 [PIF: type:SLOTPORT linkState:1 phyLinkState:1]
        uRPF[-]:0, isTrillAppointedForwarder:0 isTrillDesignated:0
        clientUsage: 0x10 
Egress and Ingres state bit definitions
typedef enum ifIngressState_ {
IF_STATE_ENABLE_LEARNING=       0x1,
IF_STATE_DISABLE_LEARNING =     0x2,
 IF_STATE_ALLOW_ALL =            0x4,
 IF_STATE_ALLOW_AUTH_MAC =       0x8, 
IF_STATE_SLOWPATH_PROCESSING =  0x10, 
IF_STATE_IN_BLOCK_ALL =         0x20, 
IF_STATE_IN_BLOCK_DATA =        0x40, 
IF_STATE_INVALID =              0xffffffff, 
} ifIngressState_t; 
typedef enum ifEgressState_ { 
IF_STATE_FORWARDING =           0x1
IF_STATE_EG_BLOCK_ALL =         0x2, 
IF_STATE_BLOCK_FLOODING =       0x4, 
IF_STATE_EG_BLOCK_DATA =        0x8, 
IF_STATE_BLOCK_BROAD_CAST =     0x10, 
} ifEgressState_t;

 
In above example ingress state is 0x5 and egress state is 0x1.
Looking at the ingress 0x5 is 0x4 + 0x1. This port ingress state is set to statEnable Learning (0x1) and Allow_all (0x1).
Looking at the egress state 0x1, this is state Forwarding (0x1).
You add numbers from the type explanations until you have the number shown.
An eaps blocking port has normal 0x22 for ingress and 0x2 for egress.
0x22 = 0x20 + 0x2, Block_all + disable learning
0x2 = Block_all

An example how to check this can be seen on this article, Is the EAPS Master node correctly blocking.
Even though the protocol that could block the port can be different, the vpif state can be checked the same.
This debug command will also show which protocols are used on that vpif.

A special case is a share with LACP, if the lacp partner does not negotiate the port will also block, in show vlan the b will be behind the port, but the vpif state will still show forwarding.
This is explained in Why does a port show as blocked when the VPIF output shows it's learning and forwarding
Additional notes

Feedback

 

Was this article helpful?


   

Feedback

Please tell us how we can make this article more useful.

Characters Remaining: 255