p4交换机可以获取的数据
P4交换机(v1 model)
!!转载请注明出处!!
本文链接:https://www.cnblogs.com/mike1024/p/14847129.html
-
数据包头部数据的提取及操作
- 提取
- 固定的头部格式,可以包括定长和不定长
- 操作
- 按照条件进行包计数
- 头部信息的比较
- 提取
-
交换机体系结构自带的元数据(standard metadata):时间戳均为 微秒 单位
-
ingress_port
:数据包到达设备的入口端口号(只读) -
packet_length
:对于来自端口的包或者再循环的包的长度(bytes) -
egress_spec
:输出端口(入口匹配控制块) -
egress_port
:数据包的目的输出端口(只在 出口匹配控制块访问,只读) -
instance_type
:(只读)- 入口匹配控制块用于标识包是 resubmit 还是 recirculate 的结果
- 出口匹配控制块用来标识包是 resubmit、recirculate、clone、多播复制或者普通单播的数据包
-
parser_error
:标识是否解析期间发生错误 -
checksum_error
:verify_checksum 原始操作的调用判断校验和的结果(正确与否) -
ingress_global_timestamp
(可以被写入,但应该只进行读取,微秒)- 数据包出现在 入口匹配控制块 的启动交换机后的时间戳,交换机启动的时候设置 0
- 可以被 入口控制块 和 出口控制块 读取
-
egress_global_timestamp
(可以被写入,但应该只进行读取,微秒)- 数据包出现在 出口匹配控制块 的启动交换机后的时间戳,交换机启动的时候设置 0
- 只能由 出口控制块 读取
-
mcast_grp
(多播功能)- bmv2运行时接口配置的有效多播组之一
- 需要多播时,必须在 入口匹配控制块 写入此字段,0 表示没有多播
-
egress_rid
(多播功能)- 只在 出口匹配控制块 有效,且只读
- 用于唯一标识相同入口数据包的多播复制包(我暂时不是很理解)
-
enq_timestamp:数据包首次入队列的时间戳,只能用于 出口匹配控制块
-
enq_qdepth:数据包首次入队列时队列的深度,即队列中数据包个数,只能用于 出口匹配控制块
-
deq_timedelta:数据包在队列中花费的时间,只能用于 出口匹配控制块
-
deq_qdepth:数据包出队列时的队列的深度,即队列中数据包个数,只能用于 出口匹配控制块
-