Commit 95046862 authored by peter's avatar peter
Browse files

No commit message

No commit message
parent 2c133c70
Loading
Loading
Loading
Loading
+35 −1
Original line number Original line Diff line number Diff line
@@ -207,7 +207,41 @@


		return v_ret;
		return v_ret;


	}//end function f_isPresentRoutingHeaderType2
	}//end function f_isPresentBindingAuthorityDataOption

	/*
	 * @desc 	This goes through the ExtensionHeaderList and
	 *			checks if a Binding Refresh Advice option is present.
	 * @param 	p_extHdrList ExtensionHeaderList to be treated
	 * @return 	execution status 
	*/
	function f_isPresentBindingRefreshAdviceOption ( in ExtensionHeaderList p_extHdrList )

	runs on LibIpv6Node
	return FncRetCode {
		var FncRetCode v_ret := e_error;
		var UInt8 i,j;

		//select ext hdrs that need special calculation
		for ( i := 0; i < sizeof ( p_extHdrList ) and ( v_ret != e_success ); i := i + 1 ) {
			if ( ischosen ( p_extHdrList[i].mipHeader )  ) {
				if ( ischosen ( p_extHdrList[i].mipHeader.mipMessage.bindingAck ) ) {
					for ( j := 0; j < sizeof ( p_extHdrList[i].mipHeader.mipMessage.bindingAck.mipOptions ); j := j + 1 ) {
						if ( ischosen ( p_extHdrList[i].mipHeader.mipMessage.bindingAck.mipOptions[j].mipOptBindingRefreshAdvice ) == true ) {
							v_ret := e_success;
						}
					}
				}
			}
		}

		if ( v_ret == e_error ) {
			log ( "**** f_isPresentBindingRefreshAdviceOption: ERROR: Binding Authentication Data option is not present in Binding Ack **** " );
		}

		return v_ret;

	}//end function f_isPresentBindingRefreshAdviceOption


} // end module LibIpv6_CommonRfcs_Functions
} // end module LibIpv6_CommonRfcs_Functions
	
	
+16 −0
Original line number Original line Diff line number Diff line
@@ -684,6 +684,22 @@ group rfc3775Mipv6_ExtHdrTemplates {
			}
			}
		}
		}


// Added by PK
		template MipMessage mw_bindingAck_statusKFlagSN (
			template UInt8 p_status,
			UInt1 p_kFlag,
			UInt16 p_seqNr
		) := {	
			bindingAck := {
				status := p_status,
				kFlag := p_kFlag,
				reserved := ?,
				sequenceNumber := p_seqNr,
				lifeTime := ?,		
				mipOptions := ?
			}
		}

		template MipMessage mw_bindingError := {	
		template MipMessage mw_bindingError := {	
			bindingError := {
			bindingError := {
				status := ?,
				status := ?,
+122 −1
Original line number Original line Diff line number Diff line
@@ -216,6 +216,35 @@
			}}
			}}
		}
		}


