EgressView reads L3/L4 sessions through a router poller adapter. The current production adapter is Yamaha RTX, but the server uses a small generic contract so other router families can be added without changing the UI, database schema, or connection history pipeline.
Adapters are validated by src/pollers/router-interface.js.
Required methods:
configure(cfg)connect(onReady)disconnect()reconnect()isEnabled()isReady()fetchSessions()refreshArp()refreshNdp()needsArpRefresh()needsNdpRefresh()getArpCache()getArpMac(ip)getNdpByMac(mac)getIp()getUser()hasPass()getNat()getHostFp()exec(cmd, timeoutMs)detect(opts)detectCurrent(opts)fetchSessions() must return normalized session objects:
{
proto: 'TCP',
src: '192.168.1.10',
sport: 54321,
dst: '203.0.113.10',
dport: 443,
ttl: 300
}
src/pollers/yamaha-adapter.js wraps the existing Yamaha SSH implementation in
src/pollers/yamaha.js.
The adapter also keeps the previous Yamaha-specific method names
(connectYamaha, fetchNatSessions, refreshYamahaArp, and related aliases)
so existing routes and helpers can migrate gradually.
Cisco and conntrack-based routers should be added as separate follow-up adapters on top of this contract.