if (fib_entry->type == MLXSW_SP_FIB_ENTRY_TYPE_LOCAL) {
                list_first_entry(&fib6_entry->rt6_list, struct mlxsw_sp_rt6,
-                                list)->rt->rt6i_flags |= RTF_OFFLOAD;
+                                list)->rt->rt6i_nh_flags |= RTNH_F_OFFLOAD;
                return;
        }
 
 
                nh = mlxsw_sp_rt6_nexthop(nh_grp, mlxsw_sp_rt6);
                if (nh && nh->offloaded)
-                       mlxsw_sp_rt6->rt->rt6i_flags |= RTF_OFFLOAD;
+                       mlxsw_sp_rt6->rt->rt6i_nh_flags |= RTNH_F_OFFLOAD;
                else
-                       mlxsw_sp_rt6->rt->rt6i_flags &= ~RTF_OFFLOAD;
+                       mlxsw_sp_rt6->rt->rt6i_nh_flags &= ~RTNH_F_OFFLOAD;
        }
 }
 
        list_for_each_entry(mlxsw_sp_rt6, &fib6_entry->rt6_list, list) {
                struct rt6_info *rt = mlxsw_sp_rt6->rt;
 
-               rt->rt6i_flags &= ~RTF_OFFLOAD;
+               rt->rt6i_nh_flags &= ~RTNH_F_OFFLOAD;
        }
 }
 
 
 
        atomic_t                        rt6i_ref;
 
+       unsigned int                    rt6i_nh_flags;
+
        /* These are in a separate cache line. */
        struct rt6key                   rt6i_dst ____cacheline_aligned_in_smp;
        u32                             rt6i_flags;
 
 #define RTF_PREF(pref) ((pref) << 27)
 #define RTF_PREF_MASK  0x18000000
 
-#define RTF_OFFLOAD    0x20000000      /* offloaded route              */
 #define RTF_PCPU       0x40000000      /* read-only: can not be set by user */
 #define RTF_LOCAL      0x80000000
 
 
                goto out;
        }
 
-       if (cfg->fc_flags & RTF_OFFLOAD) {
-               NL_SET_ERR_MSG(extack, "Userspace can not set RTF_OFFLOAD");
-               goto out;
-       }
-
        if (cfg->fc_dst_len > 128) {
                NL_SET_ERR_MSG(extack, "Invalid prefix length");
                goto out;
                        goto nla_put_failure;
        }
 
-       if (rt->rt6i_flags & RTF_OFFLOAD)
+       if (rt->rt6i_nh_flags & RTNH_F_OFFLOAD)
                *flags |= RTNH_F_OFFLOAD;
 
        /* not needed for multipath encoding b/c it has a rtnexthop struct */