Streams IP question - where are modules acutally inserted in the IP stack?

Streams IP question - where are modules acutally inserted in the IP stack?

Post by Glenn J. Joyc » Wed, 13 Sep 2000 21:16:48



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.

Is there any good reference on the design of the Solaris 2.7 and 2.8 IP
streams?

Thanks for any information,
Glenn

 
 
 

Streams IP question - where are modules acutally inserted in the IP stack?

Post by Andrew Gabri » Thu, 14 Sep 2000 06:38:05




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
>streams?

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.

--
Andrew Gabriel
Consultant Software Engineer

 
 
 

1. Inserting streams module between IP and net driver

Hi,

I am trying to find a way to insert a streams module/driver between IP
layer and a particular net i/f. This module act as a filter based on
certain criterion.

The implementation is going to be on solaris 2.5, but I think this
is a general SVR4 type of thing.

Apparently the initial IP and net driver connections are set up
by ifconfig -plumb option.

So how do I do it using ordinary unix utilities?

Any pointers?

Thanks.

Sumandra

Organization: Auspex Systems, Santa Clara
Subject: Stream Module between IP and net i/f driver
Keywords: Streams, solaris

--
===============================================================================
"Disclaimer: This posting represents the poster's views, not those of Auspex"  
===============================================================================

2. OSR5.0.2/Dell PowerEdge 2300 install woes

3. How to insert a STREAMS module between tcp and ip?

4. Current SCO Merge / Win98

5. tcp / ip stack and ip forwarding questions

6. Swap Partition

7. How to insert a intermediate filtering driver between ethernet and TCP/IP stack

8. Netcard detect problems.

9. Solaris 5.8 ip streams module question

10. streams driver ip stack confguration

11. Want to insert a module between the TCP and IP layer on Linux

12. linux tcp/ip stack as a module...insmod problems

13. module installation in TCP/IP stack error.