a
    kÄ#d(ó  ã                U   @   s´  d dl Z d dlmZ d dlmZ d dlmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZ d dlmZ d dlmZmZmZ d dlmZm Z  d dl!m"Z" d	d
dddddddddœ
Z#ddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhœTZ$didjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dd€d�d‚dƒd„d…d†d‡dˆd‰dŠd‹dŒd�dŽd�d�œ'Z%G d‘d’„ d’e"j&ƒZ&G d“d”„ d”e"j'ƒZ(G d•d–„ d–e"j'ƒZ)d—d˜„ Z*G d™dš„ dše"j'ƒZ+G d›dœ„ dœe"j'ƒZ,G d�dž„ dže"j'ƒZ-G dŸd „ d eƒZ.G d¡d¢„ d¢e.ƒZ/G d£d¤„ d¤e.ƒZ0G d¥d¦„ d¦e.ƒZ1G d§d¨„ d¨e.ƒZ2G d©dª„ dªe.ƒZ3G d«d¬„ d¬e.ƒZ4G d­d®„ d®e"j'ƒZ5G d¯d°„ d°e"j'ƒZ6d±d²d³d´dµd¶d·d¸d¹dºd»d¼d½d¾d¿dÀdÁdÂdÃdÄdÅdÆdÇdÈdÉdÊdËdÌdÍdÎdÏdÐdÑdÒdÓdÔdÕdÖd×œ&Z7G dØdÙ„ dÙe"j'ƒZ8G dÚdÛ„ dÛe"j'ƒZ9G dÜdÝ„ dÝe"j'ƒZ:G dÞdß„ dße"j'ƒZ;G dàdá„ dáe"j'ƒZ<G dâdã„ dãe"j'ƒZ=G dädå„ dåe"j'ƒZ>G dædç„ dçe"j'ƒZ?G dèdé„ dée"j'ƒZ@dêdëdìdídîdïdðdñdòdódôdõdöd÷dødùdúdûdüdýdþdÿ�d �d�d�d�d�d�d�d�d�d	�d
�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d �d!�d"�d#�d$�d%�d&�d'�d(�d)�d*�d+�d,�d-�d.�d/�d0�d1�d2�d3�d4�d5�d6�d7�d8�d9�d:œPZAG �d;�d<„ �d<e"j'ƒZBG �d=�d>„ �d>e"j'ƒZCG �d?�d@„ �d@e"j'ƒZDG �dA�dB„ �dBe"j'ƒZEG �dC�dD„ �dDe"j'ƒZFG �dE�dF„ �dFe"j'ƒZGG �dG�dH„ �dHe"j'ƒZH�dI�dJ�dK�dLœZI�dI�dM�dN�dO�dP�dQœZJG �dR�dS„ �dSeƒZKG �dT�dU„ �dUeƒZLG �dV�dW„ �dWeKƒZMG �dX�dY„ �dYeKƒZNG �dZ�d[„ �d[eKƒZOG �d\�d]„ �d]eKƒZPG �d^�d_„ �d_eKƒZQ�d`�da�db�dc�dd�de�df�dg�dh�di�dj�dk�dl�dm�dn�do�dp�dq�dr�ds�dtœZReMeNeOePeQ�dQœZS�du�dv„ ZT�dw�dx„ ZUG �dy�dz„ �dzeLƒZVG �d{�d|„ �d|eLƒZWG �d}�d~„ �d~eLƒZXG �d�d€„ �d€eLƒZYG �d��d‚„ �d‚eLƒZZG �dƒ�d„„ �d„eLƒZ[G �d…�d†„ �d†eLƒZ\G �d‡�dˆ„ �dˆeLƒZ]G �d‰�dŠ„ �dŠeLƒZ^G �d‹�dŒ„ �dŒeLƒZ_G �d��dŽ„ �dŽeLƒZ`G �d��d�„ �d�eLƒZaG �d‘�d’„ �d’eLƒZbG �d“�d”„ �d”eLƒZcG �d•�d–„ �d–eLƒZdG �d—�d˜„ �d˜eLƒZeG �d™�dš„ �dšeLƒZfG �d›�dœ„ �dœeLƒZgG �d��dž„ �džeLƒZhG �dŸ�d „ �d eLƒZiG �d¡�d¢„ �d¢eLƒZjG �d£�d¤„ �d¤eLƒZkG �d¥�d¦„ �d¦eLƒZleVeWeXeYe[e\e]e^e_e`eaebecedeeefegehejel�d§œZm�d¨�d©„ ZnG �dª�d«„ �d«e"j'ƒZoG �d¬�d­„ �d­e"j'ƒZpG �d®�d¯„ �d¯e"j'ƒZqG �d°�d±„ �d±e"j'ƒZrG �d²�d³„ �d³e"j'ƒZsG �d´�dµ„ �dµe"j'ƒZtG �d¶�d·„ �d·e"j'ƒZuG �d¸�d¹„ �d¹e"j'ƒZvG �dº�d»„ �d»e"j'ƒZwG �d¼�d½„ �d½e"j'ƒZxG �d¾�d¿„ �d¿e"j'ƒZyG �dÀ�dÁ„ �dÁe"j'ƒZzG �dÂ�dÃ„ �dÃe"j'ƒZ{G �dÄ�dÅ„ �dÅe"j'ƒZ|G �dÆ�dÇ„ �dÇe"j'ƒZ}G �dÈ�dÉ„ �dÉe"j'ƒZ~G �dÊ�dË„ �dËe"j'ƒZe@eBeCeDeFe+e(e)eGeHeoerese,e-eEe5e9e:eteue;eve<e=ewexeyeze}e>e8e{eqe6e~epe|ed�œ'Z€G �dÌ�dÍ„ �dÍeƒZ�G �dÎ�dÏ„ �dÏe�ƒZ‚G �dÐ�dÑ„ �dÑe�ƒZƒG �dÒ�dÓ„ �dÓe�ƒZ„G �dÔ�dÕ„ �dÕe�ƒZ…G �dÖ�d×„ �d×e�ƒZ†G �dØ�dÙ„ �dÙe�ƒZ‡G �dÚ�dÛ„ �dÛe�ƒZˆG �dÜ�dÝ„ �dÝe�ƒZ‰G �dÞ�dß„ �dße�ƒZŠG �dà�dá„ �dáe�ƒZ‹G �dâ�dã„ �dãe�ƒZŒG �dä�då„ �dåe�ƒZ�G �dæ�dç„ �dçe�ƒZŽG �dè�dé„ �dée�ƒZ�G �dê�dë„ �dëe�ƒZ�G �dì�dí„ �díe�ƒZ‘G �dî�dï„ �dïe�ƒZ’G �dð�dñ„ �dñe�ƒZ“G �dò�dó„ �dóe�ƒZ”G �dô�dõ„ �dõe�ƒZ•G �dö�d÷„ �d÷e�ƒZ–G �dø�dù„ �dùe�ƒZ—G �dú�dû„ �dûe�ƒZ˜G �dü�dý„ �dýe�ƒZ™G �dþ�dÿ„ �dÿe�ƒZšG �d �d„ �de�ƒZ›G �d�d„ �de�ƒZœG �d�d„ �de�ƒZ�G �d�d„ �de�ƒZžG �d�d	„ �d	e�ƒZŸG �d
�d„ �de�ƒZ G �d�d„ �de�ƒZ¡G �d�d„ �de�ƒZ¢G �d�d„ �de�ƒZ£G �d�d„ �de�ƒZ¤G �d�d„ �de�ƒZ¥ee&e‚�dd �d� ee&eƒ�dd �d� ee&e„�d�d� ee&e…�d�d� ee&e��d�d� ee&e��d�d� ee&e†�d�d� ee&e‡�d�d� ee&eˆ�d �d� ee&e‰�d!�d� ee&eŠ�d"�d� ee&e‹�d#�d� ee&eŒ�d$�d� ee&e��d%�d� ee&eŽ�d&�d� ee&e‘�d'�d� ee&e’�d(�d� ee&e“�d)�d� ee&e”�d*�d� ee&e•�d+�d� ee&eš�d,�d� ee&e›�d-�d� ee&eœ�d.�d� ee&e��d/�d� ee&e–�d0�d� ee&e—�d1�d� ee&e˜�d2�d� ee&e™�d3�d� ee&ež�d4�d� ee&eŸ�d5�d� ee&e �d6�d� ee&e¡�d7�d� ee&e¢�d8�d� ee&e£�d9�d� ee&e¤�d:�d� ee&e¥�d;�d� dS (<  é    N)Úorb)ÚIANA_ENTERPRISE_NUMBERS)ÚBitEnumFieldÚBitFieldÚByteEnumFieldÚ	ByteFieldÚConditionalFieldÚIPFieldÚIntFieldÚMultipleTypeFieldÚPacketFieldÚPacketListFieldÚShortEnumFieldÚ
ShortFieldÚStrFixedLenFieldÚStrLenFieldÚThreeBytesFieldÚ	XBitFieldÚ	XIntFieldÚXShortField)ÚIP6Field)Úbind_layersÚPacketÚRaw)ÚRandIPÚ	RandShort)ÚgtpZUTRANZGERANZWLANZGANzHSPA EvolutionZEUTRANZVirtualzEUTRAN-NB-IoTzLTE-MZNR)
é   é   é   é   é   é   é   é   é	   é
   Zecho_requestZecho_responseZversion_not_supportedZcreate_session_reqZcreate_session_resZdelete_session_reqZdelete_session_resZmodify_bearer_reqZmodify_bearer_resZremote_ue_report_notifZremote_ue_report_ackZchange_notif_reqZchange_notif_resZresume_notifZ
