Discussion:
[rancid] [patch] fluctuating data from cisco-nx
Pavel Korovin
2018-08-17 19:16:51 UTC
Permalink
Dear all,

There are several issues with fluctuating data received from Cisco Nexus
platform (55xx, 77xx):

* accounting logs filenames are named as accounting_log,
accounting_log.0, etc. These filenames are not filtered out from the
output

* "show interface transceiver" command introduced in v3.8 produces huge
(temperature, current, power & voltage); imagine how much output produces
N5596 with 96 ports/transceivers. I propose to filter out this output
if FILTER_OSC != NO

* if PAR_COUNT is > 1 (by default, it's 5) and rancid simultaneously runs
"show version" in multiple VDCs on the same device, bootflash size
values hop between 0 and actual size, with each invocation producing cvs
commits and change notifications. To reproduce, run "show ver"
simultaneously on multiple VDCs. It seems that NX-OS requires exclusive
access to hardware to determine the size of bootflash and fails during
concurrent access. I cannot offer any better solution than just
providing a knob to filter out bootflash size fluctuations by setting
FILTER_OSC = ALL.

Please see the diff attached.
--
With best regards,
Pavel Korovin
heasley
2018-08-18 20:59:04 UTC
Permalink
Post by Pavel Korovin
Dear all,
There are several issues with fluctuating data received from Cisco Nexus
* accounting logs filenames are named as accounting_log,
accounting_log.0, etc. These filenames are not filtered out from the
output
* "show interface transceiver" command introduced in v3.8 produces huge
(temperature, current, power & voltage); imagine how much output produces
N5596 with 96 ports/transceivers. I propose to filter out this output
if FILTER_OSC != NO
* if PAR_COUNT is > 1 (by default, it's 5) and rancid simultaneously runs
"show version" in multiple VDCs on the same device, bootflash size
slot0 too? or just bootflash?
Post by Pavel Korovin
values hop between 0 and actual size, with each invocation producing cvs
commits and change notifications. To reproduce, run "show ver"
simultaneously on multiple VDCs. It seems that NX-OS requires exclusive
access to hardware to determine the size of bootflash and fails during
concurrent access. I cannot offer any better solution than just
providing a knob to filter out bootflash size fluctuations by setting
FILTER_OSC = ALL.
Please see the diff attached.
--
With best regards,
Pavel Korovin
$OpenBSD$
Index: lib/nxos.pm.in
--- lib/nxos.pm.in.orig
+++ lib/nxos.pm.in
}
}
- if (/^\s+(bootflash|slot0):\s+(\d+) kB(.*)$/) {
+ if (/^\s+(bootflash|slot0):\s+(\d+) kB(.*)$/ && ($filter_osc < 2)) {
my($tmp) = int($2 / 1024);
ProcessHistory("COMMENTS","keysort","B1",
"!Memory: $1: $tmp MB$3\n");
@@ -496,8 +496,8 @@ sub DirSlotN {
# Drop bootvar_debug log files
/\s+bootvar_debug\./ && next;
- # Drop accounting.log
- /\s+accounting\.log$/ && next;
+ # Drop accounting logs
+ /\s+accounting.log.*/ && next;
was removal of the escape of the . intentional?
Post by Pavel Korovin
# Drop vtp_debug.log and vtp_debug_old.log CDETS bug CSCuy87611
/\s+vtp_debug(_old)?\.log$/ && next;
@@ -574,6 +574,9 @@ sub ShowIntTransceiver {
return(-1) if (/No token match at /); # 1000v
return(-1) if (/\% Permission denied/);
return(-1) if (/command authorization failed/i);
+
+ # filter out oscillating data from transceivers if FILTER_OSC != NO
+ next if (/(Temperature|Current|Power|Voltage)\s+:/ && ($filter_osc >= 1));
The ones that I have access to, do not include this. :) It seems to always
be approperiate to filter this, so I've removed the FILTER_OSC knob.
Pavel Korovin
2018-08-18 21:22:57 UTC
Permalink
Post by heasley
Post by Pavel Korovin
There are several issues with fluctuating data received from Cisco Nexus
* if PAR_COUNT is > 1 (by default, it's 5) and rancid simultaneously runs
"show version" in multiple VDCs on the same device, bootflash size
slot0 too? or just bootflash?
I don't have Nexus devices with slot0 size > 0, but I suppose it should
be the same story.
Post by heasley
Post by Pavel Korovin
values hop between 0 and actual size, with each invocation producing cvs
commits and change notifications. To reproduce, run "show ver"
simultaneously on multiple VDCs. It seems that NX-OS requires exclusive
access to hardware to determine the size of bootflash and fails during
concurrent access. I cannot offer any better solution than just
providing a knob to filter out bootflash size fluctuations by setting
FILTER_OSC = ALL.
- # Drop accounting.log
- /\s+accounting\.log$/ && next;
+ # Drop accounting logs
+ /\s+accounting.log.*/ && next;
was removal of the escape of the . intentional?
Yes. I don't remember if earlier versions of NX-OS use
accounting_log or accounting.log naming, so it will filter both.
--
With best regards,
Pavel Korovin
Piegorsch, Weylin William
2018-08-20 02:49:23 UTC
Permalink
6.2(16):

Nexus-7010-16-2-16# echo ; dir logflash: ; echo

50193 Aug 19 22:48:09 2018 accounting_log
250109 Aug 12 23:34:44 2018 accounting_log.1
4096 Nov 28 03:32:34 2013 core/
4096 Nov 28 03:32:34 2013 debug/
1068 May 03 05:50:16 2018 event_archive_1
25645 May 22 16:42:41 2016 forwarding_debug_data
4096 Nov 28 03:32:34 2013 generic/
4096 Feb 12 04:29:44 2014 log/

Usage for logflash://sup-local
6916423680 bytes used
963309568 bytes free
7879733248 bytes total

Nexus-7010-16-2-16#
Post by heasley
Post by Pavel Korovin
There are several issues with fluctuating data received from Cisco Nexus
* if PAR_COUNT is > 1 (by default, it's 5) and rancid simultaneously runs
"show version" in multiple VDCs on the same device, bootflash size
slot0 too? or just bootflash?
I don't have Nexus devices with slot0 size > 0, but I suppose it should
be the same story.
Post by heasley
Post by Pavel Korovin
values hop between 0 and actual size, with each invocation producing cvs
commits and change notifications. To reproduce, run "show ver"
simultaneously on multiple VDCs. It seems that NX-OS requires exclusive
access to hardware to determine the size of bootflash and fails during
concurrent access. I cannot offer any better solution than just
providing a knob to filter out bootflash size fluctuations by setting
FILTER_OSC = ALL.
- # Drop accounting.log
- /\s+accounting\.log$/ && next;
+ # Drop accounting logs
+ /\s+accounting.log.*/ && next;
was removal of the escape of the . intentional?
Yes. I don't remember if earlier versions of NX-OS use
accounting_log or accounting.log naming, so it will filter both.

--
With best regards,
Pavel Korovin

Loading...