Setting tag sliver-openvswitch-2.2.90-1
[sliver-openvswitch.git] / tests / ovs-ofctl.at
index 4272fb1..f3bad2b 100644 (file)
@@ -3,110 +3,110 @@ AT_BANNER([ovs-ofctl])
 AT_SETUP([ovs-ofctl parse-flows choice of protocol])
 # This doesn't cover some potential vlan_tci test cases.
 for test_case in \
 AT_SETUP([ovs-ofctl parse-flows choice of protocol])
 # This doesn't cover some potential vlan_tci test cases.
 for test_case in \
-    'tun_id=0                                    NXM,OXM' \
-    'tun_id=0/0x1                                NXM,OXM' \
-    'tun_src=1.2.3.4                             NXM,OXM' \
-    'tun_src=1.2.3.4/0.0.0.1                     NXM,OXM' \
-    'tun_dst=1.2.3.4                             NXM,OXM' \
-    'tun_dst=1.2.3.4/0.0.0.1                     NXM,OXM' \
+    'tun_id=0                                    NXM,OXM,OXM-OpenFlow14' \
+    'tun_id=0/0x1                                NXM,OXM,OXM-OpenFlow14' \
+    'tun_src=1.2.3.4                             NXM,OXM,OXM-OpenFlow14' \
+    'tun_src=1.2.3.4/0.0.0.1                     NXM,OXM,OXM-OpenFlow14' \
+    'tun_dst=1.2.3.4                             NXM,OXM,OXM-OpenFlow14' \
+    'tun_dst=1.2.3.4/0.0.0.1                     NXM,OXM,OXM-OpenFlow14' \
     'tun_flags=0                                 none' \
     'tun_flags=1/1                               none' \
     'tun_tos=0                                   none' \
     'tun_ttl=0                                   none' \
     'tun_flags=0                                 none' \
     'tun_flags=1/1                               none' \
     'tun_tos=0                                   none' \
     'tun_ttl=0                                   none' \
-    'metadata=0                                  NXM,OXM,OpenFlow11' \
-    'metadata=1/1                                NXM,OXM,OpenFlow11' \
-    'in_port=1                                   any' \
+    'metadata=0                                  NXM,OXM,OpenFlow11,OXM-OpenFlow14' \
+    'metadata=1/1                                NXM,OXM,OpenFlow11,OXM-OpenFlow14' \
+    'in_port=1                                   any,OXM-OpenFlow14' \
     'skb_priority=0                              none' \
     'skb_priority=0                              none' \
