]>
Commit | Line | Data |
---|---|---|
0e399d88 JP |
1 | AT_BANNER([datapath parsing and formatting]) |
2 | ||
eb1b39b3 BP |
3 | AT_SETUP([OVS datapath key parsing and formatting - valid forms]) |
4 | dnl We could add a test for invalid forms, but that's less important. | |
3bffc610 BP |
5 | AT_DATA([odp-base.txt], [dnl |
6 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15) | |
7 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x1234) | |
a61680c6 JP |
8 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=5,tos=0x80,ttl=128,frag=no) |
9 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=5,tos=0x81,ttl=128,frag=no) | |
10 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=5,tos=0x80,ttl=128,frag=first) | |
11 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=5,tos=0x80,ttl=128,frag=later) | |
12 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=6,tos=0,ttl=128,frag=no),tcp(src=80,dst=8080) | |
13 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=17,tos=0,ttl=128,frag=no),udp(src=81,dst=6632) | |
14 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=1,tos=0,ttl=128,frag=no),icmp(type=1,code=2) | |
60258dcb JP |
15 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=10,tclass=0x70,hlimit=128,frag=no) |
16 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=10,tclass=0x71,hlimit=128,frag=no) | |
17 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=10,tclass=0x70,hlimit=128,frag=first) | |
18 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=10,tclass=0x70,hlimit=128,frag=later) | |
19 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=6,tclass=0,hlimit=128,frag=no),tcp(src=80,dst=8080) | |
20 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=17,tclass=0,hlimit=128,frag=no),udp(src=6630,dst=22) | |
21 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=58,tclass=0,hlimit=128,frag=no),icmpv6(type=1,code=2) | |
60258dcb | 22 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=58,tclass=0,hlimit=128,frag=no),icmpv6(type=136,code=0),nd(target=::3,sll=00:05:06:07:08:09,tll=00:0a:0b:0c:0d:0e) |
3bffc610 | 23 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0806),arp(sip=1.2.3.4,tip=5.6.7.8,op=1,sha=00:0f:10:11:12:13,tha=00:14:15:16:17:18) |
54bb0348 | 24 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=58,tclass=0,hlimit=128,frag=no),icmpv6(type=136,code=0),nd(target=::3,sll=00:05:06:07:08:09,tll=00:0a:0b:0c:0d:0e) |
b02475c5 SH |
25 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x8847),mpls(label=100,tc=3,ttl=64,bos=1) |
26 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x8847),mpls(label=100,tc=7,ttl=100,bos=1) | |
27 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x8847),mpls(label=100,tc=7,ttl=100,bos=0) | |
28 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x8848),mpls(label=1000,tc=4,ttl=200,bos=1) | |
29 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x8848),mpls(label=1000,tc=4,ttl=200,bos=0) | |
3bffc610 BP |
30 | ]) |
31 | ||
32 | (echo '# Valid forms without tun_id or VLAN header.' | |
7ce2769e | 33 | set 's/^/skb_priority(0),skb_mark(0),recirc_id(0),dp_hash(0),/' odp-base.txt |
54bb0348 AZ |
34 | |
35 | set ' | |
7ce2769e | 36 | s/^/skb_priority(0),skb_mark(0),recirc_id(0),dp_hash(0),/ |
54bb0348 AZ |
37 | ' odp-base.txt |
38 | ||
3bffc610 BP |
39 | |
40 | echo | |
05fb0928 | 41 | echo '# Valid forms with tunnel header.' |
ac6073e3 | 42 | sed 's/^/skb_priority(0),tunnel(tun_id=0x7f10354,src=10.10.10.10,dst=20.20.20.20,tos=0,ttl=64,tp_src=0,tp_dst=0,gbp_id=0,gbp_flags=0,flags(csum,key)),skb_mark(0x1234),recirc_id(0),dp_hash(0),/' odp-base.txt |
3bffc610 BP |
43 | |
44 | echo | |
45 | echo '# Valid forms with VLAN header.' | |
7ce2769e | 46 | sed 's/^/skb_priority(0),skb_mark(0),recirc_id(0),dp_hash(0),/ |
54bb0348 | 47 | s/\(eth([[^)]]*)\),*/\1,eth_type(0x8100),vlan(vid=99,pcp=7),encap(/ |
fea393b1 | 48 | s/$/)/' odp-base.txt |
3bffc610 | 49 | |
b02475c5 SH |
50 | echo |
51 | echo '# Valid forms with MPLS header.' | |
7ce2769e | 52 | sed 's/^/skb_priority(0),skb_mark(0),recirc_id(0),dp_hash(0),/ |
54bb0348 | 53 | s/\(eth([[^)]]*),?\)/\1,eth_type(0x8847),mpls(label=100,tc=7,ttl=64,bos=1)/' odp-base.txt |
b02475c5 SH |
54 | |
55 | echo | |
56 | echo '# Valid forms with MPLS multicast header.' | |
7ce2769e | 57 | sed 's/^/skb_priority(0),skb_mark(0),recirc_id(0),dp_hash(0),/ |
54bb0348 | 58 | s/\(eth([[^)]]*),?\)/\1,eth_type(0x8848),mpls(label=100,tc=7,ttl=64,bos=1)/' odp-base.txt |
abff858b | 59 | |
3bffc610 | 60 | echo |
05fb0928 | 61 | echo '# Valid forms with tunnel and VLAN headers.' |
ac6073e3 | 62 | sed 's/^/skb_priority(0),tunnel(tun_id=0xfedcba9876543210,src=10.0.0.1,dst=10.0.0.2,tos=0x8,ttl=128,tp_src=0,tp_dst=0,gbp_id=0,gbp_flags=0,flags(key)),skb_mark(0),recirc_id(0),dp_hash(0),/ |
fea393b1 | 63 | s/\(eth([[^)]]*)\),*/\1,eth_type(0x8100),vlan(vid=99,pcp=7),encap(/ |
2508ac16 BP |
64 | s/$/)/' odp-base.txt |
65 | ||
66 | echo | |
05fb0928 | 67 | echo '# Valid forms with QOS priority, tunnel, and VLAN headers.' |
ac6073e3 | 68 | sed 's/^/skb_priority(0x1234),tunnel(tun_id=0xfedcba9876543210,src=10.10.10.10,dst=20.20.20.20,tos=0x8,ttl=64,tp_src=0,tp_dst=0,gbp_id=0,gbp_flags=0,flags(key)),skb_mark(0),recirc_id(0),dp_hash(0),/ |
2508ac16 | 69 | s/\(eth([[^)]]*)\),*/\1,eth_type(0x8100),vlan(vid=99,pcp=7),encap(/ |
fea393b1 | 70 | s/$/)/' odp-base.txt |
7257b535 BP |
71 | |
72 | echo | |
73 | echo '# Valid forms with IP first fragment.' | |
7ce2769e | 74 | sed 's/^/skb_priority(0),skb_mark(0),recirc_id(0),dp_hash(0),/' odp-base.txt | sed -n 's/,frag=no),/,frag=first),/p' |
7257b535 BP |
75 | |
76 | echo | |
77 | echo '# Valid forms with IP later fragment.' | |
7ce2769e | 78 | sed 's/^/skb_priority(0),skb_mark(0),recirc_id(0),dp_hash(0),/' odp-base.txt | sed -n 's/,frag=no),.*/,frag=later)/p' |
8bfd0fda BP |
79 | ) > odp-in.txt |
80 | AT_CAPTURE_FILE([odp-in.txt]) | |
81 | ||
82 | dnl If the BoS bit of the last LSE is 0 then the stack is unterminated | |
83 | dnl Internally a stack of 3 LSEs will be used with the trailing LSEs | |
84 | dnl set to zero. This is reflected when the key is formated | |
85 | sed '/bos=0/{ | |
86 | s/^/ODP_FIT_TOO_LITTLE: / | |
8bfd0fda BP |
87 | }' < odp-in.txt > odp-out.txt |
88 | ||
eadd1644 | 89 | AT_CHECK_UNQUOTED([ovstest test-odp parse-keys < odp-in.txt], [0], [`cat odp-out.txt` |
3bffc610 BP |
90 | ]) |
91 | AT_CLEANUP | |
92 | ||
e6cc0bab AZ |
93 | AT_SETUP([OVS datapath wildcarded key parsing and formatting - valid forms]) |
94 | dnl We could add a test for invalid forms, but that's less important. | |
95 | AT_DATA([odp-base.txt], [dnl | |
96 | in_port(1/0xff),eth(src=00:01:02:03:04:05/ff:ff:ff:ff:ff:f0,dst=10:11:12:13:14:15/ff:ff:ff:ff:ff:f0) | |
97 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x1234/0xfff0) | |
2d18eae8 | 98 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41/255.255.255.0,dst=172.16.0.20/255.255.255.0,proto=5/0xf0,tos=0x80/0xf0,ttl=128/0xf0,frag=no) |
e6cc0bab AZ |
99 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=6,tos=0,ttl=128,frag=no),tcp(src=80/0xff00,dst=8080/0xff) |
100 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=17,tos=0,ttl=128,frag=no),udp(src=81/0xff00,dst=6632/0xff) | |
041e7168 | 101 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=17,tos=0,ttl=128,frag=no),udp(src=81/0xff,dst=6632/0xff00) |
2d18eae8 JR |
102 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=1,tos=0,ttl=128,frag=no),icmp(type=1/0xf0,code=2) |
103 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1/::255,dst=::2/::255,label=0/0xf0,proto=10/0xf0,tclass=0x70/0xf0,hlimit=128/0xf0,frag=no) | |
e6cc0bab AZ |
104 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=6,tclass=0,hlimit=128,frag=no),tcp(src=80/0xff00,dst=8080/0xff) |
105 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=17,tclass=0,hlimit=128,frag=no),udp(src=6630/0xff00,dst=22/0xff) | |
2d18eae8 | 106 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=58,tclass=0,hlimit=128,frag=no),icmpv6(type=1/0xf0,code=2) |
e6cc0bab AZ |
107 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=58,tclass=0,hlimit=128,frag=no),icmpv6(type=135,code=0),nd(target=::3/::250) |
108 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=58,tclass=0,hlimit=128,frag=no),icmpv6(type=135,code=0),nd(target=::3/::250,sll=00:05:06:07:08:09/ff:ff:ff:ff:ff:00) | |
109 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=58,tclass=0,hlimit=128,frag=no),icmpv6(type=136,code=0),nd(target=::3/::250,tll=00:0a:0b:0c:0d:0e/ff:ff:ff:ff:ff:00) | |
110 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=58,tclass=0,hlimit=128,frag=no),icmpv6(type=136,code=0),nd(target=::3/::250,sll=00:05:06:07:08:09/ff:ff:ff:ff:ff:00,tll=00:0a:0b:0c:0d:0e/ff:ff:ff:ff:ff:00) | |
111 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0806),arp(sip=1.2.3.4/255.255.255.250,tip=5.6.7.8/255.255.255.250,op=1/0xf0,sha=00:0f:10:11:12:13/ff:ff:ff:ff:ff:00,tha=00:14:15:16:17:18/ff:ff:ff:ff:ff:00) | |
112 | skb_mark(0x1234/0xfff0),in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=58,tclass=0,hlimit=128,frag=no),icmpv6(type=136,code=0),nd(target=::3,sll=00:05:06:07:08:09,tll=00:0a:0b:0c:0d:0e) | |
113 | ]) | |
114 | ||
115 | (echo '# Valid forms without tun_id or VLAN header.' | |
116 | cat odp-base.txt | |
117 | ||
118 | echo | |
119 | echo '# Valid forms with tunnel header.' | |
ac6073e3 | 120 | sed 's/^/tunnel(tun_id=0x7f10354\/0xff,src=10.10.10.10\/255.255.255.0,dst=20.20.20.20\/255.255.255.0,tos=0,ttl=64,tp_src=0,tp_dst=0,gbp_id=0,gbp_flags=0,flags(csum,key)),/' odp-base.txt |
e6cc0bab AZ |
121 | |
122 | echo | |
123 | echo '# Valid forms with VLAN header.' | |
124 | sed 's/\(eth([[^)]]*)\),*/\1,eth_type(0x8100),vlan(vid=99,pcp=7),encap(/ | |
125 | s/$/)/' odp-base.txt | |
126 | ||
127 | echo | |
128 | echo '# Valid forms with MPLS header.' | |
129 | sed 's/\(eth([[^)]]*),?\)/\1,eth_type(0x8847),mpls(label=100\/0xff,tc=7\/7,ttl=64\/0xff,bos=1\/1)/' odp-base.txt | |
130 | ||
131 | echo | |
132 | echo '# Valid forms with QoS priority.' | |
133 | sed 's/^/skb_priority(0x1234\/0xff),/' odp-base.txt | |
134 | ||
135 | echo | |
136 | echo '# Valid forms with tunnel and VLAN headers.' | |
ac6073e3 | 137 | sed 's/^/tunnel(tun_id=0xfedcba9876543210,src=10.0.0.1,dst=10.0.0.2,tos=0x8,ttl=128,tp_src=0,tp_dst=0,gbp_id=0,gbp_flags=0,flags(key)),/ |
e6cc0bab AZ |
138 | s/\(eth([[^)]]*)\),*/\1,eth_type(0x8100),vlan(vid=99/0xff0,pcp=7/0xe),encap(/ |
139 | s/$/)/' odp-base.txt | |
140 | ||
141 | echo | |
142 | echo '# Valid forms with QOS priority, tunnel, and VLAN headers.' | |
ac6073e3 | 143 | sed 's/^/skb_priority(0x1234),tunnel(tun_id=0xfedcba9876543210,src=10.10.10.10,dst=20.20.20.20,tos=0x8,ttl=64,tp_src=0,tp_dst=0,gbp_id=0,gbp_flags=0,flags(key)),/ |
e6cc0bab AZ |
144 | s/\(eth([[^)]]*)\),*/\1,eth_type(0x8100),vlan(vid=99,pcp=7),encap(/ |
145 | s/$/)/' odp-base.txt | |
146 | ||
147 | echo | |
148 | echo '# Valid forms with IP first fragment.' | |
149 | sed -n 's/,frag=no),/,frag=first),/p' odp-base.txt | |
150 | ||
151 | echo | |
152 | echo '# Valid forms with IP later fragment.' | |
153 | sed -n 's/,frag=no),.*/,frag=later)/p' odp-base.txt) > odp.txt | |
154 | AT_CAPTURE_FILE([odp.txt]) | |
eadd1644 | 155 | AT_CHECK_UNQUOTED([ovstest test-odp parse-wc-keys < odp.txt], [0], [`cat odp.txt` |
e6cc0bab AZ |
156 | ]) |
157 | AT_CLEANUP | |
158 | ||
5a0a5702 GS |
159 | AT_SETUP([OVS datapath wildcarded key filtering.]) |
160 | dnl We could add a test for invalid forms, but that's less important. | |
161 | AT_DATA([odp-base.txt], [dnl | |
162 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x1234/0xfff0) | |
2d18eae8 | 163 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41/255.255.255.0,dst=172.16.0.20/255.255.255.0,proto=5/0xf0,tos=0x80/0xf0,ttl=128/0xf0,frag=no) |
5a0a5702 GS |
164 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=6,tos=0,ttl=128,frag=no),tcp(src=80/0xff00,dst=8080/0xff) |
165 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=17,tos=0,ttl=128,frag=no),udp(src=81/0xff00,dst=6632/0xff) | |
166 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=17,tos=0,ttl=128,frag=no),udp(src=81/0xff,dst=6632/0xff00) | |
167 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=1,tos=0,ttl=128,frag=no),icmp(type=1/0xf0,code=2/0xff) | |
2d18eae8 | 168 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1/::255,dst=::2/::255,label=0/0xf0,proto=10/0xf0,tclass=0x70/0xf0,hlimit=128/0xf0,frag=no) |
5a0a5702 GS |
169 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=6,tclass=0,hlimit=128,frag=no),tcp(src=80/0xff00,dst=8080/0xff) |
170 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0806),arp(sip=1.2.3.4/255.255.255.250,tip=5.6.7.8/255.255.255.250,op=1/0xf0,sha=00:0f:10:11:12:13/ff:ff:ff:ff:ff:00,tha=00:14:15:16:17:18/ff:ff:ff:ff:ff:00) | |
171 | ]) | |
172 | AT_DATA([odp-vlan-base.txt], [dnl | |
173 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x8100),vlan(vid=99,pcp=7),encap(eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=6,tos=0,ttl=128,frag=no),tcp(src=80/0xff00,dst=8080/0xff)) | |
174 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x8100),vlan(vid=100,pcp=7),encap(eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=6,tos=0,ttl=128,frag=no),tcp(src=80/0xff00,dst=8080/0xff)) | |
175 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x8100),vlan(vid=99,pcp=7),encap(eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=17,tos=0,ttl=128,frag=no),udp(src=81/0xff00,dst=6632/0xff)) | |
176 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x8100),vlan(vid=100,pcp=7),encap(eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=17,tos=0,ttl=128,frag=no),udp(src=81/0xff00,dst=6632/0xff)) | |
177 | ]) | |
178 | AT_DATA([odp-eth-type.txt], [dnl | |
179 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x1234/0xfff0) | |
180 | ]) | |
181 | AT_DATA([odp-vlan.txt], [dnl | |
182 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x8100),vlan(vid=99,pcp=7),encap(eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=6,tos=0,ttl=128,frag=no),tcp(src=80/0xff00,dst=8080/0xff)) | |
183 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x8100),vlan(vid=99,pcp=7),encap(eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=17,tos=0,ttl=128,frag=no),udp(src=81/0xff00,dst=6632/0xff)) | |
184 | ]) | |
185 | AT_DATA([odp-ipv4.txt], [dnl | |
2d18eae8 | 186 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41/255.255.255.0,dst=172.16.0.20/255.255.255.0,proto=5/0xf0,tos=0x80/0xf0,ttl=128/0xf0,frag=no) |
5a0a5702 GS |
187 | ]) |
188 | AT_DATA([odp-icmp.txt], [dnl | |
2d18eae8 | 189 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41/255.255.255.0,dst=172.16.0.20/255.255.255.0,proto=5/0xf0,tos=0x80/0xf0,ttl=128/0xf0,frag=no) |
5a0a5702 GS |
190 | ]) |
191 | AT_DATA([odp-arp.txt], [dnl | |
192 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0806),arp(sip=1.2.3.4/255.255.255.250,tip=5.6.7.8/255.255.255.250,op=1/0xf0,sha=00:0f:10:11:12:13/ff:ff:ff:ff:ff:00,tha=00:14:15:16:17:18/ff:ff:ff:ff:ff:00) | |
193 | ]) | |
194 | AT_DATA([odp-tcp.txt], [dnl | |
2d18eae8 | 195 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41/255.255.255.0,dst=172.16.0.20/255.255.255.0,proto=5/0xf0,tos=0x80/0xf0,ttl=128/0xf0,frag=no) |
5a0a5702 GS |
196 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x0800),ipv4(src=35.8.2.41,dst=172.16.0.20,proto=6,tos=0,ttl=128,frag=no),tcp(src=80/0xff00,dst=8080/0xff) |
197 | ]) | |
198 | AT_DATA([odp-tcp6.txt], [dnl | |
2d18eae8 | 199 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1/::255,dst=::2/::255,label=0/0xf0,proto=10/0xf0,tclass=0x70/0xf0,hlimit=128/0xf0,frag=no) |
5a0a5702 GS |
200 | in_port(1),eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15),eth_type(0x86dd),ipv6(src=::1,dst=::2,label=0,proto=6,tclass=0,hlimit=128,frag=no),tcp(src=80/0xff00,dst=8080/0xff) |
201 | ]) | |
eadd1644 | 202 | AT_CHECK_UNQUOTED([ovstest test-odp parse-filter filter='dl_type=0x1235' < odp-base.txt], [0], [`cat odp-eth-type.txt` |
5a0a5702 | 203 | ]) |
eadd1644 | 204 | AT_CHECK_UNQUOTED([ovstest test-odp parse-filter filter='dl_vlan=99' < odp-vlan-base.txt], [0], [`cat odp-vlan.txt` |
5a0a5702 | 205 | ]) |
eadd1644 | 206 | AT_CHECK_UNQUOTED([ovstest test-odp parse-filter filter='dl_vlan=99,ip' < odp-vlan-base.txt], [0], [`cat odp-vlan.txt` |
5a0a5702 | 207 | ]) |
eadd1644 | 208 | AT_CHECK_UNQUOTED([ovstest test-odp parse-filter filter='ip,nw_src=35.8.2.199' < odp-base.txt], [0], [`cat odp-ipv4.txt` |
5a0a5702 | 209 | ]) |
eadd1644 | 210 | AT_CHECK_UNQUOTED([ovstest test-odp parse-filter filter='ip,nw_dst=172.16.0.199' < odp-base.txt], [0], [`cat odp-ipv4.txt` |
5a0a5702 | 211 | ]) |
eadd1644 | 212 | AT_CHECK_UNQUOTED([ovstest test-odp parse-filter filter='dl_type=0x0800,nw_src=35.8.2.199,nw_dst=172.16.0.199' < odp-base.txt], [0], [`cat odp-ipv4.txt` |
5a0a5702 | 213 | ]) |
eadd1644 | 214 | AT_CHECK_UNQUOTED([ovstest test-odp parse-filter filter='icmp,nw_src=35.8.2.199' < odp-base.txt], [0], [`cat odp-icmp.txt` |
5a0a5702 | 215 | ]) |
eadd1644 | 216 | AT_CHECK_UNQUOTED([ovstest test-odp parse-filter filter='arp,arp_spa=1.2.3.5' < odp-base.txt], [0], [`cat odp-arp.txt` |
5a0a5702 | 217 | ]) |
eadd1644 | 218 | AT_CHECK_UNQUOTED([ovstest test-odp parse-filter filter='tcp,tp_src=90' < odp-base.txt], [0], [`cat odp-tcp.txt` |
5a0a5702 | 219 | ]) |
eadd1644 | 220 | AT_CHECK_UNQUOTED([ovstest test-odp parse-filter filter='tcp6,tp_src=90' < odp-base.txt], [0], [`cat odp-tcp6.txt` |
5a0a5702 GS |
221 | ]) |
222 | AT_CLEANUP | |
223 | ||
eb1b39b3 BP |
224 | AT_SETUP([OVS datapath actions parsing and formatting - valid forms]) |
225 | AT_DATA([actions.txt], [dnl | |
226 | 1,2,3 | |
227 | userspace(pid=555666777) | |
8b7ea2d4 | 228 | userspace(pid=555666777,tunnel_out_port=10) |
eb1b39b3 | 229 | userspace(pid=6633,sFlow(vid=9,pcp=7,output=10)) |
8b7ea2d4 | 230 | userspace(pid=6633,sFlow(vid=9,pcp=7,output=10),tunnel_out_port=10) |
eb1b39b3 | 231 | userspace(pid=9765,slow_path()) |
8b7ea2d4 | 232 | userspace(pid=9765,slow_path(),tunnel_out_port=10) |
eb1b39b3 | 233 | userspace(pid=9765,slow_path(cfm)) |
8b7ea2d4 | 234 | userspace(pid=9765,slow_path(cfm),tunnel_out_port=10) |
e995e3df | 235 | userspace(pid=1234567,userdata(0102030405060708090a0b0c0d0e0f)) |
8b7ea2d4 | 236 | userspace(pid=1234567,userdata(0102030405060708090a0b0c0d0e0f),tunnel_out_port=10) |
29089a54 | 237 | userspace(pid=6633,flow_sample(probability=123,collector_set_id=1234,obs_domain_id=2345,obs_point_id=3456)) |
8b7ea2d4 WZ |
238 | userspace(pid=6633,flow_sample(probability=123,collector_set_id=1234,obs_domain_id=2345,obs_point_id=3456),tunnel_out_port=10) |
239 | userspace(pid=6633,ipfix(output_port=10)) | |
240 | userspace(pid=6633,ipfix(output_port=10),tunnel_out_port=10) | |
eb1b39b3 BP |
241 | set(in_port(2)) |
242 | set(eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15)) | |
2d18eae8 | 243 | set(eth(src=00:01:02:03:04:05,dst=10:11:12:13:14:15/ff:ff:ff:00:00:00)) |
eb1b39b3 BP |
244 | set(eth_type(0x1234)) |
245 | set(ipv4(src=35.8.2.41,dst=172.16.0.20,proto=5,tos=0x80,ttl=128,frag=no)) | |
2d18eae8 JR |
246 | set(ipv4(src=35.8.2.41,dst=172.16.0.20,proto=5,ttl=128,frag=no)) |
247 | set(ipv4(src=35.8.2.41/255.255.255.0,dst=172.16.0.20,proto=5,tos=0x80,ttl=128,frag=no)) | |
248 | set(ipv4(src=35.8.2.41/255.255.255.0,tos=0x80,ttl=128,frag=no)) | |
249 | set(ipv4(tos=0/0x3)) | |
250 | set(ipv4(tos=0x80/0xfc)) | |
251 | set(ipv4(ttl=128,frag=no)) | |
252 | set(ipv4(frag=no)) | |
eb1b39b3 | 253 | set(tcp(src=80,dst=8080)) |
2d18eae8 JR |
254 | set(tcp(src=80/0xff00,dst=8080)) |
255 | set(tcp(src=80)) | |
256 | set(tcp(dst=8080)) | |
eb1b39b3 | 257 | set(udp(src=81,dst=6632)) |
2d18eae8 JR |
258 | set(udp(src=81/0xff00,dst=6632)) |
259 | set(udp(src=81)) | |
260 | set(udp(dst=6633)) | |
61abba80 | 261 | set(sctp(src=82,dst=6633)) |
2d18eae8 JR |
262 | set(sctp(src=82/0xff00,dst=6633)) |
263 | set(sctp(src=82)) | |
264 | set(sctp(dst=6632)) | |
eb1b39b3 BP |
265 | set(icmp(type=1,code=2)) |
266 | set(ipv6(src=::1,dst=::2,label=0,proto=10,tclass=0x70,hlimit=128,frag=no)) | |
2d18eae8 JR |
267 | set(ipv6(src=::1,dst=::2)) |
268 | set(ipv6(label=0,proto=10,tclass=0x70,hlimit=128,frag=no)) | |
269 | set(ipv6(label=0,proto=10,hlimit=128)) | |
270 | set(ipv6(label=0/0xfff,proto=10,tclass=0x70/0x70)) | |
271 | set(ipv6(label=0)) | |
eb1b39b3 BP |
272 | set(icmpv6(type=1,code=2)) |
273 | push_vlan(vid=12,pcp=0) | |
274 | push_vlan(vid=13,pcp=5,cfi=0) | |
275 | push_vlan(tpid=0x9100,vid=13,pcp=5) | |
276 | push_vlan(tpid=0x9100,vid=13,pcp=5,cfi=0) | |
277 | pop_vlan | |
278 | sample(sample=9.7%,actions(1,2,3,push_vlan(vid=1,pcp=2))) | |
ac6073e3 MC |
279 | set(tunnel(tun_id=0xabcdef1234567890,src=1.1.1.1,dst=2.2.2.2,tos=0,ttl=64,tp_src=0,tp_dst=0,gbp_id=0,gbp_flags=0,flags(df,csum,key))) |
280 | set(tunnel(tun_id=0xabcdef1234567890,src=1.1.1.1,dst=2.2.2.2,tos=0,ttl=64,tp_src=0,tp_dst=0,gbp_id=0,gbp_flags=0,flags(key))) | |
a36de779 PS |
281 | tnl_pop(4) |
282 | tnl_push(tnl_port(4),header(size=42,type=3,eth(dst=f8:bc:12:44:34:b6,src=f8:bc:12:46:58:e0,dl_type=0x0800),ipv4(src=1.1.2.88,dst=1.1.2.92,proto=47,tos=0,ttl=64,frag=0x40),gre((flags=0x20,proto=0x6558),key=0x1e241)),out_port(1)) | |
283 | tnl_push(tnl_port(4),header(size=46,type=3,eth(dst=f8:bc:12:44:34:b6,src=f8:bc:12:46:58:e0,dl_type=0x0800),ipv4(src=1.1.2.88,dst=1.1.2.92,proto=47,tos=0,ttl=64,frag=0x40),gre((flags=0xa0,proto=0x6558),csum=0x0,key=0x1e241)),out_port(1)) | |
284 | tnl_push(tnl_port(6),header(size=50,type=4,eth(dst=f8:bc:12:44:34:b6,src=f8:bc:12:46:58:e0,dl_type=0x0800),ipv4(src=1.1.2.88,dst=1.1.2.92,proto=17,tos=0,ttl=64,frag=0x40),udp(src=0,dst=4789),vxlan(flags=0x8000000,vni=0x1c700)),out_port(1)) | |
eb1b39b3 | 285 | ]) |
eadd1644 | 286 | AT_CHECK_UNQUOTED([ovstest test-odp parse-actions < actions.txt], [0], |
eb1b39b3 BP |
287 | [`cat actions.txt` |
288 | ]) | |
289 | AT_CLEANUP |