p4-16语言特性文档阅读

Posted 10249421

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了p4-16语言特性文档阅读相关的知识,希望对你有一定的参考价值。

本随笔主要是对于 P416 Language Specification 文档的部分阅读总结,,

对于 p4 语言的语法、函数等由于时间问题暂未详细说明。。

范围

  1. 文档仅定义结构和解释
  2. 未定义p4程序如何编译、加载和执行
  3. 为定义如何收发报文
  4. 未定义控制平面管理流表(数据面)机制
  5. p4程序的大小和复杂程度
  6. 未定义对系统的要求

术语,定义和符号

Metadata:在执行P4程序期间生成的中间数据

Packet payload:数据包头后面的数据包数据

概述

  • P4语言提供的核心抽象:

    1. Header类型字段描述头部各字段与大小
    2. Parsers描述允许解析和提取头部字段
    3. 匹配表(Tables)
    4. 动作集(Actions)
    5. 执行匹配操作的匹配动作集(Match-action)
    6. 用户定义的与数据包关联的数据结构(User-defined metadata)
    7. 内部元数据(Intrinsic metadata):架构所所提供的元数据
    8. 外部对象(Extern objects):
      Extern对象是特定于体系结构的构造,可以由P4程序通过定义良好的API进行操作,但是其内部行为是硬连线的(例如,校验和单元),因此无法使用P4进行编程
  • 编译P4程序主要工作

    1. 实现输入程序中描述的转发逻辑的数据平面配置
    2. 控制平面管理数据平面对象状态的API

Architecture Model(体系模型)

  • P4体系结构可以看作是程序与目标(target:数据平面的硬件)的协议
  • 控制寄存器/信号在P4中表示为固有元数据(内部元数据:Intrinsic metadata)
  • P4程序还可以将与每个数据包有关的数据存储和处理为用户定义的元数据
  • extern 对象描述由对象实现的一组方法,而不是这些方法的实现

以上是关于p4-16语言特性文档阅读的主要内容,如果未能解决你的问题,请参考以下文章

C#语言特性及发展史

Scala中的语言特性是如何实现的?

追随 Kotlin/Scala,看 Java 12-15 的现代语言特性

Java第一课:Java的历史,特性,认识标识符数据类型运行机制包机制及生成API文档

初识Java8新特性Lambda(三 ) 之lambda类库Stream

03 Go语言特性