-    'pkt_mark=1                                  NXM,OXM' \
-    'pkt_mark=1/1                                NXM,OXM' \
-    'reg0=0                                      NXM,OXM' \
-    'reg0=0/1                                    NXM,OXM' \
-    'reg1=1                                      NXM,OXM' \
-    'reg1=1/1                                    NXM,OXM' \
-    'reg2=2                                      NXM,OXM' \
-    'reg2=2/1                                    NXM,OXM' \
-    'reg3=3                                      NXM,OXM' \
-    'reg3=3/1                                    NXM,OXM' \
-    'reg4=4                                      NXM,OXM' \
-    'reg4=4/1                                    NXM,OXM' \
-    'reg5=5                                      NXM,OXM' \
-    'reg5=5/1                                    NXM,OXM' \
-    'reg6=6                                      NXM,OXM' \
-    'reg6=6/1                                    NXM,OXM' \
-    'reg7=7                                      NXM,OXM' \
-    'reg7=7/1                                    NXM,OXM' \
-    'dl_src=00:11:22:33:44:55                    any' \
-    'dl_src=00:11:22:33:44:55/00:ff:ff:ff:ff:ff  NXM,OXM,OpenFlow11' \
-    'dl_dst=00:11:22:33:44:55                    any' \
-    'dl_dst=00:11:22:33:44:55/00:ff:ff:ff:ff:ff  NXM,OXM,OpenFlow11' \
-    'dl_type=0x1234                              any' \
-    'dl_type=0x0800                              any' \
-    'dl_type=0x0806                              any' \
-    'dl_type=0x86dd                              any' \
-    'vlan_tci=0                                  any' \
-    'vlan_tci=0x1009                             any' \
-    'vlan_tci=0x1009/0x1                         NXM,OXM' \
-    'dl_vlan=9                                   any' \
-    'vlan_vid=11                                 any' \
-    'vlan_vid=11/0x1                             NXM,OXM' \
-    'dl_vlan_pcp=6                               any' \
-    'vlan_pcp=5                                  any' \
-    'mpls,mpls_label=5                           NXM,OXM,OpenFlow11' \
-    'mpls,mpls_tc=1                              NXM,OXM,OpenFlow11' \
-    'mpls,mpls_bos=0                             NXM,OXM' \
-    'ip,ip_src=1.2.3.4                           any' \
-    'ip,ip_src=192.168.0.0/24                    any' \
-    'ip,ip_src=192.0.168.0/255.0.255.0           NXM,OXM,OpenFlow11' \
-    'ip,ip_dst=1.2.3.4                           any' \
-    'ip,ip_dst=192.168.0.0/24                    any' \
-    'ip,ip_dst=192.0.168.0/255.0.255.0           NXM,OXM,OpenFlow11' \
-    'ipv6,ipv6_src=::1                           NXM,OXM' \
-    'ipv6,ipv6_src=::1/::1                       NXM,OXM' \
-    'ipv6,ipv6_dst=::1                           NXM,OXM' \
-    'ipv6,ipv6_dst=::1/::1                       NXM,OXM' \
-    'ipv6,ipv6_label=5                           NXM,OXM' \
-    'ipv6,ipv6_label=5/1                         NXM,OXM' \
-    'ip,nw_proto=1                               any' \
-    'ipv6,nw_proto=1                             NXM,OXM' \
-    'ip,nw_tos=0xf0                              any' \
-    'ipv6,nw_tos=0xf0                            NXM,OXM' \
-    'ip,nw_tos_shifted=0x3c                      any' \
-    'ipv6,nw_tos_shifted=0x3c                    NXM,OXM' \
-    'ip,nw_ecn=1                                 NXM,OXM' \
-    'ipv6,nw_ecn=1                               NXM,OXM' \
-    'ip,nw_ttl=5                                 NXM,OXM' \
-    'ipv6,nw_ttl=5                               NXM,OXM' \
-    'ip,ip_frag=no                               NXM,OXM' \
-    'ipv6,ip_frag=no                             NXM,OXM' \
-    'arp,arp_op=0                                any' \
-    'arp,arp_spa=1.2.3.4                         any' \
-    'arp,arp_spa=1.2.3.4/0.0.0.1                 NXM,OXM,OpenFlow11' \
-    'arp,arp_tpa=1.2.3.4                         any' \
-    'arp,arp_tpa=1.2.3.4/0.0.0.1                 NXM,OXM,OpenFlow11' \
-    'arp,arp_sha=00:11:22:33:44:55               NXM,OXM' \
-    'arp,arp_sha=00:11:22:33:44:55/00:ff:ff:ff:ff:ff NXM,OXM' \
-    'arp,arp_tha=00:11:22:33:44:55               NXM,OXM' \
-    'arp,arp_tha=00:11:22:33:44:55/00:ff:ff:ff:ff:ff NXM,OXM' \
-    'tcp,tcp_src=80                              any' \
-    'tcp,tcp_src=0x1000/0x1000                   NXM,OXM' \
-    'tcp6,tcp_src=80                             NXM,OXM' \
-    'tcp6,tcp_src=0x1000/0x1000                  NXM,OXM' \
-    'tcp,tcp_dst=80                              any' \
-    'tcp,tcp_dst=0x1000/0x1000                   NXM,OXM' \
-    'tcp6,tcp_dst=80                             NXM,OXM' \
-    'tcp6,tcp_dst=0x1000/0x1000                  NXM,OXM' \
-    'udp,udp_src=80                              any' \
-    'udp,udp_src=0x1000/0x1000                   NXM,OXM' \
-    'udp6,udp_src=80                             NXM,OXM' \
-    'udp6,udp_src=0x1000/0x1000                  NXM,OXM' \
-    'udp,udp_dst=80                              any' \
-    'udp,udp_dst=0x1000/0x1000                   NXM,OXM' \
-    'udp6,udp_dst=80                             NXM,OXM' \
-    'udp6,udp_dst=0x1000/0x1000                  NXM,OXM' \
-    'icmp,icmp_type=1                            any' \
-    'icmp,icmp_code=2                            any' \
-    'icmp6,icmpv6_type=1                         NXM,OXM' \
-    'icmp6,icmpv6_code=2                         NXM,OXM'
+    'pkt_mark=1                                  NXM,OXM,OXM-OpenFlow14' \
+    'pkt_mark=1/1                                NXM,OXM,OXM-OpenFlow14' \
+    'reg0=0                                      NXM,OXM,OXM-OpenFlow14' \
+    'reg0=0/1                                    NXM,OXM,OXM-OpenFlow14' \
+    'reg1=1                                      NXM,OXM,OXM-OpenFlow14' \
+    'reg1=1/1                                    NXM,OXM,OXM-OpenFlow14' \
+    'reg2=2                                      NXM,OXM,OXM-OpenFlow14' \
+    'reg2=2/1                                    NXM,OXM,OXM-OpenFlow14' \
+    'reg3=3                                      NXM,OXM,OXM-OpenFlow14' \
+    'reg3=3/1                                    NXM,OXM,OXM-OpenFlow14' \
+    'reg4=4                                      NXM,OXM,OXM-OpenFlow14' \
+    'reg4=4/1                                    NXM,OXM,OXM-OpenFlow14' \
+    'reg5=5                                      NXM,OXM,OXM-OpenFlow14' \
+    'reg5=5/1                                    NXM,OXM,OXM-OpenFlow14' \
+    'reg6=6                                      NXM,OXM,OXM-OpenFlow14' \
+    'reg6=6/1                                    NXM,OXM,OXM-OpenFlow14' \
+    'reg7=7                                      NXM,OXM,OXM-OpenFlow14' \
+    'reg7=7/1                                    NXM,OXM,OXM-OpenFlow14' \
+    'dl_src=00:11:22:33:44:55                    any,OXM-OpenFlow14' \
+    'dl_src=00:11:22:33:44:55/00:ff:ff:ff:ff:ff  NXM,OXM,OpenFlow11,OXM-OpenFlow14' \
+    'dl_dst=00:11:22:33:44:55                    any,OXM-OpenFlow14' \
+    'dl_dst=00:11:22:33:44:55/00:ff:ff:ff:ff:ff  NXM,OXM,OpenFlow11,OXM-OpenFlow14' \
+    'dl_type=0x1234                              any,OXM-OpenFlow14' \
+    'dl_type=0x0800                              any,OXM-OpenFlow14' \
+    'dl_type=0x0806                              any,OXM-OpenFlow14' \
+    'dl_type=0x86dd                              any,OXM-OpenFlow14' \
+    'vlan_tci=0                                  any,OXM-OpenFlow14' \
+    'vlan_tci=0x1009                             any,OXM-OpenFlow14' \
+    'vlan_tci=0x1009/0x1                         NXM,OXM,OXM-OpenFlow14' \
+    'dl_vlan=9                                   any,OXM-OpenFlow14' \
+    'vlan_vid=11                                 any,OXM-OpenFlow14' \
+    'vlan_vid=11/0x1                             NXM,OXM,OXM-OpenFlow14' \
+    'dl_vlan_pcp=6                               any,OXM-OpenFlow14' \
+    'vlan_pcp=5                                  any,OXM-OpenFlow14' \
+    'mpls,mpls_label=5                           NXM,OXM,OpenFlow11,OXM-OpenFlow14' \
+    'mpls,mpls_tc=1                              NXM,OXM,OpenFlow11,OXM-OpenFlow14' \
+    'mpls,mpls_bos=0                             NXM,OXM,OXM-OpenFlow14' \
+    'ip,ip_src=1.2.3.4                           any,OXM-OpenFlow14' \
+    'ip,ip_src=192.168.0.0/24                    any,OXM-OpenFlow14' \
+    'ip,ip_src=192.0.168.0/255.0.255.0           NXM,OXM,OpenFlow11,OXM-OpenFlow14' \
+    'ip,ip_dst=1.2.3.4                           any,OXM-OpenFlow14' \
+    'ip,ip_dst=192.168.0.0/24                    any,OXM-OpenFlow14' \
+    'ip,ip_dst=192.0.168.0/255.0.255.0           NXM,OXM,OpenFlow11,OXM-OpenFlow14' \
+    'ipv6,ipv6_src=::1                           NXM,OXM,OXM-OpenFlow14' \
+    'ipv6,ipv6_src=::1/::1                       NXM,OXM,OXM-OpenFlow14' \
+    'ipv6,ipv6_dst=::1                           NXM,OXM,OXM-OpenFlow14' \
+    'ipv6,ipv6_dst=::1/::1                       NXM,OXM,OXM-OpenFlow14' \
+    'ipv6,ipv6_label=5                           NXM,OXM,OXM-OpenFlow14' \
+    'ipv6,ipv6_label=5/1                         NXM,OXM,OXM-OpenFlow14' \
+    'ip,nw_proto=1                               any,OXM-OpenFlow14' \
+    'ipv6,nw_proto=1                             NXM,OXM,OXM-OpenFlow14' \
+    'ip,nw_tos=0xf0                              any,OXM-OpenFlow14' \
+    'ipv6,nw_tos=0xf0                            NXM,OXM,OXM-OpenFlow14' \
+    'ip,ip_dscp=0x3c                             any,OXM-OpenFlow14' \
+    'ipv6,ip_dscp=0x3c                           NXM,OXM,OXM-OpenFlow14' \
+    'ip,nw_ecn=1                                 NXM,OXM,OXM-OpenFlow14' \
+    'ipv6,nw_ecn=1                               NXM,OXM,OXM-OpenFlow14' \
+    'ip,nw_ttl=5                                 NXM,OXM,OXM-OpenFlow14' \
+    'ipv6,nw_ttl=5                               NXM,OXM,OXM-OpenFlow14' \
+    'ip,ip_frag=no                               NXM,OXM,OXM-OpenFlow14' \
+    'ipv6,ip_frag=no                             NXM,OXM,OXM-OpenFlow14' \
+    'arp,arp_op=0                                any,OXM-OpenFlow14' \
+    'arp,arp_spa=1.2.3.4                         any,OXM-OpenFlow14' \
+    'arp,arp_spa=1.2.3.4/0.0.0.1                 NXM,OXM,OpenFlow11,OXM-OpenFlow14' \
+    'arp,arp_tpa=1.2.3.4                         any,OXM-OpenFlow14' \
+    'arp,arp_tpa=1.2.3.4/0.0.0.1                 NXM,OXM,OpenFlow11,OXM-OpenFlow14' \
+    'arp,arp_sha=00:11:22:33:44:55               NXM,OXM,OXM-OpenFlow14' \
+    'arp,arp_sha=00:11:22:33:44:55/00:ff:ff:ff:ff:ff NXM,OXM,OXM-OpenFlow14' \
+    'arp,arp_tha=00:11:22:33:44:55               NXM,OXM,OXM-OpenFlow14' \
+    'arp,arp_tha=00:11:22:33:44:55/00:ff:ff:ff:ff:ff NXM,OXM,OXM-OpenFlow14' \
+    'tcp,tcp_src=80                              any,OXM-OpenFlow14' \
+    'tcp,tcp_src=0x1000/0x1000                   NXM,OXM,OXM-OpenFlow14' \
+    'tcp6,tcp_src=80                             NXM,OXM,OXM-OpenFlow14' \
+    'tcp6,tcp_src=0x1000/0x1000                  NXM,OXM,OXM-OpenFlow14' \
+    'tcp,tcp_dst=80                              any,OXM-OpenFlow14' \
+    'tcp,tcp_dst=0x1000/0x1000                   NXM,OXM,OXM-OpenFlow14' \
+    'tcp6,tcp_dst=80                             NXM,OXM,OXM-OpenFlow14' \
+    'tcp6,tcp_dst=0x1000/0x1000                  NXM,OXM,OXM-OpenFlow14' \
+    'udp,udp_src=80                              any,OXM-OpenFlow14' \
+    'udp,udp_src=0x1000/0x1000                   NXM,OXM,OXM-OpenFlow14' \
+    'udp6,udp_src=80                             NXM,OXM,OXM-OpenFlow14' \
+    'udp6,udp_src=0x1000/0x1000                  NXM,OXM,OXM-OpenFlow14' \
+    'udp,udp_dst=80                              any,OXM-OpenFlow14' \
+    'udp,udp_dst=0x1000/0x1000                   NXM,OXM,OXM-OpenFlow14' \
+    'udp6,udp_dst=80                             NXM,OXM,OXM-OpenFlow14' \
+    'udp6,udp_dst=0x1000/0x1000                  NXM,OXM,OXM-OpenFlow14' \
+    'icmp,icmp_type=1                            any,OXM-OpenFlow14' \
+    'icmp,icmp_code=2                            any,OXM-OpenFlow14' \
+    'icmp6,icmpv6_type=1                         NXM,OXM,OXM-OpenFlow14' \
+    'icmp6,icmpv6_code=2                         NXM,OXM,OXM-OpenFlow14'
 do
     set $test_case
     echo
 do
     set $test_case
     echo
