a
    kÄ#di0 ã                ¢   @   s®  d Z ddlZddlmZ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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% ddl&m'Z' dd	l(m)Z)m*Z*m+Z+m,Z, dd
l-m.Z.m/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"œZ0d#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`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{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ÁdÂdÃdÄœ¡Z1d#dÅdÆdÇdÈdÉdÊdËdÌdÍdÎdÏdÐdÑdÒdÓdÔœZ2dÕdÖd×dØdÙœZ3dÕdÖd×dØdÚdÛœZ4dÜdÝdÞdßdÙœZ5dàdádâdãdÙœZ6dädådædçdèdédêœZ7dëdìdídîdïdðdñdòdódôœ	Z8dïdðdõdöœZ9dïdðd÷döœZ:dødùdúdûdüdýdþdÿ�d œZ;�d�d�d�d�d�d�d�d�d œZ<d�d	iZ=dïdð�d
�d�ddÛœZ>�d�d�d�d�ddÛœZ?�d�d�dœZ@�d�d�d�d�d�d�d�d�d�d�d�d �d!�d"�d#�d$�d%œZAG �d&�d'„ �d'eBƒZCG �d(�d)„ �d)eCe+ƒZDG �d*�d+„ �d+eƒZEG �d,�d-„ �d-eƒZFG �d.�d/„ �d/eƒZG�d0�d1„ ZHG �d2�d3„ �d3eCe+ƒZIG �d4�d5„ �d5eIƒZJG �d6�d7„ �d7eJƒZKG �d8�d9„ �d9eJƒZLG �d:�d;„ �d;eJƒZMG �d<�d=„ �d=eJƒZNG �d>�d?„ �d?eJƒZOG �d@�dA„ �dAeJƒZPG �dB�dC„ �dCeJƒZQG �dD�dE„ �dEeJƒZRG �dF�dG„ �dGeJƒZSG �dH�dI„ �dIeJƒZTG �dJ�dK„ �dKeJƒZUG �dL�dM„ �dMeJƒZVG �dN�dO„ �dOeJƒZWG �dP�dQ„ �dQeJƒZXG �dR�dS„ �dSeJƒZYG �dT�dU„ �dUeJƒZZG �dV�dW„ �dWeJƒZ[G �dX�dY„ �dYeJƒZ\G �dZ�d[„ �d[eJƒZ]G �d\�d]„ �d]eJƒZ^G �d^�d_„ �d_eJƒZ_G �d`�da„ �daeJƒZ`G �db�dc„ �dceJƒZaG �dd�de„ �deeJƒZbG �df�dg„ �dgeJƒZcG �dh�di„ �dieJƒZdG �dj�dk„ �dkeJƒZeG �dl�dm„ �dmeJƒZfG �dn�do„ �doeJƒZgG �dp�dq„ �dqeJƒZhG �dr�ds„ �dseJƒZiG �dt�du„ �dueJƒZjG �dv�dw„ �dweJƒZkG �dx�dy„ �dyeJƒZlG �dz�d{„ �d{eJƒZmG �d|�d}„ �d}eJƒZnG �d~�d„ �deJƒZoG �d€�d�„ �d�eJƒZpG �d‚�dƒ„ �dƒeJƒZqG �d„�d…„ �d…eJƒZrG �d†�d‡„ �d‡eJƒZsG �dˆ�d‰„ �d‰eJƒZtG �dŠ�d‹„ �d‹eIƒZuG �dŒ�d�„ �d�eIƒZvG �dŽ�d�„ �d�eIƒZwG �d��d‘„ �d‘eIƒZxG �d’�d“„ �d“eIƒZyG �d”�d•„ �d•eIƒZzG �d–�d—„ �d—eIƒZ{G �d˜�d™„ �d™eIƒZ|G �dš�d›„ �d›eIƒZ}G �dœ�d�„ �d�eIƒZ~G �dž�dŸ„ �dŸeIƒZG �d �d¡„ �d¡eIƒZ€G �d¢�d£„ �d£eIƒZ�G �d¤�d¥„ �d¥eIƒZ‚G �d¦�d§„ �d§eIƒZƒG �d¨�d©„ �d©eIƒZ„G �dª�d«„ �d«eIƒZ…G �d¬�d­„ �d­eIƒZ†G �d®�d¯„ �d¯eIƒZ‡G �d°�d±„ �d±eIƒZˆG �d²�d³„ �d³eIƒZ‰G �d´�dµ„ �dµeIƒZŠG �d¶�d·„ �d·eIƒZ‹G �d¸�d¹„ �d¹eIƒZŒG �dº�d»„ �d»eIƒZ�G �d¼�d½„ �d½eIƒZŽG �d¾�d¿„ �d¿eIƒZ�G �dÀ�dÁ„ �dÁeIƒZ�G �dÂ�dÃ„ �dÃeIƒZ‘G �dÄ�dÅ„ �dÅeIƒZ’G �dÆ�dÇ„ �dÇeIƒZ“G �dÈ�dÉ„ �dÉeIƒZ”G �dÊ�dË„ �dËeIƒZ•G �dÌ�dÍ„ �dÍeIƒZ–G �dÎ�dÏ„ �dÏeIƒZ—G �dÐ�dÑ„ �dÑeIƒZ˜G �dÒ�dÓ„ �dÓeIƒZ™G �dÔ�dÕ„ �dÕeIƒZšG �dÖ�d×„ �d×eIƒZ›G �dØ�dÙ„ �dÙeIƒZœG �dÚ�dÛ„ �dÛeIƒZ�G �dÜ�dÝ„ �dÝeIƒZžG �dÞ�dß„ �dßeIƒZŸG �dà�dá„ �dáeIƒZ G �dâ�dã„ �dãeIƒZ¡G �dä�då„ �dåeIƒZ¢G �dæ�dç„ �dçeIƒZ£G �dè�dé„ �déeIƒZ¤G �dê�dë„ �dëeIƒZ¥G �dì�dí„ �díeIƒZ¦G �dî�dï„ �dïeIƒZ§G �dð�dñ„ �dñeIƒZ¨G �dò�dó„ �dóeIƒZ©G �dô�dõ„ �dõeIƒZªG �dö�d÷„ �d÷eIƒZ«G �dø�dù„ �dùeIƒZ¬G �dú�dû„ �dûeIƒZ­G �dü�dý„ �dýeIƒZ®G �dþ�dÿ„ �dÿeIƒZ¯G �d �d„ �deIƒZ°G �d�d„ �deIƒZ±G �d�d„ �deIƒZ²G �d�d„ �deIƒZ³G �d�d	„ �d	eIƒZ´G �d
�d„ �deIƒZµG �d�d„ �deIƒZ¶G �d�d„ �deIƒZ·G �d�d„ �deIƒZ¸G �d�d„ �deIƒZ¹G �d�d„ �deIƒZºG �d�d„ �deIƒZ»G �d�d„ �deIƒZ¼G �d�d„ �deIƒZ½G �d�d„ �deIƒZ¾G �d�d„ �deIƒZ¿G �d �d!„ �d!eIƒZÀG �d"�d#„ �d#eIƒZÁG �d$�d%„ �d%eIƒZÂG �d&�d'„ �d'eIƒZÃG �d(�d)„ �d)eIƒZÄG �d*�d+„ �d+eIƒZÅG �d,�d-„ �d-eIƒZÆG �d.�d/„ �d/eIƒZÇG �d0�d1„ �d1eIƒZÈG �d2�d3„ �d3eIƒZÉG �d4�d5„ �d5eIƒZÊG �d6�d7„ �d7eIƒZËG �d8�d9„ �d9eIƒZÌG �d:�d;„ �d;eIƒZÍG �d<�d=„ �d=eIƒZÎG �d>�d?„ �d?eIƒZÏG �d@�dA„ �dAeIƒZÐG �dB�dC„ �dCeIƒZÑG �dD�dE„ �dEeIƒZÒG �dF�dG„ �dGeIƒZÓG �dH�dI„ �dIeIƒZÔG �dJ�dK„ �dKeIƒZÕG �dL�dM„ �dMeIƒZÖG �dN�dO„ �dOeIƒZ×G �dP�dQ„ �dQeIƒZØG �dR�dS„ �dSeIƒZÙG �dT�dU„ �dUeIƒZÚG �dV�dW„ �dWeIƒZÛG �dX�dY„ �dYeIƒZÜG �dZ�d[„ �d[eIƒZÝG �d\�d]„ �d]eIƒZÞG �d^�d_„ �d_eIƒZßG �d`�da„ �daeIƒZàG �db�dc„ �dceIƒZáG �dd�de„ �deeIƒZâG �df�dg„ �dgeIƒZãG �dh�di„ �dieIƒZäG �dj�dk„ �dkeIƒZåG �dl�dm„ �dmeIƒZæG �dn�do„ �doeIƒZçG �dp�dq„ �dqeIƒZèG �dr�ds„ �dseIƒZéG �dt�du„ �dueIƒZêG �dv�dw„ �dweIƒZëG �dx�dy„ �dyeIƒZìeKeLeMeNeOePeQeReSeTeUeVeWeXeYeZe[e\euevewexeyeze{e|e}e~ee€e�e‚eƒe„e…e†e‡eˆe‰eŠe‹eŒe�eŽe�e�e‘e’e“e”e]e•e–e^e—e˜e™e_e`eše›eœe�ežeŸe e¡eae¢e£e¤e¥e¦e§e¨e©ebecedeeeªe«efe¬egeheie­e®e¯e°e±e²e³e´eµe¶e·eje¸e¹ekeºe»ele¼e½e¾e¿eÀeÁeÂeÃeÄeÅeÆeÇemeÈeÉeÊeËeÌeÍeÎeÏeneoepeqeÐereÑeÒeÓeÔeÕeÖe×eØeÙeÚeseÛeÜeÝeteÞeßeàeáeâeãeäeåeæeçeèeéeê�dzœ 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#eD�d©�dª� e*e#eD�d©�d«� e)e#eD�d©�d©�d¬� e)eDeî�d­�d®� e)eDeï�d¯�d®� e)eDeð�d°�d®� e)eDeñ�d±�d®� e)eDeò�d²�d®� e)eDeó�d³�d®� e)eDeô�d´�d®� e)eDeõ�dµ�d®� e)eDeö�d¶�d®� e)eDe÷�d·�d®� e)eDeø�d¸�d®� e)eDeù�d¹�d®� e)eDeú�dº�d®� e)eDeû�d»�d®� e)eDeü�d¼�d®� e)eDeý�d½�d®� e)eDeþ�d¾�d®� e)eDeÿ�d¿�d®� e)eD�e �dÀ�d®� e)eD�e�dÁ�d®� e)eD�e�dÂ�d®� e)eD�e�dÃ�d®� e)eD�e�dÄ�d®� e²dddd�dÅ� dS (Æ  z
3GPP TS 29.244
é    N)ÚchbÚorb)Úwarning)ÚFieldÚBitEnumFieldÚBitFieldÚByteEnumFieldÚShortEnumFieldÚ	ByteFieldÚIntFieldÚ	LongFieldÚConditionalFieldÚFieldLenFieldÚBitFieldLenFieldÚFieldListFieldÚIPFieldÚMACFieldÚPacketListFieldÚ
ShortFieldÚStrLenFieldÚStrFieldÚ	XBitFieldÚ
XByteFieldÚ	XIntFieldÚ
XLongFieldÚThreeBytesFieldÚSignedLongFieldÚSignedIntFieldÚMultipleTypeField)ÚUDP)ÚIP6Field)ÚIANA_ENTERPRISE_NUMBERS)Úbind_layersÚbind_bottom_upÚPacketÚRaw)ÚRandNumÚRandBinZheartbeat_requestZheartbeat_responseZpfd_management_requestZpfd_management_responseZassociation_setup_requestZassociation_setup_responseZassociation_update_requestZassociation_update_responseZassociation_release_requestZassociation_release_responseZversion_not_supported_responseZnode_report_requestZnode_report_responseZsession_set_deletion_requestZsession_set_deletion_responseZsession_establishment_requestZsession_establishment_responseZsession_modification_requestZsession_modification_responseZsession_deletion_requestZsession_deletion_responseZsession_report_requestZsession_report_response)é   é   é   é   é   é   é   é   é	   é
   é   é   é   é   é   é2   é3   é4   é5   é6   é7   é8   é9   ÚReservedz
Create PDRZPDIz
Create FARzForwarding ParameterszDuplicating Parametersz
Create URRz
Create QERzCreated PDRz
Update PDRz
Update FARzUpdate Forwarding Parametersz)Update BAR (PFCP Session Report Response)z
Update URRz
Update QERz
Remove PDRz
Remove FARz
Remove URRz
Remove QERZCausezSource InterfacezF-TEIDzNetwork Instancez
SDF FilterzApplication IDzGate StatusZMBRZGBRzQER Correlation IDZ
PrecedencezTransport Level MarkingzVolume ThresholdzTime ThresholdzMonitoring TimezSubsequent Volume ThresholdzSubsequent Time ThresholdzInactivity Detection TimezReporting TriggerszRedirect InformationzReport TypezOffending IEzForwarding PolicyzDestination InterfacezUP Function FeatureszApply Actionz!Downlink Data Service Informationz Downlink Data Notification DelayzDL Buffering Durationz#DL Buffering Suggested Packet CountzPFCPSMReq-FlagszPFCPSRRsp-FlagszLoad Control InformationzSequence NumberZMetriczOverload Control InformationÚTimerzPDR IDzF-SEIDzApplication ID's PFDszPFD contextzNode IDzPFD contentszMeasurement MethodzUsage Report TriggerzMeasurement PeriodzFQ-CSIDzVolume MeasurementzDuration Measurementz!Application Detection InformationzTime of First PacketzTime of Last PacketzQuota Holding TimezDropped DL Traffic ThresholdzVolume Quotaz
Time Quotaz
Start TimezEnd Timez	Query URRz,Usage Report (Session Modification Response)z(Usage Report (Session Deletion Response)z%Usage Report (Session Report Request)zURR IDzLinked URR IDzDownlink Data ReportzOuter Header Creationz
Create BARz)Update BAR (Session Modification Request)z
Remove BARzBAR IDzCP Function FeatureszUsage InformationzApplication Instance IDzFlow InformationzUE IP AddresszPacket RatezOuter Header RemovalzRecovery Time StampzDL Flow Level MarkingzHeader EnrichmentzError Indication ReportzMeasurement InformationzNode Report TypezUser Plane Path Failure ReportzRemote GTP-U PeerzUR-SEQNzUpdate Duplicating ParameterszActivate Predefined RuleszDeactivate Predefined RuleszFAR IDzQER IDz	OCI Flagsú PFCP Association Release RequestzGraceful Release PeriodzPDN TypezFailed Rule IDzTime Quota Mechanismz"User Plane IP Resource InformationzUser Plane Inactivity TimerzAggregated URRsZ
MultiplierzAggregated URR IDzSubsequent Volume QuotazSubsequent Time QuotaÚRQIÚQFIzQuery URR Referencez$Additional Usage Reports InformationzCreate Traffic EndpointzCreated Traffic EndpointzUpdate Traffic EndpointzRemove Traffic EndpointzTraffic Endpoint IDzEthernet Packet FilterzMAC AddresszC-TAGzS-TAGZ	EthertypeZProxyingzEthernet Filter IDzEthernet Filter Propertiesz!Suggested Buffering Packets CountzUser IDz Ethernet PDU Session InformationzEthernet Traffic InformationzMAC Addresses DetectedzMAC Addresses RemovedzEthernet Inactivity TimerzAdditional Monitoring TimezEvent QuotazEvent ThresholdzSubsequent Event QuotazSubsequent Event ThresholdzTrace InformationzFramed-RoutezFramed-RoutingzFramed-IPv6-RoutezEvent Time StampzAveraging WindowzPaging Policy IndicatorzAPN/DNNz3GPP Interface Type)¡r   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é   é    é!   é"   é#   é$   é%   é&   é'   é(   é)   é*   é+   é,   é-   é.   é/   é0   é1   r7   r8   r9   r:   r;   r<   r=   r>   é:   é;   é<   é=   é>   é?   é@   éA   éB   éC   éD   éE   éF   éG   éH   éI   éJ   éK   éL   éM   éN   éO   éP   éQ   éR   éS   éT   éU   éV   éW   éX   éY   éZ   é[   é\   é]   é^   é_   é`   éa   éb   éc   éd   ée   éf   ég   éh   éi   éj   ék   él   ém   én   éo   ép   éq   ér   és   ét   éu   év   éw   éx   éy   éz   é{   é|   é}   é~   é   é€   é�   é‚   éƒ   é„   é…   é†   é‡   éˆ   é‰   éŠ   é‹   éŒ   é�   éŽ   é�   é�   é‘   é’   é“   é”   é•   é–   é—   é˜   é™   éš   é›   éœ   é�   éž   éŸ   é    zRequest acceptedzRequest rejectedzSession context not foundzMandatory IE missingzConditional IE missingzInvalid lengthzMandatory IE incorrectzInvalid Forwarding Policyz Invalid F-TEID allocation optionzNo established Sx Associationz"Rule creation/modification FailurezPFCP entity in congestionzNo resources availablezService not supportedzSystem failure)r   r(   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   ÚAccessZCorezSGi-LAN/N6-LANzCP-function)r   r(   r)   r*   zLI function)r   r(   r)   r*   r+   úIPv4 addresszIPv6 addressÚURLzSIP URIÚOPENZCLOSEDZCLOSED_RESERVED_2ZCLOSED_RESERVED_3ú	2 secondsz1 minutez
10 minutesz1 hourz10 hoursZinfinite)r   r(   r)   r*   r+   r.   zGTP-U/UDP/IPv4zGTP-U/UDP/IPv6zUDP/IPv4zUDP/IPv6ÚIPv4ZIPv6zGTP-U/UDP/IPz
VLAN S-TAGzS-TAG and C-TAG)	r   r(   r)   r*   r+   r,   r-   r.   r/   ZFQDN)r   r(   r)   ZMCCMNCIdÚUnspecifiedZDownlinkZUplinkZBidirectionalZUnspecified4ZUnspecified5ZUnspecified6ZUnspecified7)r   r(   r)   r*   r+   r,   r-   r.   Úminutez	6 minutesÚhourÚdayÚweekZmin5Zmin6Zmin7ÚHTTPZIPv4v6zNon-IPZEthernetÚPDRZFARZQERZURRZBARÚCTPZDTP)r   r(   úS1-UzS5 /S8-UzS4-UzS11-UzS12-UzGn/Gp-UzS2a-UzS2b-Uz-eNodeB GTP-U interface for DL data forwardingz-eNodeB GTP-U interface for UL data forwardingz.SGW/UPF GTP-U interface for DL data forwardingzN3 3GPP AccesszN3 Trusted Non-3GPP AccesszN3 Untrusted Non-3GPP AccesszN3 for data forwardingZN9)r   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   c                   @   s   e Zd Zdd„ ZdS )ÚPFCPLengthMixinc                 C   sF   ||7 }| j d u rBt|ƒd }|d d… t d|¡ |dd …  }|S )Nr+   r)   z!H)ÚlengthÚlenÚstructÚpack)ÚselfÚpZpayÚtmp_len© rä   úI/var/www/html/gsl.tools/lib/python3.9/site-packages/scapy/contrib/pfcp.pyÚ
post_buildr  s
    
$zPFCPLengthMixin.post_buildN)Ú__name__Ú
__module__Ú__qualname__ræ   rä   rä   rä   rå   rÜ   q  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ƒed	ddƒed
ddƒeddeƒeddƒe	e
ddƒdd„ ƒeddƒe	edddƒdd„ ƒe	edddƒdd„ ƒe	eddƒdd„ ƒgZdd„ Zdd„ ZdS )ÚPFCPzPFCP (v1) HeaderÚversionr(   r*   Zspare_b2r   Zspare_b3Zspare_b4ÚMPÚSÚmessage_typeNrÝ   Úseidc                 C   s
   | j dkS ©Nr(   )rí   ©Úpkträ   rä   rå   Ú<lambda>ˆ  ó    zPFCP.<lambda>ÚseqÚpriorityr+   c                 C   s
   | j dkS rð   ©rì   rñ   rä   rä   rå   ró   ‹  rô   Zspare_pc                 C   s
   | j dkS rð   r÷   rñ   rä   rä   rå   ró   �  rô   Ú	spare_octc                 C   s
   | j dkS ©Nr   r÷   rñ   rä   rä   rå   ró   �  rô   c                 C   s&   t  d| j¡t  d| j¡ | j ¡  S )NÚBÚI)rß   rà   rë   rõ   ÚpayloadÚhashret©rá   rä   rä   rå   rý   ’  s    ÿzPFCP.hashretc                 C   s0   t |tƒo.| j|jko.| j|jko.| j |j¡S ©N)Ú
isinstancerê   rë   rõ   rü   Úanswers©rá   Úotherrä   rä   rå   r  –  s    

ÿ
þýzPFCP.answers)rç   rè   ré   Únamer   r   r   ÚPFCPmessageTyper   r   r   r   r
   Úfields_descrý   r  rä   rä   rä   rå   rê   z  s2   







ÿÿÿ
ÿðrê   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚAPNStrLenFieldc                 C   sr   d}|}|rjt |d ƒd }|t|ƒkr<td|t|ƒf ƒ ||d|… 7 }||d … }t|ƒr|d7 }q|}|S )Nrô   r   r(   zDAPN prematured end of character-string (size=%i, remaining bytes=%i)ó   .)r   rÞ   r   )rá   rò   ÚsZret_sZtmp_srã   rä   rä   rå   Úm2iŸ  s    
zAPNStrLenField.m2ic                 C   s   d  dd„ | d¡D ƒ¡}|S )Nrô   c                 s   s   | ]}t t|ƒƒ| V  qd S rÿ   )r   rÞ   )Ú.0Úxrä   rä   rå   Ú	<genexpr>®  rô   z%APNStrLenField.i2m.<locals>.<genexpr>r  )ÚjoinÚsplit)rá   rò   r	  rä   rä   rå   Úi2m­  s    zAPNStrLenField.i2mN)rç   rè   ré   r
  r  rä   rä   rä   rå   r  �  s   r  c                   @   s.   e Zd Zddd„Zdd„ Zdd„ Zdd	„ Zd
S )ÚExtraDataFieldrô   c                 C   s   t  | ||¡ d S rÿ   )r   Ú__init__©rá   r  Údefaulträ   rä   rå   r  ³  s    zExtraDataField.__init__c                 C   s   ||   ||¡ S rÿ   )r  ©rá   rò   r	  Úvalrä   rä   rå   Úaddfield¶  s    zExtraDataField.addfieldc                 C   s@   t |jƒt |ƒ }|jd | }||d … |  ||d |… ¡fS ©Nr+   )rÞ   ÚoriginalrÝ   r
  )rá   rò   r	  râ   rÝ   rä   rä   rå   Úgetfield¹  s    zExtraDataField.getfieldc                 C   s   t tddƒƒS )Nr   r)   )r'   r&   rþ   rä   rä   rå   Úrandval¿  s    zExtraDataField.randvalN)rô   ©rç   rè   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d„ Zdd„ Zd	S )
Ú
Int40Fieldc                 C   s   t  | ||d¡ d S )NZBI)r   r  r  rä   rä   rå   r  Ä  s    zInt40Field.__init__c                 C   s&   |   ||¡}|t d|d? |d@ ¡ S )Nú!BIrT   l   ÿÿ )r  rß   rà   r  rä   rä   rå   r  Ç  s    zInt40Field.addfieldc                 C   s8   t  d|d d… ¡\}}|dd … |  ||d> | ¡fS )Nr  r,   rT   )rß   Úunpackr
  )rá   rò   r	  ÚhiÚlorä   rä   rå   r  Ë  s    zInt40Field.getfieldc                 C   s
   t ddƒS )Nr   l   ÿÿÿ)r&   rþ   rä   rä   rå   r  Ï  s    zInt40Field.randvalNr  rä   rä   rä   rå   r  Ã  s   r  c                 C   sL   t | d ƒd t | d ƒ }|d@ r,t| ƒS t |t¡}|tu rDt}|| ƒS )z-Choose the correct Information Element class.r   é   r(   i €  )r   ÚIE_EnterpriseSpecificÚ	ietypeclsÚgetr%   ÚIE_NotImplemented)r	  ÚietypeÚclsrä   rä   rå   ÚIE_DispatcherÓ  s    r)  c                       s>   e Zd ZdZ‡ fdd„Zdd„ ZeddeƒeddƒgZ	‡  Z