resume_ackZmodify_bearer_cmdZmodify_bearer_failure_indicZdelete_bearer_cmdZdelete_bearer_failure_indicZbearer_resource_cmdZbearer_resource_failure_indicZ!downlink_data_notif_failure_indicZtrace_session_activationZtrace_session_deactivationZstop_paging_indicZcreate_bearer_reqZcreate_bearer_resZupdate_bearer_reqZupdate_bearer_resZdelete_bearer_reqZdelete_bearer_resZdelete_pdn_connection_set_reqZdelete_pdn_connection_set_resZpgw_downlink_triggering_notifZpgw_downlink_triggering_ackZidentification_reqZidentification_resZcontext_reqZcontext_resZcontext_ackZforward_relocation_reqZforward_relocation_resZ!forward_relocation_complete_notifZforward_relocation_complete_ackZforward_access_context_notifZforward_access_context_ackZrelocation_cancel_reqZrelocation_cancel_resZconfiguration_transfer_tunnelZran_information_relayZdetach_notifZ
detach_ackZcs_paging_indicZalert_mme_notifZalert_mme_ackZue_activity_notifZue_activity_ackZisr_status_indicZue_registration_query_reqZue_registration_query_resZsuspend_notifZsuspend_ackZcreate_forwarding_tunnel_reqZcreate_forwarding_tunnel_resZ*create_indirect_data_forwarding_tunnel_reqZ*create_indirect_data_forwarding_tunnel_resZ*delete_indirect_data_forwarding_tunnel_reqZ*delete_indirect_data_forwarding_tunnel_resZrealease_bearers_reqZrealease_bearers_resZdownlink_data_notifZdownlink_data_notif_ackZpgw_restart_notifZpgw_restart_notif_ackZupdate_pdn_connection_set_reqZupdate_pdn_connection_set_resZmodify_access_bearers_reqZmodify_access_bearers_resZmbms_session_start_reqZmbms_session_start_resZmbms_session_update_reqZmbms_session_update_resZmbms_session_stop_reqZmbms_session_stop_res)Tr   r   r   é    é!   é$   é%   é"   é#   é(   é)   é&   é'   é¤   é¥   é@   éA   éB   éC   éD   éE   éF   éG   éH   éI   é_   é`   éa   éb   éc   éd   ée   éf   ég   éh   é€   é�   é‚   éƒ   é„   é…   é†   é‡   éˆ   é‰   éŠ   é‹   éŒ   é�   é˜   é•   é–   é—   é™   éš   é›   éœ   é�   éž   éŸ   é¢   é£   é    é¡   é¦   é§   é¨   é©   éª   é«   é°   é±   é³   é´   éÈ   éÉ   éÓ   éÔ   éç   éè   éé   éê   éë   éì   ÚIMSIÚCausezRecovery RestartÚAPNZAMBRzEPS Bearer IDz
IP AddressÚMEIZMSISDNZ
IndicationzProtocol Configuration OptionsZPAAz
Bearer QoSZRATzServing Networkz
Bearer TFTZULIzF-TEIDzBearer ContextzCharging IDzCharging CharacteristicszBearer FlagszPDN Typez1MM Context (EPS Security Context and Quadruplets)zPDN ConnectionzUE Time zonezPort NumberzAPN RestrictionzSelection ModezFQ-CSIDZFQDNZUCIzMax MBR/APN-AMBR (MMBR)z)Additional Protocol Configuration OptionszULI TimestampzRAN/NAS Causez'Extended Protocol Configuration Optionsz&UP Function Selection Indication FlagsúPrivate Extension)'r   r   r   r:   r;   r<   éJ   éK   éL   éM   éN   éO   éP   éR   éS   éT   éV   éW   é]   é^   r=   r?   rA   ék   ém   ér   é~   é   rG   rK   rO   é‘   rc   ra   rh   é¬   éÅ   éÊ   éÿ   c                   @   s¼   e Zd ZdZedddƒedddƒedddƒedd	dƒed
d	dƒedd	dƒeddeƒeddƒee	dd	ƒdd„ ƒe
deƒ ƒeedd	dƒdd„ ƒeeedd	dƒdd„ fgedd	ƒƒdd„ ƒgZdS )Ú	GTPHeaderzGTP v2 HeaderÚversionr   r   ÚPr   ÚTÚMPr   ÚSPARE1ÚSPARE2Úgtp_typeNÚlengthZteidc                 C   s
   | j dkS ©Nr   )r˜   ©Úpkt© r¡   úK/var/www/html/gsl.tools/lib/python3.9/site-packages/scapy/contrib/gtp_v2.pyÚ<lambda>ÿ   ó    zGTPHeader.<lambda>ÚseqZmsg_priorityr    c                 C   s
   | j dkS rž   ©r™   rŸ   r¡   r¡   r¢   r£     r¤   ÚSPARE3c                 C   s
   | j dkS rž   r¦   rŸ   r¡   r¡   r¢   r£     r¤   c                 C   s
   | j dv S )N)r   r   r¦   rŸ   r¡   r¡   r¢   r£     r¤   )Ú__name__Ú
__module__Ú__qualname__Únamer   r   ÚGTPmessageTyper   r   r   r   r   r   r   Úfields_descr¡   r¡   r¡   r¢   r•   ò   s4   







ÿ
ÿ
ÿýûór•   c                	   @   sh   e Zd ZdZeddeƒeddƒedddƒed	ddƒee	d
e
ƒ ƒdd„ ƒeeddƒdd„ ƒgZdd„ ZdS )ÚIE_IP_AddresszIE IP AddressÚietyper}   r�   NÚCR_flagr   r    ÚinstanceÚaddressc                 C   s
   | j dkS ©Nr    ©r�   rŸ   r¡   r¡   r¢   r£     r¤   zIE_IP_Address.<lambda>Úaddress6c                 C   s
   | j dkS )Né   r´   rŸ   r¡   r¡   r¢   r£     r¤   c                 C   sH   | j d u r@| jd urdnd}|d d… t d|¡ |dd …  }|| S )Nr¶   r    r   z!Hr   )r�   rµ   ÚstructÚpack)ÚselfÚpÚpayZtmp_lenr¡   r¡   r¢   Ú
post_build  s    
$zIE_IP_Address.post_build)r¨   r©   rª   r«   r   ÚIETyper   r   r   r	   r   r   r­   r¼   r¡   r¡   r¡   r¢   r®     s   



þþùr®   c                	   @   sL   e Zd ZdZeddeƒeddƒedddƒed	ddƒej	d
ddd„ d�gZ
dS )ÚIE_MEIzIE MEIr¯   r~   r�   Nr°   r   r    r±   r{   Z175675478970685c                 C   s   | j S ©Nr´   ©Úxr¡   r¡   r¢   r£   &  r¤   zIE_MEI.<lambda>©Zlength_from©r¨   r©   rª   r«   r   r½   r   r   r   ÚTBCDByteFieldr­   r¡   r¡   r¡   r¢   r¾     s   


ÿür¾   c                 C   s4   t | d ƒ}t |t¡}|tu r,|dkr,t}|| ƒS )z-Choose the correct Information Element class.r   rG   )r   Ú	ietypeclsÚgetr   ÚIE_NotImplementedTLV)Úsr¯   Úclsr¡   r¡   r¢   ÚIE_Dispatcher)  s
    rÊ   c                   @   sB   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
dƒgZ	dS )ÚIE_EPSBearerIDzIE EPS Bearer IDr¯   r<   r�   Nr°   r   r    r±   ZEBI©
r¨   r©   rª   r«   r   r½   r   r   r   r­   r¡   r¡   r¡   r¢   rË   7  s   


ürË   c                   @   sD   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
deƒgZ	dS )ÚIE_RATzIE RATr¯   r„   r�   Nr°   r   r    r±   ZRAT_type)
r¨   r©   rª   r«   r   r½   r   r   ÚRATTyper­   r¡   r¡   r¡   r¢   rÍ   @  s   



ürÍ   c                
   @   sR   e Zd ZdZeddeƒeddƒedddƒed	ddƒe 	d
dd¡e 	ddd¡gZ
dS )ÚIE_ServingNetworkzIE Serving Networkr¯   r…   r�   Nr°   r   r    r±   ÚMCCÚ r   ÚMNCr   rÃ   r¡   r¡   r¡   r¢   rÏ   I  s   


ûrÏ   c                   @   s   e Zd ZdZdd„ ZdS )Ú	ULI_FieldzBase class for ULI fields.c                 C   s   d|fS ©NrÑ   r¡   )r¹   rÈ   r¡   r¡   r¢   Úextract_paddingZ  s    zULI_Field.extract_paddingN)r¨   r©   rª   Ú__doc__rÕ   r¡   r¡   r¡   r¢   rÓ   W  s   rÓ   c                   @   s<   e Zd ZdZe ddd¡e ddd¡eddƒed	dƒgZd
S )ÚULI_CGIzCell Global IdentifierrÐ   rÑ   r   rÒ   r   ÚLACr   ÚCIN©r¨   r©   rª   r«   r   rÄ   r   r­   r¡   r¡   r¡   r¢   r×   ^  s   ür×   c                   @   s<   e Zd ZdZe ddd¡e ddd¡eddƒed	dƒgZd
S )ÚULI_SAIzService Area IdentityrÐ   rÑ   r   rÒ   r   rØ   r   ZSACNrÚ   r¡   r¡   r¡   r¢   rÛ   h  s   ürÛ   c                   @   s<   e Zd ZdZe ddd¡e ddd¡eddƒed	dƒgZd
S )ÚULI_RAIzRouting Area IdentityrÐ   rÑ   r   rÒ   r   rØ   r   ZRACNrÚ   r¡   r¡   r¡   r¢   rÜ   r  s   úrÜ   c                   @   s4   e Zd ZdZe ddd¡e ddd¡eddƒgZd	S )
ÚULI_TAIzTracking Area IdentityrÐ   rÑ   r   rÒ   r   ZTACr   NrÚ   r¡   r¡   r¡   r¢   rÝ   ~  s
   ýrÝ   c                   @   s@   e Zd ZdZe ddd¡e ddd¡eddd	ƒed
ddƒgZdS )ÚULI_ECGIzE-UTRAN Cell Global IdentifierrÐ   rÑ   r   rÒ   r   ÚSPAREr   r    ZECIé   N)r¨   r©   rª   r«   r   rÄ   r   r­   r¡   r¡   r¡   r¢   rÞ   ‡  s   

ürÞ   c                   @   s4   e Zd ZdZe ddd¡e ddd¡eddƒgZd	S )
ÚULI_LAIzLocation Area IdentifierrÐ   rÑ   r   rÒ   r   rØ   r   NrÚ   r¡   r¡   r¡   r¢   rá   ‘  s
   ýrá   c                   @   sø   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
