• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: SharedIP NKE?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: SharedIP NKE?


  • Subject: Re: SharedIP NKE?
  • From: Justin Walker <email@hidden>
  • Date: Wed, 18 Feb 2004 16:13:33 -0800

On Wednesday, February 18, 2004, at 03:25 PM, Jim Hunter wrote:

Hi Justin,

I found your reference to the SharedIP NKE very interesting.

Heh!

It sounds like it might be possible to use NKEs to insert an alternate
implementation of all or parts of the TCP/IP stack into Mac OS X (if
anyone were willing to exert the effort). Is this correct?

Nope; to add to what Josh says, it is not possible, and messing with the IP stack in this way will almost certainly void your warranty :-}. The intent of the NKE scheme is to allow developers to insert new pieces of functionality without having to tear the whole thing apart and put it back together. There are more-or-less well-defined places to do this: socket layer; above the datalink (DLIL) layer; between the DLIL and devices. You can also add protocol stacks to the kernel using related schemes. Replacing the IP stack, or modifying it, is not supported.

If so, what is the role of the SharedIP NKE in that process? Is it an
example of inserting an alternate stack implementation, or perhaps an
enabing mechanism? I searched for "SharedIP NKE" on the Apple Development
site, but didn't get any hits.

SharedIP, as Josh mentions, is a scheme to permit a user-mode process to own its own IP stack, but share the IP address (and, hence, the port numbers) with the Mac OS X kernel. It provides a way for Classic, it's primary (and only, AFAIK) client, to get datagrams in and out without messing up, or colliding with, the stacks (AppleTalk and IP) in the kernel. It sits atop the AF_NDRV 'network driver' interface, and examines in- and out-bound packets for relevance. A quick look at the code should dissuade all but the most lunatic of developers :-}.

Since I no longer work at Apple, I can only guess at the longevity of this mechanism. Believe me, it is only there because Classic is important enough to keep viable, but not important enough to warrant a wholesale re-implementation of its support for networking.

Hope that helps.

Regards,

Justin

--
Justin C. Walker, Curmudgeon-At-Large *
Institute for General Semantics | When LuteFisk is outlawed
| Only outlaws will have
| LuteFisk
*--------------------------------------*-------------------------------*
_______________________________________________
macnetworkprog mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/macnetworkprog
Do not post admin requests to the list. They will be ignored.

  • Follow-Ups:
    • Re(2): SharedIP NKE?
      • From: "Peter Lovell" <email@hidden>
References: 
 >SharedIP NKE? (From: Jim Hunter <email@hidden>)

  • Prev by Date: Re: SharedIP NKE?
  • Next by Date: extra firewall ports
  • Previous by thread: Re: SharedIP NKE?
  • Next by thread: Re(2): SharedIP NKE?
  • Index(es):
    • Date
    • Thread