summaryrefslogtreecommitdiffstats
path: root/epan/dissectors/asn1/its/its.cnf
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 20:34:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 20:34:10 +0000
commite4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc (patch)
tree68cb5ef9081156392f1dd62a00c6ccc1451b93df /epan/dissectors/asn1/its/its.cnf
parentInitial commit. (diff)
downloadwireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.tar.xz
wireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.zip
Adding upstream version 4.2.2.upstream/4.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'epan/dissectors/asn1/its/its.cnf')
-rw-r--r--epan/dissectors/asn1/its/its.cnf937
1 files changed, 937 insertions, 0 deletions
diff --git a/epan/dissectors/asn1/its/its.cnf b/epan/dissectors/asn1/its/its.cnf
new file mode 100644
index 00000000..b0205197
--- /dev/null
+++ b/epan/dissectors/asn1/its/its.cnf
@@ -0,0 +1,937 @@
+# its.cnf
+# Intelligent Transport Systems (ITS)
+
+#.OPT
+PER
+UNALIGNED
+#.END
+
+#.EXPORTS
+
+#.OMIT_ASSIGNMENT
+# Get rid of unused code warnings
+TisTpgTransactionsPdu
+DENM
+DENMv1
+CAM
+CAMv1
+SSEM
+SREM
+IVIM
+MAPEM
+SPATEM
+EV-RSR
+RTCMEM
+VAM
+ItsPduHeaderVam
+IMZM
+
+EvcsnPdu
+DriverLanguage
+ChargingPower
+StatusResponseCode
+CurrentVehicleConfiguration
+TpgLocation
+CS5
+DSRCmsgID
+VehicleLengthV2
+TrailerPresenceInformation
+CartesianAngularAccelerationComponent
+CartesianAngularAccelerationComponentValue
+AngularAccelerationConfidence
+StandardLength2B
+StandardLength9b
+PrecipitationIntensity
+ObjectFace
+BogiesCount
+BarometricPressure
+AxlesCount
+AirHumidity
+
+#.NO_EMIT
+Code-Units WITHOUT_VALS
+
+
+#.MODULE
+CAMv1-PDU-Descriptions camv1
+CAM-PDU-Descriptions cam
+DENMv1-PDU-Descriptions denmv1
+DENM-PDU-Description denm
+EVCSN-PDU-Descriptions evcsn
+EV-RechargingSpotReservation-PDU-Descriptions evrsr
+IVIM-PDU-Descriptions ivim
+TIS-TPG-Transactions-Descriptions tistpg
+SPATEM-PDU-Descriptions spatem
+MAPEM-PDU-Descriptions mapem
+SREM-PDU-Descriptions srem
+SSEM-PDU-Descriptions ssem
+AVIAEINumberingAndDataStructures anads
+ITS-Container itsv2
+ITS-ContainerV1 itsv1
+#ElectronicRegistrationIdentificationVehicleDataModule erivdm
+#CITSapplMgmtIDs csmid
+EfcDsrcApplication dsrc_app
+IVI ivi
+GDD gdd
+DSRC dsrc
+RTCMEM-PDU-Descriptions rtcmem
+ETSI-ITS-CDD its
+CPM-OriginatingStationContainers cpm
+CPM-PDU-Descriptions cpm
+CPM-PerceivedObjectContainer cpm
+CPM-PerceptionRegionContainer cpm
+CPM-SensorInformationContainer cpm
+VAM-PDU-Descriptions vam
+IMZM-PDU-Descriptions imzm
+#VAM-Temp-Imports vam
+#.END
+
+#.PDU
+CamPayload
+CoopAwarenessV1
+DenmPayload
+DecentralizedEnvironmentalNotificationMessageV1
+EVChargingSpotNotificationPOIMessage
+EV-RSR-MessageBody
+TisTpgTransaction
+IviStructure
+SPAT
+MapData
+SignalRequestMessage
+SignalStatusMessage
+RTCMcorrections
+CollectivePerceptionMessage
+ItsPduHeader
+VruAwareness
+InterferenceManagementZoneMessage
+# AddGrpC regional extension
+ConnectionManeuverAssist-addGrpC
+ConnectionTrajectory-addGrpC
+NodeAttributeSet-addGrpC
+IntersectionState-addGrpC
+MapData-addGrpC
+Position3D-addGrpC
+RestrictionUserType-addGrpC
+SignalStatusPackage-addGrpC
+LaneAttributes-addGrpC
+MovementEvent-addGrpC
+RequestorDescription-addGrpC
+#CpmContainers
+OriginatingVehicleContainer
+OriginatingRsuContainer
+SensorInformationContainer
+PerceptionRegionContainer
+PerceivedObjectContainer
+
+#.TYPE_RENAME
+
+# GicPart
+GicPart/relevanceZoneIds T_GicPartRelevanceZoneIds
+GicPart/detectionZoneIds T_GicPartDetectionZoneIds
+GicPart/driverAwarenessZoneIds T_GicPartDriverAwarenessZoneIds
+GicPart/extraText T_GicPartExtraText
+
+TcPart/relevanceZoneIds T_TcPartRelevanceZoneIds
+TcPart/detectionZoneIds T_TcPartDetectionZoneIds
+TcPart/driverAwarenessZoneIds T_TcPartDriverAwarenessZoneIds
+TcPart/text T_TcPartText
+
+TractorCharacteristics/equalTo T_TractorCharactEqualTo
+TractorCharacteristics/notEqualTo T_TractorCharactNotEqualTo
+
+TrailerCharacteristics/equalTo T_TrailerCharactEqualTo
+TrailerCharacteristics/notEqualTo T_TrailerCharactNotEqualTo
+
+SPAT/regional T_SPATRegional
+SignalRequestMessage/regional T_SRMRegional
+SignalStatusMessage/regional T_SSMRegional
+MapData/regional T_MAPRegional
+AdvisorySpeed/regional T_AdvisorySpeedRegional
+ComputedLane/regional T_ComputedLaneRegional
+ConnectionManeuverAssist/regional T_ConnectionManeuverAssistRegional
+GenericLane/regional T_GenericLaneRegional
+IntersectionGeometry/regional T_IntersectionGeometryRegional
+IntersectionState/regional T_IntersectionStateRegional
+LaneDataAttribute/regional T_LaneDataAttributeRegional
+MovementEvent/regional T_MovementEventRegional
+MovementState/regional T_MovementStateRegional
+NodeAttributeSetXY/regional T_NodeAttributeSetXYRegional
+Position3D/regional T_Position3DRegional
+RequestorDescription/regional T_RequestorDescriptionRegional
+RestrictionUserType/regional T_RestrictionUserTypeRegional
+RoadSegment/regional T_RoadSegmentRegional
+SignalRequestPackage/regional T_SignalRequestPackageRegional
+SignalRequest/regional T_SignalRequestRegional
+SignalStatusPackage/regional T_SignalStatusPackageRegional
+SignalStatus/regional T_SignalStatusRegional
+PerceptionRegion/numberOfPerceivedObjects T_PerceptionRegionNumberOfPerceivedObjects
+PerceptionRegion/shadowingApplies T_PerceptionRegionShadowingApplies
+
+
+#.END
+
+#.FIELD_RENAME
+PerceptionRegion/perceptionRegionShape perceptionRegionPerceptionRegionShape
+PerceptionRegion/shadowingApplies perceptionRegionShadowingApplies
+PerceptionRegion/numberOfPerceivedObjects perceptionRegionNumberOfPerceivedObjects
+PerceptionRegion/perceptionRegionConfidence perceptionRegionPerceptionRegionConfidence
+
+TisTpgDRM/location drmLocation
+TisTpgTRM/location trmLocation
+TisTpgTCM/location tcmLocation
+
+TisTpgVDRM/management vdrmManagement
+TisTpgDRM/management drmManagement
+TisTpgEOFM/management eofmManagement
+TisTpgTCM/management tcmManagement
+TisTpgVDPM/management vdpmManagement
+TisTpgTRM/management trmManagement
+TisTpgSNM/management snmManagement
+
+TisTpgDRM/situation drmSituation
+TisTpgTRM/situation trmSituation
+TisTpgTCM/situation tcmSituation
+
+Distance/value dValue
+DistanceOrDuration/value dodValue
+Weight/value wValue
+AnyCatalogue/value acValue
+VcCode/value vcValue
+
+Ext1/content e1Content
+Ext2/content e2Content
+VarLengthNumber/content vlnContent
+
+Ext2/extension e1Extension
+Ext1/extension e2Extension
+VarLengthNumber/extension vlnExtension
+
+RSCode/layoutComponentId rscLayoutComponentId
+Text/layoutComponentId tLayoutComponentId
+LayoutComponent/layoutComponentId lcLayoutComponentId
+
+ISO14823Code/pictogramCode icPictogramCode
+AnyCatalogue/pictogramCode acPictogramCode
+
+VcCode/validity vcValidity
+LaneInformation/validity liValidity
+
+RoadSegmentReferenceID/id rsrId
+RoadSegment/id rsId
+RequestorDescription/id rdId
+SignalRequesterInfo/id sriId
+IntersectionGeometry/id igId
+IntersectionState/id isId
+SignalRequest/id srId
+SignalStatus/id ssId
+IntersectionReferenceID/id irId
+RestrictionClassAssignment/id scaId
+
+AdvisorySpeed/confidence asConfidence
+TimeChangeDetails/confidence tcdConfidence
+
+SPAT/intersections spatIntersections
+MapData/intersections mdIntersections
+
+RequestorPositionVector/position rpvPosition
+RequestorDescription/position rdPosition
+
+SPAT/regional spatRegional
+SignalRequestMessage/regional srmRegional
+SignalStatusMessage/regional ssmRegional
+MapData/regional mapRegional
+AdvisorySpeed/regional asRegional
+ComputedLane/regional clRegional
+ConnectionManeuverAssist/regional cmaRegional
+GenericLane/regional glRegional
+IntersectionGeometry/regional igRegional
+IntersectionState/regional isRegional
+LaneDataAttribute/regional ldaRegional
+MovementEvent/regional meRegional
+MovementState/regional msRegional
+NodeAttributeSetXY/regional nasxyRegional
+Position3D/regional p3dRegional
+RequestorDescription/regional rdRegional
+RestrictionUserType/regional rutRegional
+RoadSegment/regional rsRegional
+SignalRequestPackage/regional srpRegional
+SignalRequest/regional srRegional
+SignalStatusPackage/regional sspRegional
+SignalStatus/regional ssRegional
+
+LaneAttributes/regional laRegional
+NodeOffsetPointXY/regional nopxyRegional
+RequestorType/regional rtRegional
+
+SignalRequestPackage/request srpRequest
+SignalRequesterInfo/request sriRequest
+RequestorType/request rtRequest
+
+RegulatorySpeedLimit/speed rslSpeed
+TransmissionAndSpeed/speed tasSpeed
+RequestorPositionVector/speed rpvSpeed
+AdvisorySpeed/speed asSpeed
+FullPositionVector/speed fpvSpeed
+SpeedandHeadingandThrottleConfidence/speed shtcSpeed
+
+SignalRequestPackage/minute srpMinute
+SignalStatusPackage/minute sspMinute
+
+FullPositionVector/heading fpvHeading
+RequestorPositionVector/heading rpvHeading
+SpeedandHeadingandThrottleConfidence/heading shtcheading
+
+FullPositionVector/elevation fpvElevation
+PositionConfidenceSet/elevation pcsElevation
+Position3D/elevation p3dElevation
+
+IntersectionState/status isStatus
+SignalStatusPackage/status sspStatus
+SignalStatusMessage/status ssmStatus
+
+SPAT/timeStamp spatTimeStamp
+SignalRequestMessage/timeStamp srmTimeStamp
+SignalStatusMessage/timeStamp ssmTimeStamp
+MapData/timeStamp mdTimeStamp
+IntersectionState/timeStamp isTimeStamp
+
+AdvisorySpeed/type asType
+RegulatorySpeedLimit/type rslType
+RequestorDescription/type rdType
+
+TcPart/detectionZoneIds tpDetectionZoneIds
+TcPart/driverAwarenessZoneIds tpDriverAwarenessZoneIds
+TcPart/relevanceZoneIds tpRelevanceZoneIds
+
+GicPart/detectionZoneIds gpDetectionZoneIds
+GicPart/driverAwarenessZoneIds gpDriverAwarenessZoneIds
+GicPart/relevanceZoneIds gpRelevanceZoneIds
+
+TractorCharacteristics/equalTo toEqualTo
+TractorCharacteristics/notEqualTo toNotEqualTo
+
+TrailerCharacteristics/equalTo teEqualTo
+TrailerCharacteristics/notEqualTo teNotEqualTo
+
+Node-XY-20b/x n20bX
+Node-XY-22b/x n22bX
+Node-XY-24b/x n24bX
+Node-XY-26b/x n26bX
+Node-XY-28b/x n28bX
+Node-XY-32b/x n32bX
+
+Node-XY-20b/y n20bY
+Node-XY-22b/y n22bY
+Node-XY-24b/y n24bY
+Node-XY-26b/y n26bY
+Node-XY-28b/y n28bY
+Node-XY-32b/y n32bY
+
+#.TYPE_ATTR
+Latitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_latitude_fmt)
+Longitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_longitude_fmt)
+AltitudeValue DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_altitude_fmt)
+DeltaLatitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_delta_latitude_fmt)
+DeltaLongitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_delta_longitude_fmt)
+DeltaAltitude DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_delta_altitude_fmt)
+PathDeltaTime DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_path_delta_time_fmt)
+SemiAxisLength DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_sax_length_fmt)
+HeadingValue DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_heading_value_fmt)
+HeadingConfidence DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_heading_confidence_fmt)
+SpeedValue DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_speed_value_fmt)
+SpeedConfidence DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_speed_confidence_fmt)
+SpeedLimit DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_speed_limit_fmt)
+VehicleLengthValue DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_vehicle_length_value_fmt)
+VehicleWidth DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_vehicle_width_fmt)
+LongitudinalAccelerationValue DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_acceleration_value_fmt)
+LateralAccelerationValue DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_acceleration_value_fmt)
+VerticalAccelerationValue DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_acceleration_value_fmt)
+AccelerationConfidence DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_acceleration_confidence_fmt)
+CurvatureValue DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_curvature_value_fmt)
+YawRateValue DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_yaw_rate_value_fmt)
+SteeringWheelAngleValue DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_swa_value_fmt)
+SteeringWheelAngleConfidence DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_swa_confidence_fmt)
+TimestampIts DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_timestamp_fmt)
+ValidityDuration DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(its_validity_duration_fmt)
+
+GenerationDeltaTime STRINGS=NULL
+
+MinuteOfTheYear DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(dsrc_moi_fmt)
+DSecond DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(dsrc_dsecond_fmt)
+TimeMark DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(dsrc_time_mark_fmt)
+TimeIntervalConfidence STRINGS=VALS(dsrc_TimeIntervalConfidence_vals)
+Velocity DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(dsrc_velocity_fmt)
+Angle DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(dsrc_angle_fmt)
+HeadingDSRC DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(dsrc_angle_fmt)
+DeltaTime DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(dsrc_delta_time_fmt)
+
+TimeOfMeasurement STRINGS=NULL
+ClassConfidence DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(cpm_general_confidence_fmt)
+FreeSpaceConfidence DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(cpm_general_confidence_fmt)
+ObjectConfidence DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(cpm_general_confidence_fmt)
+DistanceValue DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(cpm_distance_value_fmt)
+DistanceConfidence DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(cpm_distance_confidence_fmt)
+SpeedValueExtended DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(cpm_speed_value_ext_fmt)
+ObjectDimensionValue DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(cpm_object_dimension_value_fmt)
+#ObjectDimensionConfidence DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(cpm_object_dimension_confidence_fmt)
+
+#.END
+
+#.FIELD_ATTR
+IntersectionState/status ABBREV=intersectionState.status
+SignalStatusPackage/status ABBREV=signalStatusPackage.status
+SignalStatusMessage/status ABBREV=signalStatusMessage.status
+FullPositionVector/elevation ABBREV=fullPositionVector.elevation
+PositionConfidenceSet/elevation ABBREV=positionConfidenceSet.elevation
+Position3D/elevation ABBREV=position3D.elevation
+
+#.END
+
+#.MAKE_DEFINES
+MessageId
+#.END
+
+#.MAKE_ENUM
+RegionId
+CauseCodeType
+
+#.FN_HDR CamPayload
+ actx->private_data = (void*)wmem_new0(actx->pinfo->pool, its_private_data_t);
+ col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "CAM");
+ col_set_str(actx->pinfo->cinfo, COL_INFO, "CAM");
+#.END
+
+#.FN_HDR CoopAwarenessV1
+ actx->private_data = (void*)wmem_new0(actx->pinfo->pool, its_private_data_t);
+ col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "CAMv1");
+ col_set_str(actx->pinfo->cinfo, COL_INFO, "CAMv1");
+#.END
+
+#.FN_HDR DenmPayload
+ actx->private_data = (void*)wmem_new0(actx->pinfo->pool, its_private_data_t);
+ col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "DENM");
+ col_set_str(actx->pinfo->cinfo, COL_INFO, "DENM");
+#.END
+
+#.FN_HDR DecentralizedEnvironmentalNotificationMessageV1
+ actx->private_data = (void*)wmem_new0(actx->pinfo->pool, its_private_data_t);
+ col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "DENMv1");
+ col_set_str(actx->pinfo->cinfo, COL_INFO, "DENMv1");
+#.END
+
+#.FN_HDR EVChargingSpotNotificationPOIMessage
+ actx->private_data = (void*)wmem_new0(actx->pinfo->pool, its_private_data_t);
+ col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "EVCSN");
+ col_set_str(actx->pinfo->cinfo, COL_INFO, "EVCSN");
+#.END
+
+#.FN_HDR EV-RSR-MessageBody
+ actx->private_data = (void*)wmem_new0(actx->pinfo->pool, its_private_data_t);
+ col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "EV-RSR");
+ col_set_str(actx->pinfo->cinfo, COL_INFO, "EV-RSR");
+#.END
+
+#.FN_HDR TisTpgTransaction
+ actx->private_data = (void*)wmem_new0(actx->pinfo->pool, its_private_data_t);
+ col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "TISTPG");
+ col_set_str(actx->pinfo->cinfo, COL_INFO, "TISTPG");
+#.END
+
+#.FN_HDR IviStructure
+ actx->private_data = (void*)wmem_new0(actx->pinfo->pool, its_private_data_t);
+ col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "IVIM");
+ col_set_str(actx->pinfo->cinfo, COL_INFO, "IVIM");
+#.END
+
+#.FN_HDR SignalStatusMessage
+ its_private_data_t *regext = wmem_new0(actx->pinfo->pool, its_private_data_t);
+ actx->private_data = (void*)regext;
+ col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "SSEM");
+ col_set_str(actx->pinfo->cinfo, COL_INFO, "SSEM");
+ regext->type = Reg_SignalStatusMessage;
+#.END
+
+#.FN_HDR SignalRequestMessage
+ its_private_data_t *regext = wmem_new0(actx->pinfo->pool, its_private_data_t);
+ actx->private_data = (void*)regext;
+ col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "SREM");
+ col_set_str(actx->pinfo->cinfo, COL_INFO, "SREM");
+ regext->type = Reg_SignalRequestMessage;
+#.END
+
+#.FN_HDR MapData
+ its_private_data_t *regext = wmem_new0(actx->pinfo->pool, its_private_data_t);
+ actx->private_data = (void*)regext;
+ col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "MAPEM");
+ col_set_str(actx->pinfo->cinfo, COL_INFO, "MAPEM");
+ regext->type = Reg_MapData;
+#.END
+
+#.FN_HDR SPAT
+ its_private_data_t *regext = wmem_new0(actx->pinfo->pool, its_private_data_t);
+ actx->private_data = (void*)regext;
+ col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "SPATEM");
+ col_set_str(actx->pinfo->cinfo, COL_INFO, "SPATEM");
+ regext->type = Reg_SPAT;
+#.END
+
+
+#.FN_HDR RTCMcorrections
+ its_private_data_t *regext = wmem_new0(actx->pinfo->pool, its_private_data_t);
+ actx->private_data = (void*)regext;
+ col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "RTCMEM");
+ col_set_str(actx->pinfo->cinfo, COL_INFO, "RTCMEM");
+ regext->type = Reg_RTCMcorrections;
+#.END
+
+#.FN_HDR CollectivePerceptionMessage
+ actx->private_data = (void*)wmem_new0(actx->pinfo->pool, its_private_data_t);
+ col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "CPM");
+ col_set_str(actx->pinfo->cinfo, COL_INFO, "CPM");
+#.END
+
+#.FN_HDR InterferenceManagementZoneMessage
+ actx->private_data = (void*)wmem_new0(actx->pinfo->pool, its_private_data_t);
+ col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "IMZM");
+ col_set_str(actx->pinfo->cinfo, COL_INFO, "IMZM");
+#.END
+
+#.FN_HDR VruAwareness
+ actx->private_data = (void*)wmem_new0(actx->pinfo->pool, its_private_data_t);
+ col_set_str(actx->pinfo->cinfo, COL_PROTOCOL, "VAM");
+ col_set_str(actx->pinfo->cinfo, COL_INFO, "VAM");
+#.END
+
+#.FN_HDR ConnectionManeuverAssist-addGrpC
+ actx->private_data = wmem_new0(actx->pinfo->pool, its_private_data_t);
+#.END
+
+
+#.FN_HDR ConnectionTrajectory-addGrpC
+ actx->private_data = wmem_new0(actx->pinfo->pool, its_private_data_t);
+#.END
+
+
+#.FN_HDR NodeAttributeSet-addGrpC
+ actx->private_data = wmem_new0(actx->pinfo->pool, its_private_data_t);
+#.END
+
+
+#.FN_HDR IntersectionState-addGrpC
+ actx->private_data = wmem_new0(actx->pinfo->pool, its_private_data_t);
+#.END
+
+
+#.FN_HDR MapData-addGrpC
+ actx->private_data = wmem_new0(actx->pinfo->pool, its_private_data_t);
+#.END
+
+
+#.FN_HDR Position3D-addGrpC
+ actx->private_data = wmem_new0(actx->pinfo->pool, its_private_data_t);
+#.END
+
+
+#.FN_HDR RestrictionUserType-addGrpC
+ actx->private_data = wmem_new0(actx->pinfo->pool, its_private_data_t);
+#.END
+
+
+#.FN_HDR SignalStatusPackage-addGrpC
+ actx->private_data = wmem_new0(actx->pinfo->pool, its_private_data_t);
+#.END
+
+
+#.FN_HDR LaneAttributes-addGrpC
+ actx->private_data = wmem_new0(actx->pinfo->pool, its_private_data_t);
+#.END
+
+
+#.FN_HDR MovementEvent-addGrpC
+ actx->private_data = wmem_new0(actx->pinfo->pool, its_private_data_t);
+#.END
+
+
+#.FN_HDR RequestorDescription-addGrpC
+ actx->private_data = wmem_new0(actx->pinfo->pool, its_private_data_t);
+#.END
+
+
+#.FN_HDR AdvisorySpeed
+ enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
+ ((its_private_data_t*)actx->private_data)->type = Reg_AdvisorySpeed;
+#.END
+#.FN_FTR AdvisorySpeed
+ ((its_private_data_t*)actx->private_data)->type = save;
+#.END
+
+
+#.FN_HDR ComputedLane
+ enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
+ ((its_private_data_t*)actx->private_data)->type = Reg_ComputedLane;
+#.END
+#.FN_FTR ComputedLane
+ ((its_private_data_t*)actx->private_data)->type = save;
+#.END
+
+
+#.FN_HDR ConnectionManeuverAssist
+ enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
+ ((its_private_data_t*)actx->private_data)->type = Reg_ConnectionManeuverAssist;
+#.END
+#.FN_FTR ConnectionManeuverAssist
+ ((its_private_data_t*)actx->private_data)->type = save;
+#.END
+
+
+#.FN_HDR GenericLane
+ enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
+ ((its_private_data_t*)actx->private_data)->type = Reg_GenericLane;
+#.END
+#.FN_FTR GenericLane
+ ((its_private_data_t*)actx->private_data)->type = save;
+#.END
+
+
+#.FN_HDR IntersectionGeometry
+ enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
+ ((its_private_data_t*)actx->private_data)->type = Reg_IntersectionGeometry;
+#.END
+#.FN_FTR IntersectionGeometry
+ ((its_private_data_t*)actx->private_data)->type = save;
+#.END
+
+
+#.FN_HDR IntersectionState
+ enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
+ ((its_private_data_t*)actx->private_data)->type = Reg_IntersectionState;
+#.END
+#.FN_FTR IntersectionState
+ ((its_private_data_t*)actx->private_data)->type = save;
+#.END
+
+
+#.FN_HDR LaneAttributes
+ enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
+ ((its_private_data_t*)actx->private_data)->type = Reg_LaneAttributes;
+#.END
+#.FN_FTR LaneAttributes
+ ((its_private_data_t*)actx->private_data)->type = save;
+#.END
+
+
+#.FN_HDR LaneDataAttribute
+ enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
+ ((its_private_data_t*)actx->private_data)->type = Reg_LaneDataAttribute;
+#.END
+#.FN_FTR LaneDataAttribute
+ ((its_private_data_t*)actx->private_data)->type = save;
+#.END
+
+
+#.FN_HDR MovementEvent
+ enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
+ ((its_private_data_t*)actx->private_data)->type = Reg_MovementEvent;
+#.END
+#.FN_FTR MovementEvent
+ ((its_private_data_t*)actx->private_data)->type = save;
+#.END
+
+
+#.FN_HDR MovementState
+ enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
+ ((its_private_data_t*)actx->private_data)->type = Reg_MovementState;
+#.END
+#.FN_FTR MovementState
+ ((its_private_data_t*)actx->private_data)->type = save;
+#.END
+
+
+#.FN_HDR NodeAttributeSetXY
+ enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
+ ((its_private_data_t*)actx->private_data)->type = Reg_NodeAttributeSetXY;
+#.END
+#.FN_FTR NodeAttributeSetXY
+ ((its_private_data_t*)actx->private_data)->type = save;
+#.END
+
+
+#.FN_HDR NodeOffsetPointXY
+ enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
+ ((its_private_data_t*)actx->private_data)->type = Reg_NodeOffsetPointXY;
+#.END
+#.FN_FTR NodeOffsetPointXY
+ ((its_private_data_t*)actx->private_data)->type = save;
+#.END
+
+
+#.FN_HDR Position3D
+ enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
+ ((its_private_data_t*)actx->private_data)->type = Reg_Position3D;
+#.END
+#.FN_FTR Position3D
+ ((its_private_data_t*)actx->private_data)->type = save;
+#.END
+
+
+#.FN_HDR RequestorDescription
+ enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
+ ((its_private_data_t*)actx->private_data)->type = Reg_RequestorDescription;
+#.END
+#.FN_FTR RequestorDescription
+ ((its_private_data_t*)actx->private_data)->type = save;
+#.END
+
+
+#.FN_HDR RequestorType
+ enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
+ ((its_private_data_t*)actx->private_data)->type = Reg_RequestorType;
+#.END
+#.FN_FTR RequestorType
+ ((its_private_data_t*)actx->private_data)->type = save;
+#.END
+
+
+#.FN_HDR RestrictionUserType
+ enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
+ ((its_private_data_t*)actx->private_data)->type = Reg_RestrictionUserType;
+#.END
+#.FN_FTR RestrictionUserType
+ ((its_private_data_t*)actx->private_data)->type = save;
+#.END
+
+
+#.FN_HDR RoadSegment
+ enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
+ ((its_private_data_t*)actx->private_data)->type = Reg_RoadSegment;
+#.END
+#.FN_FTR RoadSegment
+ ((its_private_data_t*)actx->private_data)->type = save;
+#.END
+
+
+#.FN_HDR SignalRequestPackage
+ enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
+ ((its_private_data_t*)actx->private_data)->type = Reg_SignalRequestPackage;
+#.END
+#.FN_FTR SignalRequestPackage
+ ((its_private_data_t*)actx->private_data)->type = save;
+#.END
+
+
+#.FN_HDR SignalRequest
+ enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
+ ((its_private_data_t*)actx->private_data)->type = Reg_SignalRequest;
+#.END
+#.FN_FTR SignalRequest
+ ((its_private_data_t*)actx->private_data)->type = save;
+#.END
+
+
+#.FN_HDR SignalStatusPackage
+ enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
+ ((its_private_data_t*)actx->private_data)->type = Reg_SignalStatusPackage;
+#.END
+#.FN_FTR SignalStatusPackage
+ ((its_private_data_t*)actx->private_data)->type = save;
+#.END
+
+
+#.FN_HDR SignalStatus
+ enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
+ ((its_private_data_t*)actx->private_data)->type = Reg_SignalStatus;
+#.END
+#.FN_FTR SignalStatus
+ ((its_private_data_t*)actx->private_data)->type = save;
+#.END
+
+
+#.FN_HDR SignalControlZone
+ enum regext_type_enum save = ((its_private_data_t*)actx->private_data)->type;
+ ((its_private_data_t*)actx->private_data)->type = Reg_SignalControlZone;
+#.END
+#.FN_FTR SignalControlZone
+ ((its_private_data_t*)actx->private_data)->type = save;
+#.END
+
+#.FN_PARS RegionId VAL_PTR = &((its_private_data_t*)actx->private_data)->region_id
+
+#.FN_PARS ProtocolVersion VAL_PTR = &((its_header_t*)actx->private_data)->version
+#.FN_PARS MessageId VAL_PTR = &((its_header_t*)actx->private_data)->msgId
+#.FN_PARS StationId VAL_PTR = actx->private_data?&((its_header_t*)actx->private_data)->stationId:NULL
+#.FN_PARS CpmContainerId VAL_PTR = &((its_header_t*)actx->private_data)->CpmContainerId
+
+#.FN_BODY ItsPduHeader
+ guint8 version = tvb_get_guint8(tvb, 0);
+ int test_offset = offset;
+ if ((test_offset = dissector_try_uint(its_version_subdissector_table, version, tvb, actx->pinfo, tree))) {
+ return test_offset;
+ }
+ // Lets try it that way, regarless of version value...
+ its_header_t *hdr = wmem_new0(actx->pinfo->pool, its_header_t);
+ actx->private_data = (void*)hdr;
+%(DEFAULT_BODY)s
+ tap_queue_packet(its_tap, actx->pinfo, actx->private_data);
+ tvbuff_t *next_tvb = tvb_new_subset_length(tvb, offset >> 3, -1);
+ int data_offset = dissector_try_uint(its_msgid_subdissector_table, (hdr->version << 16)+hdr->msgId, next_tvb, actx->pinfo, tree);
+ if (!data_offset) {
+ proto_tree_add_expert(tree, actx->pinfo, &ei_its_no_sub_dis, next_tvb, 0, - 1);
+ data_offset = call_data_dissector(next_tvb, actx->pinfo, tree);
+ }
+ offset += data_offset;
+#.END
+
+#.ASSIGN_VALUE_TO_TYPE # ISO_TS_19091_DSRC ASN.1 does not have constants assigned to types
+
+#RegionId
+noRegion RegionId
+addGrpA RegionId
+addGrpB RegionId
+addGrpC RegionId
+
+#.END
+
+#.REGISTER
+# Not used due to "protocol" detection issue: we shall register for its subdissector not dsrc
+#.END
+
+#.FN_PARS RegionalExtension/regExtValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_regextval_pdu
+
+#.FN_PARS WrappedCpmContainer/containerData FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_cpmcontainers_pdu
+
+
+#.FN_BODY TypeOfReceptacle VAL_PTR=&parameter_tvb LEN_PTR=&len
+ tvbuff_t *parameter_tvb = NULL;
+ int len;
+%(DEFAULT_BODY)s
+ /* TODO Provide values?
+ * See ETSI TS 101 556-1 V1.1.1 Annex B Description for data elements
+ * Table B.2: Coding of the type of receptacle field
+ *
+ * Code Charging Standard plug / Type of Nb of Maximum Maximum
+ * spot type cable current phases Voltage Current
+ * -------------------------------------------------------------------------
+ * 0000 Socket IEC 62196-2 type 1 AC Single 240V 16A
+ * 0001 Socket IEC 62196-2 type 1 AC Single 240V 32A
+ * 0010 Socket IEC 62196-2 type 1 AC Single 240V 80A
+ * 0011 Socket IEC 62196-2 type 1 AC Single 120V 12A
+ * 0100 Socket IEC 62196-2 type 1 AC Single 120V 16A
+ * 0101 Socket Standard Household AC Single 250V 16A
+ * 0110 Socket Standard Household AC Single 480V 16A
+ * 0111 Socket IEC 62196-2 type 2 AC Single 230V 16A
+ * 1000 Socket IEC 62196-2 type 2 AC Single 250V 32A
+ * 1001 Socket IEC 62196-2 type 2 AC Single 480V 32A
+ * 1010 Socket IEC 62196-2 type 2 AC Single 400V 32/250A
+ * 1011 Socket IEC 62196-2 type 3A AC Single 250V 32A
+ * 1100 Socket IEC 62196-2 type 3B AC Single 480V 32A
+ * 1101 Socket Reserved for Future AC Single 1000V 400A
+ IEC 62196-3
+ * 1110 Cable for Reserved
+ DC charging
+ * 1111 Cable for Reserved
+ DC charging
+ */
+#.END
+
+#.FN_BODY CountryCode VAL_PTR=&val_tvb
+ tvbuff_t *val_tvb = NULL;
+%(DEFAULT_BODY)s
+ append_country_code_fmt(actx->created_item, val_tvb);
+#.END
+
+#.FN_BODY Text/language VAL_PTR=&val_tvb
+ tvbuff_t *val_tvb = NULL;
+%(DEFAULT_BODY)s
+ append_country_code_fmt(actx->created_item, val_tvb);
+#.END
+
+
+#.NO_EMIT WITH_VALS
+#.END
+
+#.NO_EMIT ONLY_VALS
+Latitude
+Longitude
+AltitudeValue
+DeltaLatitude
+DeltaLongitude
+DeltaAltitude
+PathDeltaTime
+SemiAxisLength
+$ITS-ContainerV1$HeadingValue
+HeadingConfidence
+SpeedValue
+SpeedConfidence
+SpeedLimit
+VehicleLengthValue
+VehicleWidth
+LongitudinalAccelerationValue
+LateralAccelerationValue
+VerticalAccelerationValue
+AccelerationConfidence
+CurvatureValue
+YawRateValue
+SteeringWheelAngleValue
+ValidityDuration
+ObjectDimensionValue
+SteeringWheelAngleConfidence
+TimestampIts
+GenerationDeltaTime
+
+#.END
+
+#.NO_EMIT WITHOUT_VALS
+# Just keep the vals. hf are made manually and used in cause/subcause decoding
+
+#.END
+
+
+#.FN_PARS CauseCodeType VAL_PTR = &((its_private_data_t*)actx->private_data)->cause_code
+
+#.FN_BODY SubCauseCodeType
+ // Overwrite hf_index
+ hf_index = *find_subcause_from_cause((CauseCodeType_enum) ((its_private_data_t*)actx->private_data)->cause_code);
+%(DEFAULT_BODY)s
+#.END
+
+#
+# RCUnit subtypes bodies implemented manually as asn2wrs is not able to handle subtype constraint
+#
+
+#.FN_BODY InternationalSign-speedLimits/unit
+ offset = dissect_per_constrained_integer(%(TVB)s, %(OFFSET)s, %(ACTX)s, %(TREE)s, %(HF_INDEX)s,
+ 0U, 1U, %(VAL_PTR)s, FALSE);
+#.END
+
+#.FN_BODY Weight/unit
+ offset = dissect_per_constrained_integer(%(TVB)s, %(OFFSET)s, %(ACTX)s, %(TREE)s, %(HF_INDEX)s,
+ 10U, 12U, %(VAL_PTR)s, FALSE);
+#.END
+
+#.FN_BODY DistOrDuration-Units
+ offset = dissect_per_constrained_integer(%(TVB)s, %(OFFSET)s, %(ACTX)s, %(TREE)s, %(HF_INDEX)s,
+ 2U, 9U, %(VAL_PTR)s, FALSE);
+#.END
+
+#.FN_BODY Distance/unit
+ offset = dissect_per_constrained_integer(%(TVB)s, %(OFFSET)s, %(ACTX)s, %(TREE)s, %(HF_INDEX)s,
+ 2U, 8U, %(VAL_PTR)s, FALSE);
+#.END
+
+#=== PtActivation =======================================================
+
+#.FN_HDR PtActivation
+ void *priv_data = actx->private_data;
+ its_pt_activation_data_t *pta;
+
+ pta = wmem_new0(actx->pinfo->pool, its_pt_activation_data_t);
+ actx->private_data = pta;
+#.FN_FTR
+ dissector_try_uint_new(cam_pt_activation_table, pta->type, pta->data, actx->pinfo, tree, TRUE, NULL);
+ actx->private_data = priv_data;
+#.END
+
+#.FN_PARS
+PtActivationType VAL_PTR = &((its_pt_activation_data_t*)actx->private_data)->type
+PtActivationData VAL_PTR = &((its_pt_activation_data_t*)actx->private_data)->data
+#.END