Commit Graph

90 Commits

Author SHA1 Message Date
Ian Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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