L3HW support document states that NAT (for IPv4) can get offloaded to HW only if NAT connections can be fasttracked … Meaning that you have to make sure that NAT connections are eligible to fasttrack, the rest should happen automatically. So your NAT rule seems fine, but firewall filter section has to accompany it with matching action=fast-track rule.
i found this about configuring NAT using hw-offload
Offloading Fasttrack Connections
Firewall filter rules have hw-offload option for Fasttrack, allowing fine-tuning connection offloading. Since the hardware memory for Fasttrack connections is very limited, we can choose what type of connections to offload and, therefore, benefit from near-the-wire-speed traffic. The next example offloads only TCP connections while UDP packets are routed via the CPU and do not occupy HW memory:
I have a CCR2116 here with 7.14.3 and whenever I use action=src-nat or netmap, traffic comes to a halt… It worked fine with masquerade only. I’m wondering what I’m doing wrong of if it’s normal? Disabling L3HW and everything works fine with action=src-nat and netmap.
Sorry for resurrection
I have solved adding a SWITCH RULE where I set the class (for example) 192.168.0.0/24 (that needs to be Natted) to “rediect to CPU”
it works flawlessy. It is natted correctly and with the above rule (fasttrack hardware=yes) it is hardware offload correctly.
Without the rule “redirect to cpu” the traffic was immediately routed, not natted and stopped as it was not natted and it could go out to the internet.