ust: complete the USIM service table (147-150) + Services editor data fixes
The PWA's EF_UST_SERVICES stopped at 146; TS 31.102 §4.2.8 pins 147-150 (5MBS UE pre-configuration, Operator Controlled Signal Threshold per Access Technology, A2X, IMS Data Channel Indication). Add them and fix the two test fixtures that assumed the 146-service table. Resolve the three Services-editor FS mappings against the spec: - eCall Data (89) -> EF.SDN 6F49 (+ EF.FDN 6F3A) - eCall Data over IMS (112) -> EF.SDNURI 6FEF (+ EF.FDNURI 6FED) - EARFCN list for MTC/NB-IOT (121) -> EF.EARFCNList 6FFD; "Extended EARFCN support" (100) is a capability, not a file. Record the FID-first rule: the resolver and FS check key by (DF, FID), the symbolic name is only a label; and clarify that the FS check is card-only (independent of the cardless uicc_files.json list).
This commit is contained in:
1 parent
1d5a049ea1
commit
6d762b9d9c
5 files changed
+50
-39
No files matched your search
@@ -573,7 +573,7 @@ test('F8: the ADN-family entries name their extension EF and use it in refusals'
|
||||
// Wave 2 fixtures.
|
||||
const UST_ONE = '00000010'; // service 29
|
||||
const UST_MULTI = '010204'; // services 1, 10, 19
|
||||
const UST_UNMODELLED = '000000' + '10' + '00'.repeat(14) + 'FC'; // 29 + bits 147-152
|
||||
const UST_UNMODELLED = '000000' + '10' + '00'.repeat(14) + 'C0'; // 29 + bits 151-152 (above the 150-service table)
|
||||
const EST_FF = 'FFFF';
|
||||
const ACC_ONE = '8001'; // classes 15 and 0
|
||||
const AD_HEX = '00' + '0000' + '03' + 'AABB'; // op normal, info 0000, MNC 3, RFU
|
||||
@@ -615,14 +615,14 @@ test('service tables: encode/decode round-trips and unmodelled bits', () => {
|
||||
assert.strictEqual(entry.enc({ services: unmodelled }, UST_UNMODELLED), UST_UNMODELLED);
|
||||
// unchecking everything clears the table bits but keeps the unmodelled byte
|
||||
assert.strictEqual(entry.enc({ services: [] }, UST_UNMODELLED),
|
||||
'000000' + '00' + '00'.repeat(14) + 'FC');
|
||||
'000000' + '00' + '00'.repeat(14) + 'C0');
|
||||
// length is kept
|
||||
assert.strictEqual(entry.enc({ services: efDecServiceTable(efBytes('00000010' + '00'), EF_UST_SERVICES).services },
|
||||
'0000001000'), '0000001000');
|
||||
});
|
||||
|
||||
test('service tables: unknown services and a too-short table are refused', () => {
|
||||
assert.throws(() => efEncServiceTable({ services: [{ n: 147, name: 'RFU' }] },
|
||||
assert.throws(() => efEncServiceTable({ services: [{ n: 151, name: 'RFU' }] },
|
||||
'FF'.repeat(19), EF_UST_SERVICES), /Unknown service/);
|
||||
assert.throws(() => efEncServiceTable({ services: [{ n: 9, name: 'MSISDN' }] },
|
||||
'00', EF_UST_SERVICES), /too short for service/);
|
||||
|
||||
Reference in new issue
Block a user