Commit a05902d5 authored by garciay's avatar garciay
Browse files

Add SSP definitions according to Draft ETSI TS 103 097 V1.1.6 Clause 6.9 ItsAidSsp

parent 7590b390
Loading
Loading
Loading
Loading
+13 −4
Original line number Original line Diff line number Diff line
@@ -7,6 +7,9 @@
 */
 */
module LibItsSecurity_Pixits {
module LibItsSecurity_Pixits {
    
    
    // LibCommon
    import from LibCommon_DataStrings all;
    
    // LibItsSecurity
    // LibItsSecurity
    import from LibItsSecurity_TypesAndValues all;
    import from LibItsSecurity_TypesAndValues all;
    import from LibItsSecurity_Templates all;
    import from LibItsSecurity_Templates all;
@@ -227,12 +230,18 @@ module LibItsSecurity_Pixits {
                valueof(m_subject_attribute_its_aid_ssp_list(
                valueof(m_subject_attribute_its_aid_ssp_list(
                    { 
                    { 
                        {
                        {
                            16512,
                            its_aid := 16512,
                            '00'O
                            service_specific_permissions := {
                                version := '00'O,
                                sspContainer := omit
                            }
                        },
                        },
                        {
                        {
                            16513,
                            its_aid := 16513,
                            '00'O
                            service_specific_permissions := {
                                version := '00'O,
                                sspContainer := omit
                            }
                        }
                        }
                    }
                    }
                ))
                ))
+239 −0
Original line number Original line Diff line number Diff line
@@ -1648,6 +1648,7 @@ module LibItsSecurity_Templates {
         * @see Draft ETSI TS 103 097 V1.1.6 Clause 6   Specification of certificate format
         * @see Draft ETSI TS 103 097 V1.1.6 Clause 6   Specification of certificate format
         */
         */
        group certificatesRecv {
        group certificatesRecv {
            
            template (present) Certificate mw_certificate(
            template (present) Certificate mw_certificate(
                                                          in template (present) SignerInfo p_signer_info :=?,
                                                          in template (present) SignerInfo p_signer_info :=?,
                                                          in template (present) SubjectInfo p_subject_info :=?,
                                                          in template (present) SubjectInfo p_subject_info :=?,
@@ -1836,6 +1837,244 @@ module LibItsSecurity_Templates {
            
            
        } // End of group certificatesRecv
        } // End of group certificatesRecv
        
        
        group ssp {
            
            group sspTest {
                
                template (present) ServiceSpecificPermissions m_sspTest := {
                    version         := '00'O,
                    sspContainer    := omit
                } // End of template mw_sspTest
                
                template (present) ServiceSpecificPermissions mw_sspTest := {
                    version         := '00'O,
                    sspContainer    := *
                } // End of template mw_sspTest
                
            } // End of group sspTest 
            
            group sspDenm {
                    
                group sspDenmSend {
                    
                    /**
                     * @desc 
                     */
                    template (value) SspDENM m_sspDENMContainer_sign_all := {
                        trafficCondition                                := '1'B,
                        accident                                        := '1'B,
                        roadworks                                       := '1'B,
                        adverseWeatherCondition_Adhesion                := '1'B,
                        hazardousLocation_SurfaceCondition              := '1'B,
                        hazardousLocation_ObstacleOnTheRoad             := '1'B,
                        hazardousLocation_AnimalOnTheRoad               := '1'B,
                        humanPresenceOnTheRoad                          := '1'B,
                        wrongWayDriving                                 := '1'B,
                        rescueAndRecoveryWorkInProgress                 := '1'B,
                        adverseWeatherCondition_ExtremeWeatherCondition := '1'B,
                        adverseWeatherCondition_Visibility              := '1'B,
                        adverseWeatherCondition_Precipitation           := '1'B,
                        slowVehicle                                     := '1'B,
                        dangerousEndOfQueue                             := '1'B,
                        vehicleBreakdown                                := '1'B,
                        postCrash                                       := '1'B,
                        humanProblem                                    := '1'B,
                        stationaryVehicle                               := '1'B,
                        emergencyVehicleApproaching                     := '1'B,
                        hazardousLocation_DangerousCurve                := '1'B,
                        collisionRisk                                   := '1'B,
                        signalViolation                                 := '1'B,
                        dangerousSituation                              := '1'B
                    } // End of template m_sspDENMContainer_sign_all
                    
                    /**
                     * @desc 
                     */
                    template (value) SspDENM m_sspDENMContainer_vehicle 
                    modifies m_sspDENMContainer_sign_all:= {
                        trafficCondition                                := '0'B,
                        accident                                        := '0'B,
                        roadworks                                       := '0'B,
                        adverseWeatherCondition_Adhesion                := '0'B,
                        hazardousLocation_SurfaceCondition              := '0'B,
                        hazardousLocation_ObstacleOnTheRoad             := '0'B,
                        hazardousLocation_AnimalOnTheRoad               := '0'B,
                        slowVehicle                                     := '0'B,
                        dangerousEndOfQueue                             := '0'B,
                        vehicleBreakdown                                := '0'B,
                        stationaryVehicle                               := '0'B
                    } // End of template m_sspDENMContainer_sign_all
                    
                    /**
                     * @desc 
                     */
                    template (value) SspDENM m_sspDENMContainer_roadSideUnit 
                    modifies m_sspDENMContainer_sign_all:= {
                        trafficCondition                                := '0'B,
                        accident                                        := '0'B,
                        roadworks                                       := '0'B,
                        adverseWeatherCondition_Adhesion                := '0'B,
                        hazardousLocation_SurfaceCondition              := '0'B,
                        hazardousLocation_ObstacleOnTheRoad             := '0'B,
                        hazardousLocation_AnimalOnTheRoad               := '0'B,
                        humanPresenceOnTheRoad                          := '0'B,
                        wrongWayDriving                                 := '0'B,
                        rescueAndRecoveryWorkInProgress                 := '0'B,
                        adverseWeatherCondition_ExtremeWeatherCondition := '0'B,
                        adverseWeatherCondition_Visibility              := '0'B,
                        adverseWeatherCondition_Precipitation           := '0'B,
                        postCrash                                       := '0'B,
                        humanProblem                                    := '0'B,
                        stationaryVehicle                               := '0'B,
                        hazardousLocation_DangerousCurve                := '0'B,
                        collisionRisk                                   := '0'B,
                        dangerousSituation                              := '0'B
                    } // End of template m_sspDENMContainer_roadSideUnit
                    
                    /**
                     * @desc 
                     */
                    template (value) ServiceSpecificPermissions m_sspDENM_sign_all := {
                        version         := '01'O,
                        sspContainer    := {
                            sspDENM := m_sspDENMContainer_sign_all
                        } // End of field sspContainer
                    } // End of template m_sspDENM_sign_all
                    
                    /**
                     * @desc 
                     */
                    template (value) ServiceSpecificPermissions m_sspDENM_vehicle 
                    modifies m_sspDENM_sign_all := {
                        sspContainer    := {
                            sspDENM := m_sspDENMContainer_vehicle
                        } // End of field sspContainer
                    } // End of template m_sspDENM_vehicle
                    
                    /**
                     * @desc 
                     */
                    template (value) ServiceSpecificPermissions m_sspDENM_roadSideUnit 
                    modifies m_sspDENM_sign_all := {
                        sspContainer    := {
                            sspDENM := m_sspDENMContainer_vehicle
                        } // End of field sspContainer
                    } // End of template m_sspDENM_roadSideUnit
                    
                } // End of group sspDenmSend
                
                group sspDenmRecv {
                    
                    /**
                     * @desc 
                     */
                    template (present) SspDENM mw_sspDENMContainer_dummy := {
                        trafficCondition                                := ?,
                        accident                                        := ?,
                        roadworks                                       := ?,
                        adverseWeatherCondition_Adhesion                := ?,
                        hazardousLocation_SurfaceCondition              := ?,
                        hazardousLocation_ObstacleOnTheRoad             := ?,
                        hazardousLocation_AnimalOnTheRoad               := ?,
                        humanPresenceOnTheRoad                          := ?,
                        wrongWayDriving                                 := ?,
                        rescueAndRecoveryWorkInProgress                 := ?,
                        adverseWeatherCondition_ExtremeWeatherCondition := ?,
                        adverseWeatherCondition_Visibility              := ?,
                        adverseWeatherCondition_Precipitation           := ?,
                        slowVehicle                                     := ?,
                        dangerousEndOfQueue                             := ?,
                        vehicleBreakdown                                := ?,
                        postCrash                                       := ?,
                        humanProblem                                    := ?,
                        stationaryVehicle                               := ?,
                        emergencyVehicleApproaching                     := ?,
                        hazardousLocation_DangerousCurve                := ?,
                        collisionRisk                                   := ?,
                        signalViolation                                 := ?,
                        dangerousSituation                              := ?
                    } // End of template mw_sspDENMContainer_dummy
                    
                    /**
                     * @desc 
                     */
                    template (present) SspDENM mw_sspDENMContainer_vehicle
                    modifies mw_sspDENMContainer_dummy := {
                        trafficCondition                                := '0'B,
                        accident                                        := '0'B,
                        roadworks                                       := '0'B,
                        adverseWeatherCondition_Adhesion                := '0'B,
                        hazardousLocation_SurfaceCondition              := '0'B,
                        hazardousLocation_ObstacleOnTheRoad             := '0'B,
                        hazardousLocation_AnimalOnTheRoad               := '0'B,
                        slowVehicle                                     := '0'B,
                        dangerousEndOfQueue                             := '0'B,
                        vehicleBreakdown                                := '0'B,
                        stationaryVehicle                               := '0'B
                    } // End of template mw_sspDENMContainer_vehicle
                    
                    /**
                     * @desc 
                     */
                    template (present) SspDENM mw_sspDENMContainer_roadSideUnit
                    modifies mw_sspDENMContainer_dummy := {
                        trafficCondition                                := '0'B,
                        accident                                        := '0'B,
                        roadworks                                       := '0'B,
                        adverseWeatherCondition_Adhesion                := '0'B,
                        hazardousLocation_SurfaceCondition              := '0'B,
                        hazardousLocation_ObstacleOnTheRoad             := '0'B,
                        hazardousLocation_AnimalOnTheRoad               := '0'B,
                        humanPresenceOnTheRoad                          := '0'B,
                        wrongWayDriving                                 := '0'B,
                        rescueAndRecoveryWorkInProgress                 := '0'B,
                        adverseWeatherCondition_ExtremeWeatherCondition := '0'B,
                        adverseWeatherCondition_Visibility              := '0'B,
                        adverseWeatherCondition_Precipitation           := '0'B,
                        postCrash                                       := '0'B,
                        humanProblem                                    := '0'B,
                        stationaryVehicle                               := '0'B,
                        hazardousLocation_DangerousCurve                := '0'B,
                        collisionRisk                                   := '0'B,
                        dangerousSituation                              := '0'B
                    } // End of template m_sspDENMContainer_roadSideUnit
                    
                    /**
                     * @desc 
                     */
                    template (present) ServiceSpecificPermissions mw_sspDENM_dummy := {
                        version         := '01'O,
                        sspContainer    := {
                            sspDENM := mw_sspDENMContainer_dummy
                        }
                    } // End of template mw_sspDENM_dummy
                    
                    /**
                     * @desc 
                     */
                    template (present) ServiceSpecificPermissions mw_sspDENM_vehicle
                    modifies mw_sspDENM_dummy := {
                        sspContainer    := {
                            sspDENM := mw_sspDENMContainer_vehicle
                        }
                    } // End of template mw_sspDENM_vehicle
                    
                    /**
                     * @desc 
                     */
                    template (present) ServiceSpecificPermissions mw_sspDENM_roadSideUnit
                    modifies mw_sspDENM_dummy := {
                        sspContainer    := {
                            sspDENM := mw_sspDENMContainer_roadSideUnit
                        }
                    } // End of template mw_sspDENM_roadSideUnit
                    
                } // End of group sspDenmRecv
                
            } // End of group sspDenm
            
        } // End of group ssp
        
    } // End of group certificates
    } // End of group certificates
    
    
    /**
    /**
+78 −2
Original line number Original line Diff line number Diff line
@@ -768,9 +768,85 @@ module LibItsSecurity_TypesAndValues {
         */
         */
        type record ItsAidSsp {
        type record ItsAidSsp {
            IntX                        its_aid,
            IntX                        its_aid,
            Oct1to31    service_specific_permissions
            ServiceSpecificPermissions  service_specific_permissions
        } // End of type ItsAidSsp
        } // End of type ItsAidSsp
        
        
        /**
         * @desc Service specific permissions definition
         * @member version      SSP version control
         * @member sspConatiner Service specific permissions definition
         */
        type record ServiceSpecificPermissions {
            Oct1                                version,
            ServiceSpecificPermissionsContainer sspContainer optional
        } // End of type ServiceSpecificPermissions
        
        /**
         * @desc Service specific permissions definition
         * @member sspDENM  Service specific permissions definition for DENM
         * @member opaque   Service specific permissions definition for others
         */
        type union ServiceSpecificPermissionsContainer {
            SspDENM         sspDENM,
            Oct0to30        opaque
        } // End of type ServiceSpecificPermissions
        
        /**
         * @desc Service specific permissions definition for DENM
         * @member trafficCondition
         * @member accident
         * @member roadworks
         * @member adverseWeatherCondition_Adhesion
         * @member hazardousLocation_SurfaceCondition
         * @member hazardousLocation_ObstacleOnTheRoad
         * @member hazardousLocation_AnimalOnTheRoad
         * @member humanPresenceOnTheRoad
         * @member wrongWayDriving
         * @member rescueAndRecoveryWorkInProgress
         * @member adverseWeatherCondition_ExtremeWeatherCondition  
         * @member adverseWeatherCondition_Visibility
         * @member adverseWeatherCondition_Precipitation
         * @member slowVehicle
         * @member dangerousEndOfQueue
         * @member vehicleBreakdown
         * @member postCrash
         * @member humanProblem
         * @member stationaryVehicle
         * @member emergencyVehicleApproaching
         * @member hazardousLocation_DangerousCurve
         * @member collisionRisk
         * @member signalViolation
         * @member dangerousSituation
         * @member reserved                                             Reserved for Future Usage
         * @see Draft ETSI EN 302 637-3 V1.2.10 Clause 6.2.2.2  Service Specific Permissions (SSP)
         */
        type record SspDENM {
            Bit1        trafficCondition,
            Bit1        accident,
            Bit1        roadworks,
            Bit1        adverseWeatherCondition_Adhesion,
            Bit1        hazardousLocation_SurfaceCondition,
            Bit1        hazardousLocation_ObstacleOnTheRoad,
            Bit1        hazardousLocation_AnimalOnTheRoad,
            Bit1        humanPresenceOnTheRoad,
            Bit1        wrongWayDriving,
            Bit1        rescueAndRecoveryWorkInProgress,
            Bit1        adverseWeatherCondition_ExtremeWeatherCondition,
            Bit1        adverseWeatherCondition_Visibility,
            Bit1        adverseWeatherCondition_Precipitation,
            Bit1        slowVehicle,
            Bit1        dangerousEndOfQueue,
            Bit1        vehicleBreakdown,
            Bit1        postCrash,
            Bit1        humanProblem,
            Bit1        stationaryVehicle,
            Bit1        emergencyVehicleApproaching,
            Bit1        hazardousLocation_DangerousCurve,
            Bit1        collisionRisk,
            Bit1        signalViolation,
            Bit1        dangerousSituation
        } // End of type SspDENM
        
    } // End of group certificateSpecification
    } // End of group certificateSpecification
    
    
    /**
    /**