As we all know, trunks are composed of different ISLs in the same port group. How is data traffic transmitted inside the trunk?For example, if there is a trunk that includes 3 ISLs, what percentage of the first ISL transmission will use the second ISL? Under what circumstances will the third ISL be used? How is traffic distributed when using all 3 ISLs?
I have previously understood that load balancing is internal to the trunk. But the actual situation is not the case.
The switch will use first low utilized member of trunk group. The another link will be used once there will be lack of buffer credist on the link for particular virtual channel. The vitual channel will be defined by desintation ID of the frame.
Balance of the trunk performance is automatically performed by switch itself.
"load balancing" does not occur on Brocade trunks. The algorithm used is generally referred to as 'fill and spill'. EX: The trunks are numbered from the lowest to highest PID;
Where 140f00 is defaulted as the Master, and the following three are the slave ports. Trunks are frame based for greater granular control, and in order delivery is guaranteed. The fill and spill algorithm will continue to deposit frames(and exchanges) on port 140f00 as long as credit buffers are free. If the master(140f00) PID become saturated, and the credits are depleted, then the next port in line(140f01) will get frames(spill-over).
This is done because the coding of fill and spill is much faster than seeking the port with the most number of credits, and allocating frames based on a hieracrchy of who has the most credits at time X, when an exchange is presented to the ASIC for transmission across an ISL. Masterless trunking is outside the scope of the question, and will not be covered.
If a trunk group is allocated, and the bottom ports of the trunk are shown as transmitting few or no frames, those ports may be removed from the trunk group and allocated differently based on need. An examination of port flows using porterrshow and noting the TX and RX columns will provide data to make trunk port decisions. Best to use statsclear, slotstatsclear and allow 48 hours or more before using porterrshow so that the data is not stale.
EX port trunking, and F port trunking operate similarly.
This used to be not always the. Some older ASIC's and FOS-code releases had some sort of fifo mechanism where idividual frames were dispersed on each member of the trunk if I ca recall correctly.
As some stage this indeed changed and we had numerous cases of worried sysadmins who were terrified to see such an unequal usage of their trunk members.