
    h                        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e	          Zd Zej        j        d             Z e
eeddd            eee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)orbNullzQ.933z	IEEE SNAPzISO 8438 CLNPzISO 9542 ES-ISzISO 10589 IS-ISIPv6zFRF.9zFRF.12TRILLzIEEE 802.aqIPv4PPP)r                                       c                   P    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_layerfields_desc     U/mounts/lovelace/software/anaconda3/lib/python3.11/site-packages/scapy/layers/clns.pyr   r   -   s?        Dgt%?@@ItT^44KKKr(   r   c                     t           j        }t          |           dk    r5t          | d                   }t                              |t                    } || fi |S )N   r   )r   r%   lenr
   _cln_protocolsgetr   )skwargspdu_clsr   s       r)   _create_cln_pdur2   5   sT    nG
1vv{{AaD		 $$UO<<71r(   c                     | |d S t                               | d           }|||k    rt          d          |t           | <   t          t          |ddd           d S )Nz&different protocol already registered!      dsapssapctrl)r-   r.   
ValueErrorr   r   )r   cln_protocol_classchks      r)   register_cln_protocolr=   ?   sp    }*2


UD
)
)C
3"444ABBB.N5#)4aHHHHHHr(   r4   r5   r6   N)__doc__scapy.configr   scapy.fieldsr   r   scapy.layers.l2r   scapy.packetr   r   r	   scapy.compatr
   r$   r-   r   r2   commandsregisterr=   r'   r(   r)   <module>rF      sU          3 3 3 3 3 3 3 3       > > > > > > > > > >       











  "     f         	I 	I 	I c?Dq A A A A sO$T B B B B B Br(   