[comp.sys.sun] promiscuity

pvo3366@oce.orst.edu (Paul O'Neill) (07/20/89)

Hardware:	Sun 4/110
System:		SunOS 4.0.1 -- nit_if.o and nit_buf.o patches
Application:	statspy w/ patched parse.c from torben@dorsai.ics.hawaii.edu

Recently I've had problems w/ ie0 leaving promiscuous mode and not being
able to make it go promiscuous again without rebooting.  This is easily
detected by very small statspy counts and perfmeter packet displays.  You
can actually watch it happen on the perfmeter.

At first I thought it was a result of running out of streams.  This caused
bizarre crashes that could only be recovered from by power cycling.  After
building a kernel with more streams, the crashes stopped, but monogomy
remained.

Then I noticed that the interface would leave promiscous mode if
rpc.etherd was started, or etherfind was started.  Stopping/starting
rpc.etherd or etherfind or statspy didn't help.  I had to reboot to go
promiscuous again.

So I don't do that anymore.  Now I find that I will lose promiscuity if
I'm in rspy and "detach" an existing statspy object.  What's going on
here?

Does anyone know how to go promiscous again without rebooting?  Apparently
ifconfig(8c) has an undocumented switch (promisc | -promisc) that's in the
usage blurb, but not in the man page.  It doesn't seem to do anything in
this situation. (There's also a (private | -private) switch.  What does
that do?)

Thanks, folks.

Paul O'Neill                 pvo@oce.orst.edu
Coastal Imaging Lab
OSU--Oceanography
Corvallis, OR  97331         503-737-3251

pvo3366@oce.orst.edu (Paul O'Neill) (07/22/89)

Well, maybe Sun Software Service isn't a black hole.  They had this
resolved within 24 hrs. and before a single response from bytecounters or
sun-spots.

> [my questions about interaction of etherfind, statspy, & traffic on the
>   promiscuity of ie0]

----- Begin (EXTRACT OF) Included Message -----

1016994: Public Summary:
1016994:	The ifpromisc() routine of net/if.c, which handles
1016994:	transitions into and out of promiscuous mode by
1016994:	keeping track of the number of outstanding requests
1016994:	there are for the mode and calling the interface driver
1016994:	to change mode on transitions to and from zero
1016994:	has a bug that causes it to disable promiscuous
1016994:	mode whenever it is called to disable the mode and
1016994:	the number of outstanding requests for the mode is
1016994:	greater than one.
1016994:	The problem occurs only when there are more than one
1016994:	concurrent requesters for promiscuous mode for a
1016994:	particular interface (i.e. run multiple etherfind's
1016994:	on the same interface in parallel, then terminate
1016994:	one of the processes).
1016994: Hook 2:  Needs investigation in release: 4.0.4, 4.0.4c
//////////////////////////////////////////////////////////////////////

(There's also a (private | -private) switch.  What does that do?)

1010751: Public Summary:
1010751:	The `IFF_PRIVATE' flag, which can be set by `ifconfig', does not
1010751:	actually do anything.  By design, this flag should prevent the 
1010751:	propagation of routing information associated with the interface
1010751: Bug End:
/////////////////////////////////////////////////////////////////////////////

I hope this was informative.

-xxxx xxxxxxxx xxxxxxxxxxxx  (Name changed to protect the competent)


----- End (EXTRACT OF) Included Message -----


Paul O'Neill                 pvo@oce.orst.edu
Coastal Imaging Lab
OSU--Oceanography
Corvallis, OR  97331         503-737-3251