confgraph

Parser Support Matrix

Overview

Comprehensive overview of parser support across all network operating systems in confgraph. Each parser inherits from either BaseParser (abstract base) or IOSParser (reference implementation). EOS, IOS-XR, and NX-OS extend IOSParser and inherit methods where syntax is compatible. As of the 2026-07 refactors, many cross-OS dialects that used to be method overrides are now data-driven on the shared IOSParser base (pattern-sets / lookup tables) rather than forked methods; see the per-OS docs ({IOS,IOSXR,NXOS,EOS,JUNOS,PANOS}_PARSER_SUPPORT.md) for details.

Last Updated: July 29, 2026


OS Type Support Summary

Override counts below are parse_* interface methods natively defined on each subclass (measured from source). Many dialects that used to be method overrides on EOS/IOS-XR/NX-OS are now data-driven on the shared IOSParser base (pattern-sets / lookup tables), so the raw override count understates how much each OS actually customizes — see the per-parser docs for the data-driven extensions.

OS Type Parser Class Inherits From parse_* Overrides Status
Cisco IOS / IOS-XE IOSParser BaseParser 40 implemented (reference) ✅ Reference implementation
Arista EOS EOSParser IOSParser 13 overrides (+ data-driven dialects) ✅ Complete
Cisco IOS-XR IOSXRParser IOSParser 16 overrides ✅ Complete
Cisco NX-OS NXOSParser IOSParser 17 overrides ✅ Complete
Juniper JunOS JunOSParser BaseParser 13 methods ✅ Core protocols
Palo Alto PAN-OS PANOSParser BaseParser 11 methods ✅ Security + routing surface

Legend for protocol tables below:


Protocol Support by OS Type

Core Routing Protocols

Protocol IOS/IOS-XE EOS IOS-XR NX-OS JunOS PAN-OS
BGP
OSPF ✅ (inherited)
IS-IS ✅ (inherited)
EIGRP ✅ (inherited) ✅ (inherited) ✅ (inherited)
RIP ✅ (inherited) ✅ (inherited) ✅ (inherited)
Static Routes

Notes:

Infrastructure

Protocol IOS/IOS-XE EOS IOS-XR NX-OS JunOS PAN-OS
VRF
Interfaces ✅ (inherited)
Route-Maps ✅ (inherited) ✅ (inherited)
Prefix-Lists ✅ (inherited)

Notes:

Access Control & Filtering

Protocol IOS/IOS-XE EOS IOS-XR NX-OS JunOS PAN-OS
ACLs ✅ (inherited)
Community Lists ✅ (inherited)
AS-Path Lists ✅ (inherited)

Notes:

Data Center / Overlay

Protocol IOS/IOS-XE EOS IOS-XR NX-OS JunOS PAN-OS
VXLAN (data-plane)
EVPN control-plane (L2VNI/L3VNI RD+RT) ⚠️ (RT via BGP-VRF)
VPC / MLAG ✅ (MLAG) ✅ (VPC)
VLANs ✅ (inherited) ✅ (inherited) ✅ (inherited)
VTP ✅ (inherited) ✅ (inherited) ✅ (inherited)
STP ✅ (inherited) ✅ (inherited) ✅ (inherited)

Notes:

MPLS / Label Switching

Protocol IOS/IOS-XE EOS IOS-XR NX-OS JunOS PAN-OS
MPLS/LDP

Notes:

Multicast

Protocol IOS/IOS-XE EOS IOS-XR NX-OS JunOS PAN-OS
PIM ✅ (inherited) ✅ (inherited)

Notes:

Management & Monitoring

Protocol IOS/IOS-XE EOS IOS-XR NX-OS JunOS PAN-OS
NTP ✅ (inherited)
SNMP ✅ (inherited) ✅ (inherited) ✅ (inherited)
Syslog ✅ (inherited) ✅ (inherited)
BFD ✅ (inherited)
NetFlow ✅ (inherited) ✅ (inherited)
LLDP ✅ (inherited) ✅ (inherited)
CDP ✅ (inherited) ✅ (inherited)

Notes:

Security & AAA