ddƒedddƒedddƒedddƒedddƒedddƒedddƒee	dde
ƒdd„ ƒee	ddeƒdd„ ƒee	ddeƒdd„ ƒee	ddeƒdd„ ƒee	ddeƒdd„ ƒee	ddeƒdd„ ƒgZdS ) ÚIE_ULIzIE User Location Informationr¯   r‡   r�   Nr°   r   r    r±   rß   r   ÚLAI_Presentr   ÚECGI_PresentÚTAI_PresentÚRAI_PresentÚSAI_PresentÚCGI_PresentZCGIc                 C   s
   t | jƒS r¿   )Úboolrè   rŸ   r¡   r¡   r¢   r£   ª  r¤   zIE_ULI.<lambda>ZSAIc                 C   s
   t | jƒS r¿   )ré   rç   rŸ   r¡   r¡   r¢   r£   ­  r¤   ZRAIc                 C   s
   t | jƒS r¿   )ré   ræ   rŸ   r¡   r¡   r¢   r£   °  r¤   ZTAIc                 C   s
   t | jƒS r¿   )ré   rå   rŸ   r¡   r¡   r¢   r£   ³  r¤   ZECGIc                 C   s
   t | jƒS r¿   )ré   rä   rŸ   r¡   r¡   r¢   r£   ¶  r¤   ZLAIc                 C   s
   t | jƒS r¿   )ré   rã   rŸ   r¡   r¡   r¢   r£   ¹  r¤   )r¨   r©   rª   r«   r   r½   r   r   r   r   r×   rÛ   rÜ   rÝ   rÞ   rá   r­   r¡   r¡   r¡   r¢   râ   š  sJ   










þ
þ
þ
þ
þ
þårâ   c                   @   sB   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
dƒgZ	dS )ÚIE_ULI_TimestampzIE ULI Timestampr¯   rh   r�   Nr°   r   r    r±   Ú	timestamp)
r¨   r©   rª   r«   r   r½   r   r   r   r­   r¡   r¡   r¡   r¢   rê   ½  s   


ûrê   zS1-U eNodeB GTP-U interfacezS1-U SGW GTP-U interfacezS12 RNC GTP-U interfacezS12 SGW GTP-U interfacezS5/S8 SGW GTP-U interfacezS5/S8 PGW GTP-U interfacezS5/S8 SGW GTP-C interfacezS5/S8 PGW GTP-C interfacezS5/S8 SGW PMIPv6 interfacezS5/S8 PGW PMIPv6 interfacezS11 MME GTP-C interfacezS11/S4 SGW GTP-C interfacezS10 MME GTP-C interfacezS3 MME GTP-C interfacezS3 SGSN GTP-C interfacezS4 SGSN GTP-U interfacezS4 SGW GTP-U interfacezS4 SGSN GTP-C interfacezS16 SGSN GTP-C interfacez-eNodeB GTP-U interface for DL data forwardingz-eNodeB GTP-U interface for UL data forwardingz'RNC GTP-U interface for data forwardingz(SGSN GTP-U interface for data forwardingz*SGW GTP-U interface for DL data forwardingzSm MBMS GW GTP-C interfacezSn MBMS GW GTP-C interfacezSm MME GTP-C interfacezSn SGSN GTP-C interfacez*SGW GTP-U interface for UL data forwardingzSn SGSN GTP-U interfacezS2b ePDG GTP-C interfacezS2b-U ePDG GTP-U interfacezS2b PGW GTP-C interfacezS2b-U PGW GTP-U interfacezS2a TWAN GTP-U interfacezS2a TWAN GTP-C interfacezS2a PGW GTP-C interfacezS2a PGW GTP-U interface)&r   r   r   r   r    r!   r"   r#   r$   r%   r&   é   é   é   é   é   r¶   é   é   é   é   é   é   é   é   é   é   é   rà   é   é   é   r'   r(   r+   r,   r)   r*   c                   @   sŽ   e Zd ZdZeddeƒeddƒedddƒed	ddƒe 	d
dd¡e 	ddd¡edddƒedddƒedddƒedddƒedddƒedddƒgZ
dS )ÚIE_UCIzIE UCIr¯   r�   r�   Nr°   r   r    r±   rÐ   rÑ   r   rÒ   r   rš   r!   ZCSG_IDrû   Z
AccessModer›   ZLCSGZCMIrÃ   r¡   r¡   r¡   r¢   rÿ   ò  s   








õrÿ   c                   @   sŠ   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
ddƒedddƒeddde	ƒe
ddƒeedeƒ ƒdd„ ƒeedddƒdd„ ƒg
ZdS )ÚIE_FTEIDz	IE F-TEIDr¯   rˆ   r�   Nr°   r   r    r±   Úipv4_presentr   Úipv6_presentZInterfaceTyper"   ZGRE_KeyÚipv4c                 C   s   | j S r¿   )r  rŸ   r¡   r¡   r¢   r£     r¤   zIE_FTEID.<lambda>Úipv6z2001::rG   c                 C   s   | j S r¿   )r  rŸ   r¡   r¡   r¢   r£     r¤   )r¨   r©   rª   r«   r   r½   r   r   r   ÚINTERFACE_TYPESr   r   r	   r   r   r­   r¡   r¡   r¡   r¢   r     s    




ÿÿör   c                
   @   sL   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
de	dd„ d�gZ
dS )ÚIE_BearerContextzIE Bearer Contextr¯   r‰   r�   Nr°   r   r    r±   ÚIE_listc                 C   s   | j S r¿   r´   rŸ   r¡   r¡   r¢   r£     r¤   zIE_BearerContext.<lambda>rÂ   ©r¨   r©   rª   r«   r   r½   r   r   r   rÊ   r­   r¡   r¡   r¡   r¢   r    s   


ÿür  c                   @   sl   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
ddƒedddƒedddƒedddƒedddƒg	ZdS )ÚIE_BearerFlagszIE Bearer Flagsr¯   r?   r�   Nr°   r   r    r±   rß   ZASIr   ZVindZVBZPPC©	r¨   r©   rª   r«   r   r½   r   r   r­   r¡   r¡   r¡   r¢   r	    s   







ør	  c                   @   sÜ   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
ddƒedddƒedddƒedddƒedddƒedddƒedddƒedddƒedddƒedddƒedddƒeddƒeddƒedddƒe	e
dddd„ d�d d„ ƒgZdS )!ÚIE_MMContext_EPSz4IE MM Context (EPS Security Context and Quadruplets)r¯   r‹   r�   Nr°   r   r    r±   ZSec_Moder   ZNhir   ZDrxiZKsiZ	Num_quintZNum_QuadZUambriZOsciZSambriZNas_algoZ
Nas_cipherZNas_dl_countZNas_ul_countZKasmeé   ÚfieldsrÑ   c                 C   s
   | j d S )Nr.   r´   rÀ   r¡   r¡   r¢   r£   >  r¤   zIE_MMContext_EPS.<lambda>rÂ   c                 C   s
   | j dkS )Nr-   r´   rŸ   r¡   r¡   r¢   r£   ?  r¤   )r¨   r©   rª   r«   r   r½   r   r   r   r   r   r­   r¡   r¡   r¡   r¢   r  )  s2   














ÿþîr  c                
   @   sL   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
de	dd„ d�gZ
dS )ÚIE_PDNConnectionzIE PDN Connectionr¯   rŒ   r�   Nr°   r   r    r±   r  c                 C   s   | j S r¿   r´   rŸ   r¡   r¡   r¢   r£   I  r¤   zIE_PDNConnection.<lambda>rÂ   r  r¡   r¡   r¡   r¢   r  B  s   


ÿür  c                
   @   sR   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
dƒe	dddd„ d�gZ
dS )ÚIE_FQDNzIE FQDNr¯   rO   r�   Nr°   r   r    r±   Zfqdn_tr_bitZfqdnrÑ   c                 C   s
   | j d S rž   r´   rÀ   r¡   r¡   r¢   r£   S  r¤   zIE_FQDN.<lambda>rÂ   )r¨   r©   rª   r«   r   r½   r   r   r   r   r­   r¡   r¡   r¡   r¢   r  L  s   


ûr  c                	   @   sJ   e Zd ZdZeddeƒeddƒedddƒedddƒed	d
dd„ d�gZ	dS )rÇ   zIE not implementedr¯   r   r�   Nr°   r    r±   ÚdatarÑ   c                 C   s   | j S r¿   r´   rÀ   r¡   r¡   r¢   r£   \  r¤   zIE_NotImplementedTLV.<lambda>rÂ   ©
r¨   r©   rª   r«   r   r½   r   r   r   r­   r¡   r¡   r¡   r¢   rÇ   V  s   


ürÇ   c                	   @   sL   e Zd ZdZeddeƒeddƒedddƒed	ddƒej	d
ddd„ d�gZ
dS )ÚIE_IMSIzIE IMSIr¯   r   r�   Nr°   r   r    r±   rx   Z33607080910c                 C   s   | j S r¿   r´   rÀ   r¡   r¡   r¢   r£   f  r¤   zIE_IMSI.<lambda>rÂ   rÃ   r¡   r¡   r¡   r¢   r  _  s   


