Commit 63df986f authored by seb's avatar seb
Browse files

1) field name ciphertext in EncryptedData

2) params naming cleanup p_glaCn -> p_cnGla
3) TODO list up to date
parent 180b7d35
Loading
Loading
Loading
Loading
+11 −5
Original line number Diff line number Diff line
@@ -101,12 +101,10 @@
									out PlaintextData p_plaintextData) 
	return FncRetCode;



	/* @desc    Apply indicated Integrity algorithm to the message.
	/* @desc    Apply indicated Integrity algorithm to the message. Message is an octetstring.
	 *			If e_sha1_96 is chosen, then the key input shall be ignored.
	 *			
	 * @param  p_crypto Cryptographic function used to compute MAC
	 * @param  p_integrityAlgo Cryptographic function used to compute MAC
	 * @param  p_key Key used to compute the MAC
	 * @param  p_message Octetstring message
	 * @return Message HMAC
@@ -114,7 +112,15 @@
	external function fx_integrity( IntegrityAlgo p_integrityAlgo, in octetstring p_key, in octetstring p_message) 
	return octetstring;

	//TODO comment
	/* @desc    Apply indicated Integrity algorithm to the message. Message can only be an EspHeader.
	 *			If e_sha1_96 is chosen, then the key input shall be ignored.
	 *			
	 * @param  p_integrityAlgo Cryptographic function used to compute MAC
	 * @param  p_key Key used to compute the MAC
	 * @param  p_espHeader EspHeader
	 * @param  p_integrityResult  Result of Integrity function
	 * @return Message HMAC
	*/
	external function fx_integrityEspHdr( 	in IntegrityAlgo p_integrityAlgo,
											in octetstring p_key,
											in EspHeader p_espHeader,
+4 −4
Original line number Diff line number Diff line
@@ -141,10 +141,10 @@ group rfc3775Mipv6_ExtHdrFunctions {
		//else if (ischosen(p_mipHeader.mipMessage.homeTest)) {//CNSimu sends this message
		//}
		//else if (ischosen(p_mipHeader.mipMessage.careOfTestInit) and (PX_TEST_IPSEC == true)) {
		//TODO
		//SMU TODO
		//}
		//else if (ischosen(p_mipHeader.mipMessage.careOfTest) and (PX_TEST_IPSEC == true)) {
		//TODO
		//SMU TODO
		//}
		if (ischosen(p_mipHeader.mipMessage.bindingUpdate)) {//Authorization data is only needed for BU sent to CN=IUT
			var UInt8 v_position := 0;
@@ -192,7 +192,7 @@ group rfc3775Mipv6_ExtHdrFunctions {
			}
		}
	//	else if (ischosen(p_mipHeader.mipMessage.bindingAck) and (PX_TEST_IPSEC == true)) {
		//TODO
		//SMU TODO
		//}
		//calc mipHeaderLen
		p_mipHeader.headerLen := fx_mipHeaderLength(p_mipHeader);
@@ -340,7 +340,7 @@ group rfc4303Esp_ExtHdrFunctions {
		}
		// Encrypted payload is assigend for integrity calculation.
		// Afterwards plaintext will be assigned
		v_espHdr.espPayloadData.encryptedData := v_encryptResult.encryptedData;
		v_espHdr.espPayloadData.ciphertextData := v_encryptResult.ciphertextData;
		if (ispresent(v_encryptResult.tfcPadding)) {
			v_espHdr.tfcPadding := v_encryptResult.tfcPadding;
		}
+10 −10
Original line number Diff line number Diff line
@@ -781,20 +781,20 @@ group rfc3775Mipv6_ExtHdrTemplates {
		}

		template MipBindingAuthorizationData m_bindingAuthData(octetstring p_authenticator) := {
			mipOptType := 5,
			mipOptType := c_mipBindingAuthorizationData,
			mipOptLen := lengthof(p_authenticator),
			authenticator := p_authenticator
		}

		template MipBindingAuthorizationData m_bindingAuthData_dummy := {
			mipOptType := 5,
			mipOptType := c_mipBindingAuthorizationData ,
			mipOptLen := 0,
			authenticator := omit//value is set in f_setExtensionHeader
		}

		template MipOptNonceIndices m_mipOptNonceIndices_dummy := {
			mipOptType := 4,
			mipOptLen := 4,
			mipOptType := c_mipOptNonceIndices,
			mipOptLen := c_mipOptNonceIndicesLen,
			homeNonceIndex := c_uInt16Zero,//value is set in f_setExtensionHeader
			careOfNonceIndex := c_uInt16Zero//value is set in f_setExtensionHeader
		}
@@ -802,21 +802,21 @@ group rfc3775Mipv6_ExtHdrTemplates {
		template MipOptNonceIndices m_mipOptNonceIndices(
			UInt16 p_homeNonceIndex,
			UInt16 p_careOfNonceIndex) := {
			mipOptType := 4,
			mipOptLen := 4,
			mipOptType := c_mipOptNonceIndices,
			mipOptLen := c_mipOptNonceIndicesLen,
			homeNonceIndex := p_homeNonceIndex,
			careOfNonceIndex := p_careOfNonceIndex
		}

		template MipOptAltCoA m_altCoA(in template Ipv6Address p_addr) := {
			mipOptType :=3,
			mipOptLen := 16,
			mipOptType :=c_mipOptAltCoA,
			mipOptLen := c_mipOptAltCoALen,
			alternateCoA := p_addr
		}

		template MipOptAltCoA mw_altCoA := {
			mipOptType :=3,
			mipOptLen := 16,
			mipOptType :=c_mipOptAltCoA,
			mipOptLen := c_mipOptAltCoALen,
			alternateCoA := ?
		}
		
+36 −23
Original line number Diff line number Diff line
@@ -89,7 +89,7 @@ group ipv6Packet {
		Ipv6Payload			ipv6Payload optional
	}
	with {
		encode "TODO";
		encode "TODO DTE";
	}
	
	//Alias
@@ -119,7 +119,7 @@ group ipv6Packet {
	//Udp
	type Ipv6Packet UdpPacket;
  	//General IPv6 packet
//  	type octetstring Ipv6Packet;//TODO check this
//  	type octetstring Ipv6Packet;//TODO SMU+DTE check this


	/*
@@ -609,8 +609,8 @@ group rfc3775Mipv6_ExtHdrTypesAndValues {
		 * @desc Derived from RFC3775 Section 6.2.4
		*/
		type record MipOptBindingRefreshAdvice {
			UInt8	mipOptType (2),
			UInt8	mipOptLen (2),
			UInt8	mipOptType (c_mipOptBindingRefreshAdvice),
			UInt8	mipOptLen (c_mipOptBindingRefreshAdviceLen),
			UInt16	refreshInterval
		}
		with {
@@ -621,8 +621,8 @@ group rfc3775Mipv6_ExtHdrTypesAndValues {
		 * @desc Derived from RFC3775 Section 6.2.5
		*/
		type record MipOptAltCoA {
			UInt8	mipOptType (3),
			UInt8	mipOptLen (16),
			UInt8	mipOptType (c_mipOptAltCoA),
			UInt8	mipOptLen (c_mipOptAltCoALen),
			Oct16	alternateCoA
		}
		with {
@@ -633,8 +633,8 @@ group rfc3775Mipv6_ExtHdrTypesAndValues {
		 * @desc Derived from RFC3775 Section 6.2.6
		*/
		type record MipOptNonceIndices {
			UInt8	mipOptType (4),
			UInt8	mipOptLen (4),
			UInt8	mipOptType (c_mipOptNonceIndices),
			UInt8	mipOptLen (c_mipOptNonceIndicesLen),
			UInt16	homeNonceIndex,
			UInt16	careOfNonceIndex
		}
@@ -647,7 +647,7 @@ group rfc3775Mipv6_ExtHdrTypesAndValues {
		 *       authenticator value depends on the used author procedure.
		*/
		type record MipBindingAuthorizationData {
			UInt8	mipOptType (5),
			UInt8	mipOptType (c_mipBindingAuthorizationData),
			UInt8	mipOptLen,
			octetstring	authenticator optional//so that it can be omiited when creating mobility data
		}
@@ -661,6 +661,20 @@ group rfc3775Mipv6_ExtHdrTypesAndValues {

	group mipConstants {

		group mipOptionsConstants {
			
			//Type
			const UInt8 c_mipOptBindingRefreshAdvice := 2;
			const UInt8 c_mipOptAltCoA := 3;
			const UInt8 c_mipOptNonceIndices := 4;
			const UInt8 c_mipBindingAuthorizationData := 5;
			//Length
			const UInt8 c_mipOptBindingRefreshAdviceLen := 2;
			const UInt8 c_mipOptAltCoALen := 16;
			const UInt8 c_mipOptNonceIndicesLen := 4;

		}//end group mipOptionsConstants
		
		const UInt8 c_maxMipOptions:=10;

		group mipMessageValues {
@@ -679,7 +693,6 @@ group rfc3775Mipv6_ExtHdrTypesAndValues {
			const UInt8	c_bindingUpdate := 5;
			const UInt8	c_bindingAck := 6;	
			const UInt8	c_bindingError := 7;
			//todo add alias headertype
		}

		
@@ -745,13 +758,13 @@ group rfc4303Esp_ExtHdrTypesAndValues {
			octetstring			icv optional// depends on integrity-algo
		}
		with {
	        encode "TODO";
	        encode "DTE TODO";
	    }
		//Transport mode : no IPv6Header and no tfcPadding
		//Tunnel mode : IPv6Header and maybe tfcPadding (use payloadLength to calc total length)

		type union EspPayloadData {
			octetstring		  	encryptedData,
			octetstring		  	ciphertextData,
			PlaintextData		plaintextData
		}

@@ -777,7 +790,7 @@ group cryptoTypes {
		Ipv6Payload			ipv6Payload optional
    }
	with {
		encode "TODO";
		encode "DTE TODO";
	}

	type enumerated EncryptionAlgo {
@@ -789,7 +802,7 @@ group cryptoTypes {
	}
	with {
		//encode "use=com.testingtech.ttcn.tci.*;";
		encode "TODO";
		encode " DTE TODO";
	}

	type enumerated IntegrityAlgo {
@@ -802,7 +815,7 @@ group cryptoTypes {
	}
	with {
		//encode "use=com.testingtech.ttcn.tci.*;";
		encode "TODO";
		encode "DTE TODO";
	}

	type enumerated CombinedModeAlgo {
@@ -810,7 +823,7 @@ group cryptoTypes {
	}
	with {
		//encode "use=com.testingtech.ttcn.tci.*;";
		encode "TODO";
		encode "DTE TODO";
	}

	type enumerated IpSecProtocolMode {
@@ -819,7 +832,7 @@ group cryptoTypes {
	}
	with {
		//encode "use=com.testingtech.ttcn.tci.*;";
		encode "TODO";
		encode "DTE TODO";
	}

	type enumerated IpSecProtocol{
@@ -827,6 +840,10 @@ group cryptoTypes {
		e_ah (1)
	}

	//Security Association Database
	type record length (1 .. c_maxNrDa) of Sa Sad;
	const UInt8 c_maxNrDa := 8;

	//Security Association
	type record Sa {
		UInt32 securityParametersIndex,
@@ -843,19 +860,15 @@ group cryptoTypes {
	}
	with {
		//encode "use=com.testingtech.ttcn.tci.*;";
		encode "TODO";
		encode "DTE TODO";
	}

	//Security Association Database
	type record length (1 .. c_maxNrDa) of Sa Sad;
	const UInt8 c_maxNrDa := 8;

	/* @desc Result of fx_encrypt
	*
	*/
	type record EncryptResult {
		octetstring		iv optional,	
		octetstring 	encryptedData optional,
		octetstring 	ciphertextData optional,
		octetstring 	tfcPadding optional
	}

+38 −40
Original line number Diff line number Diff line
@@ -278,6 +278,7 @@ module LibIpv6_Rfc3775Mipv6_Functions {
		tc_ac.start;
		alt {
			//the test adapter process consists of decrypt and integrity check
			//TODO SMU replace vc_sad[0] with vc_sad[vc_sad.secParamsIndex]
			[]	ipPort.receive(mw_generalIpv6_extHdr_noData(
									c_routeHdr,
									p_haGlaNut,
@@ -369,7 +370,7 @@ module LibIpv6_Rfc3775Mipv6_Functions {
		}

		var EncryptResult v_encryptResult := fx_encryptModularIpPacket(
												e_transportMode,//TODO check if Pixit or vc_sad[0].ipSecProtocolMode,
												e_transportMode,
												vc_sad[0].espEncryptionAlgo,
												vc_sad[0].espEncryptionKey,
												v_modularIpv6Packet);
@@ -381,9 +382,9 @@ module LibIpv6_Rfc3775Mipv6_Functions {
			securityParametersIndex := vc_sad[0].securityParametersIndex,
			sequenceNumber := vc_sad[0].sequenceNumber,		
			// Payload
			iv := v_encryptResult.iv,//TODO check omit
			iv := v_encryptResult.iv,
			espPayloadData := v_encryptResult.espPayloadData,
			tfcPadding := v_encryptResult.tfcPadding,//TODO check omit
			tfcPadding := v_encryptResult.tfcPadding,
			// Trailer
			padding := omit,
			padLength := c_uInt8Zero,
@@ -391,8 +392,6 @@ module LibIpv6_Rfc3775Mipv6_Functions {
			icv := omit
		}

		//TODO: use function to determine if padding is needed (RFC4303/clause2.4). After or before icv calculation?

		var ExtensionHeader v_extHdr_espHeader := {espHeader_snd := v_espHeader_snd};

		v_espHeader_snd.icv := fx_integrityExtHdr(
@@ -400,7 +399,6 @@ module LibIpv6_Rfc3775Mipv6_Functions {
									vc_sad[0].espIntegrityKey,
									v_extHdr_espHeader);

		//TODO, put the above in 1 function f_createEspHdr

		v_ret := f_sendGeneralIpv6(m_generalIpv6_extHdr(c_dstHdr,
														p_mnCoaTn,
@@ -428,11 +426,11 @@ module LibIpv6_Rfc3775Mipv6_Functions {
													mw_extHdr_espHeader))) -> value  v_ipv6Packet {

					
					//TODO check Integrity
				
														var DecryptedEspHeaderData v_decryptedEspHeaderData := fx_decryptEspPayload(
																			1,//IvLength TODO make hashmap to map length to algo,
																			2,//IcvLength,
																			e_transportMode,//TODO check if Pixit or vc_sad[0].ipSecProtocolMode,
																			1,
																			2,
																			e_transportMode,
																			vc_sad[0].espEncryptionAlgo,
																			vc_sad[0].espEncryptionKey,
																			v_ipv6Packet.extHdrList[1].espHeader_rcv.espHeaderData );
@@ -524,7 +522,7 @@ module LibIpv6_Rfc3775Mipv6_Functions {
																								m_mipOptList_4Elem(
																									m_mipOpt_padN(m_optPad2),
																									m_mipOpt_altCoa(m_altCoA(p_mnCoaTn)),
																									m_mipOpt_nonceIndices(m_mipOptNonceIndices_dummy), //TODO validate byte boundary. padding should not be needed here
																									m_mipOpt_nonceIndices(m_mipOptNonceIndices_dummy), //TODO SMU+AB validate byte boundary. padding should not be needed here
																									m_mipOpt_bindingAuth(m_bindingAuthData_dummy)))))));
		if ( v_ret != e_success ) {return v_ret;}
		tc_ac.start;
@@ -541,7 +539,7 @@ module LibIpv6_Rfc3775Mipv6_Functions {
													mw_extHdr_mipHeader (	c_noNextHdr,
																			c_bindingAck,
																			mw_bindingAck(p_seqNr))))) {
					//TODO check on authenticator
					//TODO SMU check on authenticator
					tc_ac.stop;	
					v_ret := e_success ;
				}
@@ -587,7 +585,7 @@ module LibIpv6_Rfc3775Mipv6_Functions {
							repeat;
						}
			}
//				TODO wait for TT compiler fix
//				TODO DTE wait for TT compiler fix
//				[] a_receiveBindingUpdateAndReply(p_paramsRt.haGlas[0]);
//				[] tc_ac.timeout {//Guard timer
//					v_ret:= e_timeout;
@@ -628,7 +626,7 @@ module LibIpv6_Rfc3775Mipv6_Functions {
							repeat;
						}
			}
//				TODO add when TT compiler fix
//				TODO DTE add when TT compiler fix
//						[] a_receiveBindingUpdateAndReply(p_paramsRt.haGlas[0]);
//						[] tc_ac.timeout {//Guard timer
//							v_ret:= e_timeout;
@@ -647,10 +645,10 @@ module LibIpv6_Rfc3775Mipv6_Functions {
	
	/*
	 * @desc  Test Node waits for Home Test Init and replies with Home Test
 	 * @param p_glaCn Global Address of CN (test node 2)
 	 * @param p_cnGla Global Address of CN (test node 2)
	 * @param p_mnHoa Mobile Node Home Address of test node 1
	*/
	function f_cn_ha_waitForHomeTestInitAndReply(	in template Ipv6Address p_glaCn,
	function f_cn_ha_waitForHomeTestInitAndReply(	in template Ipv6Address p_cnGla,
											in template Ipv6Address p_mnHoa)
	runs on Ipv6Node
	return FncRetCode {
@@ -661,7 +659,7 @@ module LibIpv6_Rfc3775Mipv6_Functions {
		alt {
			[]	ipPort.receive(mw_generalIpv6_extHdr_noData(	c_mipHdr,
												p_mnHoa,
												p_glaCn,
												p_cnGla,
												m_extHdrList_1Elem( mw_extHdr_mipHeader (	c_noNextHdr,
																							c_homeTestInit,
																							mw_hoti)))) -> value v_ipv6Packet {
@@ -681,7 +679,7 @@ module LibIpv6_Rfc3775Mipv6_Functions {
		} // end alt

		v_ret := f_sendGeneralIpv6(m_generalIpv6_extHdr (c_mipHdr,
											p_glaCn,
											p_cnGla,
											p_mnHoa,
											m_extHdrList_1Elem( m_extHdr_mipHeader (	c_noNextHdr,
																						c_homeTest,
@@ -696,10 +694,10 @@ module LibIpv6_Rfc3775Mipv6_Functions {
	/*
	 * @desc  Test Node waits for Home Test Init and replies with Home Test
	 *			in Drive and Sniff mode
 	 * @param p_glaCn Global Address of CN (test node 2)
 	 * @param p_cnGla Global Address of CN (test node 2)
	 * @param p_mnHoa Mobile Node Home Address of test node 1
	*/
	function f_waitForHomeTestInitAndReply_DS(	in template Ipv6Address p_glaCn,
	function f_waitForHomeTestInitAndReply_DS(	in template Ipv6Address p_cnGla,
											in template Ipv6Address p_mnHoa)
	runs on Ipv6Node
	return FncRetCode {
@@ -709,7 +707,7 @@ module LibIpv6_Rfc3775Mipv6_Functions {
		alt {
			[]	ipPort.receive(mw_generalIpv6_extHdr_noData(	c_mipHdr,
												p_mnHoa,
												p_glaCn,
												p_cnGla,
												m_extHdrList_1Elem( mw_extHdr_mipHeader (	c_noNextHdr,
																							c_homeTestInit,
																							mw_hoti)))) {
@@ -724,7 +722,7 @@ module LibIpv6_Rfc3775Mipv6_Functions {
		} // end alt

//		v_ret := f_sendGeneralIpv6(m_generalIpv6_srcDst (c_mipHdr,
//											p_glaCn,
//											p_cnGla,
//											p_mnHoa,
//											m_extHdrList_1Elem( m_extHdr_mipHeader (	c_noNextHdr,
//																						c_homeTest,
@@ -733,7 +731,7 @@ module LibIpv6_Rfc3775Mipv6_Functions {
		alt {
			[]	ipPort.receive(mw_generalIpv6_extHdr_noData(
									c_mipHdr,
									p_glaCn,
									p_cnGla,
									p_mnHoa,
									m_extHdrList_1Elem( mw_extHdr_mipHeader (	c_noNextHdr,
																				c_homeTest,
@@ -756,12 +754,12 @@ module LibIpv6_Rfc3775Mipv6_Functions {
	 * @desc  Test Node sends Home Test Init and waits for Home Test
	 * @param p_mnCoa Mobile Node Care of Address of test node 1
	 * @param p_mnHoa Mobile Node Home Address of test node 1
 	 * @param p_glaCn Global Address of CN (test node 2)
 	 * @param p_cnGla Global Address of CN (test node 2)
	 * @param p_haGlaNut Home Agent Address of IUT
	*/
	function f_mn_ha_sendHomeTestInitAndWaitForReply(	in template Ipv6Address p_mnCoa,
												in template Ipv6Address p_mnHoa,
												in template Ipv6Address p_glaCn,
												in template Ipv6Address p_cnGla,
												in template Ipv6Address p_haGlaNut)
	runs on Ipv6Node
	return FncRetCode {
@@ -773,7 +771,7 @@ module LibIpv6_Rfc3775Mipv6_Functions {
										p_mnCoa,
										p_haGlaNut,
										m_extHdrList_2Elem(
											m_extHdr_tunneledHeader(c_mipHdr, p_mnHoa, p_glaCn),
											m_extHdr_tunneledHeader(c_mipHdr, p_mnHoa, p_cnGla),
											m_extHdr_mipHeader (c_noNextHdr,
																c_homeTestInit,
																m_hoti(vc_mipSec.mnSimuParams.homeInitCookie)))));
@@ -785,7 +783,7 @@ module LibIpv6_Rfc3775Mipv6_Functions {
										p_haGlaNut,
										p_mnCoa,
										m_extHdrList_2Elem(
											mw_extHdr_tunneledHeader(c_mipHdr, p_glaCn, p_mnHoa),
											mw_extHdr_tunneledHeader(c_mipHdr, p_cnGla, p_mnHoa),
											mw_extHdr_mipHeader (	c_noNextHdr,
																	c_homeTest,
																	mw_hot)))) -> value v_ipv6Packet {
@@ -813,11 +811,11 @@ module LibIpv6_Rfc3775Mipv6_Functions {
	/*
	 * @desc  Test Node sends Home Test Init and waits for Home Test
	 * @param p_mnHoa Mobile Node Home Address of test node 1
 	 * @param p_glaCn Global Address of CN (test node 2)
 	 * @param p_cnGla Global Address of CN (test node 2)
	*/
	function f_ha_cn_sendHomeTestInitAndWaitForReply(	
		in template Ipv6Address p_mnHoa,
		in template Ipv6Address p_glaCn)
		in template Ipv6Address p_cnGla)
	runs on Ipv6Node
	return FncRetCode {
		var FncRetCode v_ret;
@@ -826,7 +824,7 @@ module LibIpv6_Rfc3775Mipv6_Functions {
		v_ret := f_sendGeneralIpv6(m_generalIpv6_extHdr (
										c_mipHdr,
										p_mnHoa,
										p_glaCn,
										p_cnGla,
										m_extHdrList_1Elem(
											m_extHdr_mipHeader (c_noNextHdr,
																c_homeTestInit,
@@ -836,7 +834,7 @@ module LibIpv6_Rfc3775Mipv6_Functions {
		alt {
			[]	ipPort.receive(mw_generalIpv6_extHdr_noData(
										c_mipHdr,
										p_glaCn,
										p_cnGla,
										p_mnHoa,
										m_extHdrList_1Elem(
											mw_extHdr_mipHeader (	c_noNextHdr,
@@ -872,11 +870,11 @@ module LibIpv6_Rfc3775Mipv6_Functions {
		/*
	 * @desc  Test Node sends CareOfTestInit and waits for CareOfTest
	 * @param p_mnHoa Mobile Node Home Address of test node 1
 	 * @param p_glaCn Global Address of CN (test node 2)
 	 * @param p_cnGla Global Address of CN (test node 2)
	*/
	function f_mn_cn_sendCareOfTestInitAndWaitForReply(	
		in template Ipv6Address p_mnCoa,
		in template Ipv6Address p_glaCn)
		in template Ipv6Address p_cnGla)
	runs on Ipv6Node
	return FncRetCode {
		var FncRetCode v_ret;
@@ -885,7 +883,7 @@ module LibIpv6_Rfc3775Mipv6_Functions {
		v_ret := f_sendGeneralIpv6(m_generalIpv6_extHdr (
										c_mipHdr,
										p_mnCoa,
										p_glaCn,
										p_cnGla,
										m_extHdrList_1Elem(
											m_extHdr_mipHeader (c_noNextHdr,
																c_careOfTestInit,
@@ -895,7 +893,7 @@ module LibIpv6_Rfc3775Mipv6_Functions {
		alt {
			[]	ipPort.receive(mw_generalIpv6_extHdr_noData(
										c_mipHdr,
										p_glaCn,
										p_cnGla,
										p_mnCoa,
										m_extHdrList_1Elem(
											mw_extHdr_mipHeader (	c_noNextHdr,
@@ -928,7 +926,7 @@ module LibIpv6_Rfc3775Mipv6_Functions {

	group mipSecurityFns {

	function f_createKbm(out Oct20 p_kbm) //TODO should be creatMnSimuKbm
	function f_createKbm(out Oct20 p_kbm) //TODO SMU should be creatMnSimuKbm
	runs on LibIpv6Node
	return FncRetCode {

@@ -942,7 +940,7 @@ module LibIpv6_Rfc3775Mipv6_Functions {
					c_1ZeroByte,
					bit2oct(vc_mipSec.mnSimuParams.receivedHomeKeygenToken)
					& bit2oct(vc_mipSec.mnSimuParams.receivedCareOfKeygenToken) ) ;
       //TODO check if truncate to 20 octet is needed
       //TODO SMU+ DTE check if truncate to 20 octet is needed
		return e_success;

	}//end function f_createKbm
@@ -1585,7 +1583,7 @@ module LibIpv6_Rfc3775Mipv6_Functions {
				v_lifetime := v_ipv6Packet.extHdrList[0].mipHeader.mipMessage.bindingUpdate.lifeTime;
				//Get HomeAddress
				v_mnHomeAddr := v_ipv6Packet.ipv6Hdr.sourceAddress;
				//TODO read v_mnCareOfAddr from MipOptions
				//TODO SMU read v_mnCareOfAddr from MipOptions
				v_ret := e_success ;
				v_ret := f_sendGeneralIpv6(m_generalIpv6_extHdr(	c_mipHdr,
																	p_paramsTn.haGlas[0],//p_haGlaTn,
@@ -1697,7 +1695,7 @@ module LibIpv6_Rfc3775Mipv6_Functions {
				v_lifetime := v_ipv6Packet.extHdrList[1].mipHeader.mipMessage.bindingUpdate.lifeTime;
				//Get CareOfAddress
				v_mnCareOfAddr1 := v_ipv6Packet.ipv6Hdr.sourceAddress;
				//TODO read v_mnCareOfAddr from MipOptions
				//TODO SMU read v_mnCareOfAddr from MipOptions
				//GetHomeAddress
				v_mnHomeAddr := v_ipv6Packet.extHdrList[0].destinationOptionHeader.destOptionList[1].homeAddressOption.homeAddress;
				v_ret := e_success ;
Loading