Commit Graph

57 Commits

Author SHA1 Message Date
Ian Gulliver
eff2635725 Add remove button for unreachable nodes not in config
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 11:18:06 -08:00
Ian Gulliver
32da723b2c Clear MAC table on each SNMP poll and reduce ping threshold
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 13:20:20 -08:00
Ian Gulliver
5a7596b456 Add port flap and port down error tracking with faster ping
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 13:01:07 -08:00
Ian Gulliver
d1b4de01e8 Add shared_names config and port uptime tracking
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 12:06:59 -08:00
Ian Gulliver
bb22e16460 Add structured node config with names/macs/ips and avoid flag
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 09:52:51 -08:00
Ian Gulliver
b966ad0feb Refactor Dante fields to use proper types and group flows with lastSeen
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 23:15:24 -08:00
Ian Gulliver
99083ecde5 Refactor error tracking to be edge-triggered with node setters
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 23:06:26 -08:00
Ian Gulliver
ed9a0cd60d Fix interface merging, error ordering, sACN client, and add charset headers
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 22:57:13 -08:00
Ian Gulliver
a912d73169 Refactor node storage and use proper types for protocol data
- Rename TypeID to ID throughout
- Remove re-derivable data (MACTableSize, SACNInputs now derived)
- Use typed ArtNetUniverse and SACNUniverse with methods
- Store multicast groups with lastSeen tracking in structs
- Remove int indexes in Nodes, use direct node pointers
- Parse multicast groups into typed struct instead of strings

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 22:36:44 -08:00
Ian Gulliver
fc5b36cd1c Remove separate tracking structures and store protocol data directly on nodes
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 22:15:54 -08:00
Ian Gulliver
7aac3c0559 Track sACN emitters and receivers with peer linking
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 21:27:35 -08:00
Ian Gulliver
85cfa6a9f4 Revert "Add missing node tracking for config-defined nodes"
This reverts commit 9ec193ef1d.
2026-01-28 08:42:12 -08:00
Ian Gulliver
9ec193ef1d Add missing node tracking for config-defined nodes
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 08:38:58 -08:00
Ian Gulliver
04e22b03cb Track node reachability across all IPs, increase ping interval
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 21:03:15 -08:00
Ian Gulliver
c8be46b739 Add per-node ping monitoring with unreachable error tracking
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 18:56:12 -08:00
Ian Gulliver
a94f816f3d Add SSE endpoint for real-time status updates
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 18:49:39 -08:00
Ian Gulliver
4c149ecdf7 Fix IP deduplication and filter link interfaces in JSON 2026-01-25 09:53:31 -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
9aebe8b83d Add HTTP API with JSON status endpoint and typeid support 2026-01-24 11:03:34 -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
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
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
3222e20e84 track multiple names per node 2026-01-23 13:11:38 -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
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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 Gulliver
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