Home | History | Annotate | only in /src/tests/net/icmp
History log of /src/tests/net/icmp
RevisionDateAuthorComments
 1.2 13-Jul-2010  jmmv Get rid of static Atffiles and let bsd.test.mk generate them on the fly.
 1.1 04-Jul-2010  pooka Add test case for PR kern/43548

Due to the nature of the feature under test, this one is a little
different, so let me explain how it works.

The test program forks and bootstraps a rump kernel in both processes.
It then configures shared memory interfaces in both. shmif is nice
in that it uses a mmaped file as the bus and does not require root
privileges for communication between two (or more) processes. The
child process then proceeds to increase icmp.returndatabytes as
indicated by the PR, while the parent process sets the global TTL
of the rump kernel to 1 (note: both values only affect the respective
rump kernels, not each other or more importantly the host kernel).
The parent then sends the bad packet which is supposed to be routed
by the child. If ip_icmp.c was too old, *boom* + fail; otherwise
nothing bad happens and the test exists with success after one
second.

Eventually this test can be extended into a framework for automated
testing of any networking code which requires (arbitrarily complex)
routing setups.
 1.12 01-Mar-2020  christos Centralize the base rump libraries into a variable used by all the other
Makefiles so that we can make changes to it centrally as needed and have
less mess. Fixes the sun2 build that needs rumpvfs after librump after
the latest changes.
 1.11 01-Jun-2019  kre Deal with fallout from the addition of
KERN_PROC_CWD in sysctl(3)
That is kern.proc.$$.KERN_PROC_CWD (I think - not that it matters here)

The effect is that -lrump now requires -lrumpvfs

This set of changes fixes (I believe) regular dynamic builds,
more might be required for static builds (will be verified soon).
 1.10 13-May-2019  bad Get rid of all the -lrumpdev and -lrumpvfs that are no longer needed
after moving rump's mainbus from rumpdev to rumpkern.

Produces the same atf-run results as before.
 1.9 24-Nov-2016  ozaki-r branches: 1.9.14;
Move get_lladdr to net_common.sh
 1.8 08-Aug-2016  pgoyette And this one also needs librumpvfs
 1.7 08-Aug-2016  pgoyette More need for librumpdev
 1.6 14-Sep-2015  ozaki-r branches: 1.6.2;
Add tests for IPv6 ICMP redirect

Note that tests for redirect timeout doesn't work for now due to
PR kern/50240.

From s-yamaguchi@IIJ (with some fixes and tweaks by ozaki-r)
 1.5 31-Aug-2015  ozaki-r Add tests for ICMP redirect timeout
 1.4 10-Jun-2014  he Fix static linking for the tests: -lrump is also used by -lrumpuser,
so we also need -lrump after -lrumpuser. Fixes build for sun2.
 1.3 14-Dec-2010  pooka branches: 1.3.12; 1.3.22;
Add another version of the simple ping test, this time written as a
shell script and using rump_server, rump.ifconfig and rump.ping.

XXX: uses rump_allserver for now, though, since i noticed a problem
where the rump kernel syscall vector does not get updated for
dlopen()'d libraries (and hence if you dlopen librumpnet.so, socket()
still gives ENOSYS). Me be fixink it later.
 1.2 09-Aug-2010  pooka test that kernel reponds to ping
 1.1 04-Jul-2010  pooka Add test case for PR kern/43548

Due to the nature of the feature under test, this one is a little
different, so let me explain how it works.

The test program forks and bootstraps a rump kernel in both processes.
It then configures shared memory interfaces in both. shmif is nice
in that it uses a mmaped file as the bus and does not require root
privileges for communication between two (or more) processes. The
child process then proceeds to increase icmp.returndatabytes as
indicated by the PR, while the parent process sets the global TTL
of the rump kernel to 1 (note: both values only affect the respective
rump kernels, not each other or more importantly the host kernel).
The parent then sends the bad packet which is supposed to be routed
by the child. If ip_icmp.c was too old, *boom* + fail; otherwise
nothing bad happens and the test exists with success after one
second.