S )	ÚIE_BaseNc                    s6   | j | jd _| j| jd _tt| ƒj|i |¤Ž d S )Nr   r(   )Úie_typer  r  Údefault_lengthÚsuperr*  r  )rá   ÚargsÚkwargs©Ú	__class__rä   rå   r  å  s    zIE_Base.__init__c                 C   s   d|fS )NÚ rä   )rá   rò   rä   rä   rå   Úextract_paddingê  s    zIE_Base.extract_paddingr'  r   rÝ   )rç   rè   ré   r,  r  r3  r	   ÚIETyper   r  Ú__classcell__rä   rä   r0  rå   r*  â  s   
þr*  c                   @   s(   e Zd Zejeddedd„ d�g ZdS )ÚIE_CompoundÚIE_listNc                 C   s   | j S rÿ   ©rÝ   rñ   rä   rä   rå   ró   ö  rô   zIE_Compound.<lambda>©Zlength_from)rç   rè   ré   r*  r  r   r)  rä   rä   rä   rå   r6  ó  s
   ÿÿr6  c                   @   s   e Zd ZdZdZdS )ÚIE_CreatePDRzIE Create PDRr(   N©rç   rè   ré   r  r+  rä   rä   rä   rå   r:  ú  s   r:  c                   @   s   e Zd ZdZdZdS )ÚIE_PDIzIE PDIr)   Nr;  rä   rä   rä   rå   r<  ÿ  s   r<  c                   @   s   e Zd ZdZdZdS )ÚIE_CreateFARzIE Create FARr*   Nr;  rä   rä   rä   rå   r=    s   r=  c                   @   s   e Zd ZdZdZdS )ÚIE_ForwardingParameterszIE Forwarding Parametersr+   Nr;  rä   rä   rä   rå   r>  	  s   r>  c                   @   s   e Zd ZdZdZdS )ÚIE_DuplicatingParameterszIE Duplicating Parametersr,   Nr;  rä   rä   rä   rå   r?    s   r?  c                   @   s   e Zd ZdZdZdS )ÚIE_CreateURRzIE Create URRr-   Nr;  rä   rä   rä   rå   r@    s   r@  c                   @   s   e Zd ZdZdZdS )ÚIE_CreateQERzIE Create QERr.   Nr;  rä   rä   rä   rå   rA    s   rA  c                   @   s   e Zd ZdZdZdS )ÚIE_CreatedPDRzIE Created PDRr/   Nr;  rä   rä   rä   rå   rB    s   rB  c                   @   s   e Zd ZdZdZdS )ÚIE_UpdatePDRzIE Update PDRr0   Nr;  rä   rä   rä   rå   rC  "  s   rC  c                   @   s   e Zd ZdZdZdS )ÚIE_UpdateFARzIE Update FARr1   Nr;  rä   rä   rä   rå   rD  '  s   rD  c                   @   s   e Zd ZdZdZdS )ÚIE_UpdateForwardingParameterszIE Update Forwarding Parametersr2   Nr;  rä   rä   rä   rå   rE  ,  s   rE  c                   @   s   e Zd ZdZdZdS )ÚIE_UpdateBAR_SRRz,IE Update BAR (PFCP Session Report Response)r3   Nr;  rä   rä   rä   rå   rF  1  s   rF  c                   @   s   e Zd ZdZdZdS )ÚIE_UpdateURRzIE Update URRr4   Nr;  rä   rä   rä   rå   rG  6  s   rG  c                   @   s   e Zd ZdZdZdS )ÚIE_UpdateQERzIE Update QERr5   Nr;  rä   rä   rä   rå   rH  ;  s   rH  c                   @   s   e Zd ZdZdZdS )ÚIE_RemovePDRzIE Remove PDRr6   Nr;  rä   rä   rä   rå   rI  @  s   rI  c                   @   s   e Zd ZdZdZdS )ÚIE_RemoveFARzIE Remove FARrD   Nr;  rä   rä   rä   rå   rJ  E  s   rJ  c                   @   s   e Zd ZdZdZdS )ÚIE_RemoveURRzIE Remove URRrE   Nr;  rä   rä   rä   rå   rK  J  s   rK  c                   @   s   e Zd ZdZdZdS )ÚIE_RemoveQERzIE Remove QERrF   Nr;  rä   rä   rä   rå   rL  O  s   rL  c                   @   s   e Zd ZdZdZdS )ÚIE_LoadControlInformationzIE Load Control Informationr8   Nr;  rä   rä   rä   rå   rM  T  s   rM  c                   @   s   e Zd ZdZdZdS )ÚIE_OverloadControlInformationzIE Overload Control Informationr;   Nr;  rä   rä   rä   rå   rN  Y  s   rN  c                   @   s   e Zd ZdZdZdS )ÚIE_ApplicationID_PFDszIE Application ID's PFDsrf   Nr;  rä   rä   rä   rå   rO  ^  s   rO  c                   @   s   e Zd ZdZdZdS )ÚIE_PFDContextzIE PFD contextrg   Nr;  rä   rä   rä   rå   rP  c  s   rP  c                   @   s   e Zd ZdZdZdS )Ú"IE_ApplicationDetectionInformationz$IE Application Detection Informationrp   Nr;  rä   rä   rä   rå   rQ  h  s   rQ  c                   @   s   e Zd ZdZdZdS )ÚIE_QueryURRzIE Query URRry   Nr;  rä   rä   rä   rå   rR  m  s   rR  c                   @   s   e Zd ZdZdZdS )ÚIE_UsageReport_SMRz/IE Usage Report (Session Modification Response)rz   Nr;  rä   rä   rä   rå   rS  r  s   rS  c                   @   s   e Zd ZdZdZdS )ÚIE_UsageReport_SDRz+IE Usage Report (Session Deletion Response)r{   Nr;  rä   rä   rä   rå   rT  w  s   rT  c                   @   s   e Zd ZdZdZdS )ÚIE_UsageReport_SRRz(IE Usage Report (Session Report Request)r|   Nr;  rä   rä   rä   rå   rU  |  s   rU  c                   @   s   e Zd ZdZdZdS )ÚIE_DownlinkDataReportzIE Downlink Data Reportr   Nr;  rä   rä   rä   rå   rV  �  s   rV  c                   @   s   e Zd ZdZdZdS )ÚIE_Create_BARzIE Create BARr�   Nr;  rä   rä   rä   rå   rW  †  s   rW  c                   @   s   e Zd ZdZdZdS )ÚIE_Update_BAR_SMRz,IE Update BAR (Session Modification Request)r‚   Nr;  rä   rä   rä   rå   rX  ‹  s   rX  c                   @   s   e Zd ZdZdZdS )ÚIE_Remove_BARzIE Remove BARrƒ   Nr;  rä   rä   rä   rå   rY  �  s   rY  c                   @   s   e Zd ZdZdZdS )ÚIE_ErrorIndicationReportzIE Error Indication Reportr�   Nr;  rä   rä   rä   rå   rZ  •  s   rZ  c                   @   s   e Zd ZdZdZdS )ÚIE_UserPlanePathFailureReportz!IE User Plane Path Failure Reportr’   Nr;  rä   rä   rä   rå   r[  š  s   r[  c                   @   s   e Zd ZdZdZdS )ÚIE_UpdateDuplicatingParametersz IE Update Duplicating Parametersr•   Nr;  rä   rä   rä   rå   r\  Ÿ  s   r\  c                   @   s   e Zd ZdZdZdS )ÚIE_AggregatedURRszIE Aggregated URRsr¢   Nr;  rä   rä   rä   rå   r]  ¤  s   r]  c                   @   s   e Zd ZdZdZdS )ÚIE_CreateTrafficEndpointzIE Create Traffic Endpointr«   Nr;  rä   rä   rä   rå   r^  ©  s   r^  c                   @   s   e Zd ZdZdZdS )ÚIE_CreatedTrafficEndpointzIE Created Traffic Endpointr¬   Nr;  rä   rä   rä   rå   r_  ®  s   r_  c                   @   s   e Zd ZdZdZdS )ÚIE_UpdateTrafficEndpointzIE Update Traffic Endpointr­   Nr;  rä   rä   rä   rå   r`  ³  s   r`  c                   @   s   e Zd ZdZdZdS )ÚIE_RemoveTrafficEndpointzIE Remove Traffic Endpointr®   Nr;  rä   rä   rä   rå   ra  ¸  s   ra  c                   @   s   e Zd ZdZdZdS )ÚIE_EthernetPacketFilterzIE Ethernet Packet Filterr°   Nr;  rä   rä   rä   rå   rb  ½  s   rb  c                   @   s   e Zd ZdZdZdS )ÚIE_EthernetTrafficInformationzIE Ethernet Traffic Informationr»   Nr;  rä   rä   rä   rå   rc  Â  s   rc  c                   @   s   e Zd ZdZdZdS )ÚIE_AdditionalMonitoringTimezIE Additional Monitoring Timer¿   Nr;  rä   rä   rä   rå   rd  Ç  s   rd  c                   @   s(   e Zd ZdZdZejeddeƒg ZdS )ÚIE_CauserG   zIE CauseÚcauseN)	rç   rè   ré   r+  r  r*  r  r   ÚCauseValuesrä   rä   rä   rå   re  Ì  s
   
ÿre  c                   @   s:   e Zd ZdZdZejedddƒeddde	ƒe
dƒg Zd	S )
ÚIE_SourceInterfacezIE Source InterfacerH   Úsparer   r+   Ú	interfacerÍ   Ú
extra_dataN)rç   rè   ré   r  r+  r*  r  r   r   ÚSourceInterfacer  rä   rä   rä   rå   rh  Ô  s   
ýrh  c                   @   sž   e Zd ZdZdZejed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„ ƒe	eddƒdd„ ƒe	eddƒdd„ ƒedƒg
 ZdS )ÚIE_FTEIDz	IE F-TEIDrI   ri  r   r+   ÚCHIDr(   ÚCHÚV6ÚV4ÚTEIDc                 C   s
   | j dkS rù   )ro  ©r  rä   rä   rå   ró   ç  rô   zIE_FTEID.<lambda>Úipv4c                 C   s   | j dko| jdkS ©Nr(   r   )rq  ro  rs  rä   rä   rå   ró   é  rô   Úipv6c                 C   s   | j dko| jdkS ru  )rp  ro  rs  rä   rä   rå   ró   ë  rô   Z	choose_idc                 C   s
   | j dkS rð   )rn  rs  rä   rä   rå   ró   í  rô   rk  N)rç   rè   ré   r  r+  r*  r  r   r   r   r   r   r    r
   r  rä   rä   rä   rå   rm  Þ  s(   





ÿ
ÿ
ÿórm  c                   @   s.   e Zd ZdZdZejedddd„ d�g ZdS )	ÚIE_NetworkInstancezIE Network InstancerJ   Úinstancer2  c                 C   s   | j S rÿ   r8  rs  rä   rä   rå   ró   ö  rô   zIE_NetworkInstance.<lambda>r9  N©rç   rè   ré   r  r+  r*  r  r  rä   rä   rä   rå   rw  ò  s
   ÿrw  c                   @   sò   e Zd ZdZdZej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dd�dd„ ƒe
edddd„ d�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„ ƒe
eddƒd d„ ƒed!ƒg ZdS )"ÚIE_SDF_FilterzIE SDF FilterrK   ri  r   r*   ÚBIDr(   ÚFLÚSPIÚTTCÚFDrø   Úflow_description_lengthNZflow_description©Ú	length_ofc                 C   s
   | j dkS rð   ©r  rñ   rä   rä   rå   ró     rô   zIE_SDF_Filter.<lambda>r2  c                 C   s   | j S rÿ   )r€  rñ   rä   rä   rå   ró   	  s    r9  c                 C   s
   | j dkS rð   rƒ  rñ   rä   rä   rå   ró     rô   Ztos_traffic_classc                 C   s
   | j dkS rð   ©r~  rñ   rä   rä   rå   ró     rô   Ztos_traffic_maskc                 C   s
   | j dkS rð   r„  rñ   rä   rä   rå   ró     rô   Zsecurity_parameter_indexc                 C   s
   | j dkS rð   )r}  rñ   rä   rä   rå   ró     rô   Z
flow_labelc                 C   s
   | j dkS rð   )r|  rñ   rä   rä   rå   ró     rô   Zsdf_filter_idc                 C   s
   | j dkS rð   )r{  rñ   rä   rä   rå   ró     rô   rk  )rç   rè   ré   r  r+  r*  r  r   r   r
   r   r   r   r   r   r  rä   rä   rä   rå   rz  ú  sJ   





ÿþÿý
ÿ
ÿ
ÿ
ÿ
ÿçrz  c                   @   s.   e Zd ZdZdZejedddd„ d�g ZdS )	ÚIE_ApplicationIdzIE Application IDrL   Úidr2  c                 C   s   | j S rÿ   r8  rs  rä   rä   rå   ró     rô   zIE_ApplicationId.<lambda>r9  N©rç   rè   ré   r  r+  r*  r  r   rä   rä   rä   rå   r…    s
   ÿr…  c                   @   sF   e Zd ZdZdZejedddƒeddde	ƒed	dde	ƒe
