Module Name: src Committed By: ozaki-r Date: Tue Feb 25 03:24:48 UTC 2020
Modified Files: src/sys/rump/net/lib/libshmif: if_shmem.c Log Message: shmif: use cprng_strong64 instead of cprng_fast64 to generate a unique ID shmif uses random bytes generated by cprng(9) as a unique device ID between rump kernels to identify packets fed by itself and not receive them. So if generated bytes are identical between shmif interfaces on different rump kernels, shmif may drop incoming packets unintentionally. This is one cause of recent ATF test failures of IPsec. Fix it by using cprng_strong64 instead of cprng_fast64. This is a workaround and we should also investigate why cprng_fast64 starts failing on rump kernels, although using cprng_strong64 in initialization itself is feasible. Fix PR kern/54897 To generate a diff of this commit: cvs rdiff -u -r1.78 -r1.79 src/sys/rump/net/lib/libshmif/if_shmem.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/rump/net/lib/libshmif/if_shmem.c diff -u src/sys/rump/net/lib/libshmif/if_shmem.c:1.78 src/sys/rump/net/lib/libshmif/if_shmem.c:1.79 --- src/sys/rump/net/lib/libshmif/if_shmem.c:1.78 Thu Feb 20 08:06:15 2020 +++ src/sys/rump/net/lib/libshmif/if_shmem.c Tue Feb 25 03:24:48 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: if_shmem.c,v 1.78 2020/02/20 08:06:15 ozaki-r Exp $ */ +/* $NetBSD: if_shmem.c,v 1.79 2020/02/25 03:24:48 ozaki-r Exp $ */ /* * Copyright (c) 2009, 2010 Antti Kantee. All Rights Reserved. @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_shmem.c,v 1.78 2020/02/20 08:06:15 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_shmem.c,v 1.79 2020/02/25 03:24:48 ozaki-r Exp $"); #include <sys/param.h> #include <sys/atomic.h> @@ -172,7 +172,7 @@ allocif(int unit, struct shmif_sc **scp) sc = kmem_zalloc(sizeof(*sc), KM_SLEEP); sc->sc_memfd = -1; sc->sc_unit = unit; - sc->sc_uuid = cprng_fast64(); + sc->sc_uuid = cprng_strong64(); ifp = &sc->sc_ec.ec_if;