RUTXR: Routing/NAT Offloading - software off, hardware on?

Please confirm, what turning off software flow offloading does not turn off hardware flow offloading (if it was turned on). Right now, in firmware 7.5, turning off software flow completely eliminate from GUI both types. This is confusing. What shell command may show flow offloading state?
P.S. Turning off software offloading required by SQM module.


The implementation for HW offloading was done this way, because SW offloading is required to use HW offloading.
Checking the configuration files, when both HW and SW offloading are enabled, bot options are present in the config file:

config defaults '1'
        option flow_offloading '1'
        option flow_offloading_hw '1'
        option syn_flood '1'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'

However, if SW offloading is disabled, HW offloading gets disabled as well:

config defaults '1'
        option syn_flood '1'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option flow_offloading '0'

It’s implemented the same way on OpenWRT as well.
As for any commands to check the actual status of offloading, I could not find any, but the difference can be quite drastic in more hardware-intensive applications.

Best regards,

Thanks. So, activation of SQM or QoS basically disable any traffic acceleration in RUTX device?

Enabling QoS will not automatically disable the offloading, it will have to be done manually.
Offloading could also affect any third-party applications that use conntracks to monitor the data usage, as they are bypassed with offloading.

In case it helps at all, I found some CLI commands that can report/set status of FLOW OFFLOADING

Enable offloading (hw/sw)

uci set firewall.@defaults[0].flow_offloading=1
uci set firewall.@defaults[0].flow_offloading_hw=1
uci commit firewall

Check status (1=enabled)

uci get firewall.@defaults[0].flow_offloading
uci get firewall.@defaults[0].flow_offloading_hw

Check status of kernel module (0=disabled, 2=enabled)

lsmod | grep ^xt_FLOWOFFLOAD | tail -c3

Not sure if you can tell from kernel if offloading is sw+hw or just sw, because for me it was always either 0 or 2.

1 Like

This topic was automatically closed after 15 days. New replies are no longer allowed.