~i&tdZddlZddlmZmZmZmZmZmZm Z m Z ddlm Z m Z m Z mZmZddlTdZeefiddd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,Zeeddd d dddddd- Zeed&d(d*d,d.d/0Zeefid1dd2dd3d d4d d5dd6dd7dd8dd9dd:dd;ddd d?d"d@d$dAd&dBd(Zeeddd d ddddC Zeedd d dddddddddd DZeeddd d dddddddd&d.dEFZeedd d ddGZedHe z dIe z dJed"z Ze dKez dLez dMez dNez dJez dOez dPez dQez dRe e jeeeeeeeedSz dTez dUez dVez dWez Ze dXez dYez Zeedd dddZZe d[ez d\e d&d]z d^ez d_ez ed d`e d&d]z dae dbe dcd]z ddez z ZGdedfZ GdgdhZ!dS)iz Osmocom GSMTAP python implementation. GSMTAP is a packet format used for conveying a number of different telecom-related protocol traces over UDP. N)Int8ubInt8sbInt32ub BitStructEnum GreedyBytesStructSwitch)this PaddedStringFlag BitsIntegerBytes)*ygsm_umgsm_abis gsm_um_burstsimtetra_i1tetra_i1_burst wimax_burst gprs_gb_llc gprs_gb_sndcp gmr1_um umts_rlc_mac umts_rrc lte_rrc lte_maclte_mac_framed osmocore_logqc_diaglte_nase1_t1) unknownfcch partial_schschcts_sch compact_schnormaldummyaccessnone) cdma_codefchffbpduhackphy_attributesr8bcchccchrachagchpchsdcchsdcch4sdcch8facch_ffacch_hpacchcbch52pdtchptcchcbch51voice_fvoice_h)apduatrpps_reqpps_rsptpdu_hdrtpdu_cmdtpdu_rsptpdu_sw) bschaachsch_husch_hdsch_fbnchstchtch_f dmo_sch_s dmo_sch_h dmo_sch_fdmo_stchdmo_tch)r8rJrKrNrMbachrLcbchrOtachhgbchtch3tch6tch9)lapdfrrawtrau16trau8pcsuplinkarfcnversionhdr_lentypetimeslot signal_dbmsnr_dbframe_nrsub_type)rrrrrrr$r6 antenna_nrsub_slotresbodysecusec)debuginfonoticeerrorfatalts proc_nameasciipidlevelsubsyssrc_filename line_nrc&eZdZdZddZdZdZdS) GsmtapMessagezVClass whose objects represent a single GSMTAP message. Can encode and decode messages.Nc"||_d|_dSN)encodeddecoded)selfrs ^/home/jenkins/workspace/simtester-sanitize/venv/lib/python3.11/site-packages/osmocom/gsmtap.py__init__zGsmtapMessage.__init__s  cNtt|j|_|jSr)parse_constructgsmtap_hdr_constructrr)rs rdecodezGsmtapMessage.decodes&';T\JJ |rcNt||_|jSr)rbuildr)rrs rencodezGsmtapMessage.encodes+11':: |rr)__name__ __module__ __qualname____doc__rrrrrrrsL``rrc0eZdZdZd dedefdZdefdZd S) GsmtapReceiverz>Simple receive-side socket implementation for GSMTAP messages. 127.0.0.1rbind_ip bind_portc||_||_tjtjtj|_|j|j|jfdSr)rrsocketAF_INET SOCK_DGRAMsockbind)rrrs rrzGsmtapReceiver.__init__sK "M&.&2CDD   dn566666rreturnc|jd\}}t|}||jddkrt d|jdz|j|fS)zMPerform a blocking read on the GSMTAP socket and decode it as GSMTAP message.irrzUnknown GSMTAP version 0x%02x)rrecvfromrrr ValueError)rdataaddr gsmtap_msgs r read_packetzGsmtapReceiver.read_packetsxY''.. d"4((   i (D 0 0rs, [[[[[[[[[[[[[[[[[[[[BBBBBBBBBBBBBB V+++&*d+(,+-1D+$(4 + )- + /3d +,04+,04+.2T+(,t+-1D+)-+(,t+(,t+/3d+ -1D!+"(,t#+$(,t%+&&*T'+."&f04-148,00448/3.2/3-1 "3 "3 "3(,tF8<26262637=A (C(C(C$#d6333-1T3*.$3+/$3+/$ 3 +/$ 3 *. 3,043-1D3-1D3.2T3.2T3,043-1D3,043,043 -1D!3".2T#3$.2T%3, $tF+/*..2.2/3/3/3.2 4 4 4"&f-1-1/3/3.2-1-1.22626261504 "6 "6 "6!%V/3,0,0+/,0,0,0,0-1-1,0,0,0,0!2!2!2 !%V,0*.+/.2-1 !3!3!3#5:x}gkkRToo>UVVvi.'.$%::(/%&<<*61&vo(0( :U@^7S