申请试用
HOT
登录
注册
 

Linux Network Programming with P4

阳春白雪
/
发布于
/
5071
人观看

express data path(xdp)是一个新的内核特性,旨在提供尽可能靠近设备硬件的快速数据包处理。XDP建立在扩展伯克利包过滤器(ebpf)之上,并允许用户编写一个类c的包处理程序,可以附加到设备驱动程序的接收队列。当设备观察到传入数据包时,触发用户定义的xdp程序以在数据包有效负载,尽早做出决定将数据包传递到处理管道。p4是一种特定于域的语言,描述包是如何由可编程网络元件的数据平面,包括网络接口卡、设备和虚拟交换机。它提供了允许程序员表达现有和未来的抽象协议格式,不将其耦合到任何特定的数据平面知识。该语言被显式地设计为协议不可知的。p4程序员可以编写自己的协议并加载p4程序进入P4功能的网络元素。作为高级网络语言,p4支持多种编译器后端,还具有表示ebpf和xdp程序的能力。

我们介绍了p4c-xdp,这是p4编译器的一个新后端。P4C-XDP杠杆以高性能软件数据平面为目标的xdp。后端从给定的p4程序生成符合ebpf的c表示它被传递给clang和llvm以生成字节码。使用传统的ebpf内核钩子程序可以加载到设备驱动程序中的ebpf虚拟机。内核验证器保证生成代码的安全性。任何数据包接收/发送到此设备驱动程序现在触发执行加载的p4程序。

1点赞
0收藏
0下载
相关推荐
确认
3秒后跳转登录页面
去登陆