当前位置: 首页 > news >正文

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有以下几种方法&#xff1a; 使用Xcode安装 确保计算机上安装了Xcode&#xff0c;并将iOS设备通过数据线连接到计算机。打开Xcode&#xff0c;在菜单栏中选择Window->Devices and Simulators&#xff0c;在设备列表中找到要安装的iPhone…...

结构体指针传递给函数注意事项

在 C 语言中&#xff0c;传递结构体指针给函数是一种常见且高效的编程方式。不过&#xff0c;在实际操作时&#xff0c;有一些重要的注意事项需要留意&#xff0c;下面为你详细介绍&#xff1a; 1. 避免空指针引用 在函数内部使用结构体指针前&#xff0c;要先检查该指针是否为…...

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讲&#xff1a;文件操作 1. 为什么使用文件&#xff1f; 如果没有文件&#xff0c;我们写的程序的数据是存储在电脑的内存中&#xff0c;如果程序退出&#xff0c;内存回收&#xff0c;数据就丢失了&#xff0c;等再次运行程序&#xff0c;是看不到上次程序的数据的&…...

网络安全内参

在我的IT职业生涯的早期&#xff0c;Sun Microsystems被认为是一个计算机梦想家。Sun很早就创造了一个有趣的公司口号:“The network is the computer.”这是什么意思&#xff1f;这意味着IT基础设施以松散耦合的体系结构连接在一起&#xff0c;通过以太网电缆和TCP/IP协议等网…...

C++大整数类的设计与实现

1. 简介 我们知道现代的计算机大多数都是64位的&#xff0c;因此能处理最大整数为 2 64 − 1 2^{64}-1 264−1。那如果是超过了这个数怎么办呢&#xff0c;那就需要我们自己手动模拟数的加减乘除了。 2. 思路 我们可以用一个数组来存储大数&#xff0c;数组中的每一个位置表…...

在 macOS 系统上安装 kubectl

在 macOS 系统上安装 kubectl 官网&#xff1a;https://kubernetes.io/zh-cn/docs/tasks/tools/install-kubectl-macos/ 用 Homebrew 在 macOS 系统上安装 如果你是 macOS 系统&#xff0c;且用的是 Homebrew 包管理工具&#xff0c; 则可以用 Homebrew 安装 kubectl。 运行…...

【人工智能】蓝耘智算平台盛大发布DeepSeek满血版:开创AI推理体验新纪元

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀ 蓝耘智算平台 蓝耘智算平台核心技术与突破元生代推理引擎快速入门&#xff1a;三步调用大模型接口&#xff0c;OpenAI SDK无缝兼容实战用例文…...

构建数据治理闭环:DAMA视角下的全流程实践与价值变现

随着数字经济的迅速发展&#xff0c;数据已成为企业核心资产&#xff0c;高效的数据治理体系正变得至关重要。本文基于DAMA理论&#xff0c;从数据资产入表、分类分级、确权登记到元数据管理、数据质量监控&#xff0c;再到数据集成、互操作及主数据管理&#xff0c;全流程构建…...

《深度剖析:AI与姿态估计技术在元宇宙VR交互中的应用困境》

在元宇宙的宏大版图里&#xff0c;虚拟现实&#xff08;VR&#xff09;交互是构建沉浸式体验的关键支柱&#xff0c;而人工智能&#xff08;AI&#xff09;与姿态估计技术的融合&#xff0c;本应成为提升交互体验的强大引擎。但在实际应用中&#xff0c;它们面临着诸多复杂且棘…...

【Python LeetCode】面试经典 150 题

数组 / 字符串快慢指针&#xff08;双指针&#xff09;总结88. 合并两个有序数组27. 移除元素26. 删除有序数组中的重复项80. 删除有序数组中的重复项 II Boyer-Moore 投票算法169. 多数元素扩展&#xff1a;寻找 n/3 多数元素 翻转法189. 轮转数组 贪心121. 买卖股票的最佳时机…...

2011-2019年各省乡镇综合文化站机构数数据

2011-2019年各省乡镇综合文化站机构数数据 1、时间&#xff1a;2011-2019年 2、来源&#xff1a;国家统计局、统计年鉴 3、指标&#xff1a;行政区划代码、地区、年份、乡镇综合文化站机构数 4、范围&#xff1a;31省 5、指标解释&#xff1a;乡镇综合文化站是中国基层文化…...

LeetCode 热题100 226. 翻转二叉树

LeetCode 热题100 | 226. 翻转二叉树 大家好&#xff0c;今天我们来解决一道经典的算法题——翻转二叉树。这道题在 LeetCode 上被标记为简单难度&#xff0c;要求我们翻转一棵二叉树&#xff0c;并返回其根节点。下面我将详细讲解解题思路&#xff0c;并附上 Python 代码实现…...

mysql 拼接多行合并为一行

如图所示&#xff0c;在variety相同的前提下拼接rating为ratingList&#xff0c;year_term为yearTermList sql如下&#xff1a; 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的论坛管理系统 技术简介&#xff1a;采用Java技术、Spring Boot框架、MySQL数据库等实现。 系统简介&#xff1a;论坛管理系统是一个基于Web的在线平台&#xff0c;主要分为前台和后台两大功能模块。前台功能模块包括&#xff08;1&#xff09;首…...

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个子物体&#xff0c;分别都是image 1.3.2 如果父…...

