Loading IPSec/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_CommonRfcs_Functions.ttcn +35 −1 Original line number Diff line number Diff line Loading @@ -207,7 +207,41 @@ return v_ret; }//end function f_isPresentRoutingHeaderType2 }//end function f_isPresentBindingAuthorityDataOption /* * @desc This goes through the ExtensionHeaderList and * checks if a Binding Refresh Advice option is present. * @param p_extHdrList ExtensionHeaderList to be treated * @return execution status */ function f_isPresentBindingRefreshAdviceOption ( in ExtensionHeaderList p_extHdrList ) runs on LibIpv6Node return FncRetCode { var FncRetCode v_ret := e_error; var UInt8 i,j; //select ext hdrs that need special calculation for ( i := 0; i < sizeof ( p_extHdrList ) and ( v_ret != e_success ); i := i + 1 ) { if ( ischosen ( p_extHdrList[i].mipHeader ) ) { if ( ischosen ( p_extHdrList[i].mipHeader.mipMessage.bindingAck ) ) { for ( j := 0; j < sizeof ( p_extHdrList[i].mipHeader.mipMessage.bindingAck.mipOptions ); j := j + 1 ) { if ( ischosen ( p_extHdrList[i].mipHeader.mipMessage.bindingAck.mipOptions[j].mipOptBindingRefreshAdvice ) == true ) { v_ret := e_success; } } } } } if ( v_ret == e_error ) { log ( "**** f_isPresentBindingRefreshAdviceOption: ERROR: Binding Authentication Data option is not present in Binding Ack **** " ); } return v_ret; }//end function f_isPresentBindingRefreshAdviceOption } // end module LibIpv6_CommonRfcs_Functions IPSec/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_Interface_Templates.ttcn +16 −0 Original line number Diff line number Diff line Loading @@ -684,6 +684,22 @@ group rfc3775Mipv6_ExtHdrTemplates { } } // Added by PK template MipMessage mw_bindingAck_statusKFlagSN ( template UInt8 p_status, UInt1 p_kFlag, UInt16 p_seqNr ) := { bindingAck := { status := p_status, kFlag := p_kFlag, reserved := ?, sequenceNumber := p_seqNr, lifeTime := ?, mipOptions := ? } } template MipMessage mw_bindingError := { bindingError := { status := ?, Loading IPSec/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2461NeighborDiscovery_Templates.ttcn +122 −1 Original line number Diff line number Diff line Loading @@ -216,6 +216,35 @@ }} } // Added by PK /* * @param p_src Binary IPv6 address associated with the * test component. * @param p_dst Binary IPv6 address associated with NUT. * @param p_opts Neighborhood advertisement options value or template. */ template NeighborAdvertisement mw_nbrAdv_noExtHdr_allFlagsAndOpts ( template Ipv6Address p_src, template Ipv6Address p_dst, UInt1 p_rFlag, UInt1 p_sFlag, UInt1 p_oFlag, template Ipv6Address p_target, template NbrAdvOptions p_opts ) := { ipv6Hdr := mw_ipHdr_nextHdr_srcDst(c_icmpHdr, p_src, p_dst), extHdrList := omit, ipv6Payload := { nbrAdvMsg := { icmpType:= c_nbrAdvMsg, icmpCode:= c_icmpCode0, checksum:= ?, routerFlag:=p_rFlag, solicitedFlag:=p_sFlag, overrideFlag:=p_oFlag, reserved:=0, targetAddr:= p_target, nbrAdvOptions := p_opts }} } /* * @param p_src Binary IPv6 address associated with the * test component. Loading Loading @@ -859,6 +888,35 @@ }} } /* * @param p_src Binary IPv6 address associated with the * test component. * @param p_dst Binary IPv6 address associated with NUT. */ template RouterAdvertisement mw_rtAdv_hop255_noExtHdr_hAFlag ( template Ipv6Address p_src, template Ipv6Address p_dst, UInt1 p_homeAgentFlag, template RtAdvOptions p_rtAdvOptions ) := { ipv6Hdr := mw_ipHdr_nextHdr_hop_srcDst ( c_icmpHdr, c_hopLimit255, p_src, p_dst ), // FIXED (Alex) : m_ipHdr_nextHdr_srcDst->mw_ipHdr_srcDst_nextHdr_hopL255 extHdrList := omit, ipv6Payload := { routerAdvMsg := { icmpType:= c_rtAdvMsg, icmpCode:= c_icmpCode0, checksum:= ?, curHopLimit:= ?, managedConfigFlag:=?, otherConfigFlag:=?, homeAgentFlag := p_homeAgentFlag, reserved:= 0, routerLifetime:=?, reachableTime:=?, retransTimer:=?, rtAdvOptions:=p_rtAdvOptions }} } /* * @param p_src Binary IPv6 address associated with the * test component. Loading Loading @@ -1095,6 +1153,35 @@ prefix:= p_prefix } /* * @param p_prefixLength The length of the prefix * @param p_lFlag Value for link flag. * @param p_aFlag Value for autoconfiguration flag. * @param p_rAFlag Value for router address flag. * @param p_validLifetime Value for valid life time duration. * @param p_preferredLifetime Value for preffered life time duration. * @param p_prefix Address prefix to be used */ template PrefixInfo mw_prefixInfo ( template UInt8 p_prefixLength, UInt1 p_lFlag, UInt1 p_aFlag, UInt1 p_rAFlag, UInt32 p_validLifetime, UInt32 p_preferredLifetime, template Ipv6Address p_prefix):= { icmpType:= c_prefixInfo, optionLength:= c_prefixInfoLen, prefixLength:= p_prefixLength, linkFlag:=p_lFlag, autoConfigFlag:=p_aFlag, rtAddrFlag := p_rAFlag, reserved1:=0, validLifetime:=p_validLifetime, preferredLifetime:=p_preferredLifetime, reserved2:=0, prefix:= p_prefix } /* * @param p_prefixLength The length of the prefix * @param p_lFlag Value for link flag. Loading Loading @@ -1394,6 +1481,40 @@ otherOption := omit } // Added by PK /* * @param p_macSlla Binary MAC source address associated with * link layer of test component * @param p_prefixLength Length of the prefix. * @param p_lFlag Value for link flag. * @param p_aFlag Value for autoconfiguration flag. * @param p_rAFlag Value for router address flag. * @param p_validLifetime Value for valid life time duration. * @param p_preferredLifetime Value for preffered life time duration. * @param p_prefix Address prefix to be used */ template RtAdvOptions mw_rtAdvOpt_sllaPrefixOpt ( template Oct6to15 p_macSlla, UInt8 p_prefixLength, UInt1 p_lFlag, UInt1 p_aFlag, UInt1 p_rAFlag, UInt32 p_validLifetime, UInt32 p_preferredLifetime, template Ipv6Address p_prefix):={ srcLinkLayerAddr := m_macSlla(p_macSlla), mtuOption:= omit, prefixInfoList := { mw_prefixInfo ( p_prefixLength, p_lFlag, p_aFlag, p_rAFlag, p_validLifetime, p_preferredLifetime, p_prefix) }, advertisementInterval := omit, homeAgentInfo := omit, otherOption := omit } /* * @param p_prefixLength Length of the prefix. * @param p_lFlag Value for link flag. Loading IPSec/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2463Icmpv6_TypesAndValues.ttcn +1 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ group IcmpPointers { const UInt32 c_icmpPointer4 := 4; const UInt32 c_icmpPointer6 := 6; const UInt32 c_icmpPointer24 := 24; const UInt32 c_icmpPointer40 := 40; const UInt32 c_icmpPointer41 := 41; const UInt32 c_icmpPointer42 := 42; Loading IPSec/EtsiLibrary/LibIpv6/LibMobility/LibIpv6_Rfc3775Mipv6_Functions.ttcn +11 −6 Original line number Diff line number Diff line Loading @@ -154,19 +154,22 @@ module LibIpv6_Rfc3775Mipv6_Functions { }//end f_sendBindUpAndWaitForBindAckAtHome // Modified by PK /* * @desc Test Node is Off Home and sends BindUpdate and waits for Binding Ack * @param p_mnCoaTn Mobile Node Care Of 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_seqNr Seq Nr of Binding Update * @param p_timeUnits Lifetiem of Binding Update * @param p_timeUnits Lifetime of Binding Update * @param p_lFlag Value of L flag in Binding Update */ function f_sendBindUpAndWaitForBindAckOffHome( in template Ipv6Address p_mnCoaTn, in template Ipv6Address p_mnHoaTn, in template Ipv6Address p_haGlaNut, in UInt16 p_seqNr, in UInt16 p_timeUnits) in UInt16 p_timeUnits, in UInt1 p_lFlag) runs on Ipv6Node return FncRetCode { var FncRetCode v_ret; Loading @@ -185,7 +188,7 @@ module LibIpv6_Rfc3775Mipv6_Functions { m_bindingUpdate(p_seqNr, c_aFlag1, c_hFlag1, c_lFlag0, p_lFlag, c_kFlag0, p_timeUnits, m_mipOptList_2Elem( Loading Loading @@ -1547,7 +1550,8 @@ module LibIpv6_Rfc3775Mipv6_Functions { p_mnHoaTn, v_haGlasNut[0], c_defSeqNo, c_100TimeUnits); c_100TimeUnits, c_lFlag0); //added by PK } if (v_ret == e_success) { tc_ac.start(10.0); Loading Loading @@ -1587,7 +1591,8 @@ module LibIpv6_Rfc3775Mipv6_Functions { p_mnHoaTn, v_haGlasNut[0], c_defSeqNo, c_100TimeUnits); c_100TimeUnits, c_lFlag0); //added by PK } if(v_ret == e_success) { v_ret := f_mn_ha_sendHomeTestInitAndWaitForReply( p_mnCoaTn, Loading Loading
IPSec/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_CommonRfcs_Functions.ttcn +35 −1 Original line number Diff line number Diff line Loading @@ -207,7 +207,41 @@ return v_ret; }//end function f_isPresentRoutingHeaderType2 }//end function f_isPresentBindingAuthorityDataOption /* * @desc This goes through the ExtensionHeaderList and * checks if a Binding Refresh Advice option is present. * @param p_extHdrList ExtensionHeaderList to be treated * @return execution status */ function f_isPresentBindingRefreshAdviceOption ( in ExtensionHeaderList p_extHdrList ) runs on LibIpv6Node return FncRetCode { var FncRetCode v_ret := e_error; var UInt8 i,j; //select ext hdrs that need special calculation for ( i := 0; i < sizeof ( p_extHdrList ) and ( v_ret != e_success ); i := i + 1 ) { if ( ischosen ( p_extHdrList[i].mipHeader ) ) { if ( ischosen ( p_extHdrList[i].mipHeader.mipMessage.bindingAck ) ) { for ( j := 0; j < sizeof ( p_extHdrList[i].mipHeader.mipMessage.bindingAck.mipOptions ); j := j + 1 ) { if ( ischosen ( p_extHdrList[i].mipHeader.mipMessage.bindingAck.mipOptions[j].mipOptBindingRefreshAdvice ) == true ) { v_ret := e_success; } } } } } if ( v_ret == e_error ) { log ( "**** f_isPresentBindingRefreshAdviceOption: ERROR: Binding Authentication Data option is not present in Binding Ack **** " ); } return v_ret; }//end function f_isPresentBindingRefreshAdviceOption } // end module LibIpv6_CommonRfcs_Functions
IPSec/EtsiLibrary/LibIpv6/LibCommonRfcs/LibIpv6_Interface_Templates.ttcn +16 −0 Original line number Diff line number Diff line Loading @@ -684,6 +684,22 @@ group rfc3775Mipv6_ExtHdrTemplates { } } // Added by PK template MipMessage mw_bindingAck_statusKFlagSN ( template UInt8 p_status, UInt1 p_kFlag, UInt16 p_seqNr ) := { bindingAck := { status := p_status, kFlag := p_kFlag, reserved := ?, sequenceNumber := p_seqNr, lifeTime := ?, mipOptions := ? } } template MipMessage mw_bindingError := { bindingError := { status := ?, Loading
IPSec/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2461NeighborDiscovery_Templates.ttcn +122 −1 Original line number Diff line number Diff line Loading @@ -216,6 +216,35 @@ }} } // Added by PK /* * @param p_src Binary IPv6 address associated with the * test component. * @param p_dst Binary IPv6 address associated with NUT. * @param p_opts Neighborhood advertisement options value or template. */ template NeighborAdvertisement mw_nbrAdv_noExtHdr_allFlagsAndOpts ( template Ipv6Address p_src, template Ipv6Address p_dst, UInt1 p_rFlag, UInt1 p_sFlag, UInt1 p_oFlag, template Ipv6Address p_target, template NbrAdvOptions p_opts ) := { ipv6Hdr := mw_ipHdr_nextHdr_srcDst(c_icmpHdr, p_src, p_dst), extHdrList := omit, ipv6Payload := { nbrAdvMsg := { icmpType:= c_nbrAdvMsg, icmpCode:= c_icmpCode0, checksum:= ?, routerFlag:=p_rFlag, solicitedFlag:=p_sFlag, overrideFlag:=p_oFlag, reserved:=0, targetAddr:= p_target, nbrAdvOptions := p_opts }} } /* * @param p_src Binary IPv6 address associated with the * test component. Loading Loading @@ -859,6 +888,35 @@ }} } /* * @param p_src Binary IPv6 address associated with the * test component. * @param p_dst Binary IPv6 address associated with NUT. */ template RouterAdvertisement mw_rtAdv_hop255_noExtHdr_hAFlag ( template Ipv6Address p_src, template Ipv6Address p_dst, UInt1 p_homeAgentFlag, template RtAdvOptions p_rtAdvOptions ) := { ipv6Hdr := mw_ipHdr_nextHdr_hop_srcDst ( c_icmpHdr, c_hopLimit255, p_src, p_dst ), // FIXED (Alex) : m_ipHdr_nextHdr_srcDst->mw_ipHdr_srcDst_nextHdr_hopL255 extHdrList := omit, ipv6Payload := { routerAdvMsg := { icmpType:= c_rtAdvMsg, icmpCode:= c_icmpCode0, checksum:= ?, curHopLimit:= ?, managedConfigFlag:=?, otherConfigFlag:=?, homeAgentFlag := p_homeAgentFlag, reserved:= 0, routerLifetime:=?, reachableTime:=?, retransTimer:=?, rtAdvOptions:=p_rtAdvOptions }} } /* * @param p_src Binary IPv6 address associated with the * test component. Loading Loading @@ -1095,6 +1153,35 @@ prefix:= p_prefix } /* * @param p_prefixLength The length of the prefix * @param p_lFlag Value for link flag. * @param p_aFlag Value for autoconfiguration flag. * @param p_rAFlag Value for router address flag. * @param p_validLifetime Value for valid life time duration. * @param p_preferredLifetime Value for preffered life time duration. * @param p_prefix Address prefix to be used */ template PrefixInfo mw_prefixInfo ( template UInt8 p_prefixLength, UInt1 p_lFlag, UInt1 p_aFlag, UInt1 p_rAFlag, UInt32 p_validLifetime, UInt32 p_preferredLifetime, template Ipv6Address p_prefix):= { icmpType:= c_prefixInfo, optionLength:= c_prefixInfoLen, prefixLength:= p_prefixLength, linkFlag:=p_lFlag, autoConfigFlag:=p_aFlag, rtAddrFlag := p_rAFlag, reserved1:=0, validLifetime:=p_validLifetime, preferredLifetime:=p_preferredLifetime, reserved2:=0, prefix:= p_prefix } /* * @param p_prefixLength The length of the prefix * @param p_lFlag Value for link flag. Loading Loading @@ -1394,6 +1481,40 @@ otherOption := omit } // Added by PK /* * @param p_macSlla Binary MAC source address associated with * link layer of test component * @param p_prefixLength Length of the prefix. * @param p_lFlag Value for link flag. * @param p_aFlag Value for autoconfiguration flag. * @param p_rAFlag Value for router address flag. * @param p_validLifetime Value for valid life time duration. * @param p_preferredLifetime Value for preffered life time duration. * @param p_prefix Address prefix to be used */ template RtAdvOptions mw_rtAdvOpt_sllaPrefixOpt ( template Oct6to15 p_macSlla, UInt8 p_prefixLength, UInt1 p_lFlag, UInt1 p_aFlag, UInt1 p_rAFlag, UInt32 p_validLifetime, UInt32 p_preferredLifetime, template Ipv6Address p_prefix):={ srcLinkLayerAddr := m_macSlla(p_macSlla), mtuOption:= omit, prefixInfoList := { mw_prefixInfo ( p_prefixLength, p_lFlag, p_aFlag, p_rAFlag, p_validLifetime, p_preferredLifetime, p_prefix) }, advertisementInterval := omit, homeAgentInfo := omit, otherOption := omit } /* * @param p_prefixLength Length of the prefix. * @param p_lFlag Value for link flag. Loading
IPSec/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2463Icmpv6_TypesAndValues.ttcn +1 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ group IcmpPointers { const UInt32 c_icmpPointer4 := 4; const UInt32 c_icmpPointer6 := 6; const UInt32 c_icmpPointer24 := 24; const UInt32 c_icmpPointer40 := 40; const UInt32 c_icmpPointer41 := 41; const UInt32 c_icmpPointer42 := 42; Loading
IPSec/EtsiLibrary/LibIpv6/LibMobility/LibIpv6_Rfc3775Mipv6_Functions.ttcn +11 −6 Original line number Diff line number Diff line Loading @@ -154,19 +154,22 @@ module LibIpv6_Rfc3775Mipv6_Functions { }//end f_sendBindUpAndWaitForBindAckAtHome // Modified by PK /* * @desc Test Node is Off Home and sends BindUpdate and waits for Binding Ack * @param p_mnCoaTn Mobile Node Care Of 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_seqNr Seq Nr of Binding Update * @param p_timeUnits Lifetiem of Binding Update * @param p_timeUnits Lifetime of Binding Update * @param p_lFlag Value of L flag in Binding Update */ function f_sendBindUpAndWaitForBindAckOffHome( in template Ipv6Address p_mnCoaTn, in template Ipv6Address p_mnHoaTn, in template Ipv6Address p_haGlaNut, in UInt16 p_seqNr, in UInt16 p_timeUnits) in UInt16 p_timeUnits, in UInt1 p_lFlag) runs on Ipv6Node return FncRetCode { var FncRetCode v_ret; Loading @@ -185,7 +188,7 @@ module LibIpv6_Rfc3775Mipv6_Functions { m_bindingUpdate(p_seqNr, c_aFlag1, c_hFlag1, c_lFlag0, p_lFlag, c_kFlag0, p_timeUnits, m_mipOptList_2Elem( Loading Loading @@ -1547,7 +1550,8 @@ module LibIpv6_Rfc3775Mipv6_Functions { p_mnHoaTn, v_haGlasNut[0], c_defSeqNo, c_100TimeUnits); c_100TimeUnits, c_lFlag0); //added by PK } if (v_ret == e_success) { tc_ac.start(10.0); Loading Loading @@ -1587,7 +1591,8 @@ module LibIpv6_Rfc3775Mipv6_Functions { p_mnHoaTn, v_haGlasNut[0], c_defSeqNo, c_100TimeUnits); c_100TimeUnits, c_lFlag0); //added by PK } if(v_ret == e_success) { v_ret := f_mn_ha_sendHomeTestInitAndWaitForReply( p_mnCoaTn, Loading