CrossConnect, Connect. Monitor. Optimize.
by CybrIQ

Vendor Support Reference

For every network and AV vendor CrossConnect handles: what we collect, how we reach it, how we parse it, what models it, and what we do with the result. Written plainly, so an engineer can see exactly how their estate is treated, vendor by vendor.

Audience: network engineers, security reviewers, AV integrators
Scope: acquisition, parsing, modeling, and use, per vendor, with each capability’s maturity
Document: engineering reference, 21 June 2026
Contact: contact_us@cybriq.io

0 How to read this document

CrossConnect treats a device by what it can actually do with that device’s configuration, not by brand loyalty. Three things decide the treatment: how we get the configuration (SSH, a cloud API, or SNMP), what can parse it (a formal model, our own parser, or none), and therefore what analysis we can offer. Every vendor below is labelled with its maturity so nothing is oversold.

Production shipped and working end to end today Built, wiring expanding the parser or client exists; full surfacing is in progress Roadmap designed and prototyped, not yet built into the product

The single source of truth for a vendor’s treatment is the VendorSupport capability matrix in the code: for each vendor it records how config is captured (SSH, CLOUD_API, or UNSUPPORTED), whether the formal engine can model it (SUPPORTED / UNSUPPORTED), and an operator-facing note when support is limited. This document spells that matrix out.

1The four ways we treat a vendor 2How we acquire configuration 3Formally analyzed vendors 4Config-level vendors (our own parsers) 5Cloud-managed vendors 6Capture-only & unrecognized 7SNMP, across every vendor 8AV endpoint vendors 9Occupancy & wireless vendors 10What ships today vs what is expanding ASSH command profile per vendor BVendor capability matrix

1 The four ways we treat a vendor

A vendor falls into one of four tiers. The tier sets what analysis is possible, and the code decides it, not a sales sheet.

Formally analyzed

Config is captured over SSH and parsed by the Batfish formal model. We can prove reachability, validate access rules, trace a breaking change (the Network Black Box), and grade config correctness. Cisco, Arista, Juniper, Fortinet, Palo Alto, F5.

Config-level

Config is captured over SSH and parsed by our own parser, alongside SNMP facts. We analyze segmentation, VLANs, multicast, access-rule intent, PoE, and hardening, but not formal cross-device reachability. Netgear, Ubiquiti.

Cloud-managed

There is no on-device running-config; configuration lives in a vendor cloud and is pulled over a REST API, then analyzed at the config level. Meraki, Ubiquiti UniFi.

Capture-only

The running-config can be captured, stored, searched, diffed, and drift-checked over SSH, but nothing parses it, so no model-based analysis is offered. Extreme, and any vendor we do not yet recognize.

Two cross-cutting layers sit alongside these tiers and apply to every vendor: SNMP (§7) gives interfaces, VLANs, neighbors, multicast, timing, and sensors regardless of brand, and the AV endpoint layer (§8) types audio-visual gear that often speaks neither SSH nor SNMP.

