What is the recommended way of shaping traffic with queue trees when the outbound interface is not static? If I'm understanding the flows correctly, there's no way to use queue trees to shape upstream and downstream communication to different rates without doing so at the outbound interface for each stream from the router. While limiting a host's downstream is simple, as I intend to perform the shaping where the router connects to a switched network with a static interface and route, upstream is more difficult, as the traffic may route out of the router over multiple interfaces.
And with OSFP maintaining my routing and giving me redundancy should a link fail, I don't necessarily have an interface that I can specify as a upstream interface -- it may change on me, traffic may route across multiple interfaces depending on the destination, etc.
As I understand it:
1) Queue trees can only limit traffic at an interface, which prevents me from doing the shaping, say, at some point in the middle of the routing decision like the forward chain. This means I can only limit traffic where it actually enters or exits the router's packet flow decision table.
2) In addition, queue trees need to have a packet mark applied to traffic to do any sort of decision about what traffic to shape and how to shape it. This means that it /has/ to be done at the outbound interface, as there's obviously no way to mark traffic before it actually comes in on the interface.
3) I can't use global-out as the outbound interface, because this would apply to the interface connected to the switched network as well, causing my upstream queue to limit downstream connections as well.
Given these three facts, the only way I can see is to copy my queue tree for limiting upstream onto every possible interface that traffic might be taking as an upstream route. This isn't very elegant, and will probably be a PITA to maintain. Is there some way to define a queue tree as applying to all interfaces save specified ones?
Or am I missing something, such as some way to perform bi-directional shaping for traffic passing through a single interface, allowing me to ignore the fact that I don't know what route each individual traffic stream is going to take out of the router?