I’m attempted to do some traffic shaping based on DSCP in an effort to get Dante working smoothly. The problem I’m running into is that I can mark packets based on DSCP fields in the pre routing chain and the counters go up, however most of the packet marks don’t appear to be in place by they hit the queue tree. Mangling to apply the marks in the forward and post routing chains doesn’t seem to work.
Here are my mangle rules:
3 ;;; dscp.0
chain=prerouting action=mark-packet new-packet-mark=dscp.0 passthrough=no dscp=0
4 ;;; dscp.8
chain=prerouting action=mark-packet new-packet-mark=dscp.8 passthrough=no dscp=8
5 ;;; dscp.46
chain=prerouting action=mark-packet new-packet-mark=dscp.46 passthrough=no dscp=46
6 ;;; dscp.56
chain=prerouting action=mark-packet new-packet-mark=dscp.56 passthrough=no dscp=56
The counts on those rules:
3 ;;; dscp.0
prerouting mark-packet 238 872 900 391 374
4 ;;; dscp.8
prerouting mark-packet 0 0
5 ;;; dscp.46
prerouting mark-packet 2 278 699 215 17 156 637
6 ;;; dscp.56
prerouting mark-packet 5 544 962 36 468
And the stats on the queue tree:
0 name="danteHigh" parent=bridge packet-mark=dscp.56 rate=0 packet-rate=0 queued-bytes=0 queued-packets=0 bytes=0 packets=0 dropped=0
1 name="danteMedium" parent=bridge packet-mark=dscp.46 rate=0 packet-rate=0 queued-bytes=0 queued-packets=0 bytes=0 packets=0 dropped=0
2 name="danteLow" parent=bridge packet-mark=dscp.8 rate=0 packet-rate=0 queued-bytes=0 queued-packets=0 bytes=0 packets=0 dropped=0
3 name="danteOther" parent=bridge packet-mark=dscp.0 rate=1360 packet-rate=1 queued-bytes=0 queued-packets=0 bytes=4435496 packets=25704 dropped=0
4 name="rest" parent=bridge packet-mark=no-mark rate=4648 packet-rate=3 queued-bytes=0 queued-packets=0 bytes=48485873 packets=69044 dropped=0
Any hints would be very much appreciated.