Commit e08232e2 authored by berge's avatar berge
Browse files

Changed payload handling to be more flexible

parent fe7e3869
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -39,7 +39,7 @@ module LibItsBtp_Pixits {
         * @desc Payload to be sent to the IUT for testing matter
         * 		 
         */
    	modulepar BtpPayload PX_PAYLOAD := { otherPayload := '0102030405'O };
    	modulepar BtpPayload PX_PAYLOAD := { rawPayload := '0102030405'O };

    
} // end LibItsBtp_Pixits
 No newline at end of file
+16 −5
Original line number Diff line number Diff line
@@ -85,13 +85,24 @@ module LibItsBtp_TypesAndValues {
    group btpPayload {
        
        /**
         * @desc The payload of th BTP packet
         * @remark Change it to concrete union value if necessary
         * @desc The payload of the BTP packet
         * @member decodedPayload The decoded payload
         * @member rawPayload Raw payload as it is received
         */
        type union BtpPayload {
        type record BtpPayload {
            DecodedBtpPayload decodedPayload optional,
            octetstring rawPayload
        }
        
        /**
         * @desc The decoded payload of the BTP packet
         * @member camPacket The CAM packet
         * @member denmPacket The DENM packet
         * @member
         */
        type union DecodedBtpPayload {
            CamPdu camPacket,
            DenmPdu denmPacket,
            octetstring otherPayload
            DenmPdu denmPacket
        }
        
    } //end btpPayload
+13 −27
Original line number Diff line number Diff line
@@ -121,7 +121,7 @@ module LibItsGeoNetworking_Templates {
            ) modifies m_generateGeoUnicastMessage := {
                utGnEvent := {
                    geoUnicast := {
                        payload := { otherPayload := p_payload} // do not use f_adaptPayload_m here
                        payload := { decodedPayload := omit, rawPayload := p_payload} // do not use f_adaptPayload_m here
                    }
                }
            }
@@ -140,7 +140,7 @@ module LibItsGeoNetworking_Templates {
		   ) modifies m_generateGeoUnicastMessageWithLifetime := {
			   utGnEvent := {
				   geoUnicast := {
						payload := { otherPayload := p_payload} // do not use f_adaptPayload_m here
						payload := { decodedPayload := omit, rawPayload := p_payload} // do not use f_adaptPayload_m here
				   }
			   }
		   }
@@ -189,7 +189,7 @@ module LibItsGeoNetworking_Templates {
            ) modifies m_generateGeoBroadcastMessage := {
                utGnEvent := {
                    geoBroadcast := {
                        payload := { otherPayload := p_payload} // do not use f_adaptPayload_m here
                        payload := { decodedPayload := omit, rawPayload := p_payload} // do not use f_adaptPayload_m here
                    }
                }
            }
@@ -222,7 +222,7 @@ module LibItsGeoNetworking_Templates {
            ) modifies m_generateGeoAnycastMessage := {
                utGnEvent := {
                    geoAnycast := {
                        payload := { otherPayload := p_payload} // do not use f_adaptPayload_m here
                        payload := { decodedPayload := omit, rawPayload := p_payload} // do not use f_adaptPayload_m here
                    }
                }
            }
@@ -248,7 +248,7 @@ module LibItsGeoNetworking_Templates {
            ) modifies m_generateShbMessage := {
                utGnEvent := {
                    shb := {
                        payload := { otherPayload := p_payload} // do not use f_adaptPayload_m here
                        payload := { decodedPayload := omit, rawPayload := p_payload} // do not use f_adaptPayload_m here
                    }
                }
            }
@@ -1804,20 +1804,6 @@ module LibItsGeoNetworking_Templates {
        
    } // end geoNwHeadersTemplates
    
    group geoPayloadTemplates {
        
        /**
         * @desc    Receive template for misc. payload
         * @param   p_payload   Payload
         */
        template Payload mw_otherPayload(
            in template (present) octetstring p_payload
        ) := {
            otherPayload := p_payload
        }
        
    } // end geoPayloadTemplates
    
    group geoMiscTemplates {

        /**
@@ -1897,22 +1883,22 @@ module LibItsGeoNetworking_Templates {
        	var template (value) Payload v_payload;
        	
        	if(PX_GN_UPPER_LAYER == e_any) {
        	   v_payload := { otherPayload := p_finalPayload};
        	   v_payload := { decodedPayload := omit, rawPayload := 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))};
               v_payload := { decodedPayload := { ipv6Packet := m_ipv6Packet(c_unspecified, c_allNodesMca, c_noNextHdr, m_octetstringPayload(p_finalPayload))}, rawPayload := ''O};
               return v_payload;    
            }
            
            if(PX_GN_UPPER_LAYER == e_btpA) {
               v_payload := { btpPacket := m_btpA({ otherPayload := p_finalPayload })};
               v_payload := { decodedPayload := { btpPacket := m_btpA({ decodedPayload := omit, rawPayload := p_finalPayload })}, rawPayload := ''O};
               return v_payload;    
            }
            
            if(PX_GN_UPPER_LAYER == e_btpB) {
               v_payload := { btpPacket := m_btpB({ otherPayload := p_finalPayload })};
               v_payload := { decodedPayload := { btpPacket := m_btpB({ decodedPayload := omit, rawPayload := p_finalPayload })}, rawPayload := ''O};
               return v_payload;    
            }
            
@@ -1923,22 +1909,22 @@ module LibItsGeoNetworking_Templates {
            var template (present) Payload v_payload;
            
            if(PX_GN_UPPER_LAYER == e_any) {
               v_payload := { otherPayload := p_finalPayload};
               v_payload := { decodedPayload := *, rawPayload := p_finalPayload};
               return v_payload;    
            }
            
            if(PX_GN_UPPER_LAYER == e_ipv6) {
               v_payload := { ipv6Packet := mw_ipv6Packet(?, ?, ?, mw_octetstringPayload(p_finalPayload))};
               v_payload := { decodedPayload := { ipv6Packet := mw_ipv6Packet(?, ?, ?, mw_octetstringPayload(p_finalPayload))}, rawPayload := ''O};
               return v_payload;    
            }
            
            if(PX_GN_UPPER_LAYER == e_btpA) {
               v_payload := { btpPacket := mw_btpA(?, ?, { otherPayload := p_finalPayload } )};
               v_payload := { decodedPayload := { btpPacket := mw_btpA(?, ?, { decodedPayload := *, rawPayload := p_finalPayload } )}, rawPayload := ''O};
               return v_payload;    
            }
            
            if(PX_GN_UPPER_LAYER == e_btpB) {
               v_payload := { btpPacket := mw_btpB(?, ?, { otherPayload := p_finalPayload })};
               v_payload := { decodedPayload := { btpPacket := mw_btpB(?, ?, { decodedPayload := *, rawPayload := p_finalPayload })}, rawPayload := ''O};
               return v_payload;    
            }
            
+14 −5
Original line number Diff line number Diff line
@@ -891,13 +891,22 @@ module LibItsGeoNetworking_TypesAndValues {
        
        /**
         * @desc The payload of the GN packet
         * @member decodedPayload The decoded payload
         * @member rawPayload Raw payload as it is received
         */
        type record Payload {
            DecodedPayload decodedPayload optional,
            octetstring rawPayload
        }

        /**
         * @desc The decoded payload of the GN packet
         * @member ipv6Packet The IPv6 packet
         * @member otherPayload Any other payload
         * @member btpPacket BTP packet
         */        
        type union Payload {
        type union DecodedPayload {
            Ipv6Packet ipv6Packet,
            BtpPacket btpPacket,
            octetstring otherPayload
            BtpPacket btpPacket	
        }
        
    } //end group geoNetworkingPayload
+4 −2
Original line number Diff line number Diff line
@@ -66,7 +66,8 @@ module LibItsIpv6OverGeoNetworking_Templates {
         * @param   p_ipv6Packet    IPv6 packet to be used as GN6 payload
         */
        template (value) Payload m_ipv6Payload(in template (value) Ipv6Packet p_ipv6Packet) := {
            ipv6Packet := p_ipv6Packet
            decodedPayload := {ipv6Packet := p_ipv6Packet},
            rawPayload := ''O
        }
        
        /**
@@ -74,7 +75,8 @@ module LibItsIpv6OverGeoNetworking_Templates {
         * @param   p_ipv6Packet    Expected IPv6 packet to be received as GN6 payload
         */
        template Payload mw_ipv6Payload(in template (present) Ipv6Packet p_ipv6Packet) := {
            ipv6Packet := p_ipv6Packet
            decodedPayload := {ipv6Packet := p_ipv6Packet},
            rawPayload := ?
        }
        
        /**