Commit 7c139f00 authored by peter's avatar peter
Browse files

No commit message

No commit message
parent 95046862
Loading
Loading
Loading
Loading
+116 −3
Original line number Original line Diff line number Diff line
@@ -592,6 +592,21 @@ group rfc3775Mipv6_ExtHdrTemplates {
	
	
		group mobilityHdrMessageTemplates {
		group mobilityHdrMessageTemplates {


//Added by PK
		template MipMessage m_bindingRefreshRequest ( template MipOptionList p_mipOptions ) := {	
			bindingRefreshRequest := {
				reserved := c_uInt16Zero,
				mipOptions := p_mipOptions
			}
		}

//Added by PK
		template MipMessage m_bindingRefreshReq_noOpts := {	
			bindingRefreshRequest := {
				reserved := c_uInt16Zero,
				mipOptions := omit
			}
		}


		template MipMessage m_bindingUpdate(	UInt16 p_seqNr,
		template MipMessage m_bindingUpdate(	UInt16 p_seqNr,
												UInt1 p_aFlag,
												UInt1 p_aFlag,
@@ -629,6 +644,23 @@ group rfc3775Mipv6_ExtHdrTemplates {
			}
			}
		}
		}


//Added by PK
		template MipMessage mw_bindingUpdate_anyOpt(	UInt1 p_aFlag,
												UInt1 p_hFlag,
												UInt1 p_lFlag,
												UInt1 p_kFlag) := {	
			bindingUpdate := {
				sequenceNumber := ?,
				aFlag := p_aFlag,
				hFlag := p_hFlag,
				lFlag := p_lFlag,
				kFlag := p_kFlag,
				reserved := c_uInt12Zero,
				lifeTime := ?,		
				mipOptions := *
			}
		}
		
		template MipMessage mw_bindingUpdate_lifeTime(	UInt1 p_aFlag,
		template MipMessage mw_bindingUpdate_lifeTime(	UInt1 p_aFlag,
												UInt1 p_hFlag,
												UInt1 p_hFlag,
												UInt1 p_lFlag,
												UInt1 p_lFlag,
@@ -658,6 +690,23 @@ group rfc3775Mipv6_ExtHdrTemplates {
			}
			}
		}
		}


//Added by PK
		template MipMessage m_bindingAck_status (
			UInt8 p_status,
			UInt16 p_seqNr,
			UInt16 p_lifetime,
			template MipOptionList p_mipOptions
		) := {	
			bindingAck := {
				status := p_status,
				kFlag := c_kFlag0,
				reserved := c_uInt7Zero,
				sequenceNumber := p_seqNr,
				lifeTime := p_lifetime,		
				mipOptions := p_mipOptions
			}
		}

		template MipMessage mw_bindingAck(UInt16 p_seqNr) := {	
		template MipMessage mw_bindingAck(UInt16 p_seqNr) := {	
			bindingAck := {
			bindingAck := {
				status := c_mipCodeBindingUpdateAccepted,
				status := c_mipCodeBindingUpdateAccepted,
@@ -669,6 +718,30 @@ group rfc3775Mipv6_ExtHdrTemplates {
			}
			}
		}
		}


//Added by PK
		template MipMessage mw_bindingAck_any := {	
			bindingAck := {
				status := c_mipCodeBindingUpdateAccepted,
				kFlag := ?,
				reserved := ?,
				sequenceNumber := ?,
				lifeTime := ?,		
				mipOptions := ?
			}
		}

//Added by PK
		template MipMessage mw_bindingAck_mipOpt ( template MipOptionList p_mipOptions ) := {	
			bindingAck := {
				status := c_mipCodeBindingUpdateAccepted,
				kFlag := ?,
				reserved := ?,
				sequenceNumber := ?,
				lifeTime := ?,		
				mipOptions := p_mipOptions
			}
		}

// Added by PK
// Added by PK
		template MipMessage mw_bindingAck_statusSN (
		template MipMessage mw_bindingAck_statusSN (
			template UInt8 p_status,
			template UInt8 p_status,
@@ -700,6 +773,19 @@ group rfc3775Mipv6_ExtHdrTemplates {
			}
			}
		}
		}


//Added by PK
		template MipMessage m_bindingError_noOpt (
			UInt8 p_status,
			template Oct16 p_homeAddress
		) := {	
			bindingError := {
				status := p_status,
				reserved := c_uInt8Zero,
				homeAddress := p_homeAddress,		
				mipOptions := omit
			}	
		}

		template MipMessage mw_bindingError := {	
		template MipMessage mw_bindingError := {	
			bindingError := {
			bindingError := {
				status := ?,
				status := ?,
@@ -763,6 +849,18 @@ group rfc3775Mipv6_ExtHdrTemplates {
			}
			}
		}
		}


//Added by PK
		template MipMessage m_cot(	UInt16 p_careOfNonceIndex,
									Bit64 p_careOfInitCookie,
									Bit64 p_careOfKeygenToken) := {	
			careOfTest := {
				careOfNonceIndex := p_careOfNonceIndex,//c_uInt16Zero,
				careOfInitCookie := p_careOfInitCookie,//c_64ZeroBits,
				careOfKeygenToken := p_careOfKeygenToken,
				mipOptions := omit
			}
		}

//Added by PK
//Added by PK
		template MipMessage mw_coti := {	
		template MipMessage mw_coti := {	
			careOfTestInit := {
			careOfTestInit := {
@@ -851,6 +949,13 @@ group rfc3775Mipv6_ExtHdrTemplates {
			authenticator := p_authenticator
			authenticator := p_authenticator
		}
		}


//Added by PK
		template MipBindingAuthorizationData mw_bindingAuthData := {
			mipOptType := c_mipBindingAuthorizationData,
			mipOptLen := ?,
			authenticator := ?
		}

		template MipBindingAuthorizationData m_bindingAuthData_dummy := {
		template MipBindingAuthorizationData m_bindingAuthData_dummy := {
			mipOptType := c_mipBindingAuthorizationData ,
			mipOptType := c_mipBindingAuthorizationData ,
			mipOptLen := 0,
			mipOptLen := 0,
@@ -879,12 +984,20 @@ group rfc3775Mipv6_ExtHdrTemplates {
			alternateCoA := p_addr
			alternateCoA := p_addr
		}
		}


		template MipOptAltCoA mw_altCoA := {
//Modified by PK
		template MipOptAltCoA mw_altCoA_any := {
			mipOptType :=c_mipOptAltCoA,
			mipOptType :=c_mipOptAltCoA,
			mipOptLen := c_mipOptAltCoALen,
			mipOptLen := c_mipOptAltCoALen,
			alternateCoA := ?
			alternateCoA := ?
		}
		}


//Added by PK
		template MipOptAltCoA mw_altCoA ( template Oct16  p_altCoa ) := {
			mipOptType := c_mipOptAltCoA,
			mipOptLen := c_mipOptAltCoALen,
			alternateCoA := p_altCoa
		}
		
	}//end group mobilityOptTemplates
	}//end group mobilityOptTemplates


	group mipHeaderTemplates {
	group mipHeaderTemplates {
+1 −0
Original line number Original line Diff line number Diff line
@@ -680,6 +680,7 @@ group rfc3775Mipv6_ExtHdrTypesAndValues {
		group mipMessageValues {
		group mipMessageValues {
			
			
			const UInt16 c_100TimeUnits := 100 ;
			const UInt16 c_100TimeUnits := 100 ;
			const UInt16 c_1TimeUnit := 1;
			const UInt16 c_zeroTimeUnits := 0 ;
			const UInt16 c_zeroTimeUnits := 0 ;
			
			
		}//end group MipMessageValues
		}//end group MipMessageValues
+1 −0
Original line number Original line Diff line number Diff line
@@ -68,6 +68,7 @@


		const UInt16 c_infiniteLifetime := c_uInt16Max ;
		const UInt16 c_infiniteLifetime := c_uInt16Max ;
		const UInt32 c_infinitePrefixLifetime := c_uInt32Max ;
		const UInt32 c_infinitePrefixLifetime := c_uInt32Max ;
		const UInt32 c_zeroPrefixLifetime := 0 ;
		const UInt16 c_zeroLifetime := 0 ;
		const UInt16 c_zeroLifetime := 0 ;
		const UInt32 c_retrans10s := 10000 ;
		const UInt32 c_retrans10s := 10000 ;
		
		
+29 −0
Original line number Original line Diff line number Diff line
@@ -172,6 +172,35 @@
			}}
			}}
		}		
		}		


		/*
		 *	@param  p_src Binary IPv6 address associated with the
		 *          test component.
		 *	@param  p_dst Binary IPv6 address associated with NUT.
		 *	@param  p_nextHeader Next header identifier value to be used.
		 *	@param  p_extHdrList List of extension header in the packet.
		 *	@param  p_id ICMPv6 echo identifier.
		 *	@param  p_seqNr ICMPv6 echo sequence number.
		*/
		template EchoReply mw_echoReply_extHdr_noData (
			template Ipv6Address p_src,
			template Ipv6Address p_dst,
			UInt8 p_nextHeader,
			template ExtensionHeaderList p_extHdrList,
			UInt16 	p_id,
			UInt16	p_seqNr
		) := {
			ipv6Hdr := mw_ipHdr_nextHdr_srcDst(p_nextHeader, p_src, p_dst),
			extHdrList := p_extHdrList,
			ipv6Payload := { echoReplyMsg := {
				icmpType:= c_echoReplyMsg,
				icmpCode:= c_icmpCode0,
				checksum:= ?,
				identifier:= p_id,
				sequenceNumber:= p_seqNr,
				data:= omit
			}}
		}

		/*
		/*
		 *	@param  p_src Binary IPv6 address associated with the
		 *	@param  p_src Binary IPv6 address associated with the
		 *          test component.
		 *          test component.
+12 −6
Original line number Original line Diff line number Diff line
@@ -652,7 +652,7 @@ module LibIpv6_Rfc3775Mipv6_Functions {
									c_kFlag0,
									c_kFlag0,
									m_mipOptList_2Elem (
									m_mipOptList_2Elem (
										m_mipOpt_padN(m_optPad2),
										m_mipOpt_padN(m_optPad2),
										m_mipOpt_altCoa(mw_altCoA))))))) -> value v_ipv6Packet {
										m_mipOpt_altCoa(mw_altCoA_any))))))) -> value v_ipv6Packet {
					//Get SeqNr
					//Get SeqNr
					v_seqNr := v_ipv6Packet.extHdrList[1].mipHeader.mipMessage.bindingUpdate.sequenceNumber;
					v_seqNr := v_ipv6Packet.extHdrList[1].mipHeader.mipMessage.bindingUpdate.sequenceNumber;
					//Get Lifetime
					//Get Lifetime
@@ -1216,18 +1216,24 @@ module LibIpv6_Rfc3775Mipv6_Functions {
	*/
	*/
	function f_createCareOfKeygenToken(in Oct20 p_kcn, in Ipv6Address p_careOfAddr, in octetstring p_nonce)
	function f_createCareOfKeygenToken(in Oct20 p_kcn, in Ipv6Address p_careOfAddr, in octetstring p_nonce)
	runs on LibIpv6Node
	runs on LibIpv6Node
	return Oct8 {
//	return Oct8 {
//Modified by PK
	return Bit64 {
		var octetstring v_mac := c_8ZeroBytes;
		var octetstring v_mac := c_8ZeroBytes;
		var Oct8 v_token := c_8ZeroBytes;
		var Oct8 v_token := c_8ZeroBytes;
		var UInt8 i;
		var UInt8 i;


		v_mac := fx_integrity(e_sha1_96, p_kcn, p_careOfAddr & p_nonce & int2oct(1,1));
//		v_mac := fx_integrity(e_sha1_96, p_kcn, p_careOfAddr & p_nonce & int2oct(1,1));
//Modified by PK
		v_mac := fx_integrity(e_hmac_sha1_64, p_kcn, p_careOfAddr & p_nonce & int2oct(1,1));


		for ( i := 0; i < 8; i := i + 1 ) {
		for ( i := 0; i < 8; i := i + 1 ) {
			v_token[i] := v_mac[i];
			v_token[i] := v_mac[i];
		}
		}


		return v_token;
//		return v_token;
//Modified by PK
		return oct2bit(v_token);
	}//end f_createCareOfKeygenToken
	}//end f_createCareOfKeygenToken




@@ -1739,7 +1745,7 @@ module LibIpv6_Rfc3775Mipv6_Functions {
																						c_kFlag0,
																						c_kFlag0,
																						m_mipOptList_2Elem(
																						m_mipOptList_2Elem(
																							m_mipOpt_padN(m_optPad2),
																							m_mipOpt_padN(m_optPad2),
																							m_mipOpt_altCoa(mw_altCoA))))))) -> value v_ipv6Packet {
																							m_mipOpt_altCoa(mw_altCoA_any))))))) -> value v_ipv6Packet {
				//Get SeqNr
				//Get SeqNr
				v_seqNr := v_ipv6Packet.extHdrList[0].mipHeader.mipMessage.bindingUpdate.sequenceNumber;
				v_seqNr := v_ipv6Packet.extHdrList[0].mipHeader.mipMessage.bindingUpdate.sequenceNumber;
				//Get Lifetime
				//Get Lifetime
@@ -1851,7 +1857,7 @@ module LibIpv6_Rfc3775Mipv6_Functions {
														c_kFlag0,
														c_kFlag0,
														m_mipOptList_2Elem(
														m_mipOptList_2Elem(
															m_mipOpt_padN(m_optPad2),
															m_mipOpt_padN(m_optPad2),
															m_mipOpt_altCoa(mw_altCoA))))))) -> value v_ipv6Packet {
															m_mipOpt_altCoa(mw_altCoA_any))))))) -> value v_ipv6Packet {
				//Get SeqNr
				//Get SeqNr
				v_seqNr := v_ipv6Packet.extHdrList[1].mipHeader.mipMessage.bindingUpdate.sequenceNumber;
				v_seqNr := v_ipv6Packet.extHdrList[1].mipHeader.mipMessage.bindingUpdate.sequenceNumber;
				//Get Lifetime
				//Get Lifetime
Loading