
    hi0             
       '   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/ i 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/d0d1d2d3Z0i dd4dd5dd6dd7dd8dd9dd:dd;dd<dd=dd>dd?d!d@d#dAd%dBd'dCdDdEi dFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgi dhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dddddddddd)di d+dddddddddddddddddddddddddddddddddi ddddddddddddddddddddddddddÓddœddǓddɓdd˓i dd͓ddϓddѓddӓddՓddדddٓddۓddݓddߓddddddddddddddi ddddddddddddddddddd ddddddddd	d
dddddi 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i d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\Z1i dd4dd]dd^dd_dd`ddaddbddcdddddeddfddgddhddiddjddkZ2dldmdndodpZ3dldmdndodqdrZ4dsdtdudvdpZ5dwdxdydzdpZ6d{d|d}d~dddZ7dddddddddd	Z8ddddZ9d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diZ=ddddddrZ>ddddddrZ?dddZ@i 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ZA G d deB          ZC G d deCe+          ZD G d de          ZE G d de          ZF G dĄ de          ZGdƄ ZH G dǄ deCe+          ZI G dɄ deI          ZJ G d˄ deJ          ZK G d̈́ deJ          ZL G dτ deJ          ZM G dф deJ          ZN G dӄ deJ          ZO G dՄ deJ          ZP G dׄ deJ          ZQ G dل deJ          ZR G dۄ deJ          ZS G d݄ deJ          ZT G d߄ deJ          ZU G d deJ          ZV G d deJ          ZW G d deJ          ZX G d deJ          ZY G d deJ          ZZ G d deJ          Z[ G d deJ          Z\ G d deJ          Z] G d deJ          Z^ G d deJ          Z_ G d deJ          Z` G d deJ          Za G d deJ          Zb G d deJ          Zc G d deJ          Zd G d d eJ          Ze G d deJ          Zf G d deJ          Zg G d deJ          Zh G d deJ          Zi G d	 d
eJ          Zj G d deJ          Zk G d deJ          Zl G d deJ          Zm G d deJ          Zn G d deJ          Zo G d deJ          Zp G d deJ          Zq G d deJ          Zr G d deJ          Zs G d deJ          Zt G d d eI          Zu G d! d"eI          Zv G d# d$eI          Zw G d% d&eI          Zx G d' d(eI          Zy G d) d*eI          Zz G d+ d,eI          Z{ G d- d.eI          Z| G d/ d0eI          Z} G d1 d2eI          Z~ G d3 d4eI          Z G d5 d6eI          Z G d7 d8eI          Z G d9 d:eI          Z G d; d<eI          Z G d= d>eI          Z G d? d@eI          Z G dA dBeI          Z G dC dDeI          Z G dE dFeI          Z G dG dHeI          Z G dI dJeI          Z G dK dLeI          Z G dM dNeI          Z G dO dPeI          Z G dQ dReI          Z G dS dTeI          Z G dU dVeI          Z G dW dXeI          Z G dY dZeI          Z G d[ d\eI          Z G d] d^eI          Z G d_ d`eI          Z G da dbeI          Z G dc ddeI          Z G de dfeI          Z G dg dheI          Z G di djeI          Z G dk dleI          Z G dm dneI          Z G do dpeI          Z G dq dreI          Z G ds dteI          Z G du dveI          Z G dw dxeI          Z G dy dzeI          Z G d{ d|eI          Z G d} d~eI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G dÄ deI          Z G dń deI          Z G dǄ deI          Z G dɄ deI          Z G d˄ deI          Z G d̈́ deI          Z G dτ deI          Z G dф deI          Z G dӄ deI          Z G dՄ deI          Z G dׄ deI          Z G dل deI          Z G dۄ deI          Z G d݄ deI          Z G d߄ deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d d eI          Z G d deI          Z G d deI          Z G d deI          Z G d deI          Z G d	 d
eI          Z G d deI          Z G d deI          Zi deKdeLdeMdeNdeOdePdeQdeRdeSdeTdeUd!eVd#eWd%eXd'eYdDeZdFe[i dHe\dJeudLevdNewdPexdReydTezdVe{dXe|dZe}d\e~d^ed`edbeddedfedhei djedlednedpedredtedvedxedzed|ed~ededededed)ed+e]i dedede^dededede_de`dededededededededeai dededededededededebdecdeddeedededefdedegi dehdeidedededededededededededejdededeki dededeldededededed ededeÓdeēdeœd
eƓdeǓdemdeȓi deɓdeʓde˓de̓de͓deΓdeϓd end"eod$epd&eqd(eГd*erd,eѓd.eғd0eӓd2eԓi d4eՓd6e֓d8eדd:eؓd<eٓd>eړd@esdBeۓdDeܓdFeݓdHetdJeޓdLeߓdNedPedRedeeeeeeeedZ G d de+          Z G d de+          Z G d de+          Z G d de+          Z G d de+          Z G d de+          Z G d de+          Z G d d e+          Z G d! d"e+          Z G d# d$e+          Z G d% d&e+          Z G d' d(e+          Z G d) d*e+          Z G d+ d,e+          Z G d- d.e+          Z G d/ d0e+          Z G d1 d2e+          Z G d3 d4e+          Z G d5 d6e+          Z  G d7 d8e+          Z G d9 d:e+          Z G d; d<e+          Z G d= d>e+          Z e*e#eDd?@            e*e#eDd?A            e)e#eDd?d?B            e)eDedC            e)eDedC            e)eDedC            e)eDedC            e)eDedC            e)eDedC            e)eDedC            e)eDedC            e)eDedC            e)eDedC            e)eDedC            e)eDed!C            e)eDed#C            e)eDed%C            e)eDed'C            e)eDed)C            e)eDed+C            e)eDedC            e)eDe dC            e)eDedC            e)eDedC            e)eDedC            e)eDedC            eddddD           dS (E  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RandBin   heartbeat_request   heartbeat_response   pfd_management_request   pfd_management_response   association_setup_request   association_setup_response   association_update_request   association_update_response	   association_release_request
   association_release_response   version_not_supported_response   node_report_request   node_report_response   session_set_deletion_request   session_set_deletion_response2   session_establishment_request3   session_establishment_responsesession_modification_requestsession_modification_responsesession_deletion_requestsession_deletion_responsesession_report_requestsession_report_response)4   5   6   7   8   9   Reservedz
Create PDR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 PDR   z
Remove FAR   z
Remove URR   z
Remove QER   Cause   zSource Interface   zF-TEID   zNetwork Instance   z
SDF Filter   zApplication ID   zGate Status   MBR   GBR   zQER Correlation ID   
Precedence   zTransport Level Marking   zVolume Threshold    zTime Threshold!   zMonitoring Time"   zSubsequent Volume Threshold#   zSubsequent Time Threshold$   zInactivity Detection Time%   zReporting Triggers&   zRedirect Information'   zReport Type(   zOffending IE)   zForwarding Policy*   zDestination Interface+   zUP Function Features,   zApply Action-   z!Downlink Data Service Information.   z Downlink Data Notification Delay/   zDL Buffering Duration0   z#DL Buffering Suggested Packet Count1   zPFCPSMReq-FlagszPFCPSRRsp-FlagszLoad Control InformationrQ   zSequence NumberrR   MetricrS   zOverload Control InformationrT   TimerrU   zPDR IDrV   zF-SEID:   zApplication ID's PFDs;   zPFD context<   zNode ID=   zPFD contents>   zMeasurement Method?   zUsage Report Trigger@   zMeasurement PeriodA   zFQ-CSIDB   zVolume MeasurementC   zDuration MeasurementD   z!Application Detection InformationE   zTime of First PacketF   zTime of Last PacketG   zQuota Holding TimeH   zDropped DL Traffic ThresholdI   zVolume QuotaJ   z
Time QuotaK   z
Start TimeL   zEnd TimeM   z	Query URRN   z,Usage Report (Session Modification Response)O   z(Usage Report (Session Deletion Response)P   z%Usage Report (Session Report Request)Q   zURR IDR   zLinked URR IDS   zDownlink Data ReportT   zOuter Header CreationU   z
Create BARV   z)Update BAR (Session Modification Request)W   z
Remove BARX   zBAR IDY   zCP Function FeaturesZ   zUsage Information[   zApplication Instance ID\   zFlow Information]   zUE IP Address^   zPacket Rate_   zOuter Header Removal`   zRecovery Time Stampa   zDL Flow Level Markingb   zHeader Enrichmentc   zError Indication Reportd   zMeasurement Informatione   zNode Report Typef   zUser Plane Path Failure Reportg   zRemote GTP-U Peerh   zUR-SEQNi   zUpdate Duplicating Parametersj   zActivate Predefined Rulesk   zDeactivate Predefined Rulesl   zFAR IDm   zQER IDn   z	OCI Flagso    PFCP Association Release Requestp   zGraceful Release Periodq   zPDN Typer   zFailed Rule IDs   zTime Quota Mechanismt   z"User Plane IP Resource Informationu   zUser Plane Inactivity Timerv   zAggregated URRsw   
Multiplierx   zAggregated URR IDy   zSubsequent Volume Quotaz   zSubsequent Time Quota{   RQI|   QFI}   zQuery URR Reference~   z$Additional Usage Reports Information   zCreate Traffic Endpoint   zCreated Traffic Endpoint   zUpdate Traffic Endpoint   zRemove Traffic Endpoint   zTraffic Endpoint ID   zEthernet Packet Filter   zMAC Address   zC-TAG   zS-TAG   	Ethertype   Proxying   zEthernet Filter ID   zEthernet Filter Properties   z!Suggested Buffering Packets Count   zUser ID   z Ethernet PDU Session Information   zEthernet Traffic Information   zMAC Addresses Detected   zMAC Addresses Removed   zEthernet Inactivity Timer   zAdditional Monitoring Time   zEvent Quota   zEvent Threshold   zSubsequent Event Quota   zSubsequent Event Threshold   zTrace InformationzFramed-RoutezFramed-RoutingzFramed-IPv6-RoutezEvent Time StampzAveraging WindowzPaging Policy IndicatorzAPN/DNNz3GPP Interface Type)                        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Access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OPENCLOSEDCLOSED_RESERVED_2CLOSED_RESERVED_3	2 secondsz1 minutez
10 minutesz1 hourz10 hoursinfinite)r   r)   r+   r-   r/   r5   zGTP-U/UDP/IPv4zGTP-U/UDP/IPv6zUDP/IPv4zUDP/IPv6IPv4IPv6zGTP-U/UDP/IPz
VLAN S-TAGzS-TAG and C-TAG)	r   r)   r+   r-   r/   r1   r3   r5   r7   FQDN)r   r)   r+   MCCMNCIdUnspecifiedDownlinkUplinkBidirectionalUnspecified4Unspecified5Unspecified6Unspecified7)r   r)   r+   r-   r/   r1   r3   r5   minutez	6 minuteshourdayweekmin5min6min7HTTPIPv4v6zNon-IPEthernetPDRFARQERURRBARCTP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 forwardingN9c                       e Zd Zd ZdS )PFCPLengthMixinc                     ||z  }| j         =t          |          dz
  }|d d         t          j        d|          z   |dd          z   }|S )Nr/   r+   z!H)lengthlenstructpack)selfppaytmp_lens       V/mounts/lovelace/software/anaconda3/lib/python3.11/site-packages/scapy/contrib/pfcp.py
post_buildzPFCPLengthMixin.post_buildr  sR    	S;!ffqjG"1"D'222QqrrU:A    N)__name__
__module____qualname__r#   r$  r"  r  r  q  s#            r$  r  c                      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            edd           e	 eddd          d            e	 eddd          d            e	 edd          d           gZd Zd ZdS )PFCPzPFCP (v1) Headerversionr)   r-   spare_b2r   spare_b3spare_b4MPSmessage_typeNr  seidc                     | j         dk    S Nr)   )r0  pkts    r"  <lambda>zPFCP.<lambda>  s    CEQJ r$  seqpriorityr/   c                     | j         dk    S r4  r/  r5  s    r"  r7  zPFCP.<lambda>      CFaK r$  spare_pc                     | j         dk    S r4  r;  r5  s    r"  r7  zPFCP.<lambda>  r<  r$  	spare_octc                     | j         dk    S Nr   r;  r5  s    r"  r7  zPFCP.<lambda>  r<  r$  c                     t          j        d| j                  t          j        d| j                  z   | j                                        z   S )NBI)r  r  r+  r8  payloadhashretr  s    r"  rF  zPFCP.hashret  sA    {3--C0J0JJL  ""# 	#r$  c                     t          |t                    o>| j        |j        k    o.| j        |j        k    o| j                            |j                  S N)
isinstancer*  r+  r8  rE  answersr  others     r"  rK  zPFCP.answers  sR    5$'' 4-4EI%4 $$U]33	5r$  )r%  r&  r'  namer   r   r	   PFCPmessageTyper   r   r   r   r   fields_descrF  rK  r(  r$  r"  r*  r*  z  si        DAq!!	*a##	*a##	*a##q!andO<<
8T""FA....	0 	0q!!*a33//	1 	1)Q22//	1 	1;22//	1 	1!K(# # #5 5 5 5 5r$  r*  c                       e Zd Zd Zd ZdS )APNStrLenFieldc                    d}|}|ryt          |d                   dz   }|t          |          k    r!t          d|t          |          fz             ||d|         z  }||d          }t          |          r|dz  }|y|}|S )Nr$  r   r)   zDAPN prematured end of character-string (size=%i, remaining bytes=%i)   .)r   r  r   )r  r6  sret_stmp_sr!  s         r"  m2izAPNStrLenField.m2i  s     	%(mma'GU##^biknotkukuavvwwwU1W9%%E'((OE5zz   	 r$  c                 j    d                     d |                    d          D                       }|S )Nr$  c              3   T   K   | ]#}t          t          |                    |z   V  $d S rI  )r   r  ).0xs     r"  	<genexpr>z%APNStrLenField.i2m.<locals>.<genexpr>  s2      <<SQ[[1_<<<<<<r$  rT  )joinsplit)r  r6  rU  s      r"  i2mzAPNStrLenField.i2m  s1    HH<<aggdmm<<<<<r$  N)r%  r&  r'  rX  r`  r(  r$  r"  rR  rR    s2              r$  rR  c                   (    e Zd ZddZd Zd Zd ZdS )ExtraDataFieldr$  c                 2    t          j        | ||           d S rI  )r   __init__r  rN  defaults      r"  rd  zExtraDataField.__init__  s    $g.....r$  c                 4    ||                      ||          z   S rI  )r`  r  r6  rU  vals       r"  addfieldzExtraDataField.addfield  s    488C%%%%r$  c                     t          |j                  t          |          z
  }|j        dz   |z
  }||d          |                     ||d |                   fS Nr/   )r  originalr  rX  )r  r6  rU  r  r  s        r"  getfieldzExtraDataField.getfield  sU    A&a!#z488C7F74444r$  c                 <    t          t          dd                    S )Nr   r+   )r(   r'   rG  s    r"  randvalzExtraDataField.randval  s    wq!}}%%%r$  N)r$  r%  r&  r'  rd  rj  rn  rp  r(  r$  r"  rb  rb    sU        / / / /& & &5 5 5& & & & &r$  rb  c                   &    e Zd Zd Zd Zd Zd ZdS )
Int40Fieldc                 4    t          j        | ||d           d S )NBI)r   rd  re  s      r"  rd  zInt40Field.__init__  s    tT7D11111r$  c                 l    |                      ||          }|t          j        d|dz	  |dz            z   S )N!BIrm   l    )r`  r  r  rh  s       r"  rj  zInt40Field.addfield  s7    hhsC  6;ucRiz1ABBBBr$  c                     t          j        d|d d                   \  }}|dd          |                     ||dz  |z             fS )Nrw  r1   rm   )r  unpackrX  )r  r6  rU  hilos        r"  rn  zInt40Field.getfield  sH    uae,,BudhhsR2XO4444r$  c                 "    t          dd          S )Nr   l   )r'   rG  s    r"  rp  zInt40Field.randval  s    q)$$$r$  Nrq  r(  r$  r"  rs  rs    sS        2 2 2C C C5 5 5% % % % %r$  rs  c                     t          | d                   dz  t          | d                   z   }|dz  rt          |           S t                              |t                    }|t          u rt
          } ||           S )z-Choose the correct Information Element class.r      r)   i   )r   IE_EnterpriseSpecific	ietypeclsgetr&   IE_NotImplemented)rU  ietypeclss      r"  IE_Dispatcherr    sn     !A$ii#oQqT*F ($Q'''
