以下内容直接来自官网文档的整理。
更精准的描述请阅读文档:https://doc.dpdk.org/guides/prog_guide/rte_flow.html
一 rte_flow是干嘛的
一组用来创建自定义规则的api,该规则可以改变网络流量的命运,以及查询计数。
二 规则啥样
1 match + action
match包括:两类,A报文内容(按协议栈分层); B报文属性(网口,方向)。
action包括:计数,丢包,重定向queue,卸载。
2 规则被不同组包含
只有组0被执行,跟其他组的连接需要使用rule的jump action。
3 规则间有优先级
相同优先级行为未定义。小值优先级高,0最大。
4 有个接口检查规则有效性
5 ACTION
a 改变路由或丢弃
b 改包,封装解封装。
c 计数,放行,或跳转其他规则。
可以是一个;也可以是列表,按顺序执行。
三 模板
可以创建patten模板和action模板。在创建rule时引用。
四 编程模型
1 静态配置
todo
2 异步配置
异步是指包转发的过程中,向硬件中变更,增减rte flow条目。它有个无锁队列。
准备好条目后,放入队列。然后push进硬件,再用api pull出flow的加载结果。
编程模型见下图:
五 isolated mode
通常,流量先过flow规则,然后再 rss或者通过其他全局接口定义 进入不同的queue。
isolated模式使包的流量直接通过flow规则进行转发,不再被后续的全局配置进行处理。
1 该模式,可以提高性能,提高网卡硬件资源的利用率,同时会缺少部分功能。
2 另外,该模式不一定很好的支持全局变更。所以一般推荐在rte_eth_dev_configure()之前就进行设置。
大概是这个意思,该模式详细的情况需要在具体使用时进一步测试,或阅读源码。
标签:rte,优先级,flow,规则,action,dpdk From: https://www.cnblogs.com/hugetong/p/18126377