Protocol IOS/IOS-XE EOS IOS-XR NX-OS JunOS PAN-OS
AAA ✅ (inherited) ✅ (inherited)
NAT ✅ (inherited) ✅ (inherited) ✅ (inherited)
Crypto/IPsec ✅ (inherited) ✅ (inherited) ✅ (inherited)
Security Zones

Notes:

Services

Protocol IOS/IOS-XE EOS IOS-XR NX-OS JunOS PAN-OS
DNS ✅ (inherited)
DHCP ✅ (inherited) ✅ (inherited)

Notes:

High Availability (Interface-Level)

Protocol IOS/IOS-XE EOS IOS-XR NX-OS JunOS PAN-OS
HSRP ✅ (inherited) ✅ (inherited)
VRRP ✅ (inherited) ✅ (inherited)
LACP ✅ (inherited) ✅ (inherited) ✅ (inherited)

Notes:

Operational / Automation

Protocol IOS/IOS-XE EOS IOS-XR NX-OS JunOS PAN-OS
IP SLA ✅ (inherited) ✅ (inherited) ✅ (inherited)
EEM ✅ (inherited) ✅ (inherited) ✅ (inherited)
Object Tracking ✅ (inherited) ✅ (inherited) ✅ (inherited)
Banners ✅ (inherited) ✅ (inherited) ✅ (inherited)
Line Config ✅ (see note) ✅ (see note)
Change-IR / deletions (op-primary) derived-string n/a n/a

Notes:

QoS

Protocol IOS/IOS-XE EOS IOS-XR NX-OS JunOS PAN-OS
Class-Maps ✅ (inherited) ✅ (inherited) ✅ (inherited)
Policy-Maps ✅ (inherited) ✅ (inherited) ✅ (inherited)
CoPP (control-plane binding)

Notes:


Data Model Coverage

All models live in confgraph/models/ and use Pydantic.

Model File Used By
BaseConfigObject base.py All parsers
OSType base.py All parsers
ParsedConfig parsed_config.py All parsers (now incl. object_groups, control_plane, evpn, and the native change_ops op stream)
VRFConfig vrf.py IOS, EOS, IOS-XR, NX-OS, JunOS, PAN-OS
InterfaceConfig interface.py All parsers
BGPConfig bgp.py IOS, EOS, IOS-XR, NX-OS, JunOS, PAN-OS
OSPFConfig ospf.py IOS, EOS, IOS-XR, NX-OS, JunOS, PAN-OS
ISISConfig isis.py IOS, EOS, IOS-XR, NX-OS
RouteMapConfig route_map.py IOS, EOS, IOS-XR, NX-OS, JunOS
PrefixListConfig prefix_list.py IOS, EOS, IOS-XR, NX-OS, JunOS
StaticRoute static_route.py IOS, EOS, IOS-XR, NX-OS, JunOS, PAN-OS
ACLConfig acl.py IOS, EOS, IOS-XR, NX-OS, JunOS, PAN-OS
CommunityListConfig community_list.py IOS, EOS, IOS-XR, NX-OS, JunOS
ASPathListConfig community_list.py IOS, EOS, IOS-XR, NX-OS, JunOS
MulticastConfig multicast.py IOS, EOS, IOS-XR, NX-OS
MPLSConfig mpls.py IOS, EOS, IOS-XR, NX-OS
VXLANConfig vxlan.py EOS, NX-OS
EVPNConfig evpn.py NX-OS (L2VNI + L3VNI RD/RT)
VPCConfig vpc.py EOS (MLAG), NX-OS (VPC)
AAAConfig aaa.py IOS, EOS, IOS-XR, NX-OS
NTPConfig ntp.py IOS, EOS, IOS-XR, NX-OS, JunOS
SNMPConfig snmp.py IOS, EOS, IOS-XR, NX-OS, JunOS
SyslogConfig logging_config.py IOS, EOS, IOS-XR, NX-OS, JunOS
BFDConfig bfd.py IOS, EOS, IOS-XR, NX-OS
DNSConfig dns.py IOS, EOS, IOS-XR, NX-OS
DHCPConfig dhcp.py IOS, EOS, IOS-XR, NX-OS
LLDPConfig lldp.py IOS, EOS, IOS-XR, NX-OS
CDPConfig cdp.py IOS, EOS, IOS-XR, NX-OS
STPConfig stp.py IOS, EOS, IOS-XR, NX-OS
VTPConfig vlan.py IOS, EOS, IOS-XR, NX-OS
VLANEntry vlan.py IOS, EOS, IOS-XR, NX-OS
NetFlowConfig netflow.py IOS, EOS, IOS-XR, NX-OS
NATConfig nat.py IOS, EOS, IOS-XR, NX-OS, PAN-OS
CryptoConfig crypto.py IOS, EOS, IOS-XR, NX-OS, PAN-OS
PANOSZoneConfig panos_zone.py PAN-OS
IPSLAOperation ipsla.py IOS, EOS, IOS-XR, NX-OS
EEMApplet eem.py IOS, EOS, IOS-XR, NX-OS
ObjectTrack object_tracking.py IOS, EOS, IOS-XR, NX-OS
ObjectGroup object_group.py IOS, EOS, IOS-XR, NX-OS
ClassMapConfig / PolicyMapConfig qos.py IOS, EOS, IOS-XR, NX-OS
ControlPlaneConfig qos.py NX-OS (CoPP service-policy binding)

