~hg&dZddlZddlmZddlmZmZmZmZm Z m Z m Z m Z ddlm Z mZmZmZmZddlTdZe efidd d d d d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-Ze edd d d dddddd. Ze ed'd)d+d-d/d01Ze efid2dd3d d4d d5d d6dd7dd8dd9dd:dd;dddd?d!d@d#dAd%dBd'dCd)Ze edd d d ddddD Ze ed d d dddddddddd!EZe edd d d dddddddd'd/dFGZe ed d d ddHZedIez dJez dKed#z Ze dLez dMez dNez dOez dKez dPez dQez dRez dSe e jeeeeeeeedTz dUez dVez dWez dXe z Ze dYez dZez Ze ed d ddd[Z e d\ez d]ed'd^z d_ez d`e z ed daed'd^z dbe dceddd^z deez z Z!GdfdgZ"GdhdiZ#dS)jz Osmocom GSMTAP python implementation. GSMTAP is a packet format used for conveying a number of different telecom-related protocol traces over UDP. N)Optional)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_attributesr9bcchccchrachagchpchsdcchsdcch4sdcch8facch_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)r9rKrLrOrNbachrMcbchrPtachhgbchtch3tch6tch9)lapdfrrawtrau16trau8pcsuplinkarfcnversionhdr_lentypetimeslot signal_dbmsnr_dbframe_nrsub_type)rrrrrrr%r7 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