Re: Question on KPI / NKE : sys/select.h : struct selinfo ?
Re: Question on KPI / NKE : sys/select.h : struct selinfo ?
- Subject: Re: Question on KPI / NKE : sys/select.h : struct selinfo ?
- From: Josh Graessley <email@hidden>
- Date: Fri, 6 May 2005 11:13:45 -0700
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 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.
We are considering alternatives and open to suggestions.
Our recommendation for Mac OS X 10.4 is to use kernel control sockets
and/or unix domain sockets.
-josh
Attachment:
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden