feat(11-01): add 21 ClassFreqConfigs entries and include LDAP/Kerberos/Syslog in AllClasses()
- Add 21 new ClassFreqConfigs entries covering mDNS/SSDP/SNMP/QUIC/IMAP/POP3/SMTPSub/RDP/Telnet/VNC/FTP/SMB/TFTP/MySQL/PostgreSQL/Redis/MongoDB/SIP/LDAP/Kerberos/Syslog - Update AllClasses() to return 35 entries (add LDAP/Kerberos/Syslog in Infrastructure section) - Remove outdated Phase 11 exclusion comment from AllClasses() doc comment
This commit is contained in:
+2
-4
@@ -54,21 +54,19 @@ const (
|
|||||||
// --- Web extension (PROTO-07) ---
|
// --- Web extension (PROTO-07) ---
|
||||||
ClassQUIC TrafficClass = "QUIC"
|
ClassQUIC TrafficClass = "QUIC"
|
||||||
|
|
||||||
// --- Infrastructure extension (PROTO-08, D-01: no ClassFreqConfigs until Phase 11) ---
|
// --- Infrastructure extension (PROTO-08) ---
|
||||||
ClassLDAP TrafficClass = "LDAP"
|
ClassLDAP TrafficClass = "LDAP"
|
||||||
ClassKerberos TrafficClass = "Kerberos"
|
ClassKerberos TrafficClass = "Kerberos"
|
||||||
ClassSyslog TrafficClass = "Syslog"
|
ClassSyslog TrafficClass = "Syslog"
|
||||||
)
|
)
|
||||||
|
|
||||||
// AllClasses returns all known traffic classes in display order.
|
// AllClasses returns all known traffic classes in display order.
|
||||||
// Excludes ClassLDAP, ClassKerberos, and ClassSyslog — these have constants and rules
|
|
||||||
// but no ClassFreqConfigs entries until Phase 11, so they must not appear here
|
|
||||||
// (TestAllClassesHaveConfig in synth/config_test.go enforces the invariant).
|
|
||||||
func AllClasses() []TrafficClass {
|
func AllClasses() []TrafficClass {
|
||||||
return []TrafficClass{
|
return []TrafficClass{
|
||||||
// Infrastructure
|
// Infrastructure
|
||||||
ClassICMP, ClassDNS, ClassNTP, ClassDHCP,
|
ClassICMP, ClassDNS, ClassNTP, ClassDHCP,
|
||||||
ClassMDNS, ClassSSDP, ClassSNMP,
|
ClassMDNS, ClassSSDP, ClassSNMP,
|
||||||
|
ClassLDAP, ClassKerberos, ClassSyslog,
|
||||||
// Web
|
// Web
|
||||||
ClassHTTPS, ClassHTTP, ClassQUIC,
|
ClassHTTPS, ClassHTTP, ClassQUIC,
|
||||||
// Mail
|
// Mail
|
||||||
|
|||||||
+155
@@ -164,6 +164,58 @@ var ClassFreqConfigs = map[classify.TrafficClass]FreqConfig{
|
|||||||
Harmonics: WaveformPresetHarmonics(WaveformTriangle, 214.0, SampleRate),
|
Harmonics: WaveformPresetHarmonics(WaveformTriangle, 214.0, SampleRate),
|
||||||
Pan: 0.2,
|
Pan: 0.2,
|
||||||
Group: "Mail",
|
Group: "Mail",
|
||||||
|
},
|
||||||
|
// --- Infrastructure additions (Triangle, 93-118 Hz) ---
|
||||||
|
classify.ClassMDNS: {
|
||||||
|
BaseHz: 93.0,
|
||||||
|
WaveformType: WaveformTriangle,
|
||||||
|
Harmonics: WaveformPresetHarmonics(WaveformTriangle, 93.0, SampleRate),
|
||||||
|
Pan: 0.3,
|
||||||
|
Group: "Infrastructure",
|
||||||
|
},
|
||||||
|
classify.ClassSSDP: {
|
||||||
|
BaseHz: 105.0,
|
||||||
|
WaveformType: WaveformTriangle,
|
||||||
|
Harmonics: WaveformPresetHarmonics(WaveformTriangle, 105.0, SampleRate),
|
||||||
|
Pan: -0.2,
|
||||||
|
Group: "Infrastructure",
|
||||||
|
},
|
||||||
|
classify.ClassSNMP: {
|
||||||
|
BaseHz: 118.0,
|
||||||
|
WaveformType: WaveformTriangle,
|
||||||
|
Harmonics: WaveformPresetHarmonics(WaveformTriangle, 118.0, SampleRate),
|
||||||
|
Pan: 0.2,
|
||||||
|
Group: "Infrastructure",
|
||||||
|
},
|
||||||
|
// --- Web addition (Sawtooth, 190 Hz) ---
|
||||||
|
classify.ClassQUIC: {
|
||||||
|
BaseHz: 190.0,
|
||||||
|
WaveformType: WaveformSawtooth,
|
||||||
|
Harmonics: WaveformPresetHarmonics(WaveformSawtooth, 190.0, SampleRate),
|
||||||
|
Pan: -0.2,
|
||||||
|
Group: "Web",
|
||||||
|
},
|
||||||
|
// --- Mail additions (Triangle, 241-305 Hz) ---
|
||||||
|
classify.ClassIMAP: {
|
||||||
|
BaseHz: 241.0,
|
||||||
|
WaveformType: WaveformTriangle,
|
||||||
|
Harmonics: WaveformPresetHarmonics(WaveformTriangle, 241.0, SampleRate),
|
||||||
|
Pan: 0.3,
|
||||||
|
Group: "Mail",
|
||||||
|
},
|
||||||
|
classify.ClassPOP3: {
|
||||||
|
BaseHz: 271.0,
|
||||||
|
WaveformType: WaveformTriangle,
|
||||||
|
Harmonics: WaveformPresetHarmonics(WaveformTriangle, 271.0, SampleRate),
|
||||||
|
Pan: 0.4,
|
||||||
|
Group: "Mail",
|
||||||
|
},
|
||||||
|
classify.ClassSMTPSub: {
|
||||||
|
BaseHz: 305.0,
|
||||||
|
WaveformType: WaveformTriangle,
|
||||||
|
Harmonics: WaveformPresetHarmonics(WaveformTriangle, 305.0, SampleRate),
|
||||||
|
Pan: 0.5,
|
||||||
|
Group: "Mail",
|
||||||
},
|
},
|
||||||
// --- Remote Access (Square, 343 Hz) ---
|
// --- Remote Access (Square, 343 Hz) ---
|
||||||
classify.ClassSSH: {
|
classify.ClassSSH: {
|
||||||
@@ -173,6 +225,50 @@ var ClassFreqConfigs = map[classify.TrafficClass]FreqConfig{
|
|||||||
Pan: -0.7,
|
Pan: -0.7,
|
||||||
Group: "Remote Access",
|
Group: "Remote Access",
|
||||||
},
|
},
|
||||||
|
// --- Remote Access additions (Square, 385-485 Hz) ---
|
||||||
|
classify.ClassRDP: {
|
||||||
|
BaseHz: 385.0,
|
||||||
|
WaveformType: WaveformSquare,
|
||||||
|
Harmonics: WaveformPresetHarmonics(WaveformSquare, 385.0, SampleRate),
|
||||||
|
Pan: -0.6,
|
||||||
|
Group: "Remote Access",
|
||||||
|
},
|
||||||
|
classify.ClassTelnet: {
|
||||||
|
BaseHz: 432.0,
|
||||||
|
WaveformType: WaveformSquare,
|
||||||
|
Harmonics: WaveformPresetHarmonics(WaveformSquare, 432.0, SampleRate),
|
||||||
|
Pan: -0.5,
|
||||||
|
Group: "Remote Access",
|
||||||
|
},
|
||||||
|
classify.ClassVNC: {
|
||||||
|
BaseHz: 485.0,
|
||||||
|
WaveformType: WaveformSquare,
|
||||||
|
Harmonics: WaveformPresetHarmonics(WaveformSquare, 485.0, SampleRate),
|
||||||
|
Pan: -0.4,
|
||||||
|
Group: "Remote Access",
|
||||||
|
},
|
||||||
|
// --- File Transfer additions (Square, 545-687 Hz) ---
|
||||||
|
classify.ClassFTP: {
|
||||||
|
BaseHz: 545.0,
|
||||||
|
WaveformType: WaveformSquare,
|
||||||
|
Harmonics: WaveformPresetHarmonics(WaveformSquare, 545.0, SampleRate),
|
||||||
|
Pan: 0.5,
|
||||||
|
Group: "File Transfer",
|
||||||
|
},
|
||||||
|
classify.ClassSMB: {
|
||||||
|
BaseHz: 612.0,
|
||||||
|
WaveformType: WaveformSquare,
|
||||||
|
Harmonics: WaveformPresetHarmonics(WaveformSquare, 612.0, SampleRate),
|
||||||
|
Pan: 0.6,
|
||||||
|
Group: "File Transfer",
|
||||||
|
},
|
||||||
|
classify.ClassTFTP: {
|
||||||
|
BaseHz: 687.0,
|
||||||
|
WaveformType: WaveformSquare,
|
||||||
|
Harmonics: WaveformPresetHarmonics(WaveformSquare, 687.0, SampleRate),
|
||||||
|
Pan: 0.7,
|
||||||
|
Group: "File Transfer",
|
||||||
|
},
|
||||||
// --- Unknown (Custom harmonics, 771-1375 Hz) ---
|
// --- Unknown (Custom harmonics, 771-1375 Hz) ---
|
||||||
// D-05/D-06: dissonant harmonic character {1,1.0},{2,0.8},{3,0.4} retained for all Unknown entries.
|
// D-05/D-06: dissonant harmonic character {1,1.0},{2,0.8},{3,0.4} retained for all Unknown entries.
|
||||||
// WaveformType is zero value (WaveformCustom) so bank.go uses the stored Harmonics directly.
|
// WaveformType is zero value (WaveformCustom) so bank.go uses the stored Harmonics directly.
|
||||||
@@ -212,4 +308,63 @@ var ClassFreqConfigs = map[classify.TrafficClass]FreqConfig{
|
|||||||
Pan: 0.5,
|
Pan: 0.5,
|
||||||
Group: "Unknown",
|
Group: "Unknown",
|
||||||
},
|
},
|
||||||
|
// --- Database additions (Sawtooth, 1543-2182 Hz) ---
|
||||||
|
classify.ClassMySQL: {
|
||||||
|
BaseHz: 1543.0,
|
||||||
|
WaveformType: WaveformSawtooth,
|
||||||
|
Harmonics: WaveformPresetHarmonics(WaveformSawtooth, 1543.0, SampleRate),
|
||||||
|
Pan: -0.4,
|
||||||
|
Group: "Database",
|
||||||
|
},
|
||||||
|
classify.ClassPostgreSQL: {
|
||||||
|
BaseHz: 1732.0,
|
||||||
|
WaveformType: WaveformSawtooth,
|
||||||
|
Harmonics: WaveformPresetHarmonics(WaveformSawtooth, 1732.0, SampleRate),
|
||||||
|
Pan: -0.2,
|
||||||
|
Group: "Database",
|
||||||
|
},
|
||||||
|
classify.ClassRedis: {
|
||||||
|
BaseHz: 1944.0,
|
||||||
|
WaveformType: WaveformSawtooth,
|
||||||
|
Harmonics: WaveformPresetHarmonics(WaveformSawtooth, 1944.0, SampleRate),
|
||||||
|
Pan: 0.2,
|
||||||
|
Group: "Database",
|
||||||
|
},
|
||||||
|
classify.ClassMongoDB: {
|
||||||
|
BaseHz: 2182.0,
|
||||||
|
WaveformType: WaveformSawtooth,
|
||||||
|
Harmonics: WaveformPresetHarmonics(WaveformSawtooth, 2182.0, SampleRate),
|
||||||
|
Pan: 0.4,
|
||||||
|
Group: "Database",
|
||||||
|
},
|
||||||
|
// --- VoIP (Sine, 2449 Hz) ---
|
||||||
|
classify.ClassSIP: {
|
||||||
|
BaseHz: 2449.0,
|
||||||
|
WaveformType: WaveformSine,
|
||||||
|
Harmonics: WaveformPresetHarmonics(WaveformSine, 2449.0, SampleRate),
|
||||||
|
Pan: 0.0,
|
||||||
|
Group: "VoIP",
|
||||||
|
},
|
||||||
|
// --- Infrastructure auto-assigned (Triangle, 2950-3250 Hz) per D-02 ---
|
||||||
|
classify.ClassLDAP: {
|
||||||
|
BaseHz: 2950.0,
|
||||||
|
WaveformType: WaveformTriangle,
|
||||||
|
Harmonics: WaveformPresetHarmonics(WaveformTriangle, 2950.0, SampleRate),
|
||||||
|
Pan: -0.2,
|
||||||
|
Group: "Infrastructure",
|
||||||
|
},
|
||||||
|
classify.ClassKerberos: {
|
||||||
|
BaseHz: 3250.0,
|
||||||
|
WaveformType: WaveformTriangle,
|
||||||
|
Harmonics: WaveformPresetHarmonics(WaveformTriangle, 3250.0, SampleRate),
|
||||||
|
Pan: 0.0,
|
||||||
|
Group: "Infrastructure",
|
||||||
|
},
|
||||||
|
classify.ClassSyslog: {
|
||||||
|
BaseHz: 3050.0,
|
||||||
|
WaveformType: WaveformTriangle,
|
||||||
|
Harmonics: WaveformPresetHarmonics(WaveformTriangle, 3050.0, SampleRate),
|
||||||
|
Pan: 0.2,
|
||||||
|
Group: "Infrastructure",
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user