ÿür  zLocal DetachzComplete Detachz!RAT changed from 3GPP to Non-3GPPzISR deactivationz5Error Indication received from RNC/eNodeB/S4-SGSN/MMEzIMSI Detach OnlyzReactivation Requestedz'PDN reconnection to this APN disallowedz$Access changed from Non-3GPP to 3GPPz'PDN connection inactivity timer expireszPGW not respondingzNetwork FailurezQoS parameter mismatchzEPS to 5GS MobilityzRequest acceptedzRequest accepted partiallyz&New PDN type due to network preferencez.New PDN type due to single address bearer onlyzContext Not FoundzInvalid Message Formatz"Version not supported by next peerzInvalid lengthzService not supportedzMandatory IE incorrectzMandatory IE missingzSystem failurezNo resources availablez#Semantic error in the TFT operationz$Syntactic error in the TFT operationz#Semantic errors in packet filter(s)z$Syntactic errors in packet filter(s)zMissing or unknown APNzGRE key not foundzRelocation failurezDenied in RATz Preferred PDN type not supportedz"All dynamic addresses are occupiedz(UE context without TFT already activatedzProtocol type not supportedzUE not respondingz
UE refuseszService deniedzUnable to page UEzNo memory availablezUser authentication failedz#APN access denied - no subscriptionz'Request rejected (reason not specified)zP-TMSI Signature mismatchzIMSI/IMEI not knownz#Semantic error in the TAD operationz$Syntactic error in the TAD operationzRemote peer not respondingz(Collision with network initiated requestz#Unable to page UE due to SuspensionzConditional IE missingzFAPN Restriction type Incompatible with currently active PDN connectionzZInvalid overall length of the triggered response message and a piggybacked initial messagezData forwarding not supportedzInvalid reply from remote peerzFallback to GTPv1zInvalid peerzBTemporarily rejected due to handover/TAU/RAU procedure in progressz)Modifications not limited to S1-U bearersz$Request rejected for a PMIPv6 reasonzAPN CongestionzBearer handling not supportedzUE already re-attachedz4Multiple PDN connections for a given APN not allowedz+Target access restricted for the subscriberz$MME/SGSN refuses due to VPLMN PolicyzGTP-C Entity CongestionzLate Overlapping RequestzTimed out Requestz3UE is temporarily not reachable due to power savingz1Relocation failure due to NAS message redirectionz/UE not authorised by OCS or external AAA Serverz1Multiple accesses to a PDN connection not allowedz%Request rejected due to UE capabilityzS1-U Path Failurez5GC not allowed)Pr   r   r    r!   r"   r#   r$   r%   r&   rì   rí   rî   rï   rð   r¶   rñ   rò   ró   r3   r4   r5   r6   r7   r8   r9   r;   r<   r}   r~   r   r€   r�   rƒ   éQ   r„   r…   r†   éU   r‡   rˆ   éX   éY   éZ   é[   é\   r‰   rŠ   r=   r>   r?   r@   rB   rC   rD   rE   rF   éi   éj   r‹   él   rŒ   én   éo   ép   éq   r�   és   ét   éu   éw   éx   éy   éz   é{   é|   é}   rŽ   r�   rG   rH   c                   @   sl   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
deƒedddƒedddƒedddƒedddƒg	Z	dS )ÚIE_CausezIE Causer¯   r   r�   Nr°   r   r    r±   ry   r   rß   r!   ZPCEZBCEÚCS)
r¨   r©   rª   r«   r   r½   r   r   ÚCAUSE_VALUESr­   r¡   r¡   r¡   r¢   r+  Ì  s   







ør+  c                   @   sB   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
dƒgZ	dS )ÚIE_RecoveryRestartzIE Recovery Restartr¯   r   r�   Nr°   r   r    r±   Zrestart_counterrÌ   r¡   r¡   r¡   r¢   r.  Ù  s   


ür.  c                	   @   sL   e Zd ZdZeddeƒeddƒedddƒed	ddƒej	d
ddd„ d�gZ
dS )ÚIE_APNzIE APNr¯   r:   r�   Nr°   r   r    r±   rz   Zinternetc                 C   s   | j S r¿   r´   rÀ   r¡   r¡   r¢   r£   é  r¤   zIE_APN.<lambda>rÂ   )r¨   r©   rª   r«   r   r½   r   r   r   ZAPNStrLenFieldr­   r¡   r¡   r¡   r¢   r/  â  s   


ÿür/  c                	   @   sJ   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
ddd„ d�gZ	dS )ÚIE_BearerTFTzIE Bearer TFTr¯   r†   r�   Nr°   r   r    r±   Z
Bearer_TFTrÑ   c                 C   s   | j S r¿   r´   rÀ   r¡   r¡   r¢   r£   ó  r¤   zIE_BearerTFT.<lambda>rÂ   r  r¡   r¡   r¡   r¢   r0  ì  s   


ÿür0  c                   @   sJ   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
dƒeddƒgZ	dS )ÚIE_AMBRzIE AMBRr¯   r;   r�   Nr°   r   r    r±   ZAMBR_UplinkZAMBR_Downlink©
r¨   r©   rª   r«   r   r½   r   r   r
   r­   r¡   r¡   r¡   r¢   r1  ö  s   


ûr1  c                	   @   sL   e Zd ZdZeddeƒeddƒedddƒed	ddƒej	d
ddd„ d�gZ
dS )Ú	IE_MSISDNz	IE MSISDNr¯   r   r�   Nr°   r   r    r±   ÚdigitsZ33123456789c                 C   s   | j S r¿   r´   rÀ   r¡   r¡   r¢   r£     r¤   zIE_MSISDN.<lambda>rÂ   rÃ   r¡   r¡   r¡   r¢   r3     s   


