
    h                        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	e          Z ee
ed
            ee
ed            ee
ed            ee
ed            ee
ed            ee
ed
            ee
ed            ee
ed            ee
ed            ee
ed
d
            eeed            eee	d            eeed            eeed            eeed            eeedd            eee	dd            eeedd            eee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                   `   e Zd Zd Z edddg d           e edd          d            e edddd	d
ddd          d            e edd          d            e eddde	          d            e edd          d            e
dd           edd          gZeddiiZd ZdS )VXLANflags   )OAMr   NextProtocolInstanceV1V2r   G	reserved0r   c                     | j         j        S Nr   r   pkts    V/mounts/lovelace/software/anaconda3/lib/python3.11/site-packages/scapy/layers/vxlan.py<lambda>zVXLAN.<lambda>%       	.     r   
NotDefinedIPv4r
   EthernetNSH)r               c                     | j         j        S r!   r"   r#   s    r%   r&   zVXLAN.<lambda>.   r'   r(   	reserved1c                 6    | j         j         o| j         j         S r!   )r   r   r   r#   s    r%   r&   zVXLAN.<lambda>2   s    SY[J393I/I r(   gpflagsc                     | j         j        S r!   r   r   r#   s    r%   r&   zVXLAN.<lambda>6   
    	 r(   gpidc                     | j         j        S r!   r6   r#   s    r%   r&   zVXLAN.<lambda>:   r7   r(   vni	reserved2dport!  c                 n    | j         j        r|                     d          S |                     d          S )Nz)VXLAN (vni=%VXLAN.vni% gpid=%VXLAN.gpid%)zVXLAN (vni=%VXLAN.vni%))r   r   sprintf)selfs    r%   	mysummaryzVXLAN.mysummaryE   s4    :< 	;<< KLLL<< 9:::r(   N)__name__
__module____qualname__namer   r   r   r   r   	_GP_FLAGSr   r   fields_descr	   overload_fieldsrA    r(   r%   r   r      sn       D 	
7C* * *	+ 	+ 	J{A&&..	
 	
 	M.!*$$(#	% %& & /.	
 	
 	OK++JJ	
 	
 	Jy!Q	22##	
 	
 	Jvq!!##	
 	
 	UA
;""=KF 	gt_O; ; ; ; ;r(   r   i  )r<   i  i  r=   i  )sport)rJ   r<   )r   r-   r.   r/   N   r"   )__doc__scapy.packetr   r   r   r   scapy.layers.l2r   scapy.layers.inetr   r	   scapy.layers.inet6r
   scapy.fieldsr   r   r   r   r   r   r   rF   r   rI   r(   r%   <module>rR      s  
 
 L K K K K K K K K K K K ! ! ! ! ! ! % % % % % % % % # # # # # #> > > > > > > > > > > > > > > > > > 544	-; -; -; -; -;F -; -; -;` Cd # # # # Cd # # # # Cd # # # # Cd # # # # Ce $ $ $ $ Cd # # # # Cd # # # # Cd # # # # Cd # # # # Cd$ / / / / ue! , , , , ubq ) ) ) ) ud + + + + ue! , , , , ue$ / / / / eU"1 5 5 5 5 eRr 2 2 2 2 eT! 4 4 4 4 eU"1 5 5 5 5 5 5r(   