d
ƒg ZdS )ÚIE_GateStatuszIE Gate StatusrM   ri  r   r+   ÚulrÐ   r)   Údlrk  N)rç   rè   ré   r  r+  r*  r  r   r   Ú
GateStatusr  rä   rä   rä   rå   rˆ  "  s   
ürˆ  c                   @   s4   e Zd ZdZdZejeddƒeddƒedƒg ZdS )ÚIE_MBRzIE MBRrN   r‰  r   rŠ  rk  N©	rç   rè   ré   r  r+  r*  r  r  r  rä   rä   rä   rå   rŒ  -  s   ýrŒ  c                   @   s4   e Zd ZdZdZejeddƒeddƒedƒg ZdS )ÚIE_GBRzIE GBRrO   r‰  r   rŠ  rk  Nr�  rä   rä   rä   rå   rŽ  7  s   ýrŽ  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )ÚIE_QERCorrelationIdzIE QER Correlation IDrP   r†  r   rk  N©	rç   rè   ré   r  r+  r*  r  r   r  rä   rä   rä   rå   r�  A  s   þr�  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )ÚIE_PrecedencezIE PrecedencerQ   Ú
precedencer   rk  Nr�  rä   rä   rä   rå   r‘  J  s   þr‘  c                   @   s4   e Zd ZdZdZejeddƒeddƒedƒg ZdS )ÚIE_TransportLevelMarkingzIE Transport Level MarkingrR   Ztosr   Útraffic_classrk  N)	rç   rè   ré   r  r+  r*  r  r   r  rä   rä   rä   rå   r“  S  s   ýr“  c                   @   s‚   e Zd ZdZdZej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„ ƒe	e
ddƒdd„ ƒedƒg ZdS )ÚIE_VolumeThresholdzIE Volume ThresholdrS   ri  r   r,   ÚDLVOLr(   ÚULVOLÚTOVOLÚtotalc                 C   s
   | j dkS rð   ©r˜  rs  rä   rä   rå   ró   e  rô   zIE_VolumeThreshold.<lambda>Úuplinkc                 C   s
   | j dkS rð   ©r—  rs  rä   rä   rå   ró   f  rô   Údownlinkc                 C   s
   | j dkS rð   ©r–  rs  rä   rä   rå   ró   g  rô   rk  N©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dZdZejeddƒedƒg ZdS )ÚIE_TimeThresholdzIE Time ThresholdrT   Ú	thresholdr   rk  Nr�  rä   rä   rä   rå   r   l  s   þr   c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )ÚIE_MonitoringTimezIE Monitoring TimerU   Ú
time_valuer   rk  Nr�  rä   rä   rä   rå   r¢  u  s   þr¢  c                   @   s‚   e Zd ZdZdZej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„ ƒe	e
ddƒdd„ ƒedƒg ZdS )ÚIE_SubsequentVolumeThresholdzIE Subsequent Volume ThresholdrV   ri  r   r,   r–  r(   r—  r˜  r™  c                 C   s
   | j dkS rð   rš  rs  rä   rä   rå   ró   †  rô   z%IE_SubsequentVolumeThreshold.<lambda>r›  c                 C   s
   | j dkS rð   rœ  rs  rä   rä   rå   ró   ‡  rô   r�  c                 C   s
   | j dkS rð   rž  rs  rä   rä   rå   ró   ˆ  rô   rk  NrŸ  rä   rä   rä   rå   r¤  ~  s   



ør¤  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )ÚIE_SubsequentTimeThresholdzIE Subsequent Time ThresholdrW   r¡  r   rk  Nr�  rä   rä   rä   rå   r¥  �  s   þr¥  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )ÚIE_InactivityDetectionTimezIE Inactivity Detection TimerX   r£  r   rk  Nr�  rä   rä   rä   rå   r¦  –  s   þr¦  c                   @   sº   e Zd ZdZdZej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dƒedddƒe	dƒg ZdS )ÚIE_ReportingTriggerszIE Reporting TriggersrY   Zlinked_usage_reportingr   r(   Zdropped_dl_traffic_thresholdZstop_of_trafficZstart_of_trafficZquota_holding_timeZtime_thresholdZvolume_thresholdZperiodic_reportingri  r)   Úevent_quotaÚevent_thresholdZmac_addresses_reportingZenvelope_closureZ
time_quotaZvolume_quotark  N)
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dZejedddƒeddde	ƒe
dd	d
d�ed
ddd„ d�edƒg Zd	S )ÚIE_RedirectInformationzIE Redirect InformationrZ   ri  r   r+   ÚtyperÎ   Úaddress_lengthNÚaddressr�  r2  c                 C   s   | j S rÿ   )r¬  rñ   rä   rä   rå   ró   ½  rô   zIE_RedirectInformation.<lambda>r9  rk  )rç   rè   ré   r  r+  r*  r  r   r   ÚRedirectAddressTyper   r   r  rä   rä   rä   rå   rª  ¶  s   
ûrª  c                	   @   sV   e Zd ZdZdZejedddƒedddƒedddƒed	ddƒed
ddƒe	dƒg ZdS )ÚIE_ReportTypezIE Report Typer[   ri  r   r+   ZUPIRr(   ZERIRZUSARZDLDRrk  N©
rç   rè   ré   r  r+  r*  r  r   r   r  rä   rä   rä   rå   r¯  Â  s   




úr¯  c                   @   s(   e Zd ZdZdZejeddeƒg ZdS )ÚIE_OffendingIEzIE Offending IEr\   r«  N)	rç   rè   ré   r  r+  r*  r  r	   r4  rä   rä   rä   rå   r±  Ï  s
   
ÿr±  c                   @   s<   e Zd ZdZdZejeddddd�eddd	d
„ d�g ZdS )ÚIE_ForwardingPolicyzIE Forwarding Policyr]   Úpolicy_identifier_lengthNZpolicy_identifierrú   ©r‚  Úfmtr2  c                 C   s   | j S rÿ   )r³  rñ   rä   rä   rå   ró   Þ  rô   zIE_ForwardingPolicy.<lambda>r9  )	rç   rè   ré   r  r+  r*  r  r   r   rä   rä   rä   rå   r²  ×  s   ÿÿýr²  c                   @   s:   e Zd ZdZdZejedddƒeddde	ƒe
dƒg Zd	S )
ÚIE_DestinationInterfacezIE Destination Interfacer^   ri  r   r+   rj  rÍ   rk  N)rç   rè   ré   r  r+  r*  r  r   r   ÚDestinationInterfacer  rä   rä   rä   rå   r¶  â  s   
ýr¶  c                   @   sh  e Zd ZdZdZdZej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
d'ƒg ZdS )(ÚIE_UPFunctionFeatureszIE UP Function Featuresr_   r)   ZTREUNr(   c                 C   s
   | j dkS rù   r8  rs  rä   rä   rå   ró   ñ  rô   zIE_UPFunctionFeatures.<lambda>ZHEEUc                 C   s
   | j dkS rù   r8  rs  rä   rä   rå   ró   ò  rô   ZPFDMc                 C   s
   | j dkS rù   r8  rs  rä   rä   rå   ró   ó  rô   ZFTUPc                 C   s
   | j dkS rù   r8  rs  rä   rä   rå   ró   ô  rô   ZTRSTc                 C   s
   | j dkS rù   r8  rs  rä   rä   rå   ró   ö  rô   ZDLBDc                 C   s
   | j dkS rù   r8  rs  rä   rä   rå   ró   ÷  rô   ZDDNDc                 C   s
   | j dkS rù   r8  rs  rä   rä   rå   ró   ø  rô   ZBUCPc                 C   s
   | j dkS rù   r8  rs  rä   rä   rå   ró   ù  rô   ri  c                 C   s
   | j dkS rð   r8  rs  rä   rä   rå   ró   û  rô   ZPFDEc                 C   s
   | j dkS rð   r8  rs  rä   rä   rå   ró   ü  rô   ZFRRTc                 C   s
   | j dkS rð   r8  rs  rä   rä   rå   ró   ý  rô   ÚTRACEc                 C   s
   | j dkS rð   r8  rs  rä   rä   rå   ró   þ  rô   ZQUOACc                 C   s
   | j dkS rð   r8  rs  rä   rä   rå   ró      rô   ZUDBCc                 C   s
   | j dkS rð   r8  rs  rä   rä   rå   ró     rô   ZPDIUc                 C   s
   | j dkS rð   r8  rs  rä   rä   rå   ró     rô   ZEMPUc                 C   s
   | j dkS rð   r8  rs  rä   rä   rå   ró     rô   rk  )rç   rè   ré   r  r+  r,  r*  r  r   r   r  rä   rä   rä   rå   r¸  ì  s,   ër¸  c                
   @   s`   e Zd ZdZdZej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ƒg ZdS )ÚIE_ApplyActionzIE Apply Actionr`   ri  Nr*   ZDUPLr   r(   ZNOCPZBUFFZFORWZDROPrk  r°  rä   rä   rä   rå   rº  	  s   





ùrº  c                   @   s’   e Zd ZdZdZejed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
dƒg ZdS )Ú!IE_DownlinkDataServiceInformationz$IE Downlink Data Service Informationra   Úspare_1Nr-   ÚQFIIr   r(   ÚPPIÚspare_2r)   c                 C   s
   | j dkS rð   ©r¾  rs  rä   rä   rå   ró      rô   z*IE_DownlinkDataServiceInformation.<lambda>Zppi_valc                 C   s
   | j dkS rð   rÀ  rs  rä   rä   rå   ró   #  rô   Úspare_3c                 C   s
   | j dkS rð   ©r½  rs  rä   rä   rå   ró   &  rô   Zqfi_valc                 C   s
   | j dkS rð   rÂ  rs  rä   rä   rå   ró   )  rô   rk  )rç   rè   ré   r  r+  r*  r  r   r   r   r  rä   rä   rä   rå   r»    s0   



þ
þ
þ
þðr»  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )Ú IE_DownlinkDataNotificationDelayz#IE Downlink Data Notification Delayrb   Údelayr   rk  N©	rç   rè   ré   r  r+  r*  r  r
   r  rä   rä   rä   rå   rÃ  .  s   þrÃ  c                   @   s:   e Zd ZdZdZejedddeƒe	dddƒe
d	ƒg Zd
S )ÚIE_DLBufferingDurationzIE DL Buffering Durationrc   Ú
timer_unitrÑ   r*   Útimer_valuer   r,   rk  N©rç   rè   ré   r  r+  r*  r  r   Ú	TimerUnitr   r  rä   rä   rä   rå   rÆ  7  s   
ýrÆ  c                   @   s\   e Zd ZdZdZejeeddƒdd„ dd„ ffe	ddƒdd„ d	d„ ffgeddƒƒg Zd
S )Ú"IE_DLBufferingSuggestedPacketCountz&IE DL Buffering Suggested Packet Countrd   Úcountr   c                 C   s
   | j dkS rð   r8  rs  rä   rä   rå   ró   H  rô   z+IE_DLBufferingSuggestedPacketCount.<lambda>c                 C   s   | j dkp| j d u o|dk S ©Nr(   r"  r8  ©r  r  rä   rä   rå   ró   I  s   
c                 C   s
   | j dkS ©Nr)   r8  rs  rä   rä   rå   ró   N  rô   c                 C   s   | j dkp| j d u o|dkS rÍ  r8  rÎ  rä   rä   rå   ró   O  s   
N)
rç   rè   ré   r  r+  r*  r  r   r
   r   rä   rä   rä   rå   rË  A  s$   ÿþÿþùóÿrË  c                   @   sL   e Zd ZdZdZejedddƒedddƒed	ddƒed
ddƒe	dƒg ZdS )ÚIE_PFCPSMReqFlagszIE PFCPSMReq-Flagsre   ri  Nr,   ZQUARRr   r(   ZSNDEMÚDROBUrk  r°  rä   rä   rä   rå   rÐ  V  s   



ûrÐ  c                   @   s8   e Zd ZdZdZejedddƒedddƒe	d	ƒg ZdS )
ÚIE_PFCPSRRspFlagszIE PFCPSRRsp-Flagsr7   ri  Nr.   rÑ  r   r(   rk  r°  rä   rä   rä   rå   rÒ  b  s   

ýrÒ  c                   @   s&   e Zd ZdZdZejeddƒg ZdS )ÚIE_SequenceNumberzIE Sequence Numberr9   Únumberr   N©rç   rè   ré   r  r+  r*  r  r   rä   rä   rä   rå   rÓ  l  s
   ÿrÓ  c                   @   s&   e Zd ZdZdZejeddƒg ZdS )Ú	IE_Metricz	IE Metricr:   Zmetricr   N)rç   rè   ré   r  r+  r*  r  r
   rä   rä   rä   rå   rÖ  t  s
   ÿrÖ  c                   @   s:   e Zd ZdZdZejedddeƒe	dddƒe
d	ƒg Zd
S )ÚIE_TimerzIE Timerr<   rÇ  rÑ   r*   rÈ  r   r,   rk  NrÉ  rä   rä   rä   rå   r×  |  s   
ýr×  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )Ú	IE_PDR_Idz	IE PDR IDr=   r†  r   rk  N©	rç   rè   ré   r  r+  r*  r  r   r  rä   rä   rä   rå   rØ  †  s   þrØ  c                
   @   sn   e Zd ZdZdZejedddƒedddƒedddƒe	d	dƒe
ed
dƒdd„ ƒe
eddƒdd„ ƒedƒg ZdS )ÚIE_FSEIDz	IE F-SEIDr>   ri  r   r-   Úv4r(   Úv6rï   rt  c                 C   s
   | j dkS rð   )rÛ  rs  rä   rä   rå   ró   ˜  rô   zIE_FSEID.<lambda>rv  c                 C   s
   | j dkS rð   )rÜ  rs  rä   rä   rå   ró   š  rô   rk  N)rç   rè   ré   r  r+  r*  r  r   r   r   r   r   r    r  rä   rä   rä   rå   rÚ  �  s   



