pf_ring有三种透明模式(transparent_mode),为0时走的是Linux标准的NAPI包处理流程。为1时,包既走Linux标准包处理流程,也copy给pf_ring一份。为2时,驱动只将包拷贝给pf_ring,内核则不会接收到这些包。
从性能角度而言,三种模式的效率依次升高。
(1)通用网卡驱动
对于通用网卡驱动,只有transparent_mode=0有效。
从这里可以看到,当设置为模式0和模式1时,内核依然会处理这些包,而设置为2时,包只由pf_ring处理。
(3)效率提升
从上面的分析看以看出,模式0网络处理路径最长,效率也是最低的;模式1路径较短,效率比模式0要高,但内核中的处理工作依然较多;
模式2路径最短,内核中的处理工作较少。