we have found this issue. When writing a policy like match1 >> (match2 >> fwd), two rules are created instead of one:
The first one, with higher priority, is the expected one.
The second one is the rule match1 >> drop.
For instance, with match1 selecting all TCP packets and match2 selecting only the ones with dstip equal to 10.0.3.100 on a certain switch we write in Pyretic:
The difference wrt our case is that the two created matches for issue #28 are equal, so the proposed patch eliminating duplicated rules works. In our case, however, it would not work.
Hi all,
we have found this issue. When writing a policy like match1 >> (match2 >> fwd), two rules are created instead of one:
For instance, with match1 selecting all TCP packets and match2 selecting only the ones with dstip equal to 10.0.3.100 on a certain switch we write in Pyretic:
self.policy = (match(ethtype=2048,protocol=packet.TCP_PROTO) >> (match(switch=203178705145866,dstip='10.0.3.100') >> fwd(10)))
we get the following OF flow rules (the created rules are marked with **):
I don't know if this can help, but we found a previous similar issue:
https://github.com/frenetic-lang/pyretic/issues/28
The difference wrt our case is that the two created matches for issue #28 are equal, so the proposed patch eliminating duplicated rules works. In our case, however, it would not work.
Thank you in advance, Giovanni