Eventually this test can be extended into a framework for automated
testing of any networking code which requires (arbitrarily complex)
routing setups.
 1.3.22.1 10-Aug-2014  tls Rebase.
 1.3.12.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.6.2.1 07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.9.14.2 08-Apr-2020  martin Merge changes from current as of 20200406
 1.9.14.1 10-Jun-2019  christos Sync with HEAD
 1.10 13-Jan-2017  christos Don't play with "../.." in includes for h_macros.h; deal with it centrally.
Minor fixes.
 1.9 26-Feb-2015  martin branches: 1.9.2;
Do not use artificial low timeouts - slow machines might be still paging
in all the rump environment. Bump timeout from 4 seconds to 20 (my shark
needs ~9).
 1.8 18-Mar-2012  jruoho Move more PR references from comments to ATF's "descr".
 1.7 07-Nov-2010  jmmv branches: 1.7.6;
Adjusts tests after import of atf-0.12:

- The use.fs property is gone.
- Mark the tests/fs/t_create:attrs test as broken when using the default
unprivileged-user:_atf setting. This probably deserves a fix somehow
but I'm not sure at this point.
 1.6 03-Nov-2010  christos add Makefile.inc everywhere so that we can set WARNS=4 by default. Amazing
how many bugs this found :-)
 1.5 26-Jul-2010  pooka Remove stuff handled by common code now.
 1.4 26-Jul-2010  pooka Calculate broadcast IP instead of requiring it as a config parameter.
 1.3 25-Jul-2010  pooka make interface/routing configuration a bit more generic
 1.2 18-Jul-2010  pooka fix routine name in error message
 1.1 04-Jul-2010  pooka Add test case for PR kern/43548

Due to the nature of the feature under test, this one is a little
different, so let me explain how it works.

The test program forks and bootstraps a rump kernel in both processes.
It then configures shared memory interfaces in both. shmif is nice
in that it uses a mmaped file as the bus and does not require root
privileges for communication between two (or more) processes. The
child process then proceeds to increase icmp.returndatabytes as
indicated by the PR, while the parent process sets the global TTL
of the rump kernel to 1 (note: both values only affect the respective
rump kernels, not each other or more importantly the host kernel).
The parent then sends the bad packet which is supposed to be routed
by the child. If ip_icmp.c was too old, *boom* + fail; otherwise
nothing bad happens and the test exists with success after one
second.

Eventually this test can be extended into a framework for automated
testing of any networking code which requires (arbitrarily complex)
routing setups.
 1.7.6.1 17-Apr-2012  yamt sync with head
 1.9.2.1 20-Mar-2017  pgoyette Sync with HEAD
 1.8 26-May-2017  ozaki-r Change the default value of DEBUG of stable tests to false
 1.7 25-Nov-2016  ozaki-r Share rump_server start/stop and interface creation/destruction functions

The common functions store socks of rump_servers, interfaces of rump_servers
and buses that intefaces connect and allow to destroy them with common
functions without specifying which socks, interfaces and buses we should
destroy.

This change reduces lots of similar setup/cleanup codes.
 1.6 24-Nov-2016  ozaki-r Move get_lladdr to net_common.sh
 1.5 07-Nov-2016  ozaki-r Accept DEBUG environment variable

By doing so, we can easily turn DEBUG on/off without modifying
the ATF scripts.
 1.4 20-Oct-2016  ozaki-r Make test names self-descriptive
 1.3 02-Oct-2016  kre More adaptation to changed ifconfig output format.
 1.2 10-Aug-2016  kre + -lrumpdev
 1.1 14-Sep-2015  ozaki-r branches: 1.1.2;
Add tests for IPv6 ICMP redirect

Note that tests for redirect timeout doesn't work for now due to
PR kern/50240.

From s-yamaguchi@IIJ (with some fixes and tweaks by ozaki-r)
 1.1.2.2 07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.1.2.1 04-Nov-2016  pgoyette Sync with HEAD
 1.6 25-Nov-2016  ozaki-r Share rump_server start/stop and interface creation/destruction functions

The common functions store socks of rump_servers, interfaces of rump_servers
and buses that intefaces connect and allow to destroy them with common
functions without specifying which socks, interfaces and buses we should
destroy.

