aboutsummaryrefslogtreecommitdiffstats
path: root/src/osmo-bts-octphy
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2017-03-02 17:32:57 +0100
committerPhilipp Maier <pmaier@sysmocom.de>2017-05-17 16:22:27 +0200
commit2c841100a96f66ed55524df0610784d7e7d15165 (patch)
tree00401c9e3c8a6badfe37e6216909a19b5f813a65 /src/osmo-bts-octphy
parent17a09507b8a91c62c1b1d8d06b02b115275a4aac (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')
-rw-r--r--src/osmo-bts-octphy/l1_if.c15
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;