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
Ian Gulliver
3c8afa9bdf
add flags for disabling discovery and controlling logging
2026-01-17 21:02:30 -08:00
Ian Gulliver
0d36c21db2
add node names from hostname, lldp, and snmp
...
populate local node name from hostname. extract system name from lldp packets and snmp sysname oid. call logtree after node merges.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-29 22:27:31 -08:00
Ian Gulliver
75bbf4b0a4
fix local address population and snmp reverse port discovery
...
populate root node with local macs/ips at startup, excluding loopback addresses and permanent arp entries. detect when snmp finds parent node mac in child forwarding table and set child localport.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-11-29 22:13:25 -08:00