Description

The QFX3500 Fibre Channel over Ethernet (FCoE) / Fibre Channel (FC) gateway performs session-based load balancing on it's native FC that connect to the FC switch. When a FCoE Node (ENode) sends a Fabric Login (FLOGI) request to the gateway, the gateway checks the native FC interfaces that connect it to the FC switch and assigns the new session to the least-loaded interface.

Every time the switch receives a FLOGI or a Fabric Discovery (FDISC) request from an ENode, the gateway assigns the new session to the least-loaded native FC interface. This means that after the gateway assigns a session to an FC interface for an ENode’s original FLOGI, subsequent FDISC requests by the same ENode can result in sessions on different interfaces because the gateway always assigns the new session to the least-loaded interface.

Symptoms

How does session based load-balancing work on the QFX3500 gateway?

Solution

Whenever a login request comes, the QFX picks the least loaded FC interface. It’s a simple Weighted Round-Robin (WRR) algorithm. Load is defined by (number of sessions * 1024)/weight, where weight = speed of FC link (2/4/8).

Example:

Three links fc-0/0/0, fc-0/0/1, fc-0/0/2 are at 4, 2, and 8 Gpbs speed (respectively); they have 4, 2, and 8 FCoE sessions (respectively).  This means all of them have equal load (1024).  In case of equal load, the QFX picks the interface with max weight.  Now when a new login request comes, it picks fc-0/0/2 because its current load is 1024 and has max weight etc.

The command “ show fibre-channel proxy np-port ” will show current state of LB. Below is an example output from QFX3500 with sessions

root@juniper> show fibre-channel proxy np-port

Fabric: foo, Fabric-id: 10
NP-Port         State          Sessions     LB state      LB weight
fc-0/0/0.0      online         5            ON            4
fc-0/0/1.0      online         5            ON            4

Related Information