diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2016-06-21 19:47:26 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2016-06-22 23:25:43 +0000 |
commit | 380a2e6d902fbfb00fdba9bd81abc0f0b7b2093b (patch) | |
tree | 0b9f9c8c6ff10533933aef9b05fb9b3757e68e1c /doc | |
parent | ccb11487174545672571515cf98671b0267fa141 (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