p4_16 的 mask 语法
mask 使用 作为 一种set (集合 的表示)
常常出现在parser 的select 语句 中
来自 8.12.3. Masks
原型:
a &&& b = { c of type bit<W> where a & b = c & b }
其中右侧的b
是掩码(mask),a是固定部分,b(mask)中的 0
位表示“dont care” 的部分
eg1:
8w0x0A &&& 8w0x0F
这个表达式的意思是: 匹配任何类似: XXXX1010的 数值
我们可以知道, 这个模式可能匹配到:
00001010
00011010
00101010
...
11111010
共16种取值
为了说明 : b中的 0
位表示“dont care” 的部分
我们有eg2(和 eg1相同效果):
8w0xFA &&& 8w0x0F
b 中的0位让a 中的 F 那些 ,dont care了