Supported by the GlobalNOC at Indiana University

Upgrading Code

Manually upgrading code:

Note: this example is for brocade 5.4.0d, the 05400d filename suffix changes with each version of code, dependent on whether or not Brocade updated that portion of code in that most recent revision.

Step 1) scp Monitor/ManagementModule/xmb05400d.bin brocade@149.165.130.56:flash:monitor

Step 2) scp Boot/ManagementModule/xmprm05400d.bin brocade@149.165.130.56:flash:boot

Step 3) scp Combined/Application/xm05400d.bin brocade@149.165.130.56:image:primary

Step 4) scp Monitor/InterfaceModule/xmlb05400d.bin brocade@149.165.130.56:lp:monitor:all

Step 5) scp Boot/InterfaceModule/xmlprm05400d.bin brocade@149.165.130.56:lp:boot:all

--Note: These can take quite a long time.

Step 6) scp Combined/FPGA/lpfpga05400d.bin brocade@149.165.130.56:lp:fpga-all:all:force-overwrite

Step 7) scp FPGA/ManagementModule/mbridge_05400d.xsvf brocade@149.165.130.56:mbridge

Semi-Automated Upgrade of Code:

If you've done the manual process above, you may realize it requires constant-ish attention and is pretty error prone if you're trying to do more than one at a time, to help alleviate that, we've built a simple script that wraps  scp with Expect, and can upgrade multiple brocades in parallel available below:

https://svn.grnoc.iu.edu/viewvc/viewvc.cgi/grnoc/random_scripts/GRNOC-SCP/trunk/

upgrade_brocades.pl is an incredibly simple, one-off script which contains an array of scp commands to run against each switch, uses GRNOC-CLI to get username and password, and this very simple scp wrapper to enable password reuse.

To use it currently requires editing of the upgrade_brocades.pl code to change the source file of each scp command:

This is the same list as above in the manual process, but you will want to use absolute directories

an example of the edits required for brocade 5.6.0fb:

This is obviously a work in progress and such optimizations as moving the command list to an external source are possible, but not yet implemented.

my @commands = ('/home/gmcnaugh/tftpboot/5.6.0/XMR-MLX/Monitor/ManagementModule/xmb05600.bin [%hostname%]:flash:monitor',

'/home/gmcnaugh/tftpboot/5.6.0/XMR-MLX/Boot/ManagementModule/xmprm05600.bin [%hostname%]:flash:boot',

'/home/gmcnaugh/tftpboot/5.6.0/XMR-MLX/Combined/Application/xm05600fb.bin [%hostname%]:image:primary',

'/home/gmcnaugh/tftpboot/5.6.0/XMR-MLX/Monitor/InterfaceModule/xmlb05600.bin [%hostname%]:lp:monitor:all',

'/home/gmcnaugh/tftpboot/5.6.0/XMR-MLX/Boot/InterfaceModule/xmlprm05600.bin [%hostname%]:lp:boot:all',

#--Note: These can take quite a long time.

'/home/gmcnaugh/tftpboot/5.6.0/XMR-MLX/Combined/FPGA/lpfpga05600fb.bin [%hostname%]:lp:fpga-all:all:force-overwrite',

'/home/gmcnaugh/tftpboot/5.6.0/XMR-MLX/FPGA/ManagementModule/mbridge_05600fb.xsvf [%hostname%]:mbridge',

);


Your request has been completed.