TODO netlogon_user_flags_ntlmv2_enabled
[wireshark-sm.git] / epan / dissectors / asn1 / HI2Operations / HI2Operations.cnf
blobee8d3cd679cc282f9dccda6d8ad4fd232bf0755c
1 # HI2Operations.cnf
2 # HI2Operations conformation file
4 #.MODULE
5 EpsHI2Operations EpsHI2
6 UmtsHI2Operations UmtsHI2
7 HI3CCLinkData   hi3cclinkdata
8 #.MODULE_IMPORT
10 #.EXPORTS
12 #.REGISTER
14 #.PDU
15 IRIsContent
16 UUS1-Content
18 #.NO_EMIT
20 #.OMIT_ASSIGNMENT
21 # Get rid of unused code warnings
22 CallContentLinkCharacteristics
23 CCLink-State
24 Intercepted-Call-State
25 GPRSCorrelationNumber
26 GPRSEvent
27 TetraLocation
29 #.FIELD_RENAME
30 GSMLocation/geoCoordinates/latitude geoCoordinates_latitude
31 GSMLocation/geoCoordinates/longitude geoCoordinates_longitude
34 #.FN_BODY APN VAL_PTR = &parameter_tvb
35   tvbuff_t *parameter_tvb=NULL;
37 %(DEFAULT_BODY)s
38   if (!parameter_tvb)
39     return offset;
41   proto_tree_add_item(tree, hf_HI2Operations_apn_str, parameter_tvb, 0, tvb_captured_length(tvb), ENC_APN_STR | ENC_NA);
43 #.FN_HDR UUS1-Content
45 /* Heuristic test to see if it's our content */
46     int8_t   tmp_class;
47     bool tmp_pc;
48     int32_t  tmp_tag;
49     int      tmp_offset;
50     unsigned length = tvb_captured_length(tvb);
51     uint32_t tmp_length;
52     bool tmp_ind;
54     /* Check for min length */
55     if (length < 6){
56       return 0;
57     }
58     /* We start with UUS1-Content ::= SEQUENCE */
59     tmp_offset = get_ber_identifier(tvb, offset, &tmp_class, &tmp_pc, &tmp_tag);
60     if(tmp_class != BER_CLASS_UNI){
61       return 0;
62     }
63     if(tmp_pc != 1){
64       return 0;
65     }
66     if(tmp_tag != BER_UNI_TAG_SEQUENCE){
67       return 0;
68     }
69     /* Get length just to move offset forward */
70     tmp_offset = get_ber_length(tvb, tmp_offset, &tmp_length, &tmp_ind);
72     /* Next 2 mandatorry elements
73      *  lawfullInterceptionIdentifier [1] LawfulInterceptionIdentifier,
74      *  communicationIdentifier       [2] CommunicationIdentifier,
75      */
76     get_ber_identifier(tvb, tmp_offset, &tmp_class, &tmp_pc, &tmp_tag);
77     if(tmp_class != BER_CLASS_CON){
78       return 0;
79     }
80     if(tmp_pc != 0){
81       return 0;
82     }
83     if(tmp_tag != 1){
84       return 0;
85     }
87 #.FN_BODY Network-Element-Identifier/e164-Format VAL_PTR = &parameter_tvb
88   tvbuff_t *parameter_tvb=NULL;
90 %(DEFAULT_BODY)s
91   if (!parameter_tvb)
92     return offset;
94   dissect_isup_calling_party_number_parameter(parameter_tvb, actx->pinfo, tree, NULL);
96 #.FN_BODY UUS1-Content/bearer-capability VAL_PTR =&parameter_tvb
97   tvbuff_t *parameter_tvb;
99 %(DEFAULT_BODY)s
101   if (!parameter_tvb)
102     return offset;
104   dissect_q931_bearer_capability_ie(parameter_tvb, 0, tvb_reported_length_remaining(parameter_tvb,0), tree);
106 #.FN_BODY EPS-GTPV2-SpecificParameters/pDNAddressAllocation
107   proto_tree *eps_paa_tree;
108   unsigned tvb_len;
110   /*
111    * 8.14 PDN Address Allocation (PAA)
112    * 3GPP TS 29.274
113    */
115   tvb_len = tvb_reported_length(tvb);
116   eps_paa_tree = proto_tree_add_subtree(tree, tvb, 0, tvb_len, ett_HI2Operations_eps_paa, NULL, "pDNAddressAllocation");
118   dissect_gtpv2_paa(tvb, actx->pinfo, eps_paa_tree, NULL, tvb_len, 0, 0, NULL);
120   offset = tvb_len;
122 #.FN_BODY EPS-GTPV2-SpecificParameters/ePSBearerQoS
123   proto_tree *eps_qos_tree;
124   unsigned tvb_len;
126   /*
127    * 8.15 Bearer Quality of Service (Bearer QoS)
128    * 3GPP TS 29.274
129    */
131   tvb_len = tvb_reported_length(tvb);
132   eps_qos_tree = proto_tree_add_subtree(tree, tvb, 0, tvb_len, ett_HI2Operations_eps_qos, NULL, "ePSBearerQoS");
134   dissect_gtpv2_bearer_qos(tvb, actx->pinfo, eps_qos_tree, NULL, tvb_len, 0, 0, NULL);
136   offset = tvb_len;
138 #.FN_BODY EPS-GTPV2-SpecificParameters/aPN-AMBR
139   proto_tree *eps_apn_ambr_tree;
140   unsigned tvb_len;
142   /*
143    * 8.7 Aggregate Maximum Bit Rate (AMBR)
144    * 3GPP TS 29.274
145    */
147   tvb_len = tvb_reported_length(tvb);
148   eps_apn_ambr_tree = proto_tree_add_subtree(tree, tvb, 0, tvb_len, ett_HI2Operations_eps_apn_ambr, NULL, "aPN-AMBR");
150   dissect_gtpv2_ambr(tvb, actx->pinfo, eps_apn_ambr_tree, NULL, tvb_len, 0, 0, NULL);
152   offset = tvb_len;
154 #.FN_BODY EPSLocation/userLocationInfo
155   proto_tree *eps_uli_tree;
156   unsigned tvb_len;
158   /*
159    * 8.22 User Location Info (ULI)
160    * 3GPP TS 29.274
161    */
163   tvb_len = tvb_reported_length(tvb);
164   eps_uli_tree = proto_tree_add_subtree(tree, tvb, 0, tvb_len, ett_HI2Operations_eps_uli, NULL, "userLocationInfo");
166   dissect_gtpv2_uli(tvb, actx->pinfo, eps_uli_tree, NULL, tvb_len, 0, 0, NULL);
168   offset = tvb_len;
170 #.FN_BODY EPS-GTPV2-SpecificParameters/tFT
171   proto_tree *eps_tft_tree;
172   unsigned tvb_len;
174   /*
175   * 8.19 EPS Bearer Level Traffic Flow Template (Bearer TFT)
176    * 3GPP TS 29.274
177    */
179   tvb_len = tvb_reported_length(tvb);
180   eps_tft_tree = proto_tree_add_subtree(tree, tvb, 0, tvb_len, ett_HI2Operations_eps_tft, NULL, "tFT");
182   /* The detailed coding of Traffic Aggregate
183    * Description is specified in 3GPP TS 24.008 [5] ,
184    * clause 10.5.6.12, beginning with octet 3..
185    * Use the decoding in packet-gsm_a_gm.c
186    */
187   de_sm_tflow_temp(tvb, eps_tft_tree, actx->pinfo, 0, tvb_len, NULL, 0);
189   offset = tvb_len;
191 #.FN_BODY Network-Identifier/operator-Identifier
192   proto_tree *network_operator_id_tree;
193   unsigned tvb_len;
195   /*
196    * 8.18 Serving Network
197    * 3GPP TS 29.274
198    */
200   tvb_len = tvb_reported_length(tvb);
201   network_operator_id_tree = proto_tree_add_subtree(tree, tvb, 0, tvb_len, ett_HI2Operations_eps_network, NULL, "operator-Identifier");
203   dissect_e212_mcc_mnc_wmem_packet_str(tvb, actx->pinfo, network_operator_id_tree, 0, E212_SERV_NET, true);
205   offset = tvb_len;
207 #.FN_BODY PartyInformation/partyIdentity/imei
208   unsigned tvb_len;
210   /*
211    * Mobile Equipment Identity (MEI)
212    */
214   tvb_len = tvb_reported_length(tvb);
215   /* IMEISV is 16 digits, but often transmitted BCD coded in 8 octets.
216     Some implementations use IMEI (15 digits) instead of IMEISV */
217   if (tvb_len == 8) {
218     proto_tree_add_item(tree, hf_HI2Operations_imei, tvb, offset, tvb_len, ENC_BCD_DIGITS_0_9|ENC_LITTLE_ENDIAN|ENC_NA);
219   } else {
220     proto_tree_add_item(tree, hf_HI2Operations_imei, tvb, offset, tvb_len, ENC_ASCII);
221   }
223   offset = tvb_len;
225 #.FN_BODY PartyInformation/partyIdentity/imsi
226   unsigned tvb_len;
228   /*
229    * See MAP format TS GSM 09.02 [32] International Mobile
230          * Station Identity E.212 number beginning with Mobile Country Code
231    */
233   tvb_len = tvb_reported_length(tvb);
235   dissect_e212_imsi(tvb, actx->pinfo, tree,  offset, tvb_len, false);
237   offset = tvb_len;
239 #.FN_BODY EPSCorrelationNumber
240   unsigned tvb_len;
241   proto_item *item;
242   uint64_t value;
244   tvb_len = tvb_reported_length(tvb);
246   item = proto_tree_add_item(tree, hf_HI2Operations_ePSCorrelationNumber, tvb, offset, tvb_len, ENC_NA);
248   value = tvb_get_uint64_with_length(tvb, offset, tvb_len, ENC_BIG_ENDIAN);
249   proto_item_append_text(item, " (%%"PRId64")", value);
251   offset = tvb_len;
253 #.FIELD_ATTR
254 GSMLocation/geoCoordinates/latitude ABBREV=geoCoordinates.latitude
255 GSMLocation/geoCoordinates/longitude ABBREV=geoCoordinates.longitude
256 IRI-Parameters/lawfulInterceptionIdentifier TYPE = FT_STRING  DISPLAY = BASE_NONE
257 EPS-GTPV2-SpecificParameters/ePSBearerIdentity TYPE = FT_UINT8  DISPLAY = BASE_DEC
258 EPS-GTPV2-SpecificParameters/rATType TYPE = FT_UINT8  DISPLAY = BASE_DEC|BASE_EXT_STRING  STRINGS = &gtpv2_rat_type_vals_ext
259 EPS-GTPV2-SpecificParameters/pDNType TYPE = FT_UINT8  DISPLAY = BASE_DEC|BASE_EXT_STRING  STRINGS = &gtpv2_pdn_type_vals_ext
260 EPS-GTPV2-SpecificParameters/linkedEPSBearerId TYPE = FT_STRING  DISPLAY = BASE_NONE
261 PartyInformation/partyIdentity/imei TYPE = FT_STRING  DISPLAY = BASE_NONE
263 #.END