Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Aug 2013 18:35:21 +0000 (UTC)
From:      Mark Murray <markm@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r254928 - in projects/random_number_generator/sys: kern net netgraph sys
Message-ID:  <201308261835.r7QIZL4j045530@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: markm
Date: Mon Aug 26 18:35:21 2013
New Revision: 254928
URL: http://svnweb.freebsd.org/changeset/base/254928

Log:
  Snapshot; Do some running repairs on entropy harvesting. More needs to follow.

Modified:
  projects/random_number_generator/sys/kern/kern_intr.c
  projects/random_number_generator/sys/net/if_ethersubr.c
  projects/random_number_generator/sys/net/if_tun.c
  projects/random_number_generator/sys/netgraph/ng_iface.c
  projects/random_number_generator/sys/sys/random.h

Modified: projects/random_number_generator/sys/kern/kern_intr.c
==============================================================================
--- projects/random_number_generator/sys/kern/kern_intr.c	Mon Aug 26 18:29:51 2013	(r254927)
+++ projects/random_number_generator/sys/kern/kern_intr.c	Mon Aug 26 18:35:21 2013	(r254928)
@@ -1147,7 +1147,7 @@ swi_sched(void *cookie, int flags)
 		entropy.event = (uintptr_t)ih;
 		entropy.td = curthread;
 		random_harvest(&entropy, sizeof(entropy), 1, 0,
-		    RANDOM_INTERRUPT);
+		    RANDOM_SWI);
 	}
 
 	/*

Modified: projects/random_number_generator/sys/net/if_ethersubr.c
==============================================================================
--- projects/random_number_generator/sys/net/if_ethersubr.c	Mon Aug 26 18:29:51 2013	(r254927)
+++ projects/random_number_generator/sys/net/if_ethersubr.c	Mon Aug 26 18:35:21 2013	(r254928)
@@ -638,9 +638,8 @@ ether_input_internal(struct ifnet *ifp, 
 			m->m_flags |= M_PROMISC;
 	}
 
-	/* First chunk of an mbuf contains good entropy */
 	if (harvest.ethernet)
-		random_harvest(m, 16, 3, 0, RANDOM_NET);
+		random_harvest(&(m->m_data), 12, 3, 0, RANDOM_NET_ETHER);
 
 	ether_demux(ifp, m);
 	CURVNET_RESTORE();

Modified: projects/random_number_generator/sys/net/if_tun.c
==============================================================================
--- projects/random_number_generator/sys/net/if_tun.c	Mon Aug 26 18:29:51 2013	(r254927)
+++ projects/random_number_generator/sys/net/if_tun.c	Mon Aug 26 18:35:21 2013	(r254928)
@@ -922,9 +922,8 @@ tunwrite(struct cdev *dev, struct uio *u
 		m_freem(m);
 		return (EAFNOSUPPORT);
 	}
-	/* First chunk of an mbuf contains good junk */
 	if (harvest.point_to_point)
-		random_harvest(m, 16, 3, 0, RANDOM_NET);
+		random_harvest(&(m->m_data), 12, 3, 0, RANDOM_NET_TUN);
 	ifp->if_ibytes += m->m_pkthdr.len;
 	ifp->if_ipackets++;
 	CURVNET_SET(ifp->if_vnet);

Modified: projects/random_number_generator/sys/netgraph/ng_iface.c
==============================================================================
--- projects/random_number_generator/sys/netgraph/ng_iface.c	Mon Aug 26 18:29:51 2013	(r254927)
+++ projects/random_number_generator/sys/netgraph/ng_iface.c	Mon Aug 26 18:35:21 2013	(r254928)
@@ -774,9 +774,8 @@ ng_iface_rcvdata(hook_p hook, item_p ite
 		m_freem(m);
 		return (EAFNOSUPPORT);
 	}
-	/* First chunk of an mbuf contains good junk */
 	if (harvest.point_to_point)
-		random_harvest(m, 16, 3, 0, RANDOM_NET);
+		random_harvest(&(m->m_data), 12, 3, 0, RANDOM_NET_NG);
 	M_SETFIB(m, ifp->if_fib);
 	netisr_dispatch(isr, m);
 	return (0);

Modified: projects/random_number_generator/sys/sys/random.h
==============================================================================
--- projects/random_number_generator/sys/sys/random.h	Mon Aug 26 18:29:51 2013	(r254927)
+++ projects/random_number_generator/sys/sys/random.h	Mon Aug 26 18:35:21 2013	(r254928)
@@ -1,5 +1,5 @@
 /*-
- * Copyright (c) 2000 Mark R. V. Murray
+ * Copyright (c) 2000-2013 Mark R. V. Murray
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -42,8 +42,11 @@ enum esource {
 	RANDOM_WRITE = 0,
 	RANDOM_KEYBOARD,
 	RANDOM_MOUSE,
-	RANDOM_NET,
+	RANDOM_NET_TUN,
+	RANDOM_NET_ETHER,
+	RANDOM_NET_NG,
 	RANDOM_INTERRUPT,
+	RANDOM_SWI,
 	RANDOM_PURE,
 	ENTROPYSOURCE
 };
@@ -57,6 +60,7 @@ struct harvest_select {
 	int point_to_point;
 	int interrupt;
 	int swi;
+	int namei;
 };
 
 extern struct harvest_select harvest;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201308261835.r7QIZL4j045530>