Commit 09bd3c2e authored by garciay's avatar garciay
Browse files

Add Service Advertisement support

parent 1ec7c7d7
Loading
Loading
Loading
Loading
+156 −0
Original line number Original line Diff line number Diff line
@@ -1329,6 +1329,86 @@ module LibItsGeoNetworking_Templates {
            
            
        } // end group geoNwPacketTsbTemplates
        } // end group geoNwPacketTsbTemplates
        
        
        group geoNwPacketSaTemplates {
            
            /**
             * @desc    Send template for GeoNetworking SA Packet
             * @param   p_seqNumber         Sequence number of SA packet
             * @param   p_sourceLongPosVec  Long position vector of source
             * @param   p_hopLimit          The maximum number of hops (Default: c_defaultHopLimit)
             */
            template (value) GnNonSecuredPacket m_geoNwSaPacket(
                in template (value) UInt16 p_seqNumber,
                in template (value) LongPosVector p_sourceLongPosVec,
                in template (value) UInt8 p_hopLimit := c_defaultHopLimit,
                in template (value) TrafficClass p_trafficClass := m_trafficClass
            ) := {
                commonHeader := valueof(m_commonHeader(
                    PX_GN_UPPER_LAYER,
                    m_saHeaderType_sa,
                    p_trafficClass,
                    p_hopLimit
                )),
                extendedHeader := valueof(m_tsbHeader(
                    p_seqNumber,
                    p_sourceLongPosVec
                )),
                payload := '00100011010203CAFEDECA'O
            }
            
            /**
             * @desc    Receive template for GeoNetworking SA Packet
             * @param   p_seqNumber         Sequence number of SA packet (Default: ?)
             * @param   p_sourceLongPosVec  Long position vector of source (Default: ?)
             */
            template (present) GnNonSecuredPacket mw_geoNwSaPacket(
                in template (present) UInt16 p_seqNumber := ?,
                in template (present) LongPosVector p_sourceLongPosVec := ?
            ) := {
                commonHeader := mw_commonHeader(
                    PX_GN_UPPER_LAYER,
                    m_saHeaderType_sa
                ),
                extendedHeader := mw_saHeader(p_seqNumber, p_sourceLongPosVec),
                payload := ?
            }
            
            /**
             * @desc    Receive template for GeoNetworking SA Packet
             * @param   p_seqNumber         Sequence number of SA packet (Default: ?)
             * @param   p_sourceLongPosVec  Long position vector of source (Default: ?)
             * @param   p_hopLimit          The maximum number of hops (Default: ?)
             */
            template (present) GnNonSecuredPacket mw_geoNwSaPacketWithHl(
                in template (present) UInt16 p_seqNumber := ?,
                in template (present) LongPosVector p_sourceLongPosVec := ?,
                in template (present) UInt8 p_hopLimit := ?
            ) modifies mw_geoNwSaPacket := {
                commonHeader := mw_commonHeaderWithHopLimit(
                    PX_GN_UPPER_LAYER,
                    m_saHeaderType_sa,
                    p_hopLimit
                )
            }
            
            /**
             * @desc    Receive template for GeoNetworking SA Packet
             * @param   p_seqNumber         Sequence number of SA packet (Default: ?)
             * @param   p_sourceLongPosVec  Long position vector of source (Default: ?)
             * @param   p_nextHeader        Id of next header
             */
            template (present) GnNonSecuredPacket mw_geoNwSaPacketWithNextHeader(
                in template (present) UInt16 p_seqNumber := ?,
                in template (present) LongPosVector p_sourceLongPosVec := ?,
                in template (value) NextHeader p_nextHeader
            ) modifies mw_geoNwSaPacket := {
                commonHeader := {
                    nextHeader := p_nextHeader
                }
            }
            
        } // end group geoNwPacketSaTemplates
        
    } // end group geoNwPacketTemplates
    } // end group geoNwPacketTemplates
    
    
    group geoNwHeadersTemplates {
    group geoNwHeadersTemplates {
@@ -2220,6 +2300,82 @@ module LibItsGeoNetworking_Templates {
            
            
        } // end tsbHeaderTemplates
        } // end tsbHeaderTemplates
        
        
        group saHeaderTemplates {
            
            /**
             * @desc    Send template for SA header
             * @param   p_seqNumber         Sequence number of TSB packet
             * @param   p_srcPosVector      Long position vector of source
             */
            template ExtendedHeader m_saHeader(
                in template (value) UInt16 p_seqNumber,
                in template (value) LongPosVector p_srcPosVector
            ) := {
                tsbHeader := {
                    seqNumber := p_seqNumber,
                    reserved := c_uInt8Zero,
                    srcPosVector := p_srcPosVector
                }
            }
            
            /**
             * @desc    Receive template for TSB header
             * @param   p_seqNumber         Sequence number of TSB packet
             * @param   p_sourceLongPosVec  Long position vector of source
             */
            template (present) ExtendedHeader mw_saHeader(
                in template (present) UInt16 p_seqNumber,
                in template (present) LongPosVector p_sourceLongPosVec
            ) := {
                tsbHeader := {
                    seqNumber := p_seqNumber,
                    reserved := ?,
                    srcPosVector := p_sourceLongPosVec
                }
            }
            
            /**
             * @desc    Send template for SA header type
             */
            template (value) HeaderTST m_saHeaderType_sa := {
                saHdr := {
                  headerType := e_serviceAnnouncement,
                  headerSubType := e_sa
                }
            }
            
            /**
             * @desc    Receive template for SA header type
             */
            template (present) HeaderTST mw_saHeaderType_sa := {
                saHdr := {
                  headerType := e_serviceAnnouncement,
                  headerSubType := e_sa
                }
            }
            
            /**
             * @desc    Send template for SA header type
             */
            template (value) HeaderTST m_saHeaderType_eos := {
                saHdr := {
                  headerType := e_serviceAnnouncement,
                  headerSubType := e_saEos
                }
            }
            
            /**
             * @desc    Receive template for SA header type
             */
            template (present) HeaderTST mw_saHeaderType_eos := {
                saHdr := {
                  headerType := e_serviceAnnouncement,
                  headerSubType := e_saEos
                }
            }
            
        } // end saHeaderTemplates
        
    } // end geoNwHeadersTemplates
    } // end geoNwHeadersTemplates
    
    
    group geoMiscTemplates {
    group geoMiscTemplates {