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
|
#.MODULE_IMPORT
#.END
#.EXPORTS
#.END
#.OMIT_ASSIGNMENT
#.END
#.PDU
AircraftPDUs
GroundPDUs
ProtectedAircraftPDUs
ProtectedGroundPDUs
#.END
#.FIELD_RENAME
AircraftPDUs/send aircraftpdus_send
GroundPDUs/send groundpdus_send
ATCUplinkMessageData/constrainedData atcuplinkmessagedata_constraineddata
ATCDownlinkMessageData/constrainedData atcdownlinkmessagedata_constraineddata
ATCDownlinkMessageData/elementIds/_item atcdownlinkmessagedata_elementids_item
ATCUplinkMessageData/elementIds/_item atcuplinkmessagedata_elementids_item
ATCDownlinkMessageData/elementIds atcdownlinkmessagedata_elementids
ATCUplinkMessageData/elementIds atcuplinkmessagedata_elementids
ATCUplinkMessage/messageData atcuplinkmessage_messagedata
ATCDownlinkMessage/messageData atcdownlinkmessage_messagedata
Runway/direction runway_direction
Winds/direction winds_direction
DirectionDegrees/direction direction
DistanceSpecifiedDirection/direction direction
Holdatwaypoint/direction direction
HoldClearance/direction direction
VerticalChange/direction vertical_direction
FixName/name fixname_name
Navaid/name navaid_name
Winds/speed winds_speed
LevelSpeed/speed levelspeed_speed
ProtectedGroundPDUs/abortProvider pmcpdlcproviderabortreason
ProtectedAircraftPDUs/abortProvider pmcpdlcproviderabortreason
ProtectedGroundPDUs/abortUser pmcpdlcuserabortreason
ProtectedAircraftPDUs/abortUser pmcpdlcuserabortreason
ProtectedStartDownMessage/mode protectedmode
ProtectedGroundPDUs/send protecteduplinkmessage
ProtectedStartDownMessage/startDownlinkMessage protecteddownlinkmessage
ProtectedGroundPDUs/startup protecteduplinkmessage
ProtectedAircraftPDUs/startdown protectedstartDownmessage
#.END
#.FN_BODY CPDLCMessage
tvbuff_t *tvb_usr = NULL;
offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, NO_BOUND, NO_BOUND, false, NULL, 0, &tvb_usr, NULL);
if (tvb_usr) {
switch(check_heur_msg_type(actx->pinfo)){
case dm:
dissect_atn_cpdlc_ATCDownlinkMessage(tvb_new_subset_remaining(tvb_usr, 0), 0, actx, tree, hf_index);
break;
case um:
dissect_atn_cpdlc_ATCUplinkMessage(tvb_new_subset_remaining(tvb_usr, 0), 0, actx , tree, hf_index);
break;
default:
break;
}
}
#.END
#.FN_BODY AlgorithmIdentifier
proto_tree *top_tree=NULL;
offset=call_ber_oid_callback(object_identifier_id, tvb, offset, actx->pinfo, top_tree, NULL);
#.END
#.FN_BODY AircraftFlightIdentification
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,2, 8, false, ia5alpha , 127, NULL);
#.END
#.FN_BODY Airport
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,4, 4, false, ia5alpha , 127, NULL);
#.END
#.FN_BODY FacilityDesignation
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,4, 8, false, ia5alpha , 127, NULL);
#.END
#.FN_BODY FreeText
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,1, 256, false, ia5alpha , 127, NULL);
#.END
#.FN_BODY NavaidName
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,1, 4, false, ia5alpha , 127, NULL);
#.END
#.FN_BODY Procedure
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,1, 20, false, ia5alpha , 127, NULL);
#.END
#.FN_BODY ProcedureTransition
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,1, 5, false, ia5alpha , 127, NULL);
#.END
#.FN_BODY Fix
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,1, 5, false, ia5alpha , 127, NULL);
#.END
#.FN_BODY ATISCode
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,1, 1, false, ia5alpha , 127, NULL);
#.END
#.FN_BODY ATSRouteDesignator
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,2, 7, false, ia5alpha , 127, NULL);
#.END
#.FN_BODY FacilityName
offset = dissect_per_restricted_character_string(tvb, offset, actx, tree, hf_index,3, 18, false, ia5alpha , 127, NULL);
#.END
#
# Editor modelines - https://www.wireshark.org/tools/modelines.html
#
# Local variables:
# c-basic-offset: 4
# tab-width: 8
# indent-tabs-mode: nil
# End:
#
# vi: set shiftwidth=4 tabstop=8 expandtab:
# :indentSize=4:tabSize=8:noTabs=true:
#
|