https://zhuanlan.zhihu.com/p/501207018
一 Tofino 架构简介
二 Tofino2 架构简介
三 P4与Barefoot Tofino芯片
四 Tofino 管道结构
流水线包处理过程
五 v1model 架构
六 PSA (Portable Switch Architecture)架构
七 TNA(Tofino Native Architecture)架构
组件视图
八 TNA的P4_16编程模板
九 Parser模型
parser输入:
类型数据包,是由目标设备提供的类型数据。
: 用户自定义元数据;
:**设备产生提供的元数据。
parser输出:
:用户定义的数据报头;
: 用户自定义元数据;
:设备产生提供的元数据。
以Barefoot厂商提供的元数据为例说明:
其中pkt 为tonifo 提供的packet_in类型数据包
hdr 为用户自定义元数据
输出:
hdr 用户定义的数据报头
ig_md为用户自定义元数据
ig_intr_md为tonifo产生提供的元数据
1 packet_in
: 从数据报文指针开始位置,抽取类型数据大小的报头,存储在中**,并将数据报文指针前移。可能触发错误,类型的数据的大小必须为固定值。
:读取数据报头到可变大小的报头变量中,必须包含一个及以上字段。数据报指针前移。
:读取类型数据大小的报头,但不前移数据报指针。
:前移数据报头指针。
:返回数据报的字节数。
2 packet_out
将hdr写入输出包,T可以是header stack, header_union, 或者是包含此类型的结构体
十 Intrinsic Metadata
其中 ingress_port为入方向的物理口ID
十一 Controls
十二 自定义哈希
十三 simple_lpr
十四 数据包生成器
十五 核心组件
领取专属 10元无门槛券
私享最新 技术干货