| Previous | Next |
| kIOFireWireInvalidResponseLength | kIOFWMessageServiceIsRequestingClose |
kIOFireWireIsochBandwidthNotAvailable
Bandwidth is reserved before real-time traffic starts
kIOFireWireIsochBandwidthNotAvailable means that the isochronous resource manager could not reserve the requested bandwidth for the stream. FireWire requires a node to obtain both a channel and a bandwidth reservation before it begins isochronous sending or receiving. The reservation protects the timing budget for real-time traffic; it is not an application buffer size and is not repaired by resubmitting the same transfer.
The resource manager tracks a bus-wide availability quantity. IEEE 1394 material describes a dedicated bandwidth-available register, while the Linux FireWire API reports channel and bandwidth allocation separately. Consequently, this status differs from kIOFireWireNoChannels: a channel may be obtainable even though the requested time budget is not.
Diagnose the reservation, not just the device
- Record the requested stream parameters that determine per-cycle demand, including payload size, packet rate, speed, and any audio or video mode that changes the isochronous load.
- List other isochronous streams on the same bus and retain the resource-manager result. A device attached through another connector can still compete when it shares the same FireWire bus.
- Lower bandwidth only through a documented stream mode that changes the actual FireWire reservation. Reducing an unrelated application queue does not release bus bandwidth.
- Handle bus resets as allocation events: reservations can be recovered automatically, but recovery can fail and the application must check the resulting channel and bandwidth state before restarting media flow.
References
- Apple: FireWire Device Interface Guide — isochronous bandwidth and real-time transfers
- Linux kernel documentation: IRM channel and bandwidth allocation
- IEEE 1394 technical introduction: bandwidth-available register and recovery after bus reset
Looking for a different code? Search another status or error code.