Implements Phase 1 of network topology discovery using LLDP (Link Layer Discovery Protocol) via SNMP, inspired by concepts from lldp2map. New Features: - LLDP-MIB walker for discovering network neighbors via SNMP - Database schema for storing neighbor relationships - Functions to discover, store, and query device neighbors - Automatic device linking when neighbors are found in database Components Added: - Migration: device_neighbors table with unique constraint on (device_id, local_port, neighbor_name) - Schema: Towerops.Topology.DeviceNeighbor for neighbor relationships - Module: Towerops.Topology.Lldp for SNMP LLDP-MIB walking - Functions: discover_lldp_neighbors/1, list_lldp_neighbors/1, remove_stale_lldp_neighbors/1 in Topology context LLDP-MIB OIDs: - 1.0.8802.1.1.2.1.3.3.0 (lldpLocSysName) - 1.0.8802.1.1.2.1.3.7.1.4 (lldpLocPortDesc) - 1.0.8802.1.1.2.1.4.1.1.7 (lldpRemPortId) - 1.0.8802.1.1.2.1.4.1.1.8 (lldpRemPortDesc) - 1.0.8802.1.1.2.1.4.1.1.9 (lldpRemSysName) - 1.0.8802.1.1.2.1.4.2.1.3 (lldpRemManAddr) CI Fix: - Updated config/test.exs to use DATABASE_URL from environment in CI - Fixes "connection refused to localhost:5432" errors in CI builds - Falls back to localhost config for local development Code Quality: - Refactored LLDP module to reduce cyclomatic complexity - Extracted helper functions to improve readability - Used 'with' statement to reduce nesting in parse_management_address - All Credo checks passing Next Steps (Phase 2): - Background worker for automated topology discovery - Topology visualization in LiveView - Recursive discovery from seed devices |
||
|---|---|---|
| .. | ||
| gettext | ||
| mibs | ||
| profiles | ||
| proto | ||
| repo | ||
| static | ||