Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 15 Nov 1996 14:30:01 +0900 (JST)
From:      seki@sysrap.cs.fujitsu.co.jp
To:        FreeBSD-gnats-submit@freebsd.org
Cc:        seki@sysrap.cs.fujitsu.co.jp
Subject:   i386/2011: Wrong stats (SNMP Dot3 MIBs) in ed driver
Message-ID:  <199611150530.OAA00358@fuzz.sysrap.cs.fujitsu.co.jp>
Resent-Message-ID: <199611150540.VAA16301@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         2011
>Category:       i386
>Synopsis:       Ed driver puts wrong value in some of its SNMP Dot3 MIBs.
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Nov 14 21:40:01 PST 1996
>Last-Modified:
>Originator:     Masahiro Sekiguchi
>Organization:
Fujitsu Limited
>Release:        FreeBSD 2.2-ALPHA i386
>Environment:

	2.2 ALPHA with any of ed compatible Ethernet cards.

>Description:

	Ed driver counts some collision-related events in SNMP Dot3 MIBs
	wrong way.

	RFC 1650 specifies that dot3StatsDeferredTRansmissions,
	dot3StatsSingleCollisionFrames, dot3StatsMultipleCollisionFrames,
	and dot3StatsExcessiveCollisions are exclusive; i.e., a frame
	may cause one of the above MIBs be incremented, but cannot
	cause two or more of the above.

	Ed driver in 2.2 ALPHA, however, increments two or more for a
	frame.  It conflicts with RFC 1650.

	For example, the definition of dot3StatsDeferredTransmissions
	in RFC 1650 says: "The count represented by an instance of this
	object does not include frames involved in collisions."  However,
	Ed in 2.2 ALPHA increments both DeferredTransmissions and
	SimgleCollisionsFrames for one single-collided frame.

    One more related note.

	RFC 1650 also says that error conditions are also exclusive.
	Currently, ed driver tests for some bits in a hardware register,
	and update error-related MIBs independently.  *If* two or more
	error bits in the register can be set for a frame, it causes
	another wrong stat.  I'm not sure it can be happen, or never
	happen due to the hardware specification.

>How-To-Repeat:

	Transmit an Ethernet frame through an ed compatible card, and
	make it collide.

>Fix:
	
	The following is a suggested patch to sys/i386/isa/if_ed.c.

	This patch fixes bugs on collision-related stats.  Handling of
	error related MIBs are not touched.

--- cut here ---

--- if_ed.c.orig	Thu Oct 17 22:42:13 1996
+++ if_ed.c	Fri Nov 15 13:58:29 1996
@@ -2410,7 +2410,6 @@
 					 * TSR_ABT is set.
 					 */
 					collisions = 16;
-					sc->mibdata.dot3StatsMultipleCollisionFrames++;
 					sc->mibdata.dot3StatsExcessiveCollisions++;
 					sc->mibdata.dot3StatsCollFrequencies[15]++;
 				}
@@ -2458,12 +2457,10 @@
 				break;
 			case 1:
 				sc->mibdata.dot3StatsSingleCollisionFrames++;
-				sc->mibdata.dot3StatsDeferredTransmissions++;
 				sc->mibdata.dot3StatsCollFrequencies[0]++;
 				break;
 			default:
 				sc->mibdata.dot3StatsMultipleCollisionFrames++;
-				sc->mibdata.dot3StatsDeferredTransmissions++;
 				sc->mibdata.
 					dot3StatsCollFrequencies[collisions-1]
 						++;
	MIBs 
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199611150530.OAA00358>