Skip to main content
Cloud

Check Reference

All 93 built-in checks organized by engine and category. Each entry includes the check name (used in rule check_name field), description, and configurable parameters.

Intent Checks (42)

Addressing (8 checks)

Check NameDescriptionParameters
cabled_interfaces_have_ipsEvery cabled interface has at least 1 IP addressexclude_types: ["virtual"]
no_duplicate_ipsNo IP is assigned to multiple interfaces--
management_ip_in_prefixPrimary IP is within expected management prefixprefix: "10.0.0.0/8"
ip_prefix_utilizationActive prefixes below utilization thresholdmax_utilization_pct: 90
no_orphan_ipsNo IPs exist without an assigned interface--
loopback_has_host_routeLoopback interfaces have /32 or /128 only--
point_to_point_subnet_sizingPoint-to-point links use /30 or /31allowed_masks: [30, 31]
ip_vrf_consistencyIPs on VRF interfaces come from VRF prefixes--

Redundancy (7 checks)

Check NameDescriptionParameters
min_cabled_uplinksDevice has N or more cabled uplink interfacesmin_uplinks: 2, uplink_types: ["1000base-t", "10gbase-x-sfpp"]
min_bgp_sessionsDevice has N or more BGP sessionsmin_sessions: 2
redundant_powerDevice has N or more cabled power portsmin_power_feeds: 2
site_min_devices_by_roleSite has N or more devices for a given rolerole: "spine", min_count: 2
dual_homed_circuitsDevice has N or more circuit terminationsmin_circuits: 2
lag_min_membersLAG interfaces have N or more membersmin_members: 2
virtual_chassis_member_countVirtual chassis has N or more membersmin_members: 2

Topology (8 checks)

Check NameDescriptionParameters
leaf_spine_connectivityEvery leaf has cables to N or more distinct spinesmin_spines: 2, spine_role: "spine"
no_unconnected_active_interfacesActive interfaces are cabled or uncabled typeallowed_uncabled_types: ["virtual", "lag", "bridge"]
symmetric_cablingBoth ends of every cable have matching speed/type--
cable_trace_completeCable paths are traceable end-to-end--
site_redundant_pathsSite has N or more distinct uplink pathsmin_paths: 2
rear_port_mapping_completeAll rear ports have front port mappings--
console_connectivityAt least one console port is connected--
mtu_consistency_across_linkBoth ends of a cable have the same MTU--

Standards (6 checks)

Check NameDescriptionParameters
bgp_asn_range_consistentBGP ASNs within allowed rangemin_asn: 64512, max_asn: 65534
interface_naming_consistentInterfaces follow naming convention by typepattern_by_type: {"1000base-t": "^(Ethernet|eth)\\d+"}
consistent_device_namingDevices at same site/role follow naming schemepattern_by_role: {}
consistent_platform_per_roleAll devices with same role at site use same platform--
vlan_id_range_by_siteVLANs at site within allowed ID rangesmin_vid: 100, max_vid: 999
prefix_role_assignedActive prefixes have a role assigned--

Completeness (8 checks)

Check NameDescriptionParameters
config_context_required_keysconfig_context contains required keysrequired_keys: ["ntp_servers", "dns_servers"]
circuit_terminations_completeAll circuits have both A and Z terminations--
vlan_assignments_completeTagged-mode interfaces have VLANs assigned--
site_has_required_rolesSite has at least 1 device for each required rolerequired_roles: ["spine", "leaf"]
contact_assigned_to_siteSites have at least one contact assignment--
custom_field_populatedSpecified custom fields are non-emptycustom_fields: []
asset_documentation_completeNative device fields are populatedrequired_fields: ["platform", "site", "rack", "position", "primary_ip4", "serial"]
ntp_syslog_configuredDevice config_context has NTP and syslog serversntp_key: "ntp.servers", syslog_key: "syslog.servers", require_both: true

Security Intent (5 checks)

Check NameDescriptionParameters
no_forbidden_values_in_contextconfig_context has no forbidden valuesforbidden: [{"path": "snmp.community", "values": ["public", "private"]}]
management_vrf_enforcedManagement interfaces are in the correct VRFmanagement_vrf_name: "MGMT", management_interface_patterns: ["management", "mgmt", "oob"]
required_context_structureconfig_context matches required schemaschema: {"ntp_servers": \{"type": "list", "min_length": 2\}}
no_plaintext_secrets_in_contextconfig_context has no password/key patternspatterns: ["(?i)password\\s*[:=]\\s*\\S+"]
restricted_prefix_usageCertain prefixes only used by allowed rolesrestricted_prefixes: []

Config Checks (35)

Available to Premium tier customers. Config checks use engine: "config" and require the config analysis engine. The config engine is powered by Batfish; NOS support is aligned with Batfish's supported platforms.

Parse Quality (4 checks)

Check NameDescriptionParameters
config_parse_statusConfigs parse without errors--
config_parse_warningsParse warnings in config filesmax_warnings: 0
undefined_referencesReferences to undefined structures (e.g., route-map referencing missing prefix-list)--
unused_structuresDefined but never referenced structures--

Routing Protocols (11 checks)

