7.3beta37 l3hw offloading disabled once a single port set to l3-hw-offloading=no

I wanted to start using my CRS309 switch in l3hw configuration to route packets to internet using offloaded fasttrack connections. According to https://help.mikrotik.com/docs/display/ROS/L3+Hardware+Offloading I needed to turn off hardware offloading on the port connected to WAN. But when I do that the hardware offloading seems to be not used according to the route table. The output below is from my other CRS305 switch, on which I can test easier and configuration smaller, the behavior is the same between both… When I enabled l3hw on the port again hw offloaded routing returns back. What is wrong here?
All my ports on the switch are configured to carry the same VLANs.

[root@crs305] > /ip/route/print
Flags: D - DYNAMIC; A - ACTIVE; c, s, o, y - COPY; H - HW-OFFLOADED
Columns: DST-ADDRESS, GATEWAY, DISTANCE
 #      DST-ADDRESS       GATEWAY                  DISTANCE
   D oH 0.0.0.0/0         10.255.255.2%vlan1255         110
 0  AsH 0.0.0.0/0         10.255.1.2                      1
   D oH 10.255.1.0/24     10.255.255.1%vlan1255         110
   DAcH 10.255.1.0/24     vlan1001                        0
   DAc  10.255.2.0/24     vxlan1                          0
 1  AsH 10.255.10.11/32   192.168.252.2                   1
 2  AsH 10.255.10.12/32   192.168.252.6                   1
 3  AsH 10.255.10.13/32   192.168.252.10                  1
   DAcH 10.255.201.0/24   vlan1201                        0
   DAoH 10.255.202.0/24   10.255.255.2%vlan1255         110
   DAoH 10.255.222.0/24   10.255.255.1%vlan1255         110
   DAoH 10.255.223.0/24   10.255.255.2%vlan1255         110
   DAcH 10.255.255.0/24   vlan1255                        0
   DAoH 172.30.11.0/30    10.255.255.203%vlan1255       110
   DAoH 172.30.21.0/30    10.255.255.203%vlan1255       110
   DAoH 172.30.31.0/30    10.255.255.203%vlan1255       110
 4  AsH 192.168.5.11/32   192.168.252.2                   1
 5  AsH 192.168.5.12/32   192.168.252.6                   1
 6  AsH 192.168.5.13/32   192.168.252.10                  1
   DAoH 192.168.9.11/32   192.168.252.2%vlan2520        110
 7   sH 192.168.9.11/32   192.168.252.2                 254
   DAoH 192.168.9.12/32   192.168.252.6%vlan2524        110
 8   sH 192.168.9.12/32   192.168.252.6                 254
   DAoH 192.168.9.13/32   192.168.252.10%vlan2528       110
 9   sH 192.168.9.13/32   192.168.252.10                254
   DAoH 192.168.10.11/32  192.168.252.2%vlan2520        110
10   sH 192.168.10.11/32  192.168.252.2                 254
   DAoH 192.168.10.12/32  192.168.252.6%vlan2524        110
11   sH 192.168.10.12/32  192.168.252.6                 254
   DAoH 192.168.10.13/32  192.168.252.10%vlan2528       110
12   sH 192.168.10.13/32  192.168.252.10                254
   DAcH 192.168.222.0/24  vlan222                         0
   DAoH 192.168.251.0/30  192.168.252.2%vlan2520        110
   DAoH 192.168.251.4/30  192.168.252.6%vlan2524        110
   DAoH 192.168.251.8/30  192.168.252.10%vlan2528       110
   DAcH 192.168.252.0/30  vlan2520                        0
   DAcH 192.168.252.4/30  vlan2524                        0
   DAcH 192.168.252.8/30  vlan2528                        0

