Networking 为什么OpenFlow选择优先级较低的规则?
如果我在交换机上安装了这两条规则,那么根据OpenFlow交换机规范应该执行哪一条?OVS执行第一个,但第二个优先级较高: 第一条规则:Networking 为什么OpenFlow选择优先级较低的规则?,networking,network-programming,sdn,openflow,openvswitch,Networking,Network Programming,Sdn,Openflow,Openvswitch,如果我在交换机上安装了这两条规则,那么根据OpenFlow交换机规范应该执行哪一条?OVS执行第一个,但第二个优先级较高: 第一条规则: cookie=0x20000002000000, duration=14647.575s, table=0, n_packets=1297621, n_bytes=145897910, idle_timeout=65535, priority=1, udp, in_port=3, dl_src=02:6d:f3:c1:b4:7b, dl_dst=02:54:a
cookie=0x20000002000000,
duration=14647.575s,
table=0,
n_packets=1297621,
n_bytes=145897910,
idle_timeout=65535,
priority=1,
udp,
in_port=3,
dl_src=02:6d:f3:c1:b4:7b,
dl_dst=02:54:ab:ce:ba:0f,
nw_src=10.10.10.6,
nw_dst=10.10.10.1,
tp_src=46329,
tp_dst=1000
actions=output:1
第二条规则:
cookie=0xa000004039d1ae,
duration=164.680s,
table=0,
n_packets=0,
n_bytes=0,
send_flow_rem
priority=9999,
udp,
in_port=ANY,
nw_src=10.10.10.6,
nw_dst=10.10.10.1,
tp_dst=1000
actions=set_field:10.10.10.6->ip_src,
output:1
尽管目前没有记录,但作为_port中的
值的任何
应仅用于流量修改(删除)和流量统计请求。要匹配不考虑端口的数据包,只需从OpenFlow规则中删除in_port=ANY
这种行为是错误的,但源代码中有几个地方提到了它。首先,OFPP\u ANY
是。提到它应该只用于匹配OpenFlow规则。最后,声明p_NONE的表示不与任何端口关联
我认为这应该得到适当的记录,或者当使用不当时,TCL的ovs应该拒绝该值。我将在ovs-dev邮件列表中提出这个问题,并根据答案更新此帖子。如果在第二条规则中省略in\u port=ANY
,您是否有相同的行为?我从来没有见过被用来匹配数据包,只是用来匹配规则(例如,在ovs of ctl del flows
中)。你可能是对的!实际上,我有两个完全相同的其他规则,但in_port不是这些规则的“任何”,它们正确匹配。为什么“any”会导致这样的问题?@pchaigno,你是对的,我从in_端口删除了any,并用精确的端口号替换了它,现在它可以工作了!很高兴我能帮忙!我已经为其他遇到同样问题的用户提供了一个完整的答案。