Reflection

Add in a ‘reflector’ which is a special switch with an additional reflecting function. The reflector keeps a mutable associative list of reflections, each of which is an unordered pair of WHO values. When a type B message arrives at a downstream port of a reflector, the port number is appended and if any reflection matches that, the other member of the reflection is substituted and the message is forwarded on a downstream port as a type A message. The reflection table is modified only by type A messages from the root complex. Any pair of endpoints below a reflector can communicate using the reflector, if enabled from the root-complex.

The capacity of a reflection table is reported to the root complex in response to a configuration query in a type A message.

This plan requires better foresight as components are assembled into a system, so as to arrange for anticipated connections between non-root endpoints. I imagine that my Mac needs no reflectors.