[root@crs305] > /interface/ethernet/switch/port/set ether1 l3-hw-offloading=no
[root@crs305] > /ip/route/print
Flags: D - DYNAMIC; A - ACTIVE; c, s, o, y - COPY
Columns: DST-ADDRESS, GATEWAY, DISTANCE
 #     DST-ADDRESS       GATEWAY                  DISTANCE
   D o 0.0.0.0/0         10.255.255.2%vlan1255         110
 0  As 0.0.0.0/0         10.255.1.2                      1
   D o 10.255.1.0/24     10.255.255.1%vlan1255         110
   DAc 10.255.1.0/24     vlan1001                        0
   DAc 10.255.2.0/24     vxlan1                          0
 1  As 10.255.10.11/32   192.168.252.2                   1
 2  As 10.255.10.12/32   192.168.252.6                   1
 3  As 10.255.10.13/32   192.168.252.10                  1
   DAc 10.255.201.0/24   vlan1201                        0
   DAo 10.255.202.0/24   10.255.255.2%vlan1255         110
   DAo 10.255.222.0/24   10.255.255.1%vlan1255         110
   DAo 10.255.223.0/24   10.255.255.2%vlan1255         110
   DAc 10.255.255.0/24   vlan1255                        0
   DAo 172.30.11.0/30    10.255.255.203%vlan1255       110
   DAo 172.30.21.0/30    10.255.255.203%vlan1255       110
   DAo 172.30.31.0/30    10.255.255.203%vlan1255       110
 4  As 192.168.5.11/32   192.168.252.2                   1
 5  As 192.168.5.12/32   192.168.252.6                   1
 6  As 192.168.5.13/32   192.168.252.10                  1
   DAo 192.168.9.11/32   192.168.252.2%vlan2520        110
 7   s 192.168.9.11/32   192.168.252.2                 254
   DAo 192.168.9.12/32   192.168.252.6%vlan2524        110
 8   s 192.168.9.12/32   192.168.252.6                 254
   DAo 192.168.9.13/32   192.168.252.10%vlan2528       110
 9   s 192.168.9.13/32   192.168.252.10                254
   DAo 192.168.10.11/32  192.168.252.2%vlan2520        110
10   s 192.168.10.11/32  192.168.252.2                 254
   DAo 192.168.10.12/32  192.168.252.6%vlan2524        110
11   s 192.168.10.12/32  192.168.252.6                 254
   DAo 192.168.10.13/32  192.168.252.10%vlan2528       110
12   s 192.168.10.13/32  192.168.252.10                254
   DAc 192.168.222.0/24  vlan222                         0
   DAo 192.168.251.0/30  192.168.252.2%vlan2520        110
   DAo 192.168.251.4/30  192.168.252.6%vlan2524        110
   DAo 192.168.251.8/30  192.168.252.10%vlan2528       110
   DAc 192.168.252.0/30  vlan2520                        0
   DAc 192.168.252.4/30  vlan2524                        0
   DAc 192.168.252.8/30  vlan2528                        0

Unlike CRS309, CRS305 does NOT support FastTrack hw-offloading - L3HW Device Support.

I know that, but as I said the behavior is the same between CRS305 and CRS309, the output is the same, it’s just that the routing tables on my CRS309 are much larger, so I captured the output from my CRS305. It appears to me that the L3HW offload is disabled on any routes which use VLANs that are enabled on a port with l3hw offload disabled. I confirmed that by removing some VLANs from the port with l3hw offload disabled, and then the routes for those vlans where hw offloaded, whereas the others not. I did not see that mentioned in the documentation, and I am not sure if it is a hardware limitation or just the limitation of the implementation…

  • If a switch port with l3-hw-offloading=no is a VLAN member, the entire VLAN becomes l3hw-disabled (i.e., software-routed)
  • If a switch port with l3-hw-offloading=no is a member of a VLAN-unaware bridge (vlan-filtering=no), the entire bridge becomes l3hw-disabled.

I wouldn’t call that a hardware or software limitation - it is a design decision to keep the configuration straightforward.

OK. Understood. I would suggest that Mikrotik put that into the documentation (I checked different docs and nowhere could find the first item documented)

Thank you for confirming that.