Commit 2286026a authored by garciay's avatar garciay
Browse files

GeoNetworking codecs & Layers ongoing

Add PCAP layer
parent 927b844e
Loading
Loading
Loading
Loading
+13 −0
Original line number Original line Diff line number Diff line
module LibItsGeoNetworking_EncdecDeclarations {
module LibItsGeoNetworking_EncdecDeclarations {
    
    
    import from LibItsGeoNetworking_TypesAndValues all;
    import from LibItsGeoNetworking_TypesAndValues all;
    import from LibItsGeoNetworking_TestSystem all;
    
    external function fx_enc_GeoNetworkingReq (GeoNetworkingReq p) return bitstring
        with {extension "prototype(convert) encode(LibIts_Interface)"}
        
    external function fx_dec_GeoNetworkingReq (inout bitstring b, out GeoNetworkingReq p) return integer
        with {extension "prototype(sliding) decode(LibIts_Interface)"}
        
    external function fx_enc_GeoNetworkingInd (GeoNetworkingInd p) return bitstring
        with {extension "prototype(convert) encode(LibIts_Interface)"}
        
    external function fx_dec_GeoNetworkingInd (inout bitstring b, out GeoNetworkingInd p) return integer
        with {extension "prototype(sliding) decode(LibIts_Interface)"}
        
        
    external function fx_enc_GeoNetworkingPdu (GeoNetworkingPdu p) return bitstring
    external function fx_enc_GeoNetworkingPdu (GeoNetworkingPdu p) return bitstring
        with {extension "prototype(convert) encode(LibItsGeoNetworking)"}
        with {extension "prototype(convert) encode(LibItsGeoNetworking)"}
+1 −1
Original line number Original line Diff line number Diff line
@@ -836,7 +836,7 @@ module LibItsGeoNetworking_Functions {
            if ((PICS_GN_SECURITY == true) or (PICS_IS_IUT_SECURED == true)) {
            if ((PICS_GN_SECURITY == true) or (PICS_IS_IUT_SECURED == true)) {
                f_acDisableSecurity();
                f_acDisableSecurity();
            }
            }
        } // End of function f_initialiseSecuredMode()
        } // End of function f_uninitialiseSecuredMode()
        
        
    } // end geoConfigurationFunctions
    } // end geoConfigurationFunctions
    
    