@@ -145,7 +145,7 @@ actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_
 AT_CHECK([ovs-ofctl parse-flows flows.txt
 ], [0], [stdout])
 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
 AT_CHECK([ovs-ofctl parse-flows flows.txt
 ], [0], [stdout])
 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
-[[usable protocols: any
+[[usable protocols: any,OXM-OpenFlow14
 chosen protocol: OpenFlow10-table_id
 OFPT_FLOW_MOD: ADD tcp,tp_src=123 out_port:5 actions=FLOOD
 OFPT_FLOW_MOD: ADD in_port=LOCAL,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
 chosen protocol: OpenFlow10-table_id
 OFPT_FLOW_MOD: ADD tcp,tp_src=123 out_port:5 actions=FLOOD
 OFPT_FLOW_MOD: ADD in_port=LOCAL,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
@@ -154,7 +154,7 @@ OFPT_FLOW_MOD: ADD tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:
 OFPT_FLOW_MOD: ADD udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
 OFPT_FLOW_MOD: ADD priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
 OFPT_FLOW_MOD: ADD actions=note:41.42.43.00.00.00,note:00.01.02.03.04.05.06.07.00.00.00.00.00.00,note:00.00.00.00.00.00
 OFPT_FLOW_MOD: ADD udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
 OFPT_FLOW_MOD: ADD priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
 OFPT_FLOW_MOD: ADD actions=note:41.42.43.00.00.00,note:00.01.02.03.04.05.06.07.00.00.00.00.00.00,note:00.00.00.00.00.00
-OFPT_FLOW_MOD: ADD ip actions=load:0xa04034d->NXM_OF_IP_SRC[]
+OFPT_FLOW_MOD: ADD ip actions=mod_nw_src:10.4.3.77
 OFPT_FLOW_MOD: ADD sctp actions=drop
 OFPT_FLOW_MOD: ADD sctp actions=drop
 OFPT_FLOW_MOD: ADD in_port=0 actions=resubmit:0
 OFPT_FLOW_MOD: ADD sctp actions=drop
 OFPT_FLOW_MOD: ADD sctp actions=drop
 OFPT_FLOW_MOD: ADD in_port=0 actions=resubmit:0
@@ -182,20 +182,20 @@ actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_
 AT_CHECK([ovs-ofctl --protocols OpenFlow11 parse-flows flows.txt
 ], [0], [stdout])
 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
 AT_CHECK([ovs-ofctl --protocols OpenFlow11 parse-flows flows.txt
 ], [0], [stdout])
 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
-[[usable protocols: any
+[[usable protocols: any,OXM-OpenFlow14
 chosen protocol: OpenFlow11
 chosen protocol: OpenFlow11
-OFPT_FLOW_MOD (OF1.1): ADD table:255 tcp,tp_src=123 out_port:5 actions=FLOOD
-OFPT_FLOW_MOD (OF1.1): ADD table:255 in_port=LOCAL,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
-OFPT_FLOW_MOD (OF1.1): ADD table:255 udp,dl_vlan_pcp=7 idle:5 actions=pop_vlan,output:0
-OFPT_FLOW_MOD (OF1.1): ADD table:255 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
-OFPT_FLOW_MOD (OF1.1): ADD table:255 udp,nw_src=192.168.0.3,tp_dst=53 actions=mod_nw_ecn:2,output:1
-OFPT_FLOW_MOD (OF1.1): ADD table:255 priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
-OFPT_FLOW_MOD (OF1.1): ADD table:255 actions=note:41.42.43.00.00.00,note:00.01.02.03.04.05.06.07.00.00.00.00.00.00,note:00.00.00.00.00.00
-OFPT_FLOW_MOD (OF1.1): ADD table:255 ip actions=mod_nw_ttl:1,load:0xa04034d->NXM_OF_IP_SRC[]
-OFPT_FLOW_MOD (OF1.1): ADD table:255 sctp actions=drop
-OFPT_FLOW_MOD (OF1.1): ADD table:255 sctp actions=drop
-OFPT_FLOW_MOD (OF1.1): ADD table:255 in_port=0 actions=resubmit:0
-OFPT_FLOW_MOD (OF1.1): ADD table:255 actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
+OFPT_FLOW_MOD (OF1.1): ADD tcp,tp_src=123 out_port:5 actions=FLOOD
+OFPT_FLOW_MOD (OF1.1): ADD in_port=LOCAL,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
+OFPT_FLOW_MOD (OF1.1): ADD udp,dl_vlan_pcp=7 idle:5 actions=pop_vlan,output:0
+OFPT_FLOW_MOD (OF1.1): ADD tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
+OFPT_FLOW_MOD (OF1.1): ADD udp,nw_src=192.168.0.3,tp_dst=53 actions=mod_nw_ecn:2,output:1
+OFPT_FLOW_MOD (OF1.1): ADD priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
+OFPT_FLOW_MOD (OF1.1): ADD actions=note:41.42.43.00.00.00,note:00.01.02.03.04.05.06.07.00.00.00.00.00.00,note:00.00.00.00.00.00
+OFPT_FLOW_MOD (OF1.1): ADD ip actions=mod_nw_ttl:1,mod_nw_src:10.4.3.77
+OFPT_FLOW_MOD (OF1.1): ADD sctp actions=drop
+OFPT_FLOW_MOD (OF1.1): ADD sctp actions=drop
+OFPT_FLOW_MOD (OF1.1): ADD in_port=0 actions=resubmit:0
+OFPT_FLOW_MOD (OF1.1): ADD actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
 ]])
 AT_CLEANUP
 
 ]])
 AT_CLEANUP
 
@@ -203,7 +203,7 @@ AT_SETUP([ovs-ofctl parse-flows (OpenFlow 1.2)])
 AT_DATA([flows.txt], [[
 # comment
 tcp,tp_src=123,actions=flood
 AT_DATA([flows.txt], [[
 # comment
 tcp,tp_src=123,actions=flood
-in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=drop
+in_port=LOCAL dl_vlan=9 dl_src=00:0A:E4:25:6B:B0 actions=mod_vlan_vid:7,mod_vlan_pcp:2
 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
 udp dl_vlan_pcp=7 idle_timeout=5 actions=strip_vlan output:0
 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
@@ -212,6 +212,10 @@ actions=note:41.42.43,note:00.01.02.03.04.05.06.07,note
 ipv6,actions=set_field:fe80:0123:4567:890a:a6ba:dbff:fefe:59fa->ipv6_src
 sctp actions=set_field:3334->sctp_src
 sctp actions=set_field:4445->sctp_dst
 ipv6,actions=set_field:fe80:0123:4567:890a:a6ba:dbff:fefe:59fa->ipv6_src
 sctp actions=set_field:3334->sctp_src
 sctp actions=set_field:4445->sctp_dst
+tcp actions=mod_tp_dst:1234
+udp actions=mod_tp_src:1111
+ip actions=mod_nw_src:10.1.1.2,mod_nw_dst:192.168.10.1,mod_nw_ttl:1,mod_nw_tos:16,mod_nw_ecn:2
+in_port=0 actions=mod_dl_src:11:22:33:44:55:66,mod_dl_dst:10:20:30:40:50:60
 in_port=0 actions=resubmit:0
 actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
 ]])
 in_port=0 actions=resubmit:0
 actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
 ]])
@@ -219,20 +223,24 @@ actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_
 AT_CHECK([ovs-ofctl --protocols OpenFlow12 parse-flows flows.txt
 ], [0], [stdout])
 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
 AT_CHECK([ovs-ofctl --protocols OpenFlow12 parse-flows flows.txt
 ], [0], [stdout])
 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
-[[usable protocols: NXM,OXM
+[[usable protocols: NXM,OXM,OXM-OpenFlow14
 chosen protocol: OXM-OpenFlow12
 chosen protocol: OXM-OpenFlow12
-OFPT_FLOW_MOD (OF1.2): ADD table:255 tcp,tp_src=123 actions=FLOOD
-OFPT_FLOW_MOD (OF1.2): ADD table:255 in_port=LOCAL,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
-OFPT_FLOW_MOD (OF1.2): ADD table:255 udp,dl_vlan_pcp=7 idle:5 actions=pop_vlan,output:0
-OFPT_FLOW_MOD (OF1.2): ADD table:255 tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
-OFPT_FLOW_MOD (OF1.2): ADD table:255 udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
-OFPT_FLOW_MOD (OF1.2): ADD table:255 priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
-OFPT_FLOW_MOD (OF1.2): ADD table:255 actions=note:41.42.43.00.00.00,note:00.01.02.03.04.05.06.07.00.00.00.00.00.00,note:00.00.00.00.00.00
-OFPT_FLOW_MOD (OF1.2): ADD table:255 ipv6 actions=set_field:fe80:123:4567:890a:a6ba:dbff:fefe:59fa->ipv6_src
-OFPT_FLOW_MOD (OF1.2): ADD table:255 sctp actions=set_field:3334->sctp_src
-OFPT_FLOW_MOD (OF1.2): ADD table:255 sctp actions=set_field:4445->sctp_dst
-OFPT_FLOW_MOD (OF1.2): ADD table:255 in_port=0 actions=resubmit:0
-OFPT_FLOW_MOD (OF1.2): ADD table:255 actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
+OFPT_FLOW_MOD (OF1.2): ADD tcp,tp_src=123 actions=FLOOD
+OFPT_FLOW_MOD (OF1.2): ADD in_port=LOCAL,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=set_field:4103->vlan_vid,set_field:2->vlan_pcp
+OFPT_FLOW_MOD (OF1.2): ADD udp,dl_vlan_pcp=7 idle:5 actions=pop_vlan,output:0
+OFPT_FLOW_MOD (OF1.2): ADD tcp,nw_src=192.168.0.3,tp_dst=80 actions=set_queue:37,output:1
+OFPT_FLOW_MOD (OF1.2): ADD udp,nw_src=192.168.0.3,tp_dst=53 actions=pop_queue,output:1
+OFPT_FLOW_MOD (OF1.2): ADD priority=60000 cookie:0x123456789abcdef hard:10 actions=CONTROLLER:65535
+OFPT_FLOW_MOD (OF1.2): ADD actions=note:41.42.43.00.00.00,note:00.01.02.03.04.05.06.07.00.00.00.00.00.00,note:00.00.00.00.00.00
+OFPT_FLOW_MOD (OF1.2): ADD ipv6 actions=set_field:fe80:123:4567:890a:a6ba:dbff:fefe:59fa->ipv6_src
+OFPT_FLOW_MOD (OF1.2): ADD sctp actions=set_field:3334->sctp_src
+OFPT_FLOW_MOD (OF1.2): ADD sctp actions=set_field:4445->sctp_dst
+OFPT_FLOW_MOD (OF1.2): ADD tcp actions=set_field:1234->tcp_dst
+OFPT_FLOW_MOD (OF1.2): ADD udp actions=set_field:1111->udp_src
+OFPT_FLOW_MOD (OF1.2): ADD ip actions=set_field:10.1.1.2->ip_src,set_field:192.168.10.1->ip_dst,mod_nw_ttl:1,set_field:4->ip_dscp,set_field:2->nw_ecn
+OFPT_FLOW_MOD (OF1.2): ADD in_port=0 actions=set_field:11:22:33:44:55:66->eth_src,set_field:10:20:30:40:50:60->eth_dst
+OFPT_FLOW_MOD (OF1.2): ADD in_port=0 actions=resubmit:0
+OFPT_FLOW_MOD (OF1.2): ADD actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_point_id=45678)
 ]])
 AT_CLEANUP
 
 ]])
 AT_CLEANUP
 
