mirror of
https://gitea.osmocom.org/cellular-infrastructure/osmo-hlr.git
synced 2025-10-23 08:22:12 +00:00
Add ind_bitlen column to auc_3g to record each USIM's IND size according to 3GPP TS 33.102 -- default is 5 bits, as suggested by the spec. Introduce auc_3g_ind to each connecting GSUP client to use as IND index for generating auth tuples sent to this client. With osmo_gsup_server_add_conn(), implement a scheme where clients receive fixed auc_3g_ind indexes based on the order in which they connect; each new connection takes the lowest unused auc_3g_ind, so in case one of the clients restarts, it will most likely receive the same auc_3g_ind, and if one client disconnects, no other clients' auc_3g_ind are affected. Add gsup_server_test.c to test the auc_3g_ind index distribution scheme. Depends: libosmocore I4eac5be0c0b2cede04464c4c3a0873102d952453 for llist_first Related: OS#1969 Change-Id: If4501ed4ff8e923fa6fe8b80c44c5ad647a8ed60
95 lines
2.2 KiB
Plaintext
95 lines
2.2 KiB
Plaintext
test_gsup_server.c
|
|
|
|
===== test_add_conn
|
|
|
|
Add 10 items
|
|
conn_inst[0].auc_3g_ind == 0
|
|
conn_inst[1].auc_3g_ind == 1
|
|
conn_inst[2].auc_3g_ind == 2
|
|
conn_inst[3].auc_3g_ind == 3
|
|
conn_inst[4].auc_3g_ind == 4
|
|
conn_inst[5].auc_3g_ind == 5
|
|
conn_inst[6].auc_3g_ind == 6
|
|
conn_inst[7].auc_3g_ind == 7
|
|
conn_inst[8].auc_3g_ind == 8
|
|
conn_inst[9].auc_3g_ind == 9
|
|
|
|
Expecting a list of 0..9
|
|
conn[0].auc_3g_ind == 0
|
|
conn[1].auc_3g_ind == 1
|
|
conn[2].auc_3g_ind == 2
|
|
conn[3].auc_3g_ind == 3
|
|
conn[4].auc_3g_ind == 4
|
|
conn[5].auc_3g_ind == 5
|
|
conn[6].auc_3g_ind == 6
|
|
conn[7].auc_3g_ind == 7
|
|
conn[8].auc_3g_ind == 8
|
|
conn[9].auc_3g_ind == 9
|
|
|
|
Punch two holes in the sequence in arbitrary order, a larger one from 2..4 and a single one at 7.
|
|
|
|
Expecting a list of 0,1, 5,6, 8,9
|
|
conn[0].auc_3g_ind == 0
|
|
conn[1].auc_3g_ind == 1
|
|
conn[2].auc_3g_ind == 5
|
|
conn[3].auc_3g_ind == 6
|
|
conn[4].auc_3g_ind == 8
|
|
conn[5].auc_3g_ind == 9
|
|
|
|
Add conns, expecting them to take the open slots
|
|
conn_inst[12].auc_3g_ind == 2
|
|
conn_inst[13].auc_3g_ind == 3
|
|
conn_inst[14].auc_3g_ind == 4
|
|
conn_inst[17].auc_3g_ind == 7
|
|
conn_inst[18].auc_3g_ind == 10
|
|
|
|
Expecting a list of 0..10
|
|
conn[0].auc_3g_ind == 0
|
|
conn[1].auc_3g_ind == 1
|
|
conn[2].auc_3g_ind == 2
|
|
conn[3].auc_3g_ind == 3
|
|
conn[4].auc_3g_ind == 4
|
|
conn[5].auc_3g_ind == 5
|
|
conn[6].auc_3g_ind == 6
|
|
conn[7].auc_3g_ind == 7
|
|
conn[8].auc_3g_ind == 8
|
|
conn[9].auc_3g_ind == 9
|
|
conn[10].auc_3g_ind == 10
|
|
|
|
Does it also work for the first item?
|
|
|
|
Expecting a list of 1..10
|
|
conn[0].auc_3g_ind == 1
|
|
conn[1].auc_3g_ind == 2
|
|
conn[2].auc_3g_ind == 3
|
|
conn[3].auc_3g_ind == 4
|
|
conn[4].auc_3g_ind == 5
|
|
conn[5].auc_3g_ind == 6
|
|
conn[6].auc_3g_ind == 7
|
|
conn[7].auc_3g_ind == 8
|
|
conn[8].auc_3g_ind == 9
|
|
conn[9].auc_3g_ind == 10
|
|
|
|
Add another conn, should take auc_3g_ind == 0
|
|
conn_inst[20].auc_3g_ind == 0
|
|
|
|
Expecting a list of 0..10
|
|
conn[0].auc_3g_ind == 0
|
|
conn[1].auc_3g_ind == 1
|
|
conn[2].auc_3g_ind == 2
|
|
conn[3].auc_3g_ind == 3
|
|
conn[4].auc_3g_ind == 4
|
|
conn[5].auc_3g_ind == 5
|
|
conn[6].auc_3g_ind == 6
|
|
conn[7].auc_3g_ind == 7
|
|
conn[8].auc_3g_ind == 8
|
|
conn[9].auc_3g_ind == 9
|
|
conn[10].auc_3g_ind == 10
|
|
|
|
If a client reconnects, it will (likely) get the same auc_3g_ind
|
|
conn_inst[5].auc_3g_ind == 5
|
|
conn_inst[5].auc_3g_ind == 5
|
|
===== test_add_conn: SUCCESS
|
|
|
|
Done
|