Commit dd25ebaa authored by seb's avatar seb
Browse files

No commit message

No commit message
parent 788c9232
Loading
Loading
Loading
Loading
+5 −5
Original line number Original line Diff line number Diff line
@@ -54,21 +54,21 @@
	 * @param 	p_msg MIPHeader to be sent	
	 * @param 	p_msg MIPHeader to be sent	
	 * @return 	execution status
	 * @return 	execution status
	*/
	*/
		function f_sendIpv6ExtHdrs(template Ipv6ExtHdrs p_msg)
		function f_sendGeneralIpv6(template GeneralIpv6 p_msg)
		runs on LibIpv6Node
		runs on LibIpv6Node
		return FncRetCode {
		return FncRetCode {


			var Ipv6Packet v_ipPkt;
			var Ipv6Packet v_ipPkt;
			v_ipPkt.ipv6ExtHdrs := valueof(p_msg);
			v_ipPkt.generalIpv6 := valueof(p_msg);
			//calc payloadLen
			//calc payloadLen
			v_ipPkt.ipv6ExtHdrs.ipv6Hdr.payloadLength := fx_payloadLength (v_ipPkt);
			v_ipPkt.generalIpv6.ipv6Hdr.payloadLength := fx_payloadLength (v_ipPkt);
			//set extensionHeaders
			//set extensionHeaders
			if(f_setExtensionHeaders(v_ipPkt.ipv6ExtHdrs.extHdrList) != e_success) {
			if(f_setExtensionHeaders(v_ipPkt.generalIpv6.extHdrList) != e_success) {
				log(" **** f_sendIpv6ExtHdrs: Error whem calculating length of extension headers ****");
				log(" **** f_sendIpv6ExtHdrs: Error whem calculating length of extension headers ****");
				return e_error;
				return e_error;
			}
			}
			//send
			//send
			ipPort.send(v_ipPkt.ipv6ExtHdrs);
			ipPort.send(v_ipPkt.generalIpv6);


			return e_success;
			return e_success;
		}
		}
+10 −8
Original line number Original line Diff line number Diff line
@@ -169,7 +169,7 @@
		/*
		/*
		 *	@param  p_extHdr First element in extension header
		 *	@param  p_extHdr First element in extension header
	    */
	    */
		template ExtensionHeaderList m_extHdrList_elemNo1 ( template ExtensionHeader p_extHdr ) := {
		template ExtensionHeaderList m_extHdrList_1Elem ( template ExtensionHeader p_extHdr ) := {
			p_extHdr
			p_extHdr
		}
		}


