a
    kÄ#d"	  ã                   @   sš   d Z ddlmZ ddlmZ ddlmZmZ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g d
¢Zg d¢ZG dd„ deƒZeeeed� dS )z
CACE PPI types
é    )ÚPPI_DOT11COMMON)Úbind_layers)Ú	ByteFieldÚFieldÚ
FlagsFieldÚLELongFieldÚLEShortField)ÚPPI_HdrÚPPI_Elementc                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚdBmByteFieldc                 C   s   t  | ||d¡ d S )NÚb)r   Ú__init__)ÚselfÚnameÚdefault© r   úM/var/www/html/gsl.tools/lib/python3.9/site-packages/scapy/contrib/ppi_cace.pyr      s    zdBmByteField.__init__c                 C   s   |d urd| }|S )Nz%4d dBmr   )r   ÚpktÚxr   r   r   Úi2repr   s    zdBmByteField.i2reprN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r      s   r   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚPPITSFTFieldc                 C   s<   d}|r|  d¡}|sd}|d@ r(d}nd}|t|ƒ }|S )Nr   Ú	Pkt_Flagsé   gü©ñÒMbP?g�íµ ÷Æ°>)ÚgetfieldvalÚfloat)r   r   r   ÚflagsÚscaleÚtoutr   r   r   Úi2h    s    
zPPITSFTField.i2hc                 C   s6   d}|r"|  d¡}|r"|d@ r"d}t|| d ƒ}|S )Ng    €„.Ar   r   g     @�@g      à?)r   Úint)r   r   r   r   r   r    r   r   r   Úh2i-   s    
zPPITSFTField.h2iN)r   r   r   r!   r#   r   r   r   r   r      s   r   )Ú r$   r$   r$   ZTurboZCCKZOFDMZ2GHzZ5GHzZPassiveOnlyzDynamic CCK-OFDMZGSFK)ZFCSZTSFT_msZFCS_InvalidZ	PHY_Errorc                   @   sl   e Zd ZdZeddƒedddeƒeddƒeddƒedddeƒe	d	dƒe	d
dƒe
ddƒe
ddƒg	Zdd„ ZdS )ÚPPI_Dot11CommonzPPI 802.11-CommonZ	TSF_Timerr   r   iðÿÿÿZRateZCh_FreqZCh_FlagsZFHSS_HopZFHSS_PatZ	Antsignali€ÿÿÿZAntnoisec                 C   s   d|fS )Nó    r   )r   Úsr   r   r   Úextract_paddingK   s    zPPI_Dot11Common.extract_paddingN)r   r   r   r   r   r   Ú_PPIDot11CommonPktFlagsr   Ú_PPIDot11CommonChFlagsr   r   Zfields_descr(   r   r   r   r   r%   ?   s   ø
r%   )Zpfh_typeN)Ú__doc__Z
scapy.datar   Zscapy.packetr   Zscapy.fieldsr   r   r   r   r   Zscapy.layers.ppir	   r
   r   r   r*   r)   r%   r   r   r   r   Ú<module>	   s   