ÿür3  c                H   @   s:  e Zd ZdZeddeƒeddƒedddƒed	ddƒeed
ddƒdd„ ƒeedddƒdd„ ƒeedddƒdd„ ƒeedddƒdd„ ƒeedddƒdd„ ƒeedddƒdd„ ƒeedddƒdd„ ƒeedddƒdd„ ƒeedddƒdd„ ƒeedddƒdd„ ƒeed ddƒd!d„ ƒeed"ddƒd#d„ ƒeed$ddƒd%d„ ƒeed&ddƒd'd„ ƒeed(ddƒd)d„ ƒeed*ddƒd+d„ ƒeed,ddƒd-d„ ƒeed.ddƒd/d„ ƒeed0ddƒd1d„ ƒeed2ddƒd3d„ ƒeed4ddƒd5d„ ƒeed6ddƒd7d„ ƒeed8ddƒd9d„ ƒeed:ddƒd;d„ ƒeed<ddƒd=d„ ƒeed>ddƒd?d„ ƒeed@ddƒdAd„ ƒeedBddƒdCd„ ƒeedDddƒdEd„ ƒeedFddƒdGd„ ƒeedHddƒdId„ ƒeedJddƒdKd„ ƒeedLddƒdMd„ ƒeedNddƒdOd„ ƒeedPddƒdQd„ ƒeedRddƒdSd„ ƒeedTddƒdUd„ ƒeedVddƒdWd„ ƒeedXddƒdYd„ ƒeedZddƒd[d„ ƒeed\ddƒd]d„ ƒeed^ddƒd_d„ ƒeed`ddƒdad„ ƒeedbddƒdcd„ ƒeeddddƒded„ ƒeedfddƒdgd„ ƒeedhddƒdid„ ƒeedjddƒdkd„ ƒeedlddƒdmd„ ƒeednddƒdod„ ƒeedpddƒdqd„ ƒeedrddƒdsd„ ƒeedtddƒdud„ ƒeedvddƒdwd„ ƒeedxddƒdyd„ ƒeedzddƒd{d„ ƒeed|ddƒd}d„ ƒeed~ddƒdd„ ƒeed€ddƒd�d„ ƒeed‚ddƒdƒd„ ƒeed„ddƒd…d„ ƒeed†ddƒd‡d„ ƒeedˆddƒd‰d„ ƒeedŠddƒd‹d„ ƒgDZ	dS )ŒÚIE_IndicationzIE Indicationr¯   r€   r�   Nr°   r   r    r±   ZDAFr   c                 C   s
   | j dkS ©Nr   r´   rŸ   r¡   r¡   r¢   r£     r¤   zIE_Indication.<lambda>ZDTFc                 C   s
   | j dkS r6  r´   rŸ   r¡   r¡   r¢   r£     r¤   ZHIc                 C   s
   | j dkS r6  r´   rŸ   r¡   r¡   r¢   r£     r¤   ZDFIc                 C   s
   | j dkS r6  r´   rŸ   r¡   r¡   r¢   r£     r¤   ZOIc                 C   s
   | j dkS r6  r´   rŸ   r¡   r¡   r¢   r£     r¤   ZISRSIc                 C   s
   | j dkS r6  r´   rŸ   r¡   r¡   r¢   r£     r¤   ZISRAIc                 C   s
   | j dkS r6  r´   rŸ   r¡   r¡   r¢   r£     r¤   ZSGWCIc                 C   s
   | j dkS r6  r´   rŸ   r¡   r¡   r¢   r£     r¤   ZSQCIc                 C   s
   | j dkS rž   r´   rŸ   r¡   r¡   r¢   r£   !  r¤   ZUIMSIc                 C   s
   | j dkS rž   r´   rŸ   r¡   r¡   r¢   r£   #  r¤   ZCFSIc                 C   s
   | j dkS rž   r´   rŸ   r¡   r¡   r¢   r£   %  r¤   ZCRSIc                 C   s
   | j dkS rž   r´   rŸ   r¡   r¡   r¢   r£   '  r¤   ZPSc                 C   s
   | j dkS rž   r´   rŸ   r¡   r¡   r¢   r£   )  r¤   ZPTc                 C   s
   | j dkS rž   r´   rŸ   r¡   r¡   r¢   r£   +  r¤   ZSIc                 C   s
   | j dkS rž   r´   rŸ   r¡   r¡   r¢   r£   -  r¤   ZMSVc                 C   s
   | j dkS rž   r´   rŸ   r¡   r¡   r¢   r£   /  r¤   ZRetLocc                 C   s
   | j dkS ©Nr   r´   rŸ   r¡   r¡   r¢   r£   1  r¤   ZPBICc                 C   s
   | j dkS r7  r´   rŸ   r¡   r¡   r¢   r£   3  r¤   ZSRNIc                 C   s
   | j dkS r7  r´   rŸ   r¡   r¡   r¢   r£   5  r¤   ZS6AFc                 C   s
   | j dkS r7  r´   rŸ   r¡   r¡   r¢   r£   7  r¤   ZS4AFc                 C   s
   | j dkS r7  r´   rŸ   r¡   r¡   r¢   r£   9  r¤   ZMBMDTc                 C   s
   | j dkS r7  r´   rŸ   r¡   r¡   r¢   r£   ;  r¤   ZISRAUc                 C   s
   | j dkS r7  r´   rŸ   r¡   r¡   r¢   r£   =  r¤   ZCCRSIc                 C   s
   | j dkS r7  r´   rŸ   r¡   r¡   r¢   r£   ?  r¤   ZCPRAIc                 C   s
   | j dkS ©Nr   r´   rŸ   r¡   r¡   r¢   r£   B  r¤   ZARRLc                 C   s
   | j dkS r8  r´   rŸ   r¡   r¡   r¢   r£   D  r¤   ZPPOFFc                 C   s
   | j dkS r8  r´   rŸ   r¡   r¡   r¢   r£   F  r¤   ZPPONc                 C   s
   | j dkS r8  r´   rŸ   r¡   r¡   r¢   r£   H  r¤   ZPPSIc                 C   s
   | j dkS r8  r´   rŸ   r¡   r¡   r¢   r£   J  r¤   ZCSFBIc                 C   s
   | j dkS r8  r´   rŸ   r¡   r¡   r¢   r£   L  r¤   ZCLIIc                 C   s
   | j dkS r8  r´   rŸ   r¡   r¡   r¢   r£   N  r¤   ZCPSRc                 C   s
   | j dkS r8  r´   rŸ   r¡   r¡   r¢   r£   P  r¤   ZNSIc                 C   s
   | j dkS r³   r´   rŸ   r¡   r¡   r¢   r£   R  r¤   ZUASIc                 C   s
   | j dkS r³   r´   rŸ   r¡   r¡   r¢   r£   T  r¤   ZDTCIc                 C   s
   | j dkS r³   r´   rŸ   r¡   r¡   r¢   r£   V  r¤   ZBDWIc                 C   s
   | j dkS r³   r´   rŸ   r¡   r¡   r¢   r£   X  r¤   ZPSCIc                 C   s
   | j dkS r³   r´   rŸ   r¡   r¡   r¢   r£   Z  r¤   ZPCRIc                 C   s
   | j dkS r³   r´   rŸ   r¡   r¡   r¢   r£   \  r¤   ZAOSIc                 C   s
   | j dkS r³   r´   rŸ   r¡   r¡   r¢   r£   ^  r¤   ZAOPIc                 C   s
   | j dkS r³   r´   rŸ   r¡   r¡   r¢   r£   `  r¤   ZROAAIc                 C   s
   | j dkS ©Nr!   r´   rŸ   r¡   r¡   r¢   r£   b  r¤   ZEPCOSIc                 C   s
   | j dkS r9  r´   rŸ   r¡   r¡   r¢   r£   d  r¤   ZCPOPCIc                 C   s
   | j dkS r9  r´   rŸ   r¡   r¡   r¢   r£   f  r¤   ZPMTSMIc                 C   s
   | j dkS r9  r´   rŸ   r¡   r¡   r¢   r£   h  r¤   ZS11TFc                 C   s
   | j dkS r9  r´   rŸ   r¡   r¡   r¢   r£   j  r¤   ZPNSIc                 C   s
   | j dkS r9  r´   rŸ   r¡   r¡   r¢   r£   l  r¤   ZUNACCSIc                 C   s
   | j dkS r9  r´   rŸ   r¡   r¡   r¢   r£   n  r¤   ZWPMSIc                 C   s
   | j dkS r9  r´   rŸ   r¡   r¡   r¢   r£   p  r¤   Z_5GSNN26c                 C   s
   | j dkS ©Nr"   r´   rŸ   r¡   r¡   r¢   r£   r  r¤   ZREPREFIc                 C   s
   | j dkS r:  r´   rŸ   r¡   r¡   r¢   r£   t  r¤   Z_5GSIWKIc                 C   s
   | j dkS r:  r´   rŸ   r¡   r¡   r¢   r£   v  r¤   ZEEVRSIc                 C   s
   | j dkS r:  r´   rŸ   r¡   r¡   r¢   r£   x  r¤   ZLTEMUIc                 C   s
   | j dkS r:  r´   rŸ   r¡   r¡   r¢   r£   z  r¤   ZLTEMPIc                 C   s
   | j dkS r:  r´   rŸ   r¡   r¡   r¢   r£   |  r¤   ZENBCRSIc                 C   s
   | j dkS r:  r´   rŸ   r¡   r¡   r¢   r£   ~  r¤   ZTSPCMIc                 C   s
   | j dkS r:  r´   rŸ   r¡   r¡   r¢   r£   €  r¤   rš   c                 C   s
   | j dkS ©Nr#   r´   rŸ   r¡   r¡   r¢   r£   ‚  r¤   r›   c                 C   s
   | j dkS r;  r´   rŸ   r¡   r¡   r¢   r£   „  r¤   r§   c                 C   s
   | j dkS r;  r´   rŸ   r¡   r¡   r¢   r£   †  r¤   ZN5GNMIc                 C   s
   | j dkS r;  r´   rŸ   r¡   r¡   r¢   r£   ˆ  r¤   Z_5GCNRSc                 C   s
   | j dkS r;  r´   rŸ   r¡   r¡   r¢   r£   Š  r¤   Z_5GCNRIc                 C   s
   | j dkS r;  r´   rŸ   r¡   r¡   r¢   r£   Œ  r¤   Z_5SRHOIc                 C   s
   | j dkS r;  r´   rŸ   r¡   r¡   r¢   r£   Ž  r¤   ZETHPDNc                 C   s
   | j dkS r;  r´   rŸ   r¡   r¡   r¢   r£   �  r¤   )
r¨   r©   rª   r«   r   r½   r   r   r   r­   r¡   r¡   r¡   r¢   r5  
  sŽ  


ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ ýr5  ÚIPv4ZIPv6z	IPv4/IPv6)r   r   r   zPrimary DNS Server IP addresszPrimary NBNS Server IP addresszSecondary DNS Server IP addressz Secondary NBNS Server IP address)r   rH   rI   rJ   rK   c                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú
PCO_Optionc                 C   s   d|fS rÔ   r¡   ©r¹   r    r¡   r¡   r¢   rÕ   ¥  s    zPCO_Option.extract_paddingc                 C   s>   | j d u r6|d d… t dt|ƒd ¡ |dd …  }|| S )Nr   ú!Br   ©r�   r·   r¸   Úlen©r¹   rº   r»   r¡   r¡   r¢   r¼   ¨  s    
,zPCO_Option.post_buildN©r¨   r©   rª   rÕ   r¼   r¡   r¡   r¡   r¢   r=  ¤  s   r=  c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚPCO_Protocolc                 C   s   d|fS rÔ   r¡   r>  r¡   r¡   r¢   rÕ   °  s    zPCO_Protocol.extract_paddingc                 C   s>   | j d u r6|d d… t dt|ƒd ¡ |dd …  }|| S )Nr   r?  r   r@  rB  r¡   r¡   r¢   r¼   ³  s    
,zPCO_Protocol.post_buildNrC  r¡   r¡   r¡   r¢   rD  ®  s   rD  c                   @   s0   e Zd ZdZeddeƒeddƒedeƒ ƒgZ	dS )ÚPCO_IPv4r<  ÚtypeNr�   r²   ©
r¨   r©   rª   r«   r   ÚPCO_OPTION_TYPESr   r	   r   r­   r¡   r¡   r¡   r¢   rE  ¹  s
   

þrE  c                   @   s0   e Zd ZdZeddeƒeddƒedeƒ ƒgZ	dS )ÚPCO_Primary_DNSúPrimary DNS Server IP AddressrF  Nr�   r²   rG  r¡   r¡   r¡   r¢   rI  À  s
   

þrI  c                   @   s0   e Zd ZdZeddeƒeddƒedeƒ ƒgZ	dS )ÚPCO_Primary_NBNSrJ  rF  Nr�   r²   rG  r¡   r¡   r¡   r¢   rK  Ç  s
   

þrK  c                   @   s0   e Zd ZdZeddeƒeddƒedeƒ ƒgZ	dS )ÚPCO_Secondary_DNSzSecondary DNS Server IP AddressrF  Nr�   r²   rG  r¡   r¡   r¡   r¢   rL  Î  s
   

þrL  c                   @   s0   e Zd ZdZeddeƒeddƒedeƒ ƒgZ	dS )ÚPCO_Secondary_NBNSz Secondary NBNS Server IP AddressrF  Nr�   r²   rG  r¡   r¡   r¡   r¢   rM  Õ  s
   

þrM  zP-CSCF IPv6 Address RequestzIM CN Subsystem Signaling FlagzDNS Server IPv6 Address Requestz8MS Support of Network Requested Bearer Control indicatorzIP Allocation via NASzDNS Server IPv4 Address RequestzP-CSCF IPv4 Address RequestzIPv4 Link MTU RequestzP-CSCF Re-selection SupportzPDU session IDz5GSM Cause Valuez QoS Rules With Support Indicatorz,QoS Flow Descriptions With Support IndicatorzS-NSSAIz	QoS RuleszSession-AMBRzQoS Flow DescriptionsZIPCPz Password Authentication Protocolz+Challenge Handshake Authentication Protocol)r   r   r   r!   r&   rî   rí   r¶   rò   rú   r+   r,   r)   rû   rà   rü   rþ   é!€  é#À  é#Â  c                 C   s    t | d ƒ}t |t¡}|| ƒS )úChoose the correct PCO element.r   )r   ÚPCO_OPTION_CLASSESrÆ   r   )rÈ   ÚoptionrÉ   r¡   r¡   r¢   ÚPCO_option_dispatcherü  s    rT  c                 C   s   | j r| j d S dS )Nr    r   r´   rŸ   r¡   r¡   r¢   Úlen_options  s    rU  c                   @   s:   e Zd ZdZeddeƒeddƒeedddƒdd	„ ƒgZ	dS )
ÚPCO_P_CSCF_IPv6_Address_Requestz#PCO PCO-P CSCF IPv6 Address RequestrF  Nr�   r²   ú2001:db8:0:42::rG   c                 C   s   | j S r¿   r´   rŸ   r¡   r¡   r¢   r£     r¤   z(PCO_P_CSCF_IPv6_Address_Request.<lambda>©
r¨   r©   rª   r«   r   ÚPCO_PROTOCOL_TYPESr   r   r   r­   r¡   r¡   r¡   r¢   rV    s   
ÿþþrV  c                   @   s4   e Zd ZdZeddeƒeddƒeddee	d�gZ
dS )Ú"PCO_IM_CN_Subsystem_Signaling_Flagz"PCO IM CN Subsystem Signaling FlagrF  Nr�   ÚOptionsrÂ   ©r¨   r©   rª   r«   r   rY  r   r   rT  rU  r­   r¡   r¡   r¡   r¢   rZ    s   
ÿþrZ  c                   @   s:   e Zd ZdZeddeƒeddƒeedddƒdd	„ ƒgZ	dS )
ÚPCO_DNS_Server_IPv6z#PCO DNS Server IPv6 Address RequestrF  Nr�   r²   rW  rG   c                 C   s   | j S r¿   r´   rŸ   r¡   r¡   r¢   r£     r¤   zPCO_DNS_Server_IPv6.<lambda>rX  r¡   r¡   r¡   r¢   r]    s   
ÿþþr]  c                   @   s&   e Zd ZdZeddeƒeddƒgZdS )ÚPCO_SOFz<PCO MS Support of Network Requested Bearer Control indicatorrF  Nr�   ©r¨   r©   rª   r«   r   rY  r   r­   r¡   r¡   r¡   r¢   r^  "  s   
ÿr^  c                	   @   sB   e Zd ZdZeddƒeddƒeddƒeddeed�gZ	d	d
„ Z
dS )ÚPCO_PPPzPPP IP Control ProtocolÚCoder   Ú
Identifierr�   Nr[  rÂ   c                 C   s   d|fS rÔ   r¡   r>  r¡   r¡   r¢   rÕ   1  s    zPCO_PPP.extract_padding)r¨   r©   rª   r«   r   r   r   rT  rU  r­   rÕ   r¡   r¡   r¡   r¢   r`  )  s   ÿýr`  c                   @   s4   e Zd ZdZeddeƒeddƒeddee	d�gZ
dS )ÚPCO_IP_Allocation_via_NASz+PCO IP Address allocation via NAS SignalingrF  Nr�   r[  rÂ   r\  r¡   r¡   r¡   r¢   rc  5  s   
ÿþrc  c                   @   s:   e Zd ZdZeddeƒeddƒeede	ƒ ƒdd„ ƒgZ
dS )ÚPCO_P_CSCF_IPv4_Address_Requestz#PCO PCO-P CSCF IPv4 Address RequestrF  Nr�   r²   c                 C   s   | j S r¿   r´   rŸ   r¡   r¡   r¢   r£   B  r¤   z(PCO_P_CSCF_IPv4_Address_Request.<lambda>©r¨   r©   rª   r«   r   rY  r   r   r	   r   r­   r¡   r¡   r¡   r¢   rd  =  s   
ÿþrd  c                   @   s:   e Zd ZdZeddeƒeddƒeede	ƒ ƒdd„ ƒgZ
dS )ÚPCO_DNS_Server_IPv4z#PCO DNS Server IPv4 Address RequestrF  Nr�   r²   c                 C   s   | j S r¿   r´   rŸ   r¡   r¡   r¢   r£   J  r¤   zPCO_DNS_Server_IPv4.<lambda>re  r¡   r¡   r¡   r¢   rf  E  s   
ÿþrf  c                   @   s8   e Zd ZdZeddeƒeddƒeeddƒdd„ ƒgZ	dS )	ÚPCO_IPv4_Link_MTU_RequestzPCO IPv4 Link MTU RequestrF  Nr�   ZMTU_sizeiÜ  c                 C   s   | j S r¿   r´   rŸ   r¡   r¡   r¢   r£   R  r¤   z"PCO_IPv4_Link_MTU_Request.<lambda>©
r¨   r©   rª   r«   r   rY  r   r   r   r­   r¡   r¡   r¡   r¢   rg  M  s   

ÿþrg  c                   @   s4   e Zd ZdZeddeƒeddƒeddee	d�gZ
dS )ÚPCO_P_CSCF_Re_selection_SupportzPCO P-CSCF Re-selection SupportrF  Nr�   r[  rÂ   r\  r¡   r¡   r¡   r¢   ri  U  s   
ÿþri  c                   @   s.   e Zd ZdZeddeƒeddƒeddƒgZdS )ÚPCO_PDU_Session_IdzPCO PDU session IDrF  Nr�   r   ZPduSessionIdr_  r¡   r¡   r¡   r¢   rj  ]  s
   
þrj  c                   @   s4   e Zd ZdZeddeƒeddƒeddee	d�gZ
dS )ÚPCO_5GSM_Cause_ValuezPCO 5GSM Cause ValuerF  Nr�   r[  rÂ   r\  r¡   r¡   r¡   r¢   rk  d  s   
ÿþrk  c                   @   s8   e Zd ZdZeddeƒeddƒeddedd„ d�gZ	dS )	Ú$PCO_QoS_Rules_With_Support_Indicatorz$PCO QoS Rules With Support IndicatorrF  Nr�   r[  c                 C   s   | j S r¿   r´   rŸ   r¡   r¡   r¢   r£   q  r¤   z-PCO_QoS_Rules_With_Support_Indicator.<lambda>rÂ   ©
r¨   r©   rª   r«   r   rY  r   r   rT  r­   r¡   r¡   r¡   r¢   rl  l  s   
ÿþrl  c                   @   s8   e Zd ZdZeddeƒeddƒeddedd„ d�gZ	dS )	Ú0PCO_QoS_Flow_Descriptions_With_Support_Indicatorz0PCO QoS Flow Descriptions With Support IndicatorrF  Nr�   r[  c                 C   s   | j S r¿   r´   rŸ   r¡   r¡   r¢   r£   y  r¤   z9PCO_QoS_Flow_Descriptions_With_Support_Indicator.<lambda>rÂ   rm  r¡   r¡   r¡   r¢   rn  t  s   
ÿþrn  c                	   @   sn   e Zd ZdZeddeƒeddƒeeddƒdd„ ƒeed	dƒd
d„ ƒeeddƒdd„ ƒeeddƒdd„ ƒgZ	dS )ÚPCO_S_NssaizPCO S-NSSAIrF  Nr�   ZSSTr   c                 C   s
   | j dkS r6  r´   rŸ   r¡   r¡   r¢   r£   �  r¤   zPCO_S_Nssai.<lambda>ZSDc                 C   s
   | j dkS rž   r´   rŸ   r¡   r¡   r¢   r£   ƒ  r¤   Z	Hplmn_Sstc                 C   s
   | j dkS r³   r´   rŸ   r¡   r¡   r¢   r£   …  r¤   ZHplmn_Sdc                 C   s
   | j dkS r³   r´   rŸ   r¡   r¡   r¢   r£   ‡  r¤   rh  r¡   r¡   r¡   r¢   ro  |  s    
ÿÿÿÿøro  c                   @   s8   e Zd ZdZeddeƒeddƒeddedd„ d�gZ	dS )	ÚPCO_Qos_RuleszPCO QoS RulesrF  Nr�   r[  c                 C   s   | j S r¿   r´   rŸ   r¡   r¡   r¢   r£   �  r¤   zPCO_Qos_Rules.<lambda>rÂ   rm  r¡   r¡   r¡   r¢   rp  Š  s   
ÿþrp  c                   @   sF   e Zd ZdZeddeƒeddƒeddƒeddƒed	dƒed
dƒgZdS )ÚPCO_Session_AMBRzPCO Session AMBRrF  Nr�   r"   Zdlunitr   ZdlambrZulunitZulambr)	r¨   r©   rª   r«   r   rY  r   r   r­   r¡   r¡   r¡   r¢   rq  ’  s   
ûrq  c                   @   s8   e Zd ZdZeddeƒeddƒeddedd„ d�gZ	dS )	ÚPCO_QoS_Flow_DescriptionszPCO QoS Flow DescriptionsrF  Nr�   r[  c                 C   s   | j S r¿   r´   rŸ   r¡   r¡   r¢   r£   ¡  r¤   z"PCO_QoS_Flow_Descriptions.<lambda>rÂ   rm  r¡   r¡   r¡   r¢   rr  œ  s   
ÿþrr  c                   @   s0   e Zd ZdZeddeƒeddƒeddeƒgZ	dS )ÚPCO_IPCPz&PCO Internet Protocol Control ProtocolrF  Nr�   ÚPPP)
r¨   r©   rª   r«   r   rY  r   r   r`  r­   r¡   r¡   r¡   r¢   rs  ¤  s
   