+7 −1
Original line number Original line Diff line number Diff line
@@ -50,7 +50,7 @@ module LibItsGeoNetworking_TestSystem {
         */
         */
        type port UpperTesterPort message {
        type port UpperTesterPort message {
            out
            out
                UtInitialize, UtChangePosition, UtGnTrigger;
                UtInitialize, UtChangePosition, UtAutoInteropTrigger, UtGnTrigger;
            in
            in
//FIXME RGY As discussed, boolean results are replaced by a top-level union of results
//FIXME RGY As discussed, boolean results are replaced by a top-level union of results
//                UtInitializeResult, UtChangePositionResult, UtGnTriggerResult, UtGnEventInd;
//                UtInitializeResult, UtChangePositionResult, UtGnTriggerResult, UtGnEventInd;
@@ -163,6 +163,9 @@ module LibItsGeoNetworking_TestSystem {
                MacAddress          macDestinationAddress,
                MacAddress          macDestinationAddress,
                Bit256              ssp optional,
                Bit256              ssp optional,
                UInt32              its_aid optional
                UInt32              its_aid optional
            } with {
//                encode "RAW"; 
                variant ""
            }
            }
            
            
            /**
            /**
@@ -172,6 +175,9 @@ module LibItsGeoNetworking_TestSystem {
                GeoNetworkingPdu    msgOut,
                GeoNetworkingPdu    msgOut,
                MacAddress          macDestinationAddress,
                MacAddress          macDestinationAddress,
                UInt32              its_aid
                UInt32              its_aid
            } with {
//                encode "RAW"; 
                variant ""
            }
            }
            
            
        } // end nt2Primitives
        } // end nt2Primitives
+77 −13
Original line number Original line Diff line number Diff line
@@ -231,6 +231,8 @@ module LibItsGeoNetworking_TypesAndValues {
                UInt8           reserved,
                UInt8           reserved,
                Lifetime        lifeTime,
                Lifetime        lifeTime,
                UInt8           routerHopLimit
                UInt8           routerHopLimit
            } with {
                variant "FIELDORDER(msb)"
            }
            }
            
            
            type enumerated BasicNextHeader {
            type enumerated BasicNextHeader {
@@ -239,7 +241,7 @@ module LibItsGeoNetworking_TypesAndValues {
                e_securedPacket(2),
                e_securedPacket(2),
                e_reserved
                e_reserved
            } with {
            } with {
                variant "4 bit"
                variant "FIELDLENGTH(4)" //variant "4 bit"
            }
            }
            
            
            /**
            /**
@@ -250,6 +252,8 @@ module LibItsGeoNetworking_TypesAndValues {
            type record Lifetime {
            type record Lifetime {
                UInt6   multiplier,
                UInt6   multiplier,
                LtBase  ltBase
                LtBase  ltBase
            } with {
                variant "FIELDORDER(msb)"
            }
            }
            
            
            /**
            /**
@@ -261,7 +265,7 @@ module LibItsGeoNetworking_TypesAndValues {
                e_10s(2),
                e_10s(2),
                e_100s(3)
                e_100s(3)
            } with {
            } with {
                variant "2 bit"
                variant "FIELDLENGTH(2)" //variant "2 bit"
            }
            }
            
            
        } // end group geoNetworkingBasicHeader
        } // end group geoNetworkingBasicHeader
@@ -301,6 +305,8 @@ module LibItsGeoNetworking_TypesAndValues {
                UInt16          plLength, // The Codec shall set the length of the paylaod if present
                UInt16          plLength, // The Codec shall set the length of the paylaod if present
                UInt8           maxHopLimit,
                UInt8           maxHopLimit,
                UInt8           reserved2
                UInt8           reserved2
            } with {
                variant "FIELDORDER(msb)"
            }
            }
            
            
            /**
            /**
@@ -313,7 +319,7 @@ module LibItsGeoNetworking_TypesAndValues {
                e_ipv6(3),
                e_ipv6(3),
                e_reserved
                e_reserved
            } with {
            } with {
                variant "4 bit"
                variant "FIELDLENGTH(4)" //variant "4 bit"
            }
            }
            
            
            /**
            /**
@@ -337,18 +343,21 @@ module LibItsGeoNetworking_TypesAndValues {
                SCF                     scf,
                SCF                     scf,
                ChannelOffload          channelOffload,
                ChannelOffload          channelOffload,
                TcId                    tcId
                TcId                    tcId
            } with { 
                variant "FIELDORDER(msb)" 
            }
            }
            
            type enumerated SCF {
            type enumerated SCF {
                e_scfDisabled(0),
                e_scfDisabled(0),
                e_scfEnable (1)
                e_scfEnable (1)
            } with {
            } with {
                variant "1 bit"
                variant "FIELDLENGTH(1)" //variant "1 bit"
            }
            }
            type enumerated ChannelOffload {
            type enumerated ChannelOffload {
                e_choffDisabled(0),
                e_choffDisabled(0),
                e_choffEnable (1)
                e_choffEnable (1)
            } with {
            } with {
                variant "1 bit"
                variant "FIELDLENGTH(1)" //variant "1 bit"
            }
            }
            type UInt6 TcId;
            type UInt6 TcId;
            
            
@@ -374,6 +383,8 @@ module LibItsGeoNetworking_TypesAndValues {
                LSRequestHeader     lsRequestHeader,
                LSRequestHeader     lsRequestHeader,
                LSReplyHeader       lsReplyHeader,
                LSReplyHeader       lsReplyHeader,
                AnyHeader           anyHeader
                AnyHeader           anyHeader
            } with {
                variant ""
            }
            }
            
            
            /**
            /**
@@ -385,6 +396,8 @@ module LibItsGeoNetworking_TypesAndValues {
            type record AnyHeader {
            type record AnyHeader {
                UInt16          seqNumber,
                UInt16          seqNumber,
                UInt16          reserved
                UInt16          reserved
            } with {
                variant "FIELDORDER(msb)"
            }
            }
            
            
            /**
            /**
@@ -396,6 +409,8 @@ module LibItsGeoNetworking_TypesAndValues {
             */
             */
            type record BeaconHeader {
            type record BeaconHeader {
                LongPosVector   srcPosVector
                LongPosVector   srcPosVector
            } with {
                variant "FIELDORDER(msb)"
            }
            }
            
            
            /**
            /**
@@ -423,6 +438,8 @@ module LibItsGeoNetworking_TypesAndValues {
                UInt16          distanceB,
                UInt16          distanceB,
                UInt16          angle,
                UInt16          angle,
                UInt16          reserved2
                UInt16          reserved2
            } with {
                variant "FIELDORDER(msb)"
            }
            }
            
            
            /**
            /**
@@ -457,6 +474,8 @@ module LibItsGeoNetworking_TypesAndValues {
                UInt16          reserved,
                UInt16          reserved,
                LongPosVector   srcPosVector,
                LongPosVector   srcPosVector,
                ShortPosVector  dstPosVector
                ShortPosVector  dstPosVector
            } with {
                variant "FIELDORDER(msb)"
            }
            }
            
            
            /**
            /**
@@ -474,6 +493,8 @@ module LibItsGeoNetworking_TypesAndValues {
                UInt16          reserved,
                UInt16          reserved,
                LongPosVector   srcPosVector,
                LongPosVector   srcPosVector,
                ShortPosVector  dstPosVector
                ShortPosVector  dstPosVector
            } with {
                variant "FIELDORDER(msb)"
            }
            }
            
            
            /**
            /**
@@ -491,6 +512,8 @@ module LibItsGeoNetworking_TypesAndValues {
                UInt16          reserved,
                UInt16          reserved,
                LongPosVector   srcPosVector,
                LongPosVector   srcPosVector,
                GN_Address      gnAddress
                GN_Address      gnAddress
            } with {
                variant "FIELDORDER(msb)"
            }
            }
            
            
            /**
            /**
@@ -504,6 +527,8 @@ module LibItsGeoNetworking_TypesAndValues {
            type record SHBHeader {
            type record SHBHeader {
                LongPosVector   srcPosVector,
                LongPosVector   srcPosVector,
                UInt32          reserved
                UInt32          reserved
            } with {
                variant "FIELDORDER(msb)"
            }
            }
            
            
            /**
            /**
@@ -519,6 +544,8 @@ module LibItsGeoNetworking_TypesAndValues {
                UInt16          seqNumber,
                UInt16          seqNumber,
                UInt16          reserved,
                UInt16          reserved,
                LongPosVector   srcPosVector
                LongPosVector   srcPosVector
            } with {
                variant "FIELDORDER(msb)"
            }
            }
            
            
            group geoNetworkingHeadersSubtypes {
            group geoNetworkingHeadersSubtypes {
@@ -531,6 +558,8 @@ module LibItsGeoNetworking_TypesAndValues {
                type record AnyHeaderType {
                type record AnyHeaderType {
                    HeaderType  headerType(e_any),
                    HeaderType  headerType(e_any),
                    UInt4       headerSubType
                    UInt4       headerSubType
                } with { 
                    variant "FIELDORDER(msb)" 
                }
                }
                
                
                /**
                /**
@@ -541,6 +570,8 @@ module LibItsGeoNetworking_TypesAndValues {
                type record BeaconHeaderType {
                type record BeaconHeaderType {
                    HeaderType  headerType(e_beacon),
                    HeaderType  headerType(e_beacon),
                    UInt4       headerSubType
                    UInt4       headerSubType
                } with { 
                    variant "FIELDORDER(msb)" 
                }
                }
                
                
                /**
                /**
@@ -551,6 +582,8 @@ module LibItsGeoNetworking_TypesAndValues {
                type record GeoAnycastHeaderType {
                type record GeoAnycastHeaderType {
                    HeaderType              headerType(e_geoAnycast),
                    HeaderType              headerType(e_geoAnycast),
                    HeaderSubTypeGeoAnycast headerSubType
                    HeaderSubTypeGeoAnycast headerSubType
                } with { 
                    variant "FIELDORDER(msb)" 
                }
                }
                
                
                /**
                /**
@@ -561,6 +594,8 @@ module LibItsGeoNetworking_TypesAndValues {
                type record GeoBroadcastHeaderType {
                type record GeoBroadcastHeaderType {
                    HeaderType                  headerType(e_geoBroadcast),
                    HeaderType                  headerType(e_geoBroadcast),
                    HeaderSubTypeGeoBroadcast   headerSubType
                    HeaderSubTypeGeoBroadcast   headerSubType
                } with { 
                    variant "FIELDORDER(msb)" 
                }
                }
                
                
                /**
                /**
@@ -571,6 +606,8 @@ module LibItsGeoNetworking_TypesAndValues {
                type record GeoUnicastHeaderType {
                type record GeoUnicastHeaderType {
                    HeaderType  headerType(e_geoUnicast),
                    HeaderType  headerType(e_geoUnicast),
                    UInt4       headerSubType
                    UInt4       headerSubType
                } with { 
                    variant "FIELDORDER(msb)" 
                }
                }
                
                
                /**
                /**
@@ -581,6 +618,8 @@ module LibItsGeoNetworking_TypesAndValues {
                type record LsHeaderType {
                type record LsHeaderType {
                    HeaderType      headerType(e_locationService),
                    HeaderType      headerType(e_locationService),
                    HeaderSubTypeLs headerSubType
                    HeaderSubTypeLs headerSubType
                } with { 
                    variant "FIELDORDER(msb)" 
                }
                }
                
                
                /**
                /**
@@ -591,6 +630,8 @@ module LibItsGeoNetworking_TypesAndValues {
                type record SaHeaderType {
                type record SaHeaderType {
                    HeaderType      headerType(e_serviceAnnouncement),
                    HeaderType      headerType(e_serviceAnnouncement),
                    HeaderSubTypeSa headerSubType
                    HeaderSubTypeSa headerSubType
                } with { 
                    variant "FIELDORDER(msb)" 
                }
                }
                
                
                /**
                /**
@@ -601,6 +642,8 @@ module LibItsGeoNetworking_TypesAndValues {
                type record TsbHeaderType {
                type record TsbHeaderType {
                    HeaderType       headerType(e_topologicallyScopedBroadcast),
                    HeaderType       headerType(e_topologicallyScopedBroadcast),
                    HeaderSubTypeTSB headerSubType
                    HeaderSubTypeTSB headerSubType
                } with { 
                    variant "FIELDORDER(msb)" 
                }
                }
                
                
                /**
                /**
@@ -612,7 +655,7 @@ module LibItsGeoNetworking_TypesAndValues {
                    e_geoAnycastElip(2),
                    e_geoAnycastElip(2),
                    e_reserved
                    e_reserved
                } with {
                } with {
                    variant "4 bit"
                    variant "FIELDLENGTH(4)" //variant "4 bit"
                }
                }
                
                
                /**
                /**
@@ -624,7 +667,7 @@ module LibItsGeoNetworking_TypesAndValues {
                    e_geoBroadcastElip(2),
                    e_geoBroadcastElip(2),
                    e_reserved
                    e_reserved
                } with {
                } with {
                    variant "4 bit"
                    variant "FIELDLENGTH(4)" //variant "4 bit"
                }
                }
                
                
                /**
                /**
@@ -635,7 +678,7 @@ module LibItsGeoNetworking_TypesAndValues {
                    e_multiHop(1),
                    e_multiHop(1),
                    e_reserved
                    e_reserved
                } with {
                } with {
                    variant "4 bit"
                    variant "FIELDLENGTH(4)" //variant "4 bit"
                }
                }
                
                
                /**
                /**
@@ -646,7 +689,7 @@ module LibItsGeoNetworking_TypesAndValues {
                    e_lsReply(1),
                    e_lsReply(1),
                    e_reserved
                    e_reserved
                } with {
                } with {
                    variant "4 bit"
                    variant "FIELDLENGTH(4)" //variant "4 bit"
                }
                }
                
                
                /**
                /**
@@ -657,7 +700,7 @@ module LibItsGeoNetworking_TypesAndValues {
                    e_saEos(1),
                    e_saEos(1),
                    e_reserved
                    e_reserved
                } with {
                } with {
                    variant "4 bit"
                    variant "FIELDLENGTH(4)" //variant "4 bit"
                }
                }
                
                
                /**
                /**
@@ -682,6 +725,8 @@ module LibItsGeoNetworking_TypesAndValues {
                    LsHeaderType            lsHdr,
                    LsHeaderType            lsHdr,
                    SaHeaderType            saHdr,
                    SaHeaderType            saHdr,
                    UInt8                   reserved
                    UInt8                   reserved
                } with { 
                    variant "FIELDORDER(msb)" 
                }
                }
                
                
                /**
                /**
@@ -698,7 +743,7 @@ module LibItsGeoNetworking_TypesAndValues {
                    e_serviceAnnouncement(7),
                    e_serviceAnnouncement(7),
                    e_reserved
                    e_reserved
                } with {
                } with {
                    variant "4 bit"
                    variant "FIELDLENGTH(4)" //variant "4 bit"
                }
                }
                
                
                /**
                /**
@@ -738,6 +783,8 @@ module LibItsGeoNetworking_TypesAndValues {
                    Bit1        pai,
                    Bit1        pai,
                    Int15       speed,
                    Int15       speed,
                    UInt16      heading
                    UInt16      heading
                } with { 
                    variant "FIELDORDER(msb)" 
                }
                }
                
                
                /**
                /**
@@ -769,6 +816,8 @@ module LibItsGeoNetworking_TypesAndValues {
                    UInt32      timestamp_,
                    UInt32      timestamp_,
                    Int32       latitude,
                    Int32       latitude,
                    Int32       longitude
                    Int32       longitude
                } with { 
                    variant "FIELDORDER(msb)" 
                }
                }
                
                
                group geoNetworkingAddress {
                group geoNetworkingAddress {
@@ -796,6 +845,8 @@ module LibItsGeoNetworking_TypesAndValues {
                        StationType     stationType,
                        StationType     stationType,
                        UInt10          stationCountryCode,
                        UInt10          stationCountryCode,
                        Oct6            mid
                        Oct6            mid
                    } with { 
                        variant "FIELDORDER(msb)" 
                    }
                    }
                    
                    
                    group geoNetworkingAddressSubtypes {
                    group geoNetworkingAddressSubtypes {
@@ -818,7 +869,7 @@ module LibItsGeoNetworking_TypesAndValues {
                            e_tram(11),
                            e_tram(11),
                            e_roadSideUnit(15)
                            e_roadSideUnit(15)
                        } with {
                        } with {
                            variant "5 bit"
                             variant "FIELDLENGTH(5)" //variant "5 bit"
                        }
                        }
                        
                        
                        /**
                        /**
@@ -829,7 +880,7 @@ module LibItsGeoNetworking_TypesAndValues {
                            e_manual(1),
                            e_manual(1),
                            e_initial(0)
                            e_initial(0)
                        } with {
                        } with {
                            variant "1 bit"
                            variant "FIELDLENGTH(1)" //variant "1 bit"
                        }
                        }
                        
                        
                    } // end group geoNetworkingAddressSubtypes
                    } // end group geoNetworkingAddressSubtypes
@@ -854,6 +905,8 @@ module LibItsGeoNetworking_TypesAndValues {
        type record Payload {
        type record Payload {
            DecodedPayload decodedPayload optional,
            DecodedPayload decodedPayload optional,
            GnRawPayload rawPayload
            GnRawPayload rawPayload
        } with { 
            variant "FIELDORDER(msb)" 
        }
        }
        
        
        /**
        /**
@@ -905,6 +958,16 @@ module LibItsGeoNetworking_TypesAndValues {
    
    
    group utPrimitives {
    group utPrimitives {
        
        
        /**
         * @desc AutoInterop UpperTester trigger
         * @member utRadioOnOff Set to true to power on the radio (on-link mode), false to power off the radio (off-link).
         */
        type union UtAutoInteropTrigger {
            boolean utRadioOnOff
        } // End of type UtAutoInteropTrigger
        
        type boolean UtAutoInteropTriggerResult;
        
        /**
        /**
         * @desc    UT primitives for GeoNetworking
         * @desc    UT primitives for GeoNetworking
         * @member  geoUnicast      -
         * @member  geoUnicast      -
@@ -1121,5 +1184,6 @@ module LibItsGeoNetworking_TypesAndValues {
    }
    }
}
}
with {
with {
    variant ""
    encode "LibItsGeoNetworking"
    encode "LibItsGeoNetworking"
}
}