NFtables and QoS in 2021

Those are just part of @dlakelan's suggested approach here:

I would change for my own use. Just using this for testing.

In any case I think ICMP requests at least should be getting set and I see packet counters increasing but I only see 0 tos values on requests.

root@OpenWrt:~# nft list chain inet fw4 tagin
table inet fw4 {
        chain tagin {
                type filter hook ingress device "br-lan" priority mangle + 1; policy accept;
                ip dscp set cs3
                ip6 dscp set cs3
                ip protocol udp udp sport 123 ip dscp set cs6
                ip6 nexthdr udp udp sport 123 ip6 dscp set cs6
                ip protocol icmp ip dscp set cs5 counter packets 42 bytes 3981
                ip6 nexthdr ipv6-icmp ip6 dscp set cs5 counter packets 2520 bytes 175488
                udp dport { 7000-9000, 27000-27200 } ip dscp set cs5
                udp sport { 7000-9000, 27000-27200 } ip dscp set cs5
                ip6 nexthdr udp udp dport { 7000-9000, 27000-27200 } ip6 dscp set cs5
                ip6 nexthdr udp udp sport { 7000-9000, 27000-27200 } ip6 dscp set cs5
                meta priority set 1:40
                ip dscp { ef, cs6 } meta priority set 1:10
                ip dscp cs5 meta priority set 1:20
                ip dscp { af41, af42, af43 } meta priority set 1:30
                ip dscp cs2 meta priority set 1:50
                ip dscp cs1 meta priority set 1:60
                ip6 dscp { ef, cs6 } meta priority set 1:10
                ip6 dscp cs5 meta priority set 1:20
                ip6 dscp { af41, af42, af43 } meta priority set 1:30
                ip6 dscp cs2 meta priority set 1:50
                ip6 dscp cs1 meta priority set 1:60
        }
}

It's like it's seeing the packets but not setting them. Or I'm missing something. Is the syntax definitely correct for ICMPs? I'll keep experimenting.