[comp.sys.sgi] Use of snoop

mark@alias.UUCP (Mark Andrews) (02/07/90)

I have been playing with the snoop(7P) protocol on a variety of
4D's (4D/60,70, 20, 25) running Irix 3.2. My program was constructed
using the examples in the manual page:

   #include <sys/types.h>
   #include <net/raw.h>
   #include <netinet/if_ether.h>
   
   #define ETHERHDRPAD	  RAW_HDRPAD(sizeof(struct ether_header))
   
   struct etherpacket {
   	struct snoopheader	  snoop;
   	char			  pad[ETHERHDRPAD];
   	struct ether_header	  ether;
   	char			  data[ETHERMTU];
   };
   
   main()
   {
   	int s;
   	struct sockaddr_raw sr;
   	struct snoopfilter sf;
   	struct etherpacket ep;
   	int cc, on = 1;
   
   	s = socket(AF_RAW, SOCK_RAW, RAWPROTO_SNOOP);
   	bzero(sr.sr_ifname, RAW_IFNAMSIZ);
   /*
    * If the family is not set (not specified in manual page), bind
    * fails due to unsupported address family.
    */
   	sr.sr_family = AF_RAW;
   	sr.sr_port = 0;
   	if (bind(s, &sr, sizeof sr) < 0)
   	{
   		/* Error */
   	}
   
   	bzero((char *) &sf, sizeof sf);
   	if (ioctl(s, SIOCADDSNOOP, (struct snoopfilter *)&sf) < 0)
   	{
   		perror("Adding snoop filter");
   		exit(1);
   	}


	< .... >

-----------------------------------------------------------------------------

When the program attempts to add the snoopfilter to the socket, the ioctl()
fails with the error ``Invalid argument'' and the following message appears
on the console of the machine (4D/80S in this case):

	enp0: promisc. mode failed: no firmware support

Is this going to be fixed on a future release ? I was hoping to use some
of the above code to port tcpdump to Irix.

------------------------------------------------------------------------------
	Mark Andrews
	Systems Programmer,
	Alias Research,
	Toronto, Canada
Phone:	(416)-362-9181
UUCP:	mark%alias@csri.utoronto.ca

jweldon@renegade.sgi.com (Jack Weldon) (02/09/90)

In article <739@alias.UUCP> mark@alias.UUCP (Mark Andrews) writes:
>
>I have been playing with the snoop(7P) protocol on a variety of
>
>When the program attempts to add the snoopfilter to the socket, the ioctl()
>fails with the error ``Invalid argument'' and the following message appears
>on the console of the machine (4D/80S in this case):
>
>	enp0: promisc. mode failed: no firmware support
>
>Is this going to be fixed on a future release ? I was hoping to use some
>of the above code to port tcpdump to Irix.
>
If your system is under a support contract, contact the Geometry Hotline
and request that the newer PROMS be installed in your 4D{50,60,70,80}.
These PROMS support both snoop and 4DDN protocols. The information is
contained in FB 87 (Field Bulletin 87). This is only required in CMC (enpX)
boards found in the above machines.  Neither the PI or the GTX series
requires this type of upgrade--the newer PROM support is already installed.
If you are curious as to whether your machine has the newer PROM installed,
run 'hinv' from a shell. The correct output will show version 4 (SGI) PROMS:

CMC ENP-10 Ethernet controller 0, firmware version 4 (SGI)

Before all of the readers of this newsgroup go and call for PROM upgrades,
please realize that this is not required for normal ethernet operation, but
is required for snoop or 4DDN use.  Future tools based on snoop may also
require the upgrade, which will be fully documented in Release Notes if it
IS required.

Hope this helps.

Cheers, 

Jack P. Weldon (jweldon@sgi.com)     Fish and guests grow stale after 3 days
SGI Product Support		                           M.F.K. Fisher

jweldon@renegade.sgi.com (Jack Weldon) (02/09/90)

In article <3797@odin.SGI.COM> jweldon@renegade.sgi.com (Jack Weldon) writes:
>>
>>on the console of the machine (4D/80S in this case):
>>
>>	enp0: promisc. mode failed: no firmware support
>>
>>
>If your system is under a support contract, contact the Geometry Hotline
>and request that the newer PROMS be installed in your 4D{50,60,70,80}.
>These PROMS support both snoop and 4DDN protocols. The information is
>contained in FB 87 (Field Bulletin 87). This is only required in CMC (enpX)
>boards found in the above machines.  Neither the PI or the GTX series
>requires this type of upgrade--the newer PROM support is already installed.
>If you are curious as to whether your machine has the newer PROM installed,
>run 'hinv' from a shell. The correct output will show version 4 (SGI) PROMS:
>
>CMC ENP-10 Ethernet controller 0, firmware version 4 (SGI)
>
>Before all of the readers of this newsgroup go and call for PROM upgrades,
>please realize that this is not required for normal ethernet operation, but
>is required for snoop or 4DDN use.  Future tools based on snoop may also
>require the upgrade, which will be fully documented in Release Notes if it
>IS required.
>
An SGI development engineer dropped me a note asking me to clarify the 
above statement, so here goes:

You do not need to upgrade ANY firmware/PROMs in your ethernet board unless
your machine has CMC ENP-10 Ethernet Cards in it and they are of Revision 0.
It is possible that a PI or a GTX could have  a CMC ENP-10 as a 
secondary/"gateway" board.  In his words:

"only if you have a CMC ENP-10 (interface name enp<unit#>) and you want to
snoop or do 4DDN and hinv says revision 0" do you need an upgrade. If they 
want to snoop on all interfaces, they will need to upgrade down-rev CMC proms."

Hope this clarifies things.

Cheers, 

Jack P. Weldon (jweldon@sgi.com)     Fish and guests grow stale after 3 days
SGI Product Support		                           M.F.K. Fisher