Commit 1061af12 authored by berge's avatar berge
Browse files

3030_01 and 3061_01 validated

parent 510f3c6c
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -161,6 +161,8 @@ group rfc2460Root_Functions {
					else {
						v_activeIpv6Packet.extHdrList[i].espHeader.espPayload.iv := PX_IV; 	
					}
					//Update the original packet						
					v_activeIpv6Packet.ipv6Hdr.payloadLength := fx_payloadLength (v_activeIpv6Packet);	
						
					v_ret := f_getOriginalIpv6Packet(
									v_activeIpv6Packet,
@@ -173,12 +175,10 @@ group rfc2460Root_Functions {
												
						// include recursion results
						if (ispresent(v_pseudoIpv6Packet.extHdrList)) {
							for (j:=0; j<sizeof(v_pseudoIpv6Packet.extHdrList) ;j:=j+1) {
								v_activeIpv6Packet.extHdrList[i+1] := v_pseudoIpv6Packet.extHdrList[j];	
							}			
							v_activeIpv6Packet.extHdrList[i].espHeader.espPayload.espIpDatagram.extHdrList := v_pseudoIpv6Packet.extHdrList
						}
						if (ispresent(v_pseudoIpv6Packet.ipv6Payload)) {
							v_activeIpv6Packet.ipv6Payload := v_pseudoIpv6Packet.ipv6Payload;	
							v_activeIpv6Packet.extHdrList[i].espHeader.espPayload.espIpDatagram.ipv6Payload := v_pseudoIpv6Packet.ipv6Payload;	
						}												
	
						v_loop := false;
@@ -1188,6 +1188,7 @@ group rfc4303Esp_ExtHdrFunctions {
		}

		// is a tunneledIpv6Hdr in the extHdrList? If yes, then it becomes the Ipv6Hdr of the original packet
		// FIXME: check only the first extHdr
		if (ispresent(p_espHeader.espPayload.espIpDatagram.extHdrList)) {
			for (i:=0; i<sizeof(p_espHeader.espPayload.espIpDatagram.extHdrList) and v_loop ;i:=i+1) {
				if (ischosen(p_espHeader.espPayload.espIpDatagram.extHdrList[i].tunneledIpv6)) {
+8 −0
Original line number Diff line number Diff line
@@ -564,6 +564,14 @@ module LibIpv6_Interface_Templates {
			template Ipv6Payload m_ipv6Payload_echoRequestMsg(in template EchoRequestMsg p_echoRequestMsg) := {
				echoRequestMsg := p_echoRequestMsg
			}
			
			/*
			 *	@param  p_echoReplyMsg Echo Reply Message
			*/
			template Ipv6Payload m_ipv6Payload_echoReplyMsg(in template EchoReplyMsg p_echoReplyMsg) := {
				echoReplyMsg := p_echoReplyMsg
			}
						
		} //end group ipv6Templates
	} //end group rfc2460Root_Templates
	group rfc3775Mipv6_ExtHdrTemplates {
+2 −2
Original line number Diff line number Diff line
@@ -41,7 +41,7 @@
		v_ipPkt := valueof(p_echoRequest);

		//calc payloadLen
		v_ipPkt.ipv6Hdr.payloadLength := fx_payloadLength (v_ipPkt);
		//v_ipPkt.ipv6Hdr.payloadLength := fx_payloadLength (v_ipPkt);

		if(f_setExtensionHeaders(	v_ipPkt,
									v_ipPkt.ipv6Hdr.sourceAddress,
@@ -72,7 +72,7 @@
		v_ipPkt := valueof(p_echoReply);

		//calc payloadLen
		v_ipPkt.ipv6Hdr.payloadLength := fx_payloadLength (v_ipPkt);
		//v_ipPkt.ipv6Hdr.payloadLength := fx_payloadLength (v_ipPkt);

		if(f_setExtensionHeaders(	v_ipPkt,
									v_ipPkt.ipv6Hdr.sourceAddress,
+85 −20
Original line number Diff line number Diff line
@@ -348,6 +348,7 @@ module LibIpv6_Rfc2463Icmpv6_Templates {
			}
		}
	} // end group ICMPv6_Echo_Reply
	
	group ICMPv6_Echo_Request {
		/*
		 *	@param  p_nextHeader Next header identifier value to be used.
@@ -626,6 +627,52 @@ module LibIpv6_Rfc2463Icmpv6_Templates {
			}
		}
	} // end group ICMPv6_Echo_Request
	
	group ICMPv6_EchoReplyMsg {

		template EchoReplyMsg m_echoReplyMsg(UInt16 p_id, UInt16 p_seqNr) := {
			icmpType := c_echoReplyMsg,
			icmpCode := c_icmpCode0,
			checksum := c_2ZeroBytes,
			identifier := p_id,
			sequenceNumber := p_seqNr,
			data := omit
		}

		template EchoReplyMsg mw_echoReplyMsg(UInt16 p_id, UInt16 p_seqNr) := {
			icmpType := c_echoReplyMsg,
			icmpCode := c_icmpCode0,
			checksum := ?,
			identifier := p_id,
			sequenceNumber := p_seqNr,
			data := omit
		}

	} //end group ICMPv6_EchoReplyMsg
	
			
	group ICMPv6_EchoRequestMsg {

		template EchoRequestMsg m_echoRequestMsg(UInt16 p_id, UInt16 p_seqNr) := {
			icmpType := c_echoRequestMsg,
			icmpCode := c_icmpCode0,
			checksum := c_2ZeroBytes,
			identifier := p_id,
			sequenceNumber := p_seqNr,
			data := omit
		}

		template EchoRequestMsg mw_echoRequestMsg(UInt16 p_id, UInt16 p_seqNr) := {
			icmpType := c_echoRequestMsg,
			icmpCode := c_icmpCode0,
			checksum := ?,
			identifier := p_id,
			sequenceNumber := p_seqNr,
			data := omit
		}

	} //end group ICMPv6_EchoRequestMsg
	
	group ICMPv6_Echo_Request_Esp {
			/*
			 *	@param  p_nextHeader Next header identifier value to be used.
@@ -647,27 +694,45 @@ module LibIpv6_Rfc2463Icmpv6_Templates {

		} //end group ICMPv6_Echo_Request_Esp
	
	group ICMPv6_EchoRequestMsg {
		group ICMPv6_Echo_Reply_Esp {
		
		template EchoRequestMsg m_echoRequestMsg(UInt16 p_id, UInt16 p_seqNr) := {
			icmpType := c_echoRequestMsg,
			icmpCode := c_icmpCode0,
			checksum := c_2ZeroBytes,
			identifier := p_id,
			sequenceNumber := p_seqNr,
			data := omit
				/*
			 *	@param  p_nextHeader Next header identifier value to be used.
			 *	@param  p_src Binary IPv6 address associated with the
			 *          test component.
			 *	@param  p_dst Binary IPv6 address associated with NUT.
			 *	@param  p_extHdrList List of extension header in the packet.
			*/
			template Ipv6Packet mw_echoReply_esp(
				UInt8 p_nextHeader,
				template Ipv6Address p_src,
				template Ipv6Address p_dst,
				template ExtensionHeaderList p_extHdrList) := {
				ipv6Hdr := mw_ipHdr_nextHdr_srcDst(p_nextHeader, p_src, p_dst),
				extHdrList := p_extHdrList,
				ipv6Payload := omit
			}
			
		template EchoRequestMsg mw_echoRequestMsg(UInt16 p_id, UInt16 p_seqNr) := {
			icmpType := c_echoRequestMsg,
			icmpCode := c_icmpCode0,
			checksum := ?,
			identifier := p_id,
			sequenceNumber := p_seqNr,
			data := omit
			/*
			 *	@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 Ipv6Packet mw_echoReply_anyEsp(
				UInt8 p_nextHeader) := {
				ipv6Hdr := mw_ipHdr_nextHdr(p_nextHeader),
				extHdrList := *,
				ipv6Payload := omit
			}

	} //end group ICMPv6_EchoRequestPayload

		} //end group ICMPv6_Echo_Reply_Esp

	
	group ICMPv6_Other {
		/*
		 *	@param  p_src Binary IPv6 address associated with the
+12 −8
Original line number Diff line number Diff line
@@ -352,23 +352,25 @@ group IcmpAndEspFns {
										c_defSeqNo))),
							c_icmpHdr))
				 ) );
			//increment SA-based seqNr
			vc_sad[0].seqNr := vc_sad[0].seqNr + 1;
			if (v_ret != e_success) {return v_ret;}
			
			tc_ac.start;
			alt {
				[]	ipPort.receive ( 	
						m_echoRequest_esp (
						mw_echoReply_esp (
							c_espHdr,
							p_paramsIut.gla,
							p_paramsTn.gla,
							m_extHdrList_1Elem (
								mw_extHdr_espHeader(
									vc_sad[0].spi,
									vc_sad[0].seqNr + 1,
									?,
									m_espIpDatagram(
										omit,
										m_ipv6Payload_echoRequestMsg(
											mw_echoRequestMsg(
										m_ipv6Payload_echoReplyMsg(
											mw_echoReplyMsg(
												c_defId,
												c_defSeqNo))),
									c_icmpHdr))
@@ -404,27 +406,29 @@ group IcmpAndEspFns {
										c_defSeqNo))),
							c_tunneledIpHdr))
				 ) );
			//increment SA-based seqNr
			vc_sad[0].seqNr := vc_sad[0].seqNr + 1;
			if (v_ret != e_success) {return v_ret;}
			
			tc_ac.start;
			alt {
				[]	ipPort.receive ( 	
						m_echoRequest_esp (
						mw_echoReply_esp (
							c_espHdr,
							p_paramsTunnelEnd.gla,
							p_paramsTunnelStart.gla,
							mw_extHdrList_1Elem_superSet (
								mw_extHdr_espHeader(
									vc_sad[0].spi,
									vc_sad[0].seqNr + 1,
									?,
									m_espIpDatagram(
										m_extHdrList_1Elem(
											mw_extHdr_tunneledHeader (
												c_icmpHdr,
												p_paramsIut.gla,
												p_paramsTn.gla )),
										m_ipv6Payload_echoRequestMsg(
											mw_echoRequestMsg(
										m_ipv6Payload_echoReplyMsg(
											mw_echoReplyMsg(
												c_defId,
												c_defSeqNo))),
									c_tunneledIpHdr))