Commit 3e0aa1c7 authored by validator's avatar validator
Browse files

No commit message

No commit message
parent c46cc8fa
Loading
Loading
Loading
Loading
+16 −14
Original line number Diff line number Diff line
@@ -62,7 +62,8 @@
		var Ipv6Address v_homeAddress := c_16ZeroBytes;

		//select ext hdrs that need special calculation
		for (i:=0; i<=sizeof(p_generalIpv6.extHdrList);i:=i+1) {
		if (ispresent(p_generalIpv6.extHdrList)) {
			for (i:=0; i<sizeof(p_generalIpv6.extHdrList);i:=i+1) {
				if (ischosen(p_generalIpv6.extHdrList[i].mipHeader)) {
					if (f_isPresentHomeAddressOption(p_generalIpv6.extHdrList, v_homeAddress) == e_success) {
						f_setMipHeader(	v_homeAddress,
@@ -79,6 +80,7 @@
					f_setSecurityHdr();
				}  */
			}
		}
		return e_success;
	}//end f_setGeneralIpv6ExtensionHeaders

+1 −1
Original line number Diff line number Diff line
@@ -325,7 +325,7 @@
		 *	@param  p_ipv6Address First IPv6 address in the routing header
		*/
		template RoutingHeaderData m_routingHeaderData_ipv6AddressList_1Elem ( template Ipv6Address p_ipv6Address ) := {
			ipv6AddressList := {
			rtHdrDataIpv6AddressList := {
				p_ipv6Address
			}
		}
+16 −5
Original line number Diff line number Diff line
@@ -68,13 +68,23 @@
			encode (nextHeader) "tag='nextHeader';";
		}
		
		/*
		 * @desc Derived from RFC 2460 Section 3
		 * @url http://www.ietf.org/rfc/rfc2460.txt
		*/
		type Ipv6Header TunneledIpv6Header
		with {
			encode "present=isEOF()== false && (valueOf(dec.getTag('nextHeader'))==41);";
		}
	
		
	} // end ipv6HeaderRelatedTypes

	group extensionHeaders {

		type set length(1 .. c_maxIpv6ExtHdrs) of ExtensionHeader ExtensionHeaderList
		with {
			encode "present=isEOF()== false && ((valueOf(dec.getTag('nextHeader'))==0) || (valueOf(dec.getTag('nextHeader'))==43) || (valueOf(dec.getTag('nextHeader'))==44) || (valueOf(dec.getTag('nextHeader'))==60) || (valueOf(dec.getTag('nextHeader'))==51) || (valueOf(dec.getTag('nextHeader'))==50) || (valueOf(dec.getTag('nextHeader'))==41))";
			encode "present=isEOF()== false && ((valueOf(dec.getTag('nextHeader'))==0) || (valueOf(dec.getTag('nextHeader'))==43) || (valueOf(dec.getTag('nextHeader'))==44) || (valueOf(dec.getTag('nextHeader'))==60) || (valueOf(dec.getTag('nextHeader'))==51) || (valueOf(dec.getTag('nextHeader'))==50) || (valueOf(dec.getTag('nextHeader'))==41) || (valueOf(dec.getTag('nextHeader'))==135))";
		}
		
		/*
@@ -89,7 +99,8 @@
			FragmentHeader		fragmentHeader,
			DestOptionHeader 	destinationOptionHeader,
			//tunneledIpv6
			Ipv6Header			tunnelIpv6,
//			Ipv6Header			tunnelIpv6,
			TunneledIpv6Header	tunnelIpv6,
			MipHeader			mipHeader,//defined in LibIpv6_MultiRfcs_TypesAndValues
			AuthHeader			authHeader, //defined in LibIpv6_MultiRfcs_TypesAndValues
			EspHeader			espHeader/*, //defined in LibIpv6_MultiRfcs_TypesAndValues
@@ -97,7 +108,7 @@
*/
		} 
		with {
			encode "present=isEOF()== false && ((valueOf(dec.getTag('nextHeader'))==0) || (valueOf(dec.getTag('nextHeader'))==43) || (valueOf(dec.getTag('nextHeader'))==44) || (valueOf(dec.getTag('nextHeader'))==60) || (valueOf(dec.getTag('nextHeader'))==51) || (valueOf(dec.getTag('nextHeader'))==50) || (valueOf(dec.getTag('nextHeader'))==41))";
			encode "present=isEOF()== false && ((valueOf(dec.getTag('nextHeader'))==0) || (valueOf(dec.getTag('nextHeader'))==43) || (valueOf(dec.getTag('nextHeader'))==44) || (valueOf(dec.getTag('nextHeader'))==60) || (valueOf(dec.getTag('nextHeader'))==51) || (valueOf(dec.getTag('nextHeader'))==50) || (valueOf(dec.getTag('nextHeader'))==41) || (valueOf(dec.getTag('nextHeader'))==135))";
		}

		/*
@@ -139,7 +150,7 @@
		 *		   and to mipDate when 2 (Length req. to be checked!!)
		*/
		type union RoutingHeaderData{
			Ipv6AddressList	ipv6AddressList,
			RtHdrDataIpv6AddressList	rtHdrDataIpv6AddressList,
			MipData						mipData
		}
		
+10 −5
Original line number Diff line number Diff line
@@ -179,10 +179,15 @@
			SrcLinkLayerAddress 	srcLinkLayerAddr optional,
			MtuOption				mtuOption optional,
			PrefixInfoList			prefixInfoList optional,
			AdvertisementInterval 	advertisementInterval optional,
			HomeAgentInfo 			homeAgentInfo optional,
			octetstring         	otherOption optional
		} 

		type set length (1..c_maxNrPrefixInfo) of PrefixInfo PrefixInfoList;
		type set length (1..c_maxNrPrefixInfo) of PrefixInfo PrefixInfoList
		with {
			encode "present=bytes(1, 0x03)"
		}

		/*
		 * @desc Derived from RFC 2461 clause 4.6.2
+61 −37
Original line number Diff line number Diff line
@@ -82,7 +82,8 @@ module LibIpv6_Rfc3775Mipv6_Functions {
		var Ipv6Address v_homeAddress := c_16ZeroBytes;

		//select ext hdrs that need special calculation
		for (i:=0; i<=sizeof(p_haAddrDreq.extHdrList);i:=i+1) {
		if (ispresent(p_haAddrDreq.extHdrList)) {
			for (i:=0; i<sizeof(p_haAddrDreq.extHdrList);i:=i+1) {
				if (ischosen(p_haAddrDreq.extHdrList[i].mipHeader)) {
					if (f_isPresentHomeAddressOption(p_haAddrDreq.extHdrList, v_homeAddress) == e_success) {
						f_setMipHeader(	v_homeAddress,
@@ -99,6 +100,7 @@ module LibIpv6_Rfc3775Mipv6_Functions {
					f_setSecurityHdr();
				}  */
			}
		}
		return e_success;
	}//end f_setHaAddrDreqExtensionHeaders	

