Clearing network errors

  • Follow


There is a utility that we use in our operations that clears network
input/output and collision counts.  This utility is called "ndstat".
It runs in unixware and openserver.  Is anyone aware of a utility that
will let me clear error counts under the Solaris OS?

0
Reply dyelacic (1) 7/15/2005 2:26:52 PM

In article <1121437612.827771.52000@z14g2000cwz.googlegroups.com>,
 "dano" <dyelacic@yahoo.com> wrote:

> There is a utility that we use in our operations that clears network
> input/output and collision counts.  This utility is called "ndstat".
> It runs in unixware and openserver.  Is anyone aware of a utility that
> will let me clear error counts under the Solaris OS?

Yeah, it's called a reboot.  AFAIK, you can't clear the netstat error 
counters any other way.

-- 
DeeDee, don't press that button!  DeeDee!  NO!  Dee...



0
Reply Michael 7/15/2005 3:47:50 PM


dano wrote:
> There is a utility that we use in our operations that clears network
> input/output and collision counts.  This utility is called "ndstat".
> It runs in unixware and openserver.  Is anyone aware of a utility that
> will let me clear error counts under the Solaris OS?
> 
Since the stats can be shown with kstat (/dev/kmem), I suppose you
could clear them using kmdb if you knew where to poke.
Perhaps a kernel/kmdb guru could offer advice.  If I have
	kstat -p elxl:0:elxl0:|grep err
	elxl:0:elxl0:align_errors       0
	elxl:0:elxl0:carrier_errors     10
	elxl:0:elxl0:fcs_errors 0
	elxl:0:elxl0:ierrors    0
	elxl:0:elxl0:macrcv_errors      0
	elxl:0:elxl0:macxmt_errors      0
	elxl:0:elxl0:oerrors    0
	elxl:0:elxl0:runt_errors        0
	elxl:0:elxl0:sqe_errors 0
	elxl:0:elxl0:toolong_errors     0

and want to reset "carrier_errors" what kadb incantation
would do the job?
0
Reply Robert 7/15/2005 4:01:12 PM

Thanks for the input.  I have test equipment I can try this on.

0
Reply dano 7/15/2005 7:16:34 PM

Michael Vilain <vilain@spamcop.net> writes:
> In article <1121437612.827771.52000@z14g2000cwz.googlegroups.com>,
>  "dano" <dyelacic@yahoo.com> wrote:
> 
> > There is a utility that we use in our operations that clears network
> > input/output and collision counts.  This utility is called "ndstat".
> > It runs in unixware and openserver.  Is anyone aware of a utility that
> > will let me clear error counts under the Solaris OS?
> 
> Yeah, it's called a reboot.  AFAIK, you can't clear the netstat error 
> counters any other way.

Unplumbing and replumbing the interface with 'ifconfig' will do the
job.

We used to have an undocumented option in 'netstat' that would clear
network interface counters, but we removed it because it's just a bad
idea.  For one thing, it breaks SNMP, where counters are not permitted
to be reset without an engine restart.

-- 
James Carlson, KISS Network                    <james.d.carlson@sun.com>
Sun Microsystems / 1 Network Drive         71.232W   Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757   42.496N   Fax +1 781 442 1677
0
Reply James 7/18/2005 10:44:42 AM

Robert Lawhead <news0000.5.unixguru@spamgourmet.com> writes:
> Since the stats can be shown with kstat (/dev/kmem), I suppose you

Kstat isn't /dev/kmem.  It's actually /dev/kstat.  And it doesn't
necessarily allow all values to be reset.

> could clear them using kmdb if you knew where to poke.

Kmdb isn't kstat.

> and want to reset "carrier_errors" what kadb incantation
> would do the job?

There might not even necessarily be a way to do that.  There's no easy
way to tell without having source code.  Unfortunately (;-]), Open
Solaris fixes that particular problem.

