aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2016-06-21 19:47:26 +0200
committerHarald Welte <laforge@gnumonks.org>2016-06-22 23:25:43 +0000
commit380a2e6d902fbfb00fdba9bd81abc0f0b7b2093b (patch)
tree0b9f9c8c6ff10533933aef9b05fb9b3757e68e1c /doc
parentccb11487174545672571515cf98671b0267fa141 (diff)
lc15: add L3 handle to l1prim messages
Analogous to 7158c2ed082eaca6063a501e490e8d3c3b181560 in osmo-bts-sysmo. Place a layer 3 handle into GSM L1 messages to better match up confirmations to respective requests. This handle is a uint32_t transparently returned in the confirmation messages, so a match-up is easy to add. So far, a GSM L1 confirmation message received for a preceding L1 Request was matched only by the prim_id. That meant that only one instance of the same primitive could be waiting for a confirmation at any given time, or the responses would get mixed up: the struct wait_l1_conf instances entered into the fl1h->wlc_list queue would be returned to a possibly mismatching confirmation handler. (Seen during testing of dyn pdch switching.) Send the hLayer3 handle out via prim_init(), using new static functions to produce handles on different scopes: * l1p_handle_for_trx() * l1p_handle_for_ts() * l1p_handle_for_lchan() (These could possibly move to a more general .h/.c file later.) Remember the hLayer3 handle in * struct wait_l1_conf. Match the incoming confirmations' and stored hLayer3 handles up in, and remove a now obsolete comment from: * is_prim_compat() Since the hLayer3 members are at different byte offsets in GsmL1_Prim_t.u.*, use large switch statements to set/get the value: * In prim_init(), extend existing switch statement to set in GsmL1_Prim_t. * Add l1p_get_hLayer3() to retrieve from GsmL1_Prim_t (could possibly move to a more general .h/.c file later). Note that some messages are already using the hLayer3 handle, and will overwrite it after calling prim_init(), so those are not affected. Change-Id: I17f95ba744c3e944a2241809106506f8dd1b24f0
Diffstat (limited to 'doc')
0 files changed, 0 insertions, 0 deletions