diff options
author | Philipp Maier <pmaier@sysmocom.de> | 2017-03-02 17:32:57 +0100 |
---|---|---|
committer | Philipp Maier <pmaier@sysmocom.de> | 2017-05-17 16:22:27 +0200 |
commit | 2c841100a96f66ed55524df0610784d7e7d15165 (patch) | |
tree | 00401c9e3c8a6badfe37e6216909a19b5f813a65 /src/osmo-bts-octphy/l1_if.c | |
parent | 17a09507b8a91c62c1b1d8d06b02b115275a4aac (diff) |
octphy: align frame number for new firmware versions
Firmware releases OCTSDR-2G-02.07.00-B1314-BETA and newer require
to align the GPRS frame number (fn-3) for ph_data indications.
To preserve compatibility the header version is checked during
compile time and the right method is compiled in.
Change-Id: Ib93d5fb3b34ff92f10021a0e9ce9c8aa3044b7ff
Diffstat (limited to 'src/osmo-bts-octphy/l1_if.c')
-rw-r--r-- | src/osmo-bts-octphy/l1_if.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/osmo-bts-octphy/l1_if.c b/src/osmo-bts-octphy/l1_if.c index a4d0e3ad..ac4d960d 100644 --- a/src/osmo-bts-octphy/l1_if.c +++ b/src/osmo-bts-octphy/l1_if.c @@ -50,6 +50,12 @@ #include "l1_utils.h" #include "octpkt.h" +#include <octphy/octvc1/main/octvc1_main_version.h> + +/* NOTE: The octphy GPRS frame number handling changed with + * OCTSDR-2G-02.07.00-B1314-BETA. From that version on, each ph_data_ind must + * subtract 3 from the frame number before passing the frame to the PCU */ +#define cOCTVC1_MAIN_VERSION_ID_FN_PARADIGM_CHG 0x41c0522 #include <octphy/octpkt/octpkt_hdr.h> #define OCTVC1_RC2STRING_DECLARE @@ -1040,7 +1046,16 @@ static int handle_ph_data_ind(struct octphy_hdl *fl1, PRIM_OP_INDICATION, l1p_msg); l1sap->u.data.link_id = link_id; l1sap->u.data.chan_nr = chan_nr; + +#if (cOCTVC1_MAIN_VERSION_ID >= cOCTVC1_MAIN_VERSION_ID_FN_PARADIGM_CHG) + if (sapi == cOCTVC1_GSM_SAPI_ENUM_PDTCH) { + l1sap->u.data.fn = fn - 3; + } else + l1sap->u.data.fn = fn; +#else l1sap->u.data.fn = fn; +#endif + l1sap->u.data.rssi = rssi; b_total = data_ind->MeasurementInfo.usBERTotalBitCnt; b_error =data_ind->MeasurementInfo.usBERCnt; |