Simulation Coverage (confgraph-entrp)

The simulation engine in confgraph-entrp provides service-level impact assessment for configuration changes. Not all parsed protocols have simulation support.

⚠️ This table references the separate confgraph-entrp repo and was not re-verified in this update; it may be out of date — verify separately.

Protocol Simulation Assessment Type
BGP Neighbor changes, AF changes, route-map impact
OSPF Area changes, adjacency loss, redistribution
IS-IS Adjacency loss, metric changes
PIM/Multicast RP reachability (IGP-based), PIM interface removal
MPLS/LDP Router-ID state, LDP peer reachability
VXLAN VTEP source-interface state, VTEP reachability
VPC/MLAG Peer-link state, keepalive reachability (VRF-aware)
VTP Cross-device VLAN propagation (server→client)
LACP Port-channel min-links → forced down cascade
STP Blocked port computation
L2/VLAN SVI state derivation from VLAN database
NTP Server changes, source-interface changes
SNMP Community/server changes
Syslog Server changes
AAA Method-list changes, TACACS/RADIUS server removal
DNS Server changes
DHCP Pool/relay changes
BFD Timer changes
Interfaces Shutdown detection, IP changes, causal chain

Test Coverage

⚠️ The specific test-file list and the total count below were not re-verified in this update (the suite has grown substantially with the 2026-07 parser work); treat the count as a lower bound and verify separately.

Test File Purpose Status
test_ios_parser.py IOS core parsing ✅ Passing
test_ios_parser_detailed.py IOS BGP detailed validation ✅ Passing
test_new_protocols.py IOS extended protocol support ✅ Passing
test_eos_parser.py EOS parsing ✅ Passing
test_bgp_parser_e2e.py BGP end-to-end across platforms ✅ Passing
test_iface_bfd_parser.py Interface BFD parsing ✅ Passing
test_service_parsers.py NTP/SNMP/Syslog/BFD on IOS-XR, EOS, NX-OS ✅ Passing
test_interface_normalize.py Interface name normalization ✅ Passing
test_parser_mpls_vpc_gaps.py MPLS (IOS-XR, EOS, NX-OS) + EOS MLAG ✅ Passing

Total: 429 tests passing (confgraph repo)


Architecture

Parser Inheritance

