]>
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 | 31 | |
8205fbc8 | 32 | # OVS_TRAFFIC_VSWITCHD_STOP([ALLOWLIST], [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 | |
8205fbc8 | 36 | # is present. The optional ALLOWLIST may contain shell-quoted "sed" |
69c2bdfe AZ |
37 | # commands to delete any warnings that are actually expected, e.g.: |
38 | # | |
d7c5426b | 39 | # OVS_TRAFFIC_VSWITCHD_STOP(["/expected error/d"]) |
e2b553e4 | 40 | # |
8205fbc8 | 41 | # 'extra_cmds' are shell commands to be executed after OVS_VSWITCHD_STOP() is |
e2b553e4 AZ |
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], | |
1ca0323e | 62 | [m4_foreach([mod], [[nf_conntrack_ipv4], [nf_conntrack_ipv6], [nf_nat_ftp], |
6b1babac | 63 | [nf_nat_tftp]], |
07659514 JS |
64 | [modprobe mod || echo "Module mod not loaded." |
65 | on_exit 'modprobe -r mod' | |
66 | ]) | |
ff188ad1 | 67 | sysctl -w net.netfilter.nf_conntrack_helper=0 |
ef0c5ffa | 68 | on_exit 'ovstest test-netlink-conntrack flush' |
07659514 JS |
69 | ] |
70 | ) | |
4573c42e DDP |
71 | |
72 | # CHECK_CONNTRACK_ALG() | |
73 | # | |
74 | # Perform requirements checks for running conntrack ALG tests. The kernel | |
75 | # supports ALG, so no check is needed. | |
76 | # | |
77 | m4_define([CHECK_CONNTRACK_ALG]) | |
78 | ||
4573c42e DDP |
79 | # CHECK_CONNTRACK_LOCAL_STACK() |
80 | # | |
81 | # Perform requirements checks for running conntrack tests with local stack. | |
82 | # The kernel always supports reading the connection state of an skb coming | |
83 | # from an internal port, without an explicit ct() action, so no check is | |
84 | # needed. | |
85 | m4_define([CHECK_CONNTRACK_LOCAL_STACK]) | |
86 | ||
b21ac618 DB |
87 | # CHECK_CONNTRACK_FRAG_OVERLAP() |
88 | # | |
89 | # The kernel does not support overlapping fragments checking. | |
90 | m4_define([CHECK_CONNTRACK_FRAG_OVERLAP], | |
91 | [ | |
92 | AT_SKIP_IF([:]) | |
93 | ]) | |
94 | ||
4573c42e DDP |
95 | # CHECK_CONNTRACK_NAT() |
96 | # | |
97 | # Perform requirements checks for running conntrack NAT tests. The kernel | |
98 | # always supports NAT, so no check is needed. | |
99 | # | |
100 | m4_define([CHECK_CONNTRACK_NAT]) | |
c43a1331 | 101 | |
187bb41f YHW |
102 | # CHECK_CONNTRACK_TIMEOUT() |
103 | # | |
104 | # Perform requirements checks for running conntrack customized timeout tests. | |
105 | # | |
106 | m4_define([CHECK_CONNTRACK_TIMEOUT], | |
107 | [ | |
108 | AT_SKIP_IF([! cat /boot/config-$(uname -r) | grep NF_CONNTRACK_TIMEOUT | grep '=y' > /dev/null]) | |
109 | modprobe nfnetlink_cttimeout | |
110 | on_exit 'modprobe -r nfnetlink_cttimeout' | |
111 | ]) | |
112 | ||
26509f88 DB |
113 | # CHECK_CT_DPIF_SET_GET_MAXCONNS() |
114 | # | |
115 | # Perform requirements checks for running ovs-dpctl ct-set-maxconns or | |
116 | # ovs-dpctl ct-get-maxconns. The kernel datapath does not support this | |
117 | # feature. | |
118 | m4_define([CHECK_CT_DPIF_SET_GET_MAXCONNS], | |
119 | [ | |
120 | AT_SKIP_IF([:]) | |
121 | ]) | |
122 | ||
123 | # CHECK_CT_DPIF_GET_NCONNS() | |
124 | # | |
125 | # Perform requirements checks for running ovs-dpctl ct-get-nconns. The | |
126 | # kernel datapath does not support this feature. | |
127 | m4_define([CHECK_CT_DPIF_GET_NCONNS], | |
128 | [ | |
129 | AT_SKIP_IF([:]) | |
130 | ]) | |
d1224d28 | 131 | |
4ea96698 DB |
132 | # DPCTL_SET_MIN_FRAG_SIZE() |
133 | # | |
134 | # The kernel does not support this command. | |
135 | m4_define([DPCTL_SET_MIN_FRAG_SIZE], | |
136 | [ | |
137 | ||
138 | ]) | |
139 | ||
140 | # DPCTL_MODIFY_FRAGMENTATION() | |
141 | # | |
142 | # The kernel does not support this command. | |
143 | m4_define([DPCTL_MODIFY_FRAGMENTATION], | |
144 | [ | |
145 | ||
146 | ]) | |
147 | ||
148 | # DPCTL_CHECK_FRAGMENTATION_PASS() | |
149 | # | |
150 | # The kernel does not support this command. | |
151 | m4_define([DPCTL_CHECK_FRAGMENTATION_PASS], | |
152 | [ | |
153 | ||
154 | ]) | |
155 | ||
156 | # DPCTL_CHECK_V6_FRAGMENTATION_PASS() | |
157 | # | |
158 | # The kernel does not support this command. | |
159 | m4_define([DPCTL_CHECK_V6_FRAGMENTATION_PASS], | |
160 | [ | |
161 | ||
162 | ]) | |
163 | ||
164 | # DPCTL_CHECK_FRAGMENTATION_FAIL() | |
165 | # | |
166 | # The kernel does not support this command. | |
167 | m4_define([DPCTL_CHECK_FRAGMENTATION_FAIL], | |
168 | [ | |
169 | ||
170 | ]) | |
171 | ||
e06c44a8 | 172 | # OVS_CHECK_MIN_KERNEL([minversion], [minsublevel]) |
d1224d28 | 173 | # |
e06c44a8 DB |
174 | # Skip test if kernel version falls below minversion.minsublevel |
175 | m4_define([OVS_CHECK_MIN_KERNEL], | |
d1224d28 YS |
176 | [ |
177 | version=$(uname -r | sed -e 's/\./ /g' | awk '{print $ 1}') | |
178 | sublevel=$(uname -r | sed -e 's/\./ /g' | awk '{print $ 2}') | |
e06c44a8 | 179 | AT_SKIP_IF([test $version -lt $1 || ( test $version -eq $1 && test $sublevel -lt $2 )]) |
d1224d28 YS |
180 | ]) |
181 | ||
182 | # OVS_CHECK_KERNEL_EXCL([minversion], [minsublevel], [maxversion], [maxsublevel]) | |
183 | # | |
e06c44a8 | 184 | # Skip test if kernel version falls between minversion.minsublevel and maxversion.maxsublevel |
d1224d28 YS |
185 | m4_define([OVS_CHECK_KERNEL_EXCL], |
186 | [ | |
187 | version=$(uname -r | sed -e 's/\./ /g' | awk '{print $ 1}') | |
188 | sublevel=$(uname -r | sed -e 's/\./ /g' | awk '{print $ 2}') | |
189 | 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 ) ) ]) | |
190 | ]) | |
187bb41f YHW |
191 | |
192 | # VSCTL_ADD_DATAPATH_TABLE() | |
193 | # | |
194 | # Create system datapath table "system" for kernel tests in ovsdb | |
195 | m4_define([VSCTL_ADD_DATAPATH_TABLE], | |
196 | [ | |
197 | AT_CHECK([ovs-vsctl -- --id=@m create Datapath datapath_version=0 -- set Open_vSwitch . datapaths:"system"=@m], [0], [stdout]) | |
198 | DP_TYPE=$(echo "system") | |
199 | ]) | |
ae05d681 GR |
200 | |
201 | # CHECK_L3L4_CONNTRACK_REASM() | |
202 | # | |
203 | # Only allow this test to run on the kernel datapath - it is not useful | |
204 | # or necessary for the userspace datapath as it is checking for a kernel | |
205 | # specific regression. | |
206 | m4_define([CHECK_L3L4_CONNTRACK_REASM]) |