我想了解如何在开放流规则中计算元数据。
cookie = 0x6900000,持续时间= 228925.519s,table = 17,n_packets = 384,n_bytes = 35436,优先级= 10,元数据= 0xf30000000000 / 0xffffff0000000000操作= write_metadata:0xc000f30000000000 / 0xfffffffffffffffe,goto_table:211
示例:我的流程与此非常相似。 如何精确计算元数据。
以及如何解释元数据值和掩码
有人说 new_metadata = old_metadata和〜mask |值和掩码
老实说我听不懂,有人可以解释一下
答案 0 :(得分:0)
the Open vSwitch documentation中说明了value
操作中metadata
和write_metadata
字段的用途:
write_metadata:value[/mask]
Updates the metadata field for the flow. If mask is omit‐
ted, the metadata field is set exactly to value; if mask
is specified, then a 1-bit in mask indicates that the
corresponding bit in the metadata field will be replaced
with the corresponding bit from value. Both value and
mask are 64-bit values that are decimal by default; use a
0x prefix to specify them in hexadecimal.
前面的解释确实等同于:
new_metadata = (old_metadata & ~mask) | (value & mask)
换句话说,我们首先擦除掩码(old_metadata & ~mask
)中设置为1的旧元数据值的位,然后将掩码({{ {1}}。