当P4的规则表中匹配域为ternary类型的时候如何下发规则?

喜欢而已 提交于 2020-01-28 05:29:57

    在P4中给定以下规则表:

table update_cntr1_t {
	reads {
		udp.srcport: ternary;
	}
	actions {
		update_cntr1;
		nop;
	}
	default_action: nop;
}

我们希望在bfshell中给它下发一条规则,使得当掩码为0x00ff,匹配值为0x0011的时候执行动作update_cntr1,则可以使用如下命令:

pd update_cntr1_t add_entry update_cntr1 udp_srcport 0x0011 udp_srcport_mask 0x00ff priority 1

其中使用priority关键字的依据是《The P4 Language Specification》(Version 1.0.5,November 26, 2018)的55页的这段话:

ternary: A mask provided with each entry in the table. This mask is ANDed with the field value before a comparison is made. The field value and the table entry value need only agree on the bits set in the entry’s mask. Because of the possibilities of overlapping matches, a priority must be associated with each entry in a table using ternary matches.

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!