diff options
| author | Fritz Reichmann <fritz@reichmann.nl> | 2011-10-01 17:43:12 +0400 | 
|---|---|---|
| committer | Denis Ovsienko <infrastation@yandex.ru> | 2012-02-14 03:06:29 +0400 | 
| commit | c25eaffdb2190149e768dc4ee4efc913c6d02992 (patch) | |
| tree | d8623ba984fcbd1e81815fa0d31f27ef7067d075 /isisd/isis_spf.c | |
| parent | d034aa027ef44d0a74805c27ad2a4d8ea20395d1 (diff) | |
isisd: unexpected kernel routing table (BZ#544)
Fix bug 544: isisd produces an unexpected routing table for wide-metric.
* isis_spf.c: Accept VTYPE_PSEUDO_TE_IS and VTYPE_NONPSEUDO_TE_IS
  vertex types for SPF calculation
* isis_pdu.c: Change order of TLVs to match Cisco to make bitwise
  comparison easier for Wireshark
* isis_tlv.c: EXTREME_TLV_DEBUG for TLV debugging instead of
  EXTREME_DEBUG
Diffstat (limited to 'isisd/isis_spf.c')
| -rw-r--r-- | isisd/isis_spf.c | 12 | 
1 files changed, 9 insertions, 3 deletions
| diff --git a/isisd/isis_spf.c b/isisd/isis_spf.c index b6178e3a..5d0b161f 100644 --- a/isisd/isis_spf.c +++ b/isisd/isis_spf.c @@ -1030,15 +1030,22 @@ isis_run_spf (struct isis_area *area, int level, int family)    while (listcount (spftree->tents) > 0)      { +      /* C.2.7 a) 1) */        node = listhead (spftree->tents);        vertex = listgetdata (node); -      /* Remove from tent list */ + +      /* C.2.7 a) 2) */        list_delete_node (spftree->tents, node); + +      /* C.2.7 a) 3) */        if (isis_find_vertex (spftree->paths, vertex->N.id, vertex->type))  	continue;        add_to_paths (spftree, vertex, area, level); +        if (vertex->type == VTYPE_PSEUDO_IS || -	  vertex->type == VTYPE_NONPSEUDO_IS) +	  vertex->type == VTYPE_NONPSEUDO_IS || +	  vertex->type == VTYPE_PSEUDO_TE_IS || +	  vertex->type == VTYPE_NONPSEUDO_TE_IS )  	{  	  if (listcount(vertex->Adj_N) == 0) {  	    continue; @@ -1054,7 +1061,6 @@ isis_run_spf (struct isis_area *area, int level, int family)  		{  		  isis_spf_process_pseudo_lsp (spftree, lsp, vertex->d_N,  					       vertex->depth, family, adj); -  		}  	      else  		{ | 
