简介
P4是一种声明式编程语言,它主要用于编程程序以下达指令给数据转发平面的设备(如交换机、网卡、防火墙、过滤器等)如何处理数据包,Jennifer Rexford和Nick McKeown认为P4将会改变传统网络设备的设计方式。
如今,设计一款高性能的网络设备是相当的痛苦。首先,你要确定你所需要的设备有哪些特性,然后你要找到一块最符合特性需求的交换机芯片,接着你要签署一份保密协议获得软件开发工具包(SDK),最后调用合适的API进行编程使芯片满足你的系统需求。但是由于你系统取决于SDK,所以设计是被芯片厂商锁定的。
P4试图在从根本上改变我们设计网络系统的方式。首先,你要确定系统的设计要求,然后写一个P4程序来描述你的系统需要如何处理数据包,最后编译程序通知转发设备该做什么。从本质上讲,P4无论是在软件设计(编程、调试、代码覆盖、模块检查等)方面,还是在网络系统的设计上,都给我们带来了很多好处。
目录
1 Introduction
2 Headers and Fields
3 Checksums and Hash-value generators
4 Parser Specification
5 Deparsing
6 Standard Intrinsic Metadata
7 Counters, Meters and Registers
8 Match+Action Table Overview
9 Actions
10 Action profile declarations
11 Table Declarations
12 Packet Processing and Control Flow
13 Egress Port Selection, Replication and Queuing
14 Recirculation and Cloning
15 Appendices