
    h|              	       H   d Z ddlmZ ddlmZmZ ddlmZmZm	Z	m
Z
mZmZmZmZmZ ddlmZmZ dddd	d
dddZ G d de          Zi ddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1i d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSi dTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdui dvdwdxdydzd{d|d}d~dddddddddddddddddddddddddddddddddZ G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z eeeddi            eee           dS )z
RSVP layer
    )chb)Packetbind_layers)	BitFieldByteEnumField	ByteFieldFieldLenFieldIPField
ShortFieldStrLenField
XByteFieldXShortField)IPchecksumPathzReservation requestz
Path errorzReservation request errorzPath teardownzReservation teardownz"Reservation request acknowledgment)                     c            
           e Zd Zd Z eddd           eddd           edde           edd           edd           e	d	d
           e
dd          gZd ZdS )RSVPVersionr   r   FlagsClasschksumNTTLdataofsr   Lengthc                 ^   ||z  }| j         Ot          |          }|d d         t          |dz	  dz            z   t          |dz            z   }||dd          z   }| j        Jt	          |          }|d d         t          |dz	            z   t          |dz            z   |dd          z   }|S )Nr         r   r   )r!   lenr   r   r   )selfppaytmp_lentmp_pcks         V/mounts/lovelace/software/anaconda3/lib/python3.11/site-packages/scapy/contrib/rsvp.py
post_buildzRSVP.post_build&   s    	S;!ffGbqbECA 5666Wt^9L9LLE!""A;!B"1"B!G$s29~~5!""=A    )__name__
__module____qualname__namer   r   rsvpmsgtypesr   r   r   r   fields_descr-    r.   r,   r   r      s        D8Iq!,,8GQ** =$==;x..9UA&&:i++:h--/K	 	 	 	 	r.   r   r   Sessionr   HOPr   	INTEGRITYr   TIME_VALUESr   
ERROR_SPECr   SCOPEr#   STYLE	   FLOWSPEC
   FILTER_SPEC   SENDER_TEMPLATE   SENDER_TSPEC   ADSPEC   POLICY_DATA   RESV_CONFIRM   