þrs  c                   @   sp   e Zd ZdZeddƒeddƒeddƒeddƒeedd	d
d„ d�dd„ ƒeddƒeedd	dd„ d�dd„ ƒgZdS )ÚPCO_PPP_Authú$PPP Password Authentication Protocolra  r   rb  r�   NÚPeerID_lengthZPeerIDrÑ   c                 C   s   | j S r¿   ©rw  rŸ   r¡   r¡   r¢   r£   ´  r¤   zPCO_PPP_Auth.<lambda>rÂ   c                 C   s   | j S r¿   rx  rŸ   r¡   r¡   r¢   r£   µ  r¤   ÚPassword_lengthZPasswordc                 C   s   | j S r¿   ©ry  rŸ   r¡   r¡   r¢   r£   »  r¤   c                 C   s   | j S r¿   rz  rŸ   r¡   r¡   r¢   r£   ¼  r¤   ©	r¨   r©   rª   r«   r   r   r   r   r­   r¡   r¡   r¡   r¢   ru  «  s,   ýüýûöru  c                   @   s0   e Zd ZdZeddeƒeddƒeddeƒgZ	dS )Ú$PCO_PasswordAuthentificationProtocolú$PCO Password Authentication ProtocolrF  Nr�   rt  )
r¨   r©   rª   r«   r   rY  r   r   ru  r­   r¡   r¡   r¡   r¢   r|  ¿  s
   

þr|  c                   @   sh   e Zd ZdZeddƒeddƒeddƒeddƒeedd	d
d„ d�dd„ ƒeedd	dd„ d�dd„ ƒgZdS )ÚPCO_PPP_Challengerv  ra  r   rb  r�   NÚ
value_sizeÚvaluerÑ   c                 C   s   | j S r¿   ©r  rŸ   r¡   r¡   r¢   r£   Î  r¤   zPCO_PPP_Challenge.<lambda>rÂ   c                 C   s   | j S r¿   r�  rŸ   r¡   r¡   r¢   r£   Ï  r¤   r«   c                 C   s   | j | j d S r9  )r�   r  rŸ   r¡   r¡   r¢   r£   Ò  r¤   c                 C   s   | j S r¿   r´   rŸ   r¡   r¡   r¢   r£   Ó  r¤   r{  r¡   r¡   r¡   r¢   r~  Æ  s$   þýþýør~  c                   @   s0   e Zd ZdZeddeƒeddƒeddeƒgZ	dS )Ú,PCO_ChallengeHandshakeAuthenticationProtocolr}  rF  Nr�   rt  )
r¨   r©   rª   r«   r   rY  r   r   r~  r­   r¡   r¡   r¡   r¢   r‚  Ö  s
   

