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:數據包出隊列時的隊列的深度,即隊列中數據包個數,只能用於 出口匹配控制塊
-