Check NameDescriptionParameters
bgp_sessionsBGP session compatibility--
bgp_unestablished_reasonWhy specific BGP sessions can't establish--
bgp_process_configBGP process configuration correctness--
bgp_rib_validationExpected routes present in BGP RIBexpected_routes: []
ospf_session_compatibilityOSPF session compatibility--
ospf_process_configOSPF process and area configuration--
routing_loop_detectionForwarding loops in the network--
multipath_consistencyECMP/multipath forwarding consistency--
bgp_localpref_equalsVerify local preference matches expected value for a prefixprefix: "0.0.0.0/0", expected_localpref: 100
bgp_med_equalsVerify MED matches expected value for a prefixprefix: "0.0.0.0/0", expected_med: 0
route_advertised_toVerify a prefix is advertised to specific BGP neighborsprefix: "", expected_neighbors: []

IP & Topology (5 checks)

Check NameDescriptionParameters
duplicate_ipsDuplicate IP addresses across devices--
ip_owners_conflictIP ownership conflicts--
layer3_topology_completeL3 adjacency discovery--
interface_mtu_configMTU mismatches on connected interfaces--
hsrp_vrrp_configHSRP/VRRP first-hop redundancy configuration--

ACL & Security (7 checks)

Check NameDescriptionParameters
acl_reachabilityUnreachable/shadowed ACL lines--
acl_denies_trafficACL rules that deny specified traffic flowsflow: {}
bgp_prefix_filter_appliedAll eBGP peers have inbound and outbound route-map or prefix-list--
bgp_authentication_configuredBGP sessions use MD5 or TCP-AO authentication--
ospf_authentication_configuredOSPF interfaces use message-digest authenticationrequire_type: null
management_access_acl_configuredVTY lines have access-class ACLs restricting management access--
assert_traffic_blockedVerify specific traffic flows are blocked (inverted reachability assertion)src_ip: "", dst_ip: "", applications: []

Overlay (3 checks)

Check NameDescriptionParameters
vxlan_vni_configVXLAN VNI mapping correctness--
evpn_l3_vni_consistencyEVPN L3 VNI consistency across the fabric--
snmp_community_clientsSNMP community string configuration--

Reachability (3 checks)

These checks use the config engine to perform reachability analysis. The config engine is enabled by default for Premium tier customers.

Check NameDescriptionParameters
reachability_assertionAssert specific source-to-destination reachabilitysrc_ip: "", dst_ip: "", applications: []
traceroute_reachabilitySimulated traceroute path validationsrc_ip: "", dst_ip: ""
route_table_completenessExpected routes present in the routing tableexpected_routes: []

Differential (2 checks, branch-only)

Check NameDescriptionParameters
differential_reachabilityLost/new reachability between main and branch configs--
routing_changesRoutes added/removed between main and branch configs--

Graph Checks (16)

Available to Premium tier customers. Graph checks use engine: "graph" and require enable_graph_engine: true on the policy. The graph engine is enabled by default for Premium deployments.

Power (6 checks)

Check NameDescriptionParameters
power_path_completeEvery device has N or more complete power paths to a panelmin_complete_paths: 1, skip_if_no_power_ports: true
power_redundancyPower paths through independent feeds/panelsindependence_level: "panel", min_independent_paths: 2, skip_if_no_power_ports: true
power_feed_capacityPower feed utilization within thresholdswarning_threshold: 80, critical_threshold: 95, draw_type: "allocated"
power_three_phase_balanceThree-phase feeds balanced across legsmax_imbalance_percent: 20
power_feed_blast_radiusUnprotected devices per power feed failuremax_unprotected_devices: 0
power_panel_blast_radiusUnprotected devices per power panel failuremax_unprotected_devices: 0

Topology (2 checks)

Check NameDescriptionParameters
device_single_point_of_failureDevices whose removal disconnects the networkspof_roles: null (all), min_downstream_impact: 2
cable_single_point_of_failureCables whose removal disconnects the networkcross_rack_only: true

Infrastructure (5 checks)

Check NameDescriptionParameters
site_connectivity_redundancySite has circuits from N or more providersmin_providers: 2, min_circuits: 2
circuit_path_diversityCircuits use diverse providers, racks, devicesdiversity_scope: "site", diversity_requirements: ["provider", "rack", "device"]
rack_failure_impactNetwork impact when all rack devices are removedmax_external_impact: 5
shared_failure_domainDevice pairs sharing too many failure domainsmax_shared_domains: 2, domain_types: ["power_feed", "power_panel", "rack", "upstream_device", "circuit_provider"], compare_roles: null (all), max_devices: 500
concurrent_maintainabilityAny single component can be taken offline without service impact (TIA-942 Tier III/IV)max_service_impact: 0, check_power: true, check_network: true

Reachability -- Config-Engine-Enhanced (3 checks)

These checks require the config analysis engine for routing-layer analysis. They operate independently of per-policy enable_config_engine.

Check NameDescriptionParameters
routing_convergence_impactSimulate device failure, measure prefix losstarget_roles: ["spine", "border", "core"], max_unreachable_prefixes: 0, max_targets: 10
bgp_session_criticalityBGP sessions whose loss affects the most prefixesmin_prefix_count: 10
forwarding_path_redundancyMultiple forwarding paths between flow pairsflow_pairs: "all_inter_site", min_paths: 2

routing_convergence_impact details: This check simulates device failures to measure routing convergence and prefix reachability impact. target_roles selects which device roles to simulate failures for. max_unreachable_prefixes sets the pass/fail threshold (0 = any prefix loss is a failure). max_targets (default 10) limits simulation to the N most-connected devices within the target roles, sorted by uplink count descending -- prioritizing devices whose failure would have the greatest blast radius.