I don't like lazy people either, but I wouldn't say it's this case. I'm not sure about correct solution myself, and it looks like interesting thing to try. If on one interface you have packet in vlan X, that's in another service vlan Y and you want to send it untagged to another interface, how do you do it? I came up with two working ways, but I'm not very excited about either of them.
Simple old style bridging works (but it would be nightmare for more vlans):
/interface vlan
add interface=ether1 name=vlan1948 use-service-tag=yes vlan-id=1948
add interface=vlan1948 name=vlan1900 vlan-id=1900
/interface bridge
add name=bridge1900 protocol-mode=none
/interface bridge port
add bridge=bridge1900 interface=vlan1900
add bridge=bridge1900 interface=ether2
Ideally, I'd want simple and direct config, one bridge with vlan filtering and some configuration magic that would allow to connect vlan1900@vlan1948@ether1 to ether2, but it doesn't seem possible. Or am I missing something?
Intermediate solution:
/interface vlan
add interface=ether1 name=vlan1948 use-service-tag=yes vlan-id=1948
/interface bridge
add name=bridge1948 protocol-mode=none vlan-filtering=yes
/interface bridge port
add bridge=bridge1948 interface=vlan1948
add bridge=bridge1948 interface=ether2 pvid=1900
/interface bridge vlan
add bridge=bridge1948 tagged=vlan1948 untagged=ether2 vlan-ids=1900
This solves the problem with many client vlans, because it uses more efficient (smaller config) bridge vlan filtering. But this is just quick test with few CHRs, so I'm already not sure what it will do to hw offloading, when the device has some. Next problem is with service vlans, what to do if there's more of them and I need to send them to different interfaces, either tagged or untagged? Again, I don't see any one-bridge solution. As a test, I tried two-level bridge, where ether1 was part of another bridge for service vlans, and vlan1948 was on new bridge instead of on ether1 directly:
/interface bridge
add ether-type=0x88a8 name=bridge protocol-mode=none vlan-filtering=yes
/interface bridge port
add bridge=bridge interface=ether1
/interface bridge vlan
add bridge=bridge tagged=ether1,bridge vlan-ids=1948
/interface vlan
add interface=bridge name=vlan1948 use-service-tag=yes vlan-id=1948
<same bridge1948 as in previous example>
But for some reason it doesn't work, and I can't see why. It's not something I'd like too much. Still, I think it should do something. But I just can't find what's wrong.
So in short, same as OP, I'm also interested to see what's proper solution.