P4架构

图片来自官方P4_tutorial.pptx 中,7-21页内容

自底向上的设计使得灵活的网络需求无法下发给交换机,所以更好的方法是自顶向下的设计,用户/控制器确定规则。我们真正想要的是,能够在high-level上精确定义芯片应该如何处理数据包(通过编写p4程序实现)

PISA.png

P4基于高速的包处理设备的抽象模型,称为PISA,代表协议无关的交换机架构(Protocol-Independent Switch Architecture),主要包括三个部分:

parser被建模为一个简单的、确定性的状态机,它通常根据事先指定的包头中,特定字段的值进行状态间的跳转;match-action pipeline是PISA架构的核心,可以将一些数据与对应的表(包含一些entry)进行匹配,并进行相应的action;deparser与parser相反,它重新组装数据包,数据包重新被序列化

P4 Target:特定的硬件实现

P4 Architecture:通过一组P4可编程、外部与固定组件,提供对P4 Target进行编程的接口

Untitled

对一个P4 target编写P4程序的过程,由几个部分构成:

除了V1Model,目前还有Portable Switch Architecture和Tofino native等架构,其中tofino native的架构比v1model有更多的功能,PSA的架构可以被更多的target (FPGA,ASIC,Software)所支持

可以按照v1model的架构来写程序,之后compiler会帮助把v1model的程序转换成其他的架构的程序

Untitled

V1Model架构包括5个部分: