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 G dd„ deƒZG dd„ deƒZG d	d
„ d
eƒZG dd„ deƒZG dd„ deƒZeee
ƒ eee
ƒ eee
dd� eeedd� eee
ƒ eeeddd� eeeddd� eeedd� dS )z#
ERSPAN - Encapsulated Remote SPAN
é    )ÚPacketÚbind_layers)ÚBitFieldÚBitEnumFieldÚ	XIntFieldÚXShortField)ÚEtherÚGREc                   @   s&   e Zd ZdZd Zg Zeddd„ƒZdS )ÚERSPANzC
    A generic ERSPAN packet, pointing by default to ERSPAN II
    Nc                 O   s&   | t krtS tj| |g|¢R i |¤ŽS )N)r
   Ú	ERSPAN_IIr   Údispatch_hook)ÚclsZ_pktÚargsZkargs© r   úK/var/www/html/gsl.tools/lib/python3.9/site-packages/scapy/contrib/erspan.pyr      s    zERSPAN.dispatch_hook)N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚfields_descÚclassmethodr   r   r   r   r   r
      s
   r
   c                   @   s   e Zd ZdZdZg ZdS )ÚERSPAN_IzERSPAN ITN)r   r   r   r   Úmatch_subclassr   r   r   r   r   r   "   s   r   c                   @   sh   e Zd 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dƒedddƒgZdS )r   z	ERSPAN IITÚverr   é   Úvlané   Úcosé   Úené   Úté   Ú
session_idé
   ÚreservedÚindexé   N)r   r   r   r   r   r   r   r   r   r   r   r   (   s   







ùr   c                   @   s²   e Zd 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ddƒedddƒeddddddœƒedddƒedddƒedddddddœƒed ddƒgZ	d!S )"Ú
ERSPAN_IIIz
ERSPAN IIITr   r!   r   r   r   r   r   r   Zbsor"   r#   r$   r%   Ú	timestampZ	sgt_otherÚpÚfté   ZEthernetZIP)r   r!   Zhwé   ÚdZgraZ100usZ100nsz	IEEE 1588)r   r#   r!   ÚoN)
r   r   r   r   r   r   r   r   r   r   r   r   r   r   r)   6   s*   






ÿ


ÿ
ñr)   c                   @   s0   e Zd ZdZedddƒedddƒeddƒgZdS )	ÚERSPAN_PlatformSpecificZPlatformSpecificZplatf_idr   r.   Zinfo1é   Zinfo2N)r   r   r   r   r   r   r   r   r   r   r   r1   L   s
   

þr1   )r0   r#   i¾ˆ  )ÚprotoZseqnum_presentië"  )r3   N)r   Zscapy.packetr   r   Zscapy.fieldsr   r   r   r   Zscapy.layers.l2r   r	   r
   r   r   r)   r1   r   r   r   r   Ú<module>   s    	