þr‚  )r   r   r   r!   r&   rí   rî   r¶   rò   rú   r+   r,   r)   rû   rà   rü   rþ   rN  rO  rP  c                 C   s0   t | d ƒd t | d ƒ }t |t¡}|| ƒS )rQ  r   r  r   )r   ÚPCO_PROTOCOL_CLASSESrÆ   r   )rÈ   Z	proto_numrÉ   r¡   r¡   r¢   ÚPCO_protocol_dispatcherõ  s    r„  c                   @   sj   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
ddƒedddƒedddƒedde	dd„ d�gZ
dS )ÚIE_PCOz!IE Protocol Configuration Optionsr¯   r�   r�   Nr°   r   r    r±   Ú	Extensionr   rß   rt  r   Ú	Protocolsc                 C   s
   | j d S rž   r´   rŸ   r¡   r¡   r¢   r£     r¤   zIE_PCO.<lambda>rÂ   ©r¨   r©   rª   r«   r   r½   r   r   r   r„  r­   r¡   r¡   r¡   r¢   r…  ü  s   





ÿùr…  c                   @   sj   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
ddƒedddƒedddƒedde	dd„ d�gZ
dS )ÚIE_EPCOz*IE Extended Protocol Configuration Optionsr¯   r’   r�   Nr°   r   r    r±   r†  r   rß   rt  r   r‡  c                 C   s
   | j d S rž   r´   rŸ   r¡   r¡   r¢   r£     r¤   zIE_EPCO.<lambda>rÂ   rˆ  r¡   r¡   r¡   r¢   r‰  	  s   





ÿùr‰  c                   @   sj   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
ddƒedddƒedddƒedde	dd„ d�gZ
dS )ÚIE_APCOz,IE Additional Protocol Configuration Optionsr¯   ra   r�   Nr°   r   r    r±   Ú	extensionr   rß   rt  r   r‡  c                 C   s
   | j d S rž   r´   rŸ   r¡   r¡   r¢   r£      r¤   zIE_APCO.<lambda>rÂ   rˆ  r¡   r¡   r¡   r¢   rŠ    s   





ÿùrŠ  c                   @   sˆ   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
ddƒeddde	ƒe
eddƒdd„ ƒe
edddƒdd„ ƒe
eddƒdd„ ƒg	ZdS )ÚIE_PAAzIE PAAr¯   r‚   r�   Nr°   r   r    r±   rß   r!   ÚPDN_typer   Zipv6_prefix_lengthr$   c                 C   s
   | j dv S ©N)r   r   ©r�  rŸ   r¡   r¡   r¢   r£   -  r¤   zIE_PAA.<lambda>r  rW  rG   c                 C   s
   | j dv S rŽ  r�  rŸ   r¡   r¡   r¢   r£   0  r¤   r  c                 C   s
   | j dv S )N)r   r   r�  rŸ   r¡   r¡   r¢   r£   2  r¤   )r¨   r©   rª   r«   r   r½   r   r   r   Ú	PDN_TYPESr   r   r   r	   r­   r¡   r¡   r¡   r¢   rŒ  #  s&   



þ
þÿôrŒ  c                   @   sœ   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
ddƒedddƒedddƒedddƒedddƒeddƒedddƒedddƒedddƒedddƒgZ	dS )ÚIE_Bearer_QoSzIE Bearer Quality of Servicer¯   rƒ   r�   Nr°   r   r    r±   rš   r   ZPCIZPriorityLevelr›   ZPVIZQCIZMaxBitRateForUplinkr-   ZMaxBitRateForDownlinkZGuaranteedBitRateForUplinkZGuaranteedBitRateForDownlinkrÌ   r¡   r¡   r¡   r¢   r‘  6  s    











ór‘  c                   @   sB   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
dƒgZ	dS )ÚIE_ChargingIDzIE Charging IDr¯   rŠ   r�   Nr°   r   r    r±   Z
ChargingIDr2  r¡   r¡   r¡   r¢   r’  H  s   


ür’  c                   @   sB   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
dƒgZ	dS )ÚIE_ChargingCharacteristicszIE Charging Characteristicsr¯   r=   r�   Nr°   r   r    r±   ZChargingCharacteristric)
r¨   r©   rª   r«   r   r½   r   r   r   r­   r¡   r¡   r¡   r¢   r“  Q  s   


ür“  c                
   @   sP   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
ddƒeddde	ƒgZ
dS )ÚIE_PDN_typezIE PDN Typer¯   rA   r�   Nr°   r   r    r±   rß   r!   r�  r   )r¨   r©   rª   r«   r   r½   r   r   r   r�  r­   r¡   r¡   r¡   r¢   r”  Z  s   



ûr”  c                   @   sJ   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
dƒeddƒgZ	dS )ÚIE_UE_TimezonezIE UE Time zoner¯   r�   r�   Nr°   r   r    r±   ZTimezoneZDSTrÌ   r¡   r¡   r¡   r¢   r•  d  s   


ûr•  c                   @   sD   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
eƒ ƒgZ	dS )ÚIE_Port_NumberzIE Port Numberr¯   rŽ   r�   Nr°   r   r    r±   Z
PortNumber)
r¨   r©   rª   r«   r   r½   r   r   r   r­   r¡   r¡   r¡   r¢   r–  n  s   



ür–  c                   @   sB   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
dƒgZ	dS )ÚIE_APN_RestrictionzIE APN Restrictionr¯   r�   r�   Nr°   r   r    r±   ZAPN_RestrictionrÌ   r¡   r¡   r¡   r¢   r—  w  s   


ür—  c                	   @   sN   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
ddƒedddƒgZdS )ÚIE_SelectionModezIE Selection Moder¯   rG   r�   Nr°   r   r    r±   rß   r"   ZSelectionModer   r
  r¡   r¡   r¡   r¢   r˜  €  s   




ûr˜  c                   @   sJ   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
dƒeddƒgZ	dS )ÚIE_MMBRzIE Max MBR/APN-AMBR (MMBR)r¯   rc   r�   Nr°   r   r    r±   Zuplink_rateZdownlink_rater2  r¡   r¡   r¡   r¢   r™  Š  s   


ûr™  c                	   @   sN   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
ddƒedddƒgZdS )ÚIE_UPF_SelInd_Flagsz)IE UP Function Selection Indication Flagsr¯   r“   r�   Nr°   r   r    r±   rß   r#   ZDCNRr   r
  r¡   r¡   r¡   r¢   rš  ”  s   




ûrš  c                   @   s�   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
ddƒedddƒee	ddƒdd„ ƒee
dddƒdd„ ƒeedddƒdd„ ƒeddƒg
ZdS )Ú	IE_FQCSIDz
IE FQ-CSIDr¯   rK   r�   Nr°   r   r    r±   Únodeid_typeZnum_csidZ	nodeid_v4c                 C   s
   | j dkS r6  ©rœ  rŸ   r¡   r¡   r¢   r£   ¨  r¤   zIE_FQCSID.<lambda>Z	nodeid_v6rW  rG   c                 C   s
   | j dkS rž   r�  rŸ   r¡   r¡   r¢   r£   «  r¤   Znodeid_nonipr'   c                 C   s
   | j dkS r7  r�  rŸ   r¡   r¡   r¢   r£   ®  r¤   Úcsid)r¨   r©   rª   r«   r   r½   r   r   r   r	   r   r­   r¡   r¡   r¡   r¢   r›  ž  s*   




þ
þ
þñr›  c                	   @   sV   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
ddƒedddƒeddƒgZ	dS )ÚIE_Ran_Nas_CausezIE RAN/NAS Causer¯   r‘   r�   Nr°   r   r    r±   Zprotocol_typeZ
cause_typeZcause_valuerÌ   r¡   r¡   r¡   r¢   rŸ  ²  s   




úrŸ  c                
   @   sT   e Zd ZdZeddeƒeddƒedddƒed	ddƒed
de	ƒe
dddd„ d�gZdS )ÚIE_PrivateExtensionr|   r¯   r”   r�   Nrß   r   r    r±   ZenterprisenumZproprietaryvaluerÑ   c                 C   s
   | j d S r7  r´   rÀ   r¡   r¡   r¢   r£   Ç  r¤   zIE_PrivateExtension.<lambda>rÂ   )r¨   r©   rª   r«   r   r½   r   r   r   r   r   r­   r¡   r¡   r¡   r¢   r   ¾  s   



ÿúr   c                   @   s   e Zd ZeddeƒgZdS )ÚGTPV2Commandr  N)r¨   r©   rª   r   rÊ   r­   r¡   r¡   r¡   r¢   r¡  ø  s   r¡  c                   @   s   e Zd ZdZdS )ÚGTPV2EchoRequestzGTPv2 Echo RequestN©r¨   r©   rª   r«   r¡   r¡   r¡   r¢   r¢  ü  s   r¢  c                   @   s   e Zd ZdZdd„ ZdS )ÚGTPV2EchoResponsezGTPv2 Echo Responsec                 C   s
   t |tƒS r¿   )Ú
