The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=bf202a8d7afb2e024d3d29d4d90e24b3925e9f06
commit bf202a8d7afb2e024d3d29d4d90e24b3925e9f06 Author: Konstantin Belousov <[email protected]> AuthorDate: 2021-04-06 03:46:12 +0000 Commit: Konstantin Belousov <[email protected]> CommitDate: 2021-07-12 09:34:38 +0000 mlx5en: announce mce(4) capabilities for stateless VxLAN offloading Reviewed by: hselasky Sponsored by: Mellanox Technologies/NVidia Networking MFC after: 1 week --- sys/dev/mlx5/mlx5_en/mlx5_en_main.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/sys/dev/mlx5/mlx5_en/mlx5_en_main.c b/sys/dev/mlx5/mlx5_en/mlx5_en_main.c index b5de6b3903fd..26bd5e00d22d 100644 --- a/sys/dev/mlx5/mlx5_en/mlx5_en_main.c +++ b/sys/dev/mlx5/mlx5_en/mlx5_en_main.c @@ -3446,6 +3446,21 @@ mlx5e_ioctl(struct ifnet *ifp, u_long command, caddr_t data) ifp->if_capenable ^= IFCAP_VLAN_HWTAGGING; if (mask & IFCAP_WOL_MAGIC) ifp->if_capenable ^= IFCAP_WOL_MAGIC; + if (mask & IFCAP_VXLAN_HWCSUM) { + ifp->if_capenable ^= IFCAP_VXLAN_HWCSUM; + ifp->if_hwassist ^= CSUM_INNER_IP | CSUM_INNER_IP_UDP | + CSUM_INNER_IP_TCP | CSUM_INNER_IP6_UDP | + CSUM_INNER_IP6_TCP; + if (test_bit(MLX5E_STATE_OPENED, &priv->state)) { + mlx5e_close_locked(ifp); + mlx5e_open_locked(ifp); + } + } + if (mask & IFCAP_VXLAN_HWTSO) { + ifp->if_capenable ^= IFCAP_VXLAN_HWTSO; + ifp->if_hwassist ^= CSUM_INNER_IP_TSO | + CSUM_INNER_IP6_TSO; + } VLAN_CAPABILITIES(ifp); /* turn off LRO means also turn of HW LRO - if it's on */ @@ -4421,6 +4436,7 @@ mlx5e_create_ifp(struct mlx5_core_dev *mdev) #ifdef RATELIMIT ifp->if_capabilities |= IFCAP_TXRTLMT | IFCAP_TXTLS_RTLMT; #endif + ifp->if_capabilities |= IFCAP_VXLAN_HWCSUM | IFCAP_VXLAN_HWTSO; ifp->if_snd_tag_alloc = mlx5e_snd_tag_alloc; ifp->if_snd_tag_free = mlx5e_snd_tag_free; ifp->if_snd_tag_modify = mlx5e_snd_tag_modify; @@ -4441,6 +4457,12 @@ mlx5e_create_ifp(struct mlx5_core_dev *mdev) ifp->if_hwassist |= (CSUM_TCP | CSUM_UDP | CSUM_IP); if (ifp->if_capenable & IFCAP_TXCSUM_IPV6) ifp->if_hwassist |= (CSUM_UDP_IPV6 | CSUM_TCP_IPV6); + if (ifp->if_capabilities & IFCAP_VXLAN_HWCSUM) + ifp->if_hwassist |= CSUM_INNER_IP6_UDP | CSUM_INNER_IP6_TCP | + CSUM_INNER_IP | CSUM_INNER_IP_UDP | CSUM_INNER_IP_TCP | + CSUM_ENCAP_VXLAN; + if (ifp->if_capabilities & IFCAP_VXLAN_HWTSO) + ifp->if_hwassist |= CSUM_INNER_IP6_TSO | CSUM_INNER_IP_TSO; /* ifnet sysctl tree */ sysctl_ctx_init(&priv->sysctl_ctx); _______________________________________________ [email protected] mailing list https://lists.freebsd.org/mailman/listinfo/dev-commits-src-all To unsubscribe, send any mail to "[email protected]"
