35 traffic classes across 9 protocol families shipped. Archives
ROADMAP, REQUIREMENTS, and phase directories to milestones/v1.2-*.
Updates README with new protocol families, sound design table,
and [groups] TOML config documentation.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
classify/types.go TrafficClass constants from Phase 10
ClassFreqConfigs with 35 entries
AllClasses() returning 35 entries
synth/bank.go
config/config.go
config/config_test.go
synth/bank_test.go
added
patterns
WaveformPresetHarmonics for all new entries
len(classify.AllClasses()) for dynamic counts
created
modified
synth/config.go
classify/types.go
synth/bank_test.go
config/config_test.go
classify/classifier_test.go
Use len(classify.AllClasses()) in synth and config tests for dynamic count validation
LDAP/Kerberos/Syslog placed in Infrastructure section of AllClasses() after SNMP
All 21 new ClassFreqConfigs entries use WaveformPresetHarmonics() per D-01 decision
duration
completed
tasks
files_modified
~8min
2026-03-27
2
5
Phase 11 Plan 01: Frequency Config Data Layer Summary
One-liner: Added 21 ClassFreqConfigs entries (mDNS through Syslog) and expanded AllClasses() to 35 with LDAP/Kerberos/Syslog, fixing all hardcoded count assertions across synth, config, and classify test files.
What Was Built
Task 1: Add 21 ClassFreqConfigs entries and update AllClasses()
synth/config.go — Added 21 new FreqConfig entries to ClassFreqConfigs map, organized by protocol family:
Family
Classes
Hz Range
Waveform
Infrastructure additions
mDNS, SSDP, SNMP
93-118 Hz
Triangle
Web addition
QUIC
190 Hz
Sawtooth
Mail additions
IMAP, POP3, SMTP-sub
241-305 Hz
Triangle
Remote Access additions
RDP, Telnet, VNC
385-485 Hz
Square
File Transfer additions
FTP, SMB, TFTP
545-687 Hz
Square
Database additions
MySQL, PostgreSQL, Redis, MongoDB
1543-2182 Hz
Sawtooth
VoIP
SIP
2449 Hz
Sine
Infrastructure auto-assigned
LDAP, Kerberos, Syslog
2950-3250 Hz
Triangle
All 21 entries use WaveformPresetHarmonics() per D-01. Total map: 35 entries.
classify/types.go — Updated AllClasses():
Added ClassLDAP, ClassKerberos, ClassSyslog to Infrastructure section (after ClassSNMP)
Updated doc comment: removed Phase 11 exclusion note, now says "AllClasses returns all known traffic classes in display order."
Now returns 35 entries (was 32)
Task 2: Fix all hardcoded count assertions
File
Change
synth/bank_test.go
Renamed TestNewBankHas14Layers to TestNewBankHasAllLayers; != 14 → != len(classify.AllClasses())
config/config_test.go
4 occurrences of != 14 → != len(classify.AllClasses()); TestPrintConfigContainsAllClasses: hardcoded 14-class list → classify.AllClasses() loop
classify/classifier_test.go
want 32 → want 35 in TestAllClassesCount
Verification Results
go test ./...
ok github.com/netsynth/netsynth/aggregate
ok github.com/netsynth/netsynth/capture
ok github.com/netsynth/netsynth/classify
ok github.com/netsynth/netsynth/cmd/netsynth
ok github.com/netsynth/netsynth/config
ok github.com/netsynth/netsynth/encode
ok github.com/netsynth/netsynth/synth
fix(11-01): update hardcoded count assertions to reflect 35 traffic classes
Deviations from Plan
1. [Rule 3 - Blocker] Worktree was at stale commit missing Phase 8-10 changes
Found during: Pre-execution setup
Issue: Worktree branch worktree-agent-af29ad97 was at commit 8e565ec (milestone v1.2 roadmap docs), 43 commits behind master. The target files (synth/config.go, classify/types.go) were in their Phase 7 state.
Fix: Ran git merge master --no-edit (fast-forward) to bring worktree to current HEAD 683470a.
Files modified: All files (fast-forward merge, no conflicts)
Commit: Not a separate commit — prerequisite action before Task 1
Known Stubs
None — all 35 ClassFreqConfigs entries have complete Hz, waveform, pan, and group values. No placeholder data.