ÿ
ÿ÷rÚ  c                   @   sx   e Zd ZdZdZejedddƒeddde	ƒe
eddƒd	d
„ ƒe
eddƒdd
„ ƒe
edddd
„ d�dd
„ ƒedƒg ZdS )Ú	IE_NodeIdz
IE Node IDrh   ri  r   r+   Úid_typerÒ   rt  c                 C   s
   | j dkS rù   ©rÞ  rs  rä   rä   rå   ró   ¦  rô   zIE_NodeId.<lambda>rv  c                 C   s
   | j dkS rð   rß  rs  rä   rä   rå   ró   ¨  rô   r†  r2  c                 C   s
   | j d S rð   r8  rs  rä   rä   rå   ró   ª  rô   r9  c                 C   s
   | j dkS rÏ  rß  rs  rä   rä   rå   ró   «  rô   rk  N)rç   rè   ré   r  r+  r*  r  r   r   Ú
NodeIdTyper   r   r    r  r  rä   rä   rä   rå   rÝ  Ÿ  s"   

ÿ
ÿþörÝ  c                   @   sü  e Zd ZdZdZej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	e
dddd�dd„ ƒe	edddd„ d�dd„ ƒe	e
dddd�dd„ ƒe	edddd„ d�dd„ ƒe	e
dddd�dd„ ƒe	eddd d„ d�d!d„ ƒe	e
d"dd#d�d$d„ ƒe	ed#dd%d„ d�d&d„ ƒe	e
d'dd(d�d)d„ ƒe	ed(dd*d„ d�d+d„ ƒe	e
d,dd-d�d.d„ ƒe	ed-dd/d„ d�d0d„ ƒe	e
d1dd2d�d3d„ ƒe	ed2dd4d„ d�d5d„ ƒe	e
d6dd7d�d8d„ ƒe	ed7dd9d„ d�d:d„ ƒed;ƒg ZdS )<ÚIE_PFDContentszIE PFD contentsri   ÚADNPr   r(   ÚAURLÚAFDÚDNPÚCPÚDNrÏ   r  r¿  Úflow_lengthNÚflowr�  c                 C   s
   | j dkS rð   rƒ  rñ   rä   rä   rå   ró   ¾  rô   zIE_PFDContents.<lambda>r2  c                 C   s   | j S rÿ   ©rè  rñ   rä   rä   rå   ró   À  rô   r9  c                 C   s
   | j dkS rð   rƒ  rñ   rä   rä   rå   ró   Á  rô   Ú
url_lengthÚurlc                 C   s
   | j dkS rð   ©rÏ   rñ   rä   rä   rå   ró   Ã  rô   c                 C   s   | j S rÿ   )rë  rñ   rä   rä   rå   ró   Å  rô   c                 C   s
   | j dkS rð   rí  rñ   rä   rä   rå   ró   Æ  rô   Údomain_lengthÚdomainc                 C   s
   | j dkS rð   ©rç  rñ   rä   rä   rå   ró   É  rô   c                 C   s   | j S rÿ   )rî  rñ   rä   rä   rå   ró   Ì  rô   c                 C   s
   | j dkS rð   rð  rñ   rä   rä   rå   ró   Í  rô   Úcustom_lengthZcustomc                 C   s
   | j dkS rð   ©ræ  rñ   rä   rä   rå   ró   Ð  rô   c                 C   s   | j S rÿ   )rñ  rñ   rä   rä   rå   ró   Ó  rô   c                 C   s
   | j dkS rð   rò  rñ   rä   rä   rå   ró   Ô  rô   Ú
dnp_lengthZdnpc                 C   s
   | j dkS rð   ©rå  rñ   rä   rä   rå   ró   Ö  rô   c                 C   s   | j S rÿ   )ró  rñ   rä   rä   rå   ró   Ø  rô   c                 C   s
   | j dkS rð   rô  rñ   rä   rä   rå   ró   Ù  rô   Úadditional_flow_lengthZadditional_flowc                 C   s
   | j dkS rð   ©rä  rñ   rä   rä   rå   ró   Ü  rô   c                 C   s   | j S rÿ   )rõ  rñ   rä   rä   rå   ró   ß  rô   c                 C   s
   | j dkS rð   rö  rñ   rä   rä   rå   ró   à  rô   Úadditional_url_lengthZadditional_urlc                 C   s
   | j dkS rð   ©rã  rñ   rä   rä   rå   ró   ã  rô   c                 C   s   | j S rÿ   )r÷  rñ   rä   rä   rå   ró   æ  rô   c                 C   s
   | j dkS rð   rø  rñ   rä   rä   rå   ró   ç  rô   Úadditional_dn_dnp_lengthZadditional_dn_dnpc                 C   s
   | j dkS rð   ©râ  rñ   rä   rä   rå   ró   ë  rô   c                 C   s   | j S rÿ   )rù  rñ   rä   rä   rå   ró   î  rô   c                 C   s
   | j dkS rð   rú  rñ   rä   rä   rå   ró   ï  rô   rk  )rç   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dZejedddƒedddƒedddƒed	ddƒe	d
ƒg ZdS )ÚIE_MeasurementMethodzIE Measurement Methodrj   ri  r   r,   ZEVENTr(   ZVOLUMZDURATrk  Nr°  rä   rä   rä   rå   rû  ô  s   



ûrû  c                   @   sÄ   e Zd ZdZdZej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dƒedddƒedddƒedƒg ZdS )ÚIE_UsageReportTriggerzIE Usage Report Triggerrk   ZIMMERr   r(   ZDROTHZSTOPTÚSTARTZQUHTIZTIMTHZVOLTHZPERIOZEVETHZMACARZENVCLZMONITZTERMRZLIUSAZTIMQUZVOLQUrk  N©	rç   rè   ré   r  r+  r*  r  r   r  rä   rä   rä   rå   rü     s*   















ïrü  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )ÚIE_MeasurementPeriodzIE Measurement Periodrl   Zperiodr   rk  Nr�  rä   rä   rä   rå   rÿ    s   þrÿ  c                   @   s¢   e Zd ZdZdZejedddeƒe	ddddd	�e
ed
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eddƒdd„ d�edƒg ZdS )Ú	IE_FqCSIDz
IE FQ-CSIDrm   Únode_id_typerÒ   r+   Ú	num_csidsNZcsids)Úcount_ofrt  r   c                 C   s
   | j dkS rù   ©r  rs  rä   rä   rå   ró   (  rô   zIE_FqCSID.<lambda>rv  c                 C   s
   | j dkS rð   r  rs  rä   rä   rå   ró   *  rô   Zmcc_mncrH   c                 C   s
   | j dkS rÏ  r  rs  rä   rä   rå   ró   .  rô   Zextra_idr3   c                 C   s
   | j dkS rÏ  r  rs  rä   rä   rå   ró   3  rô   Úcsidc                 C   s   | j S rÿ   )r  rs  rä   rä   rå   ró   5  rô   ©Z
count_fromrk  )rç   rè   ré   r  r+  r*  r  r   ÚFqCSIDNodeIdTyper   r   r   r    r   r   r   r  rä   rä   rä   rå   r   !  s0   
ÿ
ÿ
ý
þÿîr   c                   @   s‚   e Zd ZdZdZej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„ ƒe	e
ddƒdd„ ƒedƒg ZdS )ÚIE_VolumeMeasurementzIE Volume Measurementrn   ri  r   r,   r–  r(   r—  r˜  r™  c                 C   s
   | j dkS rð   rš  rs  rä   rä   rå   ró   B  rô   zIE_VolumeMeasurement.<lambda>r›  c                 C   s
   | j dkS rð   rœ  rs  rä   rä   rå   ró   C  rô   r�  c                 C   s
   | j dkS rð   rž  rs  rä   rä   rå   ró   D  rô   rk  NrŸ  rä   rä   rä   rå   r  :  s   



ør  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )ÚIE_DurationMeasurementzIE Duration Measurementro   Údurationr   rk  Nr�  rä   rä   rä   rå   r	  I  s   þr	  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )ÚIE_TimeOfFirstPacketzIE Time of First Packetrq   Ú	timestampr   rk  Nr�  rä   rä   rä   rå   r  R  s   þr  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )ÚIE_TimeOfLastPacketzIE Time of Last Packetrr   r  r   rk  Nr�  rä   rä   rä   rå   r  [  s   þr  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )ÚIE_QuotaHoldingTimezIE Quota Holding Timers   r£  r   rk  Nr�  rä   rä   rä   rå   r  d  s   þr  c                	   @   sf   e Zd ZdZdZejedddƒedddƒedddƒe	e
d	dƒd
d„ ƒe	e
ddƒdd„ ƒedƒg ZdS )ÚIE_DroppedDLTrafficThresholdzIE Dropped DL Traffic Thresholdrt   ri  r   r-   ÚDLBYr(   ÚDLPAZpacket_countc                 C   s
   | j dkS rð   )r  rs  rä   rä   rå   ró   u  rô   z%IE_DroppedDLTrafficThreshold.<lambda>Z
byte_countc                 C   s
   | j dkS rð   )r  rs  rä   rä   rå   ró   w  rô   rk  N)rç   rè   ré   r  r+  r*  r  r   r   r   r   r  rä   rä   rä   rå   r  m  s   



ÿ
ÿør  c                   @   s‚   e Zd ZdZdZej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„ ƒe	e
ddƒdd„ ƒedƒg ZdS )ÚIE_VolumeQuotazIE Volume Quotaru   ri  r   r,   r–  r(   r—  r˜  r™  c                 C   s
   | j dkS rð   rš  rs  rä   rä   rå   ró   „  rô   zIE_VolumeQuota.<lambda>r›  c                 C   s
   | j dkS rð   rœ  rs  rä   rä   rå   ró   …  rô   r�  c                 C   s
   | j dkS rð   rž  rs  rä   rä   rå   ró   †  rô   rk  NrŸ  rä   rä   rä   rå   r  |  s   



ør  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )ÚIE_TimeQuotazIE Time Quotarv   Úquotar   rk  Nr�  rä   rä   rä   rå   r  ‹  s   þr  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )ÚIE_StartTimezIE Start Timerw   r  r   rk  Nr�  rä   rä   rä   rå   r  ”  s   þr  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )Ú
IE_EndTimezIE End Timerx   r  r   rk  Nr�  rä   rä   rä   rå   r  �  s   þr  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )Ú	IE_URR_Idz	IE URR IDr}   r†  r   rk  Nr�  rä   rä   rä   rå   r  ¦  s   þr  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )ÚIE_LinkedURR_IdzIE Linked URR IDr~   r†  r   rk  Nr�  rä   rä   rä   rå   r  ¯  s   þr  c                   @   sè   e Zd ZdZdZej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	e
ddƒ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„ ƒe	eddƒdd„ ƒedƒg ZdS )ÚIE_OuterHeaderCreationzIE Outer Header Creationr€   ÚSTAGr   r(   ÚCTAGÚIPV6ÚIPV4ÚUDPIPV6ÚUDPIPV4ÚGTPUUDPIPV6ÚGTPUUDPIPV4ri  rr  c                 C   s   | j dkp| jdkS rð   )r!  r   rs  rä   rä   rå   ró   Æ  rô   zIE_OuterHeaderCreation.<lambda>rt  c                 C   s   | j dkp| jdkp| jdkS rð   )r  r  r!  rs  rä   rä   rå   ró   È  s    rv  c                 C   s   | j dkp| jdkp| jdkS rð   )r  r  r   rs  rä   rä   rå   ró   Ë  s    Úportc                 C   s   | j dkp| jdkS rð   )r  r  rs  rä   rä   rå   ró   Î  rô   Zctagc                 C   s
   | j dkS rð   )r  rs  rä   rä   rå   ró   Ð  rô   Zstagc                 C   s
   | j dkS rð   )r  rs  rä   rä   rå   ró   Ò  rô   rk  N)rç   rè   ré   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dZdZejeddƒedƒg ZdS )Ú	IE_BAR_Idz	IE BAR IDr„   r†  r   rk  NrÅ  rä   rä   rä   rå   r#  ×  s   þr#  c                   @   sB   e Zd ZdZdZejedddƒedddƒedddƒe	d	ƒg Zd
