svn commit: r191126 - in head: . sys/netinet sys/sys

Kip Macy kmacy at FreeBSD.org
Wed Apr 15 22:09:44 UTC 2009


Author: kmacy
Date: Wed Apr 15 22:09:42 2009
New Revision: 191126
URL: http://svn.freebsd.org/changeset/base/191126

Log:
  - add second flags field to to inpcb
  - update comments in vflag

Modified:
  head/UPDATING
  head/sys/netinet/in_pcb.h
  head/sys/sys/param.h

Modified: head/UPDATING
==============================================================================
--- head/UPDATING	Wed Apr 15 21:39:56 2009	(r191125)
+++ head/UPDATING	Wed Apr 15 22:09:42 2009	(r191126)
@@ -23,6 +23,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 8.
 	ln -s aj /etc/malloc.conf.)
 
 20090415:
+	Anticipate overflowing inp_flags - add inp_flags2. 
+	This changes most offsets in inpcb, so checking v4 connection
+	state will require a world rebuild. 
+	Bump __FreeBSD_version to 800080.
+20090415:
 	Add an llentry to struct route and struct route_in6. Modules
 	embedding a struct route will need to be recompiled. 
 	Bump __FreeBSD_version to 800079.

Modified: head/sys/netinet/in_pcb.h
==============================================================================
--- head/sys/netinet/in_pcb.h	Wed Apr 15 21:39:56 2009	(r191125)
+++ head/sys/netinet/in_pcb.h	Wed Apr 15 22:09:42 2009	(r191126)
@@ -163,6 +163,7 @@ struct inpcb {
 	struct	ucred	*inp_cred;	/* (c) cache of socket cred */
 	u_int32_t inp_flow;		/* (i) IPv6 flow information */
 	int	inp_flags;		/* (i) generic IP/datagram flags */
+	int	inp_flags2;		/* (i) generic IP/datagram flags #2*/
 	u_char	inp_vflag;		/* (i) IP version flag (v4/v6) */
 	u_char	inp_ip_ttl;		/* (i) time to live proto */
 	u_char	inp_ip_p;		/* (c) protocol proto */
@@ -380,16 +381,14 @@ void 	inp_4tuple_get(struct inpcb *inp, 
 	(ntohs((lport)) & (mask))
 
 /*
- * Flags for inp_vflags -- historically version flags only, but now quite a
- * bit more due to an overflow of inp_flag, leading to some locking ambiguity
- * as some bits are stable from initial allocation, and others may change.
+ * Flags for inp_vflags -- historically version flags only
  */
 #define	INP_IPV4	0x1
 #define	INP_IPV6	0x2
 #define	INP_IPV6PROTO	0x4		/* opened under IPv6 protocol */
 
 /*
- * Flags for inp_flag.
+ * Flags for inp_flags.
  */
 #define	INP_RECVOPTS		0x00000001 /* receive incoming IP options */
 #define	INP_RECVRETOPTS		0x00000002 /* receive IP options for reply */
@@ -431,6 +430,10 @@ void 	inp_4tuple_get(struct inpcb *inp, 
 				 IN6P_TCLASS|IN6P_AUTOFLOWLABEL|IN6P_RFC2292|\
 				 IN6P_MTU)
 
+/*
+ * Flags for inp_flags2.
+ */
+
 #define	INPLOOKUP_WILDCARD	1
 #define	sotoinpcb(so)	((struct inpcb *)(so)->so_pcb)
 #define	sotoin6pcb(so)	sotoinpcb(so) /* for KAME src sync over BSD*'s */

Modified: head/sys/sys/param.h
==============================================================================
--- head/sys/sys/param.h	Wed Apr 15 21:39:56 2009	(r191125)
+++ head/sys/sys/param.h	Wed Apr 15 22:09:42 2009	(r191126)
@@ -57,7 +57,7 @@
  *		is created, otherwise 1.
  */
 #undef __FreeBSD_version
-#define __FreeBSD_version 800079	/* Master, propagated to newvers */
+#define __FreeBSD_version 800080	/* Master, propagated to newvers */
 
 #ifndef LOCORE
 #include <sys/types.h>


More information about the svn-src-all mailing list