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
|
# rua.cnf
# rua conformation file
# Copyright 2010 Neil Piercy, ip.access Limited <Neil.Piercy@ipaccess.com>
#.OPT
PER
ALIGNED
#.END
#.PDU
RUA-PDU
#.MAKE_ENUM
ProtocolIE-ID
ProcedureCode
#.TYPE_RENAME
ProtocolIE-Field/value ProtocolIE_Field_value
PrivateIE-Field/value PrivateIE_Field_value
InitiatingMessage/value InitiatingMessage_value
SuccessfulOutcome/value SuccessfulOutcome_value
UnsuccessfulOutcome/value UnsuccessfulOutcome_value
#.FIELD_RENAME
InitiatingMessage/value initiatingMessagevalue
UnsuccessfulOutcome/value unsuccessfulOutcome_value
SuccessfulOutcome/value successfulOutcome_value
PrivateIE-Field/value private_value
ProtocolIE-Field/value ie_field_value
ProtocolIE-Field/id protocol_ie_field_id
PrivateIE-Field/id private_ie_field_id
#.OMIT_ASSIGNMENT
Presence
ProtocolIE-ContainerList
ProtocolIE-Single-Container
#.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(ProtocolIE_ID, VALS(rua_ProtocolIE_ID_vals), "unknown (%d)"));
}
#.END
#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue
#.FN_PARS ProtocolExtensionField/extensionValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolExtensionFieldExtensionValue
#.FN_PARS ProcedureCode VAL_PTR = &ProcedureCode
#.FN_FTR ProcedureCode
if (strcmp(val_to_str_const(ProcedureCode, rua_ProcedureCode_vals, "Unknown"), "Unknown") == 0) {
col_set_str(actx->pinfo->cinfo, COL_INFO,
"Unknown Message ");
} /* Known Procedures should be included below and broken out as ELEMENTARY names to avoid confusion */
#.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
#.FN_BODY Connect
col_set_str(actx->pinfo->cinfo, COL_INFO,
"CONNECT ");
%(DEFAULT_BODY)s
#.FN_BODY DirectTransfer
col_set_str(actx->pinfo->cinfo, COL_INFO,
"DIRECT_TRANSFER ");
%(DEFAULT_BODY)s
#.FN_BODY Disconnect
col_set_str(actx->pinfo->cinfo, COL_INFO,
"DISCONNECT ");
%(DEFAULT_BODY)s
#.FN_BODY ConnectionlessTransfer
col_set_str(actx->pinfo->cinfo, COL_INFO,
"CONNECTIONLESS_TRANSFER ");
%(DEFAULT_BODY)s
#.FN_BODY ErrorIndication
col_set_str(actx->pinfo->cinfo, COL_INFO,
"ERROR_INDICATION ");
col_set_fence(actx->pinfo->cinfo, COL_INFO); /* Protect info from CriticalityDiagnostics decodes */
%(DEFAULT_BODY)s
#.FN_BODY PrivateMessage
col_set_str(actx->pinfo->cinfo, COL_INFO,
"PRIVATE_MESSAGE ");
%(DEFAULT_BODY)s
#.FN_BODY RANAP-Message VAL_PTR = &ranap_message_tvb
tvbuff_t *ranap_message_tvb=NULL;
%(DEFAULT_BODY)s
if ((tvb_reported_length(ranap_message_tvb)>0)&&(ranap_handle)) { /* RUA has a RANAP-PDU */
col_set_str(actx->pinfo->cinfo, COL_INFO,
"(RUA) "); /* Set info to (RUA) to make room for RANAP */
col_set_fence(actx->pinfo->cinfo, COL_INFO);
call_dissector(ranap_handle,ranap_message_tvb,%(ACTX)s->pinfo, proto_tree_get_root(tree));
}
#.END
#.ASSIGN_VALUE_TO_TYPE # RUA ASN.1 does not have constants assigned to types,
# ProcedureCode
id-Connect ProcedureCode
id-DirectTransfer ProcedureCode
id-Disconnect ProcedureCode
id-ConnectionlessTransfer ProcedureCode
id-ErrorIndication ProcedureCode
id-privateMessage ProcedureCode
# ProtocolIE-ID
id-Cause ProtocolIE-ID
id-CriticalityDiagnostics ProtocolIE-ID
id-Context-ID ProtocolIE-ID
id-RANAP-Message ProtocolIE-ID
id-IntraDomainNasNodeSelector ProtocolIE-ID
id-Establishment-Cause ProtocolIE-ID
id-CN-DomainIndicator ProtocolIE-ID
#.END
#.REGISTER
#RUA-PROTOCOL-IES
Cause N rua.ies id-Cause
CriticalityDiagnostics N rua.ies id-CriticalityDiagnostics
Context-ID N rua.ies id-Context-ID
RANAP-Message N rua.ies id-RANAP-Message
IntraDomainNasNodeSelector N rua.ies id-IntraDomainNasNodeSelector
Establishment-Cause N rua.ies id-Establishment-Cause
CN-DomainIndicator N rua.ies id-CN-DomainIndicator
#RUA-PROTOCOL-EXTENSION
CSGMembershipStatus N rua.extension id-CSGMembershipStatus
#RUA-ELEMENTARY-PROCEDURE
Connect N rua.proc.imsg id-Connect
DirectTransfer N rua.proc.imsg id-DirectTransfer
Disconnect N rua.proc.imsg id-Disconnect
ConnectionlessTransfer N rua.proc.imsg id-ConnectionlessTransfer
ErrorIndication N rua.proc.imsg id-ErrorIndication
PrivateMessage N rua.proc.imsg id-privateMessage
#.END
|