// Added by PK
		/*
		 *	@param  p_src Binary IPv6 address associated with the
		 *          test component.
		 *	@param  p_dst Binary IPv6 address associated with NUT.
		 *	@param  p_opts Neighborhood advertisement options value or template.
	    */
		template NeighborAdvertisement mw_nbrAdv_noExtHdr_allFlagsAndOpts (	template Ipv6Address p_src,
															template Ipv6Address p_dst,
															UInt1 p_rFlag,
															UInt1 p_sFlag,
															UInt1 p_oFlag,
															template Ipv6Address p_target,
															template NbrAdvOptions p_opts ) := {
			ipv6Hdr := mw_ipHdr_nextHdr_srcDst(c_icmpHdr, p_src, p_dst),
			extHdrList := omit,
			ipv6Payload := { nbrAdvMsg := {
				icmpType:= c_nbrAdvMsg,
				icmpCode:= c_icmpCode0,
				checksum:= ?,
				routerFlag:=p_rFlag,
				solicitedFlag:=p_sFlag,
				overrideFlag:=p_oFlag,
				reserved:=0,
				targetAddr:= p_target,
				nbrAdvOptions := p_opts
			}}
		}

		 /*
		 /*
		  *	@param  p_src Binary IPv6 address associated with the
		  *	@param  p_src Binary IPv6 address associated with the
		  *          test component.
		  *          test component.
@@ -859,6 +888,35 @@
			}}
			}}
		}
		}


		/*
		 *	@param  p_src Binary IPv6 address associated with the
		 *          test component.
		 *	@param  p_dst Binary IPv6 address associated with NUT.
	    */
		template RouterAdvertisement mw_rtAdv_hop255_noExtHdr_hAFlag (
			template Ipv6Address p_src,
			template Ipv6Address p_dst,
			UInt1 p_homeAgentFlag,
			template RtAdvOptions p_rtAdvOptions
		) := {
			ipv6Hdr := mw_ipHdr_nextHdr_hop_srcDst ( c_icmpHdr, c_hopLimit255, p_src, p_dst ),  // FIXED (Alex) : m_ipHdr_nextHdr_srcDst->mw_ipHdr_srcDst_nextHdr_hopL255
			extHdrList := omit,
			ipv6Payload := { routerAdvMsg := {
				icmpType:= c_rtAdvMsg,
				icmpCode:= c_icmpCode0,
				checksum:= ?,
				curHopLimit:= ?,
				managedConfigFlag:=?,
				otherConfigFlag:=?,
				homeAgentFlag := p_homeAgentFlag,
				reserved:= 0,
				routerLifetime:=?,
				reachableTime:=?,
				retransTimer:=?,
				rtAdvOptions:=p_rtAdvOptions
			}}
		}

		/*
		/*
		 *	@param  p_src Binary IPv6 address associated with the
		 *	@param  p_src Binary IPv6 address associated with the
		 *          test component.
		 *          test component.
@@ -1095,6 +1153,35 @@
			prefix:= p_prefix
			prefix:= p_prefix
		}
		}


		/*
		 *	@param  p_prefixLength The length of the prefix
		 *	@param  p_lFlag Value for link flag.
		 *	@param  p_aFlag Value for autoconfiguration flag.
		 *	@param  p_rAFlag Value for router address flag.
		 *	@param  p_validLifetime Value for valid life time duration.
		 *	@param  p_preferredLifetime Value for preffered life time duration.
		 *	@param  p_prefix Address prefix to be used
	    */
		template PrefixInfo mw_prefixInfo (	template UInt8 p_prefixLength,
											UInt1 p_lFlag,
											UInt1 p_aFlag,
											UInt1 p_rAFlag,
											UInt32 p_validLifetime,
											UInt32 p_preferredLifetime,
											template Ipv6Address p_prefix):= {
			icmpType:= c_prefixInfo,
			optionLength:= c_prefixInfoLen,
			prefixLength:= p_prefixLength,
			linkFlag:=p_lFlag,
			autoConfigFlag:=p_aFlag,
			rtAddrFlag := p_rAFlag,
			reserved1:=0,
			validLifetime:=p_validLifetime,
			preferredLifetime:=p_preferredLifetime,
			reserved2:=0,
			prefix:= p_prefix
		}

		/*
		/*
		 *	@param  p_prefixLength The length of the prefix
		 *	@param  p_prefixLength The length of the prefix
		 *	@param  p_lFlag Value for link flag.
		 *	@param  p_lFlag Value for link flag.
@@ -1394,6 +1481,40 @@
			otherOption := omit
			otherOption := omit
		}
		}


// Added by PK
		/*
		 *	@param  p_macSlla Binary MAC source address associated with
		 *          link layer of test component
		 *	@param  p_prefixLength Length of the prefix.
		 *	@param  p_lFlag Value for link flag.
		 *	@param  p_aFlag Value for autoconfiguration flag.
		 *	@param  p_rAFlag Value for router address flag.
		 *	@param  p_validLifetime Value for valid life time duration.
		 *	@param  p_preferredLifetime Value for preffered life time duration.
		 *	@param  p_prefix Address prefix to be used
	    */
		template RtAdvOptions mw_rtAdvOpt_sllaPrefixOpt  (	template Oct6to15 p_macSlla,
															UInt8 p_prefixLength,
															UInt1 p_lFlag,
															UInt1 p_aFlag,
															UInt1 p_rAFlag,
															UInt32 p_validLifetime,
															UInt32 p_preferredLifetime,
															template Ipv6Address p_prefix):={
			srcLinkLayerAddr := m_macSlla(p_macSlla),
			mtuOption:= omit,
			prefixInfoList := { mw_prefixInfo (	p_prefixLength,
												p_lFlag,
												p_aFlag,
												p_rAFlag,
												p_validLifetime,
												p_preferredLifetime,
												p_prefix) },
			advertisementInterval := omit,
			homeAgentInfo := omit,
			otherOption := omit
		}

		/*
		/*
		 *	@param  p_prefixLength Length of the prefix.
		 *	@param  p_prefixLength Length of the prefix.
		 *	@param  p_lFlag Value for link flag.
		 *	@param  p_lFlag Value for link flag.
+1 −0
Original line number Original line Diff line number Diff line
@@ -39,6 +39,7 @@
	group IcmpPointers {
	group IcmpPointers {
		const UInt32  c_icmpPointer4 := 4;
		const UInt32  c_icmpPointer4 := 4;
		const UInt32  c_icmpPointer6 := 6;
		const UInt32  c_icmpPointer6 := 6;
		const UInt32  c_icmpPointer24 := 24;
		const UInt32  c_icmpPointer40 := 40;
		const UInt32  c_icmpPointer40 := 40;
		const UInt32  c_icmpPointer41 := 41;
		const UInt32  c_icmpPointer41 := 41;
		const UInt32  c_icmpPointer42 := 42;
		const UInt32  c_icmpPointer42 := 42;
+11 −6
Original line number Original line Diff line number Diff line
@@ -154,19 +154,22 @@ module LibIpv6_Rfc3775Mipv6_Functions {


	}//end f_sendBindUpAndWaitForBindAckAtHome
	}//end f_sendBindUpAndWaitForBindAckAtHome
		
		
// Modified by PK
	/*
	/*
	 * @desc  Test Node is Off Home and sends BindUpdate and waits for Binding Ack
	 * @desc  Test Node is Off Home and sends BindUpdate and waits for Binding Ack
	 * @param p_mnCoaTn Mobile Node Care Of Address of test node
	 * @param p_mnCoaTn Mobile Node Care Of Address of test node
	 * @param p_mnHoaTn Mobile Node Home Address of test node
	 * @param p_mnHoaTn Mobile Node Home Address of test node
	 * @param p_haGlaNut Home Agent Address of node under test
	 * @param p_haGlaNut Home Agent Address of node under test
	 * @param p_seqNr Seq Nr of Binding Update
	 * @param p_seqNr Seq Nr of Binding Update
 	 * @param p_timeUnits Lifetiem of Binding Update
 	 * @param p_timeUnits Lifetime of Binding Update
 	 * @param p_lFlag Value of L flag in Binding Update
	*/
	*/
	function f_sendBindUpAndWaitForBindAckOffHome(	in template Ipv6Address p_mnCoaTn,
	function f_sendBindUpAndWaitForBindAckOffHome(	in template Ipv6Address p_mnCoaTn,
													in template Ipv6Address p_mnHoaTn,
													in template Ipv6Address p_mnHoaTn,
													in template Ipv6Address p_haGlaNut,
													in template Ipv6Address p_haGlaNut,
													in UInt16 p_seqNr,
													in UInt16 p_seqNr,
													in UInt16 p_timeUnits)
													in UInt16 p_timeUnits,
													in UInt1 p_lFlag)
	runs on Ipv6Node
	runs on Ipv6Node
	return FncRetCode {
	return FncRetCode {
		var FncRetCode v_ret;
		var FncRetCode v_ret;
@@ -185,7 +188,7 @@ module LibIpv6_Rfc3775Mipv6_Functions {
																				m_bindingUpdate(p_seqNr,
																				m_bindingUpdate(p_seqNr,
																								c_aFlag1,
																								c_aFlag1,
																								c_hFlag1,
																								c_hFlag1,
																								c_lFlag0,
																								p_lFlag,
																								c_kFlag0,
																								c_kFlag0,
																								p_timeUnits,
																								p_timeUnits,
																								m_mipOptList_2Elem(
																								m_mipOptList_2Elem(
@@ -1547,7 +1550,8 @@ module LibIpv6_Rfc3775Mipv6_Functions {
															p_mnHoaTn,
															p_mnHoaTn,
															v_haGlasNut[0],
															v_haGlasNut[0],
															c_defSeqNo,
															c_defSeqNo,
															c_100TimeUnits);
															c_100TimeUnits,
															c_lFlag0); //added by PK
		}
		}
		if (v_ret == e_success) {
		if (v_ret == e_success) {
			tc_ac.start(10.0);
			tc_ac.start(10.0);
@@ -1587,7 +1591,8 @@ module LibIpv6_Rfc3775Mipv6_Functions {
													p_mnHoaTn,
													p_mnHoaTn,
													v_haGlasNut[0],
													v_haGlasNut[0],
													c_defSeqNo,
													c_defSeqNo,
													c_100TimeUnits);
													c_100TimeUnits,
													c_lFlag0); //added by PK
		}
		}
		if(v_ret == e_success) {
		if(v_ret == e_success) {
			v_ret := f_mn_ha_sendHomeTestInitAndWaitForReply(	p_mnCoaTn,
			v_ret := f_mn_ha_sendHomeTestInitAndWaitForReply(	p_mnCoaTn,
Loading