2 # IEEE1609dot2 conformation file
9 Ieee1609Dot2BaseTypes ieee1609dot2
12 #.EXPORTS ONLY_VALS WS_DLL
30 # Get rid of unused code warnings
41 OperatingOrganizationId
42 Ieee1609HeaderInfoExtensionId
43 Ieee1609ContributedHeaderInfoExtension
46 ExpansionAlgorithmIdentifier
53 EccP384CurvePoint/uncompressedP384/x eccp384cpX
54 EccP384CurvePoint/uncompressedP384/y eccp384cpY
55 EccP384CurvePoint/x-only eccp384cpXOnly
56 EccP384CurvePoint/compressed-y-0 eccp384cpCompressed-y-0
57 EccP384CurvePoint/compressed-y-1 eccp384cpCompressed-y-1
59 EcdsaP384Signature/rSig ecdsap384RSig
60 EcdsaP384Signature/sSig ecdsap384SSig
63 HeaderInfo/psid hiPsid
65 IssuerIdentifier/self iiSelf
66 SignerIdentifier/self siSelf
68 SspRange/opaque srRange
69 RegionAndSubregions/region rasRegion
71 ToBeSignedCertificate/encryptionKey tbscEncryptionKey
73 SymmRecipientInfo/encKey sriEncKey
75 EncryptedDataEncryptionKey/eciesNistP256 edeEciesNistP256
77 EncryptedDataEncryptionKey/eciesBrainpoolP256r1 edekEciesBrainpoolP256r1
80 NinetyDegreeInt DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ieee1609dot2_NinetyDegreeInt_fmt)
81 OneEightyDegreeInt DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ieee1609dot2_OneEightyDegreeInt_fmt)
82 Time32 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ieee1609dot2_Time32_fmt)
83 Time64 DISPLAY=BASE_CUSTOM STRINGS=CF_FUNC(ieee1609dot2_Time64_fmt)
86 SspRange/opaque ABBREV=srRange.opaque
88 #.FN_HDR Ieee1609Dot2Data
89 actx->private_data = (void*)wmem_new0(actx->pinfo->pool, ieee1609_private_data_t);
92 #.FN_BODY Ieee1609Dot2Content/unsecuredData
93 ieee1609_private_data_t *my_private_data = (ieee1609_private_data_t*)actx->private_data;
95 offset = dissect_oer_octet_string(tvb, offset, actx, tree, hf_index,
96 NO_BOUND, NO_BOUND, false, &my_private_data->unsecured_data);
98 if (my_private_data->unsecured_data) {
99 // psid may also be provided in HeaderInfo
100 uint32_t psid = GPOINTER_TO_UINT(p_get_proto_data(wmem_file_scope(), actx->pinfo, proto_ieee1609dot2, 0));
102 /* Call next dissector here */
103 dissector_try_uint(unsecured_data_subdissector_table, psid, my_private_data->unsecured_data, actx->pinfo, tree);
104 my_private_data->unsecured_data = NULL;
106 // else: wait for the HeaderInfo for a second chance to dissect the content
111 #.FN_BODY HeaderInfo/psid
113 ieee1609_private_data_t *my_private_data = (ieee1609_private_data_t*)actx->private_data;
115 offset = dissect_oer_constrained_integer_64b_no_ub(tvb, offset, actx, tree, hf_index,
116 0U, NO_BOUND, &psid, false);
117 if ((my_private_data != NULL) && (my_private_data->unsecured_data != NULL)) {
118 /* Call next dissector here */
119 ieee1609dot2_set_next_default_psid(actx->pinfo, (uint32_t)psid);
120 dissector_try_uint(unsecured_data_subdissector_table, (uint32_t) psid, my_private_data->unsecured_data, actx->pinfo, tree);
121 my_private_data->unsecured_data = NULL;
126 #.FN_BODY PsidSsp/psid
127 offset = dissect_oer_constrained_integer_64b_no_ub(tvb, offset, actx, tree, hf_index,
128 0U, NO_BOUND, &((ieee1609_private_data_t*)actx->private_data)->psidssp, false);
130 #.FN_BODY ServiceSpecificPermissions/opaque
132 ieee1609_private_data_t *my_private_data = (ieee1609_private_data_t*)actx->private_data;
134 offset = dissect_oer_octet_string(tvb, offset, actx, tree, hf_index,
135 0, NO_BOUND, false, &ssp);
138 proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_ieee1609dot2_ssp);
139 /* Call next dissector here */
140 dissector_try_uint(ssp_subdissector_table, (uint32_t) my_private_data->psidssp, ssp, actx->pinfo, subtree);
144 #.ASSIGN_VALUE_TO_TYPE
146 psid-electronic-fee-collection Psid
147 psid-freight-fleet-management Psid
148 psid-public-transport Psid
149 psid-traffic-traveller-information Psid
150 psid-traffic-control Psid
151 psid-parking-management Psid
152 psid-geographic-road-database Psid
153 psid-medium-range-preinformation Psid
154 psid-man-machine-interface Psid
155 psid-intersystem-interface Psid
156 psid-automatic-vehicle-identification Psid
157 psid-emergency-warning Psid
159 psid-multi-purpose-payment Psid
160 psid-dsrc-resource-manager Psid
161 psid-after-theft-systems Psid
162 psid-cruise-assist-highway-system Psid
163 psid-multi-purpose-information-system Psid
164 psid-multi-mobile-information-system Psid
165 psid-efc-compliance-check-communication-applications Psid
166 psid-efc-localisation-augmentation-communication-applications Psid
167 psid-vehicle-to-vehicle-safety-and-awarenesss Psid
168 psid-limited-sensor-vehicle-to-vehicle-safety-and-awarenesss Psid
169 psid-tracked-vehicle-safety-and-awarenesss Psid
170 psid-wave-security-managements Psid
171 psid-ca-basic-services Psid
172 psid-den-basic-services Psid
173 psid-misbehavior-reporting-for-common-applications Psid
174 psid-vulnerable-road-users-safety-applications Psid
176 psid-differential-gps-corrections-uncompressed Psid
177 psid-differential-gps-corrections-compressed Psid
178 psid-intersection-safety-and-awareness Psid
179 psid-traveller-information-and-roadside-signage Psid
180 psid-mobile-probe-exchanges Psid
181 psid-emergency-and-erratic-vehicles-present-in-roadway Psid
182 psid-remote-management-protocol-execution Psid
183 psid-wave-service-advertisement Psid
184 psid-peer-to-peer-distribution-of-security-management-information Psid
185 psid-traffic-light-manoeuver-service Psid
186 psid-road-and-lane-topology-service Psid
187 psid-infrastructure-to-vehicle-information-service Psid
188 psid-traffic-light-control-requests-service Psid
189 psid-geonetworking-management-communications Psid
190 psid-certificate-revocation-list-application Psid
191 psid-collective-perception-service Psid
192 psid-vehicle-initiated-distress-notivication Psid
193 psid-fast-service-advertisement-protocol Psid
194 psid-its-station-internal-management-communications-protocol Psid
195 psid-veniam-delay-tolerant-networking Psid
196 psid-transcore-software-update Psid
197 psid-ipv6-routing Psid