Model Data Files
Invariant loads your network snapshot into a network simulation environment which simulates protocols like IPSec, BGP, OSPF, and others, and generates simulated route tables for all devices and VRFs. Invariant makes all aspects of this simulated network available to you through data files.
You can use these data files to:
- Examine the simulated network in detail
- Compare data files between two versions of your network
- Understand the simulated environment in which Invariant rules were evaluated
- Archive the simulated network data files for query over time
Model Data Files Listing
Model data files are organized into these categories.
- Network Information: Details about nodes, interfaces, IP addressing, VLANs, and routing tables (RIBs).
- Topology: Layer 3 adjacencies and other connectivity information.
- Routing Protocols: Status and configuration of BGP, OSPF, and IPSec sessions.
- Model Creation Details: Information on how device configurations were parsed and interpreted, including any warnings or ignored lines.
A full listing appears here.
Network Information Files
Complete information about the network model.
File | Description | Rows Correspond To |
---|---|---|
nodes | Network nodes (devices, hosts, cloud resources). | Number of nodes loaded in the model. |
interfaces | Network interfaces. | Number of interfaces loaded in the model. |
named_structures | Vendor-independent structures (ACLs, VXLANs, etc). | Number of abstract structures loaded in the model. |
vlan_properties | VLANs and VXLANs. | Number of VLANs and VXLANs loaded in the model. |
hsrp_properties | HSRP groups. | Number of HSRP groups loaded in the model. |
mlag_properties | MLAG domains. | Number of MLAG domains loaded in the model. |
ip_owners | IP assignments. | Number of interfaces with IP addresses assigned. |
vrrp_properties | VRRP groups. | Number of VRRP groups loaded in the model. |
routes | Routing tables. | Number of routing table entries across all devices in the model. |
Topology Files
File | Description | Rows Correspond To |
---|---|---|
layer_3_edges | Layer 3 edges. | Number of layer 3 edges in the model. |
layer_1_edges | User-provided layer 1 edges. | Number of user-provided layer 1 edges in the model. |
edges | Layer 3 edges (duplicate). | Number of layer 3 edges in the model. |
BGP Files
File | Description | Rows Correspond To |
---|---|---|
bgp_process_config | Configuration settings for BGP processes. | Number of BGP processes loaded in the model. |
bgp_peer_config | Configuration settings for configured BGP peerings. | Number of configured BGP peerings loaded in the model. |
bgp_session_compatibility | Issues found in configured BGP peerings. | Number of configured BGP peerings with issues found. |
bgp_session_status | Status information for configured BGP peerings. | Number of configured BGP peerings loaded in the model. |
bgp_edges | BGP edges. | Number of BGP edges loaded in the model. |
bgp_ribs | BGP RIBs. | Number of BGP RIB entries across all devices in the model. |
OSPF Files
File | Description | Rows Correspond To |
---|---|---|
ospf_process_config | OSPF routing processes. | Number of running OSPF processes in the model. |
ospf_interface_config | Interface-level OSPF configuration details. | Number of interfaces running OSPF. |
ospf_area_config | OSPF areas. | Number of OSPF areas in the model. |
ospf_session_compatibility | OSPF sessions. | Number of OSPF sessions in the model. |
Inconsistent Traffic Files
File | Description | Rows Correspond To |
---|---|---|
subnet_multipath | Examples of traffic flows that are treated differently (i.e., dropped versus forwarded) by different paths in the network. | Number of example flows found. |
loopback_multipath | Examples of traffic flows between loopbacks that are treated differently (i.e., dropped versus forwarded) in the presence of multipath routing. | Number of example flows found. |
Model Creation Files
Files in this section illustrate how the digital twin model was created from the provided input.
File | Description | Rows Correspond To |
---|---|---|
defined_structures | Structure definitions as they appear in config files (ACLs, VXLANs, etc). | Number of structure definitions found. |
referenced_structures | Structure references as they appear in config files (ACLs, VXLANs, etc). | Number of references to defined structures. |
unused_structures | Structure definitions not referenced or used. | Number of unused structure definitions. |
undefined_references | Structure references with no matching definition. | Number of undefined references. |
unconnected_nodes | Nodes with no connection to any other node in the model. | Number of unconnected nodes. |
file_parse_status | Parsing status of snapshot files. | Number of files found in the snapshot. |
ignored_lines | Lines parsed but ignored by the model. | Number of ignored lines. |
parse_warnings | Warnings that occurred when parsing snapshot files. | Number of warnings produced. |
Full documentation including columns can be found in the Output Reference.
Access from CLI
You can access data files using the invariant show <file_name>
command.
# Fetch 'routes' data file from snapshot by ID
$ invariant show routes --snapshot adf11172-9f8a-4333-b7c7-f9f0ecefe8d9
# By default, uses the last uploaded snapshot for this terminal session
$ invariant show routes
JSON Output
For programmatic use or detailed inspection, you can output data files in JSON format using the --json
flag.
# Get interface properties as JSON
invariant show interfaces --json
# Get BGP session status as JSON
invariant show bgp_session_status --json > bgp_sessions.json
# Get BGP session status as JSON (no whitespace)
invariant show bgp_session_status --fast-json > bgp_sessions.json
TSV Output
Tab-Separated Values (TSV) format is also available using the --tsv
flag, useful for spreadsheet programs or simple scripting.
# Get OSPF session compatibility as TSV
invariant show ospf_session_compatibility --tsv
# Get IP ownership details as TSV
invariant show ip_owners --tsv > ip_owners.tsv
Accessing Prior Snapshots
To access data files from a specific previous snapshot, use the --snapshot <snapshot_uuid>
flag. You can list snapshot UUIDs using the invariant snapshots
command.
# Show routes from a specific previous snapshot
invariant show routes --snapshot f17e9368-67fd-4094-b191-4da3f837eb60 --json
For information on how Invariant uses this model data to validate your network, see: