Mellanox的LAG全称是什么?网卡的创建机制如何?(Link Aggregation Group 链路聚合组)
背景
对于双端口的网卡,有时候有将链路聚合的需求。在Mellanox网卡上通过LAG提供。对于RoCE的报文在Mellanox上也可以通过LAG来完成报文收发,叫做RoCE over LAG。但是仅仅适用于双端口卡。
关键点
- LAG: Link Aggregation Group (LAG) 链路聚合组。一种网络技术,允许将多个物理链路组合成一个逻辑链路,以提高带宽和冗余。(注意这里是指链路,还不涉及端口port的概念,聚合的不是端口而是链路)
- Linux内核中链路聚合是 bonding 功能
- LAG 的创建和销毁:通过 mlx5_cmd_create_lag 和 mlx5_cmd_destroy_lag
- LAG的激活和去激活: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)来启用和管理 LAG
- LAG相关的几条命令:创建,修改,查询,销毁,创建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/changes+and+new+features+history
相关文章:
Mellanox的LAG全称是什么?网卡的创建机制如何?(Link Aggregation Group 链路聚合组)
背景 对于双端口的网卡,有时候有将链路聚合的需求。在Mellanox网卡上通过LAG提供。对于RoCE的报文在Mellanox上也可以通过LAG来完成报文收发,叫做RoCE over LAG。但是仅仅适用于双端口卡。 关键点 LAG: Link Aggregation Group (LAG) 链路…...
【最大通过数——二分】
题目 代码 #include<bits/stdc.h> using namespace std; using ll long long;const int N 2e510;int n, m, k; ll a[N], b[N];bool check(int mid) {for(int i 0; i < mid; i){if(i > n) break;if(mid-i > m) continue;if(a[i] b[mid-i] < k) return tr…...
Liunx系统中FTP与NFS
目录 一、FTP文件传输协议 1.1、FTP工作原理 1.2、FTP状态码 1.3、FTP用户类型 1.4、FTP软件vsftpd 1.4.1、安装vsftpd 1.4.2、vsftpd配置文件 二、NFS网络文件系统 2.1、NFS工作原理 2.2、NFS软件 2.3、NFS共享配置文件格式 2.4、NFS相关命令 2.4.1、exportfs 2.…...
uniapp 测试 IPA 包安装到测试 iPhone
将uniapp测试IPA包安装到测试iPhone有以下几种方法: 使用Xcode安装 确保计算机上安装了Xcode,并将iOS设备通过数据线连接到计算机。打开Xcode,在菜单栏中选择Window->Devices and Simulators,在设备列表中找到要安装的iPhone…...
结构体指针传递给函数注意事项
在 C 语言中,传递结构体指针给函数是一种常见且高效的编程方式。不过,在实际操作时,有一些重要的注意事项需要留意,下面为你详细介绍: 1. 避免空指针引用 在函数内部使用结构体指针前,要先检查该指针是否为…...
mfy学习笔记
创建表并导入数据 CREATE TABLE sales (id INT,salesperson STRING,region STRING,sales_amount INT,sale_date DATE );INSERT INTO sales (id, salesperson, region, sales_amount, sale_date) VALUES (1, Alice, North, 1000, 2023-01-01), (2, Bob, South, 1500, 2023-01-0…...
C语言--文件操作
第16讲:文件操作 1. 为什么使用文件? 如果没有文件,我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收,数据就丢失了,等再次运行程序,是看不到上次程序的数据的&…...
网络安全内参
在我的IT职业生涯的早期,Sun Microsystems被认为是一个计算机梦想家。Sun很早就创造了一个有趣的公司口号:“The network is the computer.”这是什么意思?这意味着IT基础设施以松散耦合的体系结构连接在一起,通过以太网电缆和TCP/IP协议等网…...
C++大整数类的设计与实现
1. 简介 我们知道现代的计算机大多数都是64位的,因此能处理最大整数为 2 64 − 1 2^{64}-1 264−1。那如果是超过了这个数怎么办呢,那就需要我们自己手动模拟数的加减乘除了。 2. 思路 我们可以用一个数组来存储大数,数组中的每一个位置表…...
在 macOS 系统上安装 kubectl
在 macOS 系统上安装 kubectl 官网:https://kubernetes.io/zh-cn/docs/tasks/tools/install-kubectl-macos/ 用 Homebrew 在 macOS 系统上安装 如果你是 macOS 系统,且用的是 Homebrew 包管理工具, 则可以用 Homebrew 安装 kubectl。 运行…...
【人工智能】蓝耘智算平台盛大发布DeepSeek满血版:开创AI推理体验新纪元
📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀ 蓝耘智算平台 蓝耘智算平台核心技术与突破元生代推理引擎快速入门:三步调用大模型接口,OpenAI SDK无缝兼容实战用例文…...
构建数据治理闭环:DAMA视角下的全流程实践与价值变现
随着数字经济的迅速发展,数据已成为企业核心资产,高效的数据治理体系正变得至关重要。本文基于DAMA理论,从数据资产入表、分类分级、确权登记到元数据管理、数据质量监控,再到数据集成、互操作及主数据管理,全流程构建…...
《深度剖析:AI与姿态估计技术在元宇宙VR交互中的应用困境》
在元宇宙的宏大版图里,虚拟现实(VR)交互是构建沉浸式体验的关键支柱,而人工智能(AI)与姿态估计技术的融合,本应成为提升交互体验的强大引擎。但在实际应用中,它们面临着诸多复杂且棘…...
【Python LeetCode】面试经典 150 题
数组 / 字符串快慢指针(双指针)总结88. 合并两个有序数组27. 移除元素26. 删除有序数组中的重复项80. 删除有序数组中的重复项 II Boyer-Moore 投票算法169. 多数元素扩展:寻找 n/3 多数元素 翻转法189. 轮转数组 贪心121. 买卖股票的最佳时机…...
2011-2019年各省乡镇综合文化站机构数数据
2011-2019年各省乡镇综合文化站机构数数据 1、时间:2011-2019年 2、来源:国家统计局、统计年鉴 3、指标:行政区划代码、地区、年份、乡镇综合文化站机构数 4、范围:31省 5、指标解释:乡镇综合文化站是中国基层文化…...
LeetCode 热题100 226. 翻转二叉树
LeetCode 热题100 | 226. 翻转二叉树 大家好,今天我们来解决一道经典的算法题——翻转二叉树。这道题在 LeetCode 上被标记为简单难度,要求我们翻转一棵二叉树,并返回其根节点。下面我将详细讲解解题思路,并附上 Python 代码实现…...
mysql 拼接多行合并为一行
如图所示,在variety相同的前提下拼接rating为ratingList,year_term为yearTermList sql如下: SELECT variety,GROUP_CONCAT(rating ORDER BY rating SEPARATOR ,) AS ratingList,GROUP_CONCAT(year_term ORDER BY year_term SEPARATOR…...
【Java项目】基于Spring Boot的论坛管理系统
【Java项目】基于Spring Boot的论坛管理系统 技术简介:采用Java技术、Spring Boot框架、MySQL数据库等实现。 系统简介:论坛管理系统是一个基于Web的在线平台,主要分为前台和后台两大功能模块。前台功能模块包括(1)首…...
unity学习54:图片+精灵+遮罩mask,旧版文本 text 和新的TMP文本
目录 1 图片 image 1.1 如果直接导入image 1.2 图片 image 和精灵 sprite 1.2.1 继续修改上面的格式 texture type 是default 1.2.2 再次关联到UI的 image 物体上就可以了 1.3 图片和遮罩 mask 1.3.1 创建1个父物体和1个子物体,分别都是image 1.3.2 如果父…...
2024年国赛高教杯数学建模D题反潜航空深弹命中概率问题解题全过程文档及程序
2024年国赛高教杯数学建模 D题 反潜航空深弹命中概率问题 原题再现 应用深水炸弹(简称深弹)反潜,曾是二战时期反潜的重要手段,而随着现代军事技术的发展,鱼雷已成为现代反潜作战的主要武器。但是,在海峡或…...
喔去,litellm 竟然被投毒了,赶紧检查你的机器中招了没有号
一、什么是setuptools? setuptools 是一个用于创建、分发和安装 Python 包的核心库。 它可以帮助你: 定义 Python 包的元数据(如名称、版本、作者等)。 声明包的依赖项,确保你的包能够正确运行。 构建源代码分发包&…...
FastAPI子应用挂载:别再让root_path坑你一夜祭
Julia(julialang.org)由Stefan Karpinski、Jeff Bezanson等在2009年创建,目标是融合Python的易用性、C的高性能、R的统计能力、Matlab的科学计算生态。 其核心设计哲学是: 高性能:编译型语言(JIT࿰…...
手机号逆向查询QQ号:Python开发者的高效查询解决方案
手机号逆向查询QQ号:Python开发者的高效查询解决方案 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 你是否曾在工作中需要快速验证手机号与QQ号的绑定关系?面对批量数据时,手动查询不仅耗时耗力&…...
QNX系统资源监控实战:高效查看CPU与内存使用情况
1. QNX系统资源监控入门指南 在嵌入式开发领域,QNX作为一款实时操作系统(RTOS)被广泛应用于汽车电子、工业控制等对系统稳定性要求极高的场景。记得我第一次接触QNX系统时,面对黑漆漆的命令行界面,完全不知道如何查看系统资源使用情况。后来…...
免费查AI率平台横评:知网、维普、万方检测结果到底差多少
免费查AI率平台横评:知网、维普、万方检测结果到底差多少 这两天帮学妹查论文的AI率,同一篇文章分别在知网、维普、万方上检测了一遍,结果把我整懵了——三个平台给出的AI率差了将近20个百分点。 这不是个例。我后来又拿了四五篇不同专业的论…...
PyTorch实战:用CrossEntropyLoss的weight和label_smoothing解决类别不平衡与过拟合
PyTorch实战:用CrossEntropyLoss的weight和label_smoothing解决类别不平衡与过拟合 当你面对医学影像分类任务时,数据集中正常样本占比90%,而病变样本仅占10%。训练后的模型对所有样本都预测为正常类别,准确率看似很高却完全无法识…...
我用 AI 辅助开发了一系列小工具():文件提取工具读
从0构建WAV文件:读懂计算机文件的本质 虽然接触计算机有一段时间了,但是我的视野一直局限于一个较小的范围之内,往往只能看到于算法竞赛相关的内容,计算机各种文件在我看来十分复杂,认为构建他们并能达到目的是一件困难…...
稳扎稳打,MongoDB 3.2.x到4.2.x版本升级实战——分片集群部署模式详解
1. 分片集群升级的特殊挑战 分片集群作为MongoDB处理海量数据的核心架构,其升级过程比单机或副本集复杂得多。我经历过三次生产环境的分片集群升级,每次都会遇到新问题。最头疼的是数据分片不均衡问题——升级过程中某些分片突然负载激增,导致…...
OpenClaw人人养虾:仪表盘(Dashboard)
Gateway 仪表盘是默认在 / 路径提供的浏览器 Control UI(可通过 gateway.controlUi.basePath 覆盖)。 快速打开(本地 Gateway): http://127.0.0.1:18789/(或 http://localhost:18789/) 关键参…...
什么年代了怎么还在用bash啊?现代化shell开箱体验: fish, nu, elvish杀
整体排查思路 我们的目标是验证以下三个环节是否正常: 登录成功时:服务器是否正确生成了Session并返回了包含正确 JSESSIONID的Cookie给浏览器。 浏览器端:浏览器是否成功接收并存储了该Cookie。 后续请求:浏览器在执行查询等操作…...