@@ -161,7 +163,7 @@ module LibIpv6_Rfc3775Mipv6_Functions {
															p_haGlaNut,
															m_extHdrList_2Elem(
																m_extHdr_dstOptHeader(	c_mipHdr,
																						c_optLen16,
																						c_optLen2,
																						m_dstOptList_2Elem(
																							m_dstOpt_padN(m_optPad4),
																							m_dstOpt_homeAddr(p_mnHoaTn))),
@@ -170,9 +172,9 @@ module LibIpv6_Rfc3775Mipv6_Functions {
																					m_bindingUpdate(c_defSeqNo,
																									c_aFlag1,
																									c_hFlag1,
																									c_lFlag1,
																									c_kFlag1,
																									c_zeroTimeUnits,
																									c_lFlag0,
																									c_kFlag0,
																									c_100TimeUnits,
																									m_mipOptList_1Elem(
																										m_mipOpt_padN(m_optPad4)))))));
			if ( v_ret != e_success ) {return v_ret;}
@@ -193,6 +195,16 @@ module LibIpv6_Rfc3775Mipv6_Functions {
						tc_ac.stop;	
						v_ret := e_success ;
					}
				[]	ipPort.receive(mw_generalIpv6_srcDst(	c_mipHdr,
															p_haGlaNut,
															p_mnCoaTn,
															m_extHdrList_1Elem(
																mw_extHdr_mipHeader (	c_noNextHdr,
																						c_bindingError,
																						mw_bindingError)))) {
						tc_ac.stop;
						v_ret := e_error ;
					}
				[]	tc_ac.timeout{
						v_ret :=  e_timeout;
						log("**** f_registerMnToHa: ERROR: tc_ac.timeout **** ");
@@ -414,7 +426,8 @@ module LibIpv6_Rfc3775Mipv6_Functions {
		var Ipv6Address v_homeAddress := c_16ZeroBytes;

		//select ext hdrs that need special calculation
		for (i:=0; i<=sizeof(p_mipPrefixSol.extHdrList);i:=i+1) {
		if (ispresent(p_mipPrefixSol.extHdrList)) {
			for (i:=0; i<sizeof(p_mipPrefixSol.extHdrList);i:=i+1) {
				if (ischosen(p_mipPrefixSol.extHdrList[i].mipHeader)) {
					if (f_isPresentHomeAddressOption(p_mipPrefixSol.extHdrList, v_homeAddress) == e_success) {
						f_setMipHeader(	v_homeAddress,
@@ -431,6 +444,7 @@ module LibIpv6_Rfc3775Mipv6_Functions {
					f_setSecurityHdr();
				}  */
			}
		}
		return e_success;
	}//end f_setMipPrefixSolExtensionHeaders	

@@ -454,7 +468,7 @@ module LibIpv6_Rfc3775Mipv6_Functions {
											m_extHdrList_1Elem(
												m_extHdr_dstOptHeader(	
													c_icmpHdr,
													c_optLen16,
													c_optLen2,
													m_dstOptList_2Elem(
														m_dstOpt_padN(m_optPad4),
														m_dstOpt_homeAddr(p_mnHoaTn))))));
@@ -475,6 +489,16 @@ module LibIpv6_Rfc3775Mipv6_Functions {
						tc_ac.stop;
						v_ret := e_success ;
					}
				[]	ipPort.receive(mw_generalIpv6_srcDst(	c_mipHdr,
															p_haGla,
															p_mnCoaTn,
															m_extHdrList_1Elem(
																mw_extHdr_mipHeader (	c_noNextHdr,
																						c_bindingError,
																						mw_bindingError)))) {
						tc_ac.stop;
						v_ret := e_error ;
					}
				[]	tc_ac.timeout{
						v_ret :=  e_timeout;
						log("**** f_sendMipPrefixSolAndWaitForReply: ERROR: tc_ac.timeout **** ");
Loading