RSVP_LABEL   	HOP_COUNT   STRICT_SOURCE_ROUTE   LABEL_REQUEST   EXPLICIT_ROUTE   ROUTE_RECORD   HELLO   
MESSAGE_ID   MESSAGE_ID_ACK   MESSAGE_ID_LIST   
DIAGNOSTIC   ROUTE    DIAG_RESPONSE!   DIAG_SELECT"   RECOVERY_LABEL#   UPSTREAM_LABEL$   	LABEL_SET%   
PROTECTION&   zPRIMARY PATH ROUTE*   zDSBM IP ADDRESS+   SBM_PRIORITY,   zDSBM TIMER INTERVALS-   SBM_INFO2   S2L_SUB_LSP?   DETOUR@   	CHALLENGEA   z	DIFF-SERVB   	CLASSTYPEC   LSP_REQUIRED_ATTRIBUTES   	NODE_CHAR   SUGGESTED_LABEL   ACCEPTABLE_LABEL_SET   
RESTART_CA   zSESSION-OF-INTEREST   LINK_CAPABILITY   zCapability Object   RSVP_HOP_L2   LAN_NHOP_L2   LAN_NHOP_L3   LAN_LOOPBACK   TCLASS   TUNNEL   LSP_TUNNEL_INTERFACE_ID   USER_ERROR_SPEC   NOTIFY_REQUEST   zADMIN-STATUS   LSP_ATTRIBUTES   
ALARM_SPEC   ASSOCIATION   SECONDARY_EXPLICIT_ROUTE   SECONDARY_RECORD_ROUTE   FAST_REROUTE   SESSION_ATTRIBUTE   DCLASSzPACKETCABLE EXTENSIONSATM_SERVICECLASSzCALL_OPS (ASON)GENERALIZED_UNICALL_ID3GPP2_ObjectEXCLUDE_ROUTE)                     c                   `    e Zd Zd Z edd           edde           edd          gZd Z	dS )RSVP_Objectr!   r   r   r   C_Typec                     | j         dk    rt          S | j         dk    rt          S | j         dk    rt          S | j         dk    rt          S | j         dk    rt
          S t          S )Nr   r   rC   rQ   r   )r   RSVP_HOP	RSVP_TimeRSVP_SenderTSPECRSVP_LabelReqRSVP_SessionAttrb	RSVP_Datar&   payloads     r,   guess_payload_classzRSVP_Object.guess_payload_class   sf    :OZ4Z4##Z4  Z4$$r.   N)
r/   r0   r1   r2   r   r   	rsvptypesr   r4   r   r5   r.   r,   r   r      s^        D:h** =$	::9Xq))+K    r.   r   c                   D    e Zd ZdZeddiiZ eddd           gZd ZdS )	r   Datar   r    c                      | j         j        dz
  S )Nr   
underlayerr!   pkts    r,   <lambda>zRSVP_Data.<lambda>   s    #.BWZ[B[ r.   length_fromc                     t           S Nr   r   s     r,   default_payload_classzRSVP_Data.default_payload_class       r.   N)	r/   r0   r1   r2   r   overload_fieldsr   r4   r   r5   r.   r,   r   r      sS        D"WdO4O;vr7[7[\\\]K    r.   r   c                   V    e Zd ZdZeddiiZ edd           eddd          gZd	 Z	d
S )r   r7   r   r   neighborz0.0.0.0infacer   rc   c                     t           S r   r   r   s     r,   r   zRSVP_HOP.default_payload_class   r   r.   N)
r/   r0   r1   r2   r   r   r
   r   r4   r   r5   r.   r,   r   r      s]        D"WdO4O7:y118Ha,,.K    r.   r   c                   @    e Zd ZdZeddiiZ eddd          gZd ZdS )	r   zTime Valr   r   refreshr   rc   c                     t           S r   r   r   s     r,   r   zRSVP_Time.default_payload_class   r   r.   N)	r/   r0   r1   r2   r   r   r   r4   r   r5   r.   r,   r   r      sL        D"WdO4O8Iq"--.K    r.   r   c                       e Zd ZdZeddiiZ edd           edd           edd           ed	d
           edd           edd           eddd           gZ	d Z
dS )r   Sender_TSPECr   rC   
Msg_Formatr   reserveData_Lengthr   Srv_hdrr   reserve2
Srv_LengthTokensr   c                      | j         j        dz
  S )NrC   r   r   s    r,   r   zRSVP_SenderTSPEC.<lambda>   s    CNDY\^D^ r.   r   c                     t           S r   r   r   s     r,   r   z&RSVP_SenderTSPEC.default_payload_class   r   r.   N)r/   r0   r1   r2   r   r   r   r   r   r4   r   r5   r.   r,   r   r      s        D"WdO4O9\1--9Y**:mQ//9Y**9Z++:lA..;x9^9^___aK    r.   r   c                   T    e Zd ZdZeddiiZ edd           edd          gZd ZdS )	r   z	Label Reqr   rQ   r   r   L3PIDc                     t           S r   r   r   s     r,   r   z#RSVP_LabelReq.default_payload_class   r   r.   N)	r/   r0   r1   r2   r   r   r   r4   r   r5   r.   r,   r   r      s[        D"WdO4O:i++:gq))+K    r.   r   c            	           e Zd ZdZeddiiZ edd           edd           edd           edd	d
           ed
dd           gZ	d Z
d	S )r   Session_Attributer   r   Setup_priorityr   Hold_priorityflagsName_lengthNName)	length_ofr   c                     | j         S r   )r   r   s    r,   r   zRSVP_SessionAttrb.<lambda>   s    #/ r.   r   c                     t           S r   r   r   s     r,   r   z'RSVP_SessionAttrb.default_payload_class   r   r.   )r/   r0   r1   r2   r   r   r   r	   r   r4   r   r5   r.   r,   r   r      s        D"WdO4O9-q119_a009Wa(( =GGG;vr7Q7QRRR	K    r.   r   proto.   N)__doc__scapy.compatr   scapy.packetr   r   scapy.fieldsr   r   r   r	   r
   r   r   r   r   scapy.layers.inetr   r   r3   r   r   r   r   r   r   r   r   r   r5   r.   r,   <module>r     s  
        , , , , , , , ,> > > > > > > > > > > > > > > > > > > > > > * * * * * * * *+"1%,:     6   ,KT9 K5K;K =K <	K
 7K 7K :K =K $K >K 8K =K >K <K ;K  (!K K" ?#K$ #%K& >'K( 7)K* <+K, #-K. $/K0 <1K2 73K4 ?5K6 =7K8 #9K: #;K< ;=K> <?K@ 'AKB $CK K KD >EKF )GKH :IKJ =KKL 8MKN ;OKP ;QKR ;SKT ,UKV ;WKX $YKZ )[K\ <]K^ (_K` $aKb &cKd =eK K Kf =gKh =iKj >kKl 8mKn 8oKp ,qKr $sKt #uKv >wKx #yKz <{K| =}K~ -K@ +AKB >CKD &EKF 8GK KH ,%$$!"UK K K	\    &   *           v              v       F           Bwm $ $ $ D+     r.   