Loading ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2460Root_Templates.ttcn +36 −0 Original line number Original line Diff line number Diff line Loading @@ -123,6 +123,24 @@ destinationAddress := p_dst destinationAddress := p_dst } } /* * @param p_nextHdr 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. */ template Ipv6Header mw_ipHdr_nextHdr_dst ( template UInt8 p_nextHdr, template Ipv6Address p_dst) := { version := c_ipv6Version , trafficClass := ? , flowLabel := ? , payloadLength := ?, nextHeader := p_nextHdr, hopLimit := ?, sourceAddress := ?, destinationAddress := p_dst } /* /* * @param p_nextHdr Next header identifier value to be used. * @param p_nextHdr Next header identifier value to be used. * @param p_hopLimit Number of hops to be used. * @param p_hopLimit Number of hops to be used. Loading Loading @@ -524,6 +542,24 @@ data := * data := * } } /* * @param p_nextHeader Next header identifier value to be used. * @param p_extHdrList List of extension header in the packet. * @param p_src Binary IPv6 address associated with the * test component. * @param p_dst Binary IPv6 address associated with NUT. * */ template GeneralIpv6 mw_generalIpv6_dst( UInt8 p_nextHeader, template Ipv6Address p_dst, template ExtensionHeaderList p_extHdrList ) := { ipv6Hdr := mw_ipHdr_nextHdr_dst(p_nextHeader, p_dst), extHdrList := p_extHdrList, data := * } }//end group ipPacketsWithOnlyExtensionHdrsTemplates }//end group ipPacketsWithOnlyExtensionHdrsTemplates group ipv6AddressTemplates { group ipv6AddressTemplates { Loading ttcn3/EtsiLibrary/LibIpv6/LibMobility/LibIpv6_Rfc3775Mipv6_Functions.ttcn +80 −48 Original line number Original line Diff line number Diff line Loading @@ -133,69 +133,101 @@ module LibIpv6_Rfc3775Mipv6_Functions { * @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 */ */ function f_receiveBindingUpdateAndReply( //in template Ipv6Address p_mnCoaTn, function f_receiveBindingUpdateAndReply(in template Ipv6Address p_haGlaTn) // in template Ipv6Address p_mnHoaTn, // in template Ipv6Address p_haGlaNut, // in UInt16 p_timeUnits ) runs on Ipv6Node runs on Ipv6Node return FncRetCode { return FncRetCode { //Variables var GeneralIpv6 v_generalIpv6 ; var UInt16 v_seqNr := 0; var Ipv6Address v_mnCareOfAddr1 := c_16ZeroBytes; var Ipv6Address v_mnCareOfAddr2 := c_16ZeroBytes; var Ipv6Address v_mnHomeAddr := c_16ZeroBytes; var FncRetCode v_ret := e_error; var FncRetCode v_ret := e_error; /* tc_wait.start; tc_wait.start; alt { alt { [] ipPort.receive(mw_generalIpv6_srcDst(c_dstHdr, //1st alternative : m_optPad2 + Coa p_mnCoaTn, [] ipPort.receive(mw_generalIpv6_dst( c_dstHdr, p_haGlaNut, //p_mnCoaTn, p_haGlaTn, m_extHdrList_2Elem( m_extHdrList_2Elem( m_extHdr_dstOptHeader( c_mipHdr, m_extHdr_dstOptHeader( c_mipHdr, c_optLen2, c_optLen2, m_dstOptList_2Elem( m_dstOptList_2Elem( m_dstOpt_padN(m_optPad4), m_dstOpt_padN(m_optPad4), m_dstOpt_homeAddr(p_mnHoaTn))), mw_dstOpt_homeAddr)), mw_extHdr_mipHeader (c_noNextHdr, mw_extHdr_mipHeader (c_noNextHdr, c_bindingUpdate, c_bindingUpdate, mw_bindingUpdate(c_aFlag1, mw_bindingUpdate(c_aFlag1, c_hFlag1, c_hFlag1, c_lFlag0, c_lFlag0, c_kFlag0, c_kFlag0, p_timeUnits, m_mipOptList_2Elem( m_mipOptList_2Elem( m_mipOpt_padN(m_optPad2), m_mipOpt_padN(m_optPad2), m_mipOpt_altCoa(m_mipOptAltCoA(p_mnCoaTn)))))))) { m_mipOpt_altCoa(mw_mipOptAltCoA))))))) -> value v_generalIpv6 { v_seqNr := //Get SeqNr v_seqNr := v_generalIpv6.extHdrList[1].mipHeader.mipMessage.bindingUpdate.sequenceNumber; //Get CareOfAddress v_mnCareOfAddr1 := v_generalIpv6.ipv6Hdr.sourceAddress; //TODO read v_mnCareOfAddr2 from MipOptions //GetHomeAddress v_mnHomeAddr := v_generalIpv6.extHdrList[0].destinationOptionHeader.destOptionList[1].homeAddressOption.homeAddress; tc_wait.stop; tc_wait.stop; v_ret := e_success ; v_ret := e_success ; } } [] tc_wait.timeout{ //2nd alternative : m_optPad4 v_ret := e_timeout; [] ipPort.receive(mw_generalIpv6_dst( c_dstHdr, log("**** f_registerMnToHa: ERROR: tc_ac.timeout **** "); //p_mnCoaTn, } p_haGlaTn, } // end alt if ( v_ret == e_success ) { v_ret := f_sendGeneralIpv6(m_generalIpv6_srcDst(c_dstHdr, p_mnCoaTn, p_haGlaNut, m_extHdrList_2Elem( m_extHdrList_2Elem( m_extHdr_dstOptHeader( c_mipHdr, m_extHdr_dstOptHeader( c_mipHdr, c_optLen2, c_optLen2, m_dstOptList_2Elem( m_dstOptList_2Elem( m_dstOpt_padN(m_optPad4), m_dstOpt_padN(m_optPad4), m_dstOpt_homeAddr(p_mnHoaTn))), mw_dstOpt_homeAddr)), m_extHdr_mipHeader (c_noNextHdr, mw_extHdr_mipHeader (c_noNextHdr, c_bindingUpdate, c_bindingUpdate, m_bindingUpdate(c_defSeqNo, mw_bindingUpdate(c_aFlag1, c_aFlag1, c_hFlag1, c_hFlag1, c_lFlag0, c_lFlag0, c_kFlag0, c_kFlag0, p_timeUnits, m_mipOptList_1Elem( m_mipOptList_2Elem( m_mipOpt_padN(m_optPad4))))))) -> value v_generalIpv6 { m_mipOpt_padN(m_optPad2), //Get SeqNr m_mipOpt_altCoa(m_mipOptAltCoA(p_mnCoaTn)))))))); v_seqNr := v_generalIpv6.extHdrList[1].mipHeader.mipMessage.bindingUpdate.sequenceNumber; //Get CareOfAddress v_mnCareOfAddr1 := v_generalIpv6.ipv6Hdr.sourceAddress; //GetHomeAddress v_mnHomeAddr := v_generalIpv6.extHdrList[0].destinationOptionHeader.destOptionList[1].homeAddressOption.homeAddress; tc_wait.stop; v_ret := e_success ; } [] tc_wait.timeout{ v_ret := e_timeout; log("**** f_receiveBindingUpdateAndReply: ERROR: tc_ac.timeout **** "); } } // end alt if ( v_ret == e_success ) { v_ret := f_sendGeneralIpv6(m_generalIpv6_srcDst( c_routeHdr, p_haGlaTn, v_mnCareOfAddr1, m_extHdrList_2Elem( m_extHdr_routingHeader( c_mipHdr, c_routeHdrLen2, c_routeHdrType2, c_routeHdrSegmentsLeft1, m_routingHeaderData_homeAddress(v_mnHomeAddr)), m_extHdr_mipHeader ( c_noNextHdr, c_bindingAck, m_bindingAck( v_seqNr, m_mipOptList_1Elem( m_mipOpt_padN(m_optPad4))))))); }//end if }//end if */ return v_ret; return v_ret; }//end f_receiveBindingUpdateAndReply }//end f_receiveBindingUpdateAndReply Loading ttcn3/EtsiLibrary/LibIpv6/LibMultiRfcs/LibIpv6_MultiRfcs_Templates.ttcn +29 −2 Original line number Original line Diff line number Diff line Loading @@ -121,6 +121,17 @@ module LibIpv6_MultiRfcs_Templates { } } } } /* * @param p_homeAddress Home Address */ template DestOption mw_dstOpt_homeAddr := { homeAddressOption := { ipv6OptType := c_optHomeAddress, ipv6OptLen := c_optLen16, homeAddress := ? } } /* /* * @param p_homeAddress Home Address * @param p_homeAddress Home Address */ */ Loading Loading @@ -156,7 +167,6 @@ module LibIpv6_MultiRfcs_Templates { UInt1 p_hFlag, UInt1 p_hFlag, UInt1 p_lFlag, UInt1 p_lFlag, UInt1 p_kFlag, UInt1 p_kFlag, UInt16 p_lifeTime, template MipOptionList p_mipOptions) := { template MipOptionList p_mipOptions) := { bindingUpdate := { bindingUpdate := { sequenceNumber := ?, sequenceNumber := ?, Loading @@ -165,7 +175,18 @@ module LibIpv6_MultiRfcs_Templates { lFlag := p_lFlag, lFlag := p_lFlag, kFlag := p_kFlag, kFlag := p_kFlag, reserved := c_uInt12Zero, reserved := c_uInt12Zero, lifeTime := p_lifeTime, lifeTime := ?, mipOptions := p_mipOptions } } template MipMessage m_bindingAck(UInt16 p_seqNr, template MipOptionList p_mipOptions) := { bindingAck := { status := c_mipCodeBindingUpdateAccepted, kFlag := c_kFlag0, reserved := c_uInt7Zero, sequenceNumber := p_seqNr, lifeTime := c_100TimeUnits, mipOptions := p_mipOptions mipOptions := p_mipOptions } } } } Loading Loading @@ -259,6 +280,12 @@ module LibIpv6_MultiRfcs_Templates { alternateCoA := p_addr alternateCoA := p_addr } } template MipOptAltCoA mw_mipOptAltCoA := { mipOptType :=3, mipOptLen := 16, alternateCoA := ? } }//end group mobilityOptTemplates }//end group mobilityOptTemplates } // end module LibIpv6_MultiRfcs_Templates } // end module LibIpv6_MultiRfcs_Templates ttcn3/EtsiLibrary/LibIpv6/LibMultiRfcs/LibIpv6_MultiRfcs_TypesAndValues.ttcn +1 −0 Original line number Original line Diff line number Diff line Loading @@ -125,6 +125,7 @@ module LibIpv6_MultiRfcs_TypesAndValues { const UInt8 c_trafficClassZero := 0; const UInt8 c_trafficClassZero := 0; const UInt20 c_flowLabelZero := 0; const UInt20 c_flowLabelZero := 0; const UInt2 c_uInt2Zero := 0; const UInt2 c_uInt2Zero := 0; const UInt7 c_uInt7Zero := 0; const UInt8 c_uInt8Zero := 0; const UInt8 c_uInt8Zero := 0; const UInt12 c_uInt12Zero := 0; const UInt12 c_uInt12Zero := 0; const UInt16 c_uInt16Zero := 0; const UInt16 c_uInt16Zero := 0; Loading ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2461NeighborDiscovery_Functions.ttcn +1 −1 File changed.Contains only whitespace changes. Show changes Loading
ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2460Root_Templates.ttcn +36 −0 Original line number Original line Diff line number Diff line Loading @@ -123,6 +123,24 @@ destinationAddress := p_dst destinationAddress := p_dst } } /* * @param p_nextHdr 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. */ template Ipv6Header mw_ipHdr_nextHdr_dst ( template UInt8 p_nextHdr, template Ipv6Address p_dst) := { version := c_ipv6Version , trafficClass := ? , flowLabel := ? , payloadLength := ?, nextHeader := p_nextHdr, hopLimit := ?, sourceAddress := ?, destinationAddress := p_dst } /* /* * @param p_nextHdr Next header identifier value to be used. * @param p_nextHdr Next header identifier value to be used. * @param p_hopLimit Number of hops to be used. * @param p_hopLimit Number of hops to be used. Loading Loading @@ -524,6 +542,24 @@ data := * data := * } } /* * @param p_nextHeader Next header identifier value to be used. * @param p_extHdrList List of extension header in the packet. * @param p_src Binary IPv6 address associated with the * test component. * @param p_dst Binary IPv6 address associated with NUT. * */ template GeneralIpv6 mw_generalIpv6_dst( UInt8 p_nextHeader, template Ipv6Address p_dst, template ExtensionHeaderList p_extHdrList ) := { ipv6Hdr := mw_ipHdr_nextHdr_dst(p_nextHeader, p_dst), extHdrList := p_extHdrList, data := * } }//end group ipPacketsWithOnlyExtensionHdrsTemplates }//end group ipPacketsWithOnlyExtensionHdrsTemplates group ipv6AddressTemplates { group ipv6AddressTemplates { Loading
ttcn3/EtsiLibrary/LibIpv6/LibMobility/LibIpv6_Rfc3775Mipv6_Functions.ttcn +80 −48 Original line number Original line Diff line number Diff line Loading @@ -133,69 +133,101 @@ module LibIpv6_Rfc3775Mipv6_Functions { * @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 */ */ function f_receiveBindingUpdateAndReply( //in template Ipv6Address p_mnCoaTn, function f_receiveBindingUpdateAndReply(in template Ipv6Address p_haGlaTn) // in template Ipv6Address p_mnHoaTn, // in template Ipv6Address p_haGlaNut, // in UInt16 p_timeUnits ) runs on Ipv6Node runs on Ipv6Node return FncRetCode { return FncRetCode { //Variables var GeneralIpv6 v_generalIpv6 ; var UInt16 v_seqNr := 0; var Ipv6Address v_mnCareOfAddr1 := c_16ZeroBytes; var Ipv6Address v_mnCareOfAddr2 := c_16ZeroBytes; var Ipv6Address v_mnHomeAddr := c_16ZeroBytes; var FncRetCode v_ret := e_error; var FncRetCode v_ret := e_error; /* tc_wait.start; tc_wait.start; alt { alt { [] ipPort.receive(mw_generalIpv6_srcDst(c_dstHdr, //1st alternative : m_optPad2 + Coa p_mnCoaTn, [] ipPort.receive(mw_generalIpv6_dst( c_dstHdr, p_haGlaNut, //p_mnCoaTn, p_haGlaTn, m_extHdrList_2Elem( m_extHdrList_2Elem( m_extHdr_dstOptHeader( c_mipHdr, m_extHdr_dstOptHeader( c_mipHdr, c_optLen2, c_optLen2, m_dstOptList_2Elem( m_dstOptList_2Elem( m_dstOpt_padN(m_optPad4), m_dstOpt_padN(m_optPad4), m_dstOpt_homeAddr(p_mnHoaTn))), mw_dstOpt_homeAddr)), mw_extHdr_mipHeader (c_noNextHdr, mw_extHdr_mipHeader (c_noNextHdr, c_bindingUpdate, c_bindingUpdate, mw_bindingUpdate(c_aFlag1, mw_bindingUpdate(c_aFlag1, c_hFlag1, c_hFlag1, c_lFlag0, c_lFlag0, c_kFlag0, c_kFlag0, p_timeUnits, m_mipOptList_2Elem( m_mipOptList_2Elem( m_mipOpt_padN(m_optPad2), m_mipOpt_padN(m_optPad2), m_mipOpt_altCoa(m_mipOptAltCoA(p_mnCoaTn)))))))) { m_mipOpt_altCoa(mw_mipOptAltCoA))))))) -> value v_generalIpv6 { v_seqNr := //Get SeqNr v_seqNr := v_generalIpv6.extHdrList[1].mipHeader.mipMessage.bindingUpdate.sequenceNumber; //Get CareOfAddress v_mnCareOfAddr1 := v_generalIpv6.ipv6Hdr.sourceAddress; //TODO read v_mnCareOfAddr2 from MipOptions //GetHomeAddress v_mnHomeAddr := v_generalIpv6.extHdrList[0].destinationOptionHeader.destOptionList[1].homeAddressOption.homeAddress; tc_wait.stop; tc_wait.stop; v_ret := e_success ; v_ret := e_success ; } } [] tc_wait.timeout{ //2nd alternative : m_optPad4 v_ret := e_timeout; [] ipPort.receive(mw_generalIpv6_dst( c_dstHdr, log("**** f_registerMnToHa: ERROR: tc_ac.timeout **** "); //p_mnCoaTn, } p_haGlaTn, } // end alt if ( v_ret == e_success ) { v_ret := f_sendGeneralIpv6(m_generalIpv6_srcDst(c_dstHdr, p_mnCoaTn, p_haGlaNut, m_extHdrList_2Elem( m_extHdrList_2Elem( m_extHdr_dstOptHeader( c_mipHdr, m_extHdr_dstOptHeader( c_mipHdr, c_optLen2, c_optLen2, m_dstOptList_2Elem( m_dstOptList_2Elem( m_dstOpt_padN(m_optPad4), m_dstOpt_padN(m_optPad4), m_dstOpt_homeAddr(p_mnHoaTn))), mw_dstOpt_homeAddr)), m_extHdr_mipHeader (c_noNextHdr, mw_extHdr_mipHeader (c_noNextHdr, c_bindingUpdate, c_bindingUpdate, m_bindingUpdate(c_defSeqNo, mw_bindingUpdate(c_aFlag1, c_aFlag1, c_hFlag1, c_hFlag1, c_lFlag0, c_lFlag0, c_kFlag0, c_kFlag0, p_timeUnits, m_mipOptList_1Elem( m_mipOptList_2Elem( m_mipOpt_padN(m_optPad4))))))) -> value v_generalIpv6 { m_mipOpt_padN(m_optPad2), //Get SeqNr m_mipOpt_altCoa(m_mipOptAltCoA(p_mnCoaTn)))))))); v_seqNr := v_generalIpv6.extHdrList[1].mipHeader.mipMessage.bindingUpdate.sequenceNumber; //Get CareOfAddress v_mnCareOfAddr1 := v_generalIpv6.ipv6Hdr.sourceAddress; //GetHomeAddress v_mnHomeAddr := v_generalIpv6.extHdrList[0].destinationOptionHeader.destOptionList[1].homeAddressOption.homeAddress; tc_wait.stop; v_ret := e_success ; } [] tc_wait.timeout{ v_ret := e_timeout; log("**** f_receiveBindingUpdateAndReply: ERROR: tc_ac.timeout **** "); } } // end alt if ( v_ret == e_success ) { v_ret := f_sendGeneralIpv6(m_generalIpv6_srcDst( c_routeHdr, p_haGlaTn, v_mnCareOfAddr1, m_extHdrList_2Elem( m_extHdr_routingHeader( c_mipHdr, c_routeHdrLen2, c_routeHdrType2, c_routeHdrSegmentsLeft1, m_routingHeaderData_homeAddress(v_mnHomeAddr)), m_extHdr_mipHeader ( c_noNextHdr, c_bindingAck, m_bindingAck( v_seqNr, m_mipOptList_1Elem( m_mipOpt_padN(m_optPad4))))))); }//end if }//end if */ return v_ret; return v_ret; }//end f_receiveBindingUpdateAndReply }//end f_receiveBindingUpdateAndReply Loading
ttcn3/EtsiLibrary/LibIpv6/LibMultiRfcs/LibIpv6_MultiRfcs_Templates.ttcn +29 −2 Original line number Original line Diff line number Diff line Loading @@ -121,6 +121,17 @@ module LibIpv6_MultiRfcs_Templates { } } } } /* * @param p_homeAddress Home Address */ template DestOption mw_dstOpt_homeAddr := { homeAddressOption := { ipv6OptType := c_optHomeAddress, ipv6OptLen := c_optLen16, homeAddress := ? } } /* /* * @param p_homeAddress Home Address * @param p_homeAddress Home Address */ */ Loading Loading @@ -156,7 +167,6 @@ module LibIpv6_MultiRfcs_Templates { UInt1 p_hFlag, UInt1 p_hFlag, UInt1 p_lFlag, UInt1 p_lFlag, UInt1 p_kFlag, UInt1 p_kFlag, UInt16 p_lifeTime, template MipOptionList p_mipOptions) := { template MipOptionList p_mipOptions) := { bindingUpdate := { bindingUpdate := { sequenceNumber := ?, sequenceNumber := ?, Loading @@ -165,7 +175,18 @@ module LibIpv6_MultiRfcs_Templates { lFlag := p_lFlag, lFlag := p_lFlag, kFlag := p_kFlag, kFlag := p_kFlag, reserved := c_uInt12Zero, reserved := c_uInt12Zero, lifeTime := p_lifeTime, lifeTime := ?, mipOptions := p_mipOptions } } template MipMessage m_bindingAck(UInt16 p_seqNr, template MipOptionList p_mipOptions) := { bindingAck := { status := c_mipCodeBindingUpdateAccepted, kFlag := c_kFlag0, reserved := c_uInt7Zero, sequenceNumber := p_seqNr, lifeTime := c_100TimeUnits, mipOptions := p_mipOptions mipOptions := p_mipOptions } } } } Loading Loading @@ -259,6 +280,12 @@ module LibIpv6_MultiRfcs_Templates { alternateCoA := p_addr alternateCoA := p_addr } } template MipOptAltCoA mw_mipOptAltCoA := { mipOptType :=3, mipOptLen := 16, alternateCoA := ? } }//end group mobilityOptTemplates }//end group mobilityOptTemplates } // end module LibIpv6_MultiRfcs_Templates } // end module LibIpv6_MultiRfcs_Templates
ttcn3/EtsiLibrary/LibIpv6/LibMultiRfcs/LibIpv6_MultiRfcs_TypesAndValues.ttcn +1 −0 Original line number Original line Diff line number Diff line Loading @@ -125,6 +125,7 @@ module LibIpv6_MultiRfcs_TypesAndValues { const UInt8 c_trafficClassZero := 0; const UInt8 c_trafficClassZero := 0; const UInt20 c_flowLabelZero := 0; const UInt20 c_flowLabelZero := 0; const UInt2 c_uInt2Zero := 0; const UInt2 c_uInt2Zero := 0; const UInt7 c_uInt7Zero := 0; const UInt8 c_uInt8Zero := 0; const UInt8 c_uInt8Zero := 0; const UInt12 c_uInt12Zero := 0; const UInt12 c_uInt12Zero := 0; const UInt16 c_uInt16Zero := 0; const UInt16 c_uInt16Zero := 0; Loading
ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2461NeighborDiscovery_Functions.ttcn +1 −1 File changed.Contains only whitespace changes. Show changes