Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 7 Oct 2011 05:45:38 +0000 (UTC)
From:      Lawrence Stewart <lstewart@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r226088 - projects/diffused_head/sys/netinet
Message-ID:  <201110070545.p975jcwq095171@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: lstewart
Date: Fri Oct  7 05:45:38 2011
New Revision: 226088
URL: http://svn.freebsd.org/changeset/base/226088

Log:
  Add the necessary infrastructure for the DIFFUSE control raw socket, which will
  be used to communicate between userspace and the forthcoming DIFFUSE kernel
  module.
  
  Sponsored by:	FreeBSD Foundation
  Reviewed by:	bz

Modified:
  projects/diffused_head/sys/netinet/in.h
  projects/diffused_head/sys/netinet/ip_var.h
  projects/diffused_head/sys/netinet/raw_ip.c

Modified: projects/diffused_head/sys/netinet/in.h
==============================================================================
--- projects/diffused_head/sys/netinet/in.h	Fri Oct  7 05:08:08 2011	(r226087)
+++ projects/diffused_head/sys/netinet/in.h	Fri Oct  7 05:45:38 2011	(r226088)
@@ -436,6 +436,7 @@ __END_DECLS
 #define	IP_FW_TABLE_GETSIZE	43   /* get table size */
 #define	IP_FW_TABLE_LIST	44   /* list table contents */
 
+#define	IP_DIFFUSE		47   /* ipfw DIFFUSE options */
 #define	IP_FW3			48   /* generic ipfw v.3 sockopts */
 #define	IP_DUMMYNET3		49   /* generic dummynet v.3 sockopts */
 

Modified: projects/diffused_head/sys/netinet/ip_var.h
==============================================================================
--- projects/diffused_head/sys/netinet/ip_var.h	Fri Oct  7 05:08:08 2011	(r226087)
+++ projects/diffused_head/sys/netinet/ip_var.h	Fri Oct  7 05:45:38 2011	(r226088)
@@ -305,6 +305,9 @@ extern int	(*ng_ipfw_input_p)(struct mbu
 extern int	(*ip_dn_ctl_ptr)(struct sockopt *);
 extern int	(*ip_dn_io_ptr)(struct mbuf **, int, struct ip_fw_args *);
 
+/* DIFFUSE. */
+extern int	(*diffuse_ctl_ptr)(struct sockopt *);
+
 VNET_DECLARE(int, ip_do_randomid);
 #define	V_ip_do_randomid	VNET(ip_do_randomid)
 #define	ip_newid()	((V_ip_do_randomid != 0) ? ip_randomid() : \

Modified: projects/diffused_head/sys/netinet/raw_ip.c
==============================================================================
--- projects/diffused_head/sys/netinet/raw_ip.c	Fri Oct  7 05:08:08 2011	(r226087)
+++ projects/diffused_head/sys/netinet/raw_ip.c	Fri Oct  7 05:45:38 2011	(r226088)
@@ -99,6 +99,7 @@ int	(*ip_dn_io_ptr)(struct mbuf **, int,
 void	(*ip_divert_ptr)(struct mbuf *, int);
 int	(*ng_ipfw_input_p)(struct mbuf **, int,
 			struct ip_fw_args *, int);
+int	(*diffuse_ctl_ptr)(struct sockopt *);
 
 /* Hook for telling pf that the destination address changed */
 void	(*m_addr_chg_pf_p)(struct mbuf *m);
@@ -583,6 +584,13 @@ rip_ctloutput(struct socket *so, struct 
 				error = ENOPROTOOPT;
 			break ;
 
+		case IP_DIFFUSE:	/* IPFW DIFFUSE functions. */
+			if (diffuse_ctl_ptr != NULL)
+				error = diffuse_ctl_ptr(sopt);
+			else
+				error = ENOPROTOOPT;
+			break;
+
 		case MRT_INIT:
 		case MRT_DONE:
 		case MRT_ADD_VIF:
@@ -648,6 +656,13 @@ rip_ctloutput(struct socket *so, struct 
 				error = ENOPROTOOPT ;
 			break ;
 
+		case IP_DIFFUSE:	/* IPFW DIFFUSE functions. */
+			if (diffuse_ctl_ptr != NULL)
+				error = diffuse_ctl_ptr(sopt);
+			else
+				error = ENOPROTOOPT;
+			break;
+
 		case IP_RSVP_ON:
 			error = priv_check(curthread, PRIV_NETINET_MROUTE);
 			if (error != 0)



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