a5e072cbff
Splits mld.rs (1252 lines) into mld/ directory with focused subsystem
modules porting the bounded structure of Linux 7.1 mld/*.c:
mld/mod.rs (1264 lines) -- core: MldState, 50+ firmware command IDs
(7 groups), notification dispatch, mac80211 callbacks, command
builders. Added frame_count/byte_count to Txq for TX accounting.
Added FwNotRunning/InvalidState/InvalidId to MldError.
mld/sta.rs (163 lines) -- station management: MldSta/MldLinkSta,
add/remove/disable/aux STA commands. Restored from 41c5926.
mld/scan.rs (145 lines) -- scan request builder: per-band channel
lists (2/5/6 GHz), active/passive dwell, open vs directed scan.
mld/link.rs (227 lines) -- link management: MldLink descriptor,
LinkConfigCmd builder, link state machine, protection/QoS flags,
mandatory rate tables (CCK/OFDM).
mld/tx.rs (225 lines) -- TX path: TxCmd structure, TID->AC mapping
(802.11e), TX status decode, TX command builder, queue accounting.
mld/key.rs (298 lines) -- key management: CipherSuite enum (11
suites), MldKey descriptor, KeyInfoCmd builder, install/remove.
mld/agg.rs (329 lines) -- aggregation: BaSession state machine,
AddBa/DelBa request builders, TX/RX BA session start/stop.
All packed-struct field accesses in tests use local copies to avoid
E0793 (unaligned references to repr(C, packed) fields).
51 tests pass (23 original + 28 new). Compiles clean.