Skip to content

ISIS: Missing routes unless debug isis snp-packets is enabled #5

@mwinter-osr

Description

@mwinter-osr

This happens for broadcast, FRR=DIS with a simulated broadcast topology

If there are topologies with more than ~5000 routes, then some ISIS LSPs seem to get
dropped. Enabling debug isis snp-packets fixes the issue.

Retested on git 9cdce03 (2017-08-08)

Same topology

Output without the debug:

osr-perf3# show ip route summ
Route Source         Routes               FIB  (vrf Default-IP-Routing-Table)
kernel               1                    1                    
connected            5                    5                    
static               1                    1                    
isis                 6970                 6969                 
------
Totals               6977                 6976                 

and with the debug (correct):

osr-perf3# show ip route summ
Route Source         Routes               FIB  (vrf Default-IP-Routing-Table)
kernel               1                    1                    
connected            5                    5                    
static               1                    1                    
isis                 7073                 7072                 
------
Totals               7080                 7079                 

Doing a binary search through the code, it seems to be the debug section in in isis_pdu.c - lines 1780-1792:

if (isis->debugs & DEBUG_SNP_PACKETS) {
		zlog_debug(
				"ISIS-Snp (%s): Sending L%d CSNP on %s, length %zd",
				circuit->area->area_tag, level,
				circuit->interface->name,
				stream_get_endp(circuit->snd_stream));
		log_multiline(LOG_DEBUG, "              ", "%s",
					  isis_format_tlvs(tlvs));
		if (isis->debugs & DEBUG_PACKET_DUMP)
				zlog_dump_data(
						STREAM_DATA(circuit->snd_stream),
						stream_get_endp(circuit->snd_stream));
}

Just adding a isis_format_tlvs(tlvs) outside the debug (to be always executed) seems
to fix the issue. No idea why... (Didn't look further into it)

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions