Netronome智能网卡——XDP卸载
目录
- 前言
- 简介
- XDP卸载优势
- 应用
- 软硬件准备
- 网卡驱动和设置
- 更新固件
- 卸载示例
- 卸载方式
前言
本文对XDP卸载到智能网卡做一个记录,XDP和eBPF的概念参考Cilium的BPF和XDP指南
简介
我手头的两块智能网卡型号为Agilio CX 2x25GbE,具有两个25G速率的端口,需要安装对应的光模块,SFP+的光模块能达到10G速率,SFP28的光模块能达到25G速率;
网卡支持DPDK、P4可编程、OVS卸载、XDP卸载等功能,适用于云IaaS/PaaS、NFV、数据中心微分段、网络遥测、零信任安全等多种场景和应用。
本教程主要针对XDP卸载到智能网卡。
XDP卸载优势
- 与内核协同;
- 对传统工具支持更好;
- 无需独占CPU核,节省CPU资源;
- 高性能;
应用
4层负载均衡、DdoS防御、网络性能加速、网络遥测、软件定义路由……
XDP卸载支持的功能(来源于Netronome eBPF卸载的官方文档):
网卡和eBPF卸载的详细资料参考netronome官网的介绍文档:
https://www.netronome.com/products/agilio-cx/
https://www.netronome.com/technology/ebpf/
软硬件准备
网卡安装到标准的PCIe接口,在主机上安装linux系统(可使用双系统),使用官网推荐的Ubuntu18.04 或 Fedora 28(桌面版即可,服务器版未尝试),本教程环境使用的是Ubuntu18.04.5桌面版;网卡不支持windows;
网卡驱动和设置
由于网卡使用的nfp驱动合并在主linux,网卡正确安装并启动系统后,使用ip link命令即可显示出我们所安装的网卡。若不显示,检查驱动模块:
lsmod " grep nfp
若无输出,证明驱动模块未加载,尝试手动加载:
modprobe nfp
将光模块安装后,以光纤跳线连接两主机网卡(或将同网卡两端口相连接,仅用于测试);
速率设置:为网卡设置匹配的速率,否则网卡将显示线缆未连接;
注:更改端口速率必须按顺序进行,即enp4s0np0->enp4s0np1,不同主机和系统可能显示的网卡端口名不同;
down掉对应端口
ip link set dev $ETHNAME down
ethtool设置端口速率
ethtool -s $ETHNAME speed 10000
重载nfp模块以使速率设置生效
rmmod nfp; modprobe nfp
网卡设置完成后应能够正常连通;
更新固件
初始固件为网卡基础固件,不支持XDP卸载,固件类型可通过ethtool -i <网卡端口名称>查看;下图为初始固件:
![在这里插入图片描述](https://img-blog.csdnimg.cn/8bc33baaed7a4307ae8579f05ebdc08f.png
升级完固件以后:
卸载示例
以最简单的丢包程序为例,也可修改返回码测试其他行为:
#include <linux/bpf.h>
int xdp_prog1 (struct xdp_md *ctx __attribute__((unused) )) {return XDP_DROP;
}
卸载方式
- 通过ip命令卸载
ip link set dev $ETHNAME xdpoffload obj drop.o sec .text
- 通过加载程序卸载,可使用libbpf相关接口,或BCC(同样使用了libbpf库)
此处不赘述
本文以ip link为例:
- 使用Clang编译:
clang -O2 -target bpf -c drop.c -o drop.o
- 使用ip命令加载程序
ip link set dev $ETHNAME xdpoffload obj drop.o sec xdp
- 查看程序是否正确被卸载:
ip link show dev $ETHNAME
此时XDP程序已卸载到网卡,丢弃一切接收到的数据包。
4. netronome还提供了脚本,以表格形式实时显示网卡和XDP程序的实时速率等:
nfp-drv-kmods/tools/stat_watch.py $ETHNAME -c
效果图:
Netronome智能网卡——XDP卸载相关推荐
- 智能网卡OVS卸载设计
智能网卡卸载OVS作用 主要通过编辑报文实现卸载OVS转发功能:比如加vxlan头或者去vxlan头,修改MAC, 修改IP,修改UDP或者TCP的字段:以实现网络的智能互联功能: 智能网卡卸载OVS ...
- 图解DPU智能网卡,各种网络卸载细节
关注笔者公众号可以获取更多 DPU智能网卡卸载方面细节 文将会介绍mellanox的dpu智能网卡全卸载的几个方案的实现以及实现架构(ovs全卸载.ipsec卸载.操作系统升级等). BlueFile ...
- 智能网卡的网络加速技术
2021年9月25日,由"科创中国"未来网络专业科技服务团指导,江苏省未来网络创新研究院.网络通信与安全紫金山实验室联合主办.SDNLAB社区承办的2021中国智能网卡研讨会中,多 ...
- 从网络虚拟化,看智能网卡发展史
5G的到来无疑将加速网络虚拟化的进程,在电信领域,网络虚拟化不仅在核心网,也在网络的边缘.但是,仅仅通过软件解决方案不能提供足够的网络可靠性和服务质量,而具有高级可编程功能智能网卡(Smart NIC ...
- mellanox 网卡驱动_收购Mellanox之后 NVIDIA发布全球首款25G安全智能网卡
都说N卡网速快,现在,NVIDIA网卡真的来了-- 4月27日,NVIDIA正式完成了对Mellanox(迈络思)的收购,成交价70亿美元,约合人民币496亿元,得到了后者丰富的高性能网络解决方案. ...
- 锐文科技智能网卡xNIC-200/400在国产服务器测试性能报告
锐文科技,依托于网络虚拟化,软件定义网络,网络安全等前沿技术:专注于基于FPGA的高性能网络产品开发:为云计算,高性能计算,企业网络及金融领域等提供高带宽,低延迟的智能网卡(Smart NIC).公司 ...
- 智能网卡相关知识(smart nic 、DPU)
网卡作为穿行在网络与计算之间的桥梁,是可以解决计算瓶颈的关键硬件. 随着CPU 密度和数据中心网络带宽的进一步提升,用户对预期性能的需求,系统运行平稳性都会有更高的要求.云厂商一方面面临巨大的成本压力 ...
- 智能网卡-提升网络性能的新选择
一.智能网口介绍 智能网卡(Smart NIC)是一种专用于网络数据处理的高性能网卡,采用了定制芯片.高速网络接口和强大的软件支持,可以为数据中心和企业网络提供更快.更安全.更可靠的网络连接和数据传输 ...
- 基于智能网卡的vhost-user优化接收方法-学习笔记
本文是对阿里云文档的学习笔记 1. 为什么需要智能网卡 2. 智能网卡解决方案 3. 接受端的数据通路 4. 零拷贝优化方案 5. 待续 流程图很清楚,不过具体细节没有吃透,后续会有整理
最新文章
- vs配置编译c语言,为 VSCode 配置 C 语言编译环境
- Xcode 真机程序发布测试
- 《CSS揭秘》第五章:字体排印
- Akka的好用例[关闭]
- 【辟谣】代码规范固然重要,但是不要再黑程序员了...
- Hibernate双向多对多关联
- hive 时间转字符串_2. HIVE 基本操作
- axios post body参数_09-axios
- jupyter 托管_如何在本地托管的Jupyter Notebook上进行协作
- 【转】位操作基础篇之位操作全面总结
- hihocoder217周 树形DP
- 因一纸设计稿,我把竞品APP扒得裤衩不剩(中)
- Java数组:随机排序
- 反编译之脱去乐固加固的壳
- 3、可燃气体的爆炸极限
- 我们游戏后台架构学习
- android微信炸弹代码,微信炸弹怎么弄 微信8.0扔炸弹攻略[多图]
- matlab 文件输出到text文件总结
- 使用晨曦记账本,根据需要设置记账表格行数
- 实例讲解:使用IBM heapAnalyzer分析heap dump文件步骤
热门文章
- 互联网金融时代,必看的六种理财模式------------王艾老哥浅析
- 计算机视觉的顶刊顶会(转载)
- Android中动态改变布局中控件的位置
- CTFweb相关靶场推荐与环境配置
- 环境搭建|第三篇:apache2+tomcat项目部署
- (图解 HTTP)一篇文章带你深入了解 HTTP 协议
- java计算机毕业设计安路友汽车租赁源码+数据库+系统+lw文档+部署
- 北斗三号频点_我国首颗北斗三号芯片正式发布
- VMware vSAN 7 超融合基础架构 (HCI)虚拟化集群解决方案
- IDEA搭建简单的SSM(spring+springMVC+mybatis)框架