Having is issues using a Traffic Shaper Profile with Traffic Class IDs to match traffic to shape based upon tos/tos-mask values. I will post the config below, not sure what exactly is going on.  Wondering if this is even supported. This is off a FortiGate 201F. All I get are matched for the Default class-id nothing else. I have verified sending traffic marked with EF and AF21 so it should have marked it, but doesn't appear to be doing that with the Traffic Shaper.
 
config firewall traffic-class
    edit 2
        set class-name "Voice_Class"
    next
    edit 3
        set class-name "Emergency_Voice_Class"
    next
    edit 4
        set class-name "Video_Class"
    next
    edit 5
        set class-name "Application_Class"
    next
    edit 6
        set class-name "BestEffort_Class"
    next
 
config firewall shaping-policy
    edit 2
        set uuid 9c15e226-3070-51ee-9253-a3d92134b031
        set name "Voice"
        set service "ALL"
        set schedule "always"
        set srcintf "any"
        set dstintf "port1"
        set tos 0xb8
        set tos-mask 0xfc
        set class-id 2
        set diffserv-forward enable
        set srcaddr "all"
        set dstaddr "all"
        set diffservcode-forward 101110
    next
    edit 3
        set uuid 9eac7c70-3070-51ee-53f6-0a3040f06758
        set name "Emergency_Voice"
        set service "ALL"
        set schedule "always"
        set srcintf "any"
        set dstintf "port1"
        set tos 0x68
        set tos-mask 0xfc
        set class-id 3
        set diffserv-forward enable
        set srcaddr "all"
        set dstaddr "all"
        set diffservcode-forward 011010
    next
    edit 4
        set uuid a542f7b2-3070-51ee-1c9d-1d0694045d4d
        set name "Video"
        set service "ALL"
        set schedule "always"
        set srcintf "any"
        set dstintf "port1"
        set tos 0x88
        set tos-mask 0xfc
        set class-id 4
        set diffserv-forward enable
        set srcaddr "all"
        set dstaddr "all"
        set diffservcode-forward 100010
    next
    edit 5
        set uuid ab54c996-3070-51ee-c3cd-50cd9c1840d4
        set name "Application"
        set service "ALL"
        set schedule "always"
        set srcintf "any"
        set dstintf "port1"
        set tos 0x48
        set tos-mask 0xfc
        set class-id 5
        set diffserv-forward enable
        set srcaddr "all"
        set dstaddr "all"
        set diffservcode-forward 010010
    next
    edit 6
        set uuid b2352d46-3070-51ee-1ef3-7a8dae7b242b
        set name "BESTEFFORT"
        set service "ALL"
        set schedule "always"
        set srcintf "any"
        set dstintf "port1"
        set class-id 6
        set diffserv-forward enable
        set srcaddr "all"
        set dstaddr "all"
    next
end
 
config firewall shaping-profile
    edit "WAN_SHAPER"
        set default-class-id 6
        config shaping-entries
            edit 3
                set class-id 6
                set priority low
                set guaranteed-bandwidth-percentage 70
                set maximum-bandwidth-percentage 100
            next
            edit 1
                set class-id 2
                set priority top
                set guaranteed-bandwidth-percentage 20
                set maximum-bandwidth-percentage 100
            next
            edit 2
                set class-id 5
                set priority medium
                set guaranteed-bandwidth-percentage 10
                set maximum-bandwidth-percentage 100
            next
        end
 
config system interface
    edit "port1"
        set vdom "root"
        set type physical
        set outbandwidth 100000
        set egress-shaping-profile "WAN_SHAPER"
        set lldp-reception enable
        set role wan
        set snmp-index 3
 
FortiGate-201F # diag netlink interface list port1
 
if=port1 family=00 type=1 index=7 mtu=1500 link=0 master=0
ref=29 state=start present fw_flags=10000 flags=up broadcast run multicast
Qdisc=mq hw_addr=ac:71:2e:d2:45:4c broadcast_addr=ff:ff:ff:ff:ff:ff
egress traffic control:
        bandwidth=100000(kbps) lock_hit=0 default_class=6 n_active_class=3
        class-id=6      allocated-bandwidth=70000(kbps)         guaranteed-bandwidth=70000(kbps)
                        max-bandwidth=100000(kbps)      current-bandwidth=9(kbps)
                        priority=low    forwarded_bytes=4262
                        dropped_packets=0       dropped_bytes=0
        class-id=5      allocated-bandwidth=10000(kbps)         guaranteed-bandwidth=10000(kbps)
                        max-bandwidth=100000(kbps)      current-bandwidth=0(kbps)
                        priority=medium         forwarded_bytes=0
                        dropped_packets=0       dropped_bytes=0
        class-id=2      allocated-bandwidth=20000(kbps)         guaranteed-bandwidth=20000(kbps)
                        max-bandwidth=100000(kbps)      current-bandwidth=0(kbps)
                        priority=top    forwarded_bytes=0
                        dropped_packets=0       dropped_bytes=0
stat: rxp=1019337 txp=1038913 rxb=64727420 txb=74313546 rxe=0 txe=0 rxd=0 txd=0 mc=0 collision=0 @ time=1691605882
re: rxl=0 rxo=0 rxc=0 rxf=0 rxfi=0 rxm=0
te: txa=0 txc=0 txfi=0 txh=0 txw=0
misc rxc=0 txc=0
input_type=0 state=3 arp_entry=0 refcnt=29