随笔分类 -  dpdk

dpdk RSS和FDIR区别
摘要:RSS和FDIR都在物理网口和网卡多队列之间。 RSS(Receive Side Scaling)通过hash把数据包均匀发送到网卡队列上,在dpdk应用中可实现流量负载均衡到不同转发核上。FDIR(Flow Director)根据流量特征条件把数据包发送到指定网卡队列上,在dpdk应用中可实现转发 阅读全文

posted @ 2024-11-01 21:41 王景迁 阅读(278) 评论(0) 推荐(0)

dpvs 调整tcp mss
摘要:修改tcp options中mss值 src/ipvs/ip_vs_proto_tcp.c 因为tcp头部options中不同kind顺序是随机的,所以需要遍历找到kind值是mss 2和length值是4,再修改后面的mss value。 static void tcp_out_adjust_ms 阅读全文

posted @ 2024-07-20 17:44 王景迁 阅读(49) 评论(0) 推荐(0)

dpip初始化percore链表
摘要:src/inetaddr.c定义静态二维数组inet_addr_tab,值是双向链表,用于解决dpip ip哈希冲突。 include/netif.h核数最多是128 src/inetaddr.cinet_addr_init函数初始化空的双向链表 include/list.hINIT_LIST_HE 阅读全文

posted @ 2024-01-01 21:20 王景迁 阅读(64) 评论(0) 推荐(0)

dpip增加ip
摘要:dpip addr add 10.11.12.13/24 dev dpdk0 src/inetaddr.cifa_entry_add函数 判断dpdk0上是否已经存在该ip param->addr是10.11.12.13 dpdk0上不存在该ip后,大页内存上分配 添加路由到链表 添加地址到链表 0 阅读全文

posted @ 2023-12-12 09:07 王景迁 阅读(35) 评论(0) 推荐(0)

节点重启后初始化dpvs
摘要:# 加载大页内存 echo 2048 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages mount -t hugetlbfs nodev /mnt/huge # 加载vfio驱动 modprobe vfi 阅读全文

posted @ 2023-11-23 22:03 王景迁 阅读(28) 评论(0) 推荐(0)

dpvs启动时coredump
摘要:问题现象 问题分析 # 根据core文件来打印堆栈信息 gdb -c lcore-worker-2.core.20196 /root/code/dpvs/bin/dpvs 解决问题 大页内存2G不足导致段错误,分配4G后正常。 阅读全文

posted @ 2023-11-23 22:00 王景迁 阅读(31) 评论(0) 推荐(0)

dpdk LPM
摘要:DPDK LPM(Longest Prefix Match)是高性能前缀路由匹配库,用于数据包转发过程中快速查找与dstIP地址最长匹配的路由表项。DPDK LPM查找时只需要提供目的IP,eBPF LPM查找时需要提供目的IP和子网掩码。 LPM实现 高性能:基于前缀树算法实现快速匹配。线程安全: 阅读全文

posted @ 2023-10-01 17:37 王景迁 阅读(352) 评论(0) 推荐(0)

dpdk官方转发例子分析
摘要:例子源码http://dpdk.org/browse/dpdk/tree/examples/skeleton/basicfwd.c main函数主流程 1. 初始化环境抽象层EAL int ret = rte_eal_init(argc, argv); if (ret < 0) rte_exit(E 阅读全文

posted @ 2023-10-01 17:16 王景迁 阅读(256) 评论(0) 推荐(0)

dpvs dnat模式
摘要:dnat模式发送报文 src/ipvs/ip_vs_core.c针对ipv4,INET_HOOK_PRE_ROUTING注册2个函数dp_vs_pre_routing和dp_vs_in,因为nat不做防止DDos攻击的syn_proxy,所以看dp_vs_in。 conn_sched新请求建立连接选 阅读全文

posted @ 2023-10-01 16:55 王景迁 阅读(98) 评论(0) 推荐(0)

LB
摘要:FULLNAT模式 客户端流量达到LB时,DNAT把数据包的目的IP改为后端服务IP,SNAT从local ip池中选择一个IP作为源IP,重新选源端口,后端服务应答时目的IP是local ip。 LVS性能问题 LVS做四层负载均衡。中断是影响LVS性能最重要的一个因素,假如一秒处理600万个数据 阅读全文

posted @ 2023-09-23 14:48 王景迁 阅读(295) 评论(0) 推荐(0)

NUMA作用
摘要:UMA(Uniform Memory Access)统一内存访问,每个CPU共享相同的内存地址空间。CPU核数很多时对总线带宽压力和访问同一块内存的冲突问题比较明显。 NUMA全称Non-Uniform Memory Access,即非一致性内存访问,可以解决这些问题。内存和CPU从属不同的Node 阅读全文

posted @ 2023-09-03 18:21 王景迁 阅读(212) 评论(0) 推荐(0)

centos7.9安装dpvs
摘要:# 安装依赖 yum install popt-devel automake gcc -y yum install -y python3-pip yum install numactl-devel -y yum install openssl-devel -y # 安装python 3.7.0和me 阅读全文

posted @ 2023-09-03 17:40 王景迁 阅读(360) 评论(0) 推荐(0)

DPDK基本原理
摘要:内核处理网络数据包弊端 中断处理处理大量网络数据包时,出现频繁的硬件中断,产生较高的性能开销。 内存拷贝网络数据包从网卡到应用程序流程是,数据从网卡通过DMA传到内核缓冲区,从内核态拷贝到用户态。 上下文切换硬件中断、多线程、锁竞争产生上下文切换开销。 CPU缓存失效数据包处理可能跨多个CPU,例如 阅读全文

posted @ 2023-09-03 17:19 王景迁 阅读(234) 评论(0) 推荐(0)

导航