2024年国赛高教杯数学建模D题反潜航空深弹命中概率问题解题全过程文档及程序

2024年国赛高教杯数学建模 D题 反潜航空深弹命中概率问题 原题再现 应用深水炸弹&#xff08;简称深弹&#xff09;反潜&#xff0c;曾是二战时期反潜的重要手段&#xff0c;而随着现代军事技术的发展&#xff0c;鱼雷已成为现代反潜作战的主要武器。但是&#xff0c;在海峡或…...

喔去,litellm 竟然被投毒了,赶紧检查你的机器中招了没有号

一、什么是setuptools&#xff1f; setuptools 是一个用于创建、分发和安装 Python 包的核心库。 它可以帮助你&#xff1a; 定义 Python 包的元数据&#xff08;如名称、版本、作者等&#xff09;。 声明包的依赖项&#xff0c;确保你的包能够正确运行。 构建源代码分发包&…...

FastAPI子应用挂载:别再让root_path坑你一夜祭

Julia&#xff08;julialang.org&#xff09;由Stefan Karpinski、Jeff Bezanson等在2009年创建&#xff0c;目标是融合Python的易用性、C的高性能、R的统计能力、Matlab的科学计算生态。 其核心设计哲学是&#xff1a; 高性能&#xff1a;编译型语言&#xff08;JIT&#xff0…...

手机号逆向查询QQ号:Python开发者的高效查询解决方案

手机号逆向查询QQ号&#xff1a;Python开发者的高效查询解决方案 【免费下载链接】phone2qq 项目地址: https://gitcode.com/gh_mirrors/ph/phone2qq 你是否曾在工作中需要快速验证手机号与QQ号的绑定关系&#xff1f;面对批量数据时&#xff0c;手动查询不仅耗时耗力&…...

QNX系统资源监控实战:高效查看CPU与内存使用情况

1. QNX系统资源监控入门指南 在嵌入式开发领域&#xff0c;QNX作为一款实时操作系统(RTOS)被广泛应用于汽车电子、工业控制等对系统稳定性要求极高的场景。记得我第一次接触QNX系统时&#xff0c;面对黑漆漆的命令行界面&#xff0c;完全不知道如何查看系统资源使用情况。后来…...

免费查AI率平台横评:知网、维普、万方检测结果到底差多少

免费查AI率平台横评&#xff1a;知网、维普、万方检测结果到底差多少 这两天帮学妹查论文的AI率&#xff0c;同一篇文章分别在知网、维普、万方上检测了一遍&#xff0c;结果把我整懵了——三个平台给出的AI率差了将近20个百分点。 这不是个例。我后来又拿了四五篇不同专业的论…...

PyTorch实战:用CrossEntropyLoss的weight和label_smoothing解决类别不平衡与过拟合

PyTorch实战&#xff1a;用CrossEntropyLoss的weight和label_smoothing解决类别不平衡与过拟合 当你面对医学影像分类任务时&#xff0c;数据集中正常样本占比90%&#xff0c;而病变样本仅占10%。训练后的模型对所有样本都预测为正常类别&#xff0c;准确率看似很高却完全无法识…...

我用 AI 辅助开发了一系列小工具():文件提取工具读

从0构建WAV文件&#xff1a;读懂计算机文件的本质 虽然接触计算机有一段时间了&#xff0c;但是我的视野一直局限于一个较小的范围之内&#xff0c;往往只能看到于算法竞赛相关的内容&#xff0c;计算机各种文件在我看来十分复杂&#xff0c;认为构建他们并能达到目的是一件困难…...

稳扎稳打,MongoDB 3.2.x到4.2.x版本升级实战——分片集群部署模式详解

1. 分片集群升级的特殊挑战 分片集群作为MongoDB处理海量数据的核心架构&#xff0c;其升级过程比单机或副本集复杂得多。我经历过三次生产环境的分片集群升级&#xff0c;每次都会遇到新问题。最头疼的是数据分片不均衡问题——升级过程中某些分片突然负载激增&#xff0c;导致…...

OpenClaw人人养虾:仪表盘(Dashboard)

Gateway 仪表盘是默认在 / 路径提供的浏览器 Control UI&#xff08;可通过 gateway.controlUi.basePath 覆盖&#xff09;。 快速打开&#xff08;本地 Gateway&#xff09;&#xff1a; http://127.0.0.1:18789/&#xff08;或 http://localhost:18789/&#xff09; 关键参…...

什么年代了怎么还在用bash啊?现代化shell开箱体验: fish, nu, elvish杀

整体排查思路 我们的目标是验证以下三个环节是否正常&#xff1a; 登录成功时&#xff1a;服务器是否正确生成了Session并返回了包含正确 JSESSIONID的Cookie给浏览器。 浏览器端&#xff1a;浏览器是否成功接收并存储了该Cookie。 后续请求&#xff1a;浏览器在执行查询等操作…...