Simple PING QoS

Hi all,
I have to do simple QoS for icmp packets on a load link.

When link is empty, avg-rtt is 32ms and when is load ( speedtest for example ) avg-rtt goes to 700 with packet loss.
I have this scenario:

/ip firewall mangle
add action=mark-packet chain=prerouting new-packet-mark=ICMP-pkt protocol=icmp
add action=mark-packet chain=postrouting new-packet-mark=ICMP-pkt protocol=icmp

/queue tree

add name=Upload-ADSL2 parent=pppoe-ADSL2 priority=8 queue=default
add name=Altro-UP2 packet-mark=no-mark parent=Upload-ADSL2 queue=default priority=8
add limit-at=100k max-limit=200k name=ICMP-UP2 packet-mark=ICMP-pkt parent=Upload-ADSL2 priority=1 queue=default

add name=Download parent=BRIDGE queue=default priority=8
add name=Altro packet-mark=no-mark parent=Download queue=default priority=8
add limit-at=10k max-limit=10k name=ICMP packet-mark=ICMP-pkt parent=Download priority=1 queue=default

What’s wrong in my setup ?

try this :
/ip firewall mangle
add action=mark-packet chain=prerouting comment=“By Pass Ping From Shapping” new-packet-mark=Ping_in protocol=icmp
add action=mark-packet chain=postrouting new-packet-mark=Ping_out protocol=icmp

/queue type
add kind=pcq name=“Ping_in_32K” pcq-classifier=dst-address pcq-dst-address6-mask=64 pcq-rate=32k pcq-src-address6-mask=64
add kind=pcq name=“Ping_out_32K” pcq-classifier=src-address pcq-dst-address6-mask=64 pcq-rate=32k pcq-src-address6-mask=64

/queue tree
add name=Ping_in packet-mark=Ping_in parent=global queue=“Ping_in_32K”
add name=Ping_out packet-mark=Ping_out parent=global queue="Ping_out_32K"we give each user only 32k for pinging