S )ÚIE_CPFunctionFeatureszIE CP Function Featuresr…   ri  r   r-   ZOVRLr(   ZLOADrk  Nr°  rä   rä   rä   rå   r$  à  s   


ür$  c                	   @   sV   e Zd ZdZdZejedddƒedddƒedddƒed	ddƒed
ddƒe	dƒg ZdS )ÚIE_UsageInformationzIE Usage Informationr†   ri  r   r+   ZUBEr(   ZUAEZAFTZBEFrk  Nr°  rä   rä   rä   rå   r%  ë  s   




úr%  c                   @   s.   e Zd ZdZdZejedddd„ d�g ZdS )	ÚIE_ApplicationInstanceIdzIE Application Instance IDr‡   r†  r2  c                 C   s   | j S rÿ   r8  rs  rä   rä   rå   ró   ü  rô   z!IE_ApplicationInstanceId.<lambda>r9  Nr‡  rä   rä   rä   rå   r&  ø  s
   ÿr&  c                	   @   sV   e Zd ZdZdZejedddƒeddde	ƒe
d	d
dd�edddd„ d�edƒg Zd
S )ÚIE_FlowInformationzIE Flow Informationrˆ   ri  r   r,   Ú	directionrÓ   r*   rè  Nré  r�  r2  c                 C   s   | j S rÿ   rê  rs  rä   rä   rå   ró     rô   zIE_FlowInformation.<lambda>r9  rk  )rç   rè   ré   r  r+  r*  r  r   r   ÚFlowDirectionr   r   r  rä   rä   rä   rå   r'     s   
ûr'  c                
   @   sp   e Zd ZdZdZej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„ ƒedƒg ZdS )ÚIE_UE_IP_AddresszIE UE IP Addressr‰   ri  r   r,   ÚSDr(   rq  rp  rt  c                 C   s
   | j dkS rð   ©rq  rs  rä   rä   rå   ró     rô   zIE_UE_IP_Address.<lambda>rv  c                 C   s
   | j dkS rð   ©rp  rs  rä   rä   rå   ró     rô   rk  N)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dZdZejedddƒedddƒedddƒe	ed	dd
