summaryrefslogtreecommitdiffstats
path: root/epan/dissectors/asn1/sabp/sabp.cnf
blob: 2630514e4aac164bc221e9d743bdb67850a2f20d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
# sabp.cnf
# sabp conformation file
# Copyright 2007 Tomas Kukosa

#.OPT
PER
ALIGNED
#.END

#.NO_EMIT

#.PDU
SABP-PDU

#.MAKE_ENUM
ProcedureCode
ProtocolIE-ID

#.USE_VALS_EXT
ProcedureCode
ProtocolIE-ID
Cause

#.OMIT_ASSIGNMENT
Presence
ProtocolIE-ContainerList
#.END

#.TF_RENAME
ProtocolIE-Field/value     ProtocolIE_Field_value
InitiatingMessage/value    InitiatingMessage_value
SuccessfulOutcome/value    SuccessfulOutcome_value
UnsuccessfulOutcome/value  UnsuccessfulOutcome_value
#.END

#.FIELD_RENAME
ProtocolExtensionField/id  ext_id
MessageStructure/_item/repetitionNumber repetitionNumber1
#.END


#.FN_PARS ProtocolIE-ID  VAL_PTR=&ProtocolIE_ID
#.FN_FTR ProtocolIE-ID
  if (tree) {
    proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str_ext(ProtocolIE_ID, &sabp_ProtocolIE_ID_vals_ext, "unknown (%d)"));
  }
#.END


#.FN_PARS ProtocolIE-Field/value  FN_VARIANT=_pdu_new  TYPE_REF_FN=dissect_ProtocolIEFieldValue

#.FN_PARS ProtocolExtensionID  VAL_PTR=&ProtocolExtensionID
#.FN_PARS ProtocolExtensionField/extensionValue  FN_VARIANT=_pdu_new  TYPE_REF_FN=dissect_ProtocolExtensionFieldExtensionValue

#.FN_PARS  ProcedureCode  VAL_PTR = &ProcedureCode
#.FN_FTR ProcedureCode
       col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
                   val_to_str_ext(ProcedureCode, &sabp_ProcedureCode_vals_ext,
                              "unknown message"));
#.END

#.FN_PARS InitiatingMessage/value  FN_VARIANT=_pdu_new  TYPE_REF_FN=dissect_InitiatingMessageValue

#.FN_PARS SuccessfulOutcome/value  FN_VARIANT=_pdu_new  TYPE_REF_FN=dissect_SuccessfulOutcomeValue

#.FN_PARS UnsuccessfulOutcome/value  FN_VARIANT=_pdu_new  TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue


#.ASSIGN_VALUE_TO_TYPE  # SABP does not have constants assigned to types, they are pure INTEGER
# ProcedureCode
id-Write-Replace 		ProcedureCode
id-Kill 				ProcedureCode
id-Load-Status-Enquiry  ProcedureCode
id-Message-Status-Query ProcedureCode
id-Restart-Indication	ProcedureCode
id-Reset 				ProcedureCode
id-Failure-Indication	ProcedureCode
id-Error-Indication		ProcedureCode

# ProtocolIE-ID
id-Broadcast-Message-Content			ProtocolIE-ID
id-Category 							ProtocolIE-ID
id-Cause 								ProtocolIE-ID
id-Criticality-Diagnostics				ProtocolIE-ID
id-Data-Coding-Scheme 					ProtocolIE-ID
id-Failure-List 						ProtocolIE-ID
id-Message-Identifier 					ProtocolIE-ID
id-New-Serial-Number					ProtocolIE-ID
id-Number-of-Broadcasts-Completed-List 	ProtocolIE-ID
id-Number-of-Broadcasts-Requested 		ProtocolIE-ID
id-Old-Serial-Number					ProtocolIE-ID
id-Radio-Resource-Loading-List 			ProtocolIE-ID
id-Recovery-Indication 					ProtocolIE-ID
id-Repetition-Period 					ProtocolIE-ID
id-Serial-Number 						ProtocolIE-ID
id-Service-Areas-List 					ProtocolIE-ID
id-MessageStructure						ProtocolIE-ID
id-TypeOfError							ProtocolIE-ID
id-Paging-ETWS-Indicator				ProtocolIE-ID
id-Warning-Type							ProtocolIE-ID
id-WarningSecurityInfo					ProtocolIE-ID
id-Broadcast-Message-Content-Validity-Indicator	ProtocolIE-ID

#.END

#.REGISTER

#SABP-PROTOCOL-IES
Message-Identifier                 N sabp.ies id-Message-Identifier
New-Serial-Number                  N sabp.ies id-New-Serial-Number
Old-Serial-Number                  N sabp.ies id-Old-Serial-Number
Service-Areas-List                 N sabp.ies id-Service-Areas-List
Category                           N sabp.ies id-Category
Repetition-Period                  N sabp.ies id-Repetition-Period
Number-of-Broadcasts-Requested     N sabp.ies id-Number-of-Broadcasts-Requested
Data-Coding-Scheme                 N sabp.ies id-Data-Coding-Scheme
Broadcast-Message-Content          N sabp.ies id-Broadcast-Message-Content
Number-of-Broadcasts-Completed-List N sabp.ies id-Number-of-Broadcasts-Completed-List
Criticality-Diagnostics            N sabp.ies id-Criticality-Diagnostics
Failure-List                       N sabp.ies id-Failure-List
Radio-Resource-Loading-List        N sabp.ies id-Radio-Resource-Loading-List
Recovery-Indication                N sabp.ies id-Recovery-Indication
Serial-Number                      N sabp.ies id-Serial-Number
Cause                              N sabp.ies id-Cause

