summaryrefslogtreecommitdiffstats
path: root/epan/dissectors/asn1/rua/rua.cnf
blob: 3446eb54599bb89d2b9776dd51fa6427bfd240d2 (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
# 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