Cisco MDS and Brocade Interop Issues with Per VC Flow Control
- bfeeny
- May 19, 2012
- 4 min read
One issue to be mindful of when configuring Cisco MDS switches with Brocade switches is that Brocades Per VC Flow Control must be disabled. Cisco MDS 9000 switches do not support Brocades Per VC Flow Control. The flow control will interfere with an ISL being established between the Cisco and Brocade switches, even if other parameters are set correctly. An essential document for successful configuration of Cisco to Brocade interoperability is the Cisco MDS 9000 Family Switch-to-Switch Interoperability Guide. Here is a review of the requirements for Brocade Interop:
R_A_TOV must be the same on both sides
E_D_TOV must be the same on both sides
B2B Credits must be the same on both sides
core.pid on the brocade must match the interop mode on the MDS; pidFormat:0 = interop 2, pidFormat:1 = interop 3
per vc flow control must be off on the brocade
Verifying R_A_TOV and E_D_TOVBrocade
SINO-300:admin> configshow | grep E_fabric.ops.E_D_TOV:2000SINO-300:admin> configshow | grep R_fabric.ops.R_A_TOV:10000SINO-300:admin>Cisco
MDS1(config-if)# do show fctimerF_S_TOV D_S_TOV E_D_TOV R_A_TOV----------------------------------------5000 ms 5000 ms 2000 ms 10000 msMDS1(config-if)#
Setting B2B Credits on MDS to match BrocadeBrocade
SINO-300:admin> configshow | grep BBfabric.ops.BBCredit:16fcAL.useAltBBCredit:0flannel.ops.openBBCredit:4SINO-300:admin>Cisco
MDS1(config-if)# do sh run int fc1/6version 3.3(5a)interface fc1/6no shutdownswitchport fcrxbbcredit 16
Verify core.pid matches the Cisco Interop modeBrocade
SINO-300:admin>SINO-300:admin> configshow | grep intercer.internal_port_code:1switch.interopMode:0SINO-300:admin> configshow | grep pidfabric.ops.mode.pidFormat:1SINO-300:admin>Cisco
MDS1(config-if)# do sh run | in interopvsan 20 name "BLUE" interop 3 loadbalancing src-dst-id If you do all of the above, you still may have the issue of Per VC flow control being enabled on the Brocade switch. You may experience errors in the logs such as the following:
MDS1(config-if)# 2012 May 15 08:13:02 MDS1 %PORT-5-IF_DOWN_OFFLINE: %$VSAN 20%$ Interface fc1/6 is down (Offline)2012 May 15 08:13:02 MDS1 %PORT-5-IF_DOWN_NONE: %$VSAN 20%$ Interface fc1/6 is down (None)2012 May 15 08:13:02 MDS1 %PORT-5-IF_DOWN_LINK_FAILURE: %$VSAN 20%$ Interface fc1/6 is down (Link failure)2012 May 15 08:13:15 MDS1 %PORT-5-IF_DOWN_LINK_FAILURE: %$VSAN 20%$ Interface fc1/6 is down (Link failure)2012 May 15 08:13:15 MDS1 %PORT-5-IF_DOWN_OFFLINE: %$VSAN 20%$ Interface fc1/6 is down (Offline)2012 May 15 08:13:15 MDS1 %PORT-5-IF_DOWN_NONE: %$VSAN 20%$ Interface fc1/6 is down (None)2012 May 15 08:13:15 MDS1 %PORT-5-IF_DOWN_LINK_FAILURE: %$VSAN 20%$ Interface fc1/6 is down (Link failure)2012 May 15 08:13:28 MDS1 %PORT-5-IF_DOWN_LINK_FAILURE: %$VSAN 20%$ Interface fc1/6 is down (Link failure)2012 May 15 08:13:28 MDS1 %PORT-5-IF_DOWN_OFFLINE: %$VSAN 20%$ Interface fc1/6 is down (Offline)2012 May 15 08:13:29 MDS1 %PORT-5-IF_DOWN_NONE: %$VSAN 20%$ Interface fc1/6 is down (None)2012 May 15 08:13:29 MDS1 %PORT-5-IF_DOWN_LINK_FAILURE: %$VSAN 20%$ Interface fc1/6 is down (Link failure)2012 May 15 08:13:42 MDS1 %PORT-5-IF_DOWN_LINK_FAILURE: %$VSAN 20%$ Interface fc1/6 is down (Link failure)2012 May 15 08:13:42 MDS1 %PORT-5-IF_DOWN_OFFLINE: %$VSAN 20%$ Interface fc1/6 is down (Offline)2012 May 15 08:13:42 MDS1 %PORT-5-IF_DOWN_NONE: %$VSAN 20%$ Interface fc1/6 is down (None)2012 May 15 08:13:42 MDS1 %PORT-5-IF_DOWN_LINK_FAILURE: %$VSAN 20%$ Interface fc1/6 is down (Link failure)2012 May 15 08:13:55 MDS1 %PORT-5-IF_DOWN_LINK_FAILURE: %$VSAN 20%$ Interface fc1/6 is down (Link failure)2012 May 15 08:13:55 MDS1 %PORT-5-IF_DOWN_OFFLINE: %$VSAN 20%$ Interface fc1/6 is down (Offline)2012 May 15 08:13:55 MDS1 %PORT-5-IF_DOWN_NONE: %$VSAN 20%$ Interface fc1/6 is down (None)2012 May 15 08:13:55 MDS1 %PORT-5-IF_DOWN_LINK_FAILURE: %$VSAN 20%$ Interface fc1/6 is down (Link failure)2012 May 15 08:14:08 MDS1 %PORT-5-IF_DOWN_LINK_FAILURE: %$VSAN 20%$ Interface fc1/6 is down (Link failure)2012 May 15 08:14:08 MDS1 %PORT-5-IF_DOWN_OFFLINE: %$VSAN 20%$ Interface fc1/6 is down (Offline)2012 May 15 08:14:08 MDS1 %PORT-5-IF_DOWN_NONE: %$VSAN 20%$ Interface fc1/6 is down (None)2012 May 15 08:14:08 MDS1 %PORT-5-IF_DOWN_LINK_FAILURE: %$VSAN 20%$ Interface fc1/6 is down (Link failure)2012 May 15 08:14:11 MDS1 %PORT-5-IF_DOWN_LINK_FAILURE: %$VSAN 20%$ Interface fc1/6 is down (Link failure) 2012 May 15 08:14:11 MDS1 %PORT-5-IF_DOWN_ELP_FAILURE_ISOLATION_UNKNOWN_FLOW_CTL_PARAM: %$VSAN 20%$ Interface fc1/6 is down(Isolation due to ELP failure: invalid flow control param) 2012/05/15-07:22:30, , 6215, FID 128, WARNING, SINO-300, port 0, incompatible flow control parameters (3). 2012/05/15-07:22:43, , 6216, FID 128, WARNING, SINO-300, port 0, incompatible flow control parameters (3).2012/05/15-07:22:56, , 6217, FID 128, WARNING, SINO-300, port 0, incompatible flow control parameters (3).2012/05/15-07:23:09, , 6218, FID 128, WARNING, SINO-300, port 0, incompatible flow control parameters (3).2012/05/15-07:23:22, , 6219, FID 128, WARNING, SINO-300, port 0, incompatible flow control parameters (3). So how do we solve this? Brocade has a command that can be used to disable the Per VC Flow control behavior. From the Cisco MDS 9000 Switch-to-Switch Interoperability Guide documentation located here:
ISL Flow Control Brocade uses a proprietary flow control called Virtual Channel (VC) flow control. VC flow control is used by Brocade for fair traffic distribution during congested fabrics by prioritizing management traffic.When an ISL between an MDS 9000 switch and Brocade switch comes up, the ISL negotiates for the standards-based buffer-to-buffer flow control during ELP. The MDS 9000 switch rejects the Brocade proprietary VC flow control and responds with the standards-based buffer-to-buffer flow control.To enable Brocade to accept the standards-based flow control on Brocade firmware versions 3.1.0 and 4.1.1 so that the ISL will complete negotiation, use the portcfgislmode slot/port 1 command on the Brocade switch. Switches running version 2.x firmware do not require this command.This does not affect any other ISLs in the fabric. All Brocade-to-Brocade ISLs can still be native VC flow control and MDS 9000 switch-to-MDS 9000 switch ISLs can still be TE (trunking or multi-VSAN) ISLs. Having a Brocade-to-MDS 9000 switch ISL using buffer-to-buffer flow control should have no noticeable impact to the fabric. Once Per VC Flow Control is disabled on the Brocade, the ISL should come up. Special thanks to Sunny LiYu Zhang for allowing me to use the screen captures from his lab. Update: Thanks Joseph Tarin for finding out that the portcfgislmode command likely will require a comma as follows
Recent Posts
See AllAt 1Gbps a FC frame is 4km long, at 2Gbps a frame is 2km long, and at 4Gbps a frame is 1km long. A 10km cable is 20km round trip. Round...
Comentários