GAR and Fault Tolerance
Two of the key features of SpaceWire networks are group adaptive routing and fault tolerance.
Group Adaptive Routing
SpaceWire routers can implement group adaptive routing. When two or more output ports lead to the same destination (another router or a node) then these output ports may be configured as a group. When a packet arrives at an input port for routing out of an output port that is busy, any other output port in the same group as the addressed output port may be used to forward the packet. Group adaptive routing gives rise to one of the most important features of a SpaceWire network: bandwidth sharing. Links in a group share the total data flow between them. If there are two equivalent links between a pair of routers (and the routing tables are configured appropriately) then data may pass over either of these links. There is twice the bandwidth of a single link available for transferring data between the two routers. If another equivalent link is added then the bandwidth become three times that of a single link. To use this extra bandwidth all that needs to be done is to configure the routing tables to identify the three links as belonging to a group.
Bandwidth sharing leads to another important feature of a SpaceWire network: fault tolerance. Consider the previous example of three equivalent links organized into a group. If one of these links fails then the information flow will be automatically distributed over the other two equivalent links. There is no need for intervention by network management software to do this. Provided the routing tables identify the three links as belonging to a group, the fault recovery is automatic and immediate. The only information lost is the tail end of the packet that was being transferred when the fault occurred.