| SpW-10X | Ref.: | UoD_SpW-10X_ |
| SpaceWire Router | | UserManual |
| Issue: | 3.4 |
| User Manual |
| Date: | 11th July 2008 |
| | | |
8.3.5.3 Waiting for an output port
When a packet arrives at an input port of the SpW-10X router is has to wait to be forwarded to an output port. How long the packet waits will depend on whether the router is in Blocking Allowed or Watchdog Timer mode and on what the output ports are doing. Various situations are considered below:
In Blocking Allowed mode packets will wait indefinitely to be granted access to an output port. There is one exception to this: if the destination port is a SpaceWire port and the port is not started the packet will only wait as long as the timeout period and then the router will spill the packet. If group adaptive routing is being used and at least one of the output ports in the group is running then the packet will wait indefinitely until the running port is ready, even if one or more of the other ports are not started.
In Watchdog Timer mode there are several possible cases which are considered below.
Output port not running: If a packet arrives at an input port of the SpW-10X router and the output port that it is to be routed to is not running, the router will wait for the output port to start for the watchdog timeout period and will then spill the packet if the link has not started. If Start on Request has been enabled the router will wait for the watchdog timer timeout interval for the output port to start. The packet will be routed to the output port as soon as it starts and a connection is made. If the port does not start before the end of the timeout interval then the waiting packet will be spilt.\
Output port running and not busy: If a packet arrives at an input port on the SpW-10X router and the output port that it is to be router to is running but not currently sending a packet, then the newly arrived packet will be routed immediately.
Output port running and busy: If a packet arrives at an input port on the SpW-10X router and the output port that it is to be router to is running and currently sending a packet the newly arrived packet will wait indefinitely for the output port to finish sending is current packet. The waiting packet will then be sent. This approach is taken because it is clear that the output port is operational and not blocked, so the newly arrived packet will wait for the current packet to complete transfer.
Output port in a group, not running: A packet arrives at an input port of the SpW-10 router and the packet has a logical address addressing a group of possible output ports. If all of the ports in the group are not running, the router will wait for an output port to start for the watchdog timeout period and will then spill the packet if one of the links has not started. If Start on Request is enabled then the router will try to start all the ports in the group. The packet will be router to whichever port starts first. If none of the ports starts before the timeout interval has expired the packet will be spilt.
Output port in a group with one port running and not busy: If a packet arrives at an input port with a group logical address and one of the output ports in the group is running and not currently busy sending a packet, the newly arrived packet will be routed to that output port immediately.
Output port in a group with one port busy: If a packet arrives with a group logical address and one of the output ports in the group is busy sending a packet and the other output ports in the group are not running, the SpW-10X will wait indefinitely to send the packet, whether or not Start on Request is enabled. When the busy output port finished sending its packet the waiting packet will be sent.