xref: /openbsd/regress/sys/netinet/arp/README (revision 09467b48)
1Regression tests for the ARP implementation in the kernel.
2
3The test suite runs on the machine LOCAL, the kernel under test is
4running on REMOTE.  On LOCAL Scapy is generating ARP packes and
5sends them to REMOTE.  The replies to LOCAL are analyzed.  The
6kernel log files are fetched from REMOTE via SCP and grepped for
7messages.  The ARP table of REMOTE is inspected via SSH login.
8
9Interfaces and adresses on REMOTE and LOCAL must be preconfigured.
10The test manually adds entries into the REMOTE ARP table and tries
11to overwrite them with fake ARP packets.  Some addresses are on the
12REMOTE interface facing LOCAL other are on a second interface.  The
13ARP input code has different cases for that.  So all possible log
14messages from ARP input can be triggered by a subtest.
15
16Additionally check that REMOTE can answer a Proxy ARP Requests.
17
18EXAMPLE
19
20To run this test I use the following configuration files.
21You should choose a different set of MAC and IP addresses.
22
23- My local machine where I run the regression test:
24
25/etc/hosts
26# to login to qemu with SSH via IPv6 link-local
27fe80::725f:caff:fe21:8d70%tap0		q70
28
29/etc/hostname.tap0
30lladdr fe:e1:ba:d0:d5:6d up
31inet 10.188.70.17 255.255.255.0
32inet6 eui64
33
34/etc/hostname.tap1
35up
36
37- My qemu where the kernel under test is running
38
39/etc/hostname.vio0
40lladdr 70:5f:ca:21:8d:70
41inet 10.188.70.70 255.255.255.0
42inet6 eui64
43
44/etc/hostname.vio1
45inet 10.188.211.70 255.255.255.0
46
47- My environment when executing the test
48
49LOCAL_IF=tap0
50LOCAL_MAC=fe:e1:ba:d0:d5:6d
51REMOTE_MAC=70:5f:ca:21:8d:70
52FAKE_MAC=12:34:56:78:9a:bc
53PROXY_MAC=00:90:27:bb:cc:dd
54REMOTE_SSH=q70
55
56LOCAL_ADDR=10.188.70.17
57REMOTE_ADDR=10.188.70.70
58FAKE_ADDR=10.188.70.188
59OTHER_ADDR=10.188.211.70
60OTHER_FAKE_ADDR=10.188.211.188
61
62export LOCAL_IF LOCAL_MAC REMOTE_MAC FAKE_MAC REMOTE_SSH LOCAL_ADDR REMOTE_ADDR
63export FAKE_ADDR OTHER_ADDR OTHER_FAKE_ADDR
64