XORing Turn Ops
This is an alternate convention that may or may not be too cute.
Each turn op in a packet is the exclusive-or of the incoming and outgoing interface numbers seen by the node for which the turn op is constructed.
These benefits arise:
- The destination path and return path are identical except for the ordering of the constituent turn ops.
- The path information proper in a packet as it transits a node need not be modified.
The path cursor in the packet must still be modified.
- The sequence of 3 turn ops [a 0 b] can normally shortened to one: [a⊕b].
This amounts to deleting a trip to some node whereupon you immediately exit on the link via which you entered.
This shortening can be repeated when a=b and thus a⊕b=0:
[c a 0 a d] → [c⊕d].
This amounts to a modest but useful algebra of paths.
This slight confusion may outweigh these small advantages, but I think not just now.