isinstancer¢  ©r¹   Úotherr¡   r¡   r¢   Úanswers  s    zGTPV2EchoResponse.answersN©r¨   r©   rª   r«   r¨  r¡   r¡   r¡   r¢   r¤     s   r¤  c                   @   s   e Zd ZdZdS )ÚGTPV2CreateSessionRequestzGTPv2 Create Session RequestNr£  r¡   r¡   r¡   r¢   rª    s   rª  c                   @   s   e Zd ZdZdd„ ZdS )ÚGTPV2CreateSessionResponsezGTPv2 Create Session Responsec                 C   s
   t |tƒS r¿   )r¥  rª  r¦  r¡   r¡   r¢   r¨    s    z"GTPV2CreateSessionResponse.answersNr©  r¡   r¡   r¡   r¢   r«    s   r«  c                   @   s   e Zd ZdZdS )ÚGTPV2DeleteSessionRequestúGTPv2 Delete Session RequestNr£  r¡   r¡   r¡   r¢   r¬    s   r¬  c                   @   s   e Zd ZdZdd„ ZdS )ÚGTPV2DeleteSessionResponser­  c                 C   s
   t |tƒS r¿   )r¥  r¬  r¦  r¡   r¡   r¢   r¨    s    z"GTPV2DeleteSessionResponse.answersNr©  r¡   r¡   r¡   r¢   r®    s   r®  c                   @   s   e Zd ZdZdS )ÚGTPV2ModifyBearerCommandzGTPv2 Modify Bearer CommandNr£  r¡   r¡   r¡   r¢   r¯    s   r¯  c                   @   s   e Zd ZdZdS )Ú"GTPV2ModifyBearerFailureIndicationz&GTPv2 Modify Bearer Failure IndicationNr£  r¡   r¡   r¡   r¢   r°  !  s   r°  c                   @   s   e Zd ZdZdS )ÚGTPV2DeleteBearerCommandzGTPv2 Delete Bearer CommandNr£  r¡   r¡   r¡   r¢   r±  %  s   r±  c                   @   s   e Zd ZdZdS )Ú"GTPV2DeleteBearerFailureIndicationz&GTPv2 Delete Bearer Failure IndicationNr£  r¡   r¡   r¡   r¢   r²  )  s   r²  c                   @   s   e Zd ZdZdS )ÚGTPV2BearerResourceCommandzGTPv2 Bearer Resource CommandNr£  r¡   r¡   r¡   r¢   r³  -  s   r³  c                   @   s   e Zd ZdZdS )Ú$GTPV2BearerResourceFailureIndicationz(GTPv2 Bearer Resource Failure IndicationNr£  r¡   r¡   r¡   r¢   r´  1  s   r´  c                   @   s   e Zd ZdZdS )Ú'GTPV2DownlinkDataNotifFailureIndicationz3GTPv2 Downlink Data Notification Failure IndicationNr£  r¡   r¡   r¡   r¢   rµ  5  s   rµ  c                   @   s   e Zd ZdZdS )ÚGTPV2ModifyBearerRequestzGTPv2 Modify Bearer RequestNr£  r¡   r¡   r¡   r¢   r¶  9  s   r¶  c                   @   s   e Zd ZdZdd„ ZdS )ÚGTPV2ModifyBearerResponsezGTPv2 Modify Bearer Responsec                 C   s
   t |tƒS r¿   )r¥  r¶  r¦  r¡   r¡   r¢   r¨  @  s    z!GTPV2ModifyBearerResponse.answersNr©  r¡   r¡   r¡   r¢   r·  =  s   r·  c                   @   s   e Zd ZdZdS )ÚGTPV2CreateBearerRequestzGTPv2 Create Bearer RequestNr£  r¡   r¡   r¡   r¢   r¸  D  s   r¸  c                   @   s   e Zd ZdZdd„ ZdS )ÚGTPV2CreateBearerResponsezGTPv2 Create Bearer Responsec                 C   s
   t |tƒS r¿   )r¥  r¸  r¦  r¡   r¡   r¢   r¨  K  s    z!GTPV2CreateBearerResponse.answersNr©  r¡   r¡   r¡   r¢   r¹  H  s   r¹  c                   @   s   e Zd ZdZdS )ÚGTPV2UpdateBearerRequestzGTPv2 Update Bearer RequestNr£  r¡   r¡   r¡   r¢   rº  O  s   rº  c                   @   s   e Zd ZdZdd„ ZdS )ÚGTPV2UpdateBearerResponsezGTPv2 Update Bearer Responsec                 C   s
   t |tƒS r¿   )r¥  rº  r¦  r¡   r¡   r¢   r¨  V  s    z!GTPV2UpdateBearerResponse.answersNr©  r¡   r¡   r¡   r¢   r»  S  s   r»  c                   @   s   e Zd ZdZdS )ÚGTPV2DeleteBearerRequestzGTPv2 Delete Bearer RequestNr£  r¡   r¡   r¡   r¢   r¼  Z  s   r¼  c                   @   s   e Zd ZdZdS )ÚGTPV2SuspendNotificationzGTPv2 Suspend NotificationNr£  r¡   r¡   r¡   r¢   r½  ^  s   r½  c                   @   s   e Zd ZdZdS )ÚGTPV2SuspendAcknowledgezGTPv2 Suspend AcknowledgeNr£  r¡   r¡   r¡   r¢   r¾  b  s   r¾  c                   @   s   e Zd ZdZdS )ÚGTPV2ResumeNotificationzGTPv2 Resume NotificationNr£  r¡   r¡   r¡   r¢   r¿  f  s   r¿  c                   @   s   e Zd ZdZdS )ÚGTPV2ResumeAcknowledgezGTPv2 Resume AcknowledgeNr£  r¡   r¡   r¡   r¢   rÀ  j  s   rÀ  c                   @   s   e Zd ZdZdS )ÚGTPV2DeleteBearerResponsezGTPv2 Delete Bearer ResponseNr£  r¡   r¡   r¡   r¢   rÁ  n  s   rÁ  c                   @   s   e Zd ZdZdS )ÚGTPV2ContextRequestzGTPv2 Context RequestNr£  r¡   r¡   r¡   r¢   rÂ  r  s   rÂ  c                   @   s   e Zd ZdZdd„ ZdS )ÚGTPV2ContextResponsezGTPv2 Context Responsec                 C   s
   t |tƒS r¿   )r¥  rÂ  r¦  r¡   r¡   r¢   r¨  y  s    zGTPV2ContextResponse.answersNr©  r¡   r¡   r¡   r¢   rÃ  v  s   rÃ  c                   @   s   e Zd ZdZdS )ÚGTPV2ContextAcknowledgezGTPv2 Context AcknowledgeNr£  r¡   r¡   r¡   r¢   rÄ  }  s   rÄ  c                   @   s   e Zd ZdZdS )Ú.GTPV2CreateIndirectDataForwardingTunnelRequestz4GTPv2 Create Indirect Data Forwarding Tunnel RequestNr£  r¡   r¡   r¡   r¢   rÅ  �  s   rÅ  c                   @   s   e Zd ZdZdd„ ZdS )Ú/GTPV2CreateIndirectDataForwardingTunnelResponsez5GTPv2 Create Indirect Data Forwarding Tunnel Responsec                 C   s
   t |tƒS r¿   )r¥  rÅ  r¦  r¡   r¡   r¢   r¨  ˆ  s    þz7GTPV2CreateIndirectDataForwardingTunnelResponse.answersNr©  r¡   r¡   r¡   r¢   rÆ  …  s   rÆ  c                   @   s   e Zd ZdZdS )Ú.GTPV2DeleteIndirectDataForwardingTunnelRequestz4GTPv2 Delete Indirect Data Forwarding Tunnel RequestNr£  r¡   r¡   r¡   r¢   rÇ  �  s   rÇ  c                   @   s   e Zd ZdZdd„ ZdS )Ú/GTPV2DeleteIndirectDataForwardingTunnelResponsez5GTPv2 Delete Indirect Data Forwarding Tunnel Responsec                 C   s
   t |tƒS r¿   )r¥  rÇ  r¦  r¡   r¡   r¢   r¨  –  s    þz7GTPV2DeleteIndirectDataForwardingTunnelResponse.answersNr©  r¡   r¡   r¡   r¢   rÈ  “  s   rÈ  c                   @   s   e Zd ZdZdS )ÚGTPV2ReleaseBearerRequestzGTPv2 Release Bearer RequestNr£  r¡   r¡   r¡   r¢   rÉ  �  s   rÉ  c                   @   s   e Zd ZdZdd„ ZdS )ÚGTPV2ReleaseBearerResponsezGTPv2 Release Bearer Responsec                 C   s
   t |tƒS r¿   )r¥  rÉ  r¦  r¡   r¡   r¢   r¨  ¤  s    z"GTPV2ReleaseBearerResponse.answersNr©  r¡   r¡   r¡   r¢   rÊ  ¡  s   rÊ  c                   @   s   e Zd ZdZdS )ÚGTPV2DownlinkDataNotifz GTPv2 Download Data NotificationNr£  r¡   r¡   r¡   r¢   rË  ¨  s   rË  c                   @   s   e Zd ZdZdS )ÚGTPV2DownlinkDataNotifAckz/GTPv2 Download Data Notification AcknowledgmentNr£  r¡   r¡   r¡   r¢   rÌ  ¬  s   rÌ  r   )rœ   r˜   r   r'   )rœ   r(   r+   r,   r)   r*   r3   r4   r5   r6   r7   r8   r9   r=   r>   r?   r@   rA   rB   rI   rJ   rK   r`   ra   r1   r2   rd   re   rf   rg   rh   ri   rj   rk   )¦r·   Zscapy.compatr   Z
scapy.datar   Zscapy.fieldsr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   Zscapy.layers.inet6r   Zscapy.packetr   r   r   Zscapy.volatiler   r   Zscapy.contribr   rÎ   r¬   r½   r•   ZIE_Baser®   r¾   rÊ   rË   rÍ   rÏ   rÓ   r×   rÛ   rÜ   rÝ   rÞ   rá   râ   rê   r  rÿ   r   r  r	  r  r  r  rÇ   r  r-  r+  r.  r/  r0  r1  r3  r5  r�  rH  r=  rD  rE  rI  rK  rL  rM  rY  rR  rT  rU  rV  rZ  r]  r^  r`  rc  rd  rf  rg  ri  rj  rk  rl  rn  ro  rp  rq  rr  rs  ru  r|  r~  r‚  rƒ  r„  r…  r‰  rŠ  rŒ  r‘  r’  r“  r”  r•  r–  r—  r˜  r™  rš  r›  rŸ  r   rÅ   r¡  r¢  r¤  rª  r«  r¬  r®  r¯  r°  r±  r²  r³  r´  rµ  r¶  r·  r¸  r¹  rº  r»  r¼  r½  r¾  r¿  rÀ  rÁ  rÂ  rÃ  rÄ  rÅ  rÆ  rÇ  rÈ  rÉ  rÊ  rË  rÌ  r¡   r¡   r¡   r¢   Ú<module>
   s  Pö€ ú Ú*
		

	
	#Ú*


	¥b	



 ýû	
ìû			
ì		

		


Ú.

ÿÿÿÿ