With the diff I just sent all the ARP regression tests suddenly pass.
But I did not fix anything!  This is because the actual proxy ARP test
is incomplete.

Diff below fixes it by adding *two* different entries for a given IP.
One is "published" and should be returned when an echo request is
received, the other one is for internal use.

This test will now fail if a kernel with ART is used.  This will be
addressed shortly.

ok?

Index: Makefile
===================================================================
RCS file: /cvs/src/regress/sys/netinet/arp/Makefile,v
retrieving revision 1.3
diff -u -p -r1.3 Makefile
--- Makefile    4 Dec 2015 23:43:04 -0000       1.3
+++ Makefile    21 Mar 2016 13:21:43 -0000
@@ -31,6 +31,7 @@ LOCAL_IF ?=
 LOCAL_MAC ?=
 REMOTE_MAC ?=
 FAKE_MAC ?= 12:34:56:78:9a:bc
+PROXY_MAC ?= 00:90:27:bb:cc:dd
 REMOTE_SSH ?=
 
 LOCAL_ADDR ?= 10.188.70.17
@@ -271,9 +272,11 @@ TARGETS += arp-proxy
 run-regress-arp-proxy: addr.py
        @echo '\n======== $@ ========'
        @echo Send ARP Request for fake address that is proxied
+       ssh -t ${REMOTE_SSH} ${SUDO} arp -s ${FAKE_ADDR} ${PROXY_MAC}
        ssh -t ${REMOTE_SSH} ${SUDO} arp -s ${FAKE_ADDR} ${FAKE_MAC} pub
        ${SUDO} ${PYTHON}arp_proxy.py
        ssh ${REMOTE_SSH} ${SUDO} arp -an >arp.log
+       ssh -t ${REMOTE_SSH} ${SUDO} arp -d ${FAKE_ADDR}
        ssh -t ${REMOTE_SSH} ${SUDO} arp -d ${FAKE_ADDR}
        grep '^${FAKE_ADDR} .* ${FAKE_MAC} .* static * p$$' arp.log
 
Index: README
===================================================================
RCS file: /cvs/src/regress/sys/netinet/arp/README,v
retrieving revision 1.2
diff -u -p -r1.2 README
--- README      23 Dec 2015 14:27:50 -0000      1.2
+++ README      21 Mar 2016 13:20:44 -0000
@@ -50,6 +50,7 @@ LOCAL_IF=tap0
 LOCAL_MAC=fe:e1:ba:d0:d5:6d
 REMOTE_MAC=70:5f:ca:21:8d:70
 FAKE_MAC=12:34:56:78:9a:bc
+PROXY_MAC=00:90:27:bb:cc:dd
 REMOTE_SSH=q70
 
 LOCAL_ADDR=10.188.70.17

Reply via email to