Loading ttcn/GeoNetworking/LibItsGeoNetworking_Pixits.ttcn +8 −0 Original line number Diff line number Diff line Loading @@ -158,6 +158,14 @@ module LibItsGeoNetworking_Pixits { modulepar integer PX_POS_DELTA := 1; } group upperLayer { /** * @desc The IUT's upper layer */ modulepar NextHeader PX_GN_UPPER_LAYER := e_any; } } // end geoNetworkingPixits } // end LibItsGeoNetworking_Pixits ttcn/GeoNetworking/LibItsGeoNetworking_Templates.ttcn +71 −13 Original line number Diff line number Diff line Loading @@ -14,7 +14,9 @@ module LibItsGeoNetworking_Templates { // LibIts import from LibIts_Interface all; import from LibItsGeoNetworking_TypesAndValues all; import from LibItsIpv6OverGeoNetworking_TypesAndValues {type MacAddress} import from LibItsIpv6OverGeoNetworking_TypesAndValues all; import from LibItsIpv6OverGeoNetworking_Templates all; import from LibItsBtp_Templates all; import from LibItsGeoNetworking_Pixits all; import from LibItsCommon_TypesAndValues all; Loading Loading @@ -115,11 +117,11 @@ module LibItsGeoNetworking_Templates { */ template UtEvent m_generateGeoUnicastMessageWithPayload( GN_Address p_destinationGnAddr, Payload p_payload octetstring p_payload ) modifies m_generateGeoUnicastMessage := { utGnEvent := { geoUnicast := { payload := p_payload payload := f_adaptPayload_m(p_payload) } } } Loading Loading @@ -147,11 +149,11 @@ module LibItsGeoNetworking_Templates { */ template UtEvent m_generateGeoBroadcastMessageWithPayload( GeoArea p_area, Payload p_payload octetstring p_payload ) modifies m_generateGeoBroadcastMessage := { utGnEvent := { geoBroadcast := { payload := p_payload payload := f_adaptPayload_m(p_payload) } } } Loading Loading @@ -179,11 +181,11 @@ module LibItsGeoNetworking_Templates { */ template UtEvent m_generateGeoAnycastMessageWithPayload( GeoArea p_area, Payload p_payload octetstring p_payload ) modifies m_generateGeoAnycastMessage := { utGnEvent := { geoAnycast := { payload := p_payload payload := f_adaptPayload_m(p_payload) } } } Loading @@ -205,11 +207,11 @@ module LibItsGeoNetworking_Templates { * @see m_generateShbMessage */ template UtEvent m_generateShbMessageWithPayload( Payload p_payload octetstring p_payload ) modifies m_generateShbMessage := { utGnEvent := { shb := { payload := p_payload payload := f_adaptPayload_m(p_payload) } } } Loading Loading @@ -358,9 +360,9 @@ module LibItsGeoNetworking_Templates { */ template (value) GeoNetworkingPacket m_geoNwPduWithPayload( in template (value) Header p_header, in template (value) Payload p_payload in template (value) octetstring p_payload ) modifies m_geoNwPdu := { payload := p_payload payload := f_adaptPayload_m(p_payload) } /** Loading Loading @@ -394,9 +396,9 @@ module LibItsGeoNetworking_Templates { */ template GeoNetworkingPacket mw_geoNwPduWithPayload( in template (present) Header p_header, in template (present) Payload p_payload in template (present) octetstring p_payload ) modifies mw_geoNwPdu := { payload := p_payload payload := f_adaptPayload_mw(p_payload) } } // end geoNwPduTemplates Loading Loading @@ -1755,4 +1757,60 @@ module LibItsGeoNetworking_Templates { } // end geoMiscTemplates group geoTemplateFunctions { function f_adaptPayload_m(in octetstring p_finalPayload) return template (value) Payload { var template (value) Payload v_payload; if(PX_GN_UPPER_LAYER == e_any) { v_payload := { otherPayload := p_finalPayload}; return v_payload; } if(PX_GN_UPPER_LAYER == e_ipv6) { v_payload := { ipv6Packet := m_ipv6Packet(c_unspecified, c_allNodesMca, c_noNextHdr, m_octetstringPayload(p_finalPayload))}; return v_payload; } if(PX_GN_UPPER_LAYER == e_btpA) { v_payload := { btpPacket := m_btpA(3751 /*FIXME*/, 3751/*FIXME*/, p_finalPayload)}; return v_payload; } if(PX_GN_UPPER_LAYER == e_btpB) { v_payload := { btpPacket := m_btpB(3751 /*FIXME*/, 0, p_finalPayload)}; return v_payload; } return v_payload; } function f_adaptPayload_mw(in template (present) octetstring p_finalPayload) return template (present) Payload { var template (present) Payload v_payload; if(PX_GN_UPPER_LAYER == e_any) { v_payload := { otherPayload := p_finalPayload}; return v_payload; } if(PX_GN_UPPER_LAYER == e_ipv6) { v_payload := { ipv6Packet := mw_ipv6Packet(?, ?, ?, mw_octetstringPayload(p_finalPayload))}; return v_payload; } if(PX_GN_UPPER_LAYER == e_btpA) { v_payload := { btpPacket := mw_btpA(?, ?, p_finalPayload)}; return v_payload; } if(PX_GN_UPPER_LAYER == e_btpB) { v_payload := { btpPacket := mw_btpB(?, ?, p_finalPayload)}; return v_payload; } return v_payload; } } // end geoTemplateFunctions } // end ItsGeoNetworking_Templates No newline at end of file ttcn/GeoNetworking/LibItsGeoNetworking_TypesAndValues.ttcn +2 −0 Original line number Diff line number Diff line Loading @@ -13,6 +13,7 @@ module LibItsGeoNetworking_TypesAndValues { //LibIts import from LibItsIpv6OverGeoNetworking_TypesAndValues {type Ipv6Packet; type MacAddress} import from LibItsBtp_TypesAndValues {type BtpPacket} group linkLayerConstants { Loading Loading @@ -901,6 +902,7 @@ module LibItsGeoNetworking_TypesAndValues { */ type union Payload { Ipv6Packet ipv6Packet, BtpPacket btpPacket, octetstring otherPayload } Loading ttcn/Ipv6OverGeoNetworking/LibItsIpv6OverGeoNetworking_Templates.ttcn +60 −1 Original line number Diff line number Diff line Loading @@ -94,13 +94,31 @@ module LibItsIpv6OverGeoNetworking_Templates { ipv6Payload := p_payload } /** * @desc Reception template for IPv6 packet * @param p_srcAddr IPv6 source address * @param p_dstAddr IPv6 destination address * @param p_nextHdr IPv6's next header * @param p_payload IPv6 payload */ template Ipv6Packet mw_ipv6Packet( in template Ipv6Address p_srcAddr, in template Ipv6Address p_dstAddr, in template UInt8 p_nextHdr, in template Ipv6Payload p_payload ) := { ipv6Hdr := mw_ipv6Header(p_srcAddr, p_dstAddr, p_nextHdr), extHdrList := omit, ipv6Payload := p_payload } /** * @desc Send template for IPv6 header * @param p_srcAddr IPv6 source address * @param p_dstAddr IPv6 destination address * @param p_nextHdr IPv6's next header */ template Ipv6Header m_ipv6Header( template (value) Ipv6Header m_ipv6Header( in template (value) Ipv6Address p_srcAddr, in template (value) Ipv6Address p_dstAddr, in template (value) UInt8 p_nextHdr Loading @@ -115,6 +133,27 @@ module LibItsIpv6OverGeoNetworking_Templates { destinationAddress := p_dstAddr } /** * @desc Receive template for IPv6 header * @param p_srcAddr IPv6 source address * @param p_dstAddr IPv6 destination address * @param p_nextHdr IPv6's next header */ template Ipv6Header mw_ipv6Header( in template Ipv6Address p_srcAddr, in template Ipv6Address p_dstAddr, in template UInt8 p_nextHdr ) := { version := 6, trafficClass := ?, flowLabel := ?, payloadLength := ?, nextHeader := p_nextHdr, hopLimit := ?, sourceAddress := p_srcAddr, destinationAddress := p_dstAddr } /** * @desc Send template for IPv6 payload containing Router Advertisement * @param p_rtAdvOptions Router Advertisement options Loading @@ -138,6 +177,26 @@ module LibItsIpv6OverGeoNetworking_Templates { } } /** * @desc Send template for IPv6 payload containing Router Advertisement * @param p_rtAdvOptions Router Advertisement options */ template (value) Ipv6Payload m_octetstringPayload( in template (value) octetstring p_payload ) := { octetstringMsg := p_payload } /** * @desc Receive template for IPv6 payload containing Router Advertisement * @param p_rtAdvOptions Router Advertisement options */ template Ipv6Payload mw_octetstringPayload( in template (present) octetstring p_payload ) := { octetstringMsg := p_payload } /** * @desc Send template for IPv6 Prefix option * @param p_prefixLength Length of the prefix. Loading ttcn/Ipv6OverGeoNetworking/LibItsIpv6OverGeoNetworking_TypesAndValues.ttcn +2 −0 Original line number Diff line number Diff line Loading @@ -159,6 +159,8 @@ module LibItsIpv6OverGeoNetworking_TypesAndValues { //Wellknown Multicast Address const Ipv6Address c_allNodesMca := c_llaMcaPrefix & c_12ZeroBytes & c_allNodesMcaPostfix ; const Ipv6Address c_allRoutersMca := c_llaMcaPrefix & c_12ZeroBytes & c_allRoutersMcaPostfix ; //Unspecified const Ipv6Address c_unspecified := '00000000000000000000000000000000'O; }//end group ipv6Address /** Loading Loading
ttcn/GeoNetworking/LibItsGeoNetworking_Pixits.ttcn +8 −0 Original line number Diff line number Diff line Loading @@ -158,6 +158,14 @@ module LibItsGeoNetworking_Pixits { modulepar integer PX_POS_DELTA := 1; } group upperLayer { /** * @desc The IUT's upper layer */ modulepar NextHeader PX_GN_UPPER_LAYER := e_any; } } // end geoNetworkingPixits } // end LibItsGeoNetworking_Pixits
ttcn/GeoNetworking/LibItsGeoNetworking_Templates.ttcn +71 −13 Original line number Diff line number Diff line Loading @@ -14,7 +14,9 @@ module LibItsGeoNetworking_Templates { // LibIts import from LibIts_Interface all; import from LibItsGeoNetworking_TypesAndValues all; import from LibItsIpv6OverGeoNetworking_TypesAndValues {type MacAddress} import from LibItsIpv6OverGeoNetworking_TypesAndValues all; import from LibItsIpv6OverGeoNetworking_Templates all; import from LibItsBtp_Templates all; import from LibItsGeoNetworking_Pixits all; import from LibItsCommon_TypesAndValues all; Loading Loading @@ -115,11 +117,11 @@ module LibItsGeoNetworking_Templates { */ template UtEvent m_generateGeoUnicastMessageWithPayload( GN_Address p_destinationGnAddr, Payload p_payload octetstring p_payload ) modifies m_generateGeoUnicastMessage := { utGnEvent := { geoUnicast := { payload := p_payload payload := f_adaptPayload_m(p_payload) } } } Loading Loading @@ -147,11 +149,11 @@ module LibItsGeoNetworking_Templates { */ template UtEvent m_generateGeoBroadcastMessageWithPayload( GeoArea p_area, Payload p_payload octetstring p_payload ) modifies m_generateGeoBroadcastMessage := { utGnEvent := { geoBroadcast := { payload := p_payload payload := f_adaptPayload_m(p_payload) } } } Loading Loading @@ -179,11 +181,11 @@ module LibItsGeoNetworking_Templates { */ template UtEvent m_generateGeoAnycastMessageWithPayload( GeoArea p_area, Payload p_payload octetstring p_payload ) modifies m_generateGeoAnycastMessage := { utGnEvent := { geoAnycast := { payload := p_payload payload := f_adaptPayload_m(p_payload) } } } Loading @@ -205,11 +207,11 @@ module LibItsGeoNetworking_Templates { * @see m_generateShbMessage */ template UtEvent m_generateShbMessageWithPayload( Payload p_payload octetstring p_payload ) modifies m_generateShbMessage := { utGnEvent := { shb := { payload := p_payload payload := f_adaptPayload_m(p_payload) } } } Loading Loading @@ -358,9 +360,9 @@ module LibItsGeoNetworking_Templates { */ template (value) GeoNetworkingPacket m_geoNwPduWithPayload( in template (value) Header p_header, in template (value) Payload p_payload in template (value) octetstring p_payload ) modifies m_geoNwPdu := { payload := p_payload payload := f_adaptPayload_m(p_payload) } /** Loading Loading @@ -394,9 +396,9 @@ module LibItsGeoNetworking_Templates { */ template GeoNetworkingPacket mw_geoNwPduWithPayload( in template (present) Header p_header, in template (present) Payload p_payload in template (present) octetstring p_payload ) modifies mw_geoNwPdu := { payload := p_payload payload := f_adaptPayload_mw(p_payload) } } // end geoNwPduTemplates Loading Loading @@ -1755,4 +1757,60 @@ module LibItsGeoNetworking_Templates { } // end geoMiscTemplates group geoTemplateFunctions { function f_adaptPayload_m(in octetstring p_finalPayload) return template (value) Payload { var template (value) Payload v_payload; if(PX_GN_UPPER_LAYER == e_any) { v_payload := { otherPayload := p_finalPayload}; return v_payload; } if(PX_GN_UPPER_LAYER == e_ipv6) { v_payload := { ipv6Packet := m_ipv6Packet(c_unspecified, c_allNodesMca, c_noNextHdr, m_octetstringPayload(p_finalPayload))}; return v_payload; } if(PX_GN_UPPER_LAYER == e_btpA) { v_payload := { btpPacket := m_btpA(3751 /*FIXME*/, 3751/*FIXME*/, p_finalPayload)}; return v_payload; } if(PX_GN_UPPER_LAYER == e_btpB) { v_payload := { btpPacket := m_btpB(3751 /*FIXME*/, 0, p_finalPayload)}; return v_payload; } return v_payload; } function f_adaptPayload_mw(in template (present) octetstring p_finalPayload) return template (present) Payload { var template (present) Payload v_payload; if(PX_GN_UPPER_LAYER == e_any) { v_payload := { otherPayload := p_finalPayload}; return v_payload; } if(PX_GN_UPPER_LAYER == e_ipv6) { v_payload := { ipv6Packet := mw_ipv6Packet(?, ?, ?, mw_octetstringPayload(p_finalPayload))}; return v_payload; } if(PX_GN_UPPER_LAYER == e_btpA) { v_payload := { btpPacket := mw_btpA(?, ?, p_finalPayload)}; return v_payload; } if(PX_GN_UPPER_LAYER == e_btpB) { v_payload := { btpPacket := mw_btpB(?, ?, p_finalPayload)}; return v_payload; } return v_payload; } } // end geoTemplateFunctions } // end ItsGeoNetworking_Templates No newline at end of file
ttcn/GeoNetworking/LibItsGeoNetworking_TypesAndValues.ttcn +2 −0 Original line number Diff line number Diff line Loading @@ -13,6 +13,7 @@ module LibItsGeoNetworking_TypesAndValues { //LibIts import from LibItsIpv6OverGeoNetworking_TypesAndValues {type Ipv6Packet; type MacAddress} import from LibItsBtp_TypesAndValues {type BtpPacket} group linkLayerConstants { Loading Loading @@ -901,6 +902,7 @@ module LibItsGeoNetworking_TypesAndValues { */ type union Payload { Ipv6Packet ipv6Packet, BtpPacket btpPacket, octetstring otherPayload } Loading
ttcn/Ipv6OverGeoNetworking/LibItsIpv6OverGeoNetworking_Templates.ttcn +60 −1 Original line number Diff line number Diff line Loading @@ -94,13 +94,31 @@ module LibItsIpv6OverGeoNetworking_Templates { ipv6Payload := p_payload } /** * @desc Reception template for IPv6 packet * @param p_srcAddr IPv6 source address * @param p_dstAddr IPv6 destination address * @param p_nextHdr IPv6's next header * @param p_payload IPv6 payload */ template Ipv6Packet mw_ipv6Packet( in template Ipv6Address p_srcAddr, in template Ipv6Address p_dstAddr, in template UInt8 p_nextHdr, in template Ipv6Payload p_payload ) := { ipv6Hdr := mw_ipv6Header(p_srcAddr, p_dstAddr, p_nextHdr), extHdrList := omit, ipv6Payload := p_payload } /** * @desc Send template for IPv6 header * @param p_srcAddr IPv6 source address * @param p_dstAddr IPv6 destination address * @param p_nextHdr IPv6's next header */ template Ipv6Header m_ipv6Header( template (value) Ipv6Header m_ipv6Header( in template (value) Ipv6Address p_srcAddr, in template (value) Ipv6Address p_dstAddr, in template (value) UInt8 p_nextHdr Loading @@ -115,6 +133,27 @@ module LibItsIpv6OverGeoNetworking_Templates { destinationAddress := p_dstAddr } /** * @desc Receive template for IPv6 header * @param p_srcAddr IPv6 source address * @param p_dstAddr IPv6 destination address * @param p_nextHdr IPv6's next header */ template Ipv6Header mw_ipv6Header( in template Ipv6Address p_srcAddr, in template Ipv6Address p_dstAddr, in template UInt8 p_nextHdr ) := { version := 6, trafficClass := ?, flowLabel := ?, payloadLength := ?, nextHeader := p_nextHdr, hopLimit := ?, sourceAddress := p_srcAddr, destinationAddress := p_dstAddr } /** * @desc Send template for IPv6 payload containing Router Advertisement * @param p_rtAdvOptions Router Advertisement options Loading @@ -138,6 +177,26 @@ module LibItsIpv6OverGeoNetworking_Templates { } } /** * @desc Send template for IPv6 payload containing Router Advertisement * @param p_rtAdvOptions Router Advertisement options */ template (value) Ipv6Payload m_octetstringPayload( in template (value) octetstring p_payload ) := { octetstringMsg := p_payload } /** * @desc Receive template for IPv6 payload containing Router Advertisement * @param p_rtAdvOptions Router Advertisement options */ template Ipv6Payload mw_octetstringPayload( in template (present) octetstring p_payload ) := { octetstringMsg := p_payload } /** * @desc Send template for IPv6 Prefix option * @param p_prefixLength Length of the prefix. Loading
ttcn/Ipv6OverGeoNetworking/LibItsIpv6OverGeoNetworking_TypesAndValues.ttcn +2 −0 Original line number Diff line number Diff line Loading @@ -159,6 +159,8 @@ module LibItsIpv6OverGeoNetworking_TypesAndValues { //Wellknown Multicast Address const Ipv6Address c_allNodesMca := c_llaMcaPrefix & c_12ZeroBytes & c_allNodesMcaPostfix ; const Ipv6Address c_allRoutersMca := c_llaMcaPrefix & c_12ZeroBytes & c_allRoutersMcaPostfix ; //Unspecified const Ipv6Address c_unspecified := '00000000000000000000000000000000'O; }//end group ipv6Address /** Loading