--
$
$C
czz3q66Mr$  c                   Z     e Zd ZdZ fdZd Z edde           edd          gZ	 xZ
S )IE_BaseNc                     | j         | j        d         _        | j        | j        d         _         t	          t
          |           j        |i | d S )Nr   r)   )ie_typerP  rf  default_lengthsuperr  rd  )r  argskwargs	__class__s      r"  rd  zIE_Base.__init__  sP    &*l#&*&9#%gt%t6v66666r$  c                 
    d|fS )N r(  )r  r6  s     r"  extract_paddingzIE_Base.extract_padding  s    3wr$  r  r   r  )r%  r&  r'  r  rd  r  r
   IETyper   rP  __classcell__)r  s   @r"  r  r    si        N7 7 7 7 7
   	xF++
8T""KKKKKr$  r  c                   @    e Zd Zej         edded           gz   ZdS )IE_CompoundIE_listNc                     | j         S rI  r  r5  s    r"  r7  zIE_Compound.<lambda>  s    
 r$  length_from)r%  r&  r'  r  rP  r   r  r(  r$  r"  r  r    s@        %	4$:$:	< 	< 	<) KKKr$  r  c                       e Zd ZdZdZdS )IE_CreatePDRzIE Create PDRr)   Nr%  r&  r'  rN  r  r(  r$  r"  r  r            DGGGr$  r  c                       e Zd ZdZdZdS )IE_PDIzIE PDIr+   Nr  r(  r$  r"  r  r    s        DGGGr$  r  c                       e Zd ZdZdZdS )IE_CreateFARzIE Create FARr-   Nr  r(  r$  r"  r  r    r  r$  r  c                       e Zd ZdZdZdS )IE_ForwardingParameterszIE Forwarding Parametersr/   Nr  r(  r$  r"  r  r  	  s        %DGGGr$  r  c                       e Zd ZdZdZdS )IE_DuplicatingParameterszIE Duplicating Parametersr1   Nr  r(  r$  r"  r  r    s        &DGGGr$  r  c                       e Zd ZdZdZdS )IE_CreateURRzIE Create URRr3   Nr  r(  r$  r"  r  r    r  r$  r  c                       e Zd ZdZdZdS )IE_CreateQERzIE Create QERr5   Nr  r(  r$  r"  r  r    r  r$  r  c                       e Zd ZdZdZdS )IE_CreatedPDRzIE Created PDRr7   Nr  r(  r$  r"  r  r    s        DGGGr$  r  c                       e Zd ZdZdZdS )IE_UpdatePDRzIE Update PDRr9   Nr  r(  r$  r"  r  r  "  r  r$  r  c                       e Zd ZdZdZdS )IE_UpdateFARzIE Update FARr;   Nr  r(  r$  r"  r  r  '          DGGGr$  r  c                       e Zd ZdZdZdS )IE_UpdateForwardingParameterszIE Update Forwarding Parametersr=   Nr  r(  r$  r"  r  r  ,          ,DGGGr$  r  c                       e Zd ZdZdZdS )IE_UpdateBAR_SRRz,IE Update BAR (PFCP Session Report Response)r?   Nr  r(  r$  r"  r  r  1          9DGGGr$  r  c                       e Zd ZdZdZdS )IE_UpdateURRzIE Update URRrA   Nr  r(  r$  r"  r  r  6  r  r$  r  c                       e Zd ZdZdZdS )IE_UpdateQERzIE Update QERrC   Nr  r(  r$  r"  r  r  ;  r  r$  r  c                       e Zd ZdZdZdS )IE_RemovePDRzIE Remove PDRrE   Nr  r(  r$  r"  r  r  @  r  r$  r  c                       e Zd ZdZdZdS )IE_RemoveFARzIE Remove FARrY   Nr  r(  r$  r"  r  r  E  r  r$  r  c                       e Zd ZdZdZdS )IE_RemoveURRzIE Remove URRrZ   Nr  r(  r$  r"  r  r  J  r  r$  r  c                       e Zd ZdZdZdS )IE_RemoveQERzIE Remove QERr[   Nr  r(  r$  r"  r  r  O  r  r$  r  c                       e Zd ZdZdZdS )IE_LoadControlInformationzIE Load Control InformationrI   Nr  r(  r$  r"  r  r  T  s        (DGGGr$  r  c                       e Zd ZdZdZdS )IE_OverloadControlInformationzIE Overload Control InformationrS   Nr  r(  r$  r"  r  r  Y  r  r$  r  c                       e Zd ZdZdZdS )IE_ApplicationID_PFDszIE Application ID's PFDsr   Nr  r(  r$  r"  r  r  ^  s        %DGGGr$  r  c                       e Zd ZdZdZdS )IE_PFDContextzIE PFD contextr   Nr  r(  r$  r"  r  r  c  s        DGGGr$  r  c                       e Zd ZdZdZdS )"IE_ApplicationDetectionInformationz$IE Application Detection Informationr   Nr  r(  r$  r"  r  r  h  s        1DGGGr$  r  c                       e Zd ZdZdZdS )IE_QueryURRzIE Query URRr   Nr  r(  r$  r"  r  r  m  s        DGGGr$  r  c                       e Zd ZdZdZdS )IE_UsageReport_SMRz/IE Usage Report (Session Modification Response)r   Nr  r(  r$  r"  r  r  r  s        <DGGGr$  r  c                       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  r  w  s        8DGGGr$  r  c                       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  r  |  s        5DGGGr$  r  c                       e Zd ZdZdZdS )IE_DownlinkDataReportzIE Downlink Data Reportr   Nr  r(  r$  r"  r  r    s        $DGGGr$  r  c                       e Zd ZdZdZdS )IE_Create_BARzIE Create BARr   Nr  r(  r$  r"  r  r    r  r$  r  c                       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  r    r  r$  r  c                       e Zd ZdZdZdS )IE_Remove_BARzIE Remove BARr   Nr  r(  r$  r"  r  r    r  r$  r  c                       e Zd ZdZdZdS )IE_ErrorIndicationReportzIE Error Indication Reportr   Nr  r(  r$  r"  r  r    s        'DGGGr$  r  c                       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        .DGGGr$  r  c                       e Zd ZdZdZdS )IE_UpdateDuplicatingParametersz IE Update Duplicating Parametersr   Nr  r(  r$  r"  r  r    s        -DGGGr$  r  c                       e Zd ZdZdZdS )IE_AggregatedURRszIE Aggregated URRsr   Nr  r(  r$  r"  r  r    s        DGGGr$  r  c                       e Zd ZdZdZdS )IE_CreateTrafficEndpointzIE Create Traffic Endpointr   Nr  r(  r$  r"  r  r            'DGGGr$  r  c                       e Zd ZdZdZdS )IE_CreatedTrafficEndpointzIE Created Traffic Endpointr   Nr  r(  r$  r"  r  r    s        (DGGGr$  r  c                       e Zd ZdZdZdS )IE_UpdateTrafficEndpointzIE Update Traffic Endpointr   Nr  r(  r$  r"  r  r    r  r$  r  c                       e Zd ZdZdZdS )IE_RemoveTrafficEndpointzIE Remove Traffic Endpointr   Nr  r(  r$  r"  r  r    r  r$  r  c                       e Zd ZdZdZdS )IE_EthernetPacketFilterzIE Ethernet Packet Filterr   Nr  r(  r$  r"  r  r    s        &DGGGr$  r  c                       e Zd ZdZdZdS )IE_EthernetTrafficInformationzIE Ethernet Traffic Informationr   Nr  r(  r$  r"  r  r    s        ,DGGGr$  r  c                       e Zd ZdZdZdS )IE_AdditionalMonitoringTimezIE Additional Monitoring Timer   Nr  r(  r$  r"  r  r    s        *DGGGr$  r  c                   B    e Zd ZdZdZej         edde          gz   ZdS )IE_Causer\   zIE CausecauseN)	r%  r&  r'  r  rN  r  rP  r	   CauseValuesr(  r$  r"  r  r    s;        GD%gt[11) KKKr$  r  c                   p    e Zd ZdZdZej         eddd           eddde	           e
d          gz   Zd	S )
IE_SourceInterfacezIE Source Interfacer^   sparer   r/   	interfacer   
extra_dataN)r%  r&  r'  rN  r  r  rP  r   r   SourceInterfacerb  r(  r$  r"  r  r    s[         DG%	'1a  [(A??|$$) KKKr$  r  c                   f   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            e	 edd          d            e	 edd          d            e	 edd          d            ed          g
z   ZdS )IE_FTEIDz	IE F-TEIDr_   r  r   r/   CHIDr)   CHV6V4TEIDc                     | j         dk    S rA  )r  r\  s    r"  r7  zIE_FTEID.<lambda>  s     r$  ipv4c                 .    | j         dk    o
| j        dk    S Nr)   r   )r  r  r  s    r"  r7  zIE_FTEID.<lambda>      1419#: r$  ipv6c                 .    | j         dk    o
| j        dk    S r
  )r  r  r  s    r"  r7  zIE_FTEID.<lambda>  r  r$  	choose_idc                     | j         dk    S r4  )r  r  s    r"  r7  zIE_FTEID.<lambda>      16Q; r$  r  N)r%  r&  r'  rN  r  r  rP  r   r   r   r   r   r!   r   rb  r(  r$  r"  r   r     s       DG%	'1a  Aq!q!q!61--/B/BCC++::	< 	<&!,,::	< 	<;22..	0 	0|$$) KKKr$  r   c                   F    e Zd ZdZdZej         eddd           gz   ZdS )IE_NetworkInstancezIE Network Instancer`   instancer  c                     | j         S rI  r  r  s    r"  r7  zIE_NetworkInstance.<lambda>  s    QX r$  r  Nr%  r&  r'  rN  r  r  rP  rR  r(  r$  r"  r  r    sB         DG%z23E3EFFF) KKKr$  r  c                   "   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            e
 eddd           d            e
 e	dd          d            e
 e	dd          d            e
 edd          d            e
 edd          d            e
 edd          d            ed           gz   ZdS )!IE_SDF_FilterzIE SDF Filterra   r  r   r-   BIDr)   FLSPITTCFDr?  flow_description_lengthNflow_description	length_ofc                     | j         dk    S r4  r  r5  s    r"  r7  zIE_SDF_Filter.<lambda>      SVq[ r$  r  c                     | j         S rI  )r  r5  s    r"  r7  zIE_SDF_Filter.<lambda>	  s    %(%@ r$  r  c                     | j         dk    S r4  r"  r5  s    r"  r7  zIE_SDF_Filter.<lambda>  r#  r$  tos_traffic_classc                     | j         dk    S r4  r  r5  s    r"  r7  zIE_SDF_Filter.<lambda>      SW\ r$  tos_traffic_maskc                     | j         dk    S r4  r(  r5  s    r"  r7  zIE_SDF_Filter.<lambda>  r)  r$  security_parameter_indexc                     | j         dk    S r4  )r  r5  s    r"  r7  zIE_SDF_Filter.<lambda>  r)  r$  
flow_labelc                     | j         dk    S r4  )r  r5  s    r"  r7  zIE_SDF_Filter.<lambda>  r#  r$  sdf_filter_idc                     | j         dk    S r4  )r  r5  s    r"  r7  zIE_SDF_Filter.<lambda>  r)  r$  r  )r%  r&  r'  rN  r  r  rP  r   r   r   r   r   r   r   r   rb  r(  r$  r"  r  r    s       DG%	'1a  1q!11q!	+q!!'@$1CE E E00	2 	2 	%72A 2AB B B 10	2 	2 	#6::11	3 	3#5q9911	3 	3"<a@@11	3 	3q9900	2 	2/15511	3 	3|$$3) KKKr$  r  c                   F    e Zd ZdZdZej         eddd           gz   ZdS )IE_ApplicationIdzIE Application IDrb   idr  c                     | j         S rI  r  r  s    r"  r7  zIE_ApplicationId.<lambda>      AH r$  r  Nr%  r&  r'  rN  r  r  rP  r   r(  r$  r"  r3  r3    sB        DG%D"*<*<===) KKKr$  r3  c            	           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   ZdS )IE_GateStatuszIE Gate Statusrc   r  r   r/   ulr   r+   dlr  N)r%  r&  r'  rN  r  r  rP  r   r   
GateStatusrb  r(  r$  r"  r9  r9  "  sn        DG%	'1a  T61j11T61j11|$$	) KKKr$  r9  c                   j    e Zd ZdZdZej         edd           edd           ed          gz   ZdS )IE_MBRzIE MBRrd   r:  r   r;  r  N	r%  r&  r'  rN  r  r  rP  rs  rb  r(  r$  r"  r>  r>  -  U        DG%
4
4|$$) KKKr$  r>  c                   j    e Zd ZdZdZej         edd           edd           ed          gz   ZdS )IE_GBRzIE GBRrf   r:  r   r;  r  Nr?  r(  r$  r"  rB  rB  7  r@  r$  rB  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )IE_QERCorrelationIdzIE QER Correlation IDrh   r4  r   r  N	r%  r&  r'  rN  r  r  rP  r   rb  r(  r$  r"  rD  rD  A  sF        "DG%q|$$) KKKr$  rD  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )IE_PrecedencezIE Precedenceri   
precedencer   r  NrE  r(  r$  r"  rG  rG  J  sF        DG%q!!|$$) KKKr$  rG  c                   j    e Zd ZdZdZej         edd           edd           ed          gz   ZdS )IE_TransportLevelMarkingzIE Transport Level Markingrk   tosr   traffic_classr  N)	r%  r&  r'  rN  r  r  rP  r   rb  r(  r$  r"  rJ  rJ  S  sU        'DG%
5!
?A&&|$$) KKKr$  rJ  c                   "   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            e	 e
dd          d            e	 e
dd          d            ed          gz   ZdS )IE_VolumeThresholdzIE Volume Thresholdrl   r  r   r1   DLVOLr)   ULVOLTOVOLtotalc                     | j         dk    S r4  rQ  r  s    r"  r7  zIE_VolumeThreshold.<lambda>e      17a< r$  uplinkc                     | j         dk    S r4  rP  r  s    r"  r7  zIE_VolumeThreshold.<lambda>f      AGqL r$  downlinkc                     | j         dk    S r4  rO  r  s    r"  r7  zIE_VolumeThreshold.<lambda>g      agl r$  r  Nr%  r&  r'  rN  r  r  rP  r   r   r   r   rb  r(  r$  r"  rN  rN  ]  s         DG%	'1a  !Q!Q!QGQ//1G1GHHHa002H2HIIJ224J4JKK|$$	) 	KKKr$  rN  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )IE_TimeThresholdzIE Time Thresholdrm   	thresholdr   r  NrE  r(  r$  r"  r`  r`  l  sF        DG%a  |$$) KKKr$  r`  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )IE_MonitoringTimezIE Monitoring Timern   
time_valuer   r  NrE  r(  r$  r"  rc  rc  u  sF        DG%q!!|$$) KKKr$  rc  c                   "   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            e	 e
dd          d            e	 e
dd          d            ed          gz   ZdS )IE_SubsequentVolumeThresholdzIE Subsequent Volume Thresholdro   r  r   r1   rO  r)   rP  rQ  rR  c                     | j         dk    S r4  rT  r  s    r"  r7  z%IE_SubsequentVolumeThreshold.<lambda>  rU  r$  rV  c                     | j         dk    S r4  rX  r  s    r"  r7  z%IE_SubsequentVolumeThreshold.<lambda>  rY  r$  rZ  c                     | j         dk    S r4  r\  r  s    r"  r7  z%IE_SubsequentVolumeThreshold.<lambda>  r]  r$  r  Nr^  r(  r$  r"  rf  rf  ~  s        +DG%	'1a  !Q!Q!QGQ//1G1GHHHa002H2HIIJ224J4JKK|$$	) 	KKKr$  rf  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )IE_SubsequentTimeThresholdzIE Subsequent Time Thresholdrp   ra  r   r  NrE  r(  r$  r"  rk  rk    sF        )DG%a  |$$) KKKr$  rk  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )IE_InactivityDetectionTimezIE Inactivity Detection Timerq   rd  r   r  NrE  r(  r$  r"  rm  rm    sF        )DG%q!!|$$) KKKr$  rm  c                      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   ZdS )IE_ReportingTriggerszIE Reporting Triggersrr   linked_usage_reportingr   r)   dropped_dl_traffic_thresholdstop_of_trafficstart_of_trafficquota_holding_timetime_thresholdvolume_thresholdperiodic_reportingr  r+   event_quotaevent_thresholdmac_addresses_reportingenvelope_closure
time_quotavolume_quotar  N)
r%  r&  r'  rN  r  r  rP  r   r   rb  r(  r$  r"  ro  ro    sA       "DG%)1a00/A66"Aq))#Q**%q!,,!1a((#Q**%q!,,	'1a  1%%"Aq))*Aq11#Q**q!$$A&&|$$!) KKKr$  ro  c            	           e Zd ZdZdZej         eddd           eddde	           e
dd	d
           ed
