a
    kÄ#dê  ã                   @   sÀ   d 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 ddlmZ ddd	d
ddddddddddœZi ZG dd„ de	ƒZdd„ Zejjdd„ ƒZe
eedddd� eeedddd� dS )a?  
    CLNS Extension
    ~~~~~~~~~~~~~~~~~~~~~

    :copyright: 2014, 2015 BENOCS GmbH, Berlin (Germany)
    :author:    Marcel Patzlaff, mpatzlaff@benocs.com

    :description:

        This module provides a registration function and a generic PDU
        for OSI Connectionless-mode Network Services (such as IS-IS).
é    )Úconf)ÚByteEnumFieldÚPacketField)ÚLLC)ÚPacketÚbind_top_downÚbind_bottom_up)ÚorbZNullzQ.933z	IEEE SNAPzISO 8438 CLNPzISO 9542 ES-ISzISO 10589 IS-ISZIPv6zFRF.9zFRF.12ZTRILLzIEEE 802.aqZIPv4ZPPP)r   é   é€   é�   é‚   éƒ   éŽ   é°   é±   éÀ   éÁ   éÌ   éÏ   c                   @   s*   e Zd ZdZeddeƒeddejƒgZ	dS )Ú_GenericClnsPduzGeneric CLNS PDUÚnlpidr   ÚrawdataN)
Ú__name__Ú
__module__Ú__qualname__Únamer   Únetwork_layer_protocol_idsr   r   Ú	raw_layerZfields_desc© r   r   úH/var/www/html/gsl.tools/lib/python3.9/site-packages/scapy/layers/clns.pyr   -   s   
þr   c                 K   s:   t j}t| ƒdkr*t| d ƒ}t |t¡}|| fi |¤ŽS )Né   r   )r   r   Úlenr	   Ú_cln_protocolsÚgetr   )ÚsÚkwargsZpdu_clsr   r   r   r    Ú_create_cln_pdu5   s
    r'   c                 C   sV   | d u s|d u rd S t  | d ¡}|d ur8||kr8tdƒ‚|t | < tt|dddd� d S )Nz&different protocol already registered!éþ   é   ©ZdsapZssapZctrl)r#   r$   Ú
ValueErrorr   r   )r   Zcln_protocol_classZchkr   r   r    Úregister_cln_protocol?   s    r,   r(   r)   r*   N)Ú__doc__Zscapy.configr   Zscapy.fieldsr   r   Zscapy.layers.l2r   Zscapy.packetr   r   r   Zscapy.compatr	   r   r#   r   r'   ÚcommandsÚregisterr,   r   r   r   r    Ú<module>   s4   ó

