1. dpvs.conf 配置文件说明
本文是对dpvs默认配置文件的解释说明。
在DPVS的配置文件中,表示初始化阶段的配置项,无法重新加载。 如果配置了无效值! 文件,dpvs将使用其默认值。
注释行: 以#或者!。内联范围注释:使用“ ”,在两者之间添加注释。
1.1. 全局
1.2. 网卡设备
配置网卡的接收、发送队列数,RSS、FDir的模式。
注意:FDir的匹配域不在dpvs配置文件中配置,而是在C文件中,以静态变量的形式配置。
1.3. 工作核心
1.4. ipv4
1.5. ipv6
1.6. 定时器相关
1.7. 邻居子系统
由于自己实现 tcp 协义,那邻居子系统和路由系统肯定也要实现,只不过比较精简专用
1.8. 控制配置
1.9. ipvs
1.10. sa_pool
sa_pool是 socket address (or local pair) pool 的缩写。
对于多核应用程序,流量返回本地启动的连接需要达到原CPU核心。有几个实现目标的方法。一种是用同样的方法计算RSS,NIC选择当前CPU进行连接。dpvs使用的方法是基于Flow Director(fdir),预先为每个CPU核心提供本地源。并通过fdir将后端通信量重定向到该CPU。
每个 lcore 有自己的 sa_pool, 用于管理本地分配的 , 假如当前启用了 64 个 lcore, 一共有 65535-1024 可用端口,那么每个 lcore 在同一个 lip 上最多使用 (65535-1024)/64 个地址。
2. 端口RSS/FDir 配置
端口RSS/FDir 的默认配置在文件dpvs/blob/master/src/netif.c中,
RSS/FDir配置:
可见,上述fdir配置中, dpvs根据 dst_ip, dst_port_mask 计算,也就是对应 , 若 lip 只有一个,所以等同于只看 lport,
3. 参考