def parse_event_lte_rrc_ul_msg(self, radio_id, ts, arg1, arg2): osmocore_log_hdr = util.create_osmocore_logging_header( timestamp=ts, process_name=b'Event', pid=1610, ) gsmtap_hdr = util.create_gsmtap_header( version=2, payload_type=util.gsmtap_type.OSMOCORE_LOG) channel_ul_map = {5: "CCCH", 6: "DCCH"} message_type_map = { 0x01: "RRCConnectionRequest", 0x84: "RRCConnectionSetupComplete", 0x89: "ULInformationTransfer", } if arg1 in channel_ul_map.keys(): channel = channel_ul_map[arg1] else: channel = "Unknown" if arg2 in message_type_map.keys(): message_type = message_type_map[arg2] else: message_type = "Unknown ({:2x})".format(arg2) log_content = "LTE_RRC_UL_MSG: channel={}, message_type={}".format( channel, message_type).encode('utf-8') self.parent.writer.write_cp( gsmtap_hdr + osmocore_log_hdr + log_content, radio_id, ts)
def parse_event_lte_rrc_state_change(self, radio_id, ts, arg1): osmocore_log_hdr = util.create_osmocore_logging_header( timestamp=ts, process_name=b'Event', pid=1606, ) gsmtap_hdr = util.create_gsmtap_header( version=2, payload_type=util.gsmtap_type.OSMOCORE_LOG) rrc_state_map = { 1: "RRC_IDLE_NOT_CAMPED", 2: "RRC_IDLE_CAMPED", 3: "RRC_CONNECTING", 4: "RRC_CONNECTED", 7: "RRC_CLOSING", } if arg1 in rrc_state_map.keys(): rrc_state = rrc_state_map[arg1] else: rrc_state = "{:02x}".format(arg1) log_content = "LTE_RRC_STATE_CHANGE: rrc_state={}".format( rrc_state).encode('utf-8') self.parent.writer.write_cp( gsmtap_hdr + osmocore_log_hdr + log_content, radio_id, ts)
def parse_diag_ext_msg(self, pkt, radio_id): # 79 | 00 | 00 | 00 | 00 00 1c fc 0f 16 e4 00 | e6 04 | 94 13 | 02 00 00 00 # cmd_code, ts_type, num_args, drop_cnt, TS, Line number, Message subsystem ID, ? # Message: two null-terminated strings, one for log and another for filename xdm_hdr = pkt[0:20] xdm_hdr = struct.unpack('<BBBBQHHL', xdm_hdr) pkt_ts = util.parse_qxdm_ts(xdm_hdr[4]) pkt_body = pkt[20 + 4 * xdm_hdr[2]:] pkt_body = pkt_body.rstrip(b'\0').rsplit(b'\0', maxsplit=1) if len(pkt_body) == 2: src_fname = pkt_body[1] log_content = pkt_body[0] else: src_fname = b'' log_content = pkt_body[0] osmocore_log_hdr = util.create_osmocore_logging_header( timestamp=pkt_ts, subsys_name=str(xdm_hdr[6]).encode('utf-8'), filename=src_fname, line_number=xdm_hdr[5]) gsmtap_hdr = util.create_gsmtap_header( version=2, payload_type=util.gsmtap_type.OSMOCORE_LOG) self.writer.write_cp(gsmtap_hdr + osmocore_log_hdr + log_content, radio_id, pkt_ts)
def parse_event_lte_rrc_state_change_trigger(self, radio_id, ts, arg1): osmocore_log_hdr = util.create_osmocore_logging_header( timestamp = ts, process_name = b'Event', pid = 1994, ) gsmtap_hdr = util.create_gsmtap_header( version = 2, payload_type = util.gsmtap_type.OSMOCORE_LOG) log_content = "LTE_RRC_STATE_CHANGE_TRIGGER: {:02x}".format(arg1).encode('utf-8') self.parent.writer.write_cp(gsmtap_hdr + osmocore_log_hdr + log_content, radio_id, ts)
def parse_event_lte_rrc_timer_status(self, radio_id, ts, arg_bin): osmocore_log_hdr = util.create_osmocore_logging_header( timestamp = ts, process_name = b'Event', pid = 1605, ) gsmtap_hdr = util.create_gsmtap_header( version = 2, payload_type = util.gsmtap_type.OSMOCORE_LOG) log_content = "LTE_RRC_TIMER_STATUS: {}".format(' '.join('{:02x}'.format(x) for x in arg_bin)).encode('utf-8') self.parent.writer.write_cp(gsmtap_hdr + osmocore_log_hdr + log_content, radio_id, ts)
def parse_event_lte_ml1_phr_report(self, radio_id, ts, arg1, arg2): osmocore_log_hdr = util.create_osmocore_logging_header( timestamp = ts, process_name = b'Event', pid = 1938, ) gsmtap_hdr = util.create_gsmtap_header( version = 2, payload_type = util.gsmtap_type.OSMOCORE_LOG) log_content = "LTE_ML1_PHR_REPORT: {:02x} {:02x}".format(arg1, arg2).encode('utf-8') self.parent.writer.write_cp(gsmtap_hdr + osmocore_log_hdr + log_content, radio_id, ts)
def parse_event_lte_emm_timer_expiry(self, radio_id, ts, arg1): osmocore_log_hdr = util.create_osmocore_logging_header( timestamp = ts, process_name = b'Event', pid = 1632, ) gsmtap_hdr = util.create_gsmtap_header( version = 2, payload_type = util.gsmtap_type.OSMOCORE_LOG) log_content = "LTE_RRC_EMM_TIMER_EXPIRY: {:02x}".format(arg1).encode('utf-8') self.parent.writer.write_cp(gsmtap_hdr + osmocore_log_hdr + log_content, radio_id, ts)
def parse_event_lte_emm_outgoing_msg(self, radio_id, ts, arg1): osmocore_log_hdr = util.create_osmocore_logging_header( timestamp = ts, process_name = b'Event', pid = 1630, ) gsmtap_hdr = util.create_gsmtap_header( version = 2, payload_type = util.gsmtap_type.OSMOCORE_LOG) log_content = "LTE_RRC_EMM_OUTGOING_MSG: {}".format(arg1).encode('utf-8') self.parent.writer.write_cp(gsmtap_hdr + osmocore_log_hdr + log_content, radio_id, ts)
def parse_event_lte_rrc_paging_drx_cycle(self, radio_id, ts, arg1, arg2): osmocore_log_hdr = util.create_osmocore_logging_header( timestamp = ts, process_name = b'Event', pid = 1614, ) gsmtap_hdr = util.create_gsmtap_header( version = 2, payload_type = util.gsmtap_type.OSMOCORE_LOG) log_content = "LTE_RRC_PAGING_DRX_CYCLE: {:02x} {:02x}".format(arg1, arg2).encode('utf-8') self.parent.writer.write_cp(gsmtap_hdr + osmocore_log_hdr + log_content, radio_id, ts)
def parse_event_diag_process_name_id(self, radio_id, ts, arg_bin): osmocore_log_hdr = util.create_osmocore_logging_header( timestamp = ts, process_name = b'Event', pid = 2866, ) gsmtap_hdr = util.create_gsmtap_header( version = 2, payload_type = util.gsmtap_type.OSMOCORE_LOG) diag_id = arg_bin[0] diag_process_name = arg_bin[1:].decode('utf-8') log_content = "DIAG_PROCESS_NAME: diag_id={}, diag_process_name={}".format(diag_id, diag_process_name).encode('utf-8') self.parent.writer.write_cp(gsmtap_hdr + osmocore_log_hdr + log_content, radio_id, ts)
def parse_event_lte_rrc_dl_msg(self, radio_id, ts, arg1, arg2): osmocore_log_hdr = util.create_osmocore_logging_header( timestamp = ts, process_name = b'Event', pid = 1609, ) gsmtap_hdr = util.create_gsmtap_header( version = 2, payload_type = util.gsmtap_type.OSMOCORE_LOG) channel_dl_map = { 1: "BCCH", 2: "PCCH", 3: "CCCH", 4: "DCCH" } message_type_map = { 0x00: "MasterInformationBlock", 0x01: "SystemInformationBlockType1", 0x02: "SystemInformationBlockType2", 0x03: "SystemInformationBlockType3", 0x04: "SystemInformationBlockType4", 0x05: "SystemInformationBlockType5", 0x06: "SystemInformationBlockType6", 0x07: "SystemInformationBlockType7", 0x40: "Paging", 0x4b: "RRCConnectionSetup", 0x81: "DLInformationTransfer", 0x85: "RRCConnectionRelease", } if arg1 in channel_dl_map.keys(): channel = channel_dl_map[arg1] else: channel = "Unknown" if arg2 in message_type_map.keys(): message_type = message_type_map[arg2] else: message_type = "Unknown ({:2x})".format(arg2) log_content = "LTE_RRC_DL_MSG: channel={}, message_type={}".format(channel, message_type).encode('utf-8') self.parent.writer.write_cp(gsmtap_hdr + osmocore_log_hdr + log_content, radio_id, ts)
def parse_event_lte_emm_incoming_msg(self, radio_id, ts, arg1): osmocore_log_hdr = util.create_osmocore_logging_header( timestamp = ts, process_name = b'Event', pid = 1629, ) gsmtap_hdr = util.create_gsmtap_header( version = 2, payload_type = util.gsmtap_type.OSMOCORE_LOG) if type(arg1) == bytes: log_content = "LTE_RRC_EMM_INCOMING_MSG: {}".format(binascii.hexlify(arg1)).encode('utf-8') else: log_content = "LTE_RRC_EMM_INCOMING_MSG: {:02x}".format(arg1).encode('utf-8') self.parent.writer.write_cp(gsmtap_hdr + osmocore_log_hdr + log_content, radio_id, ts)
def parse_event_diag_qshrink_id(self, radio_id, ts, arg_bin): osmocore_log_hdr = util.create_osmocore_logging_header( timestamp = ts, process_name = b'Event', pid = 2865, ) gsmtap_hdr = util.create_gsmtap_header( version = 2, payload_type = util.gsmtap_type.OSMOCORE_LOG) diag_id = arg_bin[0] diag_uuid = arg_bin[1:] diag_uuid_real = uuid.UUID(bytes_le=b'\x00'*16) if len(diag_uuid) == 16: diag_uuid_real = uuid.UUID(bytes_le=diag_uuid) log_content = "DIAG_QSHRINK_ID: diag_id={}, diag_uuid={}".format(diag_id, diag_uuid_real).encode('utf-8') self.parent.writer.write_cp(gsmtap_hdr + osmocore_log_hdr + log_content, radio_id, ts)