48 Commits

Author SHA1 Message Date
Ian Gulliver
dd360b8e28 Apply go fix modernizations 2026-03-05 11:39:36 -08:00
Ian Gulliver
48e1e69fde Add IsSelf flag to identify tendrils server node
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 11:42:07 -08:00
Ian Gulliver
92ab5d8a6e Add TP-Link AP support with wireless client sub-locations
- Add NodeType enum (switch, ap, wireless_client, wired_client)
- Poll SNMPv2c and SNMPv3 in parallel to win race with ping
- Render APs with bordered sub-locations containing wireless clients
- Fall back to parent interface stats when child lacks them
- Log when unreachable nodes become reachable via merge

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 20:33:42 -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
1618ef1b87 Add artmap polling to discover sACN unicast receivers
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 13:03:35 -08:00
Ian Gulliver
d970d1db86 Use artnet library for per-interface discovery
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 09:14:04 -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
1df6fd318f Add sACN universe discovery listener 2026-01-28 21:13:22 -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
6ae561b968 Include config in status response and push on SIGHUP
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 08:30:23 -08:00
Ian Gulliver
ccd6956d6a Fix ARP incomplete entries and Art-Net broadcast reception
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 22:57:53 -08:00
Ian Gulliver
bbd938b924 Add broadcast packet tracking with rate monitoring
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 19:40:39 -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
a96eb7db8c Add port error tracking with UI display
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 18:43:23 -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
3a33ece7d9 Add SIGHUP handler to reload config file 2026-01-25 09:38:52 -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
8b50762c92 Add location grouping with cola layout 2026-01-24 15:04:42 -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
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
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
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
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
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 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
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
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
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
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
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
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
Ian Gulliver
c780fba93c add snmpv3 support 2025-11-29 21:16:58 -08:00
Ian Gulliver
e29e88b598 filter multicast macs 2025-11-29 21:08:32 -08:00
Ian Gulliver
c215800b17 Refactor to tree-based topology with ASCII visualization 2025-11-29 20:53:29 -08:00
Ian Gulliver
5dbdc0a408 Add neighbor tracking system with LLDP integration 2025-11-29 20:36:45 -08:00
Ian Gulliver
b85925f644 Split LLDP code into separate file and refactor interface tracking 2025-11-28 15:44:28 -08:00
Ian Gulliver
1073d0a267 Add LLDP packet capture and logging 2025-11-28 15:28:47 -08:00
Ian Gulliver
1739b7fb87 Add network interface discovery and monitoring 2025-11-28 15:18:22 -08:00