#SABP-PROTOCOL-EXTENSION
MessageStructure					N sabp.extension id-MessageStructure
TypeOfError							N sabp.extension id-TypeOfError
Paging-ETWS-Indicator				N sabp.extension id-Paging-ETWS-Indicator
Warning-Type						N sabp.extension id-Warning-Type
WarningSecurityInfo					N sabp.extension id-WarningSecurityInfo
Broadcast-Message-Content-Validity-Indicator	N sabp.extension id-Broadcast-Message-Content-Validity-Indicator

#SABP-ELEMENTARY-PROCEDURE
Write-Replace                          N sabp.proc.imsg id-Write-Replace
Write-Replace-Complete                 N sabp.proc.sout id-Write-Replace
Write-Replace-Failure                  N sabp.proc.uout id-Write-Replace
Kill                                   N sabp.proc.imsg id-Kill
Kill-Complete                          N sabp.proc.sout id-Kill
Kill-Failure                           N sabp.proc.uout id-Kill
Load-Query                             N sabp.proc.imsg id-Load-Status-Enquiry
Load-Query-Complete                    N sabp.proc.sout id-Load-Status-Enquiry
Load-Query-Failure                     N sabp.proc.uout id-Load-Status-Enquiry
Message-Status-Query                   N sabp.proc.imsg id-Message-Status-Query
Message-Status-Query-Complete          N sabp.proc.sout id-Message-Status-Query
Message-Status-Query-Failure           N sabp.proc.uout id-Message-Status-Query
Reset                                  N sabp.proc.imsg id-Reset
Reset-Complete                         N sabp.proc.sout id-Reset
Reset-Failure                          N sabp.proc.uout id-Reset
Restart                                N sabp.proc.imsg id-Restart-Indication
Failure                                N sabp.proc.imsg id-Failure-Indication
Error-Indication                       N sabp.proc.imsg id-Error-Indication

# following construction is not supported by asn2wrs
# PLMNidentity ::= TBCD-STRING (SIZE (3))
# TBCD-STRING ::= OCTET STRING

#.FN_BODY Service-Area-Identifier/pLMNidentity  VAL_PTR = &parameter_tvb
  tvbuff_t *parameter_tvb=NULL;
 proto_tree *subtree;

  offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
                                       3, 3, FALSE, &parameter_tvb);

	 if (!parameter_tvb)
		return offset;
	subtree = proto_item_add_subtree(actx->created_item, ett_sabp_e212);
	dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, subtree, 0, E212_SAI, FALSE);

#.FN_BODY Data-Coding-Scheme VAL_PTR = &parameter_tvb
 tvbuff_t *parameter_tvb=NULL;
 proto_tree *subtree;

%(DEFAULT_BODY)s

	if (!parameter_tvb)
		return offset;
	subtree = proto_item_add_subtree(actx->created_item, ett_sabp_cbs_data_coding);
	sms_encoding = dissect_cbs_data_coding_scheme(parameter_tvb, actx->pinfo, subtree, 0);

#.FN_BODY Message-Identifier VAL_PTR = &parameter_tvb
 tvbuff_t *parameter_tvb=NULL;

%(DEFAULT_BODY)s
	if (!parameter_tvb)
		return offset;
        dissect_cbs_message_identifier(parameter_tvb, tree, 0);

#.FN_BODY Serial-Number VAL_PTR = &parameter_tvb
 tvbuff_t *parameter_tvb=NULL;
 proto_tree *subtree;

%(DEFAULT_BODY)s
	if (!parameter_tvb)
		return offset;
	subtree = proto_item_add_subtree(actx->created_item, ett_sabp_cbs_serial_number);
        dissect_cbs_serial_number(parameter_tvb, subtree, 0);

#.FN_BODY New-Serial-Number VAL_PTR = &parameter_tvb
 tvbuff_t *parameter_tvb=NULL;
 proto_tree *subtree;

%(DEFAULT_BODY)s
	if (!parameter_tvb)
		return offset;
	subtree = proto_item_add_subtree(actx->created_item, ett_sabp_cbs_new_serial_number);
        dissect_cbs_serial_number(parameter_tvb, subtree, 0);

#.FN_BODY Broadcast-Message-Content VAL_PTR = &parameter_tvb
 tvbuff_t *parameter_tvb=NULL;

%(DEFAULT_BODY)s
	if (!parameter_tvb)
		return offset;
    dissect_sabp_cb_data(parameter_tvb, actx->pinfo, tree);
#    dissect_umts_cell_broadcast_message(parameter_tvb, actx->pinfo, proto_tree_get_root(tree));