site_archiver@lists.apple.com Delivered-To: darwin-kernel@lists.apple.com On May 5, 2005, at 10:59 AM, chas williams - CONTRACTOR wrote: There are no plans at this time for net_add_domain and net_add_proto. We are interested in hearing about what you might need such functionality for. lets say that i needed to provide a new protocol family for something like ATM? We are considering alternatives and open to suggestions. -josh _______________________________________________ Do not post admin requests to the list. They will be ignored. Darwin-kernel mailing list (Darwin-kernel@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/darwin-kernel/site_archiver%40lists.a... This email sent to site_archiver@lists.apple.com We are aware that the socket layer provides a nice framework for interaction between a protocol implemented in the kernel and an application in user space. We were unable to provide KPIs to this functionality due to time and resource constraints. We did look at the problem a number of times and ran in to some fundamental issues with third parties extending the stack to support additional protocols. There are a number of problems with extending the stack to support a new protocol family. One problem is that there are only 255 possible address families in a sockaddr. These leaves us with 255 possible protocol families that have a corresponding address family. If you pick one of the approximately 220 unused protocol families, there is no guarantee that it won't be used by someone else. In addition to the limited number of useful protocol families, there's an issue of definitions for the various socket options, address structure, and protocols. If two third parties attempt to implement the same protocol, they may actually layout their data structures differently. This means that a developer attempting to use a third party protocol will have to compile their code for a specific implementation of another third party's protocol (such as ATM). There is also the issue of third party drivers and third party protocol families. There are already definitions for IP and IPv6 addresses shipping with the operating system. When a third party wants to ship a driver that supports IP and IPv6, all of the required data structures are already defined. If a third party was creating a driver for ATM for example and wanted to support a protocol like IPX, they would have no way to know how to interoperate with the IPX implementation. Our recommendation for Mac OS X 10.4 is to use kernel control sockets and/or unix domain sockets. smime.p7s