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