a
    kÄ#d¦  ã                   @   s  d dl mZmZmZ d dlmZmZmZ d dlm	Z	m
Z
 d dlmZ d dlmZ d dlmZmZ d dlmZ G dd	„ d	eƒZG d
d„ deƒZeeedd� ee	edd� eeedd� ee
edd� eeedd� eeed d� eee	d d� eeedd� eeeƒ eeed d d� dS )é    )ÚPacketÚbind_layersÚPadding)ÚBitFieldÚ	ByteFieldÚ
ShortField)ÚIPÚUDP)ÚBIER)ÚIPv6)ÚEtherÚGRE)Úorbc                   @   s8   e Zd Zd ZedddƒedddƒeddƒgZdd„ Zd	S )
ÚEoMCWÚzeror   é   Úreservedé   Úseqc                 C   s   t |ƒdkrtS tS )Né   )Úlenr   r   )ÚselfÚpayload© r   úI/var/www/html/gsl.tools/lib/python3.9/site-packages/scapy/contrib/mpls.pyÚguess_payload_class   s    zEoMCW.guess_payload_classN)Ú__name__Ú
__module__Ú__qualname__Únamer   r   Úfields_descr   r   r   r   r   r      s   

þr   c                   @   sB   e Zd Zd ZedddƒedddƒedddƒeddƒgZd	d
„ ZdS )ÚMPLSÚlabelé   é   Úcosr   Úsr   Úttlc                 C   sz   t |ƒdkrv| jstS t|d ƒd? d@ }|dkr6tS |dkrBtS |dkrNtS t|d ƒdkrrt|d ƒdkrrtS tS t	S )Nr   r   r   é   é   é   )
r   r&   r!   r   r   r
   r   r   r   r   )r   r   Z
ip_versionr   r   r   r   $   s     zMPLS.guess_payload_classN)r   r   r   r   r   r   r    r   r   r   r   r   r!      s   


ýr!   iGˆ  )Útypeé‰   )Úproto)Znhië  )Údport)r&   )r"   é   )r   r   N)Zscapy.packetr   r   r   Zscapy.fieldsr   r   r   Zscapy.layers.inetr   r	   Zscapy.contrib.bierr
   Zscapy.layers.inet6r   Zscapy.layers.l2r   r   Zscapy.compatr   r   r!   r   r   r   r   Ú<module>   s$   