dd            ed          gz   Zd	S )IE_RedirectInformationzIE Redirect Informationrs   r  r   r/   typer   address_lengthNaddressr  r  c                     | j         S rI  )r  r5  s    r"  r7  zIE_RedirectInformation.<lambda>  s	    3;M r$  r  r  )r%  r&  r'  rN  r  r  rP  r   r   RedirectAddressTyper   r   rb  r(  r$  r"  r  r    s        $DG%	'1a  V^Q0CDD&	BBBIr/M/MNNN|$$) KKKr$  r  c            
           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   ZdS )IE_ReportTypezIE Report Typert   r  r   r/   UPIRr)   ERIRUSARDLDRr  N
r%  r&  r'  rN  r  r  rP  r   r   rb  r(  r$  r"  r  r    s        DG%	'1a  AAAA|$$) KKKr$  r  c                   B    e Zd ZdZdZej         edde          gz   ZdS )IE_OffendingIEzIE Offending IEru   r  N)	r%  r&  r'  rN  r  r  rP  r
   r  r(  r$  r"  r  r    s;        DG%vtV,,) KKKr$  r  c                   b    e Zd ZdZdZej         edddd           eddd	 
          gz   ZdS )IE_ForwardingPolicyzIE Forwarding Policyrv   policy_identifier_lengthNpolicy_identifierrC  r   fmtr  c                     | j         S rI  )r  r5  s    r"  r7  zIE_ForwardingPolicy.<lambda>  s	    C,H r$  r  )	r%  r&  r'  rN  r  r  rP  r   r   r(  r$  r"  r  r    sj        !DG%0$ 3	> 	> 	>' H H	J 	J 	J) KKKr$  r  c                   p    e Zd ZdZdZej         eddd           eddde	           e
d          gz   Zd	S )
IE_DestinationInterfacezIE Destination Interfacerw   r  r   r/   r  r   r  N)r%  r&  r'  rN  r  r  rP  r   r   DestinationInterfacerb  r(  r$  r"  r  r    s\        %DG%	'1a  [(A/CDD|$$) KKKr$  r  c                   "   e Zd ZdZdZdZej         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 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 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   ZdS )'IE_UPFunctionFeatureszIE UP Function Featuresrx   r+   TREUNr)   c                     | j         dk    S rA  r  r  s    r"  r7  zIE_UPFunctionFeatures.<lambda>      ahl r$  HEEUc                     | j         dk    S rA  r  r  s    r"  r7  zIE_UPFunctionFeatures.<lambda>  r  r$  PFDMc                     | j         dk    S rA  r  r  s    r"  r7  zIE_UPFunctionFeatures.<lambda>  r  r$  FTUPc                     | j         dk    S rA  r  r  s    r"  r7  zIE_UPFunctionFeatures.<lambda>  r  r$  TRSTc                     | j         dk    S rA  r  r  s    r"  r7  zIE_UPFunctionFeatures.<lambda>  r  r$  DLBDc                     | j         dk    S rA  r  r  s    r"  r7  zIE_UPFunctionFeatures.<lambda>  r  r$  DDNDc                     | j         dk    S rA  r  r  s    r"  r7  zIE_UPFunctionFeatures.<lambda>  r  r$  BUCPc                     | j         dk    S rA  r  r  s    r"  r7  zIE_UPFunctionFeatures.<lambda>  r  r$  r  c                     | j         dk    S r4  r  r  s    r"  r7  zIE_UPFunctionFeatures.<lambda>      qx!| r$  PFDEc                     | j         dk    S r4  r  r  s    r"  r7  zIE_UPFunctionFeatures.<lambda>  r  r$  FRRTc                     | j         dk    S r4  r  r  s    r"  r7  zIE_UPFunctionFeatures.<lambda>  r  r$  TRACEc                     | j         dk    S r4  r  r  s    r"  r7  zIE_UPFunctionFeatures.<lambda>  r  r$  QUOACc                     | j         dk    S r4  r  r  s    r"  r7  zIE_UPFunctionFeatures.<lambda>   r  r$  UDBCc                     | j         dk    S r4  r  r  s    r"  r7  zIE_UPFunctionFeatures.<lambda>  r  r$  PDIUc                     | j         dk    S r4  r  r  s    r"  r7  zIE_UPFunctionFeatures.<lambda>  r  r$  EMPUc                     | j         dk    S r4  r  r  s    r"  r7  zIE_UPFunctionFeatures.<lambda>  r  r$  r  )r%  r&  r'  rN  r  r  r  rP  r   r   rb  r(  r$  r"  r  r    s\       $DGN%&$224J4JKK&$224J4JKK&$224J4JKK&$224J4JKK&$224J4JKK&$224J4JKK&$224J4JKK&$224J4JKK'4335K5KLL&$224J4JKK&$224J4JKK'4335K5KLL'4335K5KLL&$224J4JKK&$224J4JKK&$224J4JKK|$$+) KKKr$  r  c                       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   ZdS )IE_ApplyActionzIE Apply Actionry   r  Nr-   DUPLr   r)   NOCPBUFFFORWDROPr  r  r(  r$  r"  r  r  	  s        DG%	'4##AAAAA|$$) KKKr$  r  c                   >   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   ZdS )!IE_DownlinkDataServiceInformationz$IE Downlink Data Service Informationrz   spare_1Nr3   QFIIr   r)   PPIspare_2r+   c                     | j         dk    S r4  r  r  s    r"  r7  z*IE_DownlinkDataServiceInformation.<lambda>       aeqj r$  ppi_valc                     | j         dk    S r4  r  r  s    r"  r7  z*IE_DownlinkDataServiceInformation.<lambda>#  r  r$  spare_3c                     | j         dk    S r4  r  r  s    r"  r7  z*IE_DownlinkDataServiceInformation.<lambda>&      afk r$  qfi_valc                     | j         dk    S r4  r  r  s    r"  r7  z*IE_DownlinkDataServiceInformation.<lambda>)  r  r$  r  )r%  r&  r'  rN  r  r  rP  r   r   r   rb  r(  r$  r"  r  r    s       1DG%	)T1%%A1Iiq))  	" 	" 	Iiq))  	" 	" 	Iiq))!!	# 	# 	Iiq))!!	# 	# 	|$$!) KKKr$  r  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS ) IE_DownlinkDataNotificationDelayz#IE Downlink Data Notification Delayr{   delayr   r  N	r%  r&  r'  rN  r  r  rP  r   rb  r(  r$  r"  r  r  .  sF        0DG%	'1|$$) KKKr$  r  c                   p    e Zd ZdZdZej         eddde           e	ddd           e
d	          gz   Zd
S )IE_DLBufferingDurationzIE DL Buffering Durationr|   
timer_unitr   r-   timer_valuer   r1   r  Nr%  r&  r'  rN  r  r  rP  r   	TimerUnitr   rb  r(  r$  r"  r  r  7  s[        %DG%\;9==1%%|$$) KKKr$  r  c                       e Zd ZdZdZej         e edd          d d ff e	dd          d d ffg edd                    gz   Zd	S )
"IE_DLBufferingSuggestedPacketCountz&IE DL Buffering Suggested Packet Countr}   countr   c                     | j         dk    S r4  r  r  s    r"  r7  z+IE_DLBufferingSuggestedPacketCount.<lambda>H      18q= r$  c                 6    | j         dk    p| j         d u o|dk     S Nr)   r~  r  r\  ri  s     r"  r7  z+IE_DLBufferingSuggestedPacketCount.<lambda>I  s'    A !2(d"0sSy r$  c                     | j         dk    S Nr+   r  r  s    r"  r7  z+IE_DLBufferingSuggestedPacketCount.<lambda>N  r  r$  c                 6    | j         dk    p| j         d u o|dk    S r  r  r  s     r"  r7  z+IE_DLBufferingSuggestedPacketCount.<lambda>O  s'    A !3(d"1scz r$  N)
r%  r&  r'  rN  r  r  rP  r   r   r   r(  r$  r"  r  r  A  s        3DG%	'1%%((2 23 
7A&&((3 34
 9Wa  	" 	") KKKr$  r  c            	           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   ZdS )IE_PFCPSMReqFlagszIE PFCPSMReq-Flagsr~   r  Nr1   QUARRr   r)   SNDEMDROBUr  r  r(  r$  r"  r  r  V  s{        DG%	'4##!Q!Q!Q|$$) KKKr$  r  c                   n    e Zd ZdZdZej         eddd           eddd           e	d	          gz   ZdS )
IE_PFCPSRRspFlagszIE PFCPSRRsp-FlagsrG   r  Nr5   r  r   r)   r  r  r(  r$  r"  r  r  b  sY        DG%	'4##!Q|$$) KKKr$  r  c                   @    e Zd ZdZdZej         edd          gz   ZdS )IE_SequenceNumberzIE Sequence NumberrQ   numberr   Nr%  r&  r'  rN  r  r  rP  r   r(  r$  r"  r  r  l  s9        DG%1) KKKr$  r  c                   @    e Zd ZdZdZej         edd          gz   ZdS )	IE_Metricz	IE MetricrR   metricr   N)r%  r&  r'  rN  r  r  rP  r   r(  r$  r"  r  r  t  s9        DG%	(A) KKKr$  r  c                   p    e Zd ZdZdZej         eddde           e	ddd           e
d	          gz   Zd
S )IE_TimerzIE TimerrT   r  r   r-   r  r   r1   r  Nr  r(  r$  r"  r  r  |  s[        DG%\;9==1%%|$$) KKKr$  r  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )	IE_PDR_Idz	IE PDR IDrU   r4  r   r  N	r%  r&  r'  rN  r  r  rP  r   rb  r(  r$  r"  r  r    sF        DG%
4|$$) KKKr$  r  c                       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            e
 edd          d            ed          gz   ZdS )IE_FSEIDz	IE F-SEIDrV   r  r   r3   v4r)   v6r2  r  c                     | j         dk    S r4  )r  r  s    r"  r7  zIE_FSEID.<lambda>      1419 r$  r  c                     | j         dk    S r4  )r  r  s    r"  r7  zIE_FSEID.<lambda>  r   r$  r  N)r%  r&  r'  rN  r  r  rP  r   r   r   r   r   r!   rb  r(  r$  r"  r  r    s        DG%	'1a  q!q!
61++,,	. 	.&!,,,,	. 	.|$$
) 
KKKr$  r  c                       e Zd ZdZdZej         eddd           eddde	           e
 edd          d	            e
 ed
d          d            e
 eddd           d            ed          gz   ZdS )	IE_NodeIdz
IE Node IDr   r  r   r/   id_typer   r  c                     | j         dk    S rA  r  r  s    r"  r7  zIE_NodeId.<lambda>      19> r$  r  c                     | j         dk    S r4  r  r  s    r"  r7  zIE_NodeId.<lambda>  r  r$  r4  r  c                     | j         dz
  S r4  r  r  s    r"  r7  zIE_NodeId.<lambda>  s    18a< r$  r  c                     | j         dk    S r  r  r  s    r"  r7  zIE_NodeId.<lambda>      ai1n r$  r  N)r%  r&  r'  rN  r  r  rP  r   r   
NodeIdTyper   r   r!   rR  rb  r(  r$  r"  r  r    s        DG%	'1a  Y:66++11	3 	3&!,,11	3 	3N41G1GHHH$$	& 	& 	|$$) KKKr$  r  c                    $   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	 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	 e
d0dd1          d2            e	 ed1dd3           d4            e	 e
d5dd6          d7            e	 ed6dd8           d9            ed:          gz   ZdS );IE_PFDContentszIE PFD contentsr   ADNPr   r)   AURLAFDDNPCPDNr   r  r  flow_lengthNflowr  c                     | j         dk    S r4  r"  r5  s    r"  r7  zIE_PFDContents.<lambda>  r#  r$  r  c                     | j         S rI  r  r5  s    r"  r7  zIE_PFDContents.<lambda>  s    S_ r$  r  c                     | j         dk    S r4  r"  r5  s    r"  r7  zIE_PFDContents.<lambda>  r#  r$  
url_lengthurlc                     | j         dk    S r4  r   r5  s    r"  r7  zIE_PFDContents.<lambda>  r)  r$  c                     | j         S rI  )r  r5  s    r"  r7  zIE_PFDContents.<lambda>      S^ r$  c                     | j         dk    S r4  r  r5  s    r"  r7  zIE_PFDContents.<lambda>  r)  r$  domain_lengthdomainc                     | j         dk    S r4  r  r5  s    r"  r7  zIE_PFDContents.<lambda>  r#  r$  c                     | j         S rI  )r"  r5  s    r"  r7  zIE_PFDContents.<lambda>  	    0A r$  c                     | j         dk    S r4  r%  r5  s    r"  r7  zIE_PFDContents.<lambda>      ! r$  custom_lengthcustomc                     | j         dk    S r4  r  r5  s    r"  r7  zIE_PFDContents.<lambda>  r#  r$  c                     | j         S rI  )r*  r5  s    r"  r7  zIE_PFDContents.<lambda>  r'  r$  c                     | j         dk    S r4  r-  r5  s    r"  r7  zIE_PFDContents.<lambda>  r)  r$  
dnp_lengthdnpc                     | j         dk    S r4  r  r5  s    r"  r7  zIE_PFDContents.<lambda>  r)  r$  c                     | j         S rI  )r0  r5  s    r"  r7  zIE_PFDContents.<lambda>  r   r$  c                     | j         dk    S r4  r3  r5  s    r"  r7  zIE_PFDContents.<lambda>  r)  r$  additional_flow_lengthadditional_flowc                     | j         dk    S r4  r  r5  s    r"  r7  zIE_PFDContents.<lambda>  r)  r$  c                     | j         S rI  )r6  r5  s    r"  r7  zIE_PFDContents.<lambda>  s	    0J r$  c                     | j         dk    S r4  r9  r5  s    r"  r7  zIE_PFDContents.<lambda>  s    1 r$  additional_url_lengthadditional_urlc                     | j         dk    S r4  r  r5  s    r"  r7  zIE_PFDContents.<lambda>  s    SX] r$  c                     | j         S rI  )r<  r5  s    r"  r7  zIE_PFDContents.<lambda>  s	    0I r$  c                     | j         dk    S r4  r?  r5  s    r"  r7  zIE_PFDContents.<lambda>      A r$  additional_dn_dnp_lengthadditional_dn_dnpc                     | j         dk    S r4  r  r5  s    r"  r7  zIE_PFDContents.<lambda>  rB  r$  c                     | j         S rI  )rC  r5  s    r"  r7  zIE_PFDContents.<lambda>  s	    0L r$  c                     | j         dk    S r4  rF  r5  s    r"  r7  zIE_PFDContents.<lambda>  rB  r$  r  )r%  r&  r'  rN  r  r  rP  r   r   r   r   r   rb  r(  r$  r"  r  r    s       DG%AA11q!q!1q!	)Q}dfMMM00	2 	2VR1L1LN N N00	2 	2 	|TUKKK11	3 	3UB1K1KM M M11	3 	3 	19; ; ;00	2 	2 	K"$A$AC C C##	% 	% 	19; ; ;00	2 	2 	K"$A$AC C C##	% 	% 	|TUKKK11	3 	3UB1K1KM M M11	3 	3 	'?1BD D D11	3 	3 	K)2$J$JL L L$$	& 	& 	'>1AC C C22	4 	4 	K("$I$IK K K%%	' 	' 	M4d$79 9 9%%	' 	' 	K+R$L$LN N N%%	' 	' 	|$${>) >KKKr$  r  c            	           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   ZdS )IE_MeasurementMethodzIE Measurement Methodr   r  r   r1   EVENTr)   VOLUMDURATr  Nr  r(  r$  r"  rJ  rJ    s{        "DG%	'1a  !Q!Q!Q|$$) KKKr$  rJ  c                      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   ZdS )IE_UsageReportTriggerzIE Usage Report Triggerr   IMMERr   r)   DROTHSTOPTSTARTQUHTITIMTHVOLTHPERIOEVETHMACARENVCLMONITTERMRLIUSATIMQUVOLQUr  N	r%  r&  r'  rN  r  r  rP  r   rb  r(  r$  r"  rO  rO     sG       $DG%!Q!Q!Q!Q!Q!Q!Q!Q!Q!Q!Q!Q!Q!Q!Q!Q|$$#) KKKr$  rO  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )IE_MeasurementPeriodzIE Measurement Periodr   periodr   r  NrE  r(  r$  r"  rb  rb    sF        "DG%1|$$) KKKr$  rb  c                   Z   e Zd ZdZdZej         eddde           e	dddd	           e
 ed
d          d            e
 edd          d            e
 eddd          d            e
 eddd          d            edd edd          d            ed          gz   ZdS )	IE_FqCSIDz
IE FQ-CSIDr   node_id_typer   r/   	num_csidsNcsids)count_ofr  r   c                     | j         dk    S rA  rf  r  s    r"  r7  zIE_FqCSID.<lambda>(      1>Q#6 r$  r  c                     | j         dk    S r4  rk  r  s    r"  r7  zIE_FqCSID.<lambda>*  rl  r$  mcc_mncr^   c                     | j         dk    S r  rk  r  s    r"  r7  zIE_FqCSID.<lambda>.      an) r$  extra_idr?   c                     | j         dk    S r  rk  r  s    r"  r7  zIE_FqCSID.<lambda>3  rp  r$  csidc                     | j         S rI  )rg  r  s    r"  r7  zIE_FqCSID.<lambda>5  s    AK r$  
count_fromr  )r%  r&  r'  rN  r  r  rP  r   FqCSIDNodeIdTyper   r   r   r!   r   r   r   rb  r(  r$  r"  re  re  !  s(       DG%^VQ0@AAdA@@@++66	8 	8&!,,66	8 	8HY2&&))	+ 	+ 	HZB''))	+ 	+ 	wjj&;&;"7"7	9 	9 	9|$$%) KKKr$  re  c                   "   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            e	 e
dd          d            e	 e
dd          d            ed          gz   ZdS )IE_VolumeMeasurementzIE Volume Measurementr   r  r   r1   rO  r)   rP  rQ  rR  c                     | j         dk    S r4  rT  r  s    r"  r7  zIE_VolumeMeasurement.<lambda>B  rU  r$  rV  c                     | j         dk    S r4  rX  r  s    r"  r7  zIE_VolumeMeasurement.<lambda>C  rY  r$  rZ  c                     | j         dk    S r4  r\  r  s    r"  r7  zIE_VolumeMeasurement.<lambda>D  r]  r$  r  Nr^  r(  r$  r"  ry  ry  :  s        "DG%	'1a  !Q!Q!QGQ//1G1GHHHa002H2HIIJ224J4JKK|$$	) 	KKKr$  ry  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )IE_DurationMeasurementzIE Duration Measurementr   durationr   r  NrE  r(  r$  r"  r~  r~  I  sF        $DG%Q|$$) KKKr$  r~  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )IE_TimeOfFirstPacketzIE Time of First Packetr   	timestampr   r  NrE  r(  r$  r"  r  r  R  sF        $DG%a  |$$) KKKr$  r  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )IE_TimeOfLastPacketzIE Time of Last Packetr   r  r   r  NrE  r(  r$  r"  r  r  [  sF        #DG%a  |$$) KKKr$  r  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )IE_QuotaHoldingTimezIE Quota Holding Timer   rd  r   r  NrE  r(  r$  r"  r  r  d  sF        "DG%q!!|$$) KKKr$  r  c                       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
            e	 e
dd          d            ed          gz   ZdS )IE_DroppedDLTrafficThresholdzIE Dropped DL Traffic Thresholdr   r  r   r3   DLBYr)   DLPApacket_countc                     | j         dk    S r4  )r  r  s    r"  r7  z%IE_DroppedDLTrafficThreshold.<lambda>u  r  r$  
byte_countc                     | j         dk    S r4  )r  r  s    r"  r7  z%IE_DroppedDLTrafficThreshold.<lambda>w  r  r$  r  N)r%  r&  r'  rN  r  r  rP  r   r   r   r   rb  r(  r$  r"  r  r  m  s        ,DG%	'1a  AA>155..	0 	0<33..	0 	0|$$	) 	KKKr$  r  c                   "   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            e	 e
dd          d            e	 e
dd          d            ed          gz   ZdS )IE_VolumeQuotazIE Volume Quotar   r  r   r1   rO  r)   rP  rQ  rR  c                     | j         dk    S r4  rT  r  s    r"  r7  zIE_VolumeQuota.<lambda>  rU  r$  rV  c                     | j         dk    S r4  rX  r  s    r"  r7  zIE_VolumeQuota.<lambda>  rY  r$  rZ  c                     | j         dk    S r4  r\  r  s    r"  r7  zIE_VolumeQuota.<lambda>  r]  r$  r  Nr^  r(  r$  r"  r  r  |  s        DG%	'1a  !Q!Q!QGQ//1G1GHHHa002H2HIIJ224J4JKK|$$	) 	KKKr$  r  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )IE_TimeQuotazIE Time Quotar   quotar   r  NrE  r(  r$  r"  r  r    sF        DG%!|$$) KKKr$  r  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )IE_StartTimezIE Start Timer   r  r   r  NrE  r(  r$  r"  r  r    sF        DG%a  |$$) KKKr$  r  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )
IE_EndTimezIE End Timer   r  r   r  NrE  r(  r$  r"  r  r    sF        DG%a  |$$) KKKr$  r  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )	IE_URR_Idz	IE URR IDr   r4  r   r  NrE  r(  r$  r"  r  r    sF        DG%q|$$) KKKr$  r  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )IE_LinkedURR_IdzIE Linked URR IDr   r4  r   r  NrE  r(  r$  r"  r  r    sF        DG%q|$$) KKKr$  r  c                      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            e	 edd          d            e	 edd          d            e	 edd          d            e	 edd          d            e	 edd          d            ed          gz   ZdS )IE_OuterHeaderCreationzIE Outer Header Creationr   STAGr   r)   CTAGIPV6IPV4UDPIPV6UDPIPV4GTPUUDPIPV6GTPUUDPIPV4r  r  c                 .    | j         dk    p
| j        dk    S r4  )r  r  r  s    r"  r7  zIE_OuterHeaderCreation.<lambda>  s    1=A#5#K!9K r$  r  c                 D    | j         dk    p| j        dk    p
| j        dk    S r4  )r  r  r  r  s    r"  r7  zIE_OuterHeaderCreation.<lambda>  '    1L	QL!-1:L r$  r  c                 D    | j         dk    p| j        dk    p
| j        dk    S r4  )r  r  r  r  s    r"  r7  zIE_OuterHeaderCreation.<lambda>  r  r$  portc                 .    | j         dk    p
| j        dk    S r4  )r  r  r  s    r"  r7  zIE_OuterHeaderCreation.<lambda>  s    19>#CQY!^ r$  ctagc                     | j         dk    S r4  )r  r  s    r"  r7  zIE_OuterHeaderCreation.<lambda>  r  r$  stagc                     | j         dk    S r4  )r  r  s    r"  r7  zIE_OuterHeaderCreation.<lambda>  r  r$  r  N)r%  r&  r'  rN  r  r  rP  r   r   r   r   r   r!   r   r   rb  r(  r$  r"  r  r    s       %DG%AAAAAq!!Aq!!1%%1%%	'161--KK	M 	M++M M	N 	N 	&!,,M M	N 	N 	FA..CC	E 	E33..	0 	033..	0 	0|$$1) KKKr$  r  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )	IE_BAR_Idz	IE BAR IDr   r4  r   r  Nr  r(  r$  r"  r  r    sF        DG%	$|$$) KKKr$  r  c                       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   Zd
S )IE_CPFunctionFeatureszIE CP Function Featuresr   r  r   r3   OVRLr)   LOADr  Nr  r(  r$  r"  r  r    sj        $DG%	'1a  AA|$$	) KKKr$  r  c            
           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   ZdS )IE_UsageInformationzIE Usage Informationr   r  r   r/   UBEr)   UAEAFTBEFr  Nr  r(  r$  r"  r  r    s        !DG%	'1a  1111|$$) KKKr$  r  c                   F    e Zd ZdZdZej         eddd           gz   ZdS )IE_ApplicationInstanceIdzIE Application Instance IDr   r4  r  c                     | j         S rI  r  r  s    r"  r7  z!IE_ApplicationInstanceId.<lambda>  r6  r$  r  Nr7  r(  r$  r"  r  r    sB        'DG%D"*<*<===) KKKr$  r  c            	           e Zd ZdZdZej         eddd           eddde	           e
d	d
d           eddd            ed          gz   Zd
S )IE_FlowInformationzIE Flow Informationr   r  r   r1   	directionr   r-   r  Nr  r  r  c                     | j         S rI  r  r  s    r"  r7  zIE_FlowInformation.<lambda>      am r$  r  r  )r%  r&  r'  rN  r  r  rP  r   r   FlowDirectionr   r   rb  r(  r$  r"  r  r     s         DG%	'1a  [-MBBmTV<<<FB,C,CDDD|$$) KKKr$  r  c                       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            e	 edd          d            ed          gz   ZdS )IE_UE_IP_AddresszIE UE IP Addressr   r  r   r1   SDr)   r  r  r  c                     | j         dk    S r4  r  r  s    r"  r7  zIE_UE_IP_Address.<lambda>      qtqy r$  r  c                     | j         dk    S r4  r  r  s    r"  r7  zIE_UE_IP_Address.<lambda>      	 r$  r  N)r%  r&  r'  rN  r  r  rP  r   r   r   r   r!   rb  r(  r$  r"  r  r    s        DG%	'1a  q!q!q!++-@-@AA&!,,.A.ABB|$$) KKKr$  r  c                      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e          d            e	 edd          d            e	 eddd
          d            e	 e
ddde          d            e	 edd          d            ed          g
z   ZdS )IE_PacketRatezIE Packet Rater   r  r   r3   DLPRr)   ULPRr  r1   c                     | j         dk    S r4  r  r  s    r"  r7  zIE_PacketRate.<lambda>!      afk r$  ul_time_unitr  r-   c                     | j         dk    S r4  r  r  s    r"  r7  zIE_PacketRate.<lambda>#  r  r$  ul_max_packet_ratec                     | j         dk    S r4  r  r  s    r"  r7  zIE_PacketRate.<lambda>%  r  r$  r  c                     | j         dk    S r4  r  r  s    r"  r7  zIE_PacketRate.<lambda>&  r  r$  dl_time_unitc                     | j         dk    S r4  r  r  s    r"  r7  zIE_PacketRate.<lambda>(  r  r$  dl_max_packet_ratec                     | j         dk    S r4  r  r  s    r"  r7  zIE_PacketRate.<lambda>*  r  r$  r  N)r%  r&  r'  rN  r  r  rP  r   r   r   r   TimeUnitr   rb  r(  r$  r"  r  r    sH       DG%	)Q""AA)Q224I4IJJnh8LL..	0 	0$8!<<..	0 	0)Q224I4IJJnh8LL..	0 	0$8!<<..	0 	0|$$) KKKr$  r  c            
           e Zd ZdZdZej         edde           e	 e
ddd          d            e	 eddd	          d
            ed          gz   ZdS )IE_OuterHeaderRemovalzIE Outer Header Removalr   headerNr  r5   c                 *    | j         d uo
| j         dk    S r4  r  r  s    r"  r7  zIE_OuterHeaderRemoval.<lambda>5      184#7#HAHqL r$  pdu_session_containerr)   c                 *    | j         d uo
| j         dk    S r4  r  r  s    r"  r7  zIE_OuterHeaderRemoval.<lambda>7  r  r$  r  )r%  r&  r'  rN  r  r  rP  r	   OuterHeaderRemovalDescriptionr   r   r   rb  r(  r$  r"  r  r  /  s        $DG%h&CDD7D!44HH	J 	J"94CCHH	J 	J|$$) KKKr$  r  c                   X    e Zd ZdZdZdZej         edd           e	d          gz   ZdS )IE_RecoveryTimeStampzIE Recovery Time Stampr   r/   r  r   r  N)
r%  r&  r'  rN  r  r  r  rP  r   rb  r(  r$  r"  r  r  <  sK        #DGN%a  |$$) KKKr$  r  c                   6   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
            e	 e
dd          d            e	 e
dd          d            e	 e
dd          d            ed          gz   ZdS )IE_DLFlowLevelMarkingzIE DL Flow Level Markingr   r  r   r3   SCIr)   r  rL  c                     | j         S rI  r(  r  s    r"  r7  zIE_DLFlowLevelMarking.<lambda>M  s    !% r$  traffic_class_maskc                     | j         S rI  r(  r  s    r"  r7  zIE_DLFlowLevelMarking.<lambda>N  s    qu r$  service_class_indicatorc                     | j         S rI  r  r  s    r"  r7  zIE_DLFlowLevelMarking.<lambda>P  s    15 r$  r  c                     | j         S rI  r  r  s    r"  r7  zIE_DLFlowLevelMarking.<lambda>Q  s    AE r$  r  Nr%  r&  r'  rN  r  r  rP  r   r   r   r   rb  r(  r$  r"  r  r  F  s        %DG%	)Q""11?A66HH#7;;__MM#<a@@(	* 	*9a00//BB|$$
) 
KKKr$  r  c                       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            e
dd
dd           eddd            ed          gz   Zd
S )IE_HeaderEnrichmentzIE Header Enrichmentr   r  r   r-   header_typer  r1   name_lengthNrC  rN  )r  r   r  c                     | j         S rI  )r  r  s    r"  r7  zIE_HeaderEnrichment.<lambda>]  r  r$  r  value_lengthvaluec                     | j         S rI  )r  r  s    r"  r7  zIE_HeaderEnrichment.<lambda>_  s    q~ r$  r  )r%  r&  r'  rN  r  r  rP  r   r   
HeaderTyper   r   rb  r(  r$  r"  r  r  V  s        !DG%	'1a  ]FAz::mTsfEEEFB,C,CDDDndwGGGGR-E-EFFF|$$) KKKr$  r  c                       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   ZdS )IE_MeasurementInformationzIE Measurement Informationr   r  r   r-   MNOPr)   ISTMRADIINAMMBQEr  Nr  r(  r$  r"  r  r  d  s        'DG%	'1a  AAAAA|$$) KKKr$  r  c                   n    e Zd ZdZdZej         eddd           eddd           e	d          gz   Zd	S )
IE_NodeReportTypezIE Node Report Typer   r  r   r5   UPFRr)   r  Nr  r(  r$  r"  r	  r	  r  sY         DG%	'1a  A|$$) KKKr$  r	  c                      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            e	 edd          d            e	 edd          d            e	 eddd          d            e	 eddde          d            e	 eddd          d            e	 eddd           d            ed          gz   ZdS ) IE_RemoteGTP_U_PeerzIE Remote GTP-U Peerr   r  r   r/   NIr)   DIr  r  r  c                     | j         dk    S r4  r  r  s    r"  r7  zIE_RemoteGTP_U_Peer.<lambda>  r  r$  r  c                     | j         dk    S r4  r  r  s    r"  r7  zIE_RemoteGTP_U_Peer.<lambda>  r  r$  dest_interface_lengthc                     | j         dk    S r4  r  r  s    r"  r7  zIE_RemoteGTP_U_Peer.<lambda>  r   r$  r  c                     | j         dk    S r4  r  r  s    r"  r7  zIE_RemoteGTP_U_Peer.<lambda>  s    qtqy r$  dest_interfacer   c                     | j         dk    S r4  r  r  s    r"  r7  zIE_RemoteGTP_U_Peer.<lambda>      adai r$  network_instance_lengthnetwork_instancer  c                     | j         dk    S r4  r  r  s    r"  r7  zIE_RemoteGTP_U_Peer.<lambda>  r  r$  r  c                     | j         S rI  )r  r  s    r"  r7  zIE_RemoteGTP_U_Peer.<lambda>  s	    1J r$  r  c                     | j         dk    S r4  r  r  s    r"  r7  zIE_RemoteGTP_U_Peer.<lambda>  r  r$  r  N)r%  r&  r'  rN  r  r  rP  r   r   r   r   r!   r   r   r  r   rR  rb  r(  r$  r"  r  r  |  s       !DG%	)Q""q!q!q!q!++-@-@AA&!,,.A.ABB#:A>>,,	. 	.9a335H5HIIL)8Q8LMM	! 	! 	M3Q$68 8 8	! 	! 	N-r'J'JL L L	! 	! 	|$$-) KKKr$  r  c                   @    e Zd ZdZdZej         edd          gz   ZdS )
IE_UR_SEQNz
IE UR-SEQNr   r  r   Nr  r(  r$  r"  r  r    s9        DG%1) KKKr$  r  c                   F    e Zd ZdZdZej         eddd           gz   ZdS )IE_ActivatePredefinedRuleszIE Activate Predefined Rulesr   rN  r  c                     | j         S rI  r  r  s    r"  r7  z#IE_ActivatePredefinedRules.<lambda>      ah r$  r  Nr7  r(  r$  r"  r!  r!    sB        )DG%FB,>,>???) KKKr$  r!  c                   F    e Zd ZdZdZej         eddd           gz   ZdS )IE_DeactivatePredefinedRuleszIE Deactivate Predefined Rulesr   rN  r  c                     | j         S rI  r  r  s    r"  r7  z%IE_DeactivatePredefinedRules.<lambda>  r#  r$  r  Nr7  r(  r$  r"  r%  r%    sB        +DG%FB,>,>???) KKKr$  r%  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )	IE_FAR_Idz	IE FAR IDr   r4  r   r  NrE  r(  r$  r"  r(  r(    F        DG%q|$$) KKKr$  r(  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )	IE_QER_Idz	IE QER IDr   r4  r   r  NrE  r(  r$  r"  r+  r+    r)  r$  r+  c                   n    e Zd ZdZdZej         eddd           eddd           e	d	          gz   ZdS )
IE_OCIFlagszIE OCI Flagsr   r  Nr5   AOCIr   r)   r  r  r(  r$  r"  r-  r-    sY        DG%	'4##A|$$) KKKr$  r-  c                   n    e Zd ZdZdZej         eddd           eddd           e	d	          gz   ZdS )
 IE_PFCPAssociationReleaseRequestz#IE PFCP Association Release Requestr   r  Nr5   SARRr   r)   r  r  r(  r$  r"  r0  r0    sY        0DG%	'4##A|$$) KKKr$  r0  c                   p    e Zd ZdZdZej         eddde           e	ddd           e
d	          gz   Zd
S )IE_GracefulReleasePeriodzIE Graceful Release Periodr   release_timer_unitr   r-   release_timer_valuer   r1   r  Nr  r(  r$  r"  r3  r3    s]        'DG%);9EE&1--|$$) KKKr$  r3  c                   p    e Zd ZdZdZej         eddd           eddde	           e
d	          gz   Zd
S )
IE_PDNTypezIE PDN Typer   r  r   r1   pdn_typer   r-   r  N)r%  r&  r'  rN  r  r  rP  r   r   PDNTyperb  r(  r$  r"  r7  r7    s[        DG%	'1a  ZG44|$$) KKKr$  r7  c                   L   e Zd ZdZdZej         eddd           eddde	           e
 ed	d          d
            e
 edd          d            e
 edd          d            e
 edd          d            e
 edd          d            ed          gz   ZdS )IE_FailedRuleIdzIE Failed Rule IDr   r  r   r-   r  r  r1   pdr_idc                     | j         dk    S rA  r  r  s    r"  r7  zIE_FailedRuleId.<lambda>  r  r$  far_idc                 .    | j         dk    p
| j         dk    S )Nr)   r/   r>  r  s    r"  r7  zIE_FailedRuleId.<lambda>  s    16Q;#<!&1* r$  qer_idc                     | j         dk    S r  r>  r  s    r"  r7  zIE_FailedRuleId.<lambda>      !&A+ r$  urr_idc                     | j         dk    S )Nr-   r>  r  s    r"  r7  zIE_FailedRuleId.<lambda>  rC  r$  bar_idc                     | j         dk    S rl  r>  r  s    r"  r7  zIE_FailedRuleId.<lambda>  r  r$  r  N)r%  r&  r'  rN  r  r  rP  r   r   
RuleIDTyper   r   r   r   rb  r(  r$  r"  r;  r;    s       DG%	'1a  VUAz22Ha00..	0 	0(A..<<	> 	>(A..0E0EFF(A..0E0EFF8Q//..	0 	0|$$) KKKr$  r;  c                       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   ZdS )IE_TimeQuotaMechanismzIE Time Quota Mechanismr   r  r   r3   base_time_interval_typer  r+   intervalr  N)r%  r&  r'  rN  r  r  rP  r   r   BaseTimeIntervalr   rb  r(  r$  r"  rJ  rJ    sl        $DG%	'1a  .q:JKKQ|$$	) KKKr$  rJ  c                      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            e	 edd          d            e	 edd          d            e	 eddd           d            e	 eddd          d            e	 eddde          d            ed          gz   ZdS )!IE_UserPlaneIPResourceInformationz%IE User Plane IP Resource Informationr   spare1r   r)   ASSOSIASSONITEIDRIr-   r  r  
teid_rangec                     | j         dk    S rA  )rS  r  s    r"  r7  z*IE_UserPlaneIPResourceInformation.<lambda>  s    A r$  r  c                     | j         dk    S r4  r  r  s    r"  r7  z*IE_UserPlaneIPResourceInformation.<lambda>  r  r$  r  c                     | j         dk    S r4  r  r  s    r"  r7  z*IE_UserPlaneIPResourceInformation.<lambda>  r   r$  r  r  c                 r    | j         dz
  | j        dk    rdndz
  | j        dz  z
  | j        dz  z
  | j        z
  S )Nr)   r   r/   rY   )r  rS  r  r  rQ  r  s    r"  r7  z*IE_UserPlaneIPResourceInformation.<lambda>  sI    8a<A111ED1H&)*467h? r$  r  c                     | j         dk    S r4  )rR  r  s    r"  r7  z*IE_UserPlaneIPResourceInformation.<lambda>      ah!m r$  spare2Nr/   c                     | j         dk    S r4  rQ  r  s    r"  r7  z*IE_UserPlaneIPResourceInformation.<lambda>  rZ  r$  r  r   c                     | j         dk    S r4  r]  r  s    r"  r7  z*IE_UserPlaneIPResourceInformation.<lambda>!  rZ  r$  r  )r%  r&  r'  rN  r  r  rP  r   r   r   r   r   r!   rR  r   r  rb  r(  r$  r"  rO  rO    s       2DG%	(Aq!!1a  1a  1a  q!q!L!446M6MNN++-@-@AA&!,,,,	. 	.N-r(? (?@ @ @ $#	% 	% 	Iha((##	% 	% 	Lh?CC##	% 	% 	|$$/) KKKr$  rO  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )IE_UserPlaneInactivityTimerzIE User Plane Inactivity Timerr   timerr   r  NrE  r(  r$  r"  r`  r`  &  sF        +DG%!|$$) KKKr$  r`  c                   V    e Zd ZdZdZej         edd           edd          gz   ZdS )IE_MultiplierzIE Multiplierr   digitsr   exponentN)	r%  r&  r'  rN  r  r  rP  r   r   r(  r$  r"  rc  rc  /  sH        DG%!$$z1%%) KKKr$  rc  c                   @    e Zd ZdZdZej         edd          gz   ZdS )IE_AggregatedURR_IdzIE Aggregated URR IDr   r4  r   Nr  r(  r$  r"  rg  rg  8  s9        !DG%q) KKKr$  rg  c                   "   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            e	 e
dd          d            e	 e
dd          d            ed          gz   ZdS )IE_SubsequentVolumeQuotazIE Subsequent Volume Quotar   r  r   r1   rO  r)   rP  rQ  rR  c                     | j         dk    S r4  rT  r  s    r"  r7  z!IE_SubsequentVolumeQuota.<lambda>H  rU  r$  rV  c                     | j         dk    S r4  rX  r  s    r"  r7  z!IE_SubsequentVolumeQuota.<lambda>I  rY  r$  rZ  c                     | j         dk    S r4  r\  r  s    r"  r7  z!IE_SubsequentVolumeQuota.<lambda>J  r]  r$  r  Nr^  r(  r$  r"  ri  ri  @  s        'DG%	'1a  !Q!Q!QGQ//1G1GHHHa002H2HIIJ224J4JKK|$$	) 	KKKr$  ri  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )IE_SubsequentTimeQuotazIE Subsequent Time Quotar   r  r   r  NrE  r(  r$  r"  rn  rn  O  sF        %DG%!|$$) KKKr$  rn  c                   n    e Zd ZdZdZej         eddd           eddd           e	d	          gz   ZdS )
IE_RQIzIE RQIr   r  Nr5   r   r   r)   r  r  r(  r$  r"  rp  rp  X  Y        DG%	'4##1|$$) KKKr$  rp  c                   n    e Zd ZdZdZej         eddd           eddd           e	d	          gz   ZdS )
IE_QFIzIE QFIr   r  Nr+   r   r   r3   r  r  r(  r$  r"  rs  rs  b  rq  r$  rs  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )IE_QueryURRReferencezIE Query URR Referencer   	referencer   r  NrE  r(  r$  r"  ru  ru  l  sF        #DG%a  |$$) KKKr$  ru  c                   n    e Zd ZdZdZej         eddd           eddd           ed          gz   Zd	S )
$IE_AdditionalUsageReportsInformationz'IE Additional Usage Reports Informationr   AURIr   r)   reportsrE   r  Nr`  r(  r$  r"  rx  rx  u  sY        4DG%AAr""|$$) KKKr$  rx  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )IE_TrafficEndpointIdzIE Traffic Endpoint IDr   r4  r   r  Nr  r(  r$  r"  r|  r|    sF        #DG%	$|$$) KKKr$  r|  c                   f   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            e	 e
dd          d            e	 e
dd          d            e	 e
dd          d            ed          g
z   ZdS )IE_MACAddresszIE MAC Addressr   r  r   r/   UDESr)   USOUDESTSOUR
source_macc                     | j         dk    S r4  )r  r  s    r"  r7  zIE_MACAddress.<lambda>  r  r$  destination_macc                     | j         dk    S r4  )r  r  s    r"  r7  zIE_MACAddress.<lambda>  r  r$  upper_source_macc                     | j         dk    S r4  )r  r  s    r"  r7  zIE_MACAddress.<lambda>  r  r$  upper_destination_macc                     | j         dk    S r4  )r  r  s    r"  r7  zIE_MACAddress.<lambda>  r  r$  r  N)r%  r&  r'  rN  r  r  rP  r   r   r   r   rb  r(  r$  r"  r~  r~    s       DG%	'1a  AAAA,22..	0 	0"3Q77..	0 	0"4a88..	0 	0"91==..	0 	0|$$) KKKr$  r~  c                   
   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	 eddd          d            e	 eddd          d            e	 eddd          d            e	 e
dd          d            e	 e
dd          d            ed          gz   ZdS )IE_C_TAGzIE C-TAGr   r  r   r1   VIDr)   DEIPCPcvid_value_hir/   c                     | j         dk    S r4  r  r  s    r"  r7  zIE_C_TAG.<lambda>  s    quz r$  r  c                     | j         dk    S rA  r  r  s    r"  r7  zIE_C_TAG.<lambda>      aeqj r$  dei_flagc                     | j         dk    S r4  r  r  s    r"  r7  zIE_C_TAG.<lambda>      quz r$  r  c                     | j         dk    S rA  r  r  s    r"  r7  zIE_C_TAG.<lambda>  r  r$  	pcp_valuer-   c                     | j         dk    S r4  r  r  s    r"  r7  zIE_C_TAG.<lambda>      
 r$  spare_4c                     | j         dk    S rA  r  r  s    r"  r7  zIE_C_TAG.<lambda>  r  r$  cvid_value_lowc                     | j         dk    S r4  r  r  s    r"  r7  zIE_C_TAG.<lambda>      15A: r$  spare_5c                     | j         dk    S rA  r  r  s    r"  r7  zIE_C_TAG.<lambda>      AEQJ r$  r  Nr  r(  r$  r"  r  r    s       DG%	)Q""111H_a++-A-A	C 	C)Q224H4HII*a335I5IJJ)Q224H4HII+q!446J6JKK)Q224H4HII#3Q77--	/ 	/9a002F2FGG|$$!) KKKr$  r  c                   
   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	 eddd          d            e	 eddd          d            e	 eddd          d            e	 e
dd          d            e	 e
dd          d            ed          gz   ZdS )IE_S_TAGzIE S-TAGr   r  r   r1   r  r)   r  r  svid_value_hir/   c                     | j         dk    S r4  r  r  s    r"  r7  zIE_S_TAG.<lambda>  r  r$  r  c                     | j         dk    S rA  r  r  s    r"  r7  zIE_S_TAG.<lambda>  r  r$  r  c                     | j         dk    S r4  r  r  s    r"  r7  zIE_S_TAG.<lambda>  r  r$  r  c                     | j         dk    S rA  r  r  s    r"  r7  zIE_S_TAG.<lambda>  r  r$  r  r-   c                     | j         dk    S r4  r  r  s    r"  r7  zIE_S_TAG.<lambda>  r  r$  r  c                     | j         dk    S rA  r  r  s    r"  r7  zIE_S_TAG.<lambda>  r  r$  svid_value_lowc                     | j         dk    S r4  r  r  s    r"  r7  zIE_S_TAG.<lambda>  r  r$  r  c                     | j         dk    S rA  r  r  s    r"  r7  zIE_S_TAG.<lambda>  r  r$  r  Nr  r(  r$  r"  r  r    s       DG%	)Q""111/1a88--	/ 	/)Q224H4HII*a335I5IJJ)Q224H4HII+q!446J6JKK)Q224H4HII#3Q77--	/ 	/9a002F2FGG|$$!) KKKr$  r  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )IE_EthertypezIE Ethertyper   r  r   r  Nr  r(  r$  r"  r  r    sF        DG%
61|$$) KKKr$  r  c                       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   Zd
S )IE_ProxyingzIE Proxyingr   r  r   r3   INSr)   ARPr  Nr  r(  r$  r"  r  r    sj        DG%	'1a  11|$$	) KKKr$  r  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )IE_EthernetFilterIdzIE Ethernet Filter IDr   r4  r   r  NrE  r(  r$  r"  r  r    sF        "DG%q|$$) KKKr$  r  c                   n    e Zd ZdZdZej         eddd           eddd           e	d          gz   Zd	S )
IE_EthernetFilterPropertieszIE Ethernet Filter Propertiesr   r  r   r5   BIDEr)   r  Nr  r(  r$  r"  r  r    sY        *DG%	'1a  A|$$) KKKr$  r  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )!IE_SuggestedBufferingPacketsCountz$IE Suggested Buffering Packets Countr   r  r   r  Nr  r(  r$  r"  r  r    sF        1DG%	'1|$$) KKKr$  r  c                   F   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            e	 eddd           d            e	 e
dddd          d            e	 eddd           d            e	 e
dddd          d            e	 eddd           d            e	 e
ddd d          d!            e	 ed dd"           d#            ed$          gz   ZdS )%	IE_UserIdz
IE User IDr   r  r   r/   NAIFr)   MSISDNFIMEIFIMSIFimsi_lengthNimsirC  r  c                     | j         dk    S r4  r  r  s    r"  r7  zIE_UserId.<lambda>      agl r$  r  c                     | j         S rI  )r  r  s    r"  r7  zIE_UserId.<lambda>      !- r$  r  c                     | j         dk    S r4  r  r  s    r"  r7  zIE_UserId.<lambda>	  r  r$  imei_lengthimeic                     | j         dk    S r4  r  r  s    r"  r7  zIE_UserId.<lambda>  r  r$  c                     | j         S rI  )r  r  s    r"  r7  zIE_UserId.<lambda>  r  r$  c                     | j         dk    S r4  r  r  s    r"  r7  zIE_UserId.<lambda>  r  r$  msisdn_lengthmsisdnc                     | j         dk    S r4  r  r  s    r"  r7  zIE_UserId.<lambda>  r  r$  c                     | j         S rI  )r  r  s    r"  r7  zIE_UserId.<lambda>  s    AO r$  c                     | j         dk    S r4  r  r  s    r"  r7  zIE_UserId.<lambda>  r  r$  
nai_lengthnaic                     | j         dk    S r4  r  r  s    r"  r7  zIE_UserId.<lambda>  r  r$  c                     | j         S rI  )r  r  s    r"  r7  zIE_UserId.<lambda>  s     r$  c                     | j         dk    S r4  r  r  s    r"  r7  zIE_UserId.<lambda>  r  r$  r  )r%  r&  r'  rN  r  r  rP  r   r   r   r   r   rb  r(  r$  r"  r  r    s       DG%	'1a  AAq!!!Q!QM-SIII""	$ 	$ 	K0G0GHHH""	$ 	$ 	M-SIII""	$ 	$ 	K0G0GHHH""	$ 	$ 	M/48MMM$$	& 	& 	K"2K2KLLL$$	& 	& 	M,3GGG!!	# 	# 	Kr/E/EFFF!!	# 	# 	|$$=) KKKr$  r  c                   n    e Zd ZdZdZej         eddd           eddd           e	d          gz   Zd	S )
 IE_EthernetPDUSessionInformationz#IE Ethernet PDU Session Informationr   r  r   r5   ETHIr)   r  Nr  r(  r$  r"  r  r     sY        0DG%	'1a  A|$$) KKKr$  r  c            
           e Zd ZdZdZej         edddd           edd e	dd	          d
            e
d          gz   ZdS )IE_MACAddressesDetectedzIE MAC Addresses Detectedr   num_macsNmacsrC  ri  r  macr   c                     | j         S rI  r  r  s    r"  r7  z IE_MACAddressesDetected.<lambda>0      AJ r$  ru  r  r%  r&  r'  rN  r  r  rP  r   r   r   rb  r(  r$  r"  r  r  *  sy        &DG%j$SAAAvtXXeQ%7%7"6"6	8 	8 	8|$$	) KKKr$  r  c            
           e Zd ZdZdZej         edddd           edd e	dd	          d
            e
d          gz   ZdS )IE_MACAddressesRemovedzIE MAC Addresses Removedr   r  Nr  rC  r  r  r   c                     | j         S rI  r  r  s    r"  r7  zIE_MACAddressesRemoved.<lambda>;  r  r$  ru  r  r  r(  r$  r"  r  r  5  sy        %DG%j$SAAAvtXXeQ%7%7"6"6	8 	8 	8|$$	) KKKr$  r  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )IE_EthernetInactivityTimerzIE Ethernet Inactivity Timerr   ra  r   r  NrE  r(  r$  r"  r  r  @  sF        )DG%!|$$) KKKr$  r  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )IE_EventQuotazIE Event Quotar   rx  r   r  NrE  r(  r$  r"  r  r  I  sF        DG%""|$$) KKKr$  r  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )IE_EventThresholdzIE Event Thresholdr   ry  r   r  NrE  r(  r$  r"  r  r  R  sG        DG%"A&&|$$) KKKr$  r  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )IE_SubsequentEventQuotazIE Subsequent Event Quotar   subsequent_event_quotar   r  NrE  r(  r$  r"  r  r  [  sG        &DG%)1--|$$) KKKr$  r  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )IE_SubsequentEventThresholdzIE Subsequent Event Thresholdr   subsequent_event_thresholdr   r  NrE  r(  r$  r"  r  r  d  sG        *DG%-q11|$$) KKKr$  r  c                      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           e
ddd            edd           e	dddd           e
ddd            e	dddd           e
ddd            ed          gz   ZdS )IE_TraceInformationzIE Trace Informationr   mcc_digit_2r   r/   mcc_digit_1mnc_digit_3mcc_digit_3mnc_digit_2mnc_digit_1trace_idtriggering_events_lengthNtriggering_eventsrC  r  r  c                     | j         S rI  )r  r  s    r"  r7  zIE_TraceInformation.<lambda>}  s	    !*D r$  r  session_trace_depthlist_of_interfaces_lengthlist_of_interfacesc                     | j         S rI  )r  r  s    r"  r7  zIE_TraceInformation.<lambda>  s	    !*E r$  ip_address_length
ip_addressc                     | j         S rI  )r  r  s    r"  r7  zIE_TraceInformation.<lambda>  s	    !*= r$  r  )r%  r&  r'  rN  r  r  rP  r   r   r   r   r   rb  r(  r$  r"  r  r  m  sz        "DG%1%%1%%1%%1%%1%%1%%
A&&0$ 3	> 	> 	>' D D	F 	F 	F	'++14 4#	? 	? 	?(" E E	G 	G 	G)4 ,#	7 	7 	7L" = =	? 	? 	?|$$+) KKKr$  r  c                   F    e Zd ZdZdZej         eddd           gz   ZdS )IE_FramedRoutezIE Framed-Router   framed_router  c                     | j         S rI  r  r  s    r"  r7  zIE_FramedRoute.<lambda>  s    ah r$  r  Nr7  r(  r$  r"  r  r    sB        DG%NB4F4FGGG) KKKr$  r  c                   F    e Zd ZdZdZej         eddd           gz   ZdS )IE_FramedRoutingzIE Framed-Routingr   framed_routingr  c                     | j         S rI  r  r  s    r"  r7  zIE_FramedRouting.<lambda>  s     r$  r  Nr7  r(  r$  r"  r  r    sC        DG%$b6H6HIII) KKKr$  r  c                   F    e Zd ZdZdZej         eddd           gz   ZdS )IE_FramedIPv6RoutezIE Framed-IPv6-Router   framed_ipv6_router  c                     | j         S rI  r  r  s    r"  r7  zIE_FramedIPv6Route.<lambda>  s    18 r$  r  Nr7  r(  r$  r"  r  r    sC        !DG%'9K9KLLL) KKKr$  r  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )IE_EventTimeStampzIE Event Time Stampr   r  r   r  NrE  r(  r$  r"  r  r    sF         DG%a  |$$) KKKr$  r  c                   T    e Zd ZdZdZej         edd           ed          gz   ZdS )IE_AveragingWindowzIE Averaging Windowr   averaging_windowr   r  NrE  r(  r$  r"  r  r    sG         DG%#Q''|$$) KKKr$  r  c                   n    e Zd ZdZdZej         eddd           eddd           e	d          gz   Zd	S )
IE_PagingPolicyIndicatorzIE Paging Policy Indicatorr   r  r   r1   ppir-   r  Nr  r(  r$  r"  r   r     sY        'DG%	'1a  1|$$) KKKr$  r   c                   F    e Zd ZdZdZej         eddd           gz   ZdS )
IE_APN_DNNz
IE APN/DNNr   apn_dnnr  c                     | j         S rI  r  r  s    r"  r7  zIE_APN_DNN.<lambda>  s    AH r$  r  Nr  r(  r$  r"  r#  r#    sB        DG%y"2D2DEEE) KKKr$  r#  c                   p    e Zd ZdZdZej         eddd           eddde	           e
d	          gz   Zd
S )IE_3GPP_InterfaceTypezIE 3GPP Interface Typer   r  r   r+   interface_typer  r3   r  N)r%  r&  r'  rN  r  r  rP  r   r   InterfaceTyperb  r(  r$  r"  r'  r'    s\        #DG%	)Q""%vq-@@|$$) KKKr$  r'  c                   ^    e Zd ZdZdZej         edde           e	ddd           gz   ZdS )r  zEnterpise SpecificNenterprise_iddatar  c                     | j         dz
  S r  r  r  s    r"  r7  zIE_EnterpriseSpecific.<lambda>  s    ahl r$  r  )
r%  r&  r'  rN  r  r  rP  r
   r"   r   r(  r$  r"  r  r    sT        DG%.EFFFB,B,BCCC) KKKr$  r  c                   F    e Zd ZdZdZej         eddd           gz   ZdS )r  zIE not implementedr   r,  r  c                     | j         S rI  r  r  s    r"  r7  zIE_NotImplemented.<lambda>  r#  r$  r  Nr7  r(  r$  r"  r  r    sB        DG%FB,>,>???) KKKr$  r  r   )r   r   r   r   r   r   r   c                   @    e Zd ZdZ ed e            ge          gZdS )PFCPHeartbeatRequestzPFCP Heartbeat Requestr  N)r%  r&  r'  rN  r   r  r  rP  r(  r$  r"  r1  r1  	  s8        #D	$8$8$:$:#;]KKKKKr$  r1  c                   F    e Zd ZdZ ed e            ge          gZd ZdS )PFCPHeartbeatResponsezPFCP Heartbeat Responser  c                 ,    t          |t                    S rI  )rJ  r1  rL  s     r"  rK  zPFCPHeartbeatResponse.answers	  s    %!5666r$  N)	r%  r&  r'  rN  r   r  r  rP  rK  r(  r$  r"  r3  r3  	  sM        $D	$8$8$:$:#;]KKK7 7 7 7 7r$  r3  c                   .    e Zd ZdZ edg e          gZdS )PFCPPFDManagementRequestzPFCP PFD Management Requestr  Nr%  r&  r'  rN  r   r  rP  r(  r$  r"  r6  r6  	  )        (D"?9b-@@AKKKr$  r6  c                   4    e Zd ZdZ edg e          gZd ZdS )PFCPPFDManagementResponsezPFCP PFD Management Responser  c                 ,    t          |t                    S rI  )rJ  r6  rL  s     r"  rK  z!PFCPPFDManagementResponse.answers	      %!9:::r$  Nr%  r&  r'  rN  r   r  rP  rK  r(  r$  r"  r:  r:  	  >        )D"?9b-@@AK; ; ; ; ;r$  r:  c                   .    e Zd ZdZ edg e          gZdS )PFCPAssociationSetupRequestzPFCP Association Setup Requestr  Nr7  r(  r$  r"  r@  r@  	  s)        +D"?9b-@@AKKKr$  r@  c                   4    e Zd ZdZ edg e          gZd ZdS )PFCPAssociationSetupResponsezPFCP Association Setup Responser  c                 ,    t          |t                    S rI  )rJ  r@  rL  s     r"  rK  z$PFCPAssociationSetupResponse.answers	  s    %!<===r$  Nr=  r(  r$  r"  rB  rB  	  s>        ,D"?9b-@@AK> > > > >r$  rB  c                   .    e Zd ZdZ edg e          gZdS )PFCPAssociationUpdateRequestzPFCP Association Update Requestr  Nr7  r(  r$  r"  rE  rE  	  s)        ,D"?9b-@@AKKKr$  rE  c                   4    e Zd ZdZ edg e          gZd ZdS )PFCPAssociationUpdateResponsez PFCP Association Update Responser  c                 ,    t          |t                    S rI  )rJ  rE  rL  s     r"  rK  z%PFCPAssociationUpdateResponse.answers	  s    %!=>>>r$  Nr=  r(  r$  r"  rG  rG  	  s>        -D"?9b-@@AK? ? ? ? ?r$  rG  c                   .    e Zd ZdZ edg e          gZdS )PFCPAssociationReleaseRequestr   r  Nr7  r(  r$  r"  rJ  rJ  	  s)        -D"?9b-@@AKKKr$  rJ  c                   4    e Zd ZdZ edg e          gZd ZdS )PFCPAssociationReleaseResponsez!PFCP Association Release Responser  c                 ,    t          |t                    S rI  )rJ  rJ  rL  s     r"  rK  z&PFCPAssociationReleaseResponse.answers	      %!>???r$  Nr=  r(  r$  r"  rL  rL  	  sC        .D"?9b-@@AK@ @ @ @ @r$  rL  c                   .    e Zd ZdZ edg e          gZdS )PFCPVersionNotSupportedResponsez#PFCP Version Not Supported Responser  Nr7  r(  r$  r"  rP  rP  	  s)        0D"?9b-@@AKKKr$  rP  c                   .    e Zd ZdZ edg e          gZdS )PFCPNodeReportRequestzPFCP Node Report Requestr  Nr7  r(  r$  r"  rR  rR  	  s)        %D"?9b-@@AKKKr$  rR  c                   4    e Zd ZdZ edg e          gZd ZdS )PFCPNodeReportResponsezPFCP Node Report Responser  c                 ,    t          |t                    S rI  )rJ  rR  rL  s     r"  rK  zPFCPNodeReportResponse.answers	  s    %!6777r$  Nr=  r(  r$  r"  rT  rT  	  s>        &D"?9b-@@AK8 8 8 8 8r$  rT  c                   .    e Zd ZdZ edg e          gZdS )PFCPSessionSetDeletionRequestz!PFCP Session Set Deletion Requestr  Nr7  r(  r$  r"  rW  rW  	  )        .D"?9b-@@AKKKr$  rW  c                   4    e Zd ZdZ edg e          gZd ZdS )PFCPSessionSetDeletionResponsez"PFCP Session Set Deletion Responser  c                 ,    t          |t                    S rI  )rJ  rW  rL  s     r"  rK  z&PFCPSessionSetDeletionResponse.answers	  rN  r$  Nr=  r(  r$  r"  rZ  rZ  	  sC        /D"?9b-@@AK@ @ @ @ @r$  rZ  c                   .    e Zd ZdZ edg e          gZdS )PFCPSessionEstablishmentRequestz"PFCP Session Establishment Requestr  Nr7  r(  r$  r"  r]  r]  	  s)        /D"?9b-@@AKKKr$  r]  c                   4    e Zd ZdZ edg e          gZd ZdS ) PFCPSessionEstablishmentResponsez#PFCP Session Establishment Responser  c                 ,    t          |t                    S rI  )rJ  r]  rL  s     r"  rK  z(PFCPSessionEstablishmentResponse.answers	  s    %!@AAAr$  Nr=  r(  r$  r"  r_  r_  	  sC        0D"?9b-@@AKB B B B Br$  r_  c                   .    e Zd ZdZ edg e          gZdS )PFCPSessionModificationRequestz!PFCP Session Modification Requestr  Nr7  r(  r$  r"  rb  rb  
  rX  r$  rb  c                   4    e Zd ZdZ edg e          gZd ZdS )PFCPSessionModificationResponsez"PFCP Session Modification Responser  c                 ,    t          |t                    S rI  )rJ  rb  rL  s     r"  rK  z'PFCPSessionModificationResponse.answers

  s    %!?@@@r$  Nr=  r(  r$  r"  rd  rd  
  sC        /D"?9b-@@AKA A A A Ar$  rd  c                   .    e Zd ZdZ edg e          gZdS )PFCPSessionDeletionRequestzPFCP Session Deletion Requestr  Nr7  r(  r$  r"  rg  rg  
  s)        *D"?9b-@@AKKKr$  rg  c                   4    e Zd ZdZ edg e          gZd ZdS )PFCPSessionDeletionResponsezPFCP Session Deletion Responser  c                 ,    t          |t                    S rI  )rJ  rg  rL  s     r"  rK  z#PFCPSessionDeletionResponse.answers
  s    %!;<<<r$  Nr=  r(  r$  r"  ri  ri  
  s>        +D"?9b-@@AK= = = = =r$  ri  c                   .    e Zd ZdZ edg e          gZdS )PFCPSessionReportRequestzPFCP Session Report Requestr  Nr7  r(  r$  r"  rl  rl  
  r8  r$  rl  c                   4    e Zd ZdZ edg e          gZd ZdS )PFCPSessionReportResponsezPFCP Session Report Responser  c                 ,    t          |t                    S rI  )rJ  rl  rL  s     r"  rK  z!PFCPSessionReportResponse.answers$
  r<  r$  Nr=  r(  r$  r"  rn  rn   
  r>  r$  rn  ie"  )dport)sport)rp  rq  )r1  )r  r  r  r  (  __doc__r  scapy.compatr   r   scapy.errorr   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   scapy.layers.inetr    scapy.layers.inet6r!   
scapy.datar"   scapy.packetr#   r$   r%   r&   scapy.volatiler'   r(   rO  r  r  r  r  r  r<  r  r  r  rw  r  r  r   r9  rH  rM  r)  objectr  r*  rR  rb  rs  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  r3  r9  r>  rB  rD  rG  rJ  rN  r`  rc  rf  rk  rm  ro  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rJ  rO  rb  re  ry  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-  r0  r3  r7  r;  rJ  rO  r`  rc  rg  ri  rn  rp  rs  ru  rx  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  r1  r3  r6  r:  r@  rB  rE  rG  rJ  rL  rP  rR  rT  rW  rZ  r]  r_  rb  rd  rg  ri  rl  rn  r(  r$  r"  <module>r|     sG<     ! ! ! ! ! ! ! !      H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H H " ! ! ! ! ! ' ' ' ' ' ' . . . . . .            + + + + + + + +   	
 " # # $ $ & (   & '  '!" (#$ 	''"# !/  4b
zb
|b
 ub
 |	b

 b
 b
 |b
 |b
 }b
 |b
 b
 &b
 3b
 b
 b
  !b
" #b
 b
$ %b
& 'b
( )b
* +b
, -b
. /b
0 1b
2 3b
4 5b
6 7b
8 9b
: ;b
< =b
> !?b
@ Ab
B Cb
D Eb
 b
 b
F %Gb
H #Ib
J #Kb
L Mb
N Ob
P Qb
R Sb
T Ub
V Wb
X Yb
Z [b
\ +]b
^ *_b
` ab
b -cb
d eb
f gb
 b
 b
h "ib
j kb
l mb
n &ob
p qb
r sb
t ub
v wb
x yb
z 	{b
| }b
~ b
@ Ab
B Cb
D 	Eb
F Gb
H Ib
 b
 b
J +Kb
L Mb
N Ob
P Qb
R &Sb
T Ub
V Wb
X Yb
Z 
[b
\ ]b
^ 6_b
` 2ab
b /cb
d eb
f gb
h ib
j kb
 b
 b
l mb
n 3ob
p qb
r sb
t ub
v wb
x !yb
z {b
| }b
~ b
@ Ab
B Cb
D Eb
F Gb
H !Ib
J 	"Kb
L 	Mb
 b
 b
N 	)Ob
P 	Qb
R Sb
T 	(Ub
V 	$Wb
X 	&Yb
Z [b
\ ]b
^ _b
` 	+ab
b 	"cb
d eb
f 	gb
h 	ib
j 	-kb
l 	&mb
n 	ob
 b
 b
p qb
r 	sb
t 	"ub
v 	 wb
x yb
z {b
| 	}b
~ 	/b
@ 	"Ab
B 	#Cb
D 	"Eb
F 	"Gb
H 	Ib
J 	!Kb
L Mb
N Ob
P Qb
 b
 b
R Sb
T Ub
V 	Wb
X 	%Yb
Z 	,[b
\ ]b
^ 	+_b
` 	'ab
b 	!cb
d 	 eb
f 	$gb
h 	%ib
j kb
l 	mb
n 	!ob
p 	%qb
r 	sb
 b
t 
					"		Cb
 b
 b
Hz  #	
       # * ' , #     !( 	     	   	 
  	 
! 
!   
    	 	 	 	 v

    
   
vz v w	
 w y w w 6 6 8  $ &    !(    f    5  5  5  5  5?F  5  5  5F    [   *& & & & &X & & &"% % % % % % % %       ov   "    '       ;   
    [   
    ;   
    k   
    {   
    ;   
    ;   
    K   
    ;   
    ;   
    K   
    {   
    ;   
    ;   
    ;   
    ;   
    ;   
    ;   
       
    K   
    K   
    K   
       
    +   
       
       
       
    K   
    K   
       
    K   
    {   
    K   
    [   
       
    {   
       
    {   
    {   
    k   
    K   
    +   
    w              w   (           G   @    w       G       W       W       '       G       w              w              7                     7   .	 	 	 	 	W 	 	 	
 
 
 
 
G 
 
 
    W       '       g       G   :    W          .    w       W          *	 	 	 	 	 	 	 	                         w              w           "A A A A AW A A AH	 	 	 	 	7 	 	 	    G   0    7          2    7       W       7       '       '       7       W       7       7                     g       W   >           G   
 
 
 
 
' 
 
 
    w   	 	 	 	 	 	 	 	    w       G   *
 
 
 
 
G 
 
 
    7       G        '                     '   :                  7                     '       w       w              g   $    G          <    '       G       '       w       W       W       W       7       7       7       G   *    w   .    w   .    7       '       '       '          " " " " " " " "J    w       g       W              G              g       '       '   <    W       w                            w              G       G          a|ava |a 	a
 a |a |a }a |a a %a a a a a  !a" #a a$ %a& 'a( )a* +a, -a. /a0 1a2 3a4 5a6 7a8 9a: ;a<  =a> ?a@ AaB CaD $Ea a aF "GaH "IaJ KaL MaN OaP QaR SaT UaV WaX YaZ )[a\ (]a^ _a` *aab cad eaf !ga a ah iaj 	kal %man oap 	qar sat uav wax 	yaz {a| }a~ a@ AaB 	CaD EaF GaH *Ia a aJ KaL MaN OaP $QaR SaT UaV WaX 
YaZ [a\ ]a^ _a` aab 	cad eaf gah iaj ka a al man oap 	qar sat uav  wax yaz {a| }a~ a@ AaB CaD EaF  GaH 	"IaJ 	KaL 	&Ma a aN 	OaP QaR 	'SaT 	#UaV 	%WaX YaZ [a\ ]a^ 	)_a` 	!aab cad eaf 	gah 	*iaj 	$kal 	man oa a ap 	qar 	!sat 	uav wax yaz 	{a| 	-}a~ 	!a@ 	"AaB 	!CaD 	!EaF 	GaH 	 IaJ KaL MaN OaP Qa a aR SaT 	UaV 	$WaX 	*YaZ [a\ 	)]a^ 	&_a` 	 aab 	cad 	#eaf 	$gah iaj 	kal 	 man 	$oap 	qar sa at 
				!		Aa a a	Z    6   7 7 7 7 7F 7 7 7B B B B Bv B B B
; ; ; ; ; ; ; ;B B B B B& B B B
> > > > >6 > > >B B B B B6 B B B
? ? ? ? ?F ? ? ?B B B B BF B B B
@ @ @ @ @V @ @ @B B B B Bf B B BB B B B BF B B B
8 8 8 8 8V 8 8 8B B B B BF B B B
@ @ @ @ @V @ @ @B B B B Bf B B B
B B B B Bv B B BB B B B BV B B B
A A A A Af A A AB B B B B B B B
= = = = =& = = =B B B B Bv B B B
; ; ; ; ; ; ; ; sD % % % % sD % % % % CT . . . . D&Q 7 7 7 7 D'a 8 8 8 8 D* ; ; ; ; D+! < < < < D-A > > > > D.Q ? ? ? ? D.Q ? ? ? ? D/a @ @ @ @ D/a @ @ @ @ D0r B B B B D1 C C C C D'b 9 9 9 9 D(r : : : : D/b A A A A D0r B B B B D1 C C C C D2 D D D D D0r B B B B D1 C C C C D,2 > > > > D-B ? ? ? ? D* < < < < D+" = = = =  A! + + + + + +r$  