This change reduces lots of similar setup/cleanup codes.
 1.5 24-Nov-2016  ozaki-r Move route check functions to net_common.sh
 1.4 07-Nov-2016  ozaki-r Accept DEBUG environment variable

By doing so, we can easily turn DEBUG on/off without modifying
the ATF scripts.
 1.3 10-Aug-2016  kre + -lrumpdev
 1.2 25-Dec-2015  ozaki-r branches: 1.2.2;
Add some tests for sysctl net.inet.ip.*

- net.inet.ip.redirect
- net.inet.ip.directed-broadcast (and net.inet.icmp.bmcastecho)
- net.inet.ip.ttl

From suzu-ken@IIJ (with tweaks by me)
 1.1 31-Aug-2015  ozaki-r Add tests for ICMP redirect timeout
 1.2.2.1 07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.24 11-Jun-2019  gson In the "got %d/%d" message printed at the end of the pingsize test,
make the latter number show the actual number of ICMP packets the test
attempted to send. Thus, the two numbers can now be meaningfully
compared, and their difference indicates the number of packets lost.
 1.23 26-Mar-2018  roy branches: 1.23.2;
Handle errors better.
Fix test for checking we sent all the data we asked to.
 1.22 24-Mar-2018  roy Allow a valid sendto .... duh
 1.21 24-Mar-2018  kamil Fix a printf(3)-like format in ATF ICMP t_ping.c

Use %zd for ssize_t, instead of %d.
 1.20 23-Mar-2018  roy Note value received. Harden another sendto for ENOBUFS.
 1.19 22-Mar-2018  roy Handle ENOBUFS in sendto
 1.18 22-Mar-2018  roy Handle ENOBUFS in recv
 1.17 13-Jan-2017  christos branches: 1.17.6; 1.17.12;
Don't play with "../.." in includes for h_macros.h; deal with it centrally.
Minor fixes.
 1.16 26-Feb-2015  martin branches: 1.16.2;
Bump timeout to 20 seconds for slower machines.
 1.15 04-Sep-2012  alnsn Replace usleep(500000) with a synchronization over a pipe.
 1.14 26-Jun-2011  christos branches: 1.14.2;
fix fallout from including signal.h from rump_syscallargs.h
 1.13 05-Jan-2011  martin Use raw buffer size (not aligned value) to limit packet size
 1.12 05-Jan-2011  martin Fix alignment of sndbuf (sparc64 got a SIGBUS in this test)
 1.11 07-Nov-2010  jmmv Adjusts tests after import of atf-0.12:

- The use.fs property is gone.
- Mark the tests/fs/t_create:attrs test as broken when using the default
unprivileged-user:_atf setting. This probably deserves a fix somehow
but I'm not sure at this point.
 1.10 03-Nov-2010  christos make that u_int, because it is passed as a socket option.
 1.9 03-Nov-2010  christos add Makefile.inc everywhere so that we can set WARNS=4 by default. Amazing
how many bugs this found :-)
 1.8 26-Aug-2010  pooka setsockopt() wants int instead of size_t. Should fix this on LP64.
 1.7 23-Aug-2010  pooka Add a delay between startup of pinger and pingee here too.

XXX: there's apparently some race condition which appears to trigger
if a broadcast arp arrives around the same time as the arpwhohas
is sent. This causes original packet to never be sent by the
arpwhohas requestor. If this rings a bell to someone, please let
me know.
 1.6 18-Aug-2010  pooka .. put a timeout here just in case the receive does not increase
the counter.
 1.5 18-Aug-2010  pooka Add a test for the "ping of death". Declare the test a success
when the receiver increases the "ip toolong" stat counter.
 1.4 18-Aug-2010  pooka send pings in ascending order
 1.3 18-Aug-2010  pooka Add a two-way floodping test and a test which sends icmp echos with
various sizes.
 1.2 17-Aug-2010  pooka add a test which floodpings another host
 1.1 09-Aug-2010  pooka test that kernel reponds to ping
 1.14.2.1 30-Oct-2012  yamt sync with head
 1.16.2.1 20-Mar-2017  pgoyette Sync with HEAD
 1.17.12.1 30-Mar-2018  pgoyette Resolve conflicts between branch and HEAD
 1.17.6.2 10-Apr-2018  martin Additionally pull up the following revision for ticket #724:

