diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/target/trx_toolkit/data_msg.py | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/target/trx_toolkit/data_msg.py b/src/target/trx_toolkit/data_msg.py index bbc9d936..62fd29b5 100644 --- a/src/target/trx_toolkit/data_msg.py +++ b/src/target/trx_toolkit/data_msg.py @@ -152,7 +152,7 @@ class DATAMSG: return struct.unpack(">L", buf)[0] # Generates a TRX DATA message - def gen_msg(self): + def gen_msg(self, legacy = False): # Validate all the fields if not self.validate(): raise ValueError("Message incomplete or incorrect") @@ -174,6 +174,11 @@ class DATAMSG: # Generate burst buf += self.gen_burst() + # This is a rudiment from (legacy) OpenBTS transceiver, + # some L1 implementations still expect two dummy bytes. + if legacy: + buf += bytearray(2) + return buf # Parses a TRX DATA message @@ -461,6 +466,9 @@ if __name__ == '__main__': l12trx_raw = msg_l12trx_ref.gen_msg() trx2l1_raw = msg_trx2l1_ref.gen_msg() + # Encode a TRX2L1 message in legacy mode + trx2l1_raw_legacy = msg_trx2l1_ref.gen_msg(legacy = True) + log.info("Parsing generated messages back") # Parse generated DATA messages @@ -469,11 +477,16 @@ if __name__ == '__main__': msg_l12trx_dec.parse_msg(l12trx_raw) msg_trx2l1_dec.parse_msg(trx2l1_raw) + # Parse generated TRX2L1 message in legacy mode + msg_trx2l1_legacy_dec = DATAMSG_TRX2L1() + msg_trx2l1_legacy_dec.parse_msg(trx2l1_raw_legacy) + log.info("Comparing decoded messages with the reference") # Compare bursts assert(msg_l12trx_dec.burst == burst_l12trx_ref) assert(msg_trx2l1_dec.burst == burst_trx2l1_ref) + assert(msg_trx2l1_legacy_dec.burst == burst_trx2l1_ref) log.info("Compare bursts: OK") |