flowchart LR
  DEV["A device
(vendor identified)"] --> ACQ{"How is its
config reachable?"} ACQ -- "SSH running-config" --> FORMAL{"Can the formal
model parse it?"} ACQ -- "cloud API" --> CLOUD["Cloud-managed
REST pull · own parser"] ACQ -- "SSH, no parser" --> CAP["Capture-only
store · search · diff · drift"] FORMAL -- "yes" --> BF["Formally analyzed
Batfish: reachability · ACL · Black Box"] FORMAL -- "no" --> CFG["Config-level
our parser + SNMP facts"] SNMP["SNMP, every vendor
interfaces · VLANs · LLDP · multicast · sensors"] -.-> DEV classDef app fill:#173a6b,stroke:#0f2a4f,color:#ffffff; classDef gate fill:#fdf0dd,stroke:#e0892a,color:#173a6b; classDef store fill:#e3f3f6,stroke:#1797b3,color:#173a6b; classDef ext fill:#ffffff,stroke:#9aa8c0,color:#173a6b; class BF,CFG,CLOUD,CAP app; class ACQ,FORMAL gate; class SNMP store; class DEV ext;
Figure 1. How a device is routed to a tier. Acquisition and parseability decide the tier. Formal analysis is reserved for vendors the formal model can parse; everything else is captured and analyzed at the level it supports. SNMP runs in parallel for all vendors.

2 How we acquire configuration

Every acquisition path is read-only. We never push configuration to a device. There are four ways data comes in.

PathTransportWhat it fetchesHow
SSH running-config22/TCP SSH (sshj)The device’s running configuration as textSshConfigCollector opens an interactive shell, disables paging, and runs the vendor’s read-only show command (Appendix A). Opt-in.
Cloud REST API443/TCP HTTPSVLANs, firewall rules, switch-port and device inventoryCloudVendorSourceService calls the vendor dashboard with an encrypted API key; the target URL is SSRF-guarded (public HTTPS only).
SNMP161/UDP SNMPInterfaces, VLANs, LLDP, IP, multicast, PTP, sensorsSnmpProbe read-only GET / GETBULK walks (snmp4j). Vendor-agnostic. On by default.
Link-local discoverymDNS / DHCP listenAV service announcements, device fingerprintsPassive listeners on the local segment (§8). Off by default.

The SSH path is the one that varies by vendor: each vendor needs a different paging-disable and a different show command, and the captured text needs to be tagged with its format so the right parser is selected. That per-vendor profile is the VendorCliProfile, listed in full in Appendix A.

3 Formally analyzed vendors Production

For six vendor families we capture the running-config over SSH and parse it with the Batfish formal model. Batfish turns each vendor’s configuration into one vendor-independent model of how the network forwards and filters traffic. From that model we can prove a path, validate an access rule across vendors, and trace the exact change that broke something. Each config is tagged with its vendor format before it enters the model so the correct grammar is used.

VendorHow we get it (SSH)How we parse itWhat we use it for
Cisco IOS / IOS-XEterminal length 0, show running-configBatfish (IOS grammar, format auto-detected)Reachability proofs, access-rule (ACL) validation, the Network Black Box root-cause trace, config-correctness grading, golden-config drift. Hardening heuristics on Cisco, Arista, Juniper.
Cisco NX-OSterminal length 0, show running-configBatfish (NX-OS grammar)
Arista EOSterminal length 0, show running-configBatfish (EOS grammar)
Juniper JunOSset cli screen-length 0, show configuration | display set | no-moreBatfish (set-format grammar)
Fortinet FortiOSconsole setup, show full-configurationBatfish (security-policy model)
Palo Alto PAN-OSset cli config-output-format set, show config runningBatfish (set-format model)
F5 BIG-IPtmsh -q show running-configBatfish (BIG-IP model)
We state coverage honestly. The formal model covers the six families above. If a path crosses a device whose config we captured but the formal model cannot parse (a config-level or capture-only vendor), the Black Box and reachability results carry a coverage note naming those devices, because a proof cannot be completed across a hop the model does not understand. Firewall vendors (Fortinet, Palo Alto, F5) are formally modeled for reachability and policy, but the rule-based hardening heuristics run on the routing-and-switching families (Cisco, Arista, Juniper).

4 Config-level vendors (our own parsers) Built, wiring expanding

Some vendors the formal model does not parse, but their configuration is still worth reading. Rather than wait for a formal grammar (which can take many months), we wrote small, focused parsers that pull the facts that matter for segmentation, multicast, and hardening. These devices are modeled as Layer-2 bridges or opaque Layer-3 hops inside the topology; cross-device reachability proofs still run on the formally analyzed core.

VendorHow we get itHow we parse itWhat we extract & use
Netgear FASTPATH
(M4250 / M4300 / M4350)
SSH running-config + SNMPFastpathConfigParser (our own, no external grammar)Interfaces, VLANs and switchport mode, access rules (ACLs), IGMP snooping and querier, PoE, static routes. Used for segmentation checks, multicast validation, access-rule intent, PoE budget, hardening, and AV-edge topology.
Ubiquiti EdgeSwitchSSH running-config + SNMPFastpathConfigParser (same family as Netgear, reused)Interfaces, VLANs, IGMP, access rules, PoE. Same segmentation, multicast, and hardening checks.
Ubiquiti EdgeRouter
(EdgeOS)
SSH configuration + SNMPVyattaConfigParser (our own, brace-tree and set-form)Interfaces and VLAN sub-interfaces, firewall rule sets (access-rule analog), static routes, NAT. Used for firewall intent, Layer-3 edge topology, and hardening.

The VendorSupport matrix ships and classifies these vendors today, and the parsers above are written and unit-tested. What remains is surfacing each parser’s output into every analyzer view, which is why this section is marked built, wiring expanding rather than fully production.

5 Cloud-managed vendors

Cloud-managed gear keeps its configuration in a vendor cloud, so there is no SSH running-config to capture. CrossConnect pulls the configuration over the vendor’s REST API instead, with an encrypted API key, and analyzes it at the config level (the same segmentation and access-rule intent checks, no formal reachability).

VendorHow we get itHow we parse itWhat we extractStatus
Cisco MerakiDashboard REST API over HTTPS (encrypted key, SSRF-guarded), dormant until configuredMerakiJson maps the JSON into MerakiFactsVLANs (id, name, subnet), Layer-3 firewall rules, switch-port profiles (VLAN mode, PoE), device inventoryBuilt, wiring expanding
Ubiquiti UniFiUniFi Controller REST API over HTTPS (encrypted key)UniFiJson maps the controller JSON, reusing the Meraki fact typesVLAN-bearing networks and L3 firewall rulesBuilt, wiring expanding

Both follow the same shape. The API client and the JSON parser are built for each: MerakiJson for the Meraki Dashboard, and UniFiJson for the UniFi controller (it parses the controller’s networks and firewall rules into the same fact types). For both, the configuration gate and the wiring of those facts into the analyzer views are being completed.

6 Capture-only & unrecognized vendors Production

Anything we can reach over SSH but cannot parse is still useful as text. We capture the running-config, store it, let you search and diff it, and check it for drift against an approved baseline. We just do not claim a model-based analysis we cannot back up.

7 SNMP, across every vendor Production

SNMP is the one path that works the same way on every brand, and it runs by default. It reads standard MIBs (the structured data tables a device exposes) for the facts that do not need a config parser, plus a few vendor-specific tables where the standard ones fall short.

FactStandard MIBApplies to
Interfaces (name, speed, MAC, status)IF-MIBAll vendors
VLAN membership and namesQ-BRIDGE-MIBAll VLAN-capable vendors
LLDP neighborsLLDP-MIBAll LLDP-capable vendors
IP addresses and masksIP-MIBAll vendors
Multicast (IGMP querier, group membership)IGMP-MIBAll vendors; parsed by MulticastSnmpParser
Precision timing (PTP)PTP MIBs, with a Cisco fallbackPTP-capable gear; parsed by PtpSnmpParser
Environment sensorsENTITY-SENSOR-MIBAll vendors
Identity (model, serial, vendor)MIB-II + ENTITY-MIBAll vendors; used to detect the vendor and pick the right SSH profile

Where a standard MIB is not enough, we read a vendor-specific one: for example the Cisco PTP extensions when a device does not populate the standard PTP table, and a Netgear-private power table for PoE budget on FASTPATH switches. The enterprise number in a device’s system identity is also how we recognize cloud-managed gear (for example Meraki) before any API is connected.

8 AV endpoint vendors

Audio-visual gear, codecs, displays, cameras, microphones, signal processors, often speaks neither SSH nor SNMP. CrossConnect types it from the signals it does give off, and for some roles can poll the device’s own management port to confirm it is live. The vendor matters here in two ways: the MAC-address vendor (OUI) is a strong hint at what a device is, and the management protocol is vendor-family specific.

Vendor identity to role

AvOuiProfile maps a MAC-address vendor to a likely AV role. AV-only vendors (Audinate/Dante, Shure, Crestron, AMX, Poly, Biamp, QSC, Barco, NEC, Axis, and others) are a strong vote on their own. Multi-market vendors (Cisco, Sony, Panasonic, Apple, Microsoft) only count as a vote when a second signal agrees, so an Apple device is not called a display until something like an AirPlay announcement corroborates it.

Live management-port probes

Where a role has a standard management protocol, a probe confirms the device is real and reports its state, live first, falling back to the classified record when a probe is not available or not enabled.

RoleProtocol / portProbeStatus
DisplayPJLink, 4352/TCPPjLinkProbe (power, input, name)Production
Signal processor (DSP)Q-SYS QRC, 1710/TCPQsysProbe (run-state, loaded design)Production
CodecSIP, 5060/UDPSipProbe (liveness, vendor/model)Built
CameraONVIF, 80/TCPOnvifProbe (device info, liveness)Experimental, dormant

The classifier also fuses passive signals: mDNS service types (_dante, _qsys, _airplay), LLDP model strings, DHCP fingerprints, and observed media flows (Dante, AES67, NDI, Q-SYS). The camera probe is part of the experimental Peek-a-Boo preview and is off by default (crossconnect.peekaboo.probe-enabled=false) until camera credentials are supplied; the display and DSP probes are part of the shipped AV endpoint modules. Full detail is in the AV sections of the Capability Guide and the Experimental Features explainer.

flowchart LR
  subgraph SIG["Signals (passive)"]
    direction TB
    OUI["MAC vendor (OUI)"]
    MDNS["mDNS service type"]
    LLDP["LLDP model string"]
    FLOW["AV media flow"]
  end
  CLS{"AV classifier
role + confidence"} SIG --> CLS CLS --> DISP(["Display, PJLink probe"]) CLS --> DSP(["DSP, Q-SYS probe"]) CLS --> COD(["Codec, SIP probe"]) CLS --> CAM(["Camera, ONVIF probe
experimental, dormant"]) classDef store fill:#e3f3f6,stroke:#1797b3,color:#173a6b; classDef gate fill:#fdf0dd,stroke:#e0892a,color:#173a6b; classDef app fill:#173a6b,stroke:#0f2a4f,color:#ffffff; classDef ext fill:#ffffff,stroke:#9aa8c0,color:#173a6b; class OUI,MDNS,LLDP,FLOW store; class CLS gate; class DISP,DSP app; class COD,CAM ext;
Figure 2. AV vendor to role to probe. The MAC vendor and passive signals classify a device into an AV role with a confidence label; where a standard management protocol exists, a live probe confirms it. The camera (ONVIF) probe is the experimental Peek-a-Boo path and stays dormant until enabled.

9 Occupancy & wireless vendors Production

For room occupancy and wireless health, CrossConnect integrates with the wireless vendor’s cloud, with an encrypted API token, and reads placement and client-count telemetry. This feeds occupancy analytics, not network-core modeling.

VendorHow we get itWhat we pullWhat we use it for
Juniper MistMist cloud API (encrypted token)AP placement, zone geometry, per-zone client counts over timeRoom occupancy, utilization, presence
Cisco Catalyst CenterCatalyst Center REST APIAP inventory, RF health, client association and location, assurance alertsOccupancy, AP and RF health, assurance
Cisco SpacesCisco Spaces location telemetryClient location by zone and floorOccupancy and location analytics

10 What ships today vs what is expanding

Because customers ask exactly this, here is the honest split. Nothing below is a future promise dressed as a present feature.

AreaShipped & workingBuilt, wiring expandingRoadmap (designed)
Formal analysisCisco, Arista, Juniper, Fortinet, Palo Alto, F5 (SSH + Batfish)n/aFurther firewall and switch families
Config-level parsingThe VendorSupport classification + captureNetgear & Ubiquiti EdgeSwitch (FASTPATH parser), EdgeRouter (EdgeOS parser): parsers built, full analyzer/UI wiringn/a
Cloud-managedn/aMeraki Dashboard and Ubiquiti UniFi: API client + JSON parser builtn/a
Capture-onlyExtreme and unrecognized vendors (store, search, diff, drift)n/an/a
SNMPInterfaces, VLANs, LLDP, IP, multicast, PTP, sensors, identityNetgear-private PoE tablen/a
AV endpointsOUI + mDNS classification; Display (PJLink) and DSP (Q-SYS) probesCodec (SIP) probe; the unified classifier engine and AV viewsExternal AV inventory ingest (control-plane platforms)
OccupancyMist, Cisco Catalyst, Cisco Spacesn/an/a

A Appendix, SSH command profile per vendor

The per-vendor SSH profile (VendorCliProfile) sets the paging-disable command and the read-only show command CrossConnect runs to capture a running-config. All commands are read-only; no configuration command is ever issued.

VendorDisable pagingCapture command
Cisco IOS / IOS-XEterminal length 0show running-config
Cisco NX-OSterminal length 0show running-config
Arista EOSterminal length 0show running-config
Juniper JunOSset cli screen-length 0show configuration | display set | no-more
Fortinet FortiOSconsole output setupshow full-configuration
Palo Alto PAN-OSset cli config-output-format setshow config running
F5 BIG-IPmodify cli preference pager disabledtmsh -q show running-config

Vendors without a dedicated profile (for example Netgear, Ubiquiti EdgeSwitch, Extreme) are captured with a best-effort show command and routed to the parser or capture-only handling described above.

B Appendix, vendor capability matrix

The shipping VendorSupport catalog, ordered most-capable first. Capture is how config is obtained; Formal is whether the Batfish model can parse it.

Vendor familyCaptureFormal modelAnalysis tier
CiscoSSHSupportedFormal
AristaSSHSupportedFormal
JuniperSSHSupportedFormal
FortinetSSHSupportedFormal
Palo AltoSSHSupportedFormal
F5SSHSupportedFormal
NetgearSSHUnsupportedConfig-level (own parser + SNMP)
UbiquitiSSH (UniFi: cloud API)UnsupportedConfig-level / cloud
ExtremeSSHUnsupportedCapture-only
MerakiCloud APIUnsupportedCloud (config-level)
UnrecognizedSSH (best effort)UnsupportedCapture-only