elxl (as you're referencing) is a GLD-based driver.  You'll need to
follow the pointers down to the driver's private glds_t structure and
write to glds_nocarrier.

Good luck.  I wouldn't recommend doing this.  It's not as though it'd
be supported.

-- 
James Carlson, KISS Network                    <james.d.carlson@sun.com>
Sun Microsystems / 1 Network Drive         71.232W   Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757   42.496N   Fax +1 781 442 1677
0
Reply James 7/18/2005 10:54:01 AM

James Carlson wrote:
> Michael Vilain <vilain@spamcop.net> writes:
> 
>>In article <1121437612.827771.52000@z14g2000cwz.googlegroups.com>,
>> "dano" <dyelacic@yahoo.com> wrote:
>>
>>
>>>There is a utility that we use in our operations that clears network
>>>input/output and collision counts.  This utility is called "ndstat".
>>>It runs in unixware and openserver.  Is anyone aware of a utility that
>>>will let me clear error counts under the Solaris OS?
>>
>>Yeah, it's called a reboot.  AFAIK, you can't clear the netstat error 
>>counters any other way.
> 
> 
> Unplumbing and replumbing the interface with 'ifconfig' will do the
> job.

Really?  I'd checked this prior to suggesting that there might be
a way with kmdb.  It does not appear that unplumbing and replumbing
clears the error counters at all.

# ifconfig elxl1 0 down unplumb
# kstat elxl:1| grep -v '\<0\>'
module: elxl                            instance: 1
name:   elxl1                           class:    net
         brdcstrcv                       8
         brdcstxmt                       796
         carrier_errors                  788
         crtime                          81.342708419
         duplex                          half
         ifspeed                         10000000
         intr                            575
         ipackets                        479
         ipackets64                      479
         media                           twpair
         obytes                          69841
         obytes64                        69841
         opackets                        1214
         opackets64                      1214
         promisc                         phys
         rbytes                          57270
         rbytes64                        57270
         snaptime                        10596.2492227

# ifconfig elxl1 plumb 0 up
# kstat elxl:1| grep -v '\<0\>'
module: elxl                            instance: 1
name:   elxl1                           class:    net
         brdcstrcv                       8
         brdcstxmt                       796
         carrier_errors                  788
         crtime                          81.342708419
         duplex                          half
         ifspeed                         10000000
         intr                            575
         ipackets                        479
         ipackets64                      479
         media                           twpair
         obytes                          69841
         obytes64                        69841
         opackets                        1214
         opackets64                      1214
         promisc                         phys
         rbytes                          57270
         rbytes64                        57270
         snaptime                        10626.50569706

# ifconfig elxl1 plumb 192.168.5.5/24 up
ifconfig: SIOCSLIFNAME for ip: elxl1: already exists
# ifconfig elxl1 unplumb
# kstat elxl:1| grep -v '\<0\>'
module: elxl                            instance: 1
name:   elxl1                           class:    net
         brdcstrcv                       8
         brdcstxmt                       801
         carrier_errors                  793
         crtime                          81.342708419
         duplex                          half
         ifspeed                         10000000
         intr                            575
         ipackets                        479
         ipackets64                      479
         media                           twpair
         obytes                          70051
         obytes64                        70051
         opackets                        1219
         opackets64                      1219
         promisc                         phys
         rbytes                          57270
         rbytes64                        57270
         snaptime                        10681.608505502

> 
> We used to have an undocumented option in 'netstat' that would clear
> network interface counters, but we removed it because it's just a bad
> idea.  For one thing, it breaks SNMP, where counters are not permitted
> to be reset without an engine restart.
> 
0
Reply Robert 7/19/2005 6:00:10 PM

James Carlson wrote:
> Robert Lawhead <news0000.5.unixguru@spamgourmet.com> writes:
> 
>>Since the stats can be shown with kstat (/dev/kmem), I suppose you
> 
> 
> Kstat isn't /dev/kmem.  It's actually /dev/kstat.  And it doesn't
> necessarily allow all values to be reset.
> 
> 
>>could clear them using kmdb if you knew where to poke.
> 
> 
> Kmdb isn't kstat.
> 
Uh, thanks?  I was aware, that kstat .ne. kmdb .ne. kmem, but
guess I was sloppy in my post.  kmdb is a tool that will permit
poking at kmem, and I assumed that what was reported via
/dev/kstat came from kmem so that it might be possible to
forcibly alter the values if they could be found.
> 
>>and want to reset "carrier_errors" what kadb incantation
>>would do the job?
> 
> 
> There might not even necessarily be a way to do that.  There's no easy
> way to tell without having source code.  Unfortunately (;-]), Open
> Solaris fixes that particular problem.
> 
> elxl (as you're referencing) is a GLD-based driver.  You'll need to
> follow the pointers down to the driver's private glds_t structure and
> write to glds_nocarrier.
> 
> Good luck.  I wouldn't recommend doing this.  It's not as though it'd
> be supported.
> 
Thanks, I have no plans to, but since you made reference to snmp
in your earlier post, I was wondering if all the values reported
via kstat are in some MIB... and if so are they rw?
0
Reply Robert 7/19/2005 6:07:53 PM

Robert Lawhead <news0000.5.unixguru@spamgourmet.com> writes:
> > Unplumbing and replumbing the interface with 'ifconfig' will do the
> > job.
> 
> Really?  I'd checked this prior to suggesting that there might be
> a way with kmdb.  It does not appear that unplumbing and replumbing
> clears the error counters at all.

Sigh; you're right.  It probably depends on the driver.  :-<

-- 
James Carlson, KISS Network                    <james.d.carlson@sun.com>
Sun Microsystems / 1 Network Drive         71.232W   Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757   42.496N   Fax +1 781 442 1677
0
Reply James 7/20/2005 1:36:05 PM

In article <xoav4qapfvlm.fsf@sun.com>,
	James Carlson <james.d.carlson@sun.com> writes:
> Robert Lawhead <news0000.5.unixguru@spamgourmet.com> writes:
>> > Unplumbing and replumbing the interface with 'ifconfig' will do the
>> > job.
>> 
>> Really?  I'd checked this prior to suggesting that there might be
>> a way with kmdb.  It does not appear that unplumbing and replumbing
>> clears the error counters at all.
> 
> Sigh; you're right.  It probably depends on the driver.  :-<

I was going to suggest unloading the driver after the unplumb,
but at least on my system, elxl won't unload even when it has
no users. (Of course, that would be no use anyway if you are
using more than one instance of the driver.)

-- 
Andrew Gabriel
0
Reply andrew 7/20/2005 1:53:29 PM

Andrew Gabriel wrote:
> In article <xoav4qapfvlm.fsf@sun.com>,
> 	James Carlson <james.d.carlson@sun.com> writes:
> 
>>Robert Lawhead <news0000.5.unixguru@spamgourmet.com> writes:
>>
>>>>Unplumbing and replumbing the interface with 'ifconfig' will do the
>>>>job.
>>>
>>>Really?  I'd checked this prior to suggesting that there might be
>>>a way with kmdb.  It does not appear that unplumbing and replumbing
>>>clears the error counters at all.
>>
>>Sigh; you're right.  It probably depends on the driver.  :-<
> 
> 
> I was going to suggest unloading the driver after the unplumb,
> but at least on my system, elxl won't unload even when it has
> no users. (Of course, that would be no use anyway if you are
> using more than one instance of the driver.)
> 

Yep.  I had the same thought and got "busy" when doing the
modunload, and assumed that busy was due to ipf being
active; but since disabling ipf would have affected yet
another interface, I stopped trying.  Also tried restarting
various of the network services with svcadm to no avail,
but this was a half-hearted effort.
0
Reply Robert 7/20/2005 2:10:52 PM

Robert Lawhead <news0000.5.unixguru@spamgourmet.com> writes:
> Uh, thanks?  I was aware, that kstat .ne. kmdb .ne. kmem, but
> guess I was sloppy in my post.  kmdb is a tool that will permit
> poking at kmem, and I assumed that what was reported via
> /dev/kstat came from kmem so that it might be possible to
> forcibly alter the values if they could be found.

More or less right, as all of that stuff is in "the kernel."

The problem is that you'll need to dive down through several layers.
Kstat itself doesn't always hold the statistics.  In many cases
(particularly with hardware devices), the device is actually *polled*
by a kstat callback when you read from /dev/kstat in user land.

And if the hardware itself is read-only, as it sometimes is, you're
just sunk.

> > Good luck.  I wouldn't recommend doing this.  It's not as though it'd
> > be supported.
> >
> Thanks, I have no plans to, but since you made reference to snmp
> in your earlier post, I was wondering if all the values reported
> via kstat are in some MIB...

I'm no SNMP expert, but you might want to look at (for example) RFC
2863.

"All" values seems like a tall order in that not every kstat is really
quite meaningful or appropriate for network administration.  (Some,
for instance, just represent internal and completely undocumented
debugging data.)

If you're asking "is there a private all-kstat-contents MIB?", then I
believe the answer is "no."

> and if so are they rw?

I don't think SNMP 'Counter' objects can be defined as read-write.

-- 
James Carlson, KISS Network                    <james.d.carlson@sun.com>
Sun Microsystems / 1 Network Drive         71.232W   Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757   42.496N   Fax +1 781 442 1677
0
Reply James 7/20/2005 2:15:29 PM

11 Replies
517 Views

(page loaded in 0.008 seconds)

Similiar Articles:


















7/22/2012 9:24:43 AM


Reply: