| #include <Copyright.h> |
| /******************************************************************************** |
| * loadBalance.c |
| * |
| * DESCRIPTION: |
| * This sample shows how to setup load balance among Trunk ports. |
| * In this sample, port 0,1,2, and 3 will be in the Trunk group. |
| * |
| * DEPENDENCIES: |
| * |
| * FILE REVISION NUMBER: |
| * |
| * COMMENTS: |
| *******************************************************************************/ |
| |
| #include "msSample.h" |
| |
| |
| /* |
| The following sample sets Trunk Mask Table as follows: |
| |
| 10 9 8 7 6 5 4 3 2 1 0 |
| TrunkMask[0] 1 1 1 1 1 1 1 0 0 0 1 |
| TrunkMask[1] 1 1 1 1 1 1 1 0 0 1 0 |
| TrunkMask[2] 1 1 1 1 1 1 1 0 1 0 0 |
| TrunkMask[3] 1 1 1 1 1 1 1 1 0 0 0 |
| TrunkMask[4] 1 1 1 1 1 1 1 0 0 0 1 |
| TrunkMask[5] 1 1 1 1 1 1 1 0 0 1 0 |
| TrunkMask[6] 1 1 1 1 1 1 1 0 1 0 0 |
| TrunkMask[7] 1 1 1 1 1 1 1 1 0 0 0 |
| */ |
| |
| GT_STATUS sampleLoadBalance(GT_QD_DEV *dev) |
| { |
| GT_STATUS status; |
| int i; |
| GT_U32 mask, baseMask; |
| |
| baseMask = (1 << dev->numOfPorts) - 1; |
| baseMask &= 0xFFF0; /* clear bits for port 0 ~ 3 */ |
| |
| /* |
| * Set the trunk mask table for load balancing. |
| */ |
| for(i=0; i<8; i++) |
| { |
| mask = baseMask | (1 << (i%4)); |
| |
| if((status = gsysSetTrunkMaskTable(dev,i,mask)) != GT_OK) |
| { |
| MSG_PRINT(("gsysSetTrunkMaskTable return Failed\n")); |
| return status; |
| } |
| } |
| |
| return GT_OK; |
| } |
| |