- 28 new subtests in TestClassify covering all new protocol/port combinations - TestAllClassesCount updated to assert 32 classes - All PROTO-01 through PROTO-09 requirements satisfied
4.2 KiB
4.2 KiB
Requirements: NetSynth
Defined: 2026-03-27 Core Value: Network traffic patterns are instantly recognizable as distinct sounds — a ping sounds different from HTTPS noise, which sounds different from a port scan.
v1.2 Requirements
Requirements for extended protocol coverage milestone. Each maps to roadmap phases.
Cleanup
- CLEAN-01: Remove stale
NumLayersconstant and hardcoded frequency range test assertions that would block new class additions
Protocol Coverage
- PROTO-01: Add Mail family protocols: IMAP (143/993), POP3 (110/995), SMTP-submission (587)
- PROTO-02: Add File Transfer family protocols: FTP (20-21), SMB/CIFS (445), TFTP (69)
- PROTO-03: Add Remote Access family protocols: RDP (3389), Telnet (23), VNC (5900)
- PROTO-04: Add Database family protocols: MySQL (3306), PostgreSQL (5432), Redis (6379), MongoDB (27017)
- PROTO-05: Add Discovery family protocols: mDNS (5353), SSDP/UPnP (1900), SNMP (161-162)
- PROTO-06: Add VoIP family: SIP (5060/5061)
- PROTO-07: Add Web family extension: QUIC/HTTP3 (UDP 443)
- PROTO-08: Add Infrastructure family protocols: LDAP (389/636), Kerberos (88), Syslog (514)
- PROTO-09: Existing 10 protocol classifications remain unchanged — no regression in rule matching behavior
Frequency Design
- FREQ-01: All traffic classes (existing + new) are redistributed into group-coherent frequency bands using musical interval ratios (not fixed Hz steps)
- FREQ-02: Within-family protocols are separated by at least a major second interval (ratio 1.122) to avoid critical band masking
- FREQ-03: The full frequency allocation table is designed and documented before any FreqConfig code is written
- FREQ-04: Auto-assign frequency range for user custom classes is updated to avoid collision with new built-in frequencies
Group System
- GRP-01: Each traffic class belongs to a named group (Infrastructure, Web, Mail, File Transfer, Remote Access, Database, Discovery, VoIP)
- GRP-02:
--print-configoutput organizes classes by group with section headers - GRP-03: Users can define
[groups]in TOML config to reassign protocols to different sound families - GRP-04: FreqConfig gains a
Groupfield that drives group-aware frequency allocation and config output
Future Requirements
Deferred to later releases.
Dynamic Protocol Detection
- DYN-01: RTP voice/video payload detection (dynamically negotiated ports — cannot use port-based rules)
- DYN-02: Application-layer protocol detection via DPI for ambiguous ports
Audio Tuning
- TUNE-01: User can configure time window duration via
--windowflag - TUNE-02: User can configure output duration when reading pcap files via
--durationflag
Out of Scope
| Feature | Reason |
|---|---|
| RTP payload detection | Dynamically negotiated ports; needs DPI, not port rules |
| mDNS multicast group join | Would require raw socket changes; port 5353 classification is sufficient |
| Protocol-specific metadata extraction | Beyond classification scope; tool sonifies, not inspects |
| Real-time audio playback | File output only — established v1.0 constraint |
| GUI config editor | CLI-only tool; TOML is human-editable |
Traceability
Which phases cover which requirements. Updated during roadmap creation.
| Requirement | Phase | Status |
|---|---|---|
| CLEAN-01 | Phase 8 | Complete |
| FREQ-01 | Phase 9 | Pending |
| FREQ-02 | Phase 9 | Pending |
| FREQ-03 | Phase 9 | Pending |
| FREQ-04 | Phase 9 | Complete |
| GRP-01 | Phase 9 | Pending |
| GRP-04 | Phase 9 | Pending |
| PROTO-01 | Phase 10 | Complete |
| PROTO-02 | Phase 10 | Complete |
| PROTO-03 | Phase 10 | Complete |
| PROTO-04 | Phase 10 | Complete |
| PROTO-05 | Phase 10 | Complete |
| PROTO-06 | Phase 10 | Complete |
| PROTO-07 | Phase 10 | Complete |
| PROTO-08 | Phase 10 | Complete |
| PROTO-09 | Phase 10 | Complete |
| GRP-02 | Phase 11 | Pending |
| GRP-03 | Phase 11 | Pending |
Coverage:
- v1.2 requirements: 18 total
- Mapped to phases: 18 (complete)
- Unmapped: 0
Requirements defined: 2026-03-27 Last updated: 2026-03-27 — traceability complete, roadmap phases 8-11 assigned