@@ -252,8 +260,8 @@ for test_case in \
     'ipv6 nw_proto 1/1' \
     'ip nw_tos 0xf0/0xf0' \
     'ipv6 nw_tos 0xf0/0xf0' \
     'ipv6 nw_proto 1/1' \
     'ip nw_tos 0xf0/0xf0' \
     'ipv6 nw_tos 0xf0/0xf0' \
-    'ip nw_tos_shifted 0x3c/0xf0' \
-    'ipv6 nw_tos_shifted 0x3c/0xf0' \
+    'ip ip_dscp 0x3c/0xf0' \
+    'ipv6 ip_dscp 0x3c/0xf0' \
     'ip nw_ecn 1/1' \
     'ipv6 nw_ecn 1/1' \
     'ip nw_ttl 5/1' \
     'ip nw_ecn 1/1' \
     'ipv6 nw_ecn 1/1' \
     'ip nw_ttl 5/1' \
@@ -277,7 +285,7 @@ AT_CLEANUP
 
 AT_SETUP([ovs-ofctl action inconsistency (OpenFlow 1.1)])
 AT_CHECK([ovs-ofctl --protocols OpenFlow11 add-flow br0 'ip actions=mod_tp_dst:1234'
 
 AT_SETUP([ovs-ofctl action inconsistency (OpenFlow 1.1)])
 AT_CHECK([ovs-ofctl --protocols OpenFlow11 add-flow br0 'ip actions=mod_tp_dst:1234'
-], [1], [stdout], [ovs-ofctl: actions are invalid with specified match (OFPBAC_MATCH_INCONSISTENT)
+], [1], [stdout], [ovs-ofctl: none of the usable flow formats (OpenFlow10,NXM) is among the allowed flow formats (OpenFlow11)
 ])
 AT_CLEANUP
 
 ])
 AT_CLEANUP
 