tests/net/icmp/t_ping.c 1.21

Fix a printf(3)-like format in ATF ICMP t_ping.c
 1.17.6.1 09-Apr-2018  bouyer Pull up following revision(s) (requested by roy in ticket #724):
tests/net/icmp/t_ping.c: revision 1.19
sys/netinet6/raw_ip6.c: revision 1.166
sys/netinet6/ip6_input.c: revision 1.195
sys/net/raw_usrreq.c: revision 1.59
sys/sys/socketvar.h: revision 1.151
sys/kern/uipc_socket2.c: revision 1.128
tests/lib/libc/sys/t_recvmmsg.c: revision 1.2
lib/libc/sys/recv.2: revision 1.38
sys/net/rtsock.c: revision 1.239
sys/netinet/udp_usrreq.c: revision 1.246
sys/netinet6/icmp6.c: revision 1.224
tests/net/icmp/t_ping.c: revision 1.20
sys/netipsec/keysock.c: revision 1.63
sys/netinet/raw_ip.c: revision 1.172
sys/kern/uipc_socket.c: revision 1.260
tests/net/icmp/t_ping.c: revision 1.22
sys/kern/uipc_socket.c: revision 1.261
tests/net/icmp/t_ping.c: revision 1.23
sys/netinet/ip_mroute.c: revision 1.155
sbin/route/route.c: revision 1.159
sys/netinet6/ip6_mroute.c: revision 1.123
sys/netatalk/ddp_input.c: revision 1.31
sys/netcan/can.c: revision 1.3
sys/kern/uipc_usrreq.c: revision 1.184
sys/netinet6/udp6_usrreq.c: revision 1.138
tests/net/icmp/t_ping.c: revision 1.18
socket: report receive buffer overflows
Add soroverflow() which increments the overflow counter, sets so_error
to ENOBUFS and wakes the receive socket up.
Replace all code that manually increments this counter with soroverflow().
Add soroverflow() to raw_input().
This allows userland to detect route(4) overflows so it can re-sync
with the current state.
socket: clear error even when peeking
The error has already been reported and it's pointless requiring another
recv(2) call just to clear it.
socket: remove now incorrect comment that so_error is only udp
As it can be affected by route(4) sockets which are raw.
rtsock: log dropped messages that we cannot report to userland
Handle ENOBUFS when receiving messages.
Don't send messages if the receiver has died.
Sprinkle more soroverflow().
Handle ENOBUFS in recv
Handle ENOBUFS in sendto
Note value received. Harden another sendto for ENOBUFS.
Handle the routing socket overflowing gracefully.
Allow a valid sendto .... duh
Handle errors better.
Fix test for checking we sent all the data we asked to.
 1.23.2.1 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.6 13-May-2019  bad Get rid of all the -lrumpdev and -lrumpvfs that are no longer needed
after moving rump's mainbus from rumpdev to rumpkern.

Produces the same atf-run results as before.
 1.5 10-Aug-2016  kre branches: 1.5.14;

+ -lrumpdev
 1.4 30-Dec-2010  pooka Substitute a surgical rump_server configuration for rump_allserver
now that it's possible. With warm fs cache, the startup time of
the former is 0.01s and the latter 0.1s. With cold caches it's
0.2s vs 2s.
 1.3 18-Dec-2010  pooka atf-check => atf_check
 1.2 14-Dec-2010  pooka use ping -n, since technically we don't have dns
 1.1 14-Dec-2010  pooka Add another version of the simple ping test, this time written as a
shell script and using rump_server, rump.ifconfig and rump.ping.

XXX: uses rump_allserver for now, though, since i noticed a problem
where the rump kernel syscall vector does not get updated for
dlopen()'d libraries (and hence if you dlopen librumpnet.so, socket()
still gives ENOSYS). Me be fixink it later.
 1.5.14.1 10-Jun-2019  christos Sync with HEAD

RSS XML Feed