]>
Commit | Line | Data |
---|---|---|
7ca476af | 1 | # _ADD_BR([name]) |
d7c5426b DDP |
2 | # |
3 | # Expands into the proper ovs-vsctl commands to create a bridge with the | |
cf7659b6 JR |
4 | # appropriate type and properties |
5 | m4_define([_ADD_BR], [[add-br $1 -- set Bridge $1 protocols=OpenFlow10,OpenFlow11,OpenFlow12,OpenFlow13,OpenFlow14,OpenFlow15 fail-mode=secure ]]) | |
d7c5426b DDP |
6 | |
7 | # OVS_TRAFFIC_VSWITCHD_START([vsctl-args], [vsctl-output], [=override]) | |
69c2bdfe AZ |
8 | # |
9 | # Creates a database and starts ovsdb-server, starts ovs-vswitchd | |
10 | # connected to that database, calls ovs-vsctl to create a bridge named | |
11 | # br0 with predictable settings, passing 'vsctl-args' as additional | |
12 | # commands to ovs-vsctl. If 'vsctl-args' causes ovs-vsctl to provide | |
13 | # output (e.g. because it includes "create" commands) then 'vsctl-output' | |
c724bd67 | 14 | # specifies the expected output after filtering through uuidfilt. |
69c2bdfe | 15 | # |
810e1785 JS |
16 | # Best-effort loading of all available vport modules is performed. |
17 | # | |
d7c5426b | 18 | m4_define([OVS_TRAFFIC_VSWITCHD_START], |
810e1785 | 19 | [AT_CHECK([modprobe openvswitch]) |
53eb8cb8 | 20 | on_exit 'modprobe -r openvswitch' |
810e1785 JS |
21 | m4_foreach([mod], [[vport_geneve], [vport_gre], [vport_lisp], [vport_stt], [vport_vxlan]], |
22 | [modprobe -q mod || echo "Module mod not loaded." | |
a134d79d TLSC |
23 | on_exit 'modprobe -q -r mod' |
24 | ]) | |
53eb8cb8 | 25 | on_exit 'ovs-dpctl del-dp ovs-system' |
8bea39b1 | 26 | on_exit 'ovs-appctl dpctl/flush-conntrack' |
69c2bdfe AZ |
27 | _OVS_VSWITCHD_START([]) |
28 | dnl Add bridges, ports, etc. | |
c724bd67 | 29 | AT_CHECK([ovs-vsctl -- _ADD_BR([br0]) -- $1 m4_if([$2], [], [], [| uuidfilt])], [0], [$2]) |
69c2bdfe | 30 | ]) |
d7c5426b DDP |
31 | |
32 | # OVS_TRAFFIC_VSWITCHD_STOP([WHITELIST], [extra_cmds]) | |
69c2bdfe AZ |
33 | # |
34 | # Gracefully stops ovs-vswitchd and ovsdb-server, checking their log files | |
35 | # for messages with severity WARN or higher and signaling an error if any | |
36 | # is present. The optional WHITELIST may contain shell-quoted "sed" | |
37 | # commands to delete any warnings that are actually expected, e.g.: | |
38 | # | |
d7c5426b | 39 | # OVS_TRAFFIC_VSWITCHD_STOP(["/expected error/d"]) |
e2b553e4 AZ |
40 | # |
41 | # 'extra_cmds' are shell commands to be executed afte OVS_VSWITCHD_STOP() is | |
42 | # invoked. They can be used to perform additional cleanups such as name space | |
43 | # removal. | |
b883db24 | 44 | m4_define([OVS_TRAFFIC_VSWITCHD_STOP], |
5390d185 | 45 | [OVS_VSWITCHD_STOP([$1]) |
e2b553e4 | 46 | AT_CHECK([:; $2]) |
69c2bdfe | 47 | ]) |
07659514 | 48 | |
ddcf96d2 DDP |
49 | # CONFIGURE_VETH_OFFLOADS([VETH]) |
50 | # | |
51 | # The kernel datapath has no problem with offloads and veths. Nothing | |
52 | # to do here. | |
53 | m4_define([CONFIGURE_VETH_OFFLOADS], | |
54 | ) | |
55 | ||
07659514 JS |
56 | # CHECK_CONNTRACK() |
57 | # | |
58 | # Perform requirements checks for running conntrack tests, and flush the | |
59 | # kernel conntrack tables when the test is finished. | |
60 | # | |
61 | m4_define([CHECK_CONNTRACK], | |
93482cb0 | 62 | [AT_SKIP_IF([test $HAVE_PYTHON = no]) |
6b1babac JS |
63 | m4_foreach([mod], [[nf_conntrack_ipv4], [nf_conntrack_ipv6], [nf_nat_ftp], |
64 | [nf_nat_tftp]], | |
07659514 JS |
65 | [modprobe mod || echo "Module mod not loaded." |
66 | on_exit 'modprobe -r mod' | |
67 | ]) | |
ff188ad1 | 68 | sysctl -w net.netfilter.nf_conntrack_helper=0 |
ef0c5ffa | 69 | on_exit 'ovstest test-netlink-conntrack flush' |
07659514 JS |
70 | ] |
71 | ) | |
4573c42e DDP |
72 | |
73 | # CHECK_CONNTRACK_ALG() | |
74 | # | |
75 | # Perform requirements checks for running conntrack ALG tests. The kernel | |
76 | # supports ALG, so no check is needed. | |
77 | # | |
78 | m4_define([CHECK_CONNTRACK_ALG]) | |
79 | ||
4573c42e DDP |
80 | # CHECK_CONNTRACK_LOCAL_STACK() |
81 | # | |
82 | # Perform requirements checks for running conntrack tests with local stack. | |
83 | # The kernel always supports reading the connection state of an skb coming | |
84 | # from an internal port, without an explicit ct() action, so no check is | |
85 | # needed. | |
86 | m4_define([CHECK_CONNTRACK_LOCAL_STACK]) | |
87 | ||
b21ac618 DB |
88 | # CHECK_CONNTRACK_FRAG_OVERLAP() |
89 | # | |
90 | # The kernel does not support overlapping fragments checking. | |
91 | m4_define([CHECK_CONNTRACK_FRAG_OVERLAP], | |
92 | [ | |
93 | AT_SKIP_IF([:]) | |
94 | ]) | |
95 | ||
4573c42e DDP |
96 | # CHECK_CONNTRACK_NAT() |
97 | # | |
98 | # Perform requirements checks for running conntrack NAT tests. The kernel | |
99 | # always supports NAT, so no check is needed. | |
100 | # | |
101 | m4_define([CHECK_CONNTRACK_NAT]) | |
c43a1331 | 102 | |
187bb41f YHW |
103 | # CHECK_CONNTRACK_TIMEOUT() |
104 | # | |
105 | # Perform requirements checks for running conntrack customized timeout tests. | |
106 | # | |
107 | m4_define([CHECK_CONNTRACK_TIMEOUT], | |
108 | [ | |
109 | AT_SKIP_IF([! cat /boot/config-$(uname -r) | grep NF_CONNTRACK_TIMEOUT | grep '=y' > /dev/null]) | |
110 | modprobe nfnetlink_cttimeout | |
111 | on_exit 'modprobe -r nfnetlink_cttimeout' | |
112 | ]) | |
113 | ||
adf1b852 TL |
114 | # CHECK_CT_DPIF_PER_ZONE_LIMIT() |
115 | # | |
116 | # Perform requirements checks for running ovs-dpctl ct-[set|get|del]-limits per | |
117 | # zone. The kernel datapath does support this feature. Will remove this check | |
118 | # after both kernel and userspace datapath support it. | |
119 | m4_define([CHECK_CT_DPIF_PER_ZONE_LIMIT]) | |
120 | ||
26509f88 DB |
121 | # CHECK_CT_DPIF_SET_GET_MAXCONNS() |
122 | # | |
123 | # Perform requirements checks for running ovs-dpctl ct-set-maxconns or | |
124 | # ovs-dpctl ct-get-maxconns. The kernel datapath does not support this | |
125 | # feature. | |
126 | m4_define([CHECK_CT_DPIF_SET_GET_MAXCONNS], | |
127 | [ | |
128 | AT_SKIP_IF([:]) | |
129 | ]) | |
130 | ||
131 | # CHECK_CT_DPIF_GET_NCONNS() | |
132 | # | |
133 | # Perform requirements checks for running ovs-dpctl ct-get-nconns. The | |
134 | # kernel datapath does not support this feature. | |
135 | m4_define([CHECK_CT_DPIF_GET_NCONNS], | |
136 | [ | |
137 | AT_SKIP_IF([:]) | |
138 | ]) | |
d1224d28 | 139 | |
4ea96698 DB |
140 | # DPCTL_SET_MIN_FRAG_SIZE() |
141 | # | |
142 | # The kernel does not support this command. | |
143 | m4_define([DPCTL_SET_MIN_FRAG_SIZE], | |
144 | [ | |
145 | ||
146 | ]) | |
147 | ||
148 | # DPCTL_MODIFY_FRAGMENTATION() | |
149 | # | |
150 | # The kernel does not support this command. | |
151 | m4_define([DPCTL_MODIFY_FRAGMENTATION], | |
152 | [ | |
153 | ||
154 | ]) | |
155 | ||
156 | # DPCTL_CHECK_FRAGMENTATION_PASS() | |
157 | # | |
158 | # The kernel does not support this command. | |
159 | m4_define([DPCTL_CHECK_FRAGMENTATION_PASS], | |
160 | [ | |
161 | ||
162 | ]) | |
163 | ||
164 | # DPCTL_CHECK_V6_FRAGMENTATION_PASS() | |
165 | # | |
166 | # The kernel does not support this command. | |
167 | m4_define([DPCTL_CHECK_V6_FRAGMENTATION_PASS], | |
168 | [ | |
169 | ||
170 | ]) | |
171 | ||
172 | # DPCTL_CHECK_FRAGMENTATION_FAIL() | |
173 | # | |
174 | # The kernel does not support this command. | |
175 | m4_define([DPCTL_CHECK_FRAGMENTATION_FAIL], | |
176 | [ | |
177 | ||
178 | ]) | |
179 | ||
e06c44a8 | 180 | # OVS_CHECK_MIN_KERNEL([minversion], [minsublevel]) |
d1224d28 | 181 | # |
e06c44a8 DB |
182 | # Skip test if kernel version falls below minversion.minsublevel |
183 | m4_define([OVS_CHECK_MIN_KERNEL], | |
d1224d28 YS |
184 | [ |
185 | version=$(uname -r | sed -e 's/\./ /g' | awk '{print $ 1}') | |
186 | sublevel=$(uname -r | sed -e 's/\./ /g' | awk '{print $ 2}') | |
e06c44a8 | 187 | AT_SKIP_IF([test $version -lt $1 || ( test $version -eq $1 && test $sublevel -lt $2 )]) |
d1224d28 YS |
188 | ]) |
189 | ||
190 | # OVS_CHECK_KERNEL_EXCL([minversion], [minsublevel], [maxversion], [maxsublevel]) | |
191 | # | |
e06c44a8 | 192 | # Skip test if kernel version falls between minversion.minsublevel and maxversion.maxsublevel |
d1224d28 YS |
193 | m4_define([OVS_CHECK_KERNEL_EXCL], |
194 | [ | |
195 | version=$(uname -r | sed -e 's/\./ /g' | awk '{print $ 1}') | |
196 | sublevel=$(uname -r | sed -e 's/\./ /g' | awk '{print $ 2}') | |
197 | AT_SKIP_IF([ ! ( test $version -lt $1 || ( test $version -eq $1 && test $sublevel -lt $2 ) || test $version -gt $3 || ( test $version -eq $3 && test $sublevel -gt $4 ) ) ]) | |
198 | ]) | |
187bb41f YHW |
199 | |
200 | # VSCTL_ADD_DATAPATH_TABLE() | |
201 | # | |
202 | # Create system datapath table "system" for kernel tests in ovsdb | |
203 | m4_define([VSCTL_ADD_DATAPATH_TABLE], | |
204 | [ | |
205 | AT_CHECK([ovs-vsctl -- --id=@m create Datapath datapath_version=0 -- set Open_vSwitch . datapaths:"system"=@m], [0], [stdout]) | |
206 | DP_TYPE=$(echo "system") | |
207 | ]) |