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
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
|
MMSHeadingExtensions {iso(1) identified-organization(3) nato(26) stanags(0)
mmhs(4406) object-identifiers(0) module(0) heading-extensions(6)} DEFINITIONS
IMPLICIT TAGS ::=
BEGIN
-- Prologue
-- Exports Everything
IMPORTS
-- IPMS information objects
IPMS-EXTENSION, ORDescriptor
--=
FROM IPMSInformationObjects {joint-iso-ccitt mhs-motis(6) ipms(1)
modules(0) information-objects(2)}
-- MMS upper bounds
lb-military-sic, ub-military-number-of-sics, ub-military-sic
--=
FROM MMSUpperBounds {iso(1) identified-organization(3) nato(26) stanags(0)
mmhs(4406) object-identifiers(0) module(0) upper-bounds(0)}
-- MMS object identifiers
id-nato-mmhs-mm-acp127-message-identifier,
id-nato-mmhs-mm-address-list-indicator, id-nato-mmhs-mm-codress-message,
id-nato-mmhs-mm-copy-precedence, id-nato-mmhs-mm-distribution-codes,
id-nato-mmhs-mm-exempted-address,
id-nato-mmhs-mm-extended-authorisation-info,
id-nato-mmhs-mm-handling-instructions, id-nato-mmhs-mm-information-labels,
id-nato-mmhs-mm-message-instructions, id-nato-mmhs-mm-message-type,
id-nato-mmhs-mm-originator-reference, id-nato-mmhs-mm-originator-plad,
id-nato-mmhs-mm-other-recipients-indicator,
id-nato-mmhs-mm-pilot-forwarding-info, id-nato-mmhs-mm-primary-precedence
--=
FROM MMSObjectIdentifiers {iso(1) identified-organization(3) nato(26)
stanags(0) mmhs(4406) object-identifiers(0)}
-- MTS abstract service
--Message--SecurityLabel
--=
FROM MTSAbstractService {joint-iso-ccitt mhs-motis(6) mts(3) modules(0)
mts-abstract-service(1)};
-- exempted address
--exempted-address IPMS-EXTENSION ::= {
-- VALUE SEQUENCE OF ExemptedAddress
-- IDENTIFIED BY id-nato-mmhs-mm-exempted-address}
ExemptedAddressSeq ::= SEQUENCE OF ExemptedAddress
ExemptedAddress ::= ORDescriptor
-- extended authorisation information
--extended-authorisation-info IPMS-EXTENSION ::= {
-- VALUE ExtendedAuthorisationInfo
-- IDENTIFIED BY id-nato-mmhs-mm-extended-authorisation-info}
ExtendedAuthorisationInfo ::= UTCTime
-- UTCTime as defined in 8.5.4 of ITU-T X.411
-- Distribution codes
-- will carry subject indicator codes and leave room for expansion.
--distribution-codes IPMS-EXTENSION ::= {
-- VALUE DistributionCodes
-- IDENTIFIED BY id-nato-mmhs-mm-distribution-codes}
DistributionCodes ::= SET {
sics
[0] SEQUENCE SIZE (1..ub-military-number-of-sics) OF Sic OPTIONAL,
dist-Extensions [1] SEQUENCE OF DistributionExtensionField OPTIONAL}
Sic ::= PrintableString(SIZE (lb-military-sic..ub-military-sic))
--DistributionExtensionField ::= INSTANCE OF TYPE-IDENTIFIER
DistributionExtensionField ::= SEQUENCE {
dist-type OBJECT IDENTIFIER,
dist-value ANY --DEFINED BY dist-type-- }
-- Handling instructions
--handling-instructions IPMS-EXTENSION ::= {
-- VALUE HandlingInstructions
-- IDENTIFIED BY id-nato-mmhs-mm-handling-instructions}
HandlingInstructions ::= SEQUENCE OF MilitaryString
MilitaryString ::= PrintableString(SIZE (1..ub-military-string))
-- Message instructions
-- will carry operating signals
--message-instructions IPMS-EXTENSION ::= {
-- VALUE MessageInstructions
-- IDENTIFIED BY id-nato-mmhs-mm-message-instructions}
MessageInstructions ::= SEQUENCE OF MilitaryString
-- Codress message
-- Needed for transition or as long as codress messages need to be carried.
--codress-message IPMS-EXTENSION ::= {
-- VALUE CodressMessage
-- IDENTIFIED BY id-nato-mmhs-mm-codress-message}
CodressMessage ::= INTEGER
-- Originator reference
-- only used if a user designated identifier string becomes important.
--originator-reference IPMS-EXTENSION ::= {
-- VALUE OriginatorReference
-- IDENTIFIED BY id-nato-mmhs-mm-originator-reference}
OriginatorReference ::= MilitaryString
-- we have expanded MMHSPrecedence to PrimaryPrecedence and CopyPrecedence to
-- all rules to be written to highlight high priority messages.
MMHSPrecedence ::= INTEGER {
deferred(0), routine(1), priority(2), immediate(3), flash(4), override(5)
-- these are used by some National systems XXX need to verify
, ecp(16), critic(17), override(18)
}
-- Primary reference
--primary-precedence IPMS-EXTENSION ::= {
-- VALUE MMHSPrecedence
-- IDENTIFIED BY id-nato-mmhs-mm-primary-precedence}
PrimaryPrecedence ::= INTEGER {
deferred(0), routine(1), priority(2), immediate(3), flash(4), override(5)
-- these are used by some National systems XXX need to verify
, ecp(16), critic(17), override(18)
}
-- Note: Values 0 to 15 are reserved for NATO defined precedence levels.
-- Values 16 to 31 are reserved for national user.
-- Copy precedence
--copy-precedence IPMS-EXTENSION ::= {
-- VALUE MMHSPrecedence
-- IDENTIFIED BY id-nato-mmhs-mm-copy-precedence}
CopyPrecedence ::= INTEGER {
deferred(0), routine(1), priority(2), immediate(3), flash(4), override(5)
-- these are used by some National systems XXX need to verify
, ecp(16), critic(17), override(18)
}
-- Message type
--message-type IPMS-EXTENSION ::= {
-- VALUE MessageType
-- IDENTIFIED BY id-nato-mmhs-mm-message-type}
MessageType ::= SET {
type [0] TypeMessage,
identifier [1] MessageIdentifier OPTIONAL}
TypeMessage ::= INTEGER {exercise(0), operation(1), project(2), drill(3)}
-- Note: Values 0 to 127 are reserved for NATO defined Message Type
-- identifiers. Values above 128 to 255 are not defined by NATO and may
-- be used nationally or bilaterally.
MessageIdentifier ::=
MilitaryString
-- Address list indicator
--address-list-indicator IPMS-EXTENSION ::= {
-- VALUE SEQUENCE OF AddressListDesignator
-- IDENTIFIED BY id-nato-mmhs-mm-address-list-indicator}
AddressListDesignatorSeq ::= SEQUENCE OF AddressListDesignator
AddressListDesignator ::= SET {
type [0] INTEGER {primaryAddressList(0), copyAddressList(1)},
listName [1] ORDescriptor,
notificationRequest [2] AddressListRequest OPTIONAL,
replyRequest [3] AddressListRequest OPTIONAL}
AddressListRequest ::= INTEGER {action(0), info(1), both(2)}
-- Other recipients indicator
--other-recipients-indicator IPMS-EXTENSION ::= {
-- VALUE SEQUENCE OF OtherRecipientDesignator
-- IDENTIFIED BY id-nato-mmhs-mm-other-recipients-indicator}
OtherRecipientDesignatorSeq ::= SEQUENCE OF OtherRecipientDesignator
OtherRecipientDesignator ::= SET {
type [0] INTEGER {primary(0), copy(1)},
designator [1] MilitaryString}
-- pilot forwarding information
--pilot-forwarding-info IPMS-EXTENSION ::= {
-- VALUE SEQUENCE OF PilotInformation
-- IDENTIFIED BY id-nato-mmhs-mm-pilot-forwarding-info}
PilotInformationSeq ::= SEQUENCE OF PilotInformation
PilotInformation ::= SEQUENCE {
pilotPrecedence [0] MMHSPrecedence OPTIONAL,
-- Note: Values 0 to 15 are reserved for NATO defined precedence levels.
-- Values 16 to 31 are reserved for national use.
pilotRecipient [1] SEQUENCE OF ORDescriptor OPTIONAL,
pilotSecurity [2] --Message--SecurityLabel OPTIONAL,
pilotHandling [3] SEQUENCE OF MilitaryString OPTIONAL}
-- Acp127 message identifier
-- a string to store routing indicator, station serial number and julian file
-- time seperated by spaces.
--acp127-message-identifier IPMS-EXTENSION ::= {
-- VALUE Acp127MessageIdentifier
-- IDENTIFIED BY id-nato-mmhs-mm-acp127-message-identifier}
Acp127MessageIdentifier ::= MilitaryString
-- Originator PLAD
--originator-plad IPMS-EXTENSION ::= {
-- VALUE OriginatorPlad
-- IDENTIFIED BY id-nato-mmhs-mm-originator-plad}
OriginatorPlad ::= MilitaryString
-- Information label
--security-information-labels IPMS-EXTENSION ::= {
-- VALUE SecurityInformationLabels
-- IDENTIFIED BY id-nato-mmhs-mm-information-labels}
SecurityInformationLabels ::= SEQUENCE {
content-security-label [0] SecurityLabel,
-- SecurityLabel as defined in 8.5.9 of ITU-T X.411
heading-security-label [1] SecurityLabel OPTIONAL,
body-part-security-labels [2] SEQUENCE OF BodyPartSecurityLabel OPTIONAL}
BodyPartSecurityLabel ::= SET {
body-part-security-label [0] SecurityLabel,
body-part-sequence-number [1] BodyPartSequenceNumber OPTIONAL}
BodyPartSequenceNumber ::= INTEGER
-- Note: If all body parts of the message are labelled, each
-- element in the body sequence above shall correspond to the
-- same numbered element of the Body sequence, and the body
-- part sequence number may be absent. (i.e. the first element
-- of this field shall correspond to the first body part, etc.
-- Otherwise the body part sequence number shall be present
-- and shall correspond to the sequence of the body part
-- to which the security label relates. (i.e. the value of the
-- body part sequence number shall correspond to sequence in which
-- the originator encoded the body parts of the message).
-- NOTE: The security-information-labels heading extension is now
-- deprecated. Its use is, therefore, discouraged. See STANAG 4406
-- Annex B for instruction on the use of its replacement, the
-- ESSSecurityLabel.
PriorityLevelQualifier ::= ENUMERATED {
low(0),
high(1) }
END -- of Military heading extensions used in MMS
|