View | Details | Raw Unified | Return to bug 193280 | Differences between
and this patch

Collapse All | Expand All

(-)sys/netinet/carp (+62 lines)
Lines 196-204 Link Here
196
	vnet_cleanup
196
	vnet_cleanup
197
}
197
}
198
198
199
200
201
atf_test_case "nd6_ns_source_mac" "cleanup"
202
nd6_ns_source_mac_head()
203
{
204
        atf_set descr 'CARP ndp neighbor solicitation MAC source test (IPv6)'
205
        atf_set require.user root
206
}
207
208
nd6_ns_source_mac_body()
209
{
210
        carp_init
211
212
        bridge=$(vnet_mkbridge)
213
        epair_one=$(vnet_mkepair)
214
        epair_two=$(vnet_mkepair)
215
216
        vnet_mkjail carp_ndp_v6_one ${bridge} ${epair_one}a ${epair_two}a
217
        vnet_mkjail carp_ndp_v6_two ${epair_one}b
218
        vnet_mkjail carp_ndp_v6_three ${epair_two}b
219
220
        jexec carp_ndp_v6_one ifconfig ${bridge} inet6 2001:db8::0:4/64 up \
221
            no_dad
222
        jexec carp_ndp_v6_one ifconfig ${bridge} addm ${epair_one}a \
223
            addm ${epair_two}a
224
        jexec carp_ndp_v6_one ifconfig ${epair_one}a up
225
        jexec carp_ndp_v6_one ifconfig ${epair_two}a up
226
227
        jexec carp_ndp_v6_two ifconfig ${epair_one}b inet6 \
228
            2001:db8::1:2/64 up no_dad
229
        jexec carp_ndp_v6_two ifconfig ${epair_one}b inet6 add vhid 1 \
230
            advskew 0 2001:db8::0:1/64
231
232
        jexec carp_ndp_v6_three ifconfig ${epair_two}b inet6 2001:db8::1:3/64 up no_dad
233
        jexec carp_ndp_v6_three ifconfig ${epair_two}b inet6 add vhid 1 \
234
            advskew 100 2001:db8::0:1/64
235
236
        wait_for_carp carp_ndp_v6_two ${epair_one}b \
237
            carp_ndp_v6_three ${epair_two}b
238
239
	# carp_ndp_v6_two is MASTER
240
241
	# trigger a NS from the virtual IP from the BACKUP
242
        atf_check -s exit:2 -o ignore jexec carp_ndp_v6_three \
243
            ping -6 -c 3 -S 2001:db8::0:1 2001:db8::0:4
244
245
	# trigger a NS from the virtual IP from the MASTER,
246
	# this ping should work
247
        atf_check -s exit:0 -o ignore jexec carp_ndp_v6_two \
248
            ping -6 -c 3 -S 2001:db8::0:1 2001:db8::0:4
249
250
        # ndp entry should be for the virtual mac
251
        atf_check -o match:'2001:db8::1                          00:00:5e:00:01:01' jexec carp_ndp_v6_one ndp -an
252
}
253
254
nd6_ns_source_mac_cleanup()
255
{
256
        vnet_cleanup
257
}
258
259
199
atf_init_test_cases()
260
atf_init_test_cases()
200
{
261
{
201
	atf_add_test_case "basic_v4"
262
	atf_add_test_case "basic_v4"
202
	atf_add_test_case "basic_v6"
263
	atf_add_test_case "basic_v6"
203
	atf_add_test_case "negative_demotion"
264
	atf_add_test_case "negative_demotion"
265
	atf_add_test_case "nd6_ns_source_mac"
204
}
266
}

Return to bug 193280