Commit Graph
86 Commits
Author SHA1 Message Date
Ian GulliverandClaude Opus 4.5 6e7600ae0c Add switch port labels to nodes with location-aware external detection
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 17:24:37 -08:00
Ian GulliverandClaude Opus 4.5 0e6db94b83 Replace Cytoscape with DOM-based grid layout
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 17:16:21 -08:00
Ian Gulliver 19fabc71e4 Rotate mDNS query order to avoid repeated blocking 2026-01-25 11:53:32 -08:00
Ian Gulliver 1d6075d395 Add mDNS support for _netaudio-chan service with channel@device format 2026-01-25 11:52:28 -08:00
Ian Gulliver f9afd3abb6 Always enable HTTPS, require config.yaml 2026-01-25 11:33:15 -08:00
Ian Gulliver 2ab66520b6 Switch to HTTPS with auto-generated self-signed certificate 2026-01-25 11:31:00 -08:00
Ian Gulliver 81796dbdb6 Add mDNS SRV linkage for Dante devices and improve UI 2026-01-25 11:28:56 -08:00
Ian Gulliver 221ee2477b New pcap 2026-01-25 10:01:37 -08:00
Ian Gulliver 4c149ecdf7 Fix IP deduplication and filter link interfaces in JSON 2026-01-25 09:53:31 -08:00
Ian Gulliver 3a33ece7d9 Add SIGHUP handler to reload config file 2026-01-25 09:38:52 -08:00
Ian Gulliver 142143f8d4 Remove swap file and add swap patterns to gitignore 2026-01-25 09:34:33 -08:00
Ian GulliverandClaude Opus 4.5 67f4f23192 Filter out reverse DNS names from mDNS hostname extraction
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 09:30:55 -08:00
Ian GulliverandClaude Opus 4.5 cc3d84b97e Query DHCP binding table from Netgear switches via SNMP
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 23:11:55 -08:00
Ian Gulliver 1f2b2c2156 Updated config for realistic layout 2026-01-24 22:52:31 -08:00
Ian GulliverandClaude Opus 4.5 6801cb7f68 Add mDNS service queries for SMB, AirPlay, QLab, Blackmagic, and HyperDeck
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 22:43:20 -08:00
Ian GulliverandClaude Opus 4.5 6492456ce0 Add alternating layout direction by nesting depth
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 21:24:05 -08:00
Ian Gulliver 4123b49a98 Add broadcast pinging and fix node merging by shared IP 2026-01-24 20:02:43 -08:00
Ian GulliverandClaude Opus 4.5 f72f716349 Center top-level location boxes on same vertical axis
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 16:37:32 -08:00
Ian GulliverandClaude Opus 4.5 01f14cc3f7 Reorder top-level location boxes after ELK layout
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 16:33:56 -08:00
Ian GulliverandClaude Opus 4.5 a6ce2e4696 Convert config from maps to lists for ordering
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 16:00:26 -08:00
Ian Gulliver 997868949a Switch to ELK layout engine for proper compound node support 2026-01-24 15:37:04 -08:00
Ian Gulliver 8b50762c92 Add location grouping with cola layout 2026-01-24 15:04:42 -08:00
Ian Gulliver c662ff80f4 Fix gitignore and remove log file 2026-01-24 14:51:54 -08:00
Ian Gulliver d6f3debd73 Fix duplicate node creation from pre-joined DisplayName 2026-01-24 14:50:19 -08:00
Ian Gulliver 77e523a302 Position edge labels near their respective nodes 2026-01-24 14:44:23 -08:00
Ian Gulliver 8acda6902d Remove log file and add to gitignore 2026-01-24 14:41:06 -08:00
Ian Gulliver c687ace65c Fix node overlap in network diagram layout 2026-01-24 14:40:07 -08:00
Ian Gulliver fdd60a39e1 Replace mermaid.js with cytoscape.js for network diagram 2026-01-24 14:26:38 -08:00
Ian Gulliver 7c0d4ad05a Fix switch-to-switch link detection for downstream nodes 2026-01-24 11:48:24 -08:00
Ian GulliverandClaude Opus 4.5 bf787209a5 Add web UI with mermaid.js network diagram
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 11:22:35 -08:00
Ian Gulliver 9aebe8b83d Add HTTP API with JSON status endpoint and typeid support 2026-01-24 11:03:34 -08:00
Ian GulliverandClaude Opus 4.5 168cdedbcb Add flow status parsing and DOWN indicator for inactive dante flows
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 10:28:10 -08:00
Ian GulliverandClaude Opus 4.5 894e355f56 split nodes.go into focused files and refactor Update function
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 23:31:57 -08:00
Ian GulliverandClaude Opus 4.5 f02b25ca29 fix goroutine leak and reduce code duplication
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 23:28:58 -08:00
Ian GulliverandClaude Opus 4.5 7e8ec697ae refactor codebase and fix bugs
- merge dante.go and dante_control.go into single dante.go
- consolidate buildDantePacket and buildDantePacket28 into one function
- fix broken comparison logic in SetDanteClockMaster
- split ARP parsing into platform-specific files with build tags
- implement Linux ARP table parsing via /proc/net/arp
- run gofmt on all files

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 23:21:51 -08:00
Ian GulliverandClaude Opus 4.5 f4b2351de8 add 0x0006 dante channel type and default 0x3000 subscriptions to audio
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 23:16:09 -08:00
Ian GulliverandClaude Opus 4.5 604123559b remove mdns dante node discovery
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 23:05:04 -08:00
Ian GulliverandClaude Opus 4.5 92040c832b fix 0x141a record parsing and add dante channel type detection
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 23:01:35 -08:00
Ian GulliverandClaude Opus 4.5 111cb51fdb update node references in flows and memberships when nodes are merged
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 22:24:18 -08:00
Ian GulliverandClaude Opus 4.5 528f58dca1 add yamaha speaker discovery via tcp:50000 and move pollNode to tendrils.go
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 22:21:35 -08:00
Ian GulliverandClaude Opus 4.5 a374b34b18 improve link display formatting and sorting
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 22:15:18 -08:00
Ian GulliverandClaude Opus 4.5 0e8dfc46b1 refactor dante flows and artnet to use node references instead of names
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 22:09:44 -08:00
Ian Gulliver 5c4729333a handle loopback subscriptions where device name is . 2026-01-23 21:51:59 -08:00
Ian Gulliver 694a51eade fix 0x3400 parsing to use offset-based string references 2026-01-23 21:49:12 -08:00
Ian GulliverandClaude Opus 4.5 71aa3bfc3e add 0x3400 fallback for dante unicast subscription discovery
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 17:32:29 -08:00
Ian Gulliver fdb8740a0a add 0x3400 command fallback for dante subscription discovery 2026-01-23 16:35:41 -08:00
Ian Gulliver c16146f2d8 fix dante flow count and zero-pad rx channel numbers 2026-01-23 16:30:53 -08:00
Ian Gulliver c694efade5 fix dante discovery bugs: filter .in-addr names, dedupe multicast flows, fix unicast channel numbers 2026-01-23 16:28:41 -08:00
Ian GulliverandClaude Opus 4.5 66f98075e4 fix multicast flow tx device identification via igmp correlation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 16:12:36 -08:00
Ian Gulliver 3222e20e84 track multiple names per node 2026-01-23 13:11:38 -08:00
Ian GulliverandClaude Opus 4.5 29a0c80fea remove dante channel extraction from mdns discovery
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 13:00:06 -08:00
Ian GulliverandClaude Opus 4.5 84876dd595 improve dante flow display format and remove meaningless multicast channel info
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 12:00:27 -08:00
Ian GulliverandClaude Opus 4.5 9c7bd671ba add multicast flow transmitter discovery via mdns _netaudio-chan service
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 11:53:30 -08:00
Ian GulliverandClaude Opus 4.5 47b48337b3 add dante subscription discovery via arc protocol
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 11:30:40 -08:00
Ian GulliverandClaude Opus 4.5 a157a2a5e4 add well-known multicast address names for shure, ssdp, slp, ptp
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 09:52:18 -08:00
Ian GulliverandClaude Opus 4.5 c7db24b1fd add shure slp discovery and comma-separate group member lists
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 09:47:51 -08:00
Ian GulliverandClaude Opus 4.5 6394b55191 send mdns queries from listener socket for multicast responses
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 09:27:45 -08:00
Ian GulliverandClaude Opus 4.5 f3b85fc8f2 add skaarhoj device discovery and remove unused dante query
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 09:12:09 -08:00
Ian GulliverandClaude Opus 4.5 e73c591e34 add hyperdeck and videohub discovery via tcp probing
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 08:58:41 -08:00
Ian GulliverandClaude Opus 4.5 26f0aac587 implement full atem handshake to get product names
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 07:20:09 -08:00
Ian GulliverandClaude Opus 4.5 c7db6c0c68 add blackmagic atem discovery via udp 9910
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 07:18:14 -08:00
Ian GulliverandClaude Opus 4.5 c2318279bf add names for well-known multicast addresses and cap sacn universes
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 07:02:47 -08:00
Ian GulliverandClaude Opus 4.5 c12e8c0933 add danteancil mdns service query
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 00:45:09 -08:00
Ian GulliverandClaude Opus 4.5 a0e8b4cec5 fix mdns to use A record IPs and create interfaces for IP-only nodes
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 00:32:07 -08:00
Ian GulliverandClaude Opus 4.5 2fa2fcd57d add dante device discovery via mdns and ptp clock master detection
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 00:24:36 -08:00
Ian GulliverandClaude Opus 4.5 536c2d3dc9 add mdns hostname discovery and artnet universe tracking
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 23:59:32 -08:00
Ian GulliverandClaude Opus 4.5 7bced7b350 add igmp querier for multicast group membership tracking
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 23:46:56 -08:00
Ian GulliverandClaude Opus 4.5 395180493a add link detection via mac table path following
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 23:29:22 -08:00
Ian GulliverandClaude Opus 4.5 c3ed8e30e3 refactor to per-node snmp polling and immediate arp dump
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 23:09:54 -08:00
Ian GulliverandClaude Opus 4.5 d2a09250d0 add switch-wide poe budget tracking via snmp
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 22:56:47 -08:00
Ian GulliverandClaude Opus 4.5 5333d3e11e add interface stats and poe power monitoring via snmp
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 22:47:30 -08:00
Ian GulliverandClaude Opus 4.5 54fc941728 add per-node mac table populated from snmp and arp
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 14:54:06 -08:00
Ian GulliverandClaude Opus 4.5 2262e8d3bf merge nodes when update discovers mac belongs to different node
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 14:47:46 -08:00
Ian GulliverandClaude Opus 4.5 9bcda6b96c add target node parameter to Update and SIGUSR1 dump handler
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 14:44:15 -08:00
Ian GulliverandClaude Opus 4.5 8cb605b817 merge snmp-discovered interfaces with existing node found by ip
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 14:23:21 -08:00
Ian GulliverandClaude Opus 4.5 6d50ee30aa deduplicate interfaces by mac during update and merge
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 14:12:14 -08:00
Ian GulliverandClaude Opus 4.5 5e1ba33cb4 use natural sort order for interface names
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 14:05:33 -08:00
Ian GulliverandClaude Opus 4.5 92299f5efc key interfaces by name when available and normalize port names
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 14:00:51 -08:00
Ian GulliverandClaude Opus 4.5 37b30fe788 add --log-nodes flag for comprehensive node logging
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 08:37:13 -08:00
Ian GulliverandClaude Opus 4.5 09a99064c3 restructure nodes to have interfaces with name, mac, and ips
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 08:28:57 -08:00
Ian GulliverandClaude Opus 4.5 e3bed567ab rename log-reasons to log-events with structured prefixes
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 08:17:45 -08:00
Ian GulliverandClaude Opus 4.5 545a448bca remove parentid and tree logging machinery
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 08:15:27 -08:00
Ian Gulliver b2271d139b discover switch interface macs via snmp ifPhysAddress 2026-01-17 21:21:57 -08:00
Ian Gulliver e92a09e119 add debug flags for arp, lldp, and snmp discovery 2026-01-17 21:12:21 -08:00
Ian Gulliver 3c8afa9bdf add flags for disabling discovery and controlling logging 2026-01-17 21:02:30 -08:00
Ian Gulliver 477b6e9c99 add -i flag to filter by single interface 2026-01-17 20:54:58 -08:00