Quote:>I'm investigating adding a module to the IP stream on a Solaris 2.7 and 2.8
>system. When I add a module to the IP stream, conceptually, where does it go
>in the IP stack's architecture? Is the module added above the datalink layer
>but below the network layer? Ideally, I'd like to see the IP packets after
>they have had their media framing removed on the inbound side and after
>they've been routed on the outbound side of the IP stream.
In this case, your module has to be inserted between IP and the
underlaying network drivers. Historically there has been no
supported way to do this. However, the STREAMS interface between
the network drivers and IP is a well defined interface, and
software such as IP-filter seems to do a very good and reliable
job of patching itself in to each stream between IP and a network
driver (and unpatching itself if the interface is unplumbed) over
many releases, even though it is using an unsupported feature.
Solaris 8 has added options to ifconfig to push STREAMS modules
on to network drivers under IP.
Quote:>Is there any good reference on the design of the Solaris 2.7 and 2.8 IP
The STREAMS interface under IP (between IP and network drivers) is DLPI -
Data Link Provider Interface. This is defined by the Open Group and
the spec is on their website. The STREAMS interface into the top of the
stack is TPI - Transport Provider Interface. This is also defined by
the Open Group (except the address formats - I don't know where the
address formats for each TPI protocol family are officially defined).
The internal workings of the IP driver/module is private.
Consultant Software Engineer