ƒdd„ ƒe	e
dddeƒdd„ ƒe	eddƒdd„ ƒe	eddd
ƒdd„ ƒe	e
dddeƒdd„ ƒe	eddƒdd„ ƒedƒg
 ZdS )ÚIE_PacketRatezIE Packet RaterŠ   r¼  r   r-   ÚDLPRr(   ÚULPRr¿  r,   c                 C   s
   | j dkS rð   ©r0  rs  rä   rä   rå   ró   !  rô   zIE_PacketRate.<lambda>Zul_time_unitrÔ   r*   c                 C   s
   | j dkS rð   r1  rs  rä   rä   rå   ró   #  rô   Zul_max_packet_ratec                 C   s
   | j dkS rð   r1  rs  rä   rä   rå   ró   %  rô   rÁ  c                 C   s
   | j dkS rð   ©r/  rs  rä   rä   rå   ró   &  rô   Zdl_time_unitc                 C   s
   | j dkS rð   r2  rs  rä   rä   rå   ró   (  rô   Zdl_max_packet_ratec                 C   s
   | j dkS rð   r2  rs  rä   rä   rå   ró   *  rô   rk  N)rç   rè   ré   r  r+  r*  r  r   r   r   r   ÚTimeUnitr   r  rä   rä   rä   rå   r.    s,   


ÿ
ÿÿ
ÿòr.  c                   @   sV   e Zd ZdZdZejeddeƒe	e
dddƒdd„ ƒe	ed	dd
ƒdd„ ƒedƒg ZdS )ÚIE_OuterHeaderRemovalzIE Outer Header Removalr‹   ÚheaderNri  r.   c                 C   s   | j d uo| j dkS rð   r8  rs  rä   rä   rå   ró   5  rô   zIE_OuterHeaderRemoval.<lambda>Zpdu_session_containerr(   c                 C   s   | j d uo| j dkS rð   r8  rs  rä   rä   rå   ró   7  rô   rk  )rç   rè   ré   r  r+  r*  r  r   ÚOuterHeaderRemovalDescriptionr   r   r   r  rä   rä   rä   rå   r4  /  s   
ÿÿúr4  c                   @   s0   e Zd ZdZdZdZejeddƒe	dƒg ZdS )ÚIE_RecoveryTimeStampzIE Recovery Time StamprŒ   r+   r  r   rk  N)
rç   rè   ré   r  r+  r,  r*  r  r   r  rä   rä   rä   rå   r7  <  s   þr7  c                   @   sŠ   e Zd ZdZdZejedddƒedddƒed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„ ƒedƒg ZdS )ÚIE_DLFlowLevelMarkingzIE DL Flow Level Markingr�   r¼  r   r-   ÚSCIr(   r~  r”  c                 C   s   | j S rÿ   r„  rs  rä   rä   rå   ró   M  rô   zIE_DLFlowLevelMarking.<lambda>Ztraffic_class_maskc                 C   s   | j S rÿ   r„  rs  rä   rä   rå   ró   N  rô   Zservice_class_indicatorc                 C   s   | j S rÿ   ©r9  rs  rä   rä   rå   ró   P  rô   r¿  c                 C   s   | j S rÿ   r:  rs  rä   rä   rå   ró   Q  rô   rk  N©rç   rè   ré   r  r+  r*  r  r   r   r   r
   r  rä   rä   rä   rå   r8  F  s   



ÿ÷r8  c                   @   sv   e Zd ZdZdZejedddƒeddde	ƒe
d	d
ddd�edddd„ d�e
dd
ddd�edddd„ d�edƒg Zd
S )ÚIE_HeaderEnrichmentzIE Header EnrichmentrŽ   ri  r   r*   Zheader_typerØ   r,   Úname_lengthNrú   r  )rµ  r‚  r2  c                 C   s   | j S rÿ   )r=  rs  rä   rä   rå   ró   ]  rô   zIE_HeaderEnrichment.<lambda>r9  Úvalue_lengthÚvaluec                 C   s   | j S rÿ   )r>  rs  rä   rä   rå   ró   _  rô   rk  )rç   rè   ré   r  r+  r*  r  r   r   Ú
HeaderTyper   r   r  rä   rä   rä   rå   r<  V  s   
ùr<  c                
   @   s`   e Zd ZdZdZej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ƒg ZdS )ÚIE_MeasurementInformationzIE Measurement Informationr�   ri  r   r*   ZMNOPr(   ZISTMZRADIZINAMZMBQErk  Nr°  rä   rä   rä   rå   rA  d  s   





ùrA  c                   @   s8   e Zd ZdZdZejedddƒedddƒe	dƒg Zd	S )
ÚIE_NodeReportTypezIE Node Report Typer‘   ri  r   r.   ZUPFRr(   rk  Nr°  rä   rä   rä   rå   rB  r  s   

ýrB  c                   @   sæ   e Zd ZdZdZejed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„ ƒe	eddƒdd„ ƒe	edddƒdd„ ƒe	edddeƒdd„ ƒe	edddd�dd„ ƒe	edddd„ d�dd„ ƒedƒg Zd S )!ÚIE_RemoteGTP_U_PeerzIE Remote GTP-U Peerr“   r¼  r   r+   ÚNIr(   ÚDIrq  rp  rt  c                 C   s
   | j dkS rð   r,  rs  rä   rä   rå   ró   …  rô   zIE_RemoteGTP_U_Peer.<lambda>rv  c                 C   s
   | j dkS rð   r-  rs  rä   rä   rå   ró   †  rô   Zdest_interface_lengthc                 C   s
   | j dkS rð   ©rE  rs  rä   rä   rå   ró   ˆ  rô   r¿  c                 C   s
   | j dkS rð   rF  rs  rä   rä   rå   ró   ‰  rô   Zdest_interfacerÍ   c                 C   s
   | j dkS rð   rF  rs  rä   rä   rå   ró   Œ  rô   Únetwork_instance_lengthÚnetwork_instancer�  c                 C   s
   | j dkS rð   ©rD  rs  rä   rä   rå   ró   �  rô   r2  c                 C   s   | j S rÿ   )rG  rs  rä   rä   rå   ró   “  rô   r9  c                 C   s
   | j dkS rð   rI  rs  rä   rä   rå   ró   ”  rô   rk  N)rç   rè   ré   r  r+  r*  r  r   r   r   r   r    r
   r   r·  r   r  r  rä   rä   rä   rå   rC  |  s@   





ÿþÿýÿýêrC  c                   @   s&   e Zd ZdZdZejeddƒg ZdS )Ú
IE_UR_SEQNz
IE UR-SEQNr”   rÔ  r   NrÕ  rä   rä   rä   rå   rJ  ™  s
   ÿrJ  c                   @   s.   e Zd ZdZdZejedddd„ d�g ZdS )	ÚIE_ActivatePredefinedRuleszIE Activate Predefined Rulesr–   r  r2  c                 C   s   | j S rÿ   r8  rs  rä   rä   rå   ró   ¥  rô   z#IE_ActivatePredefinedRules.<lambda>r9  Nr‡  rä   rä   rä   rå   rK  ¡  s
   ÿrK  c                   @   s.   e Zd ZdZdZejedddd„ d�g ZdS )	ÚIE_DeactivatePredefinedRuleszIE Deactivate Predefined Rulesr—   r  r2  c                 C   s   | j S rÿ   r8  rs  rä   rä   rå   ró   ­  rô   z%IE_DeactivatePredefinedRules.<lambda>r9  Nr‡  rä   rä   rä   rå   rL  ©  s
   ÿrL  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )Ú	IE_FAR_Idz	IE FAR IDr˜   r†  r   rk  Nr�  rä   rä   rä   rå   rM  ±  s   þrM  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )Ú	IE_QER_Idz	IE QER IDr™   r†  r   rk  Nr�  rä   rä   rä   rå   rN  º  s   þrN  c                   @   s8   e Zd ZdZdZejedddƒedddƒe	d	ƒg ZdS )
ÚIE_OCIFlagszIE OCI Flagsrš   ri  Nr.   ZAOCIr   r(   rk  r°  rä   rä   rä   rå   rO  Ã  s   

ýrO  c                   @   s8   e Zd ZdZdZejedddƒedddƒe	d	ƒg ZdS )
Ú IE_PFCPAssociationReleaseRequestz#IE PFCP Association Release Requestr›   ri  Nr.   ZSARRr   r(   rk  r°  rä   rä   rä   rå   rP  Í  s   

ýrP  c                   @   s:   e Zd ZdZdZejedddeƒe	dddƒe
d	ƒg Zd
S )ÚIE_GracefulReleasePeriodzIE Graceful Release Periodrœ   Zrelease_timer_unitrÑ   r*   Zrelease_timer_valuer   r,   rk  NrÉ  rä   rä   rä   rå   rQ  ×  s   
ýrQ  c                   @   s:   e Zd ZdZdZejedddƒeddde	ƒe
d	ƒg Zd
S )Ú
IE_PDNTypezIE PDN Typer�   ri  r   r,   Zpdn_typerÒ   r*   rk  N)rç   rè   ré   r  r+  r*  r  r   r   ÚPDNTyper  rä   rä   rä   rå   rR  á  s   
ýrR  c                   @   s”   e Zd ZdZdZejedddƒeddde	ƒe
ed	dƒ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„ ƒedƒg ZdS )ÚIE_FailedRuleIdzIE Failed Rule IDrž   ri  r   r*   r«  rÙ   r,   Zpdr_idc                 C   s
   | j dkS rù   ©r«  rs  rä   rä   rå   ró   ò  rô   zIE_FailedRuleId.<lambda>Zfar_idc                 C   s   | j dkp| j dkS )Nr(   r+   rU  rs  rä   rä   rå   ró   ô  rô   Zqer_idc                 C   s
   | j dkS rÏ  rU  rs  rä   rä   rå   ró   õ  rô   Zurr_idc                 C   s
   | j dkS )Nr*   rU  rs  rä   rä   rå   ró   ö  rô   Zbar_idc                 C   s
   | j dkS r  rU  rs  rä   rä   rå   ró   ø  rô   rk  N)rç   rè   ré   r  r+  r*  r  r   r   Ú
RuleIDTyper   r   r   r
   r  rä   rä   rä   rå   rT  ë  s$   

ÿ
ÿ
ÿõrT  c                   @   sB   e Zd ZdZdZejedddƒeddde	ƒe
d	dƒed
ƒg ZdS )ÚIE_TimeQuotaMechanismzIE Time Quota MechanismrŸ   ri  r   r-   Zbase_time_interval_typerÚ   r)   Úintervalrk  N)rç   rè   ré   r  r+  r*  r  r   r   ÚBaseTimeIntervalr   r  rä   rä   rä   rå   rW  ý  s   
ürW  c                   @   sÚ   e Zd ZdZdZej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ƒdd„ ƒe	eddƒdd„ ƒe	eddƒdd„ ƒe	edddd„ d�dd„ ƒe	edddƒdd„ ƒe	edddeƒdd„ ƒedƒg ZdS ) Ú!IE_UserPlaneIPResourceInformationz%IE User Plane IP Resource Informationr    Zspare1r   r(   ÚASSOSIÚASSONIÚTEIDRIr*   rp  rq  Z
teid_rangec                 C   s
   | j dkS rù   )r]  rs  rä   rä   rå   ró     rô   z*IE_UserPlaneIPResourceInformation.<lambda>rt  c                 C   s
   | j dkS rð   r,  rs  rä   rä   rå   ró     rô   rv  c                 C   s
   | j dkS rð   r-  rs  rä   rä   rå   ró     rô   rH  r2  c                 C   s6   | j d | jdkrdnd | jd  | jd  | j S )Nr(   r   r+   rD   )rÝ   r]  rq  rp  r[  rs  rä   rä   rå   ró     s    ÿÿÿr9  c                 C   s
   | j dkS rð   )r\  rs  rä   rä   rå   ró     rô   Zspare2Nr+   c                 C   s
   | j dkS rð   ©r[  rs  rä   rä   rå   ró     rô   rj  rÍ   c                 C   s
   | j dkS rð   r^  rs  rä   rä   rå   ró   !  rô   rk  )rç   rè   ré   r  r+  r*  r  r   r   r   r   r   r    r  r   rl  r  rä   rä   rä   rå   rZ    s<   






ÿÿû
þþérZ  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )ÚIE_UserPlaneInactivityTimerzIE User Plane Inactivity Timerr¡   Útimerr   rk  Nr�  rä   rä   rä   rå   r_  &  s   þr_  c                   @   s.   e Zd ZdZdZejeddƒeddƒg ZdS )ÚIE_MultiplierzIE Multiplierr£   Údigitsr   ÚexponentN)	rç   rè   ré   r  r+  r*  r  r   r   rä   rä   rä   rå   ra  /  s   þra  c                   @   s&   e Zd ZdZdZejeddƒg ZdS )ÚIE_AggregatedURR_IdzIE Aggregated URR IDr¤   r†  r   NrÕ  rä   rä   rä   rå   rd  8  s
   ÿrd  c                   @   s‚   e Zd ZdZdZej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„ ƒe	e
ddƒdd„ ƒedƒg ZdS )ÚIE_SubsequentVolumeQuotazIE Subsequent Volume Quotar¥   ri  r   r,   r–  r(   r—  r˜  r™  c                 C   s
   | j dkS rð   rš  rs  rä   rä   rå   ró   H  rô   z!IE_SubsequentVolumeQuota.<lambda>r›  c                 C   s
   | j dkS rð   rœ  rs  rä   rä   rå   ró   I  rô   r�  c                 C   s
   | j dkS rð   rž  rs  rä   rä   rå   ró   J  rô   rk  NrŸ  rä   rä   rä   rå   re  @  s   



øre  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )ÚIE_SubsequentTimeQuotazIE Subsequent Time Quotar¦   r  r   rk  Nr�  rä   rä   rä   rå   rf  O  s   þrf  c                   @   s8   e Zd ZdZdZejedddƒedddƒe	d	ƒg ZdS )
ÚIE_RQIzIE RQIr§   ri  Nr.   rB   r   r(   rk  r°  rä   rä   rä   rå   rg  X  s   

ýrg  c                   @   s8   e Zd ZdZdZejedddƒedddƒe	d	ƒg ZdS )
ÚIE_QFIzIE QFIr¨   ri  Nr)   rC   r   r-   rk  r°  rä   rä   rä   rå   rh  b  s   

ýrh  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )ÚIE_QueryURRReferencezIE Query URR Referencer©   Ú	referencer   rk  Nr�  rä   rä   rä   rå   ri  l  s   þri  c                   @   s8   e Zd ZdZdZejedddƒedddƒedƒg Zd	S )
Ú$IE_AdditionalUsageReportsInformationz'IE Additional Usage Reports Informationrª   ZAURIr   r(   Zreportsr6   rk  Nrþ  rä   rä   rä   rå   rk  u  s   

ýrk  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )ÚIE_TrafficEndpointIdzIE Traffic Endpoint IDr¯   r†  r   rk  NrÅ  rä   rä   rä   rå   rl    s   þrl  c                   @   sž   e Zd ZdZdZejed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„ ƒe	e
ddƒdd„ ƒe	e
ddƒdd„ ƒedƒg
 ZdS )ÚIE_MACAddresszIE MAC Addressr±   ri  r   r+   ÚUDESr(   ÚUSOUÚDESTÚSOURZ
source_macc                 C   s
   | j dkS rð   )rq  rs  rä   rä   rå   ró   ’  rô   zIE_MACAddress.<lambda>Zdestination_macc                 C   s
   | j dkS rð   )rp  rs  rä   rä   rå   ró   ”  rô   Zupper_source_macc                 C   s
   | j dkS rð   )ro  rs  rä   rä   rå   ró   –  rô   Zupper_destination_macc                 C   s
   | j dkS rð   )rn  rs  rä   rä   rå   ró   ˜  rô   rk  N)rç   rè   ré   r  r+  r*  r  r   r   r   r   r  rä   rä   rä   rå   rm  ˆ  s,   





ÿ
ÿ
ÿ
ÿòrm  c                   @   sè   e Zd ZdZdZejedddƒed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„ ƒe	e
ddƒdd„ ƒedƒg ZdS )ÚIE_C_TAGzIE C-TAGr²   r¼  r   r,   ÚVIDr(   ÚDEIÚPCPZcvid_value_hir+   c                 C   s
   | j dkS rð   ©rs  rs  rä   rä   rå   ró   §  rô   zIE_C_TAG.<lambda>r¿  c                 C   s
   | j dkS rù   rv  rs  rä   rä   rå   ró   ¨  rô   Údei_flagc                 C   s
   | j dkS rð   ©rt  rs  rä   rä   rå   ró   ©  rô   rÁ  c                 C   s
   | j dkS rù   rx  rs  rä   rä   rå   ró   ª  rô   Ú	pcp_valuer*   c                 C   s
   | j dkS rð   ©ru  rs  rä   rä   rå   ró   «  rô   Úspare_4c                 C   s
   | j dkS rù   rz  rs  rä   rä   rå   ró   ¬  rô   Zcvid_value_lowc                 C   s
   | j dkS rð   rv  rs  rä   rä   rå   ró   ®  rô   Úspare_5c                 C   s
   | j dkS rù   rv  rs  rä   rä   rå   ró   ¯  rô   rk  Nr;  rä   rä   rä   rå   rr  �  s*   



ÿ
ÿðrr  c                   @   sè   e Zd ZdZdZejedddƒed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„ ƒe	e
ddƒdd„ ƒedƒg ZdS )ÚIE_S_TAGzIE S-TAGr³   r¼  r   r,   rs  r(   rt  ru  Zsvid_value_hir+   c                 C   s
   | j dkS rð   rv  rs  rä   rä   rå   ró   ¾  rô   zIE_S_TAG.<lambda>r¿  c                 C   s
   | j dkS rù   rv  rs  rä   rä   rå   ró   ¿  rô   rw  c                 C   s
   | j dkS rð   rx  rs  rä   rä   rå   ró   À  rô   rÁ  c                 C   s
   | j dkS rù   rx  rs  rä   rä   rå   ró   Á  rô   ry  r*   c                 C   s
   | j dkS rð   rz  rs  rä   rä   rå   ró   Â  rô   r{  c                 C   s
   | j dkS rù   rz  rs  rä   rä   rå   ró   Ã  rô   Zsvid_value_lowc                 C   s
   | j dkS rð   rv  rs  rä   rä   rå   ró   Å  rô   r|  c                 C   s
   | j dkS rù   rv  rs  rä   rä   rå   ró   Æ  rô   rk  Nr;  rä   rä   rä   rå   r}  ´  s*   



ÿ
ÿðr}  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )ÚIE_EthertypezIE Ethertyper´   r«  r   rk  NrÙ  rä   rä   rä   rå   r~  Ë  s   þr~  c                   @   sB   e Zd ZdZdZejedddƒedddƒedddƒe	d	ƒg Zd
S )ÚIE_ProxyingzIE Proxyingrµ   ri  r   r-   ZINSr(   ZARPrk  Nr°  rä   rä   rä   rå   r  Ô  s   


ür  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )ÚIE_EthernetFilterIdzIE Ethernet Filter IDr¶   r†  r   rk  Nr�  rä   rä   rä   rå   r€  ß  s   þr€  c                   @   s8   e Zd ZdZdZejedddƒedddƒe	dƒg Zd	S )
ÚIE_EthernetFilterPropertieszIE Ethernet Filter Propertiesr·   ri  r   r.   ZBIDEr(   rk  Nr°  rä   rä   rä   rå   r�  è  s   

ýr�  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )Ú!IE_SuggestedBufferingPacketsCountz$IE Suggested Buffering Packets Countr¸   rÌ  r   rk  NrÅ  rä   rä   rä   rå   r‚  ò  s   þr‚  c                   @   s  e Zd ZdZdZejedddƒedddƒedddƒed	ddƒed
ddƒe	e
ddddd�dd„ ƒe	edddd„ d�dd„ ƒe	e
ddddd�dd„ ƒe	edddd„ d�dd„ ƒe	e
ddddd�dd„ ƒe	edddd„ d�dd„ ƒe	e
d dd!dd�d"d„ ƒe	ed!dd#d„ d�d$d„ ƒed%ƒg ZdS )&Ú	IE_UserIdz
IE User IDr¹   ri  r   r+   ÚNAIFr(   ÚMSISDNFÚIMEIFÚIMSIFÚimsi_lengthNZimsirú   r´  c                 C   s
   | j dkS rð   ©r‡  rs  rä   rä   rå   ró     rô   zIE_UserId.<lambda>r2  c                 C   s   | j S rÿ   )rˆ  rs  rä   rä   rå   ró     rô   r9  c                 C   s
   | j dkS rð   r‰  rs  rä   rä   rå   ró   	  rô   Úimei_lengthZimeic                 C   s
   | j dkS rð   ©r†  rs  rä   rä   rå   ró     rô   c                 C   s   | j S rÿ   )rŠ  rs  rä   rä   rå   ró     rô   c                 C   s
   | j dkS rð   r‹  rs  rä   rä   rå   ró     rô   Úmsisdn_lengthZmsisdnc                 C   s
   | j dkS rð   ©r…  rs  rä   rä   rå   ró     rô   c                 C   s   | j S rÿ   )rŒ  rs  rä   rä   rå   ró     rô   c                 C   s
   | j dkS rð   r�  rs  rä   rä   rå   ró     rô   Ú
nai_lengthZnaic                 C   s
   | j dkS rð   ©r„  rs  rä   rä   rå   ró     rô   c                 C   s   | j S rÿ   )rŽ  rs  rä   rä   rå   ró     rô   c                 C   s
   | j dkS rð   r�  rs  rä   rä   rå   ró     rô   rk  )rç   rè   ré   r  r+  r*  r  r   r   r   r   r   r  rä   rä   rä   rå   rƒ  û  sT   




þþþþþþþþârƒ  c                   @   s8   e Zd ZdZdZejedddƒedddƒe	dƒg Zd	S )
Ú IE_EthernetPDUSessionInformationz#IE Ethernet PDU Session Informationrº   ri  r   r.   ZETHIr(   rk  Nr°  rä   rä   rä   rå   r�     s   

ýr�  c                   @   sJ   e Zd ZdZdZejeddddd�edde	dd	ƒd
d„ d�e
dƒg ZdS )ÚIE_MACAddressesDetectedzIE MAC Addresses Detectedr¼   Únum_macsNÚmacsrú   ©r  rµ  Úmacr   c                 C   s   | j S rÿ   ©r’  rs  rä   rä   rå   ró   0  rô   z IE_MACAddressesDetected.<lambda>r  rk  ©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dZejeddddd�edde	dd	ƒd
d„ d�e
dƒg ZdS )ÚIE_MACAddressesRemovedzIE MAC Addresses Removedr½   r’  Nr“  rú   r”  r•  r   c                 C   s   | j S rÿ   r–  rs  rä   rä   rå   ró   ;  rô   zIE_MACAddressesRemoved.<lambda>r  rk  r—  rä   rä   rä   rå   r˜  5  s   ÿür˜  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )ÚIE_EthernetInactivityTimerzIE Ethernet Inactivity Timerr¾   r`  r   rk  Nr�  rä   rä   rä   rå   r™  @  s   þr™  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )ÚIE_EventQuotazIE Event QuotarÀ   r¨  r   rk  Nr�  rä   rä   rä   rå   rš  I  s   þrš  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )ÚIE_EventThresholdzIE Event ThresholdrÁ   r©  r   rk  Nr�  rä   rä   rä   rå   r›  R  s   þr›  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )ÚIE_SubsequentEventQuotazIE Subsequent Event QuotarÂ   Zsubsequent_event_quotar   rk  Nr�  rä   rä   rä   rå   rœ  [  s   þrœ  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )ÚIE_SubsequentEventThresholdzIE Subsequent Event ThresholdrÃ   Zsubsequent_event_thresholdr   rk  Nr�  rä   rä   rä   rå   r�  d  s   þr�  c                   @   sÊ   e Zd ZdZdZej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dd�e
dddd„ d�eddƒe	ddddd�e
dddd„ d�e	ddddd�e
dddd„ d�edƒg ZdS )ÚIE_TraceInformationzIE Trace InformationrÄ   Zmcc_digit_2r   r+   Zmcc_digit_1Zmnc_digit_3Zmcc_digit_3Zmnc_digit_2Zmnc_digit_1Ztrace_idÚtriggering_events_lengthNZtriggering_eventsrú   r´  r2  c                 C   s   | j S rÿ   )rŸ  rs  rä   rä   rå   ró   }  rô   zIE_TraceInformation.<lambda>r9  Zsession_trace_depthÚlist_of_interfaces_lengthZlist_of_interfacesc                 C   s   | j S rÿ   )r   rs  rä   rä   rå   ró   ‚  rô   Úip_address_lengthÚ
ip_addressc                 C   s   | j S rÿ   )r¡  rs  rä   rä   rå   ró   †  rô   rk  )rç   rè   ré   r  r+  r*  r  r   r   r   r   r
   r  rä   rä   rä   rå   rž  m  s>   





