Loading ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2460Root_Functions.ttcn +57 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ import from LibIpv6_Rfc2460Root_TypesAndValues all; import from LibIpv6_Interface all; import from LibIpv6_ExternalFunctions all; import from LibIpv6_MultiRfcs_Functions all; group ipv6Packets { Loading @@ -42,4 +43,60 @@ } //end group ipv6Packets group extHdrFns { /* * @desc This sends a General IPv6 packet * from an IPv6 node to any NUT. * A General IPv6 packet is used in the case where only Extension headers * need to be sent. * @remark Time limit is defined by module parameter PX_TAC (see comp type) * @param p_msg MIPHeader to be sent * @return execution status */ function f_sendIpv6ExtHdrs(template Ipv6ExtHdrs p_msg) runs on LibIpv6Node return FncRetCode { var Ipv6Packet v_ipPkt; v_ipPkt.ipv6ExtHdrs := valueof(p_msg); //calc payloadLen v_ipPkt.ipv6ExtHdrs.ipv6Hdr.payloadLength := fx_payloadLength (v_ipPkt); //set extensionHeaders if(f_setExtensionHeaders(v_ipPkt.ipv6ExtHdrs.extHdrList) != e_success) { log(" **** f_sendIpv6ExtHdrs: Error whem calculating length of extension headers ****"); return e_error; } //send ipPort.send(v_ipPkt.ipv6ExtHdrs); return e_success; } /* * @desc This goes through the extension header list and calculates length, checksum * and other specific functions of the different extension headers * @param p_msg ExtensionHeaderList to be treated * @return execution status */ function f_setExtensionHeaders(inout ExtensionHeaderList p_extHdrList) runs on LibIpv6Node return FncRetCode { var UInt8 i; //select ext hdrs that need special calculation for (i:=0; i<=sizeof(p_extHdrList);i:=i+1) { if (ischosen(p_extHdrList[i].mipHeader)) { f_setMipHeader(p_extHdrList[i].mipHeader); } /* else if (ischosen(p_extHdrList[i].)) { f_setSecurityHdr(); } */ } return e_success; } }//end group extHdrFns } // end module LibIpv6_Rfc2460Root_Functions ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2460Root_Templates.ttcn +217 −22 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ import from LibIpv6_Rfc2460Root_TypesAndValues all ; import from LibIpv6_Rfc2462StatelessAddressAutoconf_TypesAndValues all; group ipv6Header{ group ipv6HeaderTemplates{ /* * @param p_nextHdr Next header identifier value to be used. Loading Loading @@ -59,6 +59,20 @@ destinationAddress := p_dst } /* * @param p_nextHdr Next header identifier value to be used. */ template Ipv6Header mw_ipHdr := { version := c_ipv6Version , trafficClass := ?, //c_trafficClassZero , flowLabel := c_flowLabelZero , payloadLength := ?, nextHeader := ?, hopLimit := ?, sourceAddress := ?, destinationAddress := ? } /* * @param p_nextHdr Next header identifier value to be used. */ Loading Loading @@ -146,9 +160,11 @@ destinationAddress := p_dst } } // end ipv6Header } // end group ipv6HeaderTemplates group extensionHeader { group extensionHeaderTemplates { group extensionHeaderListTemplates { /* * @param p_extHdr First element in extension header Loading Loading @@ -182,6 +198,10 @@ p_extHdr3 } }//end group extensionHeaderListTemplates group dstOptHeaderTemplates { /* * @param p_nextHeader Next header identifier value to be used * @param p_hdrExtLen Length of this extension header Loading @@ -199,6 +219,10 @@ } } }//end group dstOptHeaderTemplates group fragmentHeaderTemplates { /* * @param p_nextHeader Next header identifier value to be used * @param p_fragmentOffset The offset, in 8-octet units, of the Loading @@ -223,6 +247,10 @@ } } }//end group fragmentHeaderTemplates group hbhOptHeaderTemplates { /* * @param p_nextHeader Next header identifier value to be used * @param p_hdrExtLen Length of this extension header Loading @@ -240,6 +268,10 @@ } } }//end hbhOptHeaderTemplates group routingHeaderTemplates { /* * @param p_nextHeader Next header identifier value to be used * @param p_hdrExtLen Length of this extension header in 8-octet units Loading @@ -264,7 +296,30 @@ } } group Routing_Header { /* * @param p_nextHeader Next header identifier value to be used * @param p_hdrExtLen Length of this extension header in 8-octet units * @param p_routingType Type of the routing header * @param p_segmentsLeft Number of route segments remaining * @param p_routingHeaderData A list of IPv6 addresses */ template ExtensionHeader mw_extHdr_routingHeader ( UInt8 p_nextHeader, UInt8 p_hdrExtLen, UInt8 p_routingType, UInt8 p_segmentsLeft, template RoutingHeaderData p_routingHeaderData ) := { routingHeader := { nextHeader := p_nextHeader, hdrExtLen := p_hdrExtLen, routingType := p_routingType, segmentsLeft := p_segmentsLeft, reserved := ?, routingHeaderData := p_routingHeaderData } } /* * @param p_ipv6Address First IPv6 address in the routing header Loading @@ -275,11 +330,92 @@ } } } // end group Routing_Header }//end group routingHeaderTemplates group mipHeaderTemplates { template ExtensionHeader m_extHdr_mipHeader ( UInt8 p_payloadProtocol, UInt8 p_mobilityHeaderType, template MipMessage p_mipMessage) := { mipHeader := { payloadProtocol := p_payloadProtocol, headerLen := c_uInt8Zero, mobilityHeaderType := p_mobilityHeaderType, reserved := c_uInt8Zero, checksum := c_2ZeroBytes, mipMessage := p_mipMessage } } template ExtensionHeader mw_extHdr_mipHeader ( UInt8 p_payloadProtocol, UInt8 p_mobilityHeaderType, template MipMessage p_mipMessage) := { mipHeader := { payloadProtocol := p_payloadProtocol, headerLen := ?, mobilityHeaderType := p_mobilityHeaderType, reserved := ?, checksum := ?, mipMessage := p_mipMessage } } }//end group mipHeaderTemplates group tunnelHdrTemplates { /* @desc Tunnel Hdr can use copy of IPv6Header for all fields except nextHdr * However, here no copies are used, but Zero Values. * @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 ExtensionHeader m_extHdr_tunnelHeader( UInt8 p_nextHdr, template Ipv6Address p_src, template Ipv6Address p_dst) := { tunnelIpv6 := { version := c_ipv6Version , trafficClass := c_trafficClassZero , flowLabel := c_flowLabelZero , payloadLength := c_zeroPayloadLength, nextHeader := p_nextHdr, hopLimit := c_hopLimit255, sourceAddress := p_src, destinationAddress := p_dst } } /* @desc Tunnel Hdr can use copy of IPv6Header for all fields except nextHdr * However, here no copies are used, but Zero Values. * @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 ExtensionHeader mw_extHdr_tunnelHeader( UInt8 p_nextHdr, template Ipv6Address p_src, template Ipv6Address p_dst) := { tunnelIpv6 := { version := c_ipv6Version , trafficClass := ? , flowLabel := ? , payloadLength := ?, nextHeader := p_nextHdr, hopLimit := ?, sourceAddress := p_src, destinationAddress := p_dst } } }//end group tunnelHdrTemplates } // end extensionHeader group generalIpv6MessageType { group generalIpv6MessageTemplates{ /* * @param p_nextHeader Next header identifier value to be used. Loading @@ -301,6 +437,25 @@ data:= p_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_extHdr_srcDst( // UInt8 p_nextHeader, // template ExtensionHeaderList p_extHdrList, // template Ipv6Address p_src, // template Ipv6Address p_dst // ) := { // ipv6Hdr := mw_ipHdr_nextHdr_srcDst(p_nextHeader, p_src, p_dst), // extHdrList := p_extHdrList, // data:= omit // } /* * @param p_nextHeader Next header identifier value to be used. * @param p_extHdrList List of extension header in the packet. Loading @@ -319,12 +474,52 @@ data:= * } } //end group generalIpv6MessageType } //end group generalIpv6MessageTemplates group ipPacketsWithOnlyExtensionHdrsTemplates { /* * @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 Ipv6ExtHdrs m_ipv6ExtHdrs_srcDst( UInt8 p_nextHeader, template ExtensionHeaderList p_extHdrList, template Ipv6Address p_src, template Ipv6Address p_dst ) := { ipv6Hdr := m_ipHdr_nextHdr_srcDst(p_nextHeader, p_src, p_dst), extHdrList := p_extHdrList } /* * @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 Ipv6ExtHdrs mw_ipv6ExtHdrs_srcDst( UInt8 p_nextHeader, template ExtensionHeaderList p_extHdrList, template Ipv6Address p_src, template Ipv6Address p_dst ) := { ipv6Hdr := mw_ipHdr_nextHdr_srcDst(p_nextHeader, p_src, p_dst), extHdrList := p_extHdrList } }//end group ipPacketsWithOnlyExtensionHdrsTemplates group ipv6Address { group ipv6AddressTemplates { template Ipv6Address mw_anyIpv6Address := ? } //end group ipv6Address } //end group ipv6AddressTemplates } // end module LibIpv6_Rfc2460Root_Templates ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2460Root_TypesAndValues.ttcn +17 −7 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ const UInt8 c_routeHdrSegmentsLeft1 := 1; const UInt8 c_routeHdrSegmentsLeft2 := 2; const UInt8 c_routeHdrType0 := 0; const UInt8 c_routeHdrType2 := 2; }//end group extHdrValues Loading Loading @@ -87,10 +88,10 @@ RoutingHeader routingHeader, FragmentHeader fragmentHeader, DestOptionHeader destinationOptionHeader, Ipv6Header tunnelIPv6/*, MobilityHeader mobilityHeader, AuthHeader authHeader, EspHeader espHeader, Ipv6Header tunnelIpv6, MipHeader mipHeader/*,//defined in LibIpv6_MultiRfcs_TypesAndValues AuthHeader authHeader, //defined in LibIpv6_MultiRfcs_TypesAndValues EspHeader espHeader, //defined in LibIpv6_MultiRfcs_TypesAndValues OtherIpv6ExtHdr otherHeader */ } Loading Loading @@ -178,6 +179,15 @@ group generalIpv6MessageType { /* * @desc PDU type derived from RFC2460 */ type record Ipv6ExtHdrs { Ipv6Header ipv6Hdr, ExtensionHeaderList extHdrList } /* * @desc PDU type derived from RFC2460 */ Loading ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2461NeighborDiscovery_Functions.ttcn +2 −2 Original line number Diff line number Diff line Loading @@ -23,9 +23,9 @@ module LibIpv6_Rfc2461NeighborDiscovery_Functions { import from LibIpv6_ModuleParameters all ; import from LibIpv6_Rfc2461NeighborDiscovery_Templates all; import from LibIpv6_Rfc2461NeighborDiscovery_TypesAndValues all; import from LibIpv6_Rfc2463Icmpv6_Functions all; import from LibIpv6_MultiRfcs_TypesAndValues all; import from LibIpv6_MultiRfcs_Templates all; import from LibIpv6_MultiRfcs_Functions all; group redirect { Loading ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2461NeighborDiscovery_Templates.ttcn +23 −12 Original line number Diff line number Diff line Loading @@ -559,6 +559,7 @@ curHopLimit:= c_hopLimit255, managedConfigFlag:=p_mFlag, otherConfigFlag:=p_oFlag, homeAgentFlag := c_haFlag0, reserved:=0, routerLifetime:=p_lifetime, reachableTime:=p_reachTime, Loading Loading @@ -595,7 +596,8 @@ curHopLimit:= c_hopLimit255, managedConfigFlag:=p_mFlag, otherConfigFlag:=p_oFlag, reserved:= c_uInt6Max, homeAgentFlag := c_haFlag0, reserved:= 0, routerLifetime:=p_lifetime, reachableTime:=p_reachTime, retransTimer:=p_retransTimer, Loading Loading @@ -631,7 +633,8 @@ curHopLimit:= c_hopLimit255, managedConfigFlag:=p_mFlag, otherConfigFlag:=p_oFlag, reserved:= c_uInt6Max, homeAgentFlag := c_haFlag0, reserved:= 0, routerLifetime:=p_lifetime, reachableTime:=p_reachTime, retransTimer:=p_retransTimer, Loading Loading @@ -665,7 +668,8 @@ curHopLimit:= c_hopLimit255, managedConfigFlag:=p_mFlag, otherConfigFlag:=p_oFlag, reserved:= c_uInt6Max, homeAgentFlag := c_haFlag0, reserved:= c_uInt5Max, routerLifetime:=p_lifetime, reachableTime:=p_reachTime, retransTimer:=p_retransTimer, Loading @@ -686,6 +690,7 @@ curHopLimit:= c_hopLimit0, managedConfigFlag:= c_mFlag0, otherConfigFlag:= c_oFlag0, homeAgentFlag := c_haFlag0, reserved:= 0, routerLifetime:=c_infiniteLifetime, reachableTime:=c_unspecifiedReachTime, Loading @@ -704,6 +709,7 @@ curHopLimit:= ?, managedConfigFlag:=?, otherConfigFlag:=?, homeAgentFlag := ?, reserved:= 0, routerLifetime:=?, reachableTime:=?, Loading @@ -726,6 +732,7 @@ curHopLimit:= ?, managedConfigFlag:=?, otherConfigFlag:=?, homeAgentFlag := ?, reserved:= 0, routerLifetime:=?, reachableTime:=?, Loading @@ -748,6 +755,7 @@ curHopLimit:= ?, managedConfigFlag:=?, otherConfigFlag:=?, homeAgentFlag := ?, reserved:= 0, routerLifetime:=?, reachableTime:=?, Loading Loading @@ -971,6 +979,7 @@ prefixLength:= p_prefixLength, linkFlag:=p_lFlag, autoConfigFlag:=p_aFlag, rtAddrFlag := c_rtAddrFlag0, reserved1:=0, validLifetime:=p_validLifetime, preferredLifetime:=p_preferredLifetime, Loading @@ -997,7 +1006,8 @@ prefixLength:= p_prefixLength, linkFlag:=p_lFlag, autoConfigFlag:=p_aFlag, reserved1:=c_uInt6Max, rtAddrFlag := c_rtAddrFlag0, reserved1:=0, validLifetime:=p_validLifetime, preferredLifetime:=p_preferredLifetime, reserved2:=c_uInt31Max, Loading @@ -1013,7 +1023,7 @@ * @param p_preferredLifetime Value for preffered life time duration. * @param p_prefix Address prefix to be used */ template PrefixInfo p_prefixInfo_optLen ( template UInt8 p_prefixLength, template PrefixInfo m_prefixInfo_optLen ( template UInt8 p_prefixLength, UInt8 p_optionLength, UInt1 p_lFlag, UInt1 p_aFlag, Loading @@ -1025,6 +1035,7 @@ prefixLength:= p_prefixLength, linkFlag:=p_lFlag, autoConfigFlag:=p_aFlag, rtAddrFlag := c_rtAddrFlag0, reserved1:=0, validLifetime:=p_validLifetime, preferredLifetime:=p_preferredLifetime, Loading Loading @@ -1277,7 +1288,7 @@ template Ipv6Address p_prefix):={ srcLinkLayerAddr := m_macSlla(p_macSlla), mtuOption:= omit, prefixInfoList := { p_prefixInfo_optLen( p_prefixLength, prefixInfoList := { m_prefixInfo_optLen( p_prefixLength, p_optionLength, p_lFlag, p_aFlag, Loading Loading
ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2460Root_Functions.ttcn +57 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ import from LibIpv6_Rfc2460Root_TypesAndValues all; import from LibIpv6_Interface all; import from LibIpv6_ExternalFunctions all; import from LibIpv6_MultiRfcs_Functions all; group ipv6Packets { Loading @@ -42,4 +43,60 @@ } //end group ipv6Packets group extHdrFns { /* * @desc This sends a General IPv6 packet * from an IPv6 node to any NUT. * A General IPv6 packet is used in the case where only Extension headers * need to be sent. * @remark Time limit is defined by module parameter PX_TAC (see comp type) * @param p_msg MIPHeader to be sent * @return execution status */ function f_sendIpv6ExtHdrs(template Ipv6ExtHdrs p_msg) runs on LibIpv6Node return FncRetCode { var Ipv6Packet v_ipPkt; v_ipPkt.ipv6ExtHdrs := valueof(p_msg); //calc payloadLen v_ipPkt.ipv6ExtHdrs.ipv6Hdr.payloadLength := fx_payloadLength (v_ipPkt); //set extensionHeaders if(f_setExtensionHeaders(v_ipPkt.ipv6ExtHdrs.extHdrList) != e_success) { log(" **** f_sendIpv6ExtHdrs: Error whem calculating length of extension headers ****"); return e_error; } //send ipPort.send(v_ipPkt.ipv6ExtHdrs); return e_success; } /* * @desc This goes through the extension header list and calculates length, checksum * and other specific functions of the different extension headers * @param p_msg ExtensionHeaderList to be treated * @return execution status */ function f_setExtensionHeaders(inout ExtensionHeaderList p_extHdrList) runs on LibIpv6Node return FncRetCode { var UInt8 i; //select ext hdrs that need special calculation for (i:=0; i<=sizeof(p_extHdrList);i:=i+1) { if (ischosen(p_extHdrList[i].mipHeader)) { f_setMipHeader(p_extHdrList[i].mipHeader); } /* else if (ischosen(p_extHdrList[i].)) { f_setSecurityHdr(); } */ } return e_success; } }//end group extHdrFns } // end module LibIpv6_Rfc2460Root_Functions
ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2460Root_Templates.ttcn +217 −22 Original line number Diff line number Diff line Loading @@ -17,7 +17,7 @@ import from LibIpv6_Rfc2460Root_TypesAndValues all ; import from LibIpv6_Rfc2462StatelessAddressAutoconf_TypesAndValues all; group ipv6Header{ group ipv6HeaderTemplates{ /* * @param p_nextHdr Next header identifier value to be used. Loading Loading @@ -59,6 +59,20 @@ destinationAddress := p_dst } /* * @param p_nextHdr Next header identifier value to be used. */ template Ipv6Header mw_ipHdr := { version := c_ipv6Version , trafficClass := ?, //c_trafficClassZero , flowLabel := c_flowLabelZero , payloadLength := ?, nextHeader := ?, hopLimit := ?, sourceAddress := ?, destinationAddress := ? } /* * @param p_nextHdr Next header identifier value to be used. */ Loading Loading @@ -146,9 +160,11 @@ destinationAddress := p_dst } } // end ipv6Header } // end group ipv6HeaderTemplates group extensionHeader { group extensionHeaderTemplates { group extensionHeaderListTemplates { /* * @param p_extHdr First element in extension header Loading Loading @@ -182,6 +198,10 @@ p_extHdr3 } }//end group extensionHeaderListTemplates group dstOptHeaderTemplates { /* * @param p_nextHeader Next header identifier value to be used * @param p_hdrExtLen Length of this extension header Loading @@ -199,6 +219,10 @@ } } }//end group dstOptHeaderTemplates group fragmentHeaderTemplates { /* * @param p_nextHeader Next header identifier value to be used * @param p_fragmentOffset The offset, in 8-octet units, of the Loading @@ -223,6 +247,10 @@ } } }//end group fragmentHeaderTemplates group hbhOptHeaderTemplates { /* * @param p_nextHeader Next header identifier value to be used * @param p_hdrExtLen Length of this extension header Loading @@ -240,6 +268,10 @@ } } }//end hbhOptHeaderTemplates group routingHeaderTemplates { /* * @param p_nextHeader Next header identifier value to be used * @param p_hdrExtLen Length of this extension header in 8-octet units Loading @@ -264,7 +296,30 @@ } } group Routing_Header { /* * @param p_nextHeader Next header identifier value to be used * @param p_hdrExtLen Length of this extension header in 8-octet units * @param p_routingType Type of the routing header * @param p_segmentsLeft Number of route segments remaining * @param p_routingHeaderData A list of IPv6 addresses */ template ExtensionHeader mw_extHdr_routingHeader ( UInt8 p_nextHeader, UInt8 p_hdrExtLen, UInt8 p_routingType, UInt8 p_segmentsLeft, template RoutingHeaderData p_routingHeaderData ) := { routingHeader := { nextHeader := p_nextHeader, hdrExtLen := p_hdrExtLen, routingType := p_routingType, segmentsLeft := p_segmentsLeft, reserved := ?, routingHeaderData := p_routingHeaderData } } /* * @param p_ipv6Address First IPv6 address in the routing header Loading @@ -275,11 +330,92 @@ } } } // end group Routing_Header }//end group routingHeaderTemplates group mipHeaderTemplates { template ExtensionHeader m_extHdr_mipHeader ( UInt8 p_payloadProtocol, UInt8 p_mobilityHeaderType, template MipMessage p_mipMessage) := { mipHeader := { payloadProtocol := p_payloadProtocol, headerLen := c_uInt8Zero, mobilityHeaderType := p_mobilityHeaderType, reserved := c_uInt8Zero, checksum := c_2ZeroBytes, mipMessage := p_mipMessage } } template ExtensionHeader mw_extHdr_mipHeader ( UInt8 p_payloadProtocol, UInt8 p_mobilityHeaderType, template MipMessage p_mipMessage) := { mipHeader := { payloadProtocol := p_payloadProtocol, headerLen := ?, mobilityHeaderType := p_mobilityHeaderType, reserved := ?, checksum := ?, mipMessage := p_mipMessage } } }//end group mipHeaderTemplates group tunnelHdrTemplates { /* @desc Tunnel Hdr can use copy of IPv6Header for all fields except nextHdr * However, here no copies are used, but Zero Values. * @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 ExtensionHeader m_extHdr_tunnelHeader( UInt8 p_nextHdr, template Ipv6Address p_src, template Ipv6Address p_dst) := { tunnelIpv6 := { version := c_ipv6Version , trafficClass := c_trafficClassZero , flowLabel := c_flowLabelZero , payloadLength := c_zeroPayloadLength, nextHeader := p_nextHdr, hopLimit := c_hopLimit255, sourceAddress := p_src, destinationAddress := p_dst } } /* @desc Tunnel Hdr can use copy of IPv6Header for all fields except nextHdr * However, here no copies are used, but Zero Values. * @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 ExtensionHeader mw_extHdr_tunnelHeader( UInt8 p_nextHdr, template Ipv6Address p_src, template Ipv6Address p_dst) := { tunnelIpv6 := { version := c_ipv6Version , trafficClass := ? , flowLabel := ? , payloadLength := ?, nextHeader := p_nextHdr, hopLimit := ?, sourceAddress := p_src, destinationAddress := p_dst } } }//end group tunnelHdrTemplates } // end extensionHeader group generalIpv6MessageType { group generalIpv6MessageTemplates{ /* * @param p_nextHeader Next header identifier value to be used. Loading @@ -301,6 +437,25 @@ data:= p_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_extHdr_srcDst( // UInt8 p_nextHeader, // template ExtensionHeaderList p_extHdrList, // template Ipv6Address p_src, // template Ipv6Address p_dst // ) := { // ipv6Hdr := mw_ipHdr_nextHdr_srcDst(p_nextHeader, p_src, p_dst), // extHdrList := p_extHdrList, // data:= omit // } /* * @param p_nextHeader Next header identifier value to be used. * @param p_extHdrList List of extension header in the packet. Loading @@ -319,12 +474,52 @@ data:= * } } //end group generalIpv6MessageType } //end group generalIpv6MessageTemplates group ipPacketsWithOnlyExtensionHdrsTemplates { /* * @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 Ipv6ExtHdrs m_ipv6ExtHdrs_srcDst( UInt8 p_nextHeader, template ExtensionHeaderList p_extHdrList, template Ipv6Address p_src, template Ipv6Address p_dst ) := { ipv6Hdr := m_ipHdr_nextHdr_srcDst(p_nextHeader, p_src, p_dst), extHdrList := p_extHdrList } /* * @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 Ipv6ExtHdrs mw_ipv6ExtHdrs_srcDst( UInt8 p_nextHeader, template ExtensionHeaderList p_extHdrList, template Ipv6Address p_src, template Ipv6Address p_dst ) := { ipv6Hdr := mw_ipHdr_nextHdr_srcDst(p_nextHeader, p_src, p_dst), extHdrList := p_extHdrList } }//end group ipPacketsWithOnlyExtensionHdrsTemplates group ipv6Address { group ipv6AddressTemplates { template Ipv6Address mw_anyIpv6Address := ? } //end group ipv6Address } //end group ipv6AddressTemplates } // end module LibIpv6_Rfc2460Root_Templates
ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2460Root_TypesAndValues.ttcn +17 −7 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ const UInt8 c_routeHdrSegmentsLeft1 := 1; const UInt8 c_routeHdrSegmentsLeft2 := 2; const UInt8 c_routeHdrType0 := 0; const UInt8 c_routeHdrType2 := 2; }//end group extHdrValues Loading Loading @@ -87,10 +88,10 @@ RoutingHeader routingHeader, FragmentHeader fragmentHeader, DestOptionHeader destinationOptionHeader, Ipv6Header tunnelIPv6/*, MobilityHeader mobilityHeader, AuthHeader authHeader, EspHeader espHeader, Ipv6Header tunnelIpv6, MipHeader mipHeader/*,//defined in LibIpv6_MultiRfcs_TypesAndValues AuthHeader authHeader, //defined in LibIpv6_MultiRfcs_TypesAndValues EspHeader espHeader, //defined in LibIpv6_MultiRfcs_TypesAndValues OtherIpv6ExtHdr otherHeader */ } Loading Loading @@ -178,6 +179,15 @@ group generalIpv6MessageType { /* * @desc PDU type derived from RFC2460 */ type record Ipv6ExtHdrs { Ipv6Header ipv6Hdr, ExtensionHeaderList extHdrList } /* * @desc PDU type derived from RFC2460 */ Loading
ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2461NeighborDiscovery_Functions.ttcn +2 −2 Original line number Diff line number Diff line Loading @@ -23,9 +23,9 @@ module LibIpv6_Rfc2461NeighborDiscovery_Functions { import from LibIpv6_ModuleParameters all ; import from LibIpv6_Rfc2461NeighborDiscovery_Templates all; import from LibIpv6_Rfc2461NeighborDiscovery_TypesAndValues all; import from LibIpv6_Rfc2463Icmpv6_Functions all; import from LibIpv6_MultiRfcs_TypesAndValues all; import from LibIpv6_MultiRfcs_Templates all; import from LibIpv6_MultiRfcs_Functions all; group redirect { Loading
ttcn3/EtsiLibrary/LibIpv6/LibCore/LibIpv6_Rfc2461NeighborDiscovery_Templates.ttcn +23 −12 Original line number Diff line number Diff line Loading @@ -559,6 +559,7 @@ curHopLimit:= c_hopLimit255, managedConfigFlag:=p_mFlag, otherConfigFlag:=p_oFlag, homeAgentFlag := c_haFlag0, reserved:=0, routerLifetime:=p_lifetime, reachableTime:=p_reachTime, Loading Loading @@ -595,7 +596,8 @@ curHopLimit:= c_hopLimit255, managedConfigFlag:=p_mFlag, otherConfigFlag:=p_oFlag, reserved:= c_uInt6Max, homeAgentFlag := c_haFlag0, reserved:= 0, routerLifetime:=p_lifetime, reachableTime:=p_reachTime, retransTimer:=p_retransTimer, Loading Loading @@ -631,7 +633,8 @@ curHopLimit:= c_hopLimit255, managedConfigFlag:=p_mFlag, otherConfigFlag:=p_oFlag, reserved:= c_uInt6Max, homeAgentFlag := c_haFlag0, reserved:= 0, routerLifetime:=p_lifetime, reachableTime:=p_reachTime, retransTimer:=p_retransTimer, Loading Loading @@ -665,7 +668,8 @@ curHopLimit:= c_hopLimit255, managedConfigFlag:=p_mFlag, otherConfigFlag:=p_oFlag, reserved:= c_uInt6Max, homeAgentFlag := c_haFlag0, reserved:= c_uInt5Max, routerLifetime:=p_lifetime, reachableTime:=p_reachTime, retransTimer:=p_retransTimer, Loading @@ -686,6 +690,7 @@ curHopLimit:= c_hopLimit0, managedConfigFlag:= c_mFlag0, otherConfigFlag:= c_oFlag0, homeAgentFlag := c_haFlag0, reserved:= 0, routerLifetime:=c_infiniteLifetime, reachableTime:=c_unspecifiedReachTime, Loading @@ -704,6 +709,7 @@ curHopLimit:= ?, managedConfigFlag:=?, otherConfigFlag:=?, homeAgentFlag := ?, reserved:= 0, routerLifetime:=?, reachableTime:=?, Loading @@ -726,6 +732,7 @@ curHopLimit:= ?, managedConfigFlag:=?, otherConfigFlag:=?, homeAgentFlag := ?, reserved:= 0, routerLifetime:=?, reachableTime:=?, Loading @@ -748,6 +755,7 @@ curHopLimit:= ?, managedConfigFlag:=?, otherConfigFlag:=?, homeAgentFlag := ?, reserved:= 0, routerLifetime:=?, reachableTime:=?, Loading Loading @@ -971,6 +979,7 @@ prefixLength:= p_prefixLength, linkFlag:=p_lFlag, autoConfigFlag:=p_aFlag, rtAddrFlag := c_rtAddrFlag0, reserved1:=0, validLifetime:=p_validLifetime, preferredLifetime:=p_preferredLifetime, Loading @@ -997,7 +1006,8 @@ prefixLength:= p_prefixLength, linkFlag:=p_lFlag, autoConfigFlag:=p_aFlag, reserved1:=c_uInt6Max, rtAddrFlag := c_rtAddrFlag0, reserved1:=0, validLifetime:=p_validLifetime, preferredLifetime:=p_preferredLifetime, reserved2:=c_uInt31Max, Loading @@ -1013,7 +1023,7 @@ * @param p_preferredLifetime Value for preffered life time duration. * @param p_prefix Address prefix to be used */ template PrefixInfo p_prefixInfo_optLen ( template UInt8 p_prefixLength, template PrefixInfo m_prefixInfo_optLen ( template UInt8 p_prefixLength, UInt8 p_optionLength, UInt1 p_lFlag, UInt1 p_aFlag, Loading @@ -1025,6 +1035,7 @@ prefixLength:= p_prefixLength, linkFlag:=p_lFlag, autoConfigFlag:=p_aFlag, rtAddrFlag := c_rtAddrFlag0, reserved1:=0, validLifetime:=p_validLifetime, preferredLifetime:=p_preferredLifetime, Loading Loading @@ -1277,7 +1288,7 @@ template Ipv6Address p_prefix):={ srcLinkLayerAddr := m_macSlla(p_macSlla), mtuOption:= omit, prefixInfoList := { p_prefixInfo_optLen( p_prefixLength, prefixInfoList := { m_prefixInfo_optLen( p_prefixLength, p_optionLength, p_lFlag, p_aFlag, Loading