From: Numan Siddique <nusid...@redhat.com>

Presently, if a logical flow has possible conjunctive matches, OVN expression
parser has support for that. But certain fields like ip4.src, ip4.dst are not
considered as dimensions in the conjunctive matches.

In order to support all the possible fields as dimensions, this patch has added
a new expression type 'EXPR_T_CONJ'. After a expression is simplified by
expr_simplify(), before calling expr_normalize(), a new function
expr_eval_conj() is called, which evaluates for possible dimensions for
conjunctive matches.

For example if the match expression is
"ip4 && ip4.src == {10.0.0.4, 10.0.0.5, 10.0.0.6} &&
 ip4.dst == {20.0.0.4, 20.0.0.5, 20.0.0.6}"

expr_simplify() would have generated the expression as -

AND(CMP(IP4),
    OR((CMP(ip4.src == 10.0.0.4), CMP(ip4.src == 10.0.0.5),
        CMP(ip4.src == 10.0.0.6)),
    OR((CMP(ip4.dst == 20.0.0.4), CMP(ip4.src == 20.0.0.5),
        CMP(ip4.src == 20.0.0.6))).

expr_eval_conj() would return a new expression something like

CONJ(AND(CMP(IP4),
         OR((CMP(ip4.src == 10.0.0.4), CMP(ip4.src == 10.0.0.5),
             CMP(ip4.src == 10.0.0.6))),
     AND(CMP(IP4),
         OR((CMP(ip4.dst == 20.0.0.4), CMP(ip4.dst == 20.0.0.5),
             CMP(ip4.dst == 20.0.0.6))))

expr_normalize() would normalize each individual 'AND' clause in the CONJ and
expr_to_matches() would add the necessary conjunctive matches.


Below are few examples which compares the matches generated by proposed 
approach with the
existing one.

Eg. 1
match is "ip4 && ip4.src == {10.0.0.4, 10.0.0.5, 10.0.0.6} &&
          ip4.dst == {20.0.0.4, 20.0.0.5, 20.0.0.6}"


Proposed approach
----------------
conj_id=1
ip,nw_dst=20.0.0.4: conjunction(1, 1/2)
ip,nw_dst=20.0.0.5: conjunction(1, 1/2)
ip,nw_dst=20.0.0.6: conjunction(1, 1/2)
ip,nw_src=10.0.0.4: conjunction(1, 0/2)
ip,nw_src=10.0.0.5: conjunction(1, 0/2)
ip,nw_src=10.0.0.6: conjunction(1, 0/2)

total matches - 7

Existing
--------
ip4.dst == {20.0.0.4, 20.0.0.5, 20.0.0.6}'
ip,nw_src=10.0.0.4,nw_dst=20.0.0.4
ip,nw_src=10.0.0.4,nw_dst=20.0.0.5
ip,nw_src=10.0.0.4,nw_dst=20.0.0.6
ip,nw_src=10.0.0.5,nw_dst=20.0.0.4
ip,nw_src=10.0.0.5,nw_dst=20.0.0.5
ip,nw_src=10.0.0.5,nw_dst=20.0.0.6
ip,nw_src=10.0.0.6,nw_dst=20.0.0.4
ip,nw_src=10.0.0.6,nw_dst=20.0.0.5
ip,nw_src=10.0.0.6,nw_dst=20.0.0.6


total matches - 9

Eg. 2
match is "ip4 && ip4.src == {10.0.0.4, 10.0.0.5, 10.0.0.6}
          && ip4.dst == {20.0.0.4, 20.0.0.5, 20.0.0.6}
          && tcp.src >= 1000 && tcp.src <= 2000
          && tcp.dst >= 3000 && tcp.dst <= 4000"

Proposed approach
-----------------
conj_id=1
tcp,nw_dst=20.0.0.4: conjunction(1, 3/4)
tcp,nw_dst=20.0.0.5: conjunction(1, 3/4)
tcp,nw_dst=20.0.0.6: conjunction(1, 3/4)
tcp,nw_src=10.0.0.4: conjunction(1, 2/4)
tcp,nw_src=10.0.0.5: conjunction(1, 2/4)
tcp,nw_src=10.0.0.6: conjunction(1, 2/4)
tcp,tp_dst=0xbba/0xfffe: conjunction(1, 0/4)
tcp,tp_dst=0xbbc/0xfffc: conjunction(1, 0/4)
tcp,tp_dst=0xbc0/0xffc0: conjunction(1, 0/4)
tcp,tp_dst=0xc00/0xfe00: conjunction(1, 0/4)
tcp,tp_dst=0xe00/0xff00: conjunction(1, 0/4)
tcp,tp_dst=0xf00/0xff80: conjunction(1, 0/4)
tcp,tp_dst=0xf80/0xffe0: conjunction(1, 0/4)
tcp,tp_dst=3000: conjunction(1, 0/4)
tcp,tp_dst=3001: conjunction(1, 0/4)
tcp,tp_dst=4000: conjunction(1, 0/4)
tcp,tp_src=0x3ea/0xfffe: conjunction(1, 1/4)
tcp,tp_src=0x3ec/0xfffc: conjunction(1, 1/4)
tcp,tp_src=0x3f0/0xfff0: conjunction(1, 1/4)
tcp,tp_src=0x400/0xfe00: conjunction(1, 1/4)
tcp,tp_src=0x600/0xff00: conjunction(1, 1/4)
tcp,tp_src=0x700/0xff80: conjunction(1, 1/4)
tcp,tp_src=0x780/0xffc0: conjunction(1, 1/4)
tcp,tp_src=0x7c0/0xfff0: conjunction(1, 1/4)
tcp,tp_src=1000: conjunction(1, 1/4)
tcp,tp_src=1001: conjunction(1, 1/4)
tcp,tp_src=2000: conjunction(1, 1/4)

total matches - 28


Existing
--------
conj_id=1,tcp,nw_src=10.0.0.4,nw_dst=20.0.0.4
conj_id=2,tcp,nw_src=10.0.0.4,nw_dst=20.0.0.5
conj_id=3,tcp,nw_src=10.0.0.4,nw_dst=20.0.0.6
conj_id=4,tcp,nw_src=10.0.0.5,nw_dst=20.0.0.4
conj_id=5,tcp,nw_src=10.0.0.5,nw_dst=20.0.0.5
conj_id=6,tcp,nw_src=10.0.0.5,nw_dst=20.0.0.6
conj_id=7,tcp,nw_src=10.0.0.6,nw_dst=20.0.0.4
conj_id=8,tcp,nw_src=10.0.0.6,nw_dst=20.0.0.5
conj_id=9,tcp,nw_src=10.0.0.6,nw_dst=20.0.0.6
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.4,tp_dst=0xbba/0xfffe: conjunction(1, 0/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.4,tp_dst=0xbbc/0xfffc: conjunction(1, 0/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.4,tp_dst=0xbc0/0xffc0: conjunction(1, 0/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.4,tp_dst=0xc00/0xfe00: conjunction(1, 0/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.4,tp_dst=0xe00/0xff00: conjunction(1, 0/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.4,tp_dst=0xf00/0xff80: conjunction(1, 0/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.4,tp_dst=0xf80/0xffe0: conjunction(1, 0/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.4,tp_dst=3000: conjunction(1, 0/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.4,tp_dst=3001: conjunction(1, 0/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.4,tp_dst=4000: conjunction(1, 0/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.4,tp_src=0x3ea/0xfffe: conjunction(1, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.4,tp_src=0x3ec/0xfffc: conjunction(1, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.4,tp_src=0x3f0/0xfff0: conjunction(1, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.4,tp_src=0x400/0xfe00: conjunction(1, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.4,tp_src=0x600/0xff00: conjunction(1, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.4,tp_src=0x700/0xff80: conjunction(1, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.4,tp_src=0x780/0xffc0: conjunction(1, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.4,tp_src=0x7c0/0xfff0: conjunction(1, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.4,tp_src=1000: conjunction(1, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.4,tp_src=1001: conjunction(1, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.4,tp_src=2000: conjunction(1, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.5,tp_dst=0xbba/0xfffe: conjunction(2, 0/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.5,tp_dst=0xbbc/0xfffc: conjunction(2, 0/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.5,tp_dst=0xbc0/0xffc0: conjunction(2, 0/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.5,tp_dst=0xc00/0xfe00: conjunction(2, 0/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.5,tp_dst=0xe00/0xff00: conjunction(2, 0/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.5,tp_dst=0xf00/0xff80: conjunction(2, 0/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.5,tp_dst=0xf80/0xffe0: conjunction(2, 0/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.5,tp_dst=3000: conjunction(2, 0/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.5,tp_dst=3001: conjunction(2, 0/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.5,tp_dst=4000: conjunction(2, 0/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.5,tp_src=0x3ea/0xfffe: conjunction(2, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.5,tp_src=0x3ec/0xfffc: conjunction(2, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.5,tp_src=0x3f0/0xfff0: conjunction(2, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.5,tp_src=0x400/0xfe00: conjunction(2, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.5,tp_src=0x600/0xff00: conjunction(2, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.5,tp_src=0x700/0xff80: conjunction(2, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.5,tp_src=0x780/0xffc0: conjunction(2, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.5,tp_src=0x7c0/0xfff0: conjunction(2, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.5,tp_src=1000: conjunction(2, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.5,tp_src=1001: conjunction(2, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.5,tp_src=2000: conjunction(2, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.6,tp_dst=0xbba/0xfffe: conjunction(3, 0/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.6,tp_dst=0xbbc/0xfffc: conjunction(3, 0/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.6,tp_dst=0xbc0/0xffc0: conjunction(3, 0/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.6,tp_dst=0xc00/0xfe00: conjunction(3, 0/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.6,tp_dst=0xe00/0xff00: conjunction(3, 0/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.6,tp_dst=0xf00/0xff80: conjunction(3, 0/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.6,tp_dst=0xf80/0xffe0: conjunction(3, 0/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.6,tp_dst=3000: conjunction(3, 0/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.6,tp_dst=3001: conjunction(3, 0/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.6,tp_dst=4000: conjunction(3, 0/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.6,tp_src=0x3ea/0xfffe: conjunction(3, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.6,tp_src=0x3ec/0xfffc: conjunction(3, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.6,tp_src=0x3f0/0xfff0: conjunction(3, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.6,tp_src=0x400/0xfe00: conjunction(3, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.6,tp_src=0x600/0xff00: conjunction(3, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.6,tp_src=0x700/0xff80: conjunction(3, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.6,tp_src=0x780/0xffc0: conjunction(3, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.6,tp_src=0x7c0/0xfff0: conjunction(3, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.6,tp_src=1000: conjunction(3, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.6,tp_src=1001: conjunction(3, 1/2)
tcp,nw_src=10.0.0.4,nw_dst=20.0.0.6,tp_src=2000: conjunction(3, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.4,tp_dst=0xbba/0xfffe: conjunction(4, 0/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.4,tp_dst=0xbbc/0xfffc: conjunction(4, 0/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.4,tp_dst=0xbc0/0xffc0: conjunction(4, 0/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.4,tp_dst=0xc00/0xfe00: conjunction(4, 0/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.4,tp_dst=0xe00/0xff00: conjunction(4, 0/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.4,tp_dst=0xf00/0xff80: conjunction(4, 0/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.4,tp_dst=0xf80/0xffe0: conjunction(4, 0/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.4,tp_dst=3000: conjunction(4, 0/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.4,tp_dst=3001: conjunction(4, 0/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.4,tp_dst=4000: conjunction(4, 0/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.4,tp_src=0x3ea/0xfffe: conjunction(4, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.4,tp_src=0x3ec/0xfffc: conjunction(4, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.4,tp_src=0x3f0/0xfff0: conjunction(4, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.4,tp_src=0x400/0xfe00: conjunction(4, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.4,tp_src=0x600/0xff00: conjunction(4, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.4,tp_src=0x700/0xff80: conjunction(4, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.4,tp_src=0x780/0xffc0: conjunction(4, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.4,tp_src=0x7c0/0xfff0: conjunction(4, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.4,tp_src=1000: conjunction(4, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.4,tp_src=1001: conjunction(4, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.4,tp_src=2000: conjunction(4, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.5,tp_dst=0xbba/0xfffe: conjunction(5, 0/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.5,tp_dst=0xbbc/0xfffc: conjunction(5, 0/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.5,tp_dst=0xbc0/0xffc0: conjunction(5, 0/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.5,tp_dst=0xc00/0xfe00: conjunction(5, 0/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.5,tp_dst=0xe00/0xff00: conjunction(5, 0/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.5,tp_dst=0xf00/0xff80: conjunction(5, 0/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.5,tp_dst=0xf80/0xffe0: conjunction(5, 0/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.5,tp_dst=3000: conjunction(5, 0/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.5,tp_dst=3001: conjunction(5, 0/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.5,tp_dst=4000: conjunction(5, 0/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.5,tp_src=0x3ea/0xfffe: conjunction(5, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.5,tp_src=0x3ec/0xfffc: conjunction(5, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.5,tp_src=0x3f0/0xfff0: conjunction(5, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.5,tp_src=0x400/0xfe00: conjunction(5, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.5,tp_src=0x600/0xff00: conjunction(5, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.5,tp_src=0x700/0xff80: conjunction(5, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.5,tp_src=0x780/0xffc0: conjunction(5, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.5,tp_src=0x7c0/0xfff0: conjunction(5, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.5,tp_src=1000: conjunction(5, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.5,tp_src=1001: conjunction(5, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.5,tp_src=2000: conjunction(5, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.6,tp_dst=0xbba/0xfffe: conjunction(6, 0/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.6,tp_dst=0xbbc/0xfffc: conjunction(6, 0/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.6,tp_dst=0xbc0/0xffc0: conjunction(6, 0/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.6,tp_dst=0xc00/0xfe00: conjunction(6, 0/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.6,tp_dst=0xe00/0xff00: conjunction(6, 0/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.6,tp_dst=0xf00/0xff80: conjunction(6, 0/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.6,tp_dst=0xf80/0xffe0: conjunction(6, 0/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.6,tp_dst=3000: conjunction(6, 0/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.6,tp_dst=3001: conjunction(6, 0/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.6,tp_dst=4000: conjunction(6, 0/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.6,tp_src=0x3ea/0xfffe: conjunction(6, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.6,tp_src=0x3ec/0xfffc: conjunction(6, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.6,tp_src=0x3f0/0xfff0: conjunction(6, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.6,tp_src=0x400/0xfe00: conjunction(6, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.6,tp_src=0x600/0xff00: conjunction(6, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.6,tp_src=0x700/0xff80: conjunction(6, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.6,tp_src=0x780/0xffc0: conjunction(6, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.6,tp_src=0x7c0/0xfff0: conjunction(6, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.6,tp_src=1000: conjunction(6, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.6,tp_src=1001: conjunction(6, 1/2)
tcp,nw_src=10.0.0.5,nw_dst=20.0.0.6,tp_src=2000: conjunction(6, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.4,tp_dst=0xbba/0xfffe: conjunction(7, 0/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.4,tp_dst=0xbbc/0xfffc: conjunction(7, 0/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.4,tp_dst=0xbc0/0xffc0: conjunction(7, 0/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.4,tp_dst=0xc00/0xfe00: conjunction(7, 0/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.4,tp_dst=0xe00/0xff00: conjunction(7, 0/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.4,tp_dst=0xf00/0xff80: conjunction(7, 0/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.4,tp_dst=0xf80/0xffe0: conjunction(7, 0/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.4,tp_dst=3000: conjunction(7, 0/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.4,tp_dst=3001: conjunction(7, 0/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.4,tp_dst=4000: conjunction(7, 0/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.4,tp_src=0x3ea/0xfffe: conjunction(7, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.4,tp_src=0x3ec/0xfffc: conjunction(7, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.4,tp_src=0x3f0/0xfff0: conjunction(7, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.4,tp_src=0x400/0xfe00: conjunction(7, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.4,tp_src=0x600/0xff00: conjunction(7, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.4,tp_src=0x700/0xff80: conjunction(7, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.4,tp_src=0x780/0xffc0: conjunction(7, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.4,tp_src=0x7c0/0xfff0: conjunction(7, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.4,tp_src=1000: conjunction(7, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.4,tp_src=1001: conjunction(7, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.4,tp_src=2000: conjunction(7, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.5,tp_dst=0xbba/0xfffe: conjunction(8, 0/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.5,tp_dst=0xbbc/0xfffc: conjunction(8, 0/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.5,tp_dst=0xbc0/0xffc0: conjunction(8, 0/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.5,tp_dst=0xc00/0xfe00: conjunction(8, 0/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.5,tp_dst=0xe00/0xff00: conjunction(8, 0/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.5,tp_dst=0xf00/0xff80: conjunction(8, 0/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.5,tp_dst=0xf80/0xffe0: conjunction(8, 0/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.5,tp_dst=3000: conjunction(8, 0/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.5,tp_dst=3001: conjunction(8, 0/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.5,tp_dst=4000: conjunction(8, 0/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.5,tp_src=0x3ea/0xfffe: conjunction(8, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.5,tp_src=0x3ec/0xfffc: conjunction(8, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.5,tp_src=0x3f0/0xfff0: conjunction(8, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.5,tp_src=0x400/0xfe00: conjunction(8, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.5,tp_src=0x600/0xff00: conjunction(8, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.5,tp_src=0x700/0xff80: conjunction(8, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.5,tp_src=0x780/0xffc0: conjunction(8, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.5,tp_src=0x7c0/0xfff0: conjunction(8, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.5,tp_src=1000: conjunction(8, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.5,tp_src=1001: conjunction(8, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.5,tp_src=2000: conjunction(8, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.6,tp_dst=0xbba/0xfffe: conjunction(9, 0/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.6,tp_dst=0xbbc/0xfffc: conjunction(9, 0/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.6,tp_dst=0xbc0/0xffc0: conjunction(9, 0/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.6,tp_dst=0xc00/0xfe00: conjunction(9, 0/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.6,tp_dst=0xe00/0xff00: conjunction(9, 0/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.6,tp_dst=0xf00/0xff80: conjunction(9, 0/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.6,tp_dst=0xf80/0xffe0: conjunction(9, 0/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.6,tp_dst=3000: conjunction(9, 0/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.6,tp_dst=3001: conjunction(9, 0/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.6,tp_dst=4000: conjunction(9, 0/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.6,tp_src=0x3ea/0xfffe: conjunction(9, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.6,tp_src=0x3ec/0xfffc: conjunction(9, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.6,tp_src=0x3f0/0xfff0: conjunction(9, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.6,tp_src=0x400/0xfe00: conjunction(9, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.6,tp_src=0x600/0xff00: conjunction(9, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.6,tp_src=0x700/0xff80: conjunction(9, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.6,tp_src=0x780/0xffc0: conjunction(9, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.6,tp_src=0x7c0/0xfff0: conjunction(9, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.6,tp_src=1000: conjunction(9, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.6,tp_src=1001: conjunction(9, 1/2)
tcp,nw_src=10.0.0.6,nw_dst=20.0.0.6,tp_src=2000: conjunction(9, 1/2)

Numan Siddique (1):
  RFC: Enhance conjunctive match support in OVN

 include/ovn/expr.h     |   7 ++-
 ovn/controller/lflow.c |   2 +
 ovn/lib/expr.c         | 166 +++++++++++++++++++++++++++++++++++++++++++++++++
 tests/test-ovn.c       |   2 +-
 4 files changed, 175 insertions(+), 2 deletions(-)

-- 
2.14.3

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to