a
    kÄ#d÷  ã                   @   s˜  d Z ddlmZmZmZmZ ddlmZ ddlm	Z	m
Z
 ddlmZ ddlmZmZmZmZmZmZmZ g d¢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dd� ee
ed
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d� eee	ddd� eeeddd� eeeddd� dS )a@  
Virtual eXtensible Local Area Network (VXLAN)
- RFC 7348 -

A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks
http://tools.ietf.org/html/rfc7348
https://www.ietf.org/id/draft-ietf-nvo3-vxlan-gpe-02.txt

VXLAN Group Policy Option:
http://tools.ietf.org/html/draft-smith-vxlan-group-policy-00
é    )ÚPacketÚbind_layersÚbind_bottom_upÚbind_top_down)ÚEther)ÚIPÚUDP)ÚIPv6)Ú
FlagsFieldÚ
XByteFieldÚThreeBytesFieldÚConditionalFieldÚ
ShortFieldÚByteEnumFieldÚX3BytesField)ÚRr   r   ÚAr   r   ÚDr   c                   @   s´   e Zd Zd Zedddg d¢ƒeeddƒdd„ ƒeeddd	d
ddddœƒdd„ ƒeeddƒdd„ ƒeeddde	ƒdd„ ƒeeddƒdd„ ƒe
ddƒeddƒgZeddiiZdd„ ZdS )ÚVXLANÚflagsé   )ZOAMr   ÚNextProtocolÚInstanceZV1ZV2r   ÚGZ	reserved0r   c                 C   s   | j jS ©N©r   r   ©Zpkt© r   úI/var/www/html/gsl.tools/lib/python3.9/site-packages/scapy/layers/vxlan.pyÚ<lambda>%   ó    zVXLAN.<lambda>r   Z
NotDefinedZIPv4r	   ZEthernetZNSH)r   é   é   é   é   c                 C   s   | j jS r   r   r   r   r   r   r   .   r    Z	reserved1c                 C   s   | j j o| j j S r   )r   r   r   r   r   r   r   r   2   r    Zgpflagsc                 C   s   | j jS r   ©r   r   r   r   r   r   r   6   r    Zgpidc                 C   s   | j jS r   r%   r   r   r   r   r   :   r    ZvniZ	reserved2Údporté!  c                 C   s    | j jr|  d¡S |  d¡S d S )Nz)VXLAN (vni=%VXLAN.vni% gpid=%VXLAN.gpid%)zVXLAN (vni=%VXLAN.vni%))r   r   Zsprintf)Úselfr   r   r   Ú	mysummaryE   s    
zVXLAN.mysummaryN)Ú__name__Ú
__module__Ú__qualname__Únamer
   r   r   r   r   Ú	_GP_FLAGSr   r   Zfields_descr   Zoverload_fieldsr)   r   r   r   r   r      sJ   ÿþüÿù	þþþâ#ÿr   iµ  )r&   i¶  ié  r'   iï¾  )Úsport)r/   r&   )r   r!   r"   r#   Né   r   )Ú__doc__Zscapy.packetr   r   r   r   Zscapy.layers.l2r   Zscapy.layers.inetr   r   Zscapy.layers.inet6r	   Zscapy.fieldsr
   r   r   r   r   r   r   r.   r   r   r   r   r   Ú<module>   s4   $0