P4入门(一)
P4入门(一)
PISA和openflow
openflow和P4都基于Programmable Hardwares(可编程硬件)的理念。openflow是再Control Plane(控制层)实时改写switch和router上的路由表。但是openflow存在许多问题,于是Protocol Independent Switch Architecture(PISA)诞生,从更底层入手把packet的转发最基础的过程高度抽象化,消除了openflow存在的很多问题。它的图示如下:
P4简介
P4是一种类似C语言的静态语言。代码文件的基本样式如下:
- Libraries: 类似C语言的库文件;
- Declarations:定义基本数据结构,支持typedef;
- Parse packet headers:放置解析headers的代码;
- Control flow:代码的逻辑部分,定义Match-Action functions,按照定义的规则修改网络包里的内容(这里只有Ingress部分,还会有Egress部分);
- Assemble: Deparser部分把前面修改好的部分重新组装为一个新的packet转发;
- main: 将定义好的部分按正确的顺序调用
- 一般为三段式:Parser->Match-Action Pipeline->Deparser
总结
本篇简单介绍了P4的背景,架构,它的出现就是方便我们在不那么“灵活”的硬件上编写自己设计的“灵活”protocol。
P4入门(一)
http://clordc.github.io/2023/05/29/P4入门(一)/