@@ -177,7 +177,7 @@
		 *	@param  p_extHdr1 First element in extension header
		 *	@param  p_extHdr1 First element in extension header
		 *	@param  p_extHdr2 Second element in extension header
		 *	@param  p_extHdr2 Second element in extension header
	    */
	    */
		template ExtensionHeaderList m_extHdrList_elemNo2 ( template ExtensionHeader p_extHdr1,
		template ExtensionHeaderList m_extHdrList_2Elem ( template ExtensionHeader p_extHdr1,
			template ExtensionHeader p_extHdr2
			template ExtensionHeader p_extHdr2
		) := {
		) := {
			p_extHdr1,
			p_extHdr1,
@@ -189,7 +189,7 @@
		 *	@param  p_extHdr2 Second element in extension header
		 *	@param  p_extHdr2 Second element in extension header
		 *	@param  p_extHdr3 Second element in extension header		 
		 *	@param  p_extHdr3 Second element in extension header		 
		*/
		*/
		template ExtensionHeaderList m_extHdrList_elemNo3 ( template ExtensionHeader p_extHdr1,
		template ExtensionHeaderList m_extHdrList_3Elem ( template ExtensionHeader p_extHdr1,
			template ExtensionHeader p_extHdr2,
			template ExtensionHeader p_extHdr2,
			template ExtensionHeader p_extHdr3	
			template ExtensionHeader p_extHdr3	
		) := {
		) := {
@@ -324,7 +324,7 @@
		/*
		/*
		 *	@param  p_ipv6Address First IPv6 address in the routing header
		 *	@param  p_ipv6Address First IPv6 address in the routing header
		*/
		*/
		template RoutingHeaderData m_routingHeaderData_ipv6AddressList_elemNo1 ( template Ipv6Address p_ipv6Address ) := {
		template RoutingHeaderData m_routingHeaderData_ipv6AddressList_1Elem ( template Ipv6Address p_ipv6Address ) := {
			ipv6AddressList := {
			ipv6AddressList := {
				p_ipv6Address
				p_ipv6Address
			}
			}
@@ -486,14 +486,15 @@
		 *	@param  p_dst Binary IPv6 address associated with NUT.
		 *	@param  p_dst Binary IPv6 address associated with NUT.
		 *
		 *
		*/
		*/
		template Ipv6ExtHdrs m_ipv6ExtHdrs_srcDst(
		template GeneralIpv6 m_generalIpv6_srcDst(
			UInt8 p_nextHeader,
			UInt8 p_nextHeader,
			template Ipv6Address p_src,
			template Ipv6Address p_src,
			template Ipv6Address p_dst,
			template Ipv6Address p_dst,
			template ExtensionHeaderList p_extHdrList
			template ExtensionHeaderList p_extHdrList
		) := {
		) := {
			ipv6Hdr := m_ipHdr_nextHdr_srcDst(p_nextHeader, p_src, p_dst),
			ipv6Hdr := m_ipHdr_nextHdr_srcDst(p_nextHeader, p_src, p_dst),
			extHdrList := p_extHdrList
			extHdrList := p_extHdrList,
			data := omit
		}
		}


		/*
		/*
@@ -504,14 +505,15 @@
		 *	@param  p_dst Binary IPv6 address associated with NUT.
		 *	@param  p_dst Binary IPv6 address associated with NUT.
		 *
		 *
		*/
		*/
		template Ipv6ExtHdrs mw_ipv6ExtHdrs_srcDst(
		template GeneralIpv6 mw_generalIpv6_srcDst(
			UInt8 p_nextHeader,
			UInt8 p_nextHeader,
			template Ipv6Address p_src,
			template Ipv6Address p_src,
			template Ipv6Address p_dst,
			template Ipv6Address p_dst,
			template ExtensionHeaderList p_extHdrList
			template ExtensionHeaderList p_extHdrList
		) := {
		) := {
			ipv6Hdr := mw_ipHdr_nextHdr_srcDst(p_nextHeader, p_src, p_dst),
			ipv6Hdr := mw_ipHdr_nextHdr_srcDst(p_nextHeader, p_src, p_dst),
			extHdrList := p_extHdrList
			extHdrList := p_extHdrList,
			data := *
		}
		}
		
		
	}//end group ipPacketsWithOnlyExtensionHdrsTemplates
	}//end group ipPacketsWithOnlyExtensionHdrsTemplates
+0 −9
Original line number Original line Diff line number Diff line
@@ -202,15 +202,6 @@
	
	
	group generalIpv6MessageType {
	group generalIpv6MessageType {



		/*
		 * @desc PDU type derived from RFC2460
		*/
		type record Ipv6ExtHdrs {
			Ipv6Header			ipv6Hdr,
			ExtensionHeaderList extHdrList
        }

		/*
		/*
		 * @desc PDU type derived from RFC2460
		 * @desc PDU type derived from RFC2460
		*/
		*/
+2 −2
Original line number Original line Diff line number Diff line
@@ -636,7 +636,7 @@
		v_ret := f_sendEchoRequest(
		v_ret := f_sendEchoRequest(
					m_echoRequest_extHdr_data (
					m_echoRequest_extHdr_data (
							c_tunneledIpHdr,
							c_tunneledIpHdr,
							m_extHdrList_elemNo1 (
							m_extHdrList_1Elem (
								m_extHdr_tunneledHeader (
								m_extHdr_tunneledHeader (
									c_icmpHdr,
									c_icmpHdr,
									p_glaC,
									p_glaC,
@@ -654,7 +654,7 @@
									p_glaB,
									p_glaB,
									p_glaA,
									p_glaA,
									c_tunneledIpHdr,
									c_tunneledIpHdr,
									m_extHdrList_elemNo1 (
									m_extHdrList_1Elem (
										mw_extHdr_tunneledHeader (
										mw_extHdr_tunneledHeader (
											c_icmpHdr,
											c_icmpHdr,
											p_glaD,
											p_glaD,
+24 −25
Original line number Original line Diff line number Diff line
@@ -123,13 +123,13 @@ module LibIpv6_Rfc3775Mipv6_Functions {
		return FncRetCode {
		return FncRetCode {
			var FncRetCode v_ret;
			var FncRetCode v_ret;
				
				
			v_ret := f_sendIpv6ExtHdrs(m_ipv6ExtHdrs_srcDst(c_dstHdr,
			v_ret := f_sendGeneralIpv6(m_generalIpv6_srcDst(c_dstHdr,
															p_mnCoaTn,
															p_mnCoaTn,
															p_haGlaNut,
															p_haGlaNut,
															m_extHdrList_elemNo2(
															m_extHdrList_2Elem(
																m_extHdr_dstOptHeader(	c_mipHdr,
																m_extHdr_dstOptHeader(	c_mipHdr,
																						c_optLen16,//TODO check length
																						c_optLen16,//TODO check length
																						m_dstOptList_elemNo2(
																						m_dstOptList_2Elem(
																							m_dstOpt_padN(m_optPad4),
																							m_dstOpt_padN(m_optPad4),
																							m_dstOpt_homeAddr(p_mnHoaTn))),
																							m_dstOpt_homeAddr(p_mnHoaTn))),
																m_extHdr_mipHeader (c_noNextHdr,
																m_extHdr_mipHeader (c_noNextHdr,
@@ -140,20 +140,20 @@ module LibIpv6_Rfc3775Mipv6_Functions {
																									c_lFlag1,
																									c_lFlag1,
																									c_kFlag1,
																									c_kFlag1,
																									c_zeroTimeUnits,
																									c_zeroTimeUnits,
																									m_mipOptList_elemNo1(
																									m_mipOptList_1Elem(
																										m_mipOpt_padN(m_optPad4)))))));
																										m_mipOpt_padN(m_optPad4)))))));
			if ( v_ret != e_success ) {return v_ret;}
			if ( v_ret != e_success ) {return v_ret;}
			tc_ac.start;
			tc_ac.start;
			alt {
			alt {
				[]	ipPort.receive(mw_ipv6ExtHdrs_srcDst(	c_routeHdr,
				[]	ipPort.receive(mw_generalIpv6_srcDst(	c_routeHdr,
														p_haGlaNut,
														p_haGlaNut,
														p_mnCoaTn,
														p_mnCoaTn,
														m_extHdrList_elemNo2(
														m_extHdrList_2Elem(
														mw_extHdr_routingHeader(	c_mipHdr,
														mw_extHdr_routingHeader(	c_mipHdr,
																					c_routeHdrLen2,
																					c_routeHdrLen2,
																					c_routeHdrType0,
																					c_routeHdrType0,
																					c_routeHdrSegmentsLeft0,
																					c_routeHdrSegmentsLeft0,
																					m_routingHeaderData_ipv6AddressList_elemNo1(p_mnHoaTn)),
																					m_routingHeaderData_ipv6AddressList_1Elem(p_mnHoaTn)),
														mw_extHdr_mipHeader (	c_noNextHdr,
														mw_extHdr_mipHeader (	c_noNextHdr,
																				c_bindingAck,
																				c_bindingAck,
																				mw_bindingAck(c_defSeqNo))))) {
																				mw_bindingAck(c_defSeqNo))))) {
@@ -187,10 +187,10 @@ module LibIpv6_Rfc3775Mipv6_Functions {
		return FncRetCode {
		return FncRetCode {
			var FncRetCode v_ret;
			var FncRetCode v_ret;
				
				
			v_ret := f_sendIpv6ExtHdrs(m_ipv6ExtHdrs_srcDst(c_mipHdr,
			v_ret := f_sendGeneralIpv6(m_generalIpv6_srcDst(c_mipHdr,
															p_mnCoaTn,
															p_mnCoaTn,
															p_haGlaNut,//p_haLlaNut,
															p_haGlaNut,//p_haLlaNut,
															m_extHdrList_elemNo1(
															m_extHdrList_1Elem(
																m_extHdr_mipHeader (
																m_extHdr_mipHeader (
																	c_noNextHdr,
																	c_noNextHdr,
																	c_bindingUpdate,
																	c_bindingUpdate,
@@ -201,15 +201,15 @@ module LibIpv6_Rfc3775Mipv6_Functions {
																		c_lFlag1,
																		c_lFlag1,
																		c_kFlag1,
																		c_kFlag1,
																		c_zeroTimeUnits,
																		c_zeroTimeUnits,
																		m_mipOptList_elemNo1(
																		m_mipOptList_1Elem(
																			m_mipOpt_padN(m_optPad4)))))));
																			m_mipOpt_padN(m_optPad4)))))));
			if ( v_ret != e_success ) {return v_ret;}
			if ( v_ret != e_success ) {return v_ret;}
			tc_ac.start;
			tc_ac.start;
			alt {
			alt {
				[]	ipPort.receive(mw_ipv6ExtHdrs_srcDst(	c_mipHdr,
				[]	ipPort.receive(mw_generalIpv6_srcDst(	c_mipHdr,
															p_haGlaNut,
															p_haGlaNut,
															p_mnCoaTn,
															p_mnCoaTn,
															m_extHdrList_elemNo1(
															m_extHdrList_1Elem(
															mw_extHdr_mipHeader (	c_noNextHdr,
															mw_extHdr_mipHeader (	c_noNextHdr,
																					c_bindingAck,
																					c_bindingAck,
																					mw_bindingAck(c_defSeqNo))))) {
																					mw_bindingAck(c_defSeqNo))))) {
@@ -254,10 +254,10 @@ module LibIpv6_Rfc3775Mipv6_Functions {


		tc_ac.start;
		tc_ac.start;
		alt {
		alt {
			[]	ipPort.receive(mw_ipv6ExtHdrs_srcDst(	c_mipHdr,
			[]	ipPort.receive(mw_generalIpv6_srcDst(	c_mipHdr,
												p_mnHoa,
												p_mnHoa,
												p_glaCn,
												p_glaCn,
												m_extHdrList_elemNo1( m_extHdr_mipHeader (	c_noNextHdr,
												m_extHdrList_1Elem( m_extHdr_mipHeader (	c_noNextHdr,
																							c_homeTestInit,
																							c_homeTestInit,
																							mw_hoti)))) {
																							mw_hoti)))) {
					tc_ac.stop;	
					tc_ac.stop;	
@@ -270,10 +270,10 @@ module LibIpv6_Rfc3775Mipv6_Functions {
				}		
				}		
		} // end alt
		} // end alt


		v_ret := f_sendIpv6ExtHdrs(mw_ipv6ExtHdrs_srcDst (c_mipHdr,
		v_ret := f_sendGeneralIpv6(mw_generalIpv6_srcDst (c_mipHdr,
											p_glaCn,
											p_glaCn,
											p_mnHoa,
											p_mnHoa,
											m_extHdrList_elemNo1( m_extHdr_mipHeader (	c_noNextHdr,
											m_extHdrList_1Elem( m_extHdr_mipHeader (	c_noNextHdr,
																						c_homeTest,
																						c_homeTest,
																						m_hot))));
																						m_hot))));


@@ -296,11 +296,11 @@ module LibIpv6_Rfc3775Mipv6_Functions {
	return FncRetCode {
	return FncRetCode {
		var FncRetCode v_ret;
		var FncRetCode v_ret;


		v_ret := f_sendIpv6ExtHdrs(m_ipv6ExtHdrs_srcDst (
		v_ret := f_sendGeneralIpv6(m_generalIpv6_srcDst (
										c_tunneledIpHdr,
										c_tunneledIpHdr,
										p_mnCoa,
										p_mnCoa,
										p_haGlaNut,
										p_haGlaNut,
										m_extHdrList_elemNo2(
										m_extHdrList_2Elem(
											m_extHdr_tunneledHeader(c_mipHdr, p_mnHoa, p_glaCn),
											m_extHdr_tunneledHeader(c_mipHdr, p_mnHoa, p_glaCn),
											m_extHdr_mipHeader (c_noNextHdr,
											m_extHdr_mipHeader (c_noNextHdr,
																c_homeTestInit,
																c_homeTestInit,
@@ -308,12 +308,11 @@ module LibIpv6_Rfc3775Mipv6_Functions {
		if ( v_ret != e_success ) {return v_ret;}
		if ( v_ret != e_success ) {return v_ret;}
		tc_ac.start;
		tc_ac.start;
		alt {
		alt {
			//TODO move addr up behind c_tunneledIpHdr
			[]	ipPort.receive(mw_generalIpv6_srcDst(
			[]	ipPort.receive(mw_ipv6ExtHdrs_srcDst(
										c_tunneledIpHdr,
										c_tunneledIpHdr,
										p_haGlaNut,
										p_haGlaNut,
										p_mnCoa,
										p_mnCoa,
										m_extHdrList_elemNo2(
										m_extHdrList_2Elem(
											mw_extHdr_tunneledHeader(c_mipHdr, p_glaCn, p_mnHoa),
											mw_extHdr_tunneledHeader(c_mipHdr, p_glaCn, p_mnHoa),
											mw_extHdr_mipHeader (	c_noNextHdr,
											mw_extHdr_mipHeader (	c_noNextHdr,
																	c_homeTest,
																	c_homeTest,
@@ -387,11 +386,11 @@ module LibIpv6_Rfc3775Mipv6_Functions {
											c_dstHdr,
											c_dstHdr,
											p_mnCoaTn,
											p_mnCoaTn,
											p_haGla,
											p_haGla,
											m_extHdrList_elemNo1(
											m_extHdrList_1Elem(
												m_extHdr_dstOptHeader(	
												m_extHdr_dstOptHeader(	
													c_icmpHdr,
													c_icmpHdr,
													c_optLen16,//TODO check length
													c_optLen16,//TODO check length
													m_dstOptList_elemNo2(
													m_dstOptList_2Elem(
														m_dstOpt_padN(m_optPad4),
														m_dstOpt_padN(m_optPad4),
														m_dstOpt_homeAddr(p_mnHoaTn))))));
														m_dstOpt_homeAddr(p_mnHoaTn))))));
			if ( v_ret != e_success ) {return v_ret;}
			if ( v_ret != e_success ) {return v_ret;}
@@ -401,13 +400,13 @@ module LibIpv6_Rfc3775Mipv6_Functions {
										c_routeHdr,
										c_routeHdr,
										p_haGla,
										p_haGla,
										p_mnCoaTn,
										p_mnCoaTn,
										m_extHdrList_elemNo1(
										m_extHdrList_1Elem(
											mw_extHdr_routingHeader(	
											mw_extHdr_routingHeader(	
												c_icmpHdr,
												c_icmpHdr,
												c_routeHdrLen2,
												c_routeHdrLen2,
												c_routeHdrType2,
												c_routeHdrType2,
												c_routeHdrSegmentsLeft1,
												c_routeHdrSegmentsLeft1,
												m_routingHeaderData_ipv6AddressList_elemNo1(p_mnHoaTn))))) {
												m_routingHeaderData_ipv6AddressList_1Elem(p_mnHoaTn))))) {
						tc_ac.stop;
						tc_ac.stop;
						v_ret := e_success ;
						v_ret := e_success ;
					}
					}
Loading