batfish / batfish

Batfish is a network configuration analysis tool that can find bugs and guarantee the correctness of (planned or current) network configurations. It enables network engineers to rapidly and safely evolve their network, without fear of outages or security breaches.
http://www.batfish.org
Apache License 2.0
1.17k stars 233 forks source link

Does Batfish support parsing Cisco's IS-IS IPv6 Multi Process configuration? #8759

Open LXZ230901 opened 1 year ago

LXZ230901 commented 1 year ago

Does Batfish support parsing Cisco's IS-IS IPv6 Multi Process configuration? example config:

vrf definition v1 rd 200:1 ! router isis v1a vrf v1 net 49.000b.0000.0001.0002.00 is-type level-1 log-adjacency-changes address-family ipv6 redistribute isis v1b route-map abc redistribute isis level-1 into level-2 distribute-list xyz

'net 49.000b.0000.0001.0002.00 is-type level-1 log-adjacency-changes' always reports an error during use;

dhalperi commented 1 year ago

Batfish does not support IPv6. However, we often add parsing at a minimum to make bf.q.undefinedReferences() or bf.q.unusedStructures() not produce invalid output.

What type of analyses are you looking to do here?

LXZ230901 commented 1 year ago

thanks,I want to configure one or more vrfs under the isis process,but I meet some issues during the parsing process,as shown in the following example:

import pandas as pd
from pybatfish.client.session import Session
from pybatfish.datamodel import *
from pybatfish.datamodel.answer import *
from pybatfish.datamodel.flow import *

TXT="""
!
hostname example_debug
!
vrf definition v1
 rd 200:1
!
router isis v1a 
 vrf v1
  net 49.000b.0000.0001.0002.00
  is-type level-1
  log-adjacency-changes
  address-family ipv6
   redistribute isis v1b route-map abc
   redistribute isis level-1 into level-2 distribute-list xyz
"""

bf = Session(host="localhost")

bf.set_network('example_bug')

bf.init_snapshot_from_text(TXT)

print(bf.q.initIssues().answer())

               Nodes           Source_Lines                       Type                                            Details                                          Line_Text                                     Parser_Context
0  ['example_debug']                   None  Convert warning (redflag)  Cannot create IS-IS process without specifying...                                               None                                               None
1               None  [configs/config:[15]]              Parse warning                        This syntax is unrecognized  redistribute isis level-1 into level-2 distrib...  [vrfd_address_family s_vrf_definition stanza c...
2               None  [configs/config:[17]]              Parse warning                        This syntax is unrecognized                                              <EOF>  [vrfd_address_family s_vrf_definition stanza c...
3               None  [configs/config:[11]]              Parse warning                        This syntax is unrecognized                                    is-type level-1      [s_vrf_definition stanza cisco_configuration]
4               None  [configs/config:[10]]              Parse warning                        This syntax is unrecognized                      net 49.000b.0000.0001.0002.00      [s_vrf_definition stanza cisco_configuration]
5               None  [configs/config:[12]]              Parse warning                        This syntax is unrecognized                              log-adjacency-changes      [s_vrf_definition stanza cisco_configuration]
6               None  [configs/config:[14]]              Parse warning                        This syntax is unrecognized                redistribute isis v1b route-map abc  [vrfd_address_family s_vrf_definition stanza c...

It seems batfish doesn't support configuring an isis process for a specific vrf.

LXZ230901 commented 1 year ago

@dhalperi In other words,does batfish support to parse multiple VRF-aware IS-IS instances?