p4交换机可以获取的数据

P4交换机(v1 model)

!!转载请注明出处!!
本文链接:https://www.cnblogs.com/mike1024/p/14847129.html

  • 数据包头部数据的提取及操作

    • 提取
      1. 固定的头部格式,可以包括定长和不定长
    • 操作
      1. 按照条件进行包计数
      2. 头部信息的比较
  • 交换机体系结构自带的元数据(standard metadata):时间戳均为 微秒 单位

    • ingress_port:数据包到达设备的入口端口号(只读)

    • packet_length:对于来自端口的包或者再循环的包的长度(bytes)

    • egress_spec:输出端口(入口匹配控制块)

    • egress_port:数据包的目的输出端口(只在 出口匹配控制块访问,只读)

    • instance_type:(只读)

      1. 入口匹配控制块用于标识包是 resubmit 还是 recirculate 的结果
      2. 出口匹配控制块用来标识包是 resubmit、recirculate、clone、多播复制或者普通单播的数据包
    • parser_error:标识是否解析期间发生错误

    • checksum_error:verify_checksum 原始操作的调用判断校验和的结果(正确与否)

    • ingress_global_timestamp(可以被写入,但应该只进行读取,微秒)

      1. 数据包出现在 入口匹配控制块 的启动交换机后的时间戳,交换机启动的时候设置 0
      2. 可以被 入口控制块 和 出口控制块 读取
    • egress_global_timestamp(可以被写入,但应该只进行读取,微秒)

      1. 数据包出现在 出口匹配控制块 的启动交换机后的时间戳,交换机启动的时候设置 0
      2. 只能由 出口控制块 读取
    • mcast_grp(多播功能)

      1. bmv2运行时接口配置的有效多播组之一
      2. 需要多播时,必须在 入口匹配控制块 写入此字段,0 表示没有多播
    • egress_rid(多播功能)

      1. 只在 出口匹配控制块 有效,且只读
      2. 用于唯一标识相同入口数据包的多播复制包(我暂时不是很理解)
    • enq_timestamp:数据包首次入队列的时间戳,只能用于 出口匹配控制块

    • enq_qdepth:数据包首次入队列时队列的深度,即队列中数据包个数,只能用于 出口匹配控制块

    • deq_timedelta:数据包在队列中花费的时间,只能用于 出口匹配控制块

    • deq_qdepth:数据包出队列时的队列的深度,即队列中数据包个数,只能用于 出口匹配控制块

posted @ 2021-06-03 20:44  10249421  阅读(1539)  评论(0编辑  收藏  举报