BaseParser (ABC) ─── abstract parse_* interface
├── IOSParser ─────── 40 parse_* implemented (reference parser; owns shared VRF/OSPF/line
│   │                 walks, cross-version dialects, typed class/policy-map + CoPP police units,
│   │                 object-groups, multi-family ACLs)
│   ├── EOSParser ─── 13 parse_* overrides (interfaces, prefix-lists, static-routes, ACLs,
│   │                 community-lists, BFD, DNS, multicast, VXLAN, MPLS, MLAG, deletion-commands,
│   │                 + thin BGP-VRF hooks). VRF / IS-IS / BGP-neighbor / lines now data-driven.
│   ├── IOSXRParser ─ 16 parse_* overrides (VRF, interfaces, OSPF, route-maps/policies,
│   │                 prefix-sets, ACLs, community-sets, IS-IS, static-routes, multicast, MPLS,
│   │                 NTP, BFD, DHCP, BGP, deletion-commands). No parse() override — back-fills shared.
│   └── NXOSParser ── 17 parse_* overrides (VRF, interfaces, BGP, OSPF, static-routes, NTP,
│                     syslog, VXLAN, EVPN, VPC, control-plane/CoPP, NetFlow, MPLS, LLDP, CDP, AAA,
│                     deletion-commands). DNS/ACLs/object-groups/QoS-maps inherited.
├── JunOSParser ───── 13 parse_* methods (custom brace/set tokenizer + apply-groups expansion;
│                     core routing + management; no CiscoConfParse)
└── PANOSParser ───── 11 parse_* methods (XML; routing + BGP policy/route-maps + NAT +
                      security/zones/crypto; local-firewall & Panorama layouts)

File Locations

confgraph/
├── models/                    # Pydantic data models
│   ├── base.py               # OSType enum, BaseConfigObject
│   ├── parsed_config.py      # ParsedConfig (data fields + native change_ops stream)
│   ├── bgp.py                # BGP (config, neighbor, peer-group, AF)
│   ├── ospf.py               # OSPF (config, area, redistribute)
│   ├── isis.py               # IS-IS (config, interface, redistribute)
│   ├── interface.py          # InterfaceConfig (all interface types)
│   ├── vrf.py                # VRF
│   ├── route_map.py          # Route-map / route-policy
│   ├── prefix_list.py        # Prefix-list / prefix-set
│   ├── static_route.py       # Static routes
│   ├── acl.py                # ACLs
│   ├── community_list.py     # Community + AS-path lists
│   ├── multicast.py          # PIM/MSDP/multicast
│   ├── mpls.py               # MPLS/LDP
│   ├── vxlan.py              # VXLAN data-plane (VTEP / VNI mappings)
│   ├── evpn.py               # MP-BGP EVPN control-plane (L2VNI/L3VNI RD+RT) — NX-OS
│   ├── vpc.py                # VPC/MLAG
│   ├── vlan.py               # VTP + VLAN entries
│   ├── aaa.py                # AAA
│   ├── ntp.py                # NTP
│   ├── snmp.py               # SNMP
│   ├── logging_config.py     # Syslog (SyslogConfig)
│   ├── bfd.py                # BFD
│   ├── dns.py                # DNS
│   ├── dhcp.py               # DHCP
│   ├── lldp.py               # LLDP
│   ├── cdp.py                # CDP
│   ├── stp.py                # Spanning-tree
│   ├── netflow.py            # NetFlow (record/exporter/monitor)
│   ├── nat.py                # NAT
│   ├── crypto.py             # Crypto/IPsec
│   ├── qos.py                # Class-map / policy-map / CoPP ControlPlaneConfig
│   ├── object_group.py       # Object-groups (addr/port)
│   ├── rip.py                # RIP
│   ├── eigrp.py              # EIGRP
│   ├── line.py               # Line / session config
│   ├── panos_zone.py         # PAN-OS security zones
│   ├── ipsla.py              # IP SLA
│   ├── eem.py                # EEM applets
│   ├── object_tracking.py    # Object tracking
│   └── topology.py           # Cross-device topology
├── parsers/                   # Parser implementations
│   ├── base.py               # Abstract BaseParser (40 methods)
│   ├── ios_parser.py         # IOS/IOS-XE (reference, ~5500 lines)
│   ├── eos_parser.py         # Arista EOS
│   ├── iosxr_parser.py       # Cisco IOS-XR
│   ├── nxos_parser.py        # Cisco NX-OS
│   ├── junos_parser.py       # Juniper JunOS
│   └── panos_parser.py       # Palo Alto PAN-OS
└── utils/
    └── interface.py           # Interface name normalization