From owner-svn-src-projects@FreeBSD.ORG Fri Oct 7 05:45:39 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3BD17106564A; Fri, 7 Oct 2011 05:45:39 +0000 (UTC) (envelope-from lstewart@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 221BB8FC0C; Fri, 7 Oct 2011 05:45:39 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p975jdlp095175; Fri, 7 Oct 2011 05:45:39 GMT (envelope-from lstewart@svn.freebsd.org) Received: (from lstewart@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p975jcwq095171; Fri, 7 Oct 2011 05:45:38 GMT (envelope-from lstewart@svn.freebsd.org) Message-Id: <201110070545.p975jcwq095171@svn.freebsd.org> From: Lawrence Stewart Date: Fri, 7 Oct 2011 05:45:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226088 - projects/diffused_head/sys/netinet X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 07 Oct 2011 05:45:39 -0000 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)