ÿÿÿÿÿÿërž  c                   @   s.   e Zd ZdZdZejedddd„ d�g ZdS )	ÚIE_FramedRoutezIE Framed-RouterÅ   Zframed_router2  c                 C   s   | j S rÿ   r8  rs  rä   rä   rå   ró   �  rô   zIE_FramedRoute.<lambda>r9  Nr‡  rä   rä   rä   rå   r£  ‹  s
   ÿr£  c                   @   s.   e Zd ZdZdZejedddd„ d�g ZdS )	ÚIE_FramedRoutingzIE Framed-RoutingrÆ   Zframed_routingr2  c                 C   s   | j S rÿ   r8  rs  rä   rä   rå   ró   —  rô   zIE_FramedRouting.<lambda>r9  Nr‡  rä   rä   rä   rå   r¤  “  s
   ÿr¤  c                   @   s.   e Zd ZdZdZejedddd„ d�g ZdS )	ÚIE_FramedIPv6RoutezIE Framed-IPv6-RouterÇ   Zframed_ipv6_router2  c                 C   s   | j S rÿ   r8  rs  rä   rä   rå   ró   Ÿ  rô   zIE_FramedIPv6Route.<lambda>r9  Nr‡  rä   rä   rä   rå   r¥  ›  s
   ÿr¥  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )ÚIE_EventTimeStampzIE Event Time StamprÈ   r  r   rk  Nr�  rä   rä   rä   rå   r¦  £  s   þr¦  c                   @   s,   e Zd ZdZdZejeddƒedƒg ZdS )ÚIE_AveragingWindowzIE Averaging WindowrÉ   Zaveraging_windowr   rk  Nr�  rä   rä   rä   rå   r§  ¬  s   þr§  c                   @   s8   e Zd ZdZdZejedddƒedddƒe	dƒg Zd	S )
ÚIE_PagingPolicyIndicatorzIE Paging Policy IndicatorrÊ   ri  r   r,   Zppir*   rk  Nr°  rä   rä   rä   rå   r¨  µ  s   

ýr¨  c                   @   s.   e Zd ZdZdZejedddd„ d�g ZdS )	Ú
IE_APN_DNNz
IE APN/DNNrË   Zapn_dnnr2  c                 C   s   | j S rÿ   r8  rs  rä   rä   rå   ró   Ã  rô   zIE_APN_DNN.<lambda>r9  Nry  rä   rä   rä   rå   r©  ¿  s
   ÿr©  c                   @   s:   e Zd ZdZdZejedddƒeddde	ƒe
d	ƒg Zd
S )ÚIE_3GPP_InterfaceTypezIE 3GPP Interface TyperÌ   r¼  r   r)   Zinterface_typerÛ   r-   rk  N)rç   rè   ré   r  r+  r*  r  r   r   ÚInterfaceTyper  rä   rä   rä   rå   rª  Ç  s   
ýrª  c                   @   s8   e Zd ZdZdZejeddeƒe	dddd„ d�g ZdS )	r#  zEnterpise SpecificNZenterprise_idÚdatar2  c                 C   s
   | j d S rÏ  r8  rs  rä   rä   rå   ró   Ö  rô   zIE_EnterpriseSpecific.<lambda>r9  )
rç   rè   ré   r  r+  r*  r  r	   r!   r   rä   rä   rä   rå   r#  Ñ  s   
þr#  c                   @   s.   e Zd ZdZdZejedddd„ d�g ZdS )	r&  zIE not implementedr   r¬  r2  c                 C   s   | j S rÿ   r8  rs  rä   rä   rå   ró   Þ  rô   zIE_NotImplemented.<lambda>r9  Nr‡  rä   rä   rä   rå   r&  Ú  s
   ÿr&  ) r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   r7   r8   r9   r:   r;   r<   r=   r>   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   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º   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eƒ geƒgZdS )ÚPFCPHeartbeatRequestzPFCP Heartbeat Requestr7  N)rç   rè   ré   r  r   r7  r)  r  rä   rä   rä   rå   r­  �	  s   ÿr­  c                   @   s*   e Zd ZdZedeƒ geƒgZdd„ ZdS )ÚPFCPHeartbeatResponsezPFCP Heartbeat Responser7  c                 C   s
   t |tƒS rÿ   )r   r­  r  rä   rä   rå   r  œ	  s    zPFCPHeartbeatResponse.answersN)	rç   rè   ré   r  r   r7  r)  r  r  rä   rä   rä   rå   r®  –	  s   ÿr®  c                   @   s   e Zd ZdZedg eƒgZdS )ÚPFCPPFDManagementRequestzPFCP PFD Management Requestr7  N©rç   rè   ré   r  r   r)  r  rä   rä   rä   rå   r¯   	  s   r¯  c                   @   s&   e Zd ZdZedg eƒgZdd„ ZdS )ÚPFCPPFDManagementResponsezPFCP PFD Management Responser7  c                 C   s
   t |tƒS rÿ   )r   r¯  r  rä   rä   rå   r  ©	  s    z!PFCPPFDManagementResponse.answersN©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g eƒgZdS )ÚPFCPAssociationSetupRequestzPFCP Association Setup Requestr7  Nr°  rä   rä   rä   rå   r³  ­	  s   r³  c                   @   s&   e Zd ZdZedg eƒgZdd„ ZdS )ÚPFCPAssociationSetupResponsezPFCP Association Setup Responser7  c                 C   s
   t |tƒS rÿ   )r   r³  r  rä   rä   rå   r  ¶	  s    z$PFCPAssociationSetupResponse.answersNr²  rä   rä   rä   rå   r´  ²	  s   r´  c                   @   s   e Zd ZdZedg eƒgZdS )ÚPFCPAssociationUpdateRequestzPFCP Association Update Requestr7  Nr°  rä   rä   rä   rå   rµ  º	  s   rµ  c                   @   s&   e Zd ZdZedg eƒgZdd„ ZdS )ÚPFCPAssociationUpdateResponsez PFCP Association Update Responser7  c                 C   s
   t |tƒS rÿ   )r   rµ  r  rä   rä   rå   r  Ã	  s    z%PFCPAssociationUpdateResponse.answersNr²  rä   rä   rä   rå   r¶  ¿	  s   r¶  c                   @   s   e Zd ZdZedg eƒgZdS )ÚPFCPAssociationReleaseRequestrA   r7  Nr°  rä   rä   rä   rå   r·  Ç	  s   r·  c                   @   s&   e Zd ZdZedg eƒgZdd„ ZdS )ÚPFCPAssociationReleaseResponsez!PFCP Association Release Responser7  c                 C   s
   t |tƒS rÿ   )r   r·  r  rä   rä   rå   r  Ð	  s    z&PFCPAssociationReleaseResponse.answersNr²  rä   rä   rä   rå   r¸  Ì	  s   r¸  c                   @   s   e Zd ZdZedg eƒgZdS )ÚPFCPVersionNotSupportedResponsez#PFCP Version Not Supported Responser7  Nr°  rä   rä   rä   rå   r¹  Ô	  s   r¹  c                   @   s   e Zd ZdZedg eƒgZdS )ÚPFCPNodeReportRequestzPFCP Node Report Requestr7  Nr°  rä   rä   rä   rå   rº  Ú	  s   rº  c                   @   s&   e Zd ZdZedg eƒgZdd„ ZdS )ÚPFCPNodeReportResponsezPFCP Node Report Responser7  c                 C   s
   t |tƒS rÿ   )r   rº  r  rä   rä   rå   r  ã	  s    zPFCPNodeReportResponse.answersNr²  rä   rä   rä   rå   r»  ß	  s   r»  c                   @   s   e Zd ZdZedg eƒgZdS )ÚPFCPSessionSetDeletionRequestz!PFCP Session Set Deletion Requestr7  Nr°  rä   rä   rä   rå   r¼  ç	  s   r¼  c                   @   s&   e Zd ZdZedg eƒgZdd„ ZdS )ÚPFCPSessionSetDeletionResponsez"PFCP Session Set Deletion Responser7  c                 C   s
   t |tƒS rÿ   )r   r¼  r  rä   rä   rå   r  ð	  s    z&PFCPSessionSetDeletionResponse.answersNr²  rä   rä   rä   rå   r½  ì	  s   r½  c                   @   s   e Zd ZdZedg eƒgZdS )ÚPFCPSessionEstablishmentRequestz"PFCP Session Establishment Requestr7  Nr°  rä   rä   rä   rå   r¾  ô	  s   r¾  c                   @   s&   e Zd ZdZedg eƒgZdd„ ZdS )Ú PFCPSessionEstablishmentResponsez#PFCP Session Establishment Responser7  c                 C   s
   t |tƒS rÿ   )r   r¾  r  rä   rä   rå   r  ý	  s    z(PFCPSessionEstablishmentResponse.answersNr²  rä   rä   rä   rå   r¿  ù	  s   r¿  c                   @   s   e Zd ZdZedg eƒgZdS )ÚPFCPSessionModificationRequestz!PFCP Session Modification Requestr7  Nr°  rä   rä   rä   rå   rÀ  
  s   rÀ  c                   @   s&   e Zd ZdZedg eƒgZdd„ ZdS )ÚPFCPSessionModificationResponsez"PFCP Session Modification Responser7  c                 C   s
   t |tƒS rÿ   )r   rÀ  r  rä   rä   rå   r  

  s    z'PFCPSessionModificationResponse.answersNr²  rä   rä   rä   rå   rÁ  
  s   rÁ  c                   @   s   e Zd ZdZedg eƒgZdS )ÚPFCPSessionDeletionRequestzPFCP Session Deletion Requestr7  Nr°  rä   rä   rä   rå   rÂ  
  s   rÂ  c                   @   s&   e Zd ZdZedg eƒgZdd„ ZdS )ÚPFCPSessionDeletionResponsezPFCP Session Deletion Responser7  c                 C   s
   t |tƒS rÿ   )r   rÂ  r  rä   rä   rå   r  
  s    z#PFCPSessionDeletionResponse.answersNr²  rä   rä   rä   rå   rÃ  
  s   rÃ  c                   @   s   e Zd ZdZedg eƒgZdS )ÚPFCPSessionReportRequestzPFCP Session Report Requestr7  Nr°  rä   rä   rä   rå   rÄ  
  s   rÄ  c                   @   s&   e Zd ZdZedg eƒgZdd„ ZdS )ÚPFCPSessionReportResponsezPFCP Session Report Responser7  c                 C   s
   t |tƒS rÿ   )r   rÄ  r  rä   rä   rå   r  $
  s    z!PFCPSessionReportResponse.answersNr²  rä   rä   rä   rå   rÅ   
  s   rÅ  ie"  )Údport)Úsport)rÆ  rÇ  r(   )rî   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   )r+  rq  rp  ri  (  Ú__doc__rß   Zscapy.compatr   r   Zscapy.errorr   Zscapy.fieldsr   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   Zscapy.layers.inetr   Zscapy.layers.inet6r    Z
scapy.datar!   Zscapy.packetr"   r#   r$   r%   Zscapy.volatiler&   r'   r  r4  rg  rl  r·  r®  r‹  rÊ  r6  rà  r  r)  r3  r@  rS  rV  rY  r«  ÚobjectrÜ   rê   r  r  r  r)  r*  r6  r:  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rI  rJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  rT  rU  rV  rW  rX  rY  rZ  r[  r\  r]  r^  r_  r`  ra  rb  rc  rd  re  rh  rm  rw  rz  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.  r4  r7  r8  r<  rA  rB  rC  rJ  rK  rL  rM  rN  rO  rP  rQ  rR  rT  rW  rZ  r_  ra  rd  re  rf  rg  rh  ri  rk  rl  rm  rr  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>   sn  pé€ ß &ðüû	üüú
÷ýýøøÿû	û
þð	#
 

		
				
	


	D											

		



			

	
			
	%
							

		€ à .
