a
    kÄ#d:  ã                   @   s–   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„ deƒZG dd	„ d	eƒZeed
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                   @   s¸   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d„ ƒeeddƒdd„ ƒgZdd„ Z	dS )ÚBPÚversioné   Ú	ProcFlagsr   ÚBlockLenNZDSOZDSSOZSSOZSSSOZRTSOZRTSSOZCSOZCSSOZCTZCTSNÚLTÚDLZFOc                 C   s
   | j d@ S ©Né   ©r   ©Úx© r   úG/var/www/html/gsl.tools/lib/python3.9/site-packages/scapy/contrib/bp.pyÚ<lambda>+   s    zBP.<lambda>ZADULc                 C   s
   | j d@ S r   r   r   r   r   r   r   -   s    c                 C   s˜  d}| j d@ r|d7 }| j d@ r(|d7 }| j d@ r:|d7 }| j d@ rL|d	7 }| j d
@ r^|d7 }| j d@ rp|d7 }| j d@ }|d? }d}|dkr–|d7 }|dkr¦|d7 }|dkr¶|d7 }|d@ rÆ|d7 }|d@ rÖ|d7 }|d@ ræ|d7 }|d@ rö|d7 }|d@ �r|d7 }|d@ �r|d 7 }|d@ �r,|d!7 }|�r>|d"| 7 }|d#7 }| jdk�r\|d$7 }n|d%7 }|d&7 }| j d@ �rˆ|d'7 }|d(7 }|  |¡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ÚtmpZRAWCOSZCOSZcos_tmpr   r   r   Ú	mysummary1   s^    










zBP.mysummary)
Ú__name__Ú
__module__Ú__qualname__Únamer   r
   r	   r   Úfields_descr&   r   r   r   r   r      s(   ïr   c                	   @   sL   e Zd Zeddddiƒeddƒedddd	�edd
dd„ dd�gZdd„ ZdS )ÚBPBLOCKÚTyper   zBundle payload blockr   r   r   NÚload)Z	length_ofr"   c                 C   s   | j S )N)r   ©Zpktr   r   r   r   l   ó    zBPBLOCK.<lambda>iÿÿ  )Zlength_fromÚ
max_lengthc                 C   s
   |   d¡S )Nz2BPBLOCK(%Type%) Flags: %ProcFlags% Len: %BlockLen%)r#   )r$   r   r   r   r&   p   s    zBPBLOCK.mysummary)	r'   r(   r)   r   r
   r   r   r+   r&   r   r   r   r   r,   g   s   þýr,   c                 C   s
   | j dkS r   )ZDATA_ClientServiceIDr/   r   r   r   r   t   r0   r   N)Ú__doc__Zscapy.packetr   r   Zscapy.fieldsr   r   r   r   Zscapy.contrib.sdnvr   r	   r
   Zscapy.contrib.ltpr   r   r   r,   r   r   r   r   Ú<module>   s   M
