File: //lib/python3/dist-packages/twisted/pair/__pycache__/tuntap.cpython-310.pyc
o
�b�0 � @ sl d Z ddlZddlZddlZddlZddlZddlmZ ddlm Z ddl
mZmZm
Z
ddlmZmZ ddlmZ ddlmZmZmZmZmZ dd lmZmZ dd
lmZ ddlmZ ddl m!Z! dd
l"m#Z#m$Z$ g d�Z%dZ&dZ'dZ(dZ)G dd� de�Z*e
ej+�G dd� de$e#��Z,G dd� dedd��Z-G dd� de�Z.G dd� d�Z/e
ej0�G dd� dej1��Z2dS ) zc
Support for Linux ethernet and IP tunnel devices.
@see: U{https://en.wikipedia.org/wiki/TUN/TAP}
� N)�
namedtuple)�Tuple)� Attribute� Interface�implementer)�FlagConstant�Flags)�Version)�abstract�defer�error�
interfaces�task)�ethernet�raw)�log)�
deprecated)�fullyQualifiedName)�FancyEqMixin�
FancyStrMixin)�TunnelFlags�
TunnelAddress�
TuntapPort� i�T@l �T s /dev/net/tunc @ sp e Zd ZdZed�Zed�Zed�Zed�Zed�Z ed�Z
ed�Zed �Zed
�Z
ed�Zed�Zed
�ZdS )r a~
L{TunnelFlags} defines more flags which are used to configure the behavior
of a tunnel device.
@cvar IFF_TUN: This indicates a I{tun}-type device. This type of tunnel
carries IP datagrams. This flag is mutually exclusive with C{IFF_TAP}.
@cvar IFF_TAP: This indicates a I{tap}-type device. This type of tunnel
carries ethernet frames. This flag is mutually exclusive with C{IFF_TUN}.
@cvar IFF_NO_PI: This indicates the I{protocol information} header will
B{not} be included in data read from the tunnel.
@see: U{https://www.kernel.org/doc/Documentation/networking/tuntap.txt}
� � r � �@ � � i i � i @ i � N)�__name__�
__module__�__qualname__�__doc__r �IFF_TUN�IFF_TAP�
TUN_FASYNC�TUN_NOCHECKSUM� TUN_NO_PI�
TUN_ONE_QUEUE�TUN_PERSIST�TUN_VNET_HDR� IFF_NO_PI�
IFF_ONE_QUEUE�IFF_VNET_HDR�IFF_TUN_EXCL� r1 r1 �5/usr/lib/python3/dist-packages/twisted/pair/tuntap.pyr , s r c @ s@ e Zd ZdZdZddd� fdfZedd� �Zd d
� Zdd� Z d
S )r zU
A L{TunnelAddress} represents the tunnel to which a L{TuntapPort} is bound.
)�
_typeValue�name�typec C � | j S �N)r4 )�flagr1 r1 r2 �<lambda>T s zTunnelAddress.<lambda>r4 c C s | j jS )z�
Return the integer value of the C{type} attribute. Used to produce
correct results in the equality implementation.
)r5 �value��selfr1 r1 r2 r3 V s zTunnelAddress._typeValuec C s || _ || _dS )z�
@param type: Either L{TunnelFlags.IFF_TUN} or L{TunnelFlags.IFF_TAP},
representing the type of this tunnel.
@param name: The system name of the tunnel.
@type name: L{bytes}
N)r5 r4 )r<