Module Name: src Committed By: christos Date: Mon Mar 8 20:01:54 UTC 2021
Modified Files: src/sys/net/npf: npf_ext_normalize.c src/sys/netinet: in_var.h Log Message: reinstate a simple version of ip_randomid() To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 src/sys/net/npf/npf_ext_normalize.c cvs rdiff -u -r1.100 -r1.101 src/sys/netinet/in_var.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/net/npf/npf_ext_normalize.c diff -u src/sys/net/npf/npf_ext_normalize.c:1.10 src/sys/net/npf/npf_ext_normalize.c:1.11 --- src/sys/net/npf/npf_ext_normalize.c:1.10 Sat May 30 10:16:56 2020 +++ src/sys/net/npf/npf_ext_normalize.c Mon Mar 8 15:01:54 2021 @@ -26,7 +26,7 @@ #ifdef _KERNEL #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: npf_ext_normalize.c,v 1.10 2020/05/30 14:16:56 rmind Exp $"); +__KERNEL_RCSID(0, "$NetBSD: npf_ext_normalize.c,v 1.11 2021/03/08 20:01:54 christos Exp $"); #include <sys/types.h> #include <sys/module.h> @@ -114,7 +114,7 @@ npf_normalize_ip4(npf_cache_t *npc, npf_ if (np->n_random_id) { uint16_t oid = ip->ip_id, nid; - nid = htons(ip_randomid(ip_ids, 0)); + nid = ip_randomid(); cksum = npf_fixup16_cksum(cksum, oid, nid); ip->ip_id = nid; } Index: src/sys/netinet/in_var.h diff -u src/sys/netinet/in_var.h:1.100 src/sys/netinet/in_var.h:1.101 --- src/sys/netinet/in_var.h:1.100 Mon Mar 8 13:03:25 2021 +++ src/sys/netinet/in_var.h Mon Mar 8 15:01:54 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: in_var.h,v 1.100 2021/03/08 18:03:25 christos Exp $ */ +/* $NetBSD: in_var.h,v 1.101 2021/03/08 20:01:54 christos Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -450,6 +450,14 @@ int ipflow_fastforward(struct mbuf *); extern uint16_t ip_id; extern int ip_do_randomid; +static __inline uint16_t +ip_randomid(void) +{ + + uint16_t id = (uint16_t)cprng_fast32(); + return id ? id : 1; +} + /* * ip_newid_range: "allocate" num contiguous IP IDs. * @@ -462,8 +470,7 @@ ip_newid_range(const struct in_ifaddr *i if (ip_do_randomid) { /* XXX ignore num */ - id = (uint16_t)cprng_fast32(); - return id ? id : 1; + return ip_randomid(); } /* Never allow an IP ID of 0 (detect wrap). */