本科学院网站建设方案,网站域名修改,苏州电商系统开发,制作网站的素材背景
对于双端口的网卡#xff0c;有时候有将链路聚合的需求。在Mellanox网卡上通过LAG提供。对于RoCE的报文在Mellanox上也可以通过LAG来完成报文收发#xff0c;叫做RoCE over LAG。但是仅仅适用于双端口卡。
关键点
LAG#xff1a; Link Aggregation Group (LAG) 链路…背景
对于双端口的网卡有时候有将链路聚合的需求。在Mellanox网卡上通过LAG提供。对于RoCE的报文在Mellanox上也可以通过LAG来完成报文收发叫做RoCE over LAG。但是仅仅适用于双端口卡。
关键点
LAG Link Aggregation Group (LAG) 链路聚合组。一种网络技术允许将多个物理链路组合成一个逻辑链路以提高带宽和冗余。注意这里是指链路还不涉及端口port的概念聚合的不是端口而是链路Linux内核中链路聚合是 bonding 功能LAG 的创建和销毁通过 mlx5_cmd_create_lag 和 mlx5_cmd_destroy_lagLAG的激活和去激活mlx5_activate_lag 和mlx5_deactivate_lag清理相关资源Mellanox网卡只有在HCA_CAP.num_lag_ports 1的时候才能用lag功能在HCA_CAP的“寄存器”地址的偏移4Ch处 如果 HCA_CAP.lag_master 1软件SW必须使用特定的命令如 CREATE/MODIFY/DESTROY LAG来启用和管理 LAGLAG相关的几条命令创建修改查询销毁创建vport的lag和销毁 MLX5_CMD_OP_CREATE_LAG 0x840, MLX5_CMD_OP_MODIFY_LAG 0x841, MLX5_CMD_OP_QUERY_LAG 0x842, MLX5_CMD_OP_DESTROY_LAG 0x843, MLX5_CMD_OP_CREATE_VPORT_LAG 0x844, MLX5_CMD_OP_DESTROY_VPORT_LAG 0x845,以创建LAG为例HOST和FW交互cmd格式 其中context内容 代码中创建lag是mlx5_cmd_create_lag可见是对cmd的封装 创建执行结束后会返回状态和syndrome mlx5_create_lag执行成功后会将设置到FW的flags同时赋值到ldev-flags | flags;如果失败不会被执行然后__mlx5_lag_is_active会判断这个flags是否为有效ldev-flags MLX5_LAG_MODE_FLAGS,下面任何一个flag被打标都表示有效。
#define MLX5_LAG_MODE_FLAGS (MLX5_LAG_FLAG_ROCE | MLX5_LAG_FLAG_SRIOV |\MLX5_LAG_FLAG_MULTIPATH | \MLX5_LAG_FLAG_HASH_BASED | MLX5_LAG_FLAG_MULTI_PORT_ESW)当ibdev2netdev查看bond口名字的时候使用的是mlx5_0还是mlx5_bond_0就是根据是否active决定的
参考 https://enterprise-support.nvidia.com/s/article/How-to-Configure-RoCE-over-LAG-ConnectX-4-ConnectX-5-ConnectX-6 https://docs.nvidia.com/networking/display/mlnxofedv23070512/changesandnewfeatureshistory