Background
swFCPortRxBadOs tracks the number of invalid ordered sets, most of the time it is an error against a physical or virtual interface, it can also apply to a backplane.
Invalid ordered sets for DWDM or straight FC, whether it's Cisco or Broccade, will often be the result of a poorly performing host or node. A RAID array with it's disk cue length above 6 or so on the other side of the DWDM could result in a virtual channel timeout. This will typically mean that you have virtual channels getting 'stuck'. When a switch port exhausts all available credits, the switch port connected to the device needs to hold additional outbound frames until a credit is returned by the device to enter the buffer. When a device isn’t responding within a timeout a transmitting switch will hold frames longer, resulting in high buffer occupancy. This results in the switch lowering the rate that it returns buffer credits to the other transmitting switches. This then propagates through switches (potentially multiple switches with devices attempting to send frames to hosts or switches attached to the switch with the high-latency host or switch) and affects fabric performance.
So.....Next Steps
Possible Culprits
Physical Layer Badness - An SFP that is or is going bad that is on the other side or on the switch your looking at.
Virtual Channel 'stuck' - the explanation above. If the virtual channel is stuck then it's not passing traffic or signals and you'll see the er_bad_os counters increasing.
Brocade recommends enable bottleneckmon in the FOS. It will reset the VC (virtual channel) when there is a two second window without any traffic.
bottleneckmon –cfgcredittools -intport -recover onLrOnly
When one or more credits are lost, it will begin to look for it's window to reset the VC.
This a great PDF on Fabric Resiliency Best Practices
http://www.brocade.com/downloads/documents/html_product_manuals/NOS_MIB_301/wwhelp/wwhimpl/common/html/wwhelp.htm#context=NOS_MIB_v301_HTML&file=5_sw-mib.06.4.html
use portstatushow for your port and see if you get an er_bad_os 591691 Invalid ordered set
It might give you an assurance that what your experiencing is an invalid ordered set so you can begin troubleshooting your credits and buffers which is where these types of issues frequently lay.
Great article on buffer credits.
http://community.brocade.com/t5/Mainframe-Solutions/Buffer-Credits-and-Frame-Size-calculation-in-FOS-7-1/ba-p/455