@@ -342,7 +350,7 @@ actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_
 AT_CHECK([ovs-ofctl parse-flows flows.txt
 ], [0], [stdout])
 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
 AT_CHECK([ovs-ofctl parse-flows flows.txt
 ], [0], [stdout])
 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
-[[usable protocols: OXM,NXM+table_id
+[[usable protocols: OXM,NXM+table_id,OXM-OpenFlow14
 chosen protocol: NXM+table_id
 NXT_FLOW_MOD: ADD table:255 tcp,tp_src=123 actions=FLOOD
 NXT_FLOW_MOD: ADD table:255 in_port=LOCAL,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
 chosen protocol: NXM+table_id
 NXT_FLOW_MOD: ADD table:255 tcp,tp_src=123 actions=FLOOD
 NXT_FLOW_MOD: ADD table:255 in_port=LOCAL,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
@@ -410,7 +418,7 @@ actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_
 ])
 AT_CHECK([ovs-ofctl -F nxm parse-flows flows.txt], [0], [stdout])
 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0], [dnl
 ])
 AT_CHECK([ovs-ofctl -F nxm parse-flows flows.txt], [0], [stdout])
 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0], [dnl
-usable protocols: NXM,OXM
+usable protocols: NXM,OXM,OXM-OpenFlow14
 chosen protocol: NXM-table_id
 NXT_FLOW_MOD: ADD tcp,tp_src=123 actions=FLOOD
 NXT_FLOW_MOD: ADD in_port=LOCAL,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
 chosen protocol: NXM-table_id
 NXT_FLOW_MOD: ADD tcp,tp_src=123 actions=FLOOD
 NXT_FLOW_MOD: ADD in_port=LOCAL,dl_vlan=9,dl_src=00:0a:e4:25:6b:b0 actions=drop
@@ -476,7 +484,7 @@ actions=sample(probability=12345,collector_set_id=23456,obs_domain_id=34567,obs_
 ]])
 AT_CHECK([ovs-ofctl -F nxm -mmm parse-flows flows.txt], [0], [stdout], [stderr])
 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
 ]])
 AT_CHECK([ovs-ofctl -F nxm -mmm parse-flows flows.txt], [0], [stdout], [stderr])
 AT_CHECK([[sed 's/ (xid=0x[0-9a-fA-F]*)//' stdout]], [0],
-[[usable protocols: NXM,OXM
+[[usable protocols: NXM,OXM,OXM-OpenFlow14
 chosen protocol: NXM-table_id
 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC(007b) actions=FLOOD
 NXT_FLOW_MOD: ADD NXM_OF_IN_PORT(fffe), NXM_OF_ETH_SRC(000ae4256bb0), NXM_OF_VLAN_TCI_W(1009/1fff) actions=drop
 chosen protocol: NXM-table_id
 NXT_FLOW_MOD: ADD NXM_OF_ETH_TYPE(0800), NXM_OF_IP_PROTO(06), NXM_OF_TCP_SRC(007b) actions=FLOOD
 NXT_FLOW_MOD: ADD NXM_OF_IN_PORT(fffe), NXM_OF_ETH_SRC(000ae4256bb0), NXM_OF_VLAN_TCI_W(1009/1fff) actions=drop
@@ -1585,15 +1593,16 @@ dnl Ignore tp_dst if not TCP/UDP/SCTP:
 0000 00 00 0800 00 16 00000000ffffffff 00000000ffffffff 0000 01bb dnl
 00000000 00 000000 0000000000000000ffffffffffffffff
 
 0000 00 00 0800 00 16 00000000ffffffff 00000000ffffffff 0000 01bb dnl
 00000000 00 000000 0000000000000000ffffffffffffffff
 
-dnl mpls_label not yet supported:
-# bad ofp11_match: OFPBMC_BAD_TAG
+# mpls,mpls_label=284280
+# 64: 12 -> 00
+# 65: 34 -> 04
 0000 0058 00000000 000002f7 dnl
 000000000000ffffffffffff 000000000000ffffffffffff dnl
 0000 00 00 8847 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
 12345678 00 000000 0000000000000000ffffffffffffffff
 
 0000 0058 00000000 000002f7 dnl
 000000000000ffffffffffff 000000000000ffffffffffff dnl
 0000 00 00 8847 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
 12345678 00 000000 0000000000000000ffffffffffffffff
 
-dnl mpls_tc not yet supported:
-# bad ofp11_match: OFPBMC_BAD_TAG
+# mplsm,mpls_tc=2
+# 68: 5a -> 02
 0000 0058 00000000 000001f7 dnl
 000000000000ffffffffffff 000000000000ffffffffffff dnl
 0000 00 00 8848 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
 0000 0058 00000000 000001f7 dnl
 000000000000ffffffffffff 000000000000ffffffffffff dnl
 0000 00 00 8848 00 00 00000000ffffffff 00000000ffffffff 0000 0000 dnl
@@ -2224,10 +2233,10 @@ dnl Check that "-F openflow10" rejects a flow_mod with unsupported features,
 dnl such as tunnels and metadata.
 AT_SETUP([ovs-ofctl -F option and NXM features])
 AT_CHECK([ovs-ofctl -F openflow10 add-flow dummy tun_id=123,actions=drop],
 dnl such as tunnels and metadata.
 AT_SETUP([ovs-ofctl -F option and NXM features])
 AT_CHECK([ovs-ofctl -F openflow10 add-flow dummy tun_id=123,actions=drop],
-  [1], [], [ovs-ofctl: none of the usable flow formats (NXM,OXM) is among the allowed flow formats (OpenFlow10)
+  [1], [], [ovs-ofctl: none of the usable flow formats (NXM,OXM,OXM-OpenFlow14) is among the allowed flow formats (OpenFlow10)
 ])
 AT_CHECK([ovs-ofctl -F openflow10 add-flow dummy metadata=123,actions=drop],
 ])
 AT_CHECK([ovs-ofctl -F openflow10 add-flow dummy metadata=123,actions=drop],
-  [1], [], [ovs-ofctl: none of the usable flow formats (NXM,OXM,OpenFlow11) is among the allowed flow formats (OpenFlow10)
+  [1], [], [ovs-ofctl: none of the usable flow formats (NXM,OXM,OpenFlow11,OXM-OpenFlow14) is among the allowed flow formats (OpenFlow10)
 ])
 AT_CLEANUP
 
 ])
 AT_CLEANUP
 
@@ -2262,7 +2271,7 @@ dnl can't be represented in OpenFlow 1.0.
 AT_SETUP([ovs-ofctl dump-flows rejects bad -F option])
 OVS_VSWITCHD_START
 AT_CHECK([ovs-ofctl -F openflow10 dump-flows unix:br0.mgmt reg0=0xabcdef], [1], [],
 AT_SETUP([ovs-ofctl dump-flows rejects bad -F option])
 OVS_VSWITCHD_START
 AT_CHECK([ovs-ofctl -F openflow10 dump-flows unix:br0.mgmt reg0=0xabcdef], [1], [],
-  [ovs-ofctl: none of the usable flow formats (NXM,OXM) is among the allowed flow formats (OpenFlow10)
+  [ovs-ofctl: none of the usable flow formats (NXM,OXM,OXM-OpenFlow14) is among the allowed flow formats (OpenFlow10)
 ])
 OVS_VSWITCHD_STOP
 AT_CLEANUP
 ])
 OVS_VSWITCHD_STOP
 AT_CLEANUP
@@ -2461,23 +2470,27 @@ AT_SETUP([tcp flags - filtering])
 OVS_VSWITCHD_START([add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 \
                     -- add-port br0 p2 -- set Interface p2 type=dummy ofport_request=2])
 AT_DATA([flows.txt], [dnl
 OVS_VSWITCHD_START([add-port br0 p1 -- set Interface p1 type=dummy ofport_request=1 \
                     -- add-port br0 p2 -- set Interface p2 type=dummy ofport_request=2])
 AT_DATA([flows.txt], [dnl
-       in_port=1,tcp,tp_dst=80,tcp_flags=0x02/0x17,action=2  # Allow outbound web traffic bare-SYN
-       in_port=1,tcp,tp_dst=80,tcp_flags=0x10/0x10,action=2  # Allow outbound web traffic with ACK bit
-       in_port=1,tcp,tp_dst=80,tcp_flags=0x04/0x04,action=2  # Allow outbound web traffic with RST bit
-       in_port=2,tcp,tp_src=80,tcp_flags=0x10/0x10,action=1  # Allow inbound web traffic with ACK bit
-       in_port=2,tcp,tp_src=80,tcp_flags=0x04/0x04,action=1  # Allow inbound web traffic with RST bit
+       in_port=1,tcp,tp_dst=80,tcp_flags=+syn-rst-ack-fin,action=2  # Allow outbound web traffic bare-SYN
+       in_port=1,tcp,tp_dst=80,tcp_flags=+ack,action=2  # Allow outbound web traffic with ACK bit
+       in_port=1,tcp,tp_dst=80,tcp_flags=+rst,action=2  # Allow outbound web traffic with RST bit
+       in_port=2,tcp,tp_src=80,tcp_flags=+ack,action=1  # Allow inbound web traffic with ACK bit
+       in_port=2,tcp,tp_src=80,tcp_flags=+rst,action=1  # Allow inbound web traffic with RST bit
        priority=0,in_port=1,action=drop  # Default drop outbound
        priority=0,in_port=2,action=drop  # Default drop inbound
 ])
 
 AT_CHECK([ovs-ofctl add-flows br0 flows.txt])
 
        priority=0,in_port=1,action=drop  # Default drop outbound
        priority=0,in_port=2,action=drop  # Default drop inbound
 ])
 
 AT_CHECK([ovs-ofctl add-flows br0 flows.txt])
 
-AT_CHECK([ovs-appctl dpif/show | tail -n +5], [0], [dnl
+AT_CHECK([ovs-ofctl add-flow br0 "tcp,tcp_flags=+ack-ack,action="], [1], [],
+  [ovs-ofctl: ack: Each TCP flag can be specified only once
+])
+
+AT_CHECK([ovs-appctl dpif/show | tail -n +4], [0], [dnl
                p1 1/1: (dummy)
                p2 2/2: (dummy)
 ])
 
                p1 1/1: (dummy)
                p2 2/2: (dummy)
 ])
 
-dnl Outbound web traffic with base-SYN
+dnl Outbound web traffic with bare-SYN
 AT_CHECK([ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=80),tcp_flags(0x002)'], [0], [stdout])
 AT_CHECK([tail -1 stdout], [0],
   [Datapath actions: 2
 AT_CHECK([ovs-appctl ofproto/trace ovs-dummy 'in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=80),tcp_flags(0x002)'], [0], [stdout])
 AT_CHECK([tail -1 stdout], [0],
   [Datapath actions: 2