Professional Documents
Culture Documents
ADatP-36 EDA V2 E
ADatP-36 EDA V2 E
ADatP-36 EDA V2 E
NATO STANDARD
ADatP-36
Edition A Version 2
SEPTEMBER 2021
Published by the
NATO STANDARDIZATION OFFICE (NSO)
© NATO/OTAN
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
INTENTIONALLY BLANK
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
INTENTIONALLY BLANK
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to IP
ADatP-36
I Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ADatP-36
INTENTIONALLY BLANK
II Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ADatP-36
RECORD OF RESERVATIONS
Note: The reservations listed on this page include only those that were recorded at
time of promulgation and may not be complete. Refer to the NATO Standardization
Document Database for the complete list of existing reservations.
INTENTIONALLY BLANK
IV Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ADatP-36
ALB This STANAG will be implemented after specification of the operational requirement and allocation of
resources in the mid-term procurement plan.
BEL Bel Defence will implement (in a first phase) only for LAND applications.
ITA Italian Navy will implement this STANAG in systems that are now still under development and, at this
time, there is no predictable date of their deployment.
PRT Portuguese Army does not have the capability to verify all requisites and specifications required by
this STANAG, namely to implement the Interface Service Interoperability Profile 3 (SIP 3).
Note: The reservations listed on this page include only those that were recorded at time of
promulgation and may not be complete. Refer to the NATO Standardization Document Database for
the complete list of existing reservations.
V Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ADatP-36
INTENTIONALLY BLANK
VI Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ADatP-36
TABLE OF CONTENTS
Introduction ........................................................................................................................... 1
1. Purpose and Scope of the Document ....................................................................... 1
2. Terms, Definitions and Conventions ......................................................................... 1
3. Friendly Force Tracking (FFT) .................................................................................. 2
FFT Concept ..................................................................................................... 2
Reporting Structure ........................................................................................... 3
FFT Report details ............................................................................................ 4
Security of Information ...................................................................................... 5
Friendly Force Information Message Format ..................................................... 6
Update Rates .................................................................................................... 6
Unique Terminal Identification (UTID) ............................................................... 6
Other Identification Data ................................................................................... 6
Processing of FFI Data ..................................................................................... 6
4. Document Format .................................................................................................... 7
Overview of Annexes ........................................................................................ 8
ANNEX A – Technical Specification – Data Bearer and Routing Layers .......................... A-1
FFI Interface Protocol (IP) / Service Interoperability Profile (SIP) Overview ....... A-1
Interface Protocol 1 (IP1) ................................................................................... A-1
IP1: Link Layer ........................................................................................... A-2
IP1: Internet Layer ...................................................................................... A-2
IP1: Transport Layer ................................................................................... A-2
IP1: Application Layer ................................................................................. A-3
Interface Protocol 2 (IP2) ................................................................................... A-3
IP2: Link Layer ........................................................................................... A-4
IP2: Internet Layer ...................................................................................... A-4
IP2: Transport Layer ................................................................................... A-4
IP2: Application Layer ................................................................................. A-4
FFI Data Compression....................................................................................... A-5
FFI IP1/IP2 Header Specification ....................................................................... A-6
FFI IP1/IP2 Header Introduction ................................................................. A-6
FFI IP1/IP2 Header Elements Specification ................................................ A-7
Modifications of IP1/IP2 Header ............................................................... A-13
Example .......................................................................................................... A-13
IX Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ADatP-36
X Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ADatP-36
LIST OF FIGURES
Figure 1 FFT Generic Network Structure ................................................................................ 3
Figure 2 STANAG Transformation Framework Layers ........................................................... 7
Figure 3 Interface Protocol 1 (IP1)....................................................................................... A-2
Figure 4 Interface Protocol 2 (IP2)....................................................................................... A-4
Figure 5 FFI IP1/IP2 Header and FFI Payload..................................................................... A-6
Figure 6 FFI IP1/IP2 Header Definition ................................................................................ A-7
Figure 7 NFFI Message Data Model .................................................................................... C-9
Figure 8 FFI MTF Message Model .................................................................................... C-10
Figure 9 "Pull Data" Mode ................................................................................................... E-3
Figure 10 "Push Data" Mode ............................................................................................... E-4
Figure 11 SIP3 Service Diagram ......................................................................................... E-5
Figure 12 Pull Request Message schema ........................................................................... E-7
Figure 13 Decoupled Response Message ........................................................................... E-8
Figure 14 SIP3SubscriptionParameter Element ................................................................ E-12
Figure 15 NFFIFilter Structure ........................................................................................... E-27
Figure 16 ReqResFilter Structure ...................................................................................... E-33
Figure 17 FFI Classification ................................................................................................. F-2
Figure 18 Filter element in FFT Filter schema ...................................................................... I-2
Figure 19 Source filter element in FFT Filter schema ........................................................... I-3
Figure 20 Geographic area filter element in FFT Filter schema ............................................ I-4
Figure 21 Boundingbox type in FFT Filter schema ............................................................... I-4
Figure 22 Proximity type in FFT Filter schema ..................................................................... I-5
Figure 23 Timeframe element in FFT Filter schema ............................................................. I-6
XI Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ADatP-36
LIST OF TABLES
Table 1 Sample FFI IP1/IP2 Header.................................................................................. A-14
Table 2 FFI IP1/IP2 Header (Binary Format) ..................................................................... A-14
Table 3 FFI IP1/IP2 Header (Hexadecimal Format) ........................................................... A-14
Table 4 XML (Message/Field) Clarification .......................................................................... B-2
Table 5 Interpretation and processing of nilled fields ......................................................... B-10
Table 6 Structure of APP-6(A)/APP-6(B) Symbol ID code ................................................... D-2
Table 7 Emergency Conditions ........................................................................................... D-5
Table 8 Principle Structure of Augmentation Data ............................................................... D-7
Table 9 Track Augmentation Information ............................................................................. D-8
Table 10 SIP3 Namespaces ................................................................................................ E-2
Table 11 InvalidSubscription Fault Code ........................................................................... E-16
Table 12 Classification of Augmented Track ....................................................................... F-3
Table 13 Mapping language constructs ...............................................................................G-1
Table 14 NFFI to FFI Mapping ............................................................................................G-4
Table 15 FFI MTF to NFFI Mapping ..................................................................................G-23
Table 16 Identifying attributes of an FFT track...................................................................... I-3
INTENTIONALLY BLANK
INTRODUCTION
In modern warfare, the knowledge of the exact geographical positions of own forces down to
the level of individual soldiers has become a necessity. In areas where allied forces operate in
a geographically shared area and especially within the dynamic environment of asymmetric
and urban warfare as well in situations where immediate decisions have to be taken, the
tracking of own forces is essential for automatic provision of horizontal and vertical situational
awareness in order to prevent fratricide.
Nations have procured various friendly force tracking and command and control systems with
differing capabilities. Some systems only provide position reports with corresponding
timestamps whereby others, besides position reporting of own forces, allow the full array of
command and control. Differences in type, format and content of the exchanged information as
well as technical variances of the used protocols prevent the direct exchange of positional and
other information of friendly forces between the different national systems. In order to overcome
this essential war fighting deficiency ADatP-36 outlines the conceptual, procedural and
technical details for allowing exchange of information amongst the array of Friendly Force
Tracking Systems (FFTS) via an agreed interface.
This standard does not cover the system-specific protocols that connect Friendly Force
Tracking Terminals with their connected Gateways.
The FFI message format is based on the formatting language of ADatP-3(A) [Ref 13]. Message
formats that adhere to ADatP-3(A) are called Message Text Formats (MTF). Therefore, the FFI
message format is called “FFI MTF” to distinguish it from the previous NATO Friendly Force
Information (NFFI) message format, which was based on an extensible markup language
(XML) schema definition, another formatting language. An ADatP-3(A) message format is also
documented in an XML schema, but with some extensions to regular XML. ADatP-3(A)
compliant message formats are regularly published in APP-11, the NATO Message Catalogue,
which is the authoritative source of message specifications in NATO.
This document expresses specific parts of the standard in a declarative way. These are called
Business Rules (BR). BR are numbered for unique reference purposes and highlighted in this
document for easy retrieval. They use specific vocabulary based on IETF RFC 2119 [Ref 8] to
express mandatory and optional/conditional parts of the standard.
BR-Example-1. ** Example ** Declarative Business Rule text. ** Example **
1 Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ADatP-36
The key words MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD
NOT, RECOMMENDED, MAY and OPTIONAL in this standard are to be interpreted as
described in IETF RFC 2119 [Ref 8] and to be used as described in IETF RFC 8174 [Ref 31].
Positions of maritime and air forces are reported by several different systems (e.g. radar, IFF,
tactical data links), which are normally not available to ground forces at either vehicle or
individual level. In order to mitigate this vital deficiency, FFTS have been introduced to the
forces of almost all NATO-nations and non-NATO/PfP-EAPC nations. Each FFTS allows a
nation’s forces to report their positional information within the technical framework of their
respective national system. For operations of a single nation this is fully sufficient. However, in
NATO/coalition/multi-national operations, commanders of forces from various nations require
access to the information about all forces under their command. At the tactical level, this
information needs also to be exchanged horizontally amongst neighbouring forces.
FFT is based on self-reporting of friendly elements, which is not sensor derived. This principle
implies that the report contains valid information and must be treated as information with very
high reliability.
Tracked objects are typically ground vehicles or dismounted soldiers of national, NATO owned
or allied forces. FFT may also be used in tracking of low flying aircraft (e.g., helicopter and
UAV). This standard may be used for interoperability and data exchange for tracking data from
a collaborating civilian entity that is providing tracking data to friendly forces such as a Non-
Governmental Organization or civilian convoy.
2 Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ADatP-36
REPORTING STRUCTURE
Figure 1 FFT Generic Network Structure
Figure 1 shows a generic FFT network with particular roles. One implemented system could
actually perform one or more roles in a network. However, the specific business rules for each
of these roles should clearly be separated in the system design.
FFT Gateway: this role collects FFT information from connected FFT Terminals via system
specific message formats and converts it to the FFI standard. Likewise it receives standard
FFI messages and forwards them to the connected terminals, if possible.
FFT Hub: the Hubs receive information from one or more Gateways, Hubs or Proxies and
disseminate them to other connected systems, while avoiding data loops.
FFT Proxy: the Proxy can convert from one protocol or standard to another. It has to follow
the standards of both related protocols.
FFT Consumer: the Consumer role receives FFT information forwarded from FFT
Gateways, Hubs, and Proxies.
FFT Augmentation: augmentation is used to add information about a specific track to the
received messages and forward it to other systems in the network.
FFT Sanitization: the Sanitization role removes information from received messages and
forwards the reduced information to other systems in the network.
3 Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ADatP-36
In the context of basic network and information sharing, individual FFT Terminals report within
their individual network to a dedicated system, called the FFT Gateway, which in turn converts
the reports into the FFI message format and forwards the information to the FFT network within
a dedicated area of operations. The information is distributed via FFT Hubs and Gateways and
thus is available to all connected systems. Provisions in the network design have to prevent
data loops and forwarding of information with inappropriate security classification. In some
scenarios it might be required to translate the exchanged information to other standards or
other versions of FFT message formats via so called FFT Proxies, or to add (augment) specific
information to or delete (sanitize) specific information from the submitted messages.
Note: “FFT Terminal” is used synonymously in this standard with “FFT Transponder”. The term
“Transponder” is used for legacy reasons when it indicates a part of a field name such as
“TransponderId”.
Note that the standard for information exchange between the Terminals and the Gateway is
not covered by ADatP-36.
Beyond the described roles, services may be established in an FFT network to allow storage
of information and provide that information on demand. This allows a more sophisticated
dissemination of track information, as used in the web-service specification in ANNEX A of this
standard.
BR-Minimum FFI-1. As a basic principle an FFI report SHALL contain the following
minimum information:
1. Transponder Identification
2. System Name
3. Track Security Marking
4. Time
5. Location (Latitude, Longitude) at time (above)
Note: These minimum data elements provide the basic position report or “blue dot” that will
indicate a unique reporting device’s identification (indicated by the Unique Terminal
Identification (UTID)) and position at the reported time. UTID is defined as the combination of
System and TransponderId fields and is described in greater detail in paragraph 3.7.
4 Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ADatP-36
BR-Minimum FFI-2. Additional information, which MAY be reported, MAY encompass:
Subsystem name
Nationality of the FFT System
Reliability and Credibility categorization of data
Security marking for “Detailed Track” and “Blue Dot”
Altitude data
Movement data (direction, speed, inclination)
Positional and movement accuracy details
Planned route points with timing
Track symbol1,2 and utilised symbol standard
Unit short name
Other identification numbers that pertain to other systems
Operational status information
Emergency information
Additional details deemed necessary and not contained in the other parts of the
report.
The additional information may be reported, but it is not mandatory to report this information,
as it would be complementary to the positional information required for preventing fratricide.
SECURITY OF INFORMATION
Security of information is a recognized NATO requirement. Classified information shall be
safeguarded by a balanced set of security measures, including personnel security, physical
security, security of information, Communication and Information System Security (CIS
Security), which shall extend to all individuals having access to classified information, all media-
carrying information, and to all premises containing such information3.
In FFT, information security needs to be applied to protect tactical resources. The level of
classification, and therefore the required efforts for its protection, depends on the operational
scenario in which FFT is performed and NATO and national policies. Even if none of the FFT
information is classified as being harmfull for the operation (NATO UNCLASSIFIED), the
information should be proper marked to define the intended public for his information.4
This standard does not provide the measures and means to protect the actual FFT network.
The only security aspect covered as a first step and minimum requirement to achieve
information security is the possibility to apply proper security marking. This paragraph and
ANNEX F provide the technical foundation for the security marking of FFT information.
The security of the transmitted FFI data is maintained by segregation of the levels of
classification:
Overall message classification (must be at least the highest classification of all contained
tracks)
Track classification (overall classification of all data pertaining to the track)
Blue Dot classification (classification of data pertaining to track position and source of the
track information)
1 Allied Procedural Publication 6 (APP-6), “APP-6(A) Military Symbols for Land Based Systems” [Ref
16]
2 Allied Procedural Publication 6 (APP-6), ”Joint Symbology APP-6(B)” [Ref 30]
3 C-M(2002)49-COR12, Security within the NATO [Ref 1]
4 C-M(2002)60, The management of non-classified NATO information [Ref 36]
5 Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ADatP-36
Track details classification (classification of track details beyond Track Source and
Positional Data)
The Friendly Force Information (FFI) message text format (MTF) has since been introduced to
the NATO Message Catalogue (APP-11) and will be used as the means to exchange FFI data.
FFI MTF formats may be subject to change in future editions of this standard (and APP-11) to
meet emerging/evolving operational and technical requirements of the FFI COI.
Specific rules for the message format, consisting of individual fields and the message structure
are detailed in ANNEX A and ANNEX B.
UPDATE RATES
Individual FFTS have differing update rates of their positions. As it is important to allow
commanders at all levels and weapon engagement elements to base their decisions on the
most precise information, it is important that the positions are updated in accordance with a
well-considered operational necessity. A moving target will require a higher update rate at
higher speeds than with lower speeds, whereas a stationary unit would not require any update
until it is moving away from the last reported position. FFTS update rates should be as high as
possible, within operational and physical limitations, to allow for the most accuracy of the data
within the systems.
6 Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ADatP-36
BR-Processing-1. With the minimum mandated information that MUST be transmitted,
the received information SHALL be used as static information until such time the data
is updated by a new report.
BR-Processing-2. As the update rate may be relatively low, reported positions in FFI-
derived reports MUST always be labelled with the timestamp corresponding to that
position.
4. DOCUMENT FORMAT
The standard contained in this publication has been developed based on the layered approach
of the STANAG Transformation Framework (STF). The structure of this document (in particular
the annex titles and content) has been aligned with this layered approach.
The STF supports increased interoperability and enhanced reusability among information
exchange standards. The diagram at Figure 2 illustrates the STF.
The different layers of this framework meet the requirements of the NATO Architecture
Framework and provide for compatibility with future NATO information exchange capabilities.
Note that this publication does not fully meet the STF, because not all parts are represented in
a machine-processable format.
7 Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ADatP-36
OVERVIEW OF ANNEXES
8 Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ANNEX A to ADatP-36
For clarity of the protocols, this annex follows the layer model as laid down in IETF RFC 1122
[Ref 5] (Requirements for Internet Hosts -- Communication Layers), dated Oct 1989. This
document defines the following layers: Link Layer, Internet Layer, Transport Layer, and
Application Layer.
In more detail:
IP1 - two-way reliable push operation over Transmission Control Protocol (TCP) [Ref 4] that
allows two parties to connect to each other (unicast) and exchange information by a reliable
two-way method.
IP2 - one-way unreliable push operation over User Datagram Protocol (UDP) [Ref 3] for
one-way communication, either for unicast (e.g., for passing data through a data diode
between security domains) or multicast/broadcast.
SIP3 - supports a data transfer functionality via Service Oriented Architectures,
complementing those specified with IP1 and IP2. Details about this interface are defined in
ANNEX E.
WSMP – this protocol will supersede SIP3 in the next edition of ADatP-36 and is still
optional in this version of the standard. The WSMP standard is not yet approved and ratified
but the ratification draft will be published shortly. It supports a data transfer functionality
using Service Oriented Architectures, complementing those specified with IP1 and IP2.
Details about this interface are defined in ANNEX H.
BR-IP1-1. The link layer SHALL allow setting up an IP-based network on top of the
hardware.
BR-IP1-3. IPv6 MAY be used between systems. If it is used then coordination SHALL
be done to ensure both endpoints are using IPv6.
Note: There may be an exception to the Always Open connection. If the network or architecture
is unstable the Always Open option may lead to unexpected data loss. There are two
possibilities to help alleviate data loss:
BR-IP1-5. Both the producer and consumer systems MAY set up an Open-Send-Close
connection. The producer system SHALL buffer messages that are being sent to ensure
100% data integrity. The amount of buffering SHALL be coordinated between the
producer and the consumer (i.e. last 1000 messages, last 5 minutes of data
transmission) because the producer system MAY become degraded if buffering is
indefinite.
Drawbacks may include inefficiencies while using the monitoring method and communications
overhead when using the Open-Send-Close method.
Using TCP communication all TCP packets have guaranteed delivery. TCP’s client/server
relationship requires additional session configuration. TCP is the protocol of choice for data
transactions in which performance must give way to integrity, controllability, and reliability.
BR-IP1-7. The Domain Name Service (DNS) is a service to resolve node names to IP
addresses and IP addresses to node names. This means that a DNS SHOULD be
running in the overall network setup.
BR-IP1-8. Firewalls MAY be used. If used, they SHALL be configured to enable DNS
communication. The use of DNS over security zones is not always allowed or possible.
As in IP1, in IP2 the four layers of the Internet Network Model are defined. Only the application
layer is specific to FFI and some provisions are made on the use of the transport layer.
BR-IP2-3. The application layer of IP2 uses the header for rebuilding the FFI messages
that are spread over multiple UDP packet segments. The reassembling SHALL be done
based on the header fields ‘Message Identifier’, ‘Packet segment number’ and ‘Payload
length’.
BR-IP2-4. The Domain Name Service (DNS) is a service to resolve node names to IP
addresses and IP addresses to node names. This means that a DNS SHOULD be
running in the overall network setup.
BR-IP2-5. Firewalls MAY be used. If used, they SHALL be configured to enable DNS
communication. The use of DNS over security zones may not always be allowed or
possible.
The following business rules SHALL be used when implementing the IP2 application layer’s
FFI message segmentation:
BR-IP2-6. The maximum size of the IP2 messages SHALL be coordinated between
the producer and consumer. This is due to the fact that some consumers have a limit
on the size of UDP datagrams that can be received and processed.
BR-IP2-7. The coordinated UDP datagram size SHOULD be as large as possibly can
be supported by both the producer and the consumer in order to minimize IP2 message
segmentation processing.
BR-IP2-8. Once the maximum UDP datagram size is determined, then the producer
SHALL take one of three actions to ensure that no packet size is larger than the
maximum packet size minus 16 bytes for the IP1/IP2 header size:
1. Split the FFI message into separate, complete, well-formed FFI XML messages
where none of the resulting FFI messages is larger than the maximum UDP
datagram limit.
2. Disassemble the FFI message into multiple segments where no datagram is larger
than the maximum UDP datagram limit. For this action, the producer SHALL set
the ‘Packet segment number’, as described in this document, so that the
consumer can reassemble the message.
3. Compress the payload using the compression technique discussed in this
document. If the payload is still larger than the maximum agreed UDP datagram
limit, then one of the other actions above SHALL be used.
BR-IP2-9. BR-IP2-8 option 1 SHOULD be used, so that all messages can be sent as
a single UDP datagram.
At implementation, a parameter should be set to ensure that no UDP packets will be saved for
reassembling longer than a default value (e.g., of 120 seconds).
BR-IP2-10. Any message that cannot be reassembled owing to missing UDP packets
SHALL be discarded after the specified time-out.
The definitions of the header and payload are the same as those for the header and payload
of IP1. More details are provided in the following paragraphs.
The FFI IP1/IP2 Header is an application-layer prefix for both IP1 and IP2. It includes
information about the sender and the destination, the different encodings for FFI, and the
different message types. For the IP2 transport it provides the capability to split the message
into smaller packets and reassemble at the destination. It also provides some capabilities that
could be exploited in the future such as specification of a message transport priority and the
possible authentication of the sender (based on the provided sender certificate). The FFI
IP1/IP2 header consists of a data structure that is introduced in front of the FFI payload, as
depicted in Figure 5.
The FFI IP1/IP2 Header is a bit-based fixed-field structure of 16 bytes in “network order”
(“bigendian”), i.e., the most significant bit is stored or transmitted first in the same way as in
conventional binary mathematics. The FFI IP1/IP2 header structure is depicted in Figure 6 with
the fields described in the following paragraphs.
BR-IP Implementation-1. If the FFI IP1/IP2 header contains unknown values in any of
the fields: Message Type, Encoding, or Spare, the payload of the message SHALL be
dropped by any role.
0 NFFI
1 FFI MTF (minimum implementation capability)
2-14 Reserved for future use
15 Reserved for use of other message types as mutually
agreed
BR-Header Field-1. The Default value of ‘0’ SHALL be used. Do not evaluate this field.
BR-Header Field-2. Transmitting systems SHALL set the value of the field “Spare
(former Destination Country)” to 0. Receiving systems SHALL ignore values other than
0, which might be received from legacy implementations.
BR-Header Field-7. The Destination set (system, subsystem fields) in the header
SHALL be ignored by the HUB and Proxy systems and SHALL NOT be used for routing
purposes.
Field: Timestamp
Range/Units: 0-4294967295
Start bit: 32
Length: 32
Description Time the message was sent by the sender in seconds (unsigned
integer, in network order) since 1970/01/01-00:00:00 UTC.
BR-Header Field-12. For IP1, the Message Identifier and Packet segment number
SHALL be set to 0 by the transmitting system and SHALL be ignored by the receiving
system.
BR-Header Field-13. For IP2, the Message Identifier identifies the FFI message and
after a value of “255” is used, MUST restart at “0”.
BR-Header Field-14. For IP2, the Message Identifier SHALL be increased for each
transmitted message.
BR-Header Field-15. For IP2, the Message Identifier and Packet segment number
together SHALL be used to reassemble User Datagram Protocol (UDP) packets into
the original FFI payload.
BR-Header Field-17. For IP1 (TCP/IP) this field SHALL NOT be used and SHALL be
set to zero.
BR-Header Field-18. For IP2 (UDP) this field SHALL be set to zero for the first packet,
and SHALL increment by one for each additional packet associated with a Message
Identifier.
Comment: When 0, the payload is interpreted as self-explanatory XML, in line with the message
format indicated with the Message Type field.
The default and normal mode of encoding the message payload is uncompressed ASCII XML
(value “0”).
BR-Header Field-19. If the data is compressed, this field SHALL specify which
algorithm is used.
Field: Spare
Range/Units: 0-3
Start bit: 84
Length: 2
Description Spare field, with fixed value 0
BR-Header Field-20. Transmitting systems SHALL set the value of the field “Spare
(former Source Country)” to 0. Receiving systems SHALL ignore values other than 0,
which might be received from legacy implementations.
BR-Header Field-21. If the source system is unknown or not assigned, the value 0
SHALL be used for the source system.
Range/Units: 0-255
Default: 0
Start bit: 104
Length: 8
Description The identifier (number) of the Source subsystem of the specified
system.
BR-Header Field-25. The Source set (system, subsystem fields) MAY be used for
logging, traceability and possible collision/duplication detection.
Range/Units: 0-65535
Start bit: 112
Length: 16
Description The field is mandatory both for IP1 and IP2. In both cases, Payload
length is the total length of the payload message in bytes. This length
always reflects the total length of the sent message, although, for IP2,
only part of it might be contained in the current UDP packet.
BR-Header Field-27. The Payload length field SHALL indicate the length of the actual
and complete FFI payload. For a compressed payload (encoding field contains a value
other than zero) the payload length SHALL refer to the length of the compressed
message.
BR-Header Field-28. For IP1, Payload length SHALL be used to identify the length of
individual messages when reading from an open TCP/IP connection.
BR-Header Field-29. If the payload length does not correspond to the actual received
number of bytes for the FFT Payload, the message SHALL be discarded by the receiver.
BR-Header Mod-3. An FFT Hub that forwards a received message with modifications
(compounding multiple tracks, change of encoding), SHALL create a new IP1/IP2
header, including new payload length, source system fields and a new timestamp.
EXAMPLE
The FFI IP1/IP2 header is defined by the header specification, which is a sequence of 16 bytes.
Interpreted Decimal
Field Value Value Binary Value
Message Type FFI 1 0001
Priority ROUTINE 0 00
Spare N/A 0 0000000000
Destination System
All systems 0 00000000
Destination
All subsystems 0 00000000
Subsystem
14 Jan 2011
Timestamp 1294967295 01001101001011111010000111111111
01:08:15 Z
Message
6th message 5 00000101
Identifier
Packet Segment
4th packet 3 00000011
Number
Uncompressed
Encoding 0 0000
ASCII
Spare N/A 0 00
Spare N/A 0 0000000000
Source System System 150 150 10010110
Source
Subsystem 200 200 11001000
Subsystem
Payload Length 1036 Bytes 1036 0000010000001100
The assembled 16 byte – 128 bits – of the FFI IP1/IP2 header in binary format will be:
0x1000.0000.4D2F.A1FF.0503.0000.96C8.040C
BR-IP Implementation-2. The owner of each FFT Gateway, Hub and Proxy SHALL
configure the (logical) association of the following parameters:
System and Subsystem
The used IP addresses
The system name for use in the UTID
If Domain Name Service (DNS) is enabled in the network, the DNS names
BR-IP Implementation-3. In the IP1 setup, the listening port of the TCP server MAY
be a single port for multiple connections or SHOULD be a dedicated port for each
connection, which will be defined during network design. Set-up of ports is a matter of
network design and coordination SHALL be required between all connecting systems
within the network.
INTENTIONALLY BLANK
Generally, this annex elaborates on the use of the elemental units of the FFI message format. It provides further details, beyond the original publication of the
specification in the NATO Message Catalogue, APP-11(D)(1) [Ref 14]. The user format for the FFI message format in APP-11(D)(1) has to be consulted prior
to the details provided below.
Column A (Element Name) provides a path name to each individual field in XPath notation [Ref 21]. All path names are to be considered relative to the root
node, which is addressed by “/mtf:FriendlyForceInformation/”, followed by the value shown in the table. Note, that the path does not account for addressing
repeatable elements.
Column B (When to Use) gives further clarification on the selection of fields for message preparation. Fields that are marked as “Not to be used” are generally
fields that are included in any MTF by the standards ADatP-3(A) and APP-11(D)(1), but have no application in FFT.
Column C (How to Use) provides more detailed instructions on how a message producer shall use a particular field and some additional conventions.
Column D (How to Process) provides additional instructions on how a particular field shall be processed on receipt.
No. Element Name (xpath notation) When to Use How to Use How to Process
X A B C D
1 ExerciseIdentification/ExerciseNickname Operational decision If an exercise, incorporate element. If not an If not used, assume Operation.
exercise, do not use.
2 ExerciseIdentification/ExerciseIdentifier/ Not to be Used Not applicable (N/A)
ExerciseAdditionalIdentifier
3 ExerciseIdentification/ExerciseIdentifier/ Not to be Used N/A
ExerciseAdditionalNickname
4 OperationCodeword/OperationCodeword Operational decision If an operation, incorporate element. If not an If not used, and ExerciseNickname is
operation, do not use. not used, assume Operation.
5 OperationCodeword/ Not to be Used N/A
PlanOriginatorAndNumber
6 OperationCodeword/OptionNickname Not to be Used N/A
7 OperationCodeword/ Not to be Used N/A
SecondaryOptionNickname
8 MessageIdentifier/ Mandatory Fixed Value of “FFI”. Incorporate value.
MessageTextFormatIdentifier
9 MessageIdentifier/Standard Mandatory Value as given in the FFI message Incorporate value.
specification: fixed value of “APP-11(D)”
10 MessageIdentifier/Version Mandatory Value as given in current FFI message Incorporate value.
specification: fixed value of “1”
11 MessageIdentifier/Originator Mandatory Used to uniquely identify the producer of
message.
Name of node producing the message as
defined by the network authority (may be
system, unit, role name, or other).
If forwarding a message (nothing in
message content is changed), do not
change the Originator.
If a node modifies the message (compound,
split, sanitize, augment, transform, etc.) it
MUST set itself as the originator when
transmitting.
67 TrackInformation/TrackIdentificationData/ Operational decision UnitSymbol SHALL be used if “Affiliation” is If no UnitSymbol is included in the
UnitSymbol other than “Friend”, e.g., “SNGPEVC--------“ track, the default symbol code is
for a neutral civilian vehicle. “SFGP-----------“.
If UnitSymbol cannot be transmitted for other
than “Friend” the whole track SHALL NOT be
transmitted.
68 TrackInformation/TrackIdentificationData/ Operational decision Default value is “APP-6(A)”. Use of any other If value is not “APP-6(A)” confirm
SymbolStandard standard requires coordination. standard in use.
If no value is provided for the Symbol
Standard, the default value APP-6(A)
SHALL be assumed.
69 TrackInformation/TrackIdentificationData/ Operational decision When received, it SHOULD be
UnitShortName displayed with the unit symbol.
70 TrackInformation/TrackIdentificationData/ Operational decision Should insert UIC if available
GroupOfFields/OtherId/
UnitIdentificationCode
72 TrackInformation/TrackIdentificationData/ Operational decision Should be inserted if available.
GroupOfFields/OtherId/IffSifMode1Code
73 TrackInformation/TrackIdentificationData/ Operational decision Should be inserted if available.
GroupOfFields/OtherId/IffSifMode2Code
74 TrackInformation/TrackIdentificationData/ Operational decision Should be inserted if available.
GroupOfFields/OtherId/IffSifMode3Code
75 TrackInformation/TrackIdentificationData/ Operational decision Should be inserted if available.
GroupOfFields/OtherId/IffSifMode5Code
BR-Element Layer-1. A message producer SHALL follow the instructions provided in columns B and C of Table 4.
BR-Element Layer-2. A message consumer SHOULD follow the instructions provided in Table 4 (column D) and Table 5.
BR-Element Layer-3. In case of a conflict between spelling or instructions for field content between this annex and the format as published in APP-
11(D)(1), APP-11(D)(1) is the binding specification and SHALL be obeyed.
This annex provides details on the use of the message structure of the FFI message format. It
provides further details, beyond the original publication of the specification in the NATO
Message Catalogue, APP-11(D)(1) [Ref 14]. The user format for the FFI message format in
APP-11(D)(1) has to be consulted prior to the details provided below.
BR-Message Layer-2. Until the FFI message text format (FFI MTF) has been fully
implemented into all FFTS, the NFFI format MAY be used concurrently for continued
interoperability.
The technical interdependencies for utilisation of both formats, APP-11(D)(1) and D-Doc, are
outlined in ANNEX G.
FFI PAYLOAD
The FFI payload contains the actual FFI data, depending on the message type specified in the
FFI IP1/IP2 header. The FFI payload contains XML data (NFFI or FFI MTF).
BR-Payload-1. For the FFI MTF message type, the payload MUST be compliant with
ADatP-3(A). In particular, the following ADatP-3(A) rules MUST be obeyed:
1. In accordance with the XML-MTF grammar specified in ADatP-3(A), Annex E,
Appendix 1, Paragraph 3, the root element is:
MESSAGE ::= <mtf:message-text-format-name xmlns:mtf=“MESSAGE-NS” […]
</mtf:message-text-format-name> and uses the fixed namespace prefix “mtf:”
2. The mandatory attribute for free text fields to preserve contained whitespaces is
defined in ADatP-3(A), Annex E, Appendix 1, Paragraph 3 as:
FREE-TEXT-FIELD ::= <field-position-name xml:space=’preserve’>FREE-
TEXT</field-position-name> | EMPTY-FIELD
3. Empty fields in XML-MTF cannot always be simply dropped to maintain the
compatibility with the slant delimited representation. More specifically, in the slant
delimited representation the empty fields MAY be filled by a hyphen character (“-“).
The derivation of those hyphenated fields into XML-MTF is defined in ADatP-3(A),
Annex E, Appendix 1, Paragraph 3 as:
EMPTY-FIELD ::= <field-position-name xsi:nil="true"/>.
Note that the slant delimited representation MUST not be used for information
exchange compatible with this standard.
BR-Payload-2. If a received message uses the FFI-MTF message type and does not
comply with above listed ADatP-3(A) specific limitations of XML it SHALL be processed.
BR-Payload-3. If a received message uses the FFI-MTF message type and does not
comply with ADatP-3(A) Structural Relationship Rules, it SHALL be processed.
BR-XML-2. Received XML messages that are not well formed SHALL be ignored.
BR-XML-3. If a received XML message is well formed, but does not conform to the
schema, it MAY be ignored (standard behaviour for XML parsers).
BR-XML-4. In case the originator that reported broken messages can be identified, any
means SHOULD be used to inform the originator to rectify the problem.
BR-XML-5. A message that does not conform to the schema and contains more than
one track MAY be segmented by the receiving system into single tracks and each newly
generated message is validated.
BR-XML-7. The XML file SHALL be produced and transmitted without filling characters
for visual enhancement, such as additional line breaks, and indentation by whitespace
characters or tabulator characters (pretty-print).
BR-XML-9. The Alert field SHALL only be used with the contained value “YES”, if a
condition as described in paragraph D.3 for an alert exists. If no condition for an alert
exists, the field and the included value “NO” SHALL only be included in the message, if
other fields in the set “Operational Status” are required to be transmitted.
The following additional rules SHALL be observed when compounding multiple tracks in a
message:
BR-Compound Tracks-3. The security policy for all tracks in a message SHALL be
the same and SHALL be reflected in the ADatP-3(A) Message Header security marking.
For example, if three tracks are combined into one message and the track security markings
are for example RESTRICTED, CONFIDENTIAL and SECRET, then the message
classification shall be set to SECRET.
For example, if two tracks are compound into one message and the track classification
categories are "REL TO JPN" and "REL JPN, KOR", then the message classification category
would be "REL TO JPN".
BR-Compound Tracks-8. When tracks are compounded into a new message, the
ADatP-3(A) Message Header SHALL reflect the compounding system as originating
system and the actual time.
BR-Compound Tracks-9. The size of the compound message SHALL NOT exceed
the limit of the maximum payload length as specified in the IP1/IP2 header, if transmitted
via IP1 or IP2, i.e. 65535.
Generally the technical business rules are to be derived from the requirements originated from
the operational environment. The business rules complement the aspects already addressed
in this document. Business rules in this standard are expressed in natural language in one of
two forms:
Imperative. An imperative rule is a statement of what shall be under the conditions specified
in the rule. For example, ‘the received information shall be used as static information until
such time the data is updated by a new report.’
Conditional Imperative. A conditional imperative rule is a statement of what shall be, in the
event of another condition being met. For example, ‘if a nation captures data on another
nation’s transport package, then it SHALL transmit that information to the owner of the
transport package.’
In either of these two forms of business rule, the associated action that is required may be
RECOMMENDED rather than essential, which is the norm. In that instance the word ‘SHALL’
is replaced with the word ‘MAY’.
BR-Symbol-1. The use of the symbol codes in accordance with APP-6(A) [Ref 16] or
APP-6(B) [Ref 30] is mandated.
In the FFI MTF, the TrackIdentificationData Element contains two fields to exchange the
relevant symbol for the track: the UnitSymbol field and the SymbolStandard field, as explained
in ANNEX B.
BR-Symbol-2. If no value is provided for the SymbolStandard field, the content of the
UnitSymbol field SHALL be interpreted to be based on APP-6(A).
In APP-6, the Symbol ID code (the content of the UnitSymbol field) is an alphanumeric code
based on a structure that provides the minimum elements required to construct the basic icon
and/or a complete symbol. Note: Current FFI MTF message schema only complies with APP-
6(A) or APP-6(B). Changes to APP-6 may imply changes to the message schema.
Table 6 below shows the basic structure of the Symbol ID code. The exact details and permitted
values of each position are specified in APP-6(A) [Ref 16] and APP-6(B) [Ref 30].
Position Content
1 Coding Scheme
2 Affiliation
3 Battle Dimension
4 Status
5-10 Function ID
11-12 Size/Mobility
13-14 Country Code56
15 Order of Battle
Examples include:
SFGPUCIZ---EUKG representing a United Kingdom Mechanized Infantry Company
belonging to the Ground ORBAT
SFGPUCAT---APLG representing a Polish Armoured Track Unit of size Team (such as a
Tank) belonging to the Ground ORBAT
SFGPUCFRMSEFNLG representing a Netherlands Self-Propelled Multi-Rocket Launcher
Task Force Battalion belonging to the Ground ORBAT
SFFPGSR----DUSG representing a United States SOF Ranger Platoon belonging to the
Ground ORBAT
Affiliation
7
Affiliation refers to the relationship of the reporter to the operational object being represented.
The basic affiliation categories are unknown, friend, neutral, and hostile.
BR-Symbol-4. For FFT purposes, the APP-6 affiliation code SHALL be limited to
values “F” (Friend) and “N” (Neutral) of self-reported units.
Battle Dimension
Battle dimension defines the primary mission area for the operational object within the
battlespace. An object can have a mission area above the earth's surface (i.e., in the air or
outer space), on the earth's surface, or below the earth's surface. If the mission area of an
5 The country codes in the symbol ID code conform to [Ref 2] in accordance with APP-6(A) [Ref 16]
and APP-6(B) [Ref 30].
6 The country code SHALL be interpreted as the country code belonging to the unit that is reported in
the track.
7 The term “affiliation” in this standard is used synonymously with the term “identity”. This standard
uses the definitions of the standard identities as specified in STANAG 1241, Edition 5 [Ref 15].
D-2 Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ANNEX D to ADatP-36
object is on the earth's surface, it can be either on land or sea. The land dimension includes
those mission areas on the land surface or close to the surface (e.g., land mines and
underground shelters), whereas the sea surface dimension includes only those objects whose
mission area is on the sea surface.
BR-Symbol-5. For FFT purposes, the Battle Dimension position of the Symbol ID code
SHALL be filled, but it MAY contain any permitted value from the used symbology
standard.
Status
This code indicates whether the information of the track is current or anticipated/planned.
BR-Symbol-6. For FFTS, the APP-6(A)/APP-6(B) code for the status SHALL be fixed
to “P” (Present).
Unused positions
Any of the other positions of the APP-6(A)/APP-6(B) Symbol ID code could not be filled or only
partially filled. Due to the 15-character fixed length string for the overall Symbol ID code, those
positions have to be filled with a default character.
BR-Symbol-9. The default value to represent Friendly Force objects without explicit
Unit Symbol information in line with APP-6(A)/APP-6(B) SHALL be:
SFGP-----------
BR-Symbol-10. All the FFI reports with an identity different from “Friend” SHALL
include in the message a valid value for the appropriate identity in the UnitSymbol’s
Affiliation field in the UnitSymbol field.
For example, for a civilian vehicle the symbol that shall be used in line with APP-6(A) is:
SNGPEVC--------
BR-UTID-1. UTID MUST be unique among systems operating within an FFT network.
BR-UTID-2. All systems utilising FFTS data SHALL allow processing of the FFT Unique
Terminal ID (UTID) which is defined as the combination of the mandatory FFI System
and TransponderId fields.
BR-UTID-3. In order to make the uniqueness of FFT Terminals easy to manage and
configure, every system owner SHALL ensure that each UTID generated by his system
at no time is used more than once.
BR-UTID-4. Network management authority SHALL coordinate UTIDs for every real
operation or exercise to ensure that every system uses a different system name and
include a comprehensive list of system names in the FFT network design configuration.
ALERT/EMERGENCY
While the intent of the OperationalStatus/Alert field is to be used for Emergencies, it may
erroneously be used by organizations for testing systems, inadvertent use, or misguided use.
In order to ensure appropriate actions are taken in the event of a true emergency, and to
prevent unnecessary actions taken to respond to non-emergency alerts, appropriate Tactics,
Techniques and Procedures (TTPs) need to be put in place between coalition Operations
Centers. This may be as simple as a phone call notification to inform the owning Operations
Center or Data Owner that an Alert has been received and to get positive verification of the
Alert.
BR-Alert-1. Only if an FFT Terminal is in an emergency state, SHALL the Alert field be
set to the value ‘YES’.
BR-Alert-2. If the Alert field is set to ‘YES’, the detailed nature of the emergency may
be explained in the following GENTEXT set, with TrackInformation/
NatureOfEmergency/TextIndicator set to ‘NATURE OF EMERGENCY’ and the
TrackInformation/NatureOfEmergency/FreeText field using the standard brevity texts
as listed in
Table 7.
BR-Alert-3. The network operational authority SHALL specify rules for using the Alert
flag in a Standard Operating Procedure or equivalent operational instruction. This
specification SHALL include conditions, when an Alert MAY be set, which value will be
used in the field NatureOfEmergency/FreeText, who in the network has the
responsibility to set/reset the Alert, which actions will be expected on receipt of an Alert
in combination with the NatureOfEmergency/FreeText field.
TIME REFERENCE
All Friendly Force Tracking Systems and their associated reporting rely on time information.
Timestamps appear in the IP1/IP2 header and the timestamp within the message header and
reported track information. Without proper arrangements for time synchronization there is a risk
of losing or misinterpreting vital information.
BR-Time-2. Systems that are using GPS-derived time SHALL convert all timestamps
to UTC time for the reporting and transmitting of track information and assume that
received track information is UTC based and apply the respective conversion to GPS
time.
FORWARDING TRACKS
BR-Forward Tracks-1. FFT Gateways, Hubs, and Proxies SHALL always
forward/process tracks unless the blue dot fields are invalid (i.e. contain invalid content
according to the standard). If other fields are invalid, those fields MUST be nilled if they
are mandatory, or removed if they are OPTIONAL.
BR-Forward Tracks-2. Gateways, Hubs and Proxies SHALL process and forward
tracks received.
BR-Forward Tracks-5. The sending system MUST NOT assume that previously sent
information has been stored in a receiving system.
BR-Compression-1. All FFI data producers SHALL be able to provide FFI data in an
uncompressed format.
BR-Compression-2. All FFI data consumers SHALL be able to receive FFI data in an
uncompressed format.
BR-Compression-4. There SHALL be agreement between the FFI data producer and
the FFI data consumer on the use of a compression algorithm.
BR-Compression-5. The payload length in the IP1/IP2 header SHALL refer to the
compressed payload length.
DEFINITION
Augmentation is the process to enhance and enrich information (add/modify) of an existing
Tracked Object. The augmented information can add extra information or can add more
accurate and reliable information to the existing information.
Sanitization is the reverse process, to remove selected information from a Tracked Object,
without touching the consistency of the set of minimum data elements as defined by BR-
Minimum FFI-1.
Example
AUGMENTABLE INFORMATION
Augmentation Parameter Types
BR-Augment-5. The following types of augmentation data MAY be included when
augmentation is performed:
DI - Dynamic Information (e.g., Time, Location, Altitude) will change very often.
SD - Semi-Dynamic (e.g., Planned location, Operational Status) will change, but
normally not very often.
SS - Semi-Static Information (e.g., unit short name) can change, but not often.
SI - Static Information (e.g., Nationality, TransponderId) will rarely ever change.
Track Information
Table 9 Track Augmentation Information
To determine which category a track belongs to, there are time periods that must be defined
and agreed upon. All of the time periods shall be part of the network design for any specific
exercise or mission network which will allow for the Situational Awareness (SA) to be the same
for all the systems of the network.
BR-Aging-1. Periods for track aging SHALL be defined for a network by the network
management authority and applied by all systems
BR-Track Age-1. An FFI track that has been received or updated within a specified
time period SHALL be considered active.
BR-Track Age-3. An FFI track that has not been received or updated within a specified
time period is considered inactive.
BR-Track Age-4. An FFI track that has not been received or updated after a specified
time period is considered to be a track that shall be dropped or deleted from an FFTS..
BR-Duplication-2. An FFT Gateway MAY decide to not forward duplicate tracks to its
connected FFT Terminals or to the FFI network.
BR-Duplication-4. An FFT Hub or FFT Proxy SHALL NOT generate duplicate track
updates, if no new messages are received.
Future tracks are tracks that are received with a timestamp that is in the future of the receiving
system time. This could either be due to small deviations of system clocks, wrong time settings
in the sending or receiving system or an error in forwarding/translations.
Like for track aging, a time period must be defined and agreed upon, in which future tracks are
acceptable. The time period shall be part of the network design for any specific exercise or
mission network which will allow for the Situational Awareness (SA) to be the same for all the
systems of the network.
D-10 Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ANNEX D to ADatP-36
BR-Future-1. Periods for future tracks SHALL be defined for a network by the network
management authority and applied by all systems
BR-Future-2. If a track is received with a timestamp that is after the current time of the
receiving role, but within the agreed tolerance window, the track SHALL be processed.
BR-Future-3. If a track is received with a timestamp that is after the current time of the
receiving role, and beyond the agreed tolerance window, the track SHALL be dropped
by any role and not processed.
BR-FFT Hub-2. The FFT Hub MAY be able to apply compression and decompression.
BR-FFT Hub-3. In principle, all messages that are received by the central FFT Hub are
transmitted to all connected FFT Gateways, Proxies or Hubs.
BR-FFT Hub-4. The FFT HUB SHALL prevent FFI messages being sent to those
Gateways, Proxies or Hubs that originally reported the information.
BR-FFT Hub-5. The FFT Hub MAY be able to compound multiple tracks into one
message.
BR-FFT Proxy-1. The FFT Proxy SHALL have the capability to convert from at least
one protocol or standard to FFI MTF or from FFI MTF to at least one other protocol or
standard. The system is NOT REQUIRED to convert in both directions to be considered
an FFT Proxy.
BR-FFT Proxy-3. If the FFT Proxy is converting to FFI MTF, it MAY be able to apply
compression.
BR-FFT Proxy-4. If the FFT Proxy is converting from FFI MTF, it SHALL be able to:
Receive FFI tracks from Gateways, Hubs, and Proxies.
Not send track data back to the originator to prevent data looping.
Produce compliant FFI track messages in at least one other protocol or standard.
BR-FFT Proxy-5. If the FFT Proxy is converting from FFI MTF, it MAY be able to apply
decompression.
BR-FFT Proxy-6. The FFT Proxy SHALL NOT convert data to or from FFI MTF that
violates the standards of either related protocol.
BR-FFT Proxy-7. The FFT Proxy SHOULD conform to the mapping guidance provided
in ANNEX G. If relevant mapping guidance is absent from ANNEX G, systems of
protocols other than FFI MTF SHOULD provide their mapping guidance.
BR-FFT Proxy-8. The FFT Proxy MAY be able to compound multiple tracks into one
message.
TERMINOLOGY
Below is specific terminology used in this annex:
SIP3 – the message exchange protocol defined by this annex.
Data Producer – an application that maintains data about events and is able to answer SIP3
requests.
Data Consumer – an application that makes SIP3 requests for and consumes data about
events.
Delivery Mode – the mechanism by which event messages are delivered from the Data
Producer to the Data Consumer in the Push (Publish/Subscribe) scenario.
Notification – a one-way message sent to indicate that an event has occurred.
Subscriber – an application that sends requests to create, renew, and/or delete
subscriptions. It MAY coincide with the Data Consumer.
Subscription Manager – the Data Producer when it accepts requests to manage the status
of, renew, and/or delete subscriptions.
Due to the historical ties with the FFT Community of Interest, the following terms may be used
as well.
Track consumer – an application that requests tracks from a track server using the SIP3
protocol.
Track server – a server that maintains information about the tracks and is able to answer
SIP3 requests.
Pull mode – a delivery mechanism where a data user sends requests to a server as
individual, synchronous Simple Object Access Protocol (SOAP) messages.
Push Mode - a delivery mechanism where the Data Producer sends event messages to the
Data Consumer as individual, unsolicited, asynchronous SOAP messages.
To correctly interpret the terms and the concepts expressed in this annex the basic knowledge
of the following arguments is required:
XML format and namespaces
Friendly Force Tracking
NFFI-13 Query language
Unless otherwise specified, the namespace prefixes used in this annex MUST be interpreted
as indicated in Table 10:
Prefix Namespace
nffi-q urn:nato:fft:protocols:nffi13:query
sip3 urn:nato:fft:protocols:sip3
sip3-c urn:nato:fft:protocols:sip3:compression
mtf urn:nato:mtf:app-11(d):1:ffi
nffi urn:nato:fft:protocols:nffi13
sip3-f urn:nato:fft:protocols:sip3:reqresfilter
wse http://schemas.xmlsoap.org/ws/2004/08/eventing
SIP3
This Annex presents the Service Interoperability Profile 3 (SIP3) version 1.2 Web-Service
specifications for exchange of XML-based data. Historically, such data is for Friendly Force
Tracking and the NFFI format may be used.
SIP3 ARCHITECTURE
SIP3 specifies a set of Simple Object Access Protocol (SOAP) Web Services that are described
in paragraph E.2.2, “SIP3 API”.
BR-SIP3-1. Any system supporting SIP3 MUST implement the API in conformance
with this specification.
BR-SIP3-2. Web services: SIP3 version 1.2 SHALL conform to the SOAP 1.1 protocol.
BR-SIP3-3. Basic Profile: SIP3 version 1.2 SHALL conform to the WS-I Basic Profile
1.1 [Ref 18].
BR-SIP3-4. Eventing: The SIP3 version 1.2 push functionality SHALL conform to the
WS-Eventing specification [Ref 20].
BR-SIP3-5. Security: SIP3 version 1.2 does not mandate the usage of security/access
control. If security/access control is implemented it SHALL conform to the WS-Security
specification [Ref 17].
The filter is not specified in this specification because it depends on the format of the data,
which is not part of this specification by design.
BR-SIP3-8. At run-time, the Producer and Consumer MUST agree on the format of the
data, on the format of the filter and on the rule for binding the data and the filter
messages in the SIP3 messages.
BR-SIP3-9. The specification for the push mode relies on the WS-Eventing
specification. WS-Eventing introduces a default Filter Dialect but other custom dialects
agreed between the Data Subscriber and Data Provider MAY be used.
8 The name ‘Tracks Push’ is inherited from the track-oriented legacy of SIP3 and may be interpreted as
‘Data Push’
E-4 Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ANNEX E to ADatP-36
Figure 11 SIP3 Service Diagram
SIP3 API
The SIP3 Pull Service and Push Service are specified in this paragraph. It explains how the
services are defined, and how the design has de-coupled message formats and filter
languages used by a particular COI from the service definitions. It also explains how a COI
must ‘re-couple’ the message formats and filter languages used at run-time. The examples in
this paragraph use the NFFI V1.3 message format and the “urn:nato:fft:protocols:nffi13:query”
filter language.
BR-SIP3-10. Other message formats and filter dialects mutually supported by a Data
Producer and Data Consumer MAY be used.
Pull Service
The Request/Response (pull) service consists of a single operation for request/response where
the type of the message and the filter are not explicitly defined. The service requires that the
Data Consumer’s request at run-time states the desired format for the data to be provided in,
and that the Data Provider’s reply states the format of the provided data. Furthermore, the
Consumer’s request must state the ‘dialect’ of the filter. This approach allows the SIP3 design
to be decoupled from the message formats and filter languages used by a particular COI. The
BR-SIP3-13. If none of the algorithms specified in the pull data request is supported by
the Provider, the selected data SHALL be sent in plain text.
The XML elements used to specify the compression are defined in the compressionAlgs.xsd
under the namespace “urn:nato:fft:protocols:sip3:compression”.
</soapenv:Body>
</soapenv:Envelope>
In this example message, the producer is a ‘FFT Track Server’ and can provide data about FFT
tracks. In the header, no compression is requested with the indicated value of ‘NONE’ being a
reserved keyword indicating that data compression is not requested. The keyword ‘NONE’
could be substituted by any keyword the Data Consumer and Data Producer agree to indicate
the compression algorithm such as ‘GZIP’. The message states that the data must be returned
using the NFFI V1.3 message format, and that the tracks must match the rules indicated in the
filter expressed in “urn:nato:fft:protocols:sip3:reqresfilter” format.
E-6 Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ANNEX E to ADatP-36
The XML schema of the pull request message is depicted in Figure 12.
BR-SIP3-17. /SIP3DataRequest/Filter – The Filter is of type xs:any and states the filter
to apply to the data. Only the data that matches the filter MUST be returned by the track
server. The field is mandatory.
BR-SIP3-19. During the payload inclusion in the SIP3 message all the rules dictated
by the payload standard MUST be honoured.
There are cases of requests in which the data Provider cannot return the required information
in a single payload message. Such is the case for a request for FFT information in FFI MTF
format in which the returned FFT data would be marked with multiple security policies and the
merging of such information is excluded by security rules. Because the SIP3 protocol expects
E-7 Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ANNEX E to ADatP-36
a single response message in response to a request and because a response message can
contain only one message payload this case cannot be handled by the SIP3 protocol.
BR-SIP3-20. If for any reason the data Provider cannot compound the data selected
by the data Consumer in a single payload message, the Provider MUST return a
MultiplePayloadNotSupported fault. The fault SIP3FString element MUST be completed
with explicit indication of the fault reason including, where available, information on how
to request valid messages. That means if the message cannot be compounded because
of multiple security policies the SIP3FString MUST contain the list of the security
policies the producer was trying to compound.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<CompressionAlgUsed xmlns="urn:nato:fft:protocols:sip3">NONE</CompressionAlgUsed>
</soapenv:Header>
<soapenv:Body>
<SIP3DataResponse xmlns="urn:nato:fft:protocols:sip3">
<allAvailableDataTransferred>false</allAvailableDataTransferred>
<Message Dialect="urn:nato:fft:protocols:nffi13">
<NFFIMessage xmlns="urn:nato:fft:protocols:nffi13">
<track xmlns:sip3="urn:nato:fft:protocols:sip3" xmlns:nffi="urn:nato:fft:protocols:nffi13">
……..
</track>
</NFFIMessage> </Message>
</SIP3DataResponse>
</soapenv:Body>
</soapenv:Envelope>
The XML schema of the pull response message is depicted in Figure 13. Note that the element
NFFIMessage is not part of the structure.
The following rules describe the normative constraints on the response elements:
BR-SIP3-24. The Consumer MAY drop the received message, if the Dialect attribute
does not match the requested ResponseDialect.
BR-SIP3-26. The Producer (Source) and the Consumer (Sink) MUST follow the WS-
Eventing rules.
WS-Eventing introduces the notion of a “delivery mechanism” which specifies how a Consumer
is to be ‘notified’ by a Producer. A new “delivery mechanism” is specified in this document which
better suits the needs of SIP3 regarding message flow control.
To increase the independency of the SIP3 protocol from a COI-specific message format the
filtering dialect for the WS-Eventing is part of another specification.
The customized messages sections are defined in the SIP3.xsd file under the namespace
“urn:nato:fft:protocols:sip3”.
E.2.2.2.1. Data Compression
The PUSH service may have the capability to compress data matching the filter.
The XML elements used to specify the compression are defined in the compressionAlgs.xsd
under the namespace “urn:nato:fft:protocols:sip3:compression”. The compression protocol will
be discussed later in the paragraph E.2.3.2 “Compression”.
E.2.2.2.2. Delivery mechanisms
BR-SIP3-31. The WS-Eventing defines a single delivery mode, Push Mode, which is
simple asynchronous messaging. This standard delivery mode is not tailored for our
usage inside the FFT COI so it SHOULD NOT be used and supported.
BR-SIP3-32. A new delivery mode that allows improved flow control SHOULD be used.
The new delivery mode is identified by the following namespace:
urn:nato:fft:protocols:sip3:delivery:decoupled_batched
The structure for subscribing with this mode can be found in the file
“SIP3_delivery_decoupled_batched.xsd”.
The flow of messages sent between the Producer and Consumer may be reduced by batching
data into a single message.
BR-SIP3-33. MinTime – of type xs:long and states the Minimum delay in seconds
between two consecutive deliveries. In case messages are generated at higher
frequency than the one expressed by MinTime the producer MUST cache those
messages and MUST send them at the expiration of the minimum delay time. The field
of type long. The field is mandatory.
It is presumed the Provider starts with an empty buffer and MinTime is reset.
BR-SIP3-36. The Producer SHALL store new data in the buffer until the MinTime
expires and ‘flushes’ the buffer content to the Consumer after applying the filter, and
resets the MinTime.
BR-SIP3-37. If the buffer is empty when MinTime expires because nothing of interest
happened since the last flush, the Provider MUST send an (empty) message (without
data) if Heartbeats is true. If Heartbeats is false, the Provider MUST NOT send any
message to the Consumer.
In case the Consumer is not reachable or is temporarily disconnected, the following rules apply:
BR-SIP3-38. If the Consumer is not reachable, the Producer SHALL cache the
undelivered data and SHOULD attempt to send the messages at a configurable
frequency and for a configurable number of attempts.
BR-SIP3-40. In case the size of the cached data exceeds the cache dimension the
Producer MAY remove the oldest data from the cache.
There are cases of subscriptions in which the data Provider cannot forward the required
information in a single payload message. Such is the case for a subscription to FFT information
in FFI MTF format in which the returned FFT data would be marked with multiple security
policies and the merging of such information is excluded by security rules.
BR-SIP3-42. If for any reason the data Provider cannot compound the data selected
by the data consumer in a single payload message, the Provider MUST generate
multiple payloads and send them separately via consecutive deliveries, one for each
generated payload.
<s:Envelope
xmlns:s=http://www.w3.org/2003/05/soap-envelope
xmlns:a=http://www.w3.org/Submission/ws-addressing
xmlns:dmb="urn:nato:fft:protocols:sip3:delivery:decoupled_batched"
xmlns:wse="http://schemas.xmlsoap.org/ws/2004/08/eventing">
<s:Header>
.......
.......
</s:Header>
<s:Body>
<wse:Subscribe>
BR-SIP3-46. //SIP3SubscriptionParameter/MultipleTrackAllowed –
MultipleTrackAllowed is of type xs:boolean and specifies if the event message can
contain multiple data items. If this element is set to “false” the Provider SHOULD send
messages containing only one data item each 9 . If the Producer cannot honour the
MultipleTrackAllowed request because this option is not supported it MUST return an
UnsupportedMultipleTrackAllowed fault stating the default behaviour. The field is
OPTIONAL. The default value “true”.
<s:Envelope
xmlns:s=http://www.w3.org/2003/05/soap-envelope
xmlns:a=http://www.w3.org/Submission/ws-addressing
xmlns:dmb="urn:nato:fft:protocols:sip3:delivery:decoupled_batched"
xmlns:wse="http://schemas.xmlsoap.org/ws/2004/08/eventing">
<s:Header>
.......
.......
</s:Header>
<s:Body>
<wse:Subscribe>
<wse:EndTo>
.......
</wse:EndTo>
<wse:Delivery Mode="urn:nato:fft:protocols:sip3:delivery:decoupled_batched">
.......
.......
</wse:Delivery>
<wse:Filter Dialect="……….">
.......
.......
</wse:Filter>
<SIP3SubscriptionParameter xmlns="urn:nato:fft:protocols:sip3">
<ResponseDialect>urn:nato:fft:protocols:nffi13</ResponseDialect>
<MultipleTrackAllowed>true</MultipleTrackAllowed>
</SIP3SubscriptionParameter>
</wse:Subscribe>
</s:Body>
</s:Envelope>
9 Many of the FFT formats like NFFI 1.3 and FFI MTF allow the possibility to wrap multiple tracks within
a single message. This is optimal for the network and system performance but may be suboptimal
for message processing. Track Consumers may prefer receipt of messages containing only one track
(update).
E-13 Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ANNEX E to ADatP-36
E.2.2.2.4. Filtering dialect
BR-SIP3-47. A Producer MAY support the standard WS-Eventing XPath filtering. Fault
handling is specified in the WS-Eventing specification.
BR-SIP3-49. A Producer MAY support any filter dialect mutually supported by a Data
Producer and Subscriber.
<s:Envelope
xmlns:s=http://www.w3.org/2003/05/soap-envelope
xmlns:a="http://www.w3.org/Submission/ws-addressing"
xmlns:qry="urn:nato:fft:protocols:nffi13:query"
xmlns:wse="http://schemas.xmlsoap.org/ws/2004/08/eventing">
<s:Header>
.......
.......
</s:Header>
<s:Body>
<wse:Subscribe>
<wse:EndTo>
.......
</wse:EndTo>
<wse:Delivery Mode="urn:nato:fft:protocols:sip3:delivery:decoupled_batched">
.......
.......
</wse:Delivery>
.......
<wse:Filter Dialect="urn:nato:fft:protocols:nffi13:query">
<qry:NFFIFilter>
<qry:historyDepth>1</qry:historyDepth>
</qry:NFFIFilter>
</wse:Filter>
.......
</s:Body>
</s:Envelope>
E.2.2.2.5. Consumer
The Consumer (Sink) service supports a one-way SOAP message flow executed in the “fire-
and-forget” mode.
DecoupledTrackPush
BR-SIP3-51. The SOAP message sent from the Provider to the data Consumer
SHOULD be of type SIP3DataResponse.
E.2.2.3.2.1. FilterType
BR-SIP3-53. //FilterType/Dialect (type xs:anyURI) SHOULD be interpreted following
the WS-Eventing rules. It MAY be any URI describing a filter dialect agreed between
the Consumer and the Producer. Common options are:
“http://www.w3.org/TR/1999/REC-xpath-19991116”: (Default value) in such case
the filter type contents can be a sequence from 1 to many XPath predicates.
Any other agreed query language: in such case the filter type MUST contain only
one root element of the filter in the specified format.
E.2.2.3.2.2. DeliveryType
If an unsupported delivery mode is requested, the SIP3 data provider MUST return a
DeliveryModeRequestedUnavailable fault.
BR-SIP3-55. This fault message MUST be sent according to the rules described in
paragraph E.2.2.3.2.4. It SHALL be sent to the [fault endpoint], if present and valid.
Otherwise it SHALL be sent to the [reply endpoint] if present. If neither is present fault
MAY be sent to the [source endpoint].
[faultcode] s12:Sender
[faultstring] wse:InvalidSubscription
[faultactor] none
ADDITIONAL ARRANGEMENTS
SOAP Header
WS-I Basic Profile 1.1 [Ref 18] normative statements provide some guidance also about how
to handle SOAP headers. For example, if a new element is defined for the SOAP header then
all involved parties would have to include, understand and process them.
On the other hand, a SOAP envelope MAY contain SOAP header blocks that are not described
in the wsdl:binding that describes it but MUST contain SOAP header blocks that are described
in the wsdl:binding.
Compression
E.2.3.2.1. Compression approaches
At least two basic approaches are possible for compression in SIP3:
Compression algorithm similar to that implemented by the Agile Delta compression, i.e.,
with the compression applying to the whole message. This mechanism is transparent for
SIP3 and therefore is out of scope of SIP3 definition.
Compression mechanism built-in SIP3 definition.
All compression-related definitions (apart from elements to be used in SOAP message
headers) are defined in a separate schema definition file, i.e., compressionAlgs.xsd,
E-16 Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ANNEX E to ADatP-36
currently part of SIP3 definition and are under the “urn:nato:fft:protocols:sip3:compression”
namespace.
E.2.3.2.2. SIP compression principles
Three basic factors played a role in the SIP3 compression definition:
Compression-related part of the definition should be transparent for the core of SIP3
specifications.
Changes in compression part of the definition (e.g., new compression algorithms, additional
parameters for compression algorithms) should not affect SIP3 specifications.
Usage of compression in SIP3 has to respect limitations following from the WS-I Basic
Profile 1.1 standard.
E.2.3.2.3. Built-in compression rules
The procedure for SIP3 built-in compression mechanism is as follows.
BR-SIP3-59. Compression SHALL only occur if both the consumer and the producer
support the same algorithm(s). Supporting compression is NOT MANDATORY
(functionality level).
There are mainly two kinds of faults, protocol-dependent faults and Producer-internal faults.
From the interoperability point of view, to make it easy for a Consumer to understand the error
and eventually change the query, protocol-dependent faults are standardized. The effort to
generate meaningful Producer-internal faults is left to the Producer’s implementation.
BR-SIP3-61. The SIP3Fault message is a custom fault message defined in the file
errorCodes.xsd that SHALL carry the following two types of information to help the fault
identification:
SIP3FCode – The unique SIP3 fault code.
SIP3FString – A human readable explanation of the fault (The English language
reason element)
Below is an example of a fault message a client may receive in case the producer’s server does
not support the historyDepth specified in the query.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Server</faultcode>
<faultstring>SIP3Fault</faultstring>
<detail>
<SIP3Fault xmlns="urn:nato:fft:protocols:sip3:errors">
<SIP3FCode> UnsupportedFilterHistoryDepth </SIP3FCode>
<SIP3FString> The service provider doesn’t support a historyDepth greater than 5</SIP3FString>
</SIP3Fault>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
BR-SIP3-62. This fault SHALL be sent when a client requests a ResponseDialect that
the service cannot provide.
SIP3FCode UnsupportedResponseDialect
SIP3FString Text explaining the failure; e.g., “The service
provider doesn’t support the requested
ResponseDialect”
SIP3FSupportedDialect List of the supported dialects
E.2.3.4.2. UnsupportedFilterDialect
Related filter parameter: //SIP3DataRequest/Filter@Dialect.
BR-SIP3-63. This fault SHALL be sent when a client specifies a filter dialect that the
service cannot support.
SIP3FCode UnsupportedFilterDialect
SIP3FString Text explaining the failure; e.g., “The service
provider doesn’t support the requested filter dialect”
Please note that to maintain compatibility with the WS-Eventing specification no faults were
added to the WSDL PortTypes definition for the WS-Eventing ports. This does not prevent the
usage of the SIP3Fault message for the SOAP detail field in case of SIP3 related faults.
E.2.3.5.1. UnsupportedResponseDialect
Related subscription element: //SIP3SubscriptionParameter/ResponseDialect.
E.2.3.5.2. UnsupportedFilterDialect
Related filter parameter: //SIP3DataRequest/Filter@Dialect.
BR-SIP3-67. This fault SHALL be sent when a client specifies a filter dialect that the
service cannot support.
SIP3FCode UnsupportedFilterDialect
SIP3FString Text explaining the failure; e.g., “The service provider
doesn’t support the requested filter dialect”
BR-SIP3-68. This fault SHALL be sent when the provider doesn’t support the
MultipleTrackAllowed parameter.
SIP3FCode UnsupportedMultipleTrackAllowed
SIP3FString Text explaining the failure; e.g., “The service provider
doesn’t support the MultipleTrackAllowed parameter. By
default multiple tracks are sent”
Normative “SIP3.xsd”
Normative “SIP3_Definitions.wsdl”
Normative “SIP3_Service_Eventing.wsdl”
Normative “SIP3_delivery_decoupled_batched.xsd”
Normative “errorCodes.xsd”
Normative “SIP3_Service_TracksPush.wsdl”
Normative “SIP3_Service_DecoupledReqRes.wsdl”
INTRODUCTION
SIP3 is a Web services based interface recommended for exchange and access of Friendly
Force Tracking (FFT) data.
SIP3 only describes the web services interface and the protocol used for the communication
but does not mandate either the format of the data nor the way in which the data of interest is
selected. The SIP3 protocols support any XML formatted data and filters that are supported by
both the SIP3 data provider and data consumer. The filtering language is a key element for a
SIP3 enabled service because the filtering language type and expressivity determines the SIP3
data selection functionality.
This section describes the “NFFI_13_Query” filtering language. Despite the fact that it is based
on the NFFI V1.3 message format, the “NFFI_13_Query” filtering language can be successfully
applied to the FFI MTF messages assuming the semantic mapping between the NFFI V1.3
element and the corresponding FFI MTF elements is defined.
For the actual scope the mapping principle exposed in this document at ANNEX G, section G.3
“BACKWARD COMPATIBILITY MAPPING FROM NFFI TO FFI MTF” must be applied to the
NFFI filter language to filter FFI MTF data.
It was intended to select NFFI V1.3 formatted FFT tracks and for this reason it largely uses the
NFFI V1.3 data type and structure in the filter definition. It can be successfully used to filter FFT
tracks represented in other formats, like FFI MTF, assuming knowledge of the semantics of the
FFT elements for the format conversion.
NFFIFilter Element
BR-NFFI Query-3. The NFFIFilter element identifies the basic filter structure that
SHALL be used in the “SIP3 Push” protocol. It is defined in the file “NFFI_13_Query.xsd”
and all its elements are in the namespace “urn:nato:fft:protocols:nffi13:query”.
BR-NFFI Query-4. The NFFIFilter element MAY be used in the subscription message
indicating the “urn:nato:fft:protocols:nffi13:query” as “filter dialect” and including an
NFFIFilter element in the “Filter” element of the subscription request.
It is also the basis for the “ReqResFilter” element used in the “pull” request.
E.3.2.1.1. Filter overview
From a logical point of view, the filter schema contains two kinds of information:
Filtering values: Used to select the tracks with data values matching the filter
(sourceSystem, geoFilter, XPathFilter, period). Those are divided in sections to clearly
separate and identify the values.
Track number limitation: Used to control the number of returned tracks (historyDepth,
maxFrame).
E.3.2.1.2. Filter schema
Figure 15 shows the filter XML schema.
Those applied on the NFFI message of XML-Code 19 will return the NFFI as at XML-Code 20.
<NFFIMessage xmlns="urn:nato:fft:protocols:nffi13">
<track>
<positionalData>
<trackSource>
<sourceSystem>
<system>TBMS</system>
</sourceSystem>
<transponderId>FRATHASIM0</transponderId>
</trackSource>
<dateTime>20070216100407</dateTime>
<coordinates>
<latitude>34.906490</latitude>
<longitude>67.021670</longitude>
</coordinates>
</positionalData>
</track>
</NFFIMessage>
This field is introduced in order to limit the amount of data being transferred e.g. in the case
when the network bandwidth is an important issue.
E.3.2.1.3. How to apply filters
To have a predictable and common result of the track filtering operation between different SIP3
data producer implementations, it is important to define how to apply the filter.
ReqResFilter element
In the “SIP3 Push” scenario the messages are supposed to be published only once after they
are reported, in line with that the NFFIFilter do not offer the selection of the FFT tracks based
on the track report time.
This makes the NFFIFilter filter not suitable for the “SIP3 Pull” scenario where operating on
cached data is required the possibility to select the messages for their reporting time.
The ReqResFilter fill this gap adding to the NFFIFilter structure an element for the time frame
filtering.
BR-NFFI Query-25. The ReqResFilter MUST be used in the “SIP3 Pull” scenario. It is
defined in the file “NFFI_13_ReqResFilter.xsd” and all the elements are in the
namespace “urn:nato:fft:protocols:sip3”.
BR-NFFI Query-30. In case of error during the execution of a track consumer request
on a SIP3 track server, depending on the protocol and on the error type, a fault message
MAY be generated from the server and sent back to the consumer.
BR-NFFI Query-31. The fault handling MUST be executed in accordance with the SIP3
specification used.
Only the fault codes relevant for the filters are defined.
Filter faults
In the Push mode scenario the filter faults are used to inform a track consumer or the Subscriber
that some part of the requested filter options cannot be honoured by the track server because
the filter type is not implemented or the filtering cannot be executed with the given parameter.
BR-NFFI Query-32. In the Push mode scenario in case the filtering or the requested
filter dialect is not supported, the WS-Eventing faults SHOULD be used.
E.3.3.2.2. UnsupportedHistoryDepthFilter
Related filter parameter: /NFFIFilterType/historyDepth
E.3.3.2.3. UnsupportedWildcardFilter
Related filter parameters:
E-34 Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ANNEX E to ADatP-36
/NFFIFilterType/sourceSystem/systemList/country;
/NFFIFilterType/sourceSystem/systemList/system;
/NFFIFilterType/sourceSystem/systemList/subsystem;
/NFFIFilterType/transponderId
E.3.3.2.4. InvalidFilterGeo
Related filter parameter: /NFFIFilterType/geoFilter
BR-NFFI Query-36. The InvalidFilterGeo fault SHALL be thrown when the client
specifies a geo filter with an invalid format (e.g. Invalid point, invalid coordinate, …).
SIP3FCode InvalidFilterGeo
SIP3FString Text explaining the failure
E.3.3.2.5. UnsupportedFilterGeo
Related filter parameter: /NFFIFilterType/geoFilter
BR-NFFI Query-37. The fault UnsupportedFilterGeo SHALL be thrown when the client
specifies a geo filter and the service does not support geo filtering.
SIP3FCode UnsupportedFilterGeo
SIP3FString The service provider doesn’t support geo filtering.
E.3.3.2.6. UnsupportedFilterGeoCircle
Related filter parameter: /NFFIFilterType/geoFilter
E.3.3.2.7. UnsupportedFilterGeoPolygon
Related filter parameter: /NFFIFilterType/geoFilter
E.3.3.2.9. UnsupportedXPathFilter
Related filter parameter: /NFFIFilterType/XPathFilter
E.3.3.2.10. InvalidXPathFilter
Related filter parameter: /NFFIFilterType/XPathFilter
BR-NFFI Query-42. The InvalidXPathFilter fault SHALL be thrown when the client
specifies an invalid XPath filter. For example if the client specifies an XPath expression
which isn’t a PredicatExpr.
SIP3FCode InvalidXPathFilter
SIP3FString The XPath expression isn’t valid.
<xs:sequence>
<xs:element name="longitude" type="nffi:longitudeType"/>
<xs:element name="latitude" type="nffi:latitudeType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="closedPolygon" nillable="false" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="point" minOccurs="3" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="longitude" type="nffi:longitudeType"/>
<xs:element name="latitude" type="nffi:latitudeType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="circle" nillable="false" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="center">
<xs:complexType>
<xs:sequence>
<xs:element name="longitude" type="nffi:longitudeType"/>
<xs:element name="latitude" type="nffi:latitudeType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="radius" type="xs:unsignedLong">
<xs:annotation>
<xs:documentation>Distance from the central point in meters</xs:documentation> </xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="XPathFilter" type="xs:string" nillable="false" minOccurs="0" maxOccurs="unbounded"/> <xs:element
name="maxFrame" nillable="false" minOccurs="0">
<xs:simpleType>
<xs:restriction base="xs:unsignedLong">
<xs:minInclusive value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:sequence>
<xs:element name="country" type="countryType" minOccurs="0"/>
<xs:element name="system" type="systemType" minOccurs="0"/>
<xs:element name="subsystem" type="systemType" minOccurs="0"/> </xs:sequence>
</xs:complexType>
<!--
INTRODUCTION
SIP3 is a Web services based interface recommended for exchange and access of Friendly
Force Tracking (FFT) data. It only describes the web services interface and the protocol used
for the communication but does not mandate either the format of the data or the way in which
the data of interest is selected.
This section explains how to use the SIP3 v1.2 protocol to filter and exchange FFI MTF
formatted messages. In detail it describes:
General message dependent rules.
How to compose valid SIP3 messages using the NFFI_13_Query filter dialect and the FFI
MTF payload.
BR-SIP3 Profile-1. Some of the FFI MTF elements are unqualified (do not belong to
any namespace). For this reason the default namespace MUST NOT be defined for the
FFI MTF elements. As a consequence, the default namespace cannot be declared for
the //SIP3DataResponse/Message/ element and for any of its ancestors or the default
namespace MUST be undeclared before the unqualified elements.
BR-SIP3 Profile-2. The namespace prefix “mtf” MUST be always used to indicate the
"urn:nato:mtf:app-11(d):1:ffi" namespace.
PULL MODE
This section describes:
How to compose valid SIP3 request messages having the filter expressed in the
NFFI_13_Query filter language.
How to compose valid SIP3 response messages containing an FFI MTF data payload.
Request
BR-SIP3 Profile-3. The SIP3 Data Consumer MAY request any response data dialect
pre-agreed with the SIP3 Data Producer.
BR-SIP3 Profile-4. The SIP3 Data Consumer MAY request any filtering language pre-
agreed with the SIP3 Data Producer.
BR-SIP3 Profile-6. The Pull Mode is used mainly to retrieve historical data or to
synchronize SIP3 Track servers.
The SIP3 data request element //sip3:SIP3DataRequest/sip3:filter MUST contain (have
as descendant) the root node of the query message (i.e. the XML element //sip3-
f:ReqResFilter ).
A SIP3 Data consumer can request to receive FFT Tracks in a specific message format. For
the two most common formats the following rules apply:
</soapenv:Body>
</soapenv:Envelope>
Response
BR-SIP3 Profile-12. The Consumer MAY drop the received message, if the Dialect
attribute does not match the requested ResponseDialect.
BR-SIP3 Profile-13. If the returned track message is not compressed the SIP3 data
response element //sip3:SIP3DataResponse/sip3:Message MUST contain (have as
descendant) the root node of the returned track message (i.e. the XML element
//mtf:FriendlyForceInformation). See XML-Code 24 for an example.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<CompressionAlgUsed xmlns="urn:nato:fft:protocols:sip3">NONE</CompressionAlgUsed>
</soapenv:Header>
<soapenv:Body>
<sip3:SIP3DataResponse xmlns:sip3="urn:nato:fft:protocols:sip3">
<sip3:allAvailableDataTransferred>true</ sip3:allAvailableDataTransferred>
<sip3:Message Dialect=”urn:nato:mtf:app-11(d):1:ffi”>
<mtf:FriendlyForceInformation xmlns:mtf="urn:nato:mtf:app-11(d):1:ffi">
<MessageIdentifier>
……..
</MessageIdentifier>
</mtf:FriendlyForceInformation>
</sip3:Message>
</sip3:SIP3DataResponse>
</soapenv:Body>
</soapenv:Envelope>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<CompressionAlgUsed xmlns="urn:nato:fft:protocols:sip3">GZIP</CompressionAlgUsed>
</soapenv:Header>
<soapenv:Body>
<sip3:SIP3DataResponse xmlns:sip3="urn:nato:fft:protocols:sip3">
<sip3:allAvailableDataTransferred>true</ sip3:allAvailableDataTransferred>
<sip3:Message Dialect=”urn:nato:mtf:app-11(d):1:ffi”>
H4SIAAA………………..
</sip3:Message>
</sip3:SIP3DataResponse>
</soapenv:Body>
</soapenv:Envelope>
<mtf:FriendlyForceInformation xmlns:mtf="urn:nato:mtf:app-11(d):1:ffi">
<MessageIdentifier>
……..
</MessageIdentifier>
</mtf:FriendlyForceInformation>
PUSH MODE
This section describes:
How to compose valid SIP3 subscription messages having the filter expressed in the
NFFI_13_Query filter language.
How to compose valid SIP3 response messages containing an FFI MTF data payload.
Subscription Request
BR-SIP3 Profile-16. The SIP3 Data Consumer MAY subscribe using any filtering
language pre-agreed with the SIP3 Subscription Manager.
BR-SIP3 Profile-18. The Push Mode being mainly used to retrieve live data, it MUST
use the “urn:nato:fft:protocols:nffi13:query” query dialect.
A SIP3 Data consumer can subscribe for FFT Tracks in a specific message format. For the two
most common formats the following rules apply:
BR-SIP3 Profile-22. To subscribe to FFT data in NFFI-13 format the value of the
//wse:Subscribe/sip3:SubscriptionParameter/sip3:ResponseDialect element in the
SIP3 subscription MUST have the value “urn:nato:fft:protocols:nffi13”.
<s:Envelope
xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/Submission/ws-addressing"
xmlns:dmb="urn:nato:fft:protocols:sip3:delivery:decoupled_batched"
xmlns:wse="http://schemas.xmlsoap.org/ws/2004/08/eventing"> <s:Header>
.......
.......
</s:Header>
<s:Body>
<wse:Subscribe>
<wse:EndTo>
<a:Address>http://localhost:8080/SubscriptionEnd</a:Address>
</wse:EndTo>
<wse:Delivery Mode="urn:nato:fft:protocols:sip3:delivery:decoupled_batched">
<dmb:MinTime>20</dmb:MinTime>
<dmb:Heartbeats>true</dmb:Heartbeats>
Notification Message
The notification message sent by the SIP3 event source to subscribed receivers is the same
as the “PUSH mode” response message.
BR-SIP3 Profile-23. All the rules and limitations described in this document for the
“PUSH mode” response message MUST be applied to the notification message.
INTENTIONALLY BLANK
SECURITY MARKING
BR-Security-2. The FFI MTF allows detailed security marking of individual data blocks
within the report, so the data SHALL NOT be released into domains with inappropriate
security levels.
BR-Security-5. All information within one message SHALL apply the same security
policy, but MAY have different classification levels within this policy and MAY have
different security categories.
The FFI MTF message allows three levels of Security Marking of FFI data as shown in Figure
17.
LEVEL 1
The “message security marking” is a marking that encompasses the overall security level. It is
contained in the MessageIdentifier element.
BR-Security-6. The message security marking SHALL equate at least to the highest
security level within the message (highest of any track included in the payload).
LEVEL 2
BR-Security-7. This classification provides the overall security classification of the data
of a single track and SHALL be at least at the highest level of the related Blue Dot Data
and Details Data.
LEVEL 3
BR-Security-10. If an augmentation data entry is combined with the Blue Dot Data (the
track is augmented), the track SHALL be classified at the highest level of the two or at
a higher classification as directed by the data owner.
BR-Security-12. If Augmentation Data is combined with Blue Dot Data, the individual
element markings SHALL be maintained.
Blue Dot
Track Classification Classification Details Classification
Blue Dot Data Equal to Blue Dot As assigned by system None
classification owner
Augmentation Data None None Assigned by system
Entry owner
Augmented Track Highest level of Blue As assigned by system As assigned by system
(Blue Dot + Details) Dot or Details or owner owner
higher as directed by
data owner
BR-Security-13. In all instances the security policy, security classification and security
category MAY be selected individually.
INTENTIONALLY BLANK
There is no generally applicable solution for this if not making all the corresponding FFI fields as a mandatory, which would not be acceptable for other reasons10.
The introduction of default values in FFI (as mentioned before) has not been made since it creates interpretation problems.
Statements
<statement1> Normal sequence of statements. <statement2> will be processed after <statement1> is completely processed.
<statement2>
IF <condition1> THEN Regular IF clause. IF <condition1> is met, only <statement1> will be executed. If <condition1> is not met, but
(<statement1>) <condition2> is met, then only <statement2> will be executed. More conditions and statements can sequentially
10 For example, the reasons that were used to make them optional FFI fields without this mapping consideration.
G-1 Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ANNEX G to ADatP-36
[ELSE IF <condition2> THEN be listed. If none of the before listed conditions are met, and an optional OTHERWISE element is included, only
(<statement2>)] <statement3> will be executed.
[OTHERWISE In order to read the nesting correctly, the relevant statement or list of statements is embraced with a bracket.
(<statement3>)]
<target variable>:=<term> Assigns the result of the evaluated <term> to a <target variable>. Implies the existence or generation of the
element and necessary parent elements.
Generate <element> Generates an empty element in the Target structure. If necessary, this is an implied action for any element and
parent element, that is filled with a statement <element>:=<value>
Do not generate <element> Instruction to not generate the expressed <element> in the target structure.
Functions
ABS(<number>) Returns the absolute value of a <number>, a number without signs.
CONCAT(<string1>,…,<string_n>) Returns a string that sequentially combines non-empty <string1> to <string_n>
CONTAINS(<string1>,<string2>) Returns true, if <string2> is a substring of <string1>, otherwise returns false.
FORMAT(<value>,<pattern>) Returns a string, that represents the <value> formatted with the <pattern>. <pattern> can contain
following characters:
<element> contains data Returns the opposite result from the “does not contain data” function.
<element> does not contain data Returns the value true, if the <element> does not exist or contains special values for xml type
double NaN or INF, a XML type string contains an empty string. For ADatP-3ADatP-3(A) MTFs, the
occurrence of the attribute xsi:nil=’true’ is accounted as “does not contain data”.
Operators
<value1>=<value2> Operation returns true, if both <value1> and <value2> are equal, and returns false otherwise. Both
parameters can be variables, fixed values or evaluated terms.
>, >=, <, <= Regular mathematical operators greater than, greater than or equal, less than, less than or equal.
Returns values true or false.
<value1> <> <value2> Operator returns true, if operands are not equal or exactly one operand does not contain data.
Returns false otherwise.
<value1> AND <value2> Regular logical operators to combine logical terms.
<value1> OR <value2>
<value> is valid for <element> Operation returns true, if <value> is a valid content for <element> in terms of XML validity, and
returns false otherwise.
Other Constructs
“string” Quotation marks are used to mark a string constant.
{ text } Textual description of complex functionality.
BR-Mapping-1. If at least one of the blue dot fields in a track of an NFFI message is invalid (according to the NFFI D-document [Ref 11]), the track
SHALL be dropped from the message by the NFFI to FFI MTF Proxy.
The target message has to be created according to the business rules of this specification.
BR-Mapping-2. If a track resulting from the mapping rules contains one or more invalid blue dot fields, the track SHALL be dropped from the message
and not forwarded.
Table 14 provides information on which NFFI source data element value is mapped to which FFI MTF target data elements, and explains specific limitations.
BR-Mapping-3. An NFFI to FFI MTF Proxy SHALL implement all lines as shown in Table 14 if marked as Required for Minimum Implementation (column
D).
BR-Mapping-4. An NFFI to FFI MTF Proxy MAY implement lines as shown in Table 14 not marked as Required for Minimum Implementation (column
D).
BR-Mapping-5. If a target FFI MTF set does not contain any filled fields based on the mapping rules, the set element itself MUST NOT be generated.
Individual lines of Table 14 can be referred to as: BR-Mapping NFFI to FFI-X-Y, where X and Y are the numbers in the first two columns.
X Y A B C D
NFFI FIELDS THAT CANNOT BE FORWARDED TO FFI
EXERCISE IDENTIFICATION
1 0 Target1: …/ExerciseIdentification Generate element, if any of the sub- Generate Target1, if any of its
elements are used. subelements is generated
1 1 Target1: …/ExerciseIdentification/ExerciseNickname No equivalent NFFI element. IF Const1 contains data THEN
X Y A B C D
Const1: System specific value for Exercise Nickname Can be filled with fixed value (Target1:=Const1)
OTHERWISE
(Do not generate Target1)
1 2 Target1: …/ExerciseIdentification/ExerciseIdentifier No equivalent NFFI element. Do not generate Target1 X
OPERATION CODEWORD
2 0 Target1: …/OperationCodeword Generate element, if any of the sub- Generate Target1, if any of its
elements are used. subelements is generated
2 1 Target1: …/OperationCodeword/OperationCodeword No equivalent NFFI element. IF Const1 does not contain data AND
Const2 contains data THEN
Const1: System specific value for Exercise Nickname
Notes:
(Target1:=Const2)
Const2: System specific value for Operation Codeword Can be filled with fixed value, but is
mutually exclusive from Exercise OTHERWISE
Nickname in Exercise Identification (Do not generate Target1)
element
2 2 Target1: …/OperationCodeword/PlanOriginatorAndNumber No equivalent NFFI element. Do not generate Target1 X
2 3 Target1: …/OperationCodeword/OptionNickname No equivalent NFFI element. Do not generate Target1 X
2 4 Target1: …/OperationCodeword/SecondaryOptionNickname No equivalent NFFI element. Do not generate Target1 X
MESSAGE IDENTIFIER
X Y A B C D
and ReferenceTimeOfPublication to
uniquely identify a message
Notes:
1) 1-7 alphanumeric characters
3 6 Target1: …/MessageIdentifier/ReferenceTimeOfPublication/ Generate current value for either month or IF Var1 contains data THEN X
MonthNameAbbreviated time. Values are mutually exclusive. (Target1:=Var1
Target2: …/MessageIdentifier/ReferenceTimeOfPublication/ Do not generate Target2)
DateTimeIso
OTHERWISE
Var1: Current month name in standard English 3-letter
abbreviation (Target2:=Var2
Var2: Current date-time in ISO format Do not generate Target1)
X Y A B C D
Do not generate Target2
)
OTHERWISE
(Target2:=Const1
Do not generate Target1
)
)
3 11 Target1: …/MessageIdentifier/MessageSecurityCategory No equivalent NFFI element for complete If Var1 contains data THEN
Var1: Calculated category of tracks contained in message message. Network specific default value (Target1:=Var1)
REQUIRED.
Const1: Network specific value for category ELSE IF Const1 contains data THEN
Var1 is a placeholder which MAY be
produced by the Proxy system, based on (Target1:=Const1)
received information. It is empty, if the OTHERWISE
most restrictive level of category of
processed tracks cannot be decided. (Do not generate Target1)
Const1 is a REQUIRED network specific
default value for the most restrictive
category that can be processed on the
network or system.
REFERENCE
4 0 Target1: …/Reference and all sub-elements No equivalent NFFI element. Do not generate Target1 X
GEODETIC DATUM
TRACK INFORMATION
6 0 Target1: …/TrackInformation For each NFFI track generate an FFI Generate Target1 X
Track Information.
X Y A B C D
Source1: /NFFIMessage/track
TRACK SOURCE
X Y A B C D
ELSE IF Source1 is valid for Target1
Notes:
THEN
4) No modification of value allowed
(Target1:=Source1)
Characters "a"-"z", "*" and ":" cannot be
used in FFI. Only NFFI subsystem OTHERWISE
names that are valid in FFI SHALL (Drop whole track)
be forwarded due to significance of
field.
Special attention in network management
required to make sure that the
subsystem names are valid in NFFI
and FFI in a mixed network.
7 4 Target1: …/TrackInformation/TrackSource/Nationality/ Simple translation IF Source1 does not contain data THEN
GeographicalEntity
(Do not generate Target1
Notes:
Target2: …/TrackInformation/TrackSource/Nationality/
5) Alternative with enumeration SHALL Do not generate Target2)
NonStandardGeographicalEntity
be used, if value is contained. The ELSE IF Source1 = “XXN” THEN
Source1: …/positionalData/trackSource/sourceSystem/country free text alternative SHALL only be
used, if no equivalent value is (Target1:= “XXE”
available in the enumeration and Do not generate Target2)
value is agreed in the network.
ELSE IF Source1 is valid for Target1
6) The code used to express NATO as THEN
Gateway Nationality is different in the
two standards. (Target1:=Source1
Do not generate Target2)
OTHERWISE
(Target2:=Source1
Do not generate Target1)
7 5 Target1: …/TrackInformation/TrackSource/Reliability Simple translation IF Source1 does not contain data THEN
Source1: …/positionalData/reliability (Do not generate Target1)
ELSE IF Source1 = “COMPLETELY
RELIABLE” THEN
(Target1:=“A”)
ELSE IF Source1 = “USUALLY
RELIABLE” THEN
X Y A B C D
(Target1:=“B”)
ELSE IF Source1 = “FAIRLY RELIABLE”
THEN
(Target1:=“C”)
ELSE IF Source1 = “NOT USUALLY
RELIABLE” THEN
(Target1:=“D”)
ELSE IF Source1 = “UNRELIABLE”
THEN
(Target1:=“E”)
ELSE IF Source1 = “RELIABILITY
CANNOT BE JUDGED” THEN
(Target1:=“F”)
7 6 Target1: …/TrackInformation/TrackSource/Credibility Simple translation IF Source1 does not contain data THEN
Source1: …/positionalData/credibility (Do not generate Target1)
ELSE IF Source1 = “CONFIRMED BY
OTHER SOURCES” THEN
(Target1:=“1”)
ELSE IF Source1 = “PROBABLY TRUE”
THEN
(Target1:=“2”)
ELSE IF Source1 = “POSSIBLY TRUE”
THEN
(Target1:=“3”)
ELSE IF Source1 = “DOUBTFULLY
TRUE” THEN
(Target1:=“4”)
ELSE IF Source1 = “IMPROBABLE”
THEN
(Target1:=“5”)
X Y A B C D
ELSE IF Source1 = “TRUTH CANNOT
BE JUDGED” THEN
(Target1:=“6”)
X Y A B C D
Const1: Network specific value for highest permitted security
classification
8 3 Target1: …/TrackInformation/TrackSecurityLabel/ No equivalent NFFI element for complete { If fields Source1 to Source5 are equal
TrackSecurityCategory track. or empty, evaluate the most restrictive
Source1: …/positionalData/@secPolicyName If Source1 to Source5 are empty or value from Source6 to Source10. Use
contain the same value, evaluate the most this value for Target1, otherwise assign
Source2: …/identificationData/@secPolicyName network specific value from Const1. If
restrictive value from Source6 to
Source3: …/operStatusData/@secPolicyName Source10. If not possible, use Const1 as Const1 does not contain data, do not
network default value. generate Target1 }
Source4 …/deviceSpecificData/@secPolicyName
Source5: …/detailData/@secPolicyName
Source6: …/positionalData/@secCategory
Source7: …/identificationData/@secCategory
Source8: …/operStatusData/@secCategory
Source9 …/deviceSpecificData/@secCategory
Source10: …/detailData/@secCategory
Const1: Network specific value for most restrictive security
category
8 4 Target1: …/TrackInformation/TrackSecurityLabel/ If NFFI security policy is identical to track { Compare policies and existing NATO
BlueDotSecurityClassification/ overall security policy above, then the markings and copy from NFFI. Otherwise
SecurityClassificationExtended positional data classification SHALL be do not generate Target1 }
Target2: …/TrackInformation/TrackSecurityLabel/ used for blue dot classification. Target1 to
be used, whenever possible. Target2
BlueDotSecurityClassification/SecurityClassification
otherwise.
Source1: …/positionalData/@secPolicyName
Source2: …/positionalData/@secClassification Notes:
7) Only if security policies of track and
blue dot match
8 5 Target1: …/TrackInformation/TrackSecurityLabel/ If NFFI security policy is identical to track { Compare policies and copy from NFFI.
BlueDotSecurityCategory overall security policy above, then the Otherwise do not generate Target1 }
Source1: …/positionalData/@secPolicyName positional data security category SHALL
be used for blue dot security category.
Source2: …/positionalData/@secCategory
Notes:
8) Only if security policies of track and
blue dot match
X Y A B C D
8 6 Target1: …/TrackInformation/TrackSecurityLabel/ Complex security rules need to be
DetailsSecurityClassification/ identified and agreed for a particular
SecurityClassificationExtended network prior to mapping this element.
Target2: …/TrackInformation/TrackSecurityLabel/ Target1 to be used, whenever possible.
Target2 otherwise.
DetailsSecurityClassification/SecurityClassification
Source1: …/positionalData/@secPolicyName
Source2: …/identificationData/@secPolicyName
Source3: …/operStatusData/@secPolicyName
Source4 …/deviceSpecificData/@secPolicyName
Source5: …/detailData/@secPolicyName
Source6: …/positionalData/@secClassification
Source7: …/identificationData/@secClassification
Source8: …/operStatusData/@secClassification
Source9 …/deviceSpecificData/@secClassification
Source10: …/detailData/@secClassification
8 7 Target1: …/TrackInformation/TrackSecurityLabel/ Complex security rules need to be
DetailsSecurityCategory identified and agreed for a particular
Source1: …/positionalData/@secPolicyName network prior to mapping this element.
Source2: …/identificationData/@secPolicyName
Source3: …/operStatusData/@secPolicyName
Source4 …/deviceSpecificData/@secPolicyName
Source5: …/detailData/@secPolicyName
Source6: …/positionalData/@secCategory
Source7: …/identificationData/@secCategory
Source8: …/operStatusData/@secCategory
Source9 …/deviceSpecificData/@secCategory
Source10: …/detailData/@secCategory
X Y A B C D
9 1 Target1: …/TrackInformation/TrackPositionalData/Time Simple translation Target1/Year:=SUBSTR(Source1,1,4) X
Source1: …/positionalData/dateTime Target1/Month:=SUBSTR(Source1,5,2)
Notes:
9) All created target elements have to Target1/Day:=SUBSTR(Source1,7,2)
maintain the fixed length as in the Target1/TimeDelimiter:=“T”
NFFI element
Target1/Hour:=SUBSTR(Source1,9,2)
Target1/Minute:=SUBSTR(Source1,11,2)
Target1/Second:=SUBSTR(Source1,13,2
)
Target1/TimeZone:=“Z”
9 2 Target1: …/TrackInformation/TrackPositionalData/Location Simple translation Target1/LatitudeDegrees:= X
Source1: …/positionalData/coordinates/latitude FORMAT(INT(ABS(Source1)),00)
Notes:
Source2: …/positionalData/coordinates/longitude Target1/LatitudeMinutes04DecimalPlace
10) All numerical subelements of Target1
s:= FORMAT(INT(ABS(Source1)-
have a fixed format with 2 or 3
INT(ABS(Source1)) * 60 * 10000) /
integer places. In case the resulting
10000,00.####)
number is shorter than the specified
length, it needs to be filled with IF Source1 >= 0 THEN
leading zeros. (Target1/LatitudinalHemisphere:=“N”)
Latitude 0° will be expressed as Northern OTHERWISE
Hemisphere
(Target1/LatitudinalHemisphere:=“S”)
Longitude 0° will be expressed as Eastern
Hemisphere Target1/Hyphen:=“-”
Target1/LongitudeDegrees:=
FORMAT(INT(ABS(Source2)),000)
Target1/LongitudeMinutes04DecimalPlac
es:= FORMAT(INT(ABS(Source2)-
INT(ABS(Source2)) * 60 * 10000) /
10000,00.####)
IF Source2 >= 0 THEN
(Target1/LongitudinalHemisphere:=“E”)
OTHERWISE
(Target1/LongitudinalHemisphere:=“W”)
X Y A B C D
9 3 Target1: …/TrackInformation/TrackPositionalData/ Attribute twice in NFFI for latitude and IF Source1 does not contain data AND
HorizontalAccuracy longitude. FFI only has one field. Source2 does not contain data THEN
Source1: …/positionalData/coordinates/latitude/@accuracy FFI HorizontalAccuracy will only be (Do not generate Target1)
Source2: …/positionalData/coordinates/longitude/@accuracy produced in combination with a valid OTHERWISE
Location.
(IF Source1 contains data AND
Notes: Source2 does not contain data
11) The less accurate dimension value in THEN
the sources SHALL be used for the (Temp1:=Source1)
target element
ELSE IF Source2 contains data AND
The value in FFI needs to be between 1 Source1 does not contain
and 999 data THEN
(Temp1:=Source2)
ELSE IF Source1 >= Source2 THEN
(Temp1:=Source1)
ELSE IF Source1 < Source2 THEN
(Temp1:=Source2)
IF Temp1 < 1 THEN
(Target1:=1)
ELSE IF Temp1 > 999 THEN
(Target1:=999)
OTHERWISE
(Target1:=ROUND(Temp1))
)
9 4 Target1: …/TrackInformation/TrackPositionalData/Altitude Simple translation. IF Source1 does contain data THEN
Target2: …/TrackInformation/TrackPositionalData/VerticalAccuracy FFI VerticalAccuracy will only be produced (IF Source1 < -400 THEN
in combination with a valid Altitude.
Source1: …/positionalData/coordinates/altitude (Target1:=-400)
Source2: …/positionalData/coordinates/altitude/@accuracy Notes: ELSE IF Source1 > 99999 THEN
12) The value in FFI Altitude needs to be (Target1:=99999)
between -400 and 99999
OTHERWISE
13) The value in FFI VerticalAccuracy
needs to be between 1 and 999 (Target1:=ROUND(Source1))
X Y A B C D
IF Source2 does not contain data
THEN
(Do not generate Target2)
OTHERWISE
(IF Source2 < 1 THEN
(Target2:=1)
ELSE IF Source2 > 999 THEN
(Target2:=999)
OTHERWISE
(Target2:=ROUND(Source2))
)
)
OTHERWISE
(Do not generate Target1
Do not generate Target2
)
10 0 Target1: …/TrackInformation/TrackMovementData Generate element, if any of the sub- Generate Target1, if any of its
elements are used. subelements is generated
10 1 Target1: …/TrackInformation/TrackMovementData/Bearing Round value for Bearing. Replace value IF Source1 contains data THEN
Target2: …/TrackInformation/TrackMovementData/ 360 with 0. For the BearingAccuracy, (IF ROUND(Source1) = 360 THEN
BearingAccuracy divide by 2 and round value.
(Target1:=0)
Source1: …/positionalData/bearing FFI BearingAccuracy will only be
produced in combination with a valid OTHERWISE
Source2: …/positionalData/bearing/@accuracy Bearing. (Target1:=ROUND(Source1))
Notes: IF Source2 contains data THEN
14) NFFI bearing uses real numbers (Target2:=ROUND(Source2 / 2))
between 0 and 360, FFI uses
integers only between 0 and 359 OTHERWISE
(Do not generate Target2)
X Y A B C D
NFFI values 0 and 360 are technically )
identical OTHERWISE
NFFI accuracy uses real numbers (Do not generate Target1
between 0 and 360, FFI uses
integers between 0 and 180 Do not generate Target2)
NFFI accuracy describes the sector of )
uncertainty with the given bearing in
the centre of the uncertainty sector,
while FFI BearingAccuracy uses the
given angle at each side of the
bearing to describe the uncertainty
sector
10 2 Target1: …/TrackInformation/TrackMovementData/Speed For Speed and SpeedAccuracy, take the IF Source1 contains data THEN
rounded values and limit to maximum
Target2: …/TrackInformation/TrackMovementData/SpeedAccuracy (IF ROUND(Source1) > 999 THEN
value 999.
Source1: …/positionalData/speed (Target1/ContextQuantity000999:=
FFI SpeedAccuracy will only be produced 999)
Source2: …/positionalData/speed/@accuracy in combination with a valid Speed.
OTHERWISE
Notes: (Target1/ContextQuantity000999:=
15) NFFI data type uses real numbers ROUND(Source1))
>=0 and values above 999 km/h, FFI
uses integers only between 0 and Target1/
999 UnitOfSpeedVelocityMeasurement:=
“KPH”
FFI unit of measurements is always set to
km per hour IF Source2 contains data THEN
(IF ROUND(Source2) > 999 THEN
(Target2/ContextQuantity000999:=
999)
OTHERWISE
(Target2/ContextQuantity000999:=
ROUND(Source2))
Target2/
UnitOfSpeedVelocityMeasurement:=
“KPH”
)
OTHERWISE
X Y A B C D
(Do not generate Target1)
)
OTHERWISE
(Do not generate Target1
Do not generate Target2
)
10 3 Target1: …/TrackInformation/TrackMovementData/Inclination For FFI Inclination, map rounded values IF Source1 contains data THEN
Target2: …/TrackInformation/TrackMovementData/ from 0 to 360 (excluding 91 to 269) into (IF ROUND(Source1) <= 90 THEN
range -90 to +90.
InclinationAccuracy (Target1:=ROUND(Source1)
For FFI InclinationAccuracy, division by 2
Source1: …/positionalData/inclination IF Source2 contains data THEN
and round value.
Source2: …/positionalData/inclination/@accuracy
FFI InclinationAccuracy will only be (Target2:=ROUND(Source2 / 2))
produced in combination with a valid )
Inclination.
ELSE IF ROUND(Source1) >= 270
Notes: THEN
16) NFFI inclination data type allows real (Target1:=ROUND(Source1) - 360
numbers and values from 0 to 360.
Values from 91 to 269 are IF Source2 contains data THEN
meaningless. (Target2:=ROUND(Source2 / 2))
17) NFFI inclination values 0 and 360 are )
technically identical and translated to
OTHERWISE
value 0 in FFI.
(Do not generate Target1
18) NFFI accuracy uses real numbers
between 0 and 360, FFI uses Do not generate Target2
integers between 0 and 180 )
19) NFFI accuracy describes the sector )
of uncertainty with the given
inclination in the centre of the OTHERWISE
uncertainty sector, while FFI uses the (Do not generate Target1
given angle at each side of the
inclination to describe the uncertainty Do not generate Target2
sector. )
X Y A B C D
TRACK PLANNED LOCATION
11 0 Target1: …/TrackInformation/TrackPlannedLocation and all sub- No equivalent NFFI element. Do not generate Target1 X
elements
12 0 Target1: …/OperationCodeword Generate element, if any of the sub- Generate Target1, if any of its
elements are used. subelements is generated
12 1 Target1: …/TrackInformation/TrackIdentificationData/UnitSymbol Copy from NFFI IF Source1 contains data THEN
Target2: …/TrackInformation/TrackIdentificationData/ (Target1:=Source1
Notes:
SymbolStandard
20) NFFI standard is APP-6(A) as Target2:=”APP-6(A)”
Source1: …/identificationData/unitSymbol symbol standard )
OTHERWISE
(Do not generate Target1
Do not generate Target2
)
12 2 Target1: …/TrackInformation/TrackIdentificationData/ Copy from NFFI, but consider prohibited IF Source1 contains data THEN
UnitShortName characters in FFI (Step1:=REPLACE(Source2,”:”,””)
Source1: …/identificationData/unitSymbol Step2:=REPLACE(Step1,”*”,””)
Notes:
Source2: …/identificationData/unitShortName 21) Characters “a”-“z”, “*” and “:” cannot Target1:=REPLACE(Step2,”[a-z]”,”[A-
be used in FFI Z]”)
OTHERWISE
(Do not generate Target1)
12 3 Target1: …/TrackInformation/TrackIdentificationData/ No equivalent NFFI element. Do not generate Target1 through Target9 X
GroupOfFields/OtherId/UnitIdentificationCodeUic
Target2: …/TrackInformation/TrackIdentificationData/
GroupOfFields/OtherId/IffSifMode1Code
Target3: …/TrackInformation/TrackIdentificationData/
GroupOfFields/OtherId/IffSifMode2Code
X Y A B C D
Target4: …/TrackInformation/TrackIdentificationData/
GroupOfFields/OtherId/IffSifMode3Code
Target5: …/TrackInformation/TrackIdentificationData/
GroupOfFields/OtherId/IffSifMode5Code
Target6: …/TrackInformation/TrackIdentificationData/
GroupOfFields/OtherId/IffSifModeSCode
Target7: …/TrackInformation/TrackIdentificationData/
GroupOfFields/OtherId/UnitReferenceNumberVmf
Target8: …/TrackInformation/TrackIdentificationData/
GroupOfFields/OtherId/DataLinkTrackNumber
Target9: …/TrackInformation/TrackIdentificationData/
GroupOfFields/OtherId/ObjectItemId
OPERATIONAL STATUS
13 0 Target1: …/TrackInformation/OperationalStatus Generate element, if any of the sub- Generate Target1, if any of its X
elements are used. subelements is generated
13 1 Target1: …/TrackInformation/OperationalStatus/Alert Simple translation IF Source1 = true OR Source1 = 1 THEN X
Source1: …/deviceSpecificData/alert (Target1:= “YES”)
Source2: …/operStatusData/footprint ELSE IF Source1 does not contain data
AND
Source3: …/operStatusData/strength
(Source2 contains data OR
Source4: …/operStatusData/statusCode Source3 contains data OR
Source4 contains data) THEN
(Target1:= “NO”)
OTHERWISE
(Do not generate Target1)
13 2 Target1: …/TrackInformation/OperationalStatus/Footprint Simple translation Step1:=ROUND(Source1)
Source1: …/operStatusData/footprint IF Step1>0 AND Step1<= 99999 THEN
Notes:
22) NFFI data type allows real numbers (Target1:=Step1)
and values from 0 to unlimited ELSE IF Step1>99999 THEN
FFI allows integers only between 1 and (Target1:=99999)
99999
OTHERWISE
X Y A B C D
(Do not generate Target1)
13 3 Target1: …/TrackInformation/OperationalStatus/Strength Simple translation IF Source1>0 AND Source1<= 9999
Source1: …/operStatusData/strength THEN
Notes:
(Target1:= Source1)
23) NFFI strength data type allows 0 to
65535 ELSE IF Source1>9999 THEN
24) FFI Strength data type only numbers (Target1:=9999)
between 1 and 9999 OTHERWISE
(Do not generate Target1)
13 4 Target1: …/TrackInformation/OperationalStatus/PersonnelStrength No equivalent NFFI element. Do not generate Target1 X
13 5 Target1: …/TrackInformation/OperationalStatus/Status Simple translation, with exception of two IF Source1=”OPERATIONAL” THEN
Source1: …/operStatusData/statusCode NFFI codes (Target1=1)
Notes: ELSE IF Source1=”SUBSTANTIALLY
25) Less detail due to merging values OPERATIONAL” THEN
into one code and dropping explicit (Target1=2)
value “NOT KNOWN”
ELSE IF Source1=”MARGINALLY
OPERATIONAL” THEN
(Target1=3)
ELSE IF Source1=”TEMPORARILY NOT
OPERATIONAL” or Source1=“NOT
OPERATIONAL” THEN
(Target1=4)
OTHERWISE
(Do not generate Target1)
NATURE OF EMERGENCY
14 0 Target1: …/TrackInformation/NatureOfEmergency and all sub- No equivalent NFFI element Do not generate Target1 X
elements
X Y A B C D
DETAIL DATA
15 0 Target1: …/TrackInformation/DetailData Generate element, if any of the sub- Generate Target1, if any of its
elements are used. subelements is generated
15 1 Target1: …/TrackInformation/DetailData/TextIndicator Fixed value "DETAIL DATA" for FFI IF { any of the iterations of Source1
TextIndicator, if set is used. Concatenate contains legal characters for Target2 }
Target2: …/TrackInformation/DetailData/FreeText
non-empty NFFI remarks iterations and THEN
Source1: …/deviceSpecificData/remarks replace prohibited characters and include (Target2:= { Concatenate non-empty
in FFI FreeText.
iterations of Source1 and separate by a
line break character. Replace prohibited
Notes:
characters by a legal replacement
26) Remarks in NFFI can be empty.
character. If a colon is the last character,
27) FFI FreeText SHALL NOT be empty. add a space character after the colon. }
28) The use of double slant character “//” Target1:=“DETAIL DATA”
is not allowed and the use of a colon
)
“:’ is not allowed as the final
character. The combination of “://” is OTHERWISE
allowed. (Do not generate Target1
29) ADatP-3(A) limits permitted Do not generate Target2
characters for the FreeText element.
)
30) NFFI remarks can have up to 4
iterations
OTHER SETS
BR-Mapping-6. If at least one of the blue dot fields of a track in a FFI MTF message are invalid according to the rules in this standard, the track SHALL
be dropped by the FFI MTF to NFFI Proxy.
The target message has to be created according to the business rules of the Interim NFFI Standard for Interoperability of FTS [Ref 11].
BR-Mapping-7. If a track resulting from the mapping rules contains at least one blue dot field that is invalid according to the NFFI D-document [Ref 11],
the track SHALL be dropped from the message and not forwarded.
Table 15 provides information on which FFI MTF source data element value is mapped to which NFFI target data element, and explains specific limitations.
BR-Mapping-8. An FFI MTF to NFFI Proxy SHALL implement all lines as shown in the Table 15 if marked as Required for Minimum Implementation
(column D).
BR-Mapping-9. An FFI MTF to NFFI Proxy MAY implement lines as shown in Table 15 not marked as Required for Minimum Implementation (column
D).
Individual lines of Table 15 can be referred to as BR-Mapping FFI to NFFI-X-Y, where X and Y are the numbers in the first two columns.
0 1 Source1: …/ExerciseIdentification element and all sub- No equivalent NFFI element Drop Source1 information X
elements
0 2 Source1: …/OperationCodeword element and all sub-elements No equivalent NFFI element Drop Source1 information X
0 3 Source1: …/MessageIdentifier/Originator No equivalent NFFI element Drop Source1 information X
1 1 Source1: …/MessageIdentifier/MessageTextFormatIdentifier This mapping only applies, if FFI IF Source1 <> “FFI” THEN X
MessageTextFormatIdentifier = FFI,
( { Drop message } )
otherwise stop processing.
1 2 Source1: …/MessageIdentifier/Standard This mapping only applies, if FFI Standard IF Source1 <> “APP-11(D)” THEN X
= APP-11(D), otherwise stop processing. ( { Drop message } )
1 3 Source1: …/MessageIdentifier/Version This mapping only applies, if FFI Version IF Source1 <> “1” THEN X
= 1, otherwise stop processing.
( { Drop message } )
1 4 Source1: …/GeodeticDatum/GeodeticDatum This mapping only applies, if FFI IF Source1 <> “WGE” THEN X
GeodeticDatum = WGE, otherwise stop
( { Drop message } )
processing.
1 5 Source1: …/GeodeticDatum/NationalGridSystemCoordinates This mapping only applies, if FFI IF Source1 contains data THEN X
NationalGridSystemCoordinates is empty,
( { Drop message } )
otherwise stop processing.
positionalData SECTION
identificationData SECTION
4 0 Target1: …/identificationData Generate element, if any of the sub- Generate Target1, if any of its subelements is
elements are used. generated
4 1 Target1: …/identificationData/@secPolicyName Only generate these attributes, if any of IF Source4 contains data AND
the other elements of this section is Source4 is valid for Target2 THEN
Target2: …/identificationData/@secClassification
generated. (Target1:=Source1
Target3: …/identificationData/@secCategory
For the policy use FFI Target2:=Source4
Source1: …/TrackInformation/TrackSecurityLabel/ TrackSecurityPolicy.
TrackSecurityPolicy IF Source7 contains data THEN
For the classification use FFI
Source2: …/TrackInformation/TrackSecurityLabel/ DetailsSecurityClassification, if available, (Target3:=Source7)
TrackSecurityClassification/ otherwise use FFI )
SecurityClassificationExtended TrackSecurityClassification.
ELSE IF Source5 contains data AND
Source3: …/TrackInformation/TrackSecurityLabel/ For the category use the SecurityCategory Source5 is valid for Target2 THEN
TrackSecurityClassification/SecurityClassification that is related to the above selected
classification element (i.e. Track Security (Target1:=Source1
Source4: …/TrackInformation/TrackSecurityLabel/
DetailsSecurityClassification/ or Track Details Security). Target2:=Source5
SecurityClassificationExtended IF Source7 contains data THEN
Notes:
Source5: …/TrackInformation/TrackSecurityLabel/ 44) Whether security attributes are used (Target3:=Source7)
DetailsSecurityClassification/SecurityClassification in the NFFI network is an operational
)
Source6: …/TrackInformation/TrackSecurityLabel/ decision. Security labels are not
TrackSecurityCategory mandatory in NFFI, but will be ELSE IF Source2 contains data AND
included in any FFI message. If Source2 is valid for Target2 THEN
Source7: …/TrackInformation/TrackSecurityLabel/ implemented at all, the forwarding of
DetailsSecurityCategory (Target1:=Source1
labels SHOULD be configurable.
Target2:=Source2
If the available classification marking is
longer than 30 characters, drop all IF Source6 contains data THEN
three security related attributes, (Target3:=Source6)
because a modification of the value
by truncation is not acceptable. )
11
NFFI unitShortName = Translation of 2nd character in Symbol-ID with APP-6(A) [Ref 16], Table B-I values (uppercase only and space characters removed to comply with
NFFI and FFI syntax): P: PENDING; U: UNKNOWN; A: ASSUMEDFRIEND; F: FRIEND; N: NEUTRAL; S: SUSPECT; H: HOSTILE; J: JOKER; K: FAKER; O:
NONESPECIFIED; Any other character: UNKNOWN.
G-34 Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ANNEX G to ADatP-36
operStatusData SECTION
5 0 Target1: …/operStatusData Generate element, if any of the sub- Generate Target1, if any of its subelements is
elements are used. generated
5 1 Target1: …/operStatusData/@secPolicyName Only generate these attributes, if any of IF Source4 contains data AND
Target2: …/operStatusData/@secClassification the other elements of this section is Source4 is valid for Target2 THEN
generated.
Target3: …/operStatusData/@secCategory (Target1:=Source1
For the policy use FFI
Source1: …/TrackInformation/TrackSecurityLabel/ Target2:=Source4
TrackSecurityPolicy.
TrackSecurityPolicy IF Source7 contains data THEN
For the classification use FFI
Source2: …/TrackInformation/TrackSecurityLabel/ DetailsSecurityClassification, if available, (Target3:=Source7)
TrackSecurityClassification/ otherwise use FFI )
SecurityClassificationExtended TrackSecurityClassification.
ELSE IF Source5 contains data AND
Source3: …/TrackInformation/TrackSecurityLabel/ For the category use the SecurityCategory Source5 is valid for Target2 THEN
TrackSecurityClassification/SecurityClassification that is related to the above selected
(Target1:=Source1
deviceSpecificData SECTION
6 0 Target1: …/deviceSpecificData Generate element, if any of the sub- Generate Target1, if any of its subelements is
elements are used. generated
6 1 Target1: …/operStatusData/@secPolicyName Only generate these attributes, if any of IF Source4 contains data AND
Target2: …/operStatusData/@secClassification the other elements of this section is Source4 is valid for Target2 THEN
generated.
Target3: …/operStatusData/@secCategory (Target1:=Source1
For the policy use FFI
Source1: …/TrackInformation/TrackSecurityLabel/ Target2:=Source4
TrackSecurityPolicy.
TrackSecurityPolicy IF Source7 contains data THEN
For the classification use FFI
Source2: …/TrackInformation/TrackSecurityLabel/ DetailsSecurityClassification, if available, (Target3:=Source7)
TrackSecurityClassification/ otherwise use FFI )
SecurityClassificationExtended TrackSecurityClassification.
ELSE IF Source5 contains data AND
Source3: …/TrackInformation/TrackSecurityLabel/ For the category use the SecurityCategory Source5 is valid for Target2 THEN
TrackSecurityClassification/SecurityClassification that is related to the above selected
classification element (i.e. Track Security (Target1:=Source1
Source4: …/TrackInformation/TrackSecurityLabel/
DetailsSecurityClassification/ or Track Details Security). Target2:=Source5
SecurityClassificationExtended IF Source7 contains data THEN
Notes:
Source5: …/TrackInformation/TrackSecurityLabel/ 51) Whether security attributes are used (Target3:=Source7)
DetailsSecurityClassification/SecurityClassification in the NFFI network is an operational
)
Source6: …/TrackInformation/TrackSecurityLabel/ decision. Security labels are not
TrackSecurityCategory mandatory in NFFI, but will be ELSE IF Source2 contains data AND
included in any FFI message. If Source2 is valid for Target2 THEN
Source7: …/TrackInformation/TrackSecurityLabel/ implemented at all, the forwarding of
DetailsSecurityCategory (Target1:=Source1
labels SHOULD be configurable.
Target2:=Source2
52) If the available classification marking
is longer than 30 characters, drop all IF Source6 contains data THEN
detailData SECTION
LINK 16 MAPPING
For mapping of FFI MTF to Link 16, refer to ADatP-37, NATO Standard “Services to Forward Friendly Force Information to Weapon Delivery Assets”.
INTENTIONALLY BLANK
INTRODUCTION
This annex contains a WSMP profile for the Friendly Force Tracking (FFT) Community of
Interest (CoI) to exchange ADatP-36(A) messages; it is an application of the STANAG 5644
specification [Ref 22] for the exchange of FFI MTF messages.
This profile provides a specification for the exchange of FFT tracks in the NFFI 1.3 or FFI -MTF
format, using the WSMP protocol. The ADatP-36 or NFFI 1.3 messages containing the tracks
will be generically referenced in this document as “FFT messages”.
AUDIENCE
The target audience for this profile is the community of software developers who are:
NAMESPACES
Below are the namespaces that are used in this profile.
Abbreviation Namespace
cm urn:nato:stanag:4774:confidentialitymetadatalabel:1:0
dc http://purl.org/dc/elements/1.1/
dcterms http://purl.org/dc/terms/
fft-q urn:nato:fft:filter:1:0
mb urn:nato:stanag:4778:bindinginformation:1:0
mtf urn:nato:mtf:app-11(d):1:ffi
ncms urn:nato:stanag:5636:A:1:elements
nffi urn:nato:fft:protocols:nffi13
nffi-q urn:nato:fft:protocols:nffi13:query
sip3-f urn:nato:fft:protocols:sip3
soap12 http://www.w3.org/2003/05/soap-envelope
soapenc http://www.w3.org/2003/05/soap-encoding
wsa http://www.w3.org/2005/08/addressing
H-1
Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to IP
ANNEX H to ADatP-36
wsaw http://www.w3.org/2006/02/addressing/wsdl
wsdl http://schemas.xmlsoap.org/wsdl/
wsmp urn:nato:stanag:5644:wsmp:1:3
wsmp-f urn:nato:stanag:5644:wsmp:1:3:fault
wsmp-r urn:nato:stanag:5644:wsmp:1:3:resources
wsmp-s urn:nato:stanag:5644:wsmp:1:3:soap:services
wsmp-sp urn:nato:stanag:5644:wsmp:1:3:soap:parameters
wsn-b http://docs.oasis-open.org/wsn/b-2
wsn-bw http://docs.oasis-open.org/wsn/bw-2
wsn-t http://docs.oasis-open.org/wsn/t-1
wsoap12 http://schemas.xmlsoap.org/wsdl/soap12/
wsrf-bf http://docs.oasis-open.org/wsrf/bf-2
wsrf-r http://docs.oasis-open.org/wsrf/r-2
wsrf-rp http://docs.oasis-open.org/wsrf/rp-2
wsrf-rpw http://docs.oasis-open.org/wsrf/rpw-2
wsrf-rw http://docs.oasis-open.org/wsrf/rw-2
xml http://www.w3.org/XML/1998/namespace
xsd http://www.w3.org/2001/XMLSchema
xsi http://www.w3.org/2001/XMLSchema-instance
GOALS
Profile the usage of WSMP for the FFT CoI.
Provide business rules for the exchange of FFT CoI messages.
ADDRESSED REQUIREMENTS
In order to meet the described goals, the WSMP profile shall explicitly address the following
requirements:
Identify the required Message Exchange Patterns (MEP).
Specify how to transport ADatP-36(A)(2) messages using the WSMP protocol.
Identify FFT CoI filtering languages and specify how to use them in conjunction with WSMP
to filter FFT data.
H-2
Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to IP
ANNEX H to ADatP-36
NON-GOALS
The following goals are out of scope of this annex:
To define the format of message payloads: the format and the business rules for the ADatP-
36(A)(2) messages are described in ANNEX B and ANNEX C.
To define the WSMP standard.
To define and/or profile the messaging protocols.
To define the message and protocol security aspects.
This section defines how to use WSMP (ADatP-5644) [Ref 22] within the FFT Community of
Interest (CoI). The requirements in this section have no impact on the WSMP standard but
define the WSMP CoI profile for FFT. In line with requirement R-WSMP-B-2 of ADatP-5644,
contradicting requirements between ADatP-5644, and the WSMP FFT CoI Profile, are to be
treated as follows:
The ADatP-5644 (WSMP) core requirements have precedence over any WSMP
Message Exchange Profile (MEP).
The WSMP Message Exchange Profile (MEP) requirements have precedence over this
CoI profile.
BR-WSMP-1. The WSMP FFT Profile SHALL be identified with the URI:
“urn:nato:stanag:5644:wsmp:1:3:profiles:coi:ffi:1:5”
This URI will be used in the wsmp-r:WSMPProfile WS-Resource message according to the
WSMP requirements.
BR-WSMP-2. A WSMP FFT System SHALL support the “WSMP Message Exchange
Profile – SOAP 1.2 Profile v1.0” defined in Annex B of ADatP-5644.
WS-TOPIC REQUIREMENTS
Using WSMP, information must be published on a topic (WS-Topic). Topics can be organised
hierarchically into one or more trees of topics. These topics are described within a namespace
(Topic-Namespace). During a deployment, multiple of these topic trees can coexist, defined
within one or more namespaces. The network management authority provides all FFT System
with the documents that describe all topic trees relevant for the mission. The FFT Systems
supported by the network management authority derive from the topic trees which topic(s) are
to be used for exchanging the FFT messages.
H-3
Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to IP
ANNEX H to ADatP-36
BR-WSMP-3. A WSMP FFT Provider SHALL publish the FFT messages on the correct
topics from the topic trees provided by the network management authority.
In some cases, a WSMP FFT Provider may be unable to determine the topic on which to publish
a specific FFT message. This could occur when information is provided using IP1/IP2 or SIP3
protocols to a Hub or Proxy supporting the exchange using WMSP. The network management
authority also specifies a “default Topic” from the provided topic trees, to be used in these
cases.
BR-WSMP-4. A WSMP FFT Provider SHALL publish FFT messages using the ‘default
Topic’ provided by the network management authority when no other Topic could be
determined.
Following the ADatP-5644 specification, a WSMP FFT Receiver will request the FFT data
dialect supported from the WSMP FFT provider using the webservice address of the WSMP
FFT Provider. Following the ADatP-5644 specification, a WSMP FFT Provider will expose all
the FFT data dialects for the message formats that it supports.
FFT Message Binding
BR-WSMP-Data-2. A WSMP FFT Provider SHALL include the FFT Message as a child
element of the //wsmp:WSMPMsg/wsmp:Update/wsmp:Data element in all responses.
In some cases payload information with different charateristics (e.g. topic and/or security
labelling) can be separated, into multiple update operation (wsmp:Update elements) of the
WSMP message (wsmp:WSMPMsg), each one containing a different payload in its wsmp:Data
child-element.
METADATA REQUIREMENTS
The WSMP specification defines two places to provide metadata for the content of a WSMP-
message. At the message level using the //wsmp:WSMPMsg/wsmp:MetadataBinding element,
H-4
Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to IP
ANNEX H to ADatP-36
and at the operation level, inside a CRUD-Command (Create, Read, Update or Delete). This
section defines how these elements are used by the WSMP FFT Profile.
The marking on the FFT message is mandatory for the FFI message and is optional in an NFFI
1.3 message. To support interoperable information exchange of FFT messages via WSMP, the
marking information (contained in FFT messages) are to be converted to STANAG 5636 (that
subsume the security metadata standard STANAG 4774 [Ref 24]) confidentiality labels. This
Annex specifies how to convert from FFT security marking elements to STANAG 4774
confidentiality labels.
The FFT messages exchanged via WSMP have an associated confidentiality label. The binding
specification for binding confidentiality metadata to XML data within a WSMP message is
defined in ADatP-4778.2 [Ref 29]. The binding of STANAG 4774 confidentiality labels to FFT
messages exchanged via WSMP includes additional constraints over ADatP-4778.2 (included
as requirements in this Annex).
To support interoperability with security labels from multiple policies, it is recommended that
security policies are described in Open XML Security Policy Information File (SPIF) format [Ref
23]. A SPIF describes all the allowable values within a security policy and the relationships
between them. A SPIF can also include information that defines how the allowable values
should be rendered as a security marking. A SPIF can include information for rendering in
different languages. A SPIF can include equivalent mappings to different security policies.
H-5
Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to IP
ANNEX H to ADatP-36
The Security Authority governing the Mission Network may require the protection of the integrity
of FFT messages by a digital signature or a hashed message authentication code.
When a WSMP FFT Provider has to convert the security markings of an FFT Message, the
preferred procedure is described here:
1) Transform the “FFT message security marking” (that encompasses the overall security
level) contained in the MessageIdentifier element along with other FFT XML metadata to
a FORMETS Discovery Metadata Specification (FDMS) Version 2.0 metadata card [Ref
32].
2) Transform the FDMS Version 2.0 metadata card to a NATO Discovery Metadata
Specification (NDMS) Version 3.0 metadata card [Ref 33].
3) Transform the NDMS Version 3.0 metadata card to a STANAG 4778 [Ref 25] Detached
BDO (that contains the transformation of the NDMS-specific security marking elements to
the STANAG 4774 confidentiality metadata label elements) (see [Ref 9]). This
transformation results in a STANAG 4778 Detached BDO mb:BindingInformation XML
element.
In case a WSMP FFT Provider has to send FFT tracks with different classifications or
categories, as a result of a Read operation or because of an active subscription, these may be
divided in different WSMP messages, each one containing only tracks with the same
classification or category.
H-6
Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to IP
ANNEX H to ADatP-36
Example
The example below illustrates a single ADatP-36(A)(2) message contained within the WSMP message with the confidentiality labelling requirements applied.
38 </mb:Metadata>
39 <mb:Metadata>
40 <ncms:Creator ncms:type="organiation">FFTS VERIFICATION</ncms:Creator>
41 </mb:Metadata>
42 <mb:Metadata>
43 <ncms:DateCreated>2016-06-15</ncms:DateCreated>
44 </mb:Metadata>
45 <mb:Metadata>
46 <ncms:Identifier>0520000</ncms:Identifier>
47 </mb:Metadata>
48 <mb:Metadata>
49 <ncms:Publisher ncms:type="organiation">FFTS VERIFICATION</ncms:Publisher>
50 </mb:Metadata>
51 <mb:Metadata>
52 <ncms:Title>Track Update 0520000</ncms:Title>
53 </mb:Metadata>
54 <mb:DataReference URI="">
55 <ds:Transforms>
56 <ds:Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
57 <ds:XPath>//wsmp:WsmpMsg</ds:XPath>
58 </ds:Transform>
59 </ds:Transforms>
60 </mb:DataReference>
61 </mb:MetadataBinding>
62 <mb:MetadataBinding>
63 <mb:Metadata>
64 <cm:originatorConfidentialityLabel>
65 <cm:ConfidentialityInformation>
66 <cm:PolicyIdentifier>ACME</cm:PolicyIdentifier>
67 <cm:Classification>UNCLASSIFIED</cm:Classification>
68 <cm:Category TagName="Releasable To" Type="PERMISSIVE">
69 <cm:GenericValue>FIN</cm:GenericValue>
70 </cm:Category>
71 </cm:ConfidentialityInformation>
72 <cm:CreationDateTime>2016-11-20T12:30:00Z</cm:CreationDateTime>
73 </cm:originatorConfidentialityLabel>
74 </mb:Metadata>
75 <mb:DataReference URI="">
76 <ds:Transforms>
77 <ds:Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
78 <ds:XPath>//mtf:TrackSource | //mtf:TrackSecurityLabel | //mtf:TrackPositionalData</ds:XPath>
79 </ds:Transform>
80 </ds:Transforms>
81 </mb:DataReference>
82 </mb:MetadataBinding>
83 </mb:MetadataBindingContainer>
84 </mb:BindingInformation>
85 </wsmp:MetadataBinding>
86 <wsmp:Update>
87 <wsmp:Data wsmp:Dialect="urn:nato:mtf:app-11(d):1:ffi">
88 <mtf:FriendlyForceInformation>
89 <MessageIdentifier>
90 <MessageTextFormatIdentifier>FFI</MessageTextFormatIdentifier>
91 <Standard>APP-11(D)</Standard>
92 <Version>1</Version>
93 <Originator>FFTS VERIFICATION</Originator>
94 <MessageSerialNumber>0520000</MessageSerialNumber>
95 <ReferenceTimeOfPublication>
96 <MonthNameAbbreviated>JUN</MonthNameAbbreviated>
97 </ReferenceTimeOfPublication>
98 <MessageSecurityPolicy>ACME</MessageSecurityPolicy>
99 <MessageClassification>
100 <SecurityClassificationExtended>UNCLASSIFIED</SecurityClassificationExtended>
101 </MessageClassification>
102 <MessageSecurityCategory>REL TO AUS,AUT,CHE,FIN,NZL,SWE</MessageSecurityCategory>
103 </MessageIdentifier>
104 <GeodeticDatum>
105 <GeodeticDatum>WGE</GeodeticDatum>
106 </GeodeticDatum>
107 <TrackInformation>
108 <TrackSource>
109 <TransponderId>IOTA052a000</TransponderId>
110 <System>IOTA-FFT</System>
111 <Nationality>
112 <GeographicalEntity>XXE</GeographicalEntity>
113 </Nationality>
114 </TrackSource>
115 <TrackSecurityLabel>
116 <TrackSecurityPolicy>ACME</TrackSecurityPolicy>
117 <TrackSecurityClassification>
118 <SecurityClassificationExtended>UNCLASSIFIED</SecurityClassificationExtended>
119 </TrackSecurityClassification>
120 <TrackSecurityCategory>REL TO AUS,AUT,CHE,FIN,NZL,SWE</TrackSecurityCategory>
121 <BlueDotSecurityClassification>
122 <SecurityClassificationExtended>UNCLASSIFIED</SecurityClassificationExtended>
123 </BlueDotSecurityClassification>
124 <BlueDotSecurityCategory>REL TO FIN</BlueDotSecurityCategory>
125 </TrackSecurityLabel>
126 <TrackPositionalData>
127 <Time>
128 <Year4Digit>2016</Year4Digit>
129 <MonthNumeric>06</MonthNumeric>
130 <Day>15</Day>
131 <TimeDelimiter>T</TimeDelimiter>
132 <HourTime>12</HourTime>
133 <MinuteTime>00</MinuteTime>
134 <SecondTime>00</SecondTime>
135 <TimeZoneZulu>Z</TimeZoneZulu>
136 </Time>
137 <Location>
138 <LatitudeDegrees>61</LatitudeDegrees>
139 <LatitudeMinutes04DecimalPlaces>26.846</LatitudeMinutes04DecimalPlaces>
140 <LatitudinalHemisphere>N</LatitudinalHemisphere>
141 <Hyphen>-</Hyphen>
142 <LongitudeDegrees>023</LongitudeDegrees>
143 <LongitudeMinutes04DecimalPlaces>27.795</LongitudeMinutes04DecimalPlaces>
144 <LongitudinalHemisphere>E</LongitudinalHemisphere>
145 </Location>
146 </TrackPositionalData>
147 <TrackIdentificationData>
148 <UnitSymbol>SFGPUCRH----GM-</UnitSymbol>
149 </TrackIdentificationData>
150 </TrackInformation>
151 </mtf:FriendlyForceInformation>
152 </wsmp:Data>
153 </wsmp:Update>
154 </wsmp:WSMPMsg>
155
156
FILTER REQUIREMENTS
This section and its subsections describe all the FilterDialects relevant for the WSMP FFT
Profile. As specified by WSMP (ADatP-5644), a WSMP FFT Provider advertises all supported
filter dialects through its resource properties.
TopicExpression Filter
WSMP (ADatP-5644) specifies the TopicExpression filter. The following requirements apply to
the WSMP FFT Profile.
BR-WSMP-Filter-2. A WSMP FFT System SHALL support the “Simple” and “Concrete”
TopicExpression Dialects.
NOTE: In addition, a WSMP FFT System may support the “Full” TopicExpression Dialect.
MetadataExpression Filter
MessageContent Filter
WSMP (ADatP-5644) specifies two DataContent filter dialects, “XPath” and “Data-dialect”.
In addition to this the WSMP FFT Profile defines the “FFT Filter” dialect This filter is based on
a neutral syntax that is defined in ANNEX I.
BR-WSMP-Filter-5. A WSMP FFT Provider SHALL support the “FFT Filter” as defined
in Annex I of this specification.
BR-WSMP-Filter-6. An WSMP FFT Receiver using the “FFT Filter” SHALL provide a
single fft-q:Filter element in the MessageContent filter element, with the value
“urn:nato:fft:filter:1:0” for the @Dialect attribute.
H-11
Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to IP
ANNEX H to ADatP-36
WSMP (ADatP-5644) specifies that in case multiple filters are indicated in the query message
(i.e. more sub element of the //WSMPRead/Filter are defined) the WSMP FFT Providers will
return only the tracks matching all the filters (Logical AND operation between the filter
elements).
BR-WSMP-Filter-7. A WSMP FFT Provider SHALL apply the filter to individual track
data and not to FFT messages.
This means that a response to a read operation will only return tracks matching the requested
filter.
The other operations (Create, Update and Delete) may be implemented by a WSMP service,
however their behaviour is not defined by the WSMP FFT Profile.
WSMP FFT Receivers requesting FFT data from a WSMP FFT Provider will invoke the Read
operation by sending a //wsmp:Read message. WSMP FFT Receivers will request FFT tracks
of interest by defining a filter in the //wsmp:Read/wsmp:Filter request element using one of the
dialects defined in H.3.4.
Publish/Subscribe MEP
A WSMP FFT Provider may only notify on changes to the tracks. This means that the creation
of a subscription does not result in a Notification. The WSMP FFT Provider will only create a
notification message when a track is updated or created after the subscription has been
created.
H-12
Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ANNEX I to ADatP-36
INTRODUCTION
This annex provides a filtering language specification that is used (see BR-WSMP-Filter-6) by
the WSMP FFT Profile defined in ANNEX H.
WSMP FFT Receivers need to have a mechanism to select the data of interest.
The scope of this Annex is to define a content filtering language that allows WSMP FFT
Receivers to select the FFT Tracks that are to be provided by a WSMP FFT Provider.
GOALS
ADDRESSED REQUIREMENTS
This filtering language specification enables the following consumer requirements:
Ability to specify if FFT track historical information should be returned for FFT tracks.
Ability to filter FFT information reported in a specific time period.
Ability to filter on UTID.
Ability to filter on a two-dimensional geographic area.
NON-GOALS
The following goals are out of scope of this annex:
To define the usage of an FFT-Filter instance FFTRequest.
To define the Message Exchange Pattern (MEP) or Web Service Profile for the delivery of
FFT Tracksthat passed Filtering.
I-1
Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ANNEX I to ADatP-36
An FFT filter in a Web-Service request is an instance of the FFT Filter Language XML Schema
depicted in the figure below.
Figure 18 Filter element in FFT Filter schema
When applying an FFT filter in the sense of this Annex, the FFT Filter Language XML Schema
(see section I.4) is used. This schema is the normative location where the format, structure,
value-type and other meta-data for XML-Elements and XML-Types are defined.
BR-FFT-Filter-1. WSMP FFT Providers receiving an FFT filter element that does not
validate against the FFT Filter Language XML Schema SHALL not process the
message and SHALL generate a Fault, indicating that the specified FFT filter element
is not valid.
BR-FFT-Filter-2. WSMP FFT Providers SHALL ignore any received empty FFT filter
instances (no child elements).
BR-FFT-Filter-3. WSMP FFT Providers SHALL only provide FFT Tracks that pass FFT
filter in responses and notifications.
BR-FFT-Filter-4. WSMP FFT Providers SHALL interpret the occurance of multiple filter
elements (Source, Geometry, History and TimeFrame), as a “logical and” between
these filter elements. I.e., a filtered response needs to comply with all of these elements.
SOURCE FILTER
The source filter allows selecting FFT Tracks based on their identifying attributes. The
attributes that can be used to identify an FFT Track are outlined in the table below. Note that
I-2
Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ANNEX I to ADatP-36
those attributes may be identified and named differently in various FFT message formats. This
section does not describe how the mentioned attributes are represented in the FFT messages.
The source selector element in an FFT Filter is depicted in the figure below.
I-3
Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ANNEX I to ADatP-36
A boundingbox area for a geographical area filter is defined by its north-west corner and its
south-east corner. The boundingbox selector type in an FFT Filter is depicted in the figure
below.
I-4
Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ANNEX I to ADatP-36
TIMEFRAME FILTER
The time-frame area filter allows requesting historical FFT Tracks based on the reporting-
datetime of their updates. The timeframe filter is applicable only to the Request/Response
Message Exchange Pattern (MEP). The timeframe selector element in an FFT Filter is depicted
in the figure below.
I-5
Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ANNEX I to ADatP-36
When history element (fft-q:History) has the value “true” or 1, the WSMP FFT Provider
SHALL provide all the results.
When history element (fft-q:History) has the value “false” or 0, the WSMP FFT Provider
SHALL only provide from the results, the Track-Update(s) with the highest reporting-
datetime for each FFT Track.
I-6
Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ANNEX I to ADatP-36
NORMATIVE SCHEMA
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- NATO UNCLASSIFIED releasable to Interoperability Platform (IP) -->
3 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
4 xmlns:fft-q="urn:nato:fft:filter:1:0" targetNamespace="urn:nato:fft:filter:1:0"
5 elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0.0">
6 <xs:simpleType name="NoSpaceStringType">
7 <xs:restriction base="xs:string">
8 <xs:pattern value="[^\s]+"/>
9 </xs:restriction>
10 </xs:simpleType>
11 <xs:simpleType name="TerminalIdType">
12 <xs:restriction base="fft-q:NoSpaceStringType"/>
13 </xs:simpleType>
14 <xs:simpleType name="SystemType">
15 <xs:restriction base="fft-q:NoSpaceStringType"/>
16 </xs:simpleType>
17 <xs:simpleType name="LongitudeType">
18 <xs:restriction base="xs:double">
19 <xs:minExclusive value="-180"/>
20 <xs:maxInclusive value="180"/>
21 </xs:restriction>
22 </xs:simpleType>
23 <xs:simpleType name="LatitudeType">
24 <xs:restriction base="xs:double">
25 <xs:minInclusive value="-90"/>
26 <xs:maxInclusive value="90"/>
27 </xs:restriction>
28 </xs:simpleType>
29 <xs:simpleType name="RadiusType">
30 <xs:restriction base="xs:double">
31 <xs:minExclusive value="0"/>
32 <!-- Radius of a circle SHALL always be greater than 0.0!!! -->
33 </xs:restriction>
34 </xs:simpleType>
35 <xs:element name="Start" type="xs:dateTime"/>
36 <xs:element name="End" type="xs:dateTime"/>
37 <xs:element name="History" type="xs:boolean"/>
38 <xs:element name="TerminalId" type="fft-q:TerminalIdType"/>
39 <xs:element name="System" type="fft-q:SystemType"/>
40 <xs:element name="Longitude" type="fft-q:LongitudeType"/>
41 <xs:element name="Latitude" type="fft-q:LatitudeType"/>
42 <xs:element name="Radius" type="fft-q:RadiusType"/>
43 <xs:complexType name="TimeframeType">
44 <xs:sequence minOccurs="0">
45 <xs:element ref="fft-q:Start"/>
46 <xs:element ref="fft-q:End" minOccurs="0"/>
47 <xs:element ref="fft-q:History"/>
48 </xs:sequence>
49 </xs:complexType>
50 <xs:complexType name="CoordinateType">
51 <xs:sequence minOccurs="1">
52 <xs:element ref="fft-q:Latitude"/>
53 <xs:element ref="fft-q:Longitude"/>
54 </xs:sequence>
55 </xs:complexType>
56 <xs:complexType name="BoundingBoxType">
57 <xs:complexContent>
58 <xs:extension base="fft-q:GeometryType">
59 <xs:sequence minOccurs="1">
60 <xs:element ref="fft-q:NorthWestCorner"/>
61 <xs:element ref="fft-q:SouthEastCorner"/>
62 </xs:sequence>
63 </xs:extension>
64 </xs:complexContent>
65 </xs:complexType>
66 <xs:complexType name="ProximityType">
67 <xs:complexContent>
68 <xs:extension base="fft-q:GeometryType">
69 <xs:sequence minOccurs="1">
70 <xs:element ref="fft-q:Coordinate"/>
I-7
Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ANNEX I to ADatP-36
71 <xs:element ref="fft-q:Radius"/>
72 </xs:sequence>
73 </xs:extension>
74 </xs:complexContent>
75 </xs:complexType>
76 <xs:element name="Timeframe" type="fft-q:TimeframeType"/>
77 <xs:element name="NorthWestCorner" type="fft-q:CoordinateType"/>
78 <xs:element name="SouthEastCorner" type="fft-q:CoordinateType"/>
79 <xs:element name="Coordinate" type="fft-q:CoordinateType"/>
80 <xs:complexType name="GeometryType" abstract="true"/>
81 <xs:complexType name="SourceType">
82 <xs:sequence>
83 <xs:element ref="fft-q:System" minOccurs="0"/>
84 <xs:element ref="fft-q:TerminalId" minOccurs="0" maxOccurs="unbounded"/>
85 </xs:sequence>
86 </xs:complexType>
87 <xs:element name="Geometry" type="fft-q:GeometryType"/>
88 <xs:element name="Source" type="fft-q:SourceType"/>
89 <xs:complexType name="FilterType">
90 <xs:sequence minOccurs="1">
91 <xs:element ref="fft-q:Source" minOccurs="0"/>
92 <xs:element ref="fft-q:Geometry" minOccurs="0"/>
93 <xs:element ref="fft-q:Timeframe" minOccurs="0"/>
94 </xs:sequence>
95 </xs:complexType>
96 <xs:element name="Filter" type="fft-q:FilterType"/>
97 </xs:schema>
98
I-8
Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ANNEX J to ADatP-36
– LIST OF REFERENCES
J-1
Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ANNEX J to ADatP-36
[Ref 15] NATO Standardization Organization; NATO Standard Identity Description Structure
For Tactical Use; STANAG 1241, Edition 5, 27 October 2009 (NATO Unclassified)
[Ref 16] NATO Standardization Organisation (NSO); APP-6(A) Military Symbols for Land-
Based Systems; STANAG 2019 Edition 4 / APP-06 Edition A, December 1999
(NATO Unclassified)
[Ref 17] Oasis, “Web Services Security: SOAP Message Security 1.1, "https://www.oasis-
open.org/committees/download.php/16790/wss-v1.1-spec-os-
SOAPMessageSecurity.pdf", 1 February 2006
[Ref 18] Web Services Interoperability Organization, “WS-I Basic Profile Version 1.1”,
http://www.ws-i.org/Profiles/BasicProfile-1.1-2004-08-24.html, 24 August 2004
[Ref 19] WGS 84 USA Department of Defense – National Geospatial-Intelligence Agency
World Geodetic System 1984 (WGS 84) (Unclassified)
[Ref 20] World Wide Web Consortium (W3C), “Web Services Eventing (WS-Eventing)”,
http://www.w3.org/Submission/WS-Eventing/, W3C Member Submission 15 March
2006
[Ref 21] World Wide Web Consortium (W3C) Recommendation, “XML Path Language
(XPath) Version 1.0”, http://www.w3.org/TR/xpath/, W3C Recommendation 16
November 1999, revised October 2016
[Ref 22] NATO Standardization Organisation (NSO); “Web Service Messaging Profile
(WSMP)”, STANAG-5644, Nov 2020 (NATO Unclassified)
[Ref 23] Open XML SPIF format (online) http://www.xmlspif.org, “Security Policy Information
File (SPIF) v2.0 format”, XMLSPIF.ORG, at
http://www.xmlspif.org/schema/xmlspif.xsd , May 2010.
[Ref 24] NATO Standardization Organisation (NSO); Confidentiality Metadata Label Syntax;
ADatP-4774, Edition A Version 1, December 2017
[Ref 25] NATO Standardization Organisation (NSO); Metadata Binding Mechanism; ADatP-
4778, Edition A Version 1, October 2018
[Ref 26] NATO Standardization Organisation (NSO), “Friendly Force Tracking Systems
(FFTS) Interoperability”, ADatP-36, Edition A Version 1, 20 March 2017
[Ref 27] OASIS, “Web Services Base Notification 1.3”, at http://docs.oasis-
open.org/wsn/wsn-ws_base_notification-1.3-spec-os.pdf, 1 October 2006
[Ref 28] TIDE community, “TIDE Publish Subscribe WS-Notification”, at
https://tide.act.nato.int/tidepedia/index.php/TIDE_Publish_Subscribe_WS-
Notification, 16 November 2015
[Ref 29] NATO Standardization Organisation (NSO); Profiles for binding Metadata to a Data
Object; ADatP-4778.2, Edition A Version 1, December 2020
[Ref 30] NATO Standardization Organisation (NSO), “JOINT SYMBOLOGY APP-6(B)”,
STANAG 2019 Edition 5 / APP-06 Edition B, 25 June 2008
J-2
Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ANNEX J to ADatP-36
[Ref 31] Internet Engineering Task Force (IETF), Request for Comments (RFC) 8174 -
Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words, May 2017
[Ref 32] NCI Agency, XML-MTF metadata to a FORMETS Discovery Metadata Specification
(FDMS) Version 2.0 metadata card (XSLT), at NATO Metadata Registry &
Repository (NMRR)
[Ref 33] FDMS Version 2.0 metadata card to a NATO Discovery Metadata Specification
(NDMS) Version 3.0 metadata card (XSLT), at NATO Metadata Registry &
Repository (NMRR)
[Ref 34] Wikipedia definition (on-line), http://en.wikipedia.org, “Vertex (geometry)”, at
http://en.wikipedia.org/wiki/Vertex_(geometry)
[Ref 35] ADatP-5636, Core Metadata Specification
[Ref 36] C-M(2002)60, The management of non-classified NATO information, dated 11 July
2002
J-3
Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ANNEX J to ADatP-36
INTENTIONALLY BLANK
J-4
Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ANNEX K to ADatP-36
– LEXICON
Augmentation
The process to enhance and enrich information (add/modify) of an existing Friendly Force
Tracking object. The augmented information can add extra information or can provide more
accuracy and reliable information on the existing information.
Blue Dot
A “Blue Dot” is a minimum position report for a friendly force track that only indicates the FFT
Terminal UTID, its position at a reported time together with its security classification.
Compound tracks
“To compound tracks” is the act of combining multiple track updates into a single message.
Therefore a compound track message is a message that contains more than one track update.
K-2
Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ANNEX K to ADatP-36
FFI Payload
The FFI Payload contains the Friendly Force Information in a format indicated in the preceding
IP1/IP2 header.
FFT (Concept)
Friendly Force Tracking – The capability to report and monitor the location of Friendly Forces
and to support Command and Control on those forces. Also called FFT and formerly called
Blue Force Tracking.
FFT Gateway
A system that connects one or more FFT Terminals and can exchange information with other
FFT Gateways or with FFT Hubs via FFI MTF.
FFT Hub
A system that connects more than one FFT Gateway but not FFT Terminals. Filters and
business rules must be applied in order to not create data loops.
FFI Message
An FFI message that is a conforming to APP-11(D)(1) [Ref 14] and the formatting language of
ADatP-3(A) [Ref 13]. Note that only the XML-MTF representation (and not the MTF slant
delimited representation) is used for information exchange compatible with this standard.
FFT Message
An FFT message, in the context of an information exchange compatible with this standard, is
either an FFI XML-MTF formatted message or an NFFI formatted message.
FFT Proxy
An FFT Gateway or FFT Hub able to exchange at least two different protocols such as FFI MTF
and NFFI and is able to map information.
K-3
Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ANNEX K to ADatP-36
Formatting Language
A specification that details how a message format is specified.
IP1/IP2 header
The FFI IP1/IP2 header is an application-layer prefix for both IP1 and IP2.
Mapping
The translation of information from one standard to another, applying applicable business rules.
Message Format
A detailed technical description of the structure, permissible content and meaning or
interpretation of the content of a message for the purpose of information exchange.
Message
An instance of an information exchange that follows a particular message format.
Nilled field
A field in a message that has no content. This is represented in MTF (i.e. slant delimited) by an
“hyphen” (i.e., ‘-’) and in XML-MTF by an empty field with an attribute xsi:nil. See also ADatP-
3(A) [Ref 13].
When the data needed to complete a field is not available or is being withheld, the Hyphen "-"
is used as the field content.
(1) The use of a Hyphen may only be used once in a field irrespective of whether it is an
elemental or a composite. In the case of a composite if one of the elements of the composite
are not available or being withheld the whole field should be considered to be not available and
a single hyphen should be inserted in the field. A field descriptor cannot be used in conjunction
with a hyphen.
(2) If a Composite Field is specified, all elements of a composite field format must be known in
order for it to be completed. As an example, Table 2000 (Day and Time) is a composite field
format composed of elemental Tables 1000 (Day), 1001 (Hours), 1002 (Minutes) and 1003
(Time Zone). If the correct time zone is not known, Table 2000 is not known, in its entirety, and
the hyphen must be used.
Optional field
A field that does not need to be present in the message.
K-4
Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ANNEX K to ADatP-36
Security Marking
A marking is human understandable, formatted text that is applied to printed or displayed
information, and that represents restrictions on the handling or dissemination of that
information, as required by a security policy. See AC/322-D(2004)0022 (INV) [Ref 10].
Security Policy
In the context of information exchange, a security policy is a set of rules for protecting
information against unauthorized disclosure while maintaining authorized access, and
preventing loss or unauthorized modification. See AC/322-D(2004)0022 (INV) [Ref 10].
Tracked Objects
Tracked objects are typically vehicles or dismounted soldiers. FFTS may also be used in
tracking of low flying aircraft (e.g., helicopter and UAV). This standard may be used for
interoperability and data exchange for tracking data from a collaborating civilian entity that is
providing tracking data to friendly forces such as a Non-Governmental Organization or civilian
convoy
Parameters shall be part of the network design for any specific exercise or mission network,
therefore the Situational Awareness (SA) will be the same in all the systems of the network.
Valid XML
An XML document is considered valid, if it is well-formed and complies with the relevant XML
schema.
Well-formed XML
An XML document is considered well-formed if it uses the correct XML syntax according to
W3C standards.
K-5
Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ANNEX K to ADatP-36
INTENTIONALLY BLANK
K-6
Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ANNEX L to ADatP-36
– REVISION HISTORY
The table below provides the changes between edition A version 1 (see [Ref 26] and this
(version 2) standard.
INTENTIONALLY BLANK
L-1
Edition A Version 2
NATO UNCLASSIFIED
NATO UNCLASSIFIED
Releasable to Interoperability Platform
ADatP-36(A)(2)
Edition A Version 2
NATO UNCLASSIFIED