
    h:                         d Z ddlmZmZ ddlmZmZmZmZ ddl	m
Z
mZmZ ddlmZmZ  G d de          Z G d d	e          Z eed
             eee            eee           dS )ag  
.. centered::
    NOTICE
    This software/technical data was produced for the U.S. Government
    under Prime Contract No. NASA-03001 and JPL Contract No. 1295026
    and is subject to FAR 52.227-14 (6/87) Rights in Data General,
    and Article GP-51, Rights in Data  General, respectively.
    This software is publicly released under MITRE case #12-3054
    )Packetbind_layers)ByteEnumField	ByteFieldConditionalFieldStrLenField)SDNV2FieldLenFieldSDNV2LenFieldSDNV2)LTPltp_bind_payloadc                      e Zd Zd Z edd           edd           edd           edd           edd           ed	d           ed
d           edd           edd           edd           edd           edd           edd           edd           edd           e edd          d            e edd          d           gZd Z	dS )BPversion   	ProcFlagsr   BlockLenNDSODSSOSSOSSSORTSORTSSOCSOCSSOCTCTSNLTDLFOc                     | j         dz  S N   r   xs    T/mounts/lovelace/software/anaconda3/lib/python3.11/site-packages/scapy/contrib/bp.py<lambda>zBP.<lambda>+       {T)     ADULc                     | j         dz  S r"   r$   r%   s    r'   r(   zBP.<lambda>-   r)   r*   c                 `   d}| j         dz  r|dz  }| j         dz  r|dz  }| j         dz  r|dz  }| j         dz  r|d	z  }| j         d
z  r|dz  }| j         dz  r|dz  }| j         dz  }|dz	  }d}|dk    r|dz  }|dk    r|dz  }|dk    r|dz  }|dz  r|dz  }|dz  r|dz  }|dz  r|dz  }|dz  r|dz  }|dz  r|dz  }|dz  r|d z  }|dz  r|d!z  }|r|d"|z   z  }|d#z  }| j        dk    r|d$z  }n|d%z  }|d&z  }| j         dz  r
|d'z  }|d(z  }|                     |          t          gfS ))NzBP(%version%) flags(r#   z FR   z AR   z DF   z CT   z S    z ACKMEi      r   zB zN zE i  zSRR: (i    zRec i @  zCA i   zFWD i   zDLV i   zDEL z) z Pr: z ) len(%BlockLen%) zKCBHE: d[%DSO%,%DSSO%] s[%SSO%, %SSSO%] r[%RTSO%, %RTSSO%] c[%CSO%, %CSSO%] z	dl[%DL%] zct[%CT%] ctsn[%CTSN%] lt[%LT%] z	fo[%FO%] z
tl[%ADUL%])r   r   sprintfr   )selftmpRAWCOSCOScos_tmps        r'   	mysummaryzBP.mysummary1   s   $NT! 	5LCNT! 	5LCNT! 	5LCNT! 	5LCNT! 	4KCNT! 	8OC.6)k$;;tOG$;;tOG$;;tOG= 	 xG= 	vG= 	uG= 	vG= 	vG= 	vG= 	tOG 	%7W$$C$$7a<<``CC;C00NT! 	 ;C<C||C  3%''r*   )
__name__
__module____qualname__namer   r   r
   r   fields_descr;    r*   r'   r   r      sR       D9Y--5a(( =T225??5##5??5##5##5!$$5??5##5q>>5##5q>>5q>>##EE$NN 5+ 5+ , ,##EE&!$4$4 7+ 7+ , ,#K*3( 3( 3( 3( 3(r*   r   c            	           e Zd Z eddddi           edd           eddd	           edd
d d          gZd ZdS )BPBLOCKTyper#   zBundle payload blockr   r   r   Nload)	length_ofr4   c                     | j         S )N)r   pkts    r'   r(   zBPBLOCK.<lambda>l   s    s| r*   i  )length_from
max_lengthc                 ,    |                      d          S )Nz2BPBLOCK(%Type%) Flags: %ProcFlags% Len: %BlockLen%)r5   )r6   s    r'   r;   zBPBLOCK.mysummaryp   s    ||PQQQr*   )	r<   r=   r>   r   r   r	   r   r@   r;   rA   r*   r'   rC   rC   g   s         =Q0F,GHH5a((%%j$&III;vr+C+C*/1 1 1KR R R R Rr*   rC   c                     | j         dk    S r"   )DATA_ClientServiceIDrH   s    r'   r(   r(   t   s    !9Q!> r*   N)__doc__scapy.packetr   r   scapy.fieldsr   r   r   r   scapy.contrib.sdnvr	   r
   r   scapy.contrib.ltpr   r   r   rC   rA   r*   r'   <module>rT      sC    - , , , , , , ,            G G G G G G G G G G 3 3 3 3 3 3 3 3J( J( J( J( J( J( J( J(Z
R 
R 
R 
R 
Rf 
R 
R 
R  >> ? ? ? B    GW     r*   