Update ASN.1 files.
authorstig <stig@f5534014-38df-0310-8fa8-9805f1628bb7>
Sat, 9 Jan 2010 20:52:47 +0000 (20:52 +0000)
committerstig <stig@f5534014-38df-0310-8fa8-9805f1628bb7>
Sat, 9 Jan 2010 20:52:47 +0000 (20:52 +0000)
Added decoding of ADatP3Data, CorrectionsData, ForwardedEncryptedData, ACP127Data and ACP127NotificationResponse.

git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@31474 f5534014-38df-0310-8fa8-9805f1628bb7

12 files changed:
asn1/s4406/MMSAbstractService.asn [new file with mode: 0644]
asn1/s4406/MMSExtendedBodyPartTypes.asn [new file with mode: 0644]
asn1/s4406/MMSHeadingExtensions.asn [new file with mode: 0644]
asn1/s4406/MMSInformationObjects.asn [new file with mode: 0644]
asn1/s4406/MMSObjectIdentifiers.asn [new file with mode: 0644]
asn1/s4406/MMSOtherNotificationTypeExtensions.asn [new file with mode: 0644]
asn1/s4406/MMSPerRecipientSpecifierExtensions.asn [new file with mode: 0644]
asn1/s4406/Makefile.common
asn1/s4406/s4406.asn [deleted file]
asn1/s4406/s4406.cnf
epan/dissectors/packet-s4406.c
epan/dissectors/packet-s4406.h

diff --git a/asn1/s4406/MMSAbstractService.asn b/asn1/s4406/MMSAbstractService.asn
new file mode 100644 (file)
index 0000000..c055ba2
--- /dev/null
@@ -0,0 +1,183 @@
+-- $Id$
+MMSAbstractService {iso(1) identified-organization(3) nato(26) stanags(0)
+  mmhs(4406) object-identifiers(0) module(0) abstract-service(3)} DEFINITIONS
+IMPLICIT TAGS ::=
+BEGIN
+
+--Prologue
+-- Exports Everything
+IMPORTS
+  -- IPMS information objects
+  AutoForwardComment, Heading
+    --
+    FROM IPMSInformationObjects {joint-iso-ccitt mhs-motis(6) ipms(1)
+      modules(0) information-objects(2)}
+  -- MMS information objects
+  MM, MN, MNRN, MRN, MON, InformationObject
+    --
+    FROM MMSInformationObjects {iso(1) identified-organization(3) nato(26)
+      stanags(0) mmhs(4406) object-identifiers(0) module(0) mms(1)}
+  -- MMS object identifiers
+  id-mpt-management, id-mpt-origination, id-mpt-reception
+    --
+    FROM MMSObjectIdentifiers {iso(1) identified-organization(3) nato(26)
+      stanags(0) mmhs(4406) object-identifiers(0)}
+  -- MTS abstract service
+  MessageDeliveryEnvelope, MessageSubmissionEnvelope,
+    MessageSubmissionIdentifier, MessageSubmissionTime, ORName,
+    ProbeSubmissionEnvelope, ProbeSubmissionIdentifier, ProbeSubmissionTime,
+    RecipientImproperlySpecified, ReportDeliveryEnvelope,
+    SupplementaryInformation
+    --
+    FROM MTSAbstractService {joint-iso-ccitt mhs-motis(6) mts(3) modules(0)
+      mts-abstract-service(1)}
+  -- Abstract service definition conventions
+  ABSTRACT-ERROR, ABSTRACT-OPERATION, PORT
+    --
+    FROM AbstractServiceNotation {joint-iso-ccitt mhs-motis(6) asdc(2)
+      modules(0) notation(1)};
+
+-- Ports
+-- origination PORT ::= {
+--  CONSUMER INVOKES
+--    {OriginateProbe |
+--      
+      --  Although, national implementation may
+      -- support probes within their own domain, probes are not
+      -- permitted across national boundaries
+--      OriginateMM | OriginateMRN}
+--  ID                id-pt-origination}
+--
+--reception PORT ::= {
+--  CONSUMER INVOKES
+--    {ReceiveReport | ReceiveMM | ReceiveMRN | ReceiveMNRN | ReceiveMON}
+--  ID                id-pt-reception}
+--
+--management PORT ::= {
+--  CONSUMER INVOKES
+--    {ChangeAutoDiscard | ChangeAutoAcknowledgment | ChangeAutoForwarding}
+--  ID                id-pt-management}
+
+-- Origination abstract operations
+-- Probes are prohibited across national boundaries.
+--originate-probe ABSTRACT-OPERATION ::= {
+--  ARGUMENT  OriginateProbeArgument
+--  RESULT    OriginateProbeResult
+--  ERROR     {SubcriptionError | RecipientImproperlySpecified}}
+
+OriginateProbeArgument ::= SET {
+  envelope  [0]  ProbeSubmissionEnvelope,
+  content   [1]  MM}
+
+OriginateProbeResult ::= SET {
+  submission-identifier  [0]  ProbeSubmissionIdentifier,
+  submission-time        [1]  ProbeSubmissionTime}
+
+--originate-mm ABSTRACT-OPERATION ::= {
+--  ARGUMENT  OriginateMMArgument
+--  RESULT    OriginateMMResult
+--  ERROR     {SubcriptionError | RecipientImproperlySpecified}}
+
+OriginateMMArgument ::= SET {
+  envelope  [0]  MessageSubmissionEnvelope,
+  content   [1]  MM}
+
+OriginateMMResult ::= SET {
+  submission-identifier  [0]  MessageSubmissionIdentifier,
+  submission-time        [1]  MessageSubmissionTime}
+
+--originate-mrn ABSTRACT-OPERATION ::= {
+--  ARGUMENT  OriginateMRNArgument
+--  RESULT    OriginateMRNResult
+--  ERROR     {SubcriptionError | RecipientImproperlySpecified}}
+
+OriginateMRNArgument ::= SET {
+  envelope  [0]  MessageSubmissionEnvelope,
+  content   [1]  MRN}
+
+OriginateMRNResult ::= SET {
+  submission-identifier  [0]  MessageSubmissionIdentifier,
+  submission-time        [1]  MessageSubmissionTime}
+
+-- Reception abstract operations
+--receive-report ABSTRACT-OPERATION ::= {
+--  ARGUMENT      ReceiveReportArgument
+--  RESULT ERROR  {}}
+
+ReceiveReportArgument ::= SET {
+  envelope            [0]  ReportDeliveryEnvelope,
+  undelivered-object  [1]  InformationObject OPTIONAL}
+
+--receive-mm ABSTRACT-OPERATION ::= {
+--  ARGUMENT      ReceiveMMArgument
+--  RESULT ERROR  {}}
+
+ReceiveMMArgument ::= SET {
+  envelope  [0]  MessageDeliveryEnvelope,
+  content   [1]  MM}
+
+--receive-mrn ABSTRACT-OPERATION ::= {
+--  ARGUMENT      ReceiveMRNArgument
+--  RESULT ERROR  {}}
+
+ReceiveMRNArgument ::= SET {
+  envelope  [0]  MessageDeliveryEnvelope,
+  content   [1]  MRN}
+
+--receive-mnrn ABSTRACT-OPERATION ::= {
+--  ARGUMENT      ReceiveMNRNArgument
+--  RESULT ERROR  {}}
+
+ReceiveMNRNArgument ::= SET {
+  envelope  [0]  MessageDeliveryEnvelope,
+  content   [1]  MNRN}
+
+--receive-mon ABSTRACT-OPERATION ::= {
+--  ARGUMENT      ReceiveMONArgument
+--  RESULT ERROR  {}}
+
+ReceiveMONArgument ::= SET {
+  envelope  [0]  MessageDeliveryEnvelope,
+  content   [1]  MON}
+
+-- Management abstract operations
+-- It should be noted that in cases where an implementation has dual 
+-- IPM and MM functionality, the management abstract operations may be used 
+-- for support of both types of messaging.
+--change-auto-discard ABSTRACT-OPERATION ::= {
+--  ARGUMENT       ChangeAutoDiscardArgument
+--  RESULT ERRORS  {}}
+
+ChangeAutoDiscardArgument ::= SET {
+  auto-discard-expired-MMs   [0]  BOOLEAN,
+  auto-discard-obsolete-MMs  [1]  BOOLEAN}
+
+--change-auto-acknowledgement ABSTRACT-OPERATION ::= {
+--  ARGUMENT       ChangeAutoAcknowledgementArgument
+--  RESULT ERRORS  {SubscriptionError}}
+
+ChangeAutoAcknowledgementArgument ::= SET {
+  auto-acknowledge-MMs                 [0]  BOOLEAN,
+  auto-acknowledge-suppl-receipt-info  [1]  SupplementaryInformation}
+
+--change-auto-forwarding ABSTRACT-OPERATION ::= {
+--  ARGUMENT       ChangeAutoForwardingArgument
+--  RESULT ERRORS  {SubscriptionError,
+--                  RecipientImproperlySpecified}}
+
+ChangeAutoForwardingArgument ::= SET {
+  autoforward-MMs          [0]  BOOLEAN,
+  auto-forward-recipients  [1]  SEQUENCE OF ORName OPTIONAL,
+  auto-forward-heading     [2]  Heading OPTIONAL,
+  auto-forward-comment     [3]  AutoForwardComment OPTIONAL}
+
+-- Abstract errors
+--subscription-error ABSTRACT-ERROR ::= {PARAMETER  SubscriptionErrorParameter
+--}
+
+SubscriptionErrorParameter ::= SET {problem  [0]  SubscriptionProblem}
+
+SubscriptionProblem ::= ENUMERATED {
+  mms-eos-not-subcribed(0), mts-eos-not-subcribed(1)}
+
+END --of MMSAbstractService
diff --git a/asn1/s4406/MMSExtendedBodyPartTypes.asn b/asn1/s4406/MMSExtendedBodyPartTypes.asn
new file mode 100644 (file)
index 0000000..141a07b
--- /dev/null
@@ -0,0 +1,116 @@
+-- $Id$
+MMSExtendedBodyPartTypes {iso(1) identified-organization(3) nato(26) 
+  stanags(0) mmhs(4406) object-identifiers(0) module(0)
+  extended-body-part-types(7)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports Everything
+IMPORTS
+  -- IPMS information objects
+  EXTENDED-BODY-PART-TYPE
+    --=
+    FROM IPMSInformationObjects {joint-iso-ccitt mhs-motis(6) ipms(1)
+      modules(0) information-objects(2)}
+  -- MMS information objects
+  MM
+    --=
+    FROM MMSInformationObjects {iso(1) identified-organization(3) nato(26)
+      stanags(0) mmhs(4406) object-identifiers(0) module(0) mms(1)}
+  -- MMS upper lower bounds
+  ub-data-size
+    --=
+    FROM MMSUpperBounds {iso(1) identified-organization(3) nato(26) stanags(0)
+      mmhs(4406) object-identifiers(0) module(0) upper-bounds(0)}
+  -- MTS Abstract Service
+  MessageDeliveryTime, OtherMessageDeliveryFields
+    --=
+    FROM MTSAbstractService {joint-iso-ccitt mhs-motis(6) mts(3) modules(0)
+      mts-abstract-service(1)}
+  -- MMS object identifiers
+  --=
+  id-nato-mmhs-et-adatp3, id-nato-mmhs-et-adatp3-parameters,
+    id-nato-mmhs-et-acp127data, id-nato-mmhs-et-acp127data-parameters,
+    id-nato-mmhs-et-corrections, id-nato-mmhs-et-corrections-parameters,
+    id-nato-mmhs-et-forwarded-encrypted,
+    id-nato-mmhs-et-forwarded-encrypted-parameters, id-nato-mmhs-et-mm-message,
+    id-nato-mmhs-et-mm-message-parameters
+    --=
+    FROM MMSObjectIdentifiers {iso(1) identified-organization(3) nato(26)
+      stanags(0) mmhs(4406) object-identifiers(0)};
+
+-- extended adatp3 bodypart
+--adatp3-body-part EXTENDED-BODY-PART-TYPE ::= {
+--  PARAMETERS {ADatP3Parameters
+--     IDENTIFIED BY  id-nato-mmhs-et-adatp3-parameters},
+--  DATA        {ADatP3Data
+--               IDENTIFIED BY  id-nato-mmhs-et-adatp3}}
+
+ADatP3Parameters ::= INTEGER -- DEFAULT (0)
+
+ADatP3Data ::= CHOICE {
+  lineOriented  [0] IMPLICIT IA5String,
+  setOriented   [1] IMPLICIT SEQUENCE OF IA5String}
+
+-- extended corrections body part
+--corrections-body-part EXTENDED-BODY-PART-TYPE ::= {
+--  PARAMETERS {CorrectionsParameters
+--     IDENTIFIED BY  id-nato-mmhs-et-corrections-parameters},
+--  DATA        {CorrectionsData
+--               IDENTIFIED BY  id-nato-mmhs-et-corrections}}
+
+CorrectionsParameters ::= INTEGER
+
+CorrectionsData ::= IA5String
+
+-- extended forwarded encrypted body part
+--forwarded-encrypted-body-part EXTENDED-BODY-PART-TYPE ::= {
+--  PARAMETERS
+--    {ForwardedEncryptedParameters
+--     IDENTIFIED BY  id-nato-mmhs-et-forwarded-encrypted-parameters},
+--  DATA
+--    {ForwardedEncryptedData
+--     IDENTIFIED BY  id-nato-mmhs-et-forwarded-encrypted}}
+
+-- A forwarded-encrypted-body must contain the delivery information,
+-- containing the content type which will indicate whether the forwarded
+-- encrypted message is an MM or IPM. All security related information 
+-- (i.e., token) of the original message must be forwarded.
+ForwardedEncryptedParameters ::= SET {
+  delivery-time      [0]  MessageDeliveryTime OPTIONAL,
+  delivery-envelope  [1]  OtherMessageDeliveryFields}
+
+-- 2/X.411, part 9 of 26.
+ForwardedEncryptedData ::= BIT STRING
+
+-- extended MM message body part
+--mm-message-body-part EXTENDED-BODY-PART-TYPE ::= {
+--  PARAMETERS
+--    {MMMessageParameters
+--     IDENTIFIED BY  id-nato-mmhs-et-mm-message-parameters},
+--  DATA        {MMMessageData
+--               IDENTIFIED BY  id-nato-mmhs-et-mm-message}}
+
+-- An mm-message-body-part can either carry a forwarded M1M or a forwarded
+-- IPM. In the case of a message-body-part, as defined in X.420,
+-- it can only carry an IPM.
+MMMessageParameters ::= SET {
+  delivery-time      [0]  MessageDeliveryTime OPTIONAL,
+  delivery-envelope  [1]  OtherMessageDeliveryFields}
+
+MMMessageData ::= IPM
+
+-- extended acp127data body part
+--acp127data-body-part EXTENDED-BODY-PART-TYPE ::= {
+--  PARAMETERS
+--    {ACP127DataParameters
+--     IDENTIFIED BY  id-nato-mmhs-et-acp127data-parameters},
+--  DATA        {ACP127DataData
+--               IDENTIFIED BY  id-nato-mmhs-et-acp127data}}
+
+ACP127DataParameters ::= INTEGER
+
+ACP127DataData ::= IA5String(SIZE (1..ub-data-size))
+
+END -- of MMS ExtendedBodyPartTypes
+
diff --git a/asn1/s4406/MMSHeadingExtensions.asn b/asn1/s4406/MMSHeadingExtensions.asn
new file mode 100644 (file)
index 0000000..f336c0e
--- /dev/null
@@ -0,0 +1,251 @@
+-- $Id$
+MMSHeadingExtensions {iso(1) identified-organization(3) nato(26) stanags(0)
+  mmhs(4406) object-identifiers(0) module(0) heading-extensions(6)} DEFINITIONS
+IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports Everything
+IMPORTS
+  -- IPMS information objects
+  IPMS-EXTENSION, ORDescriptor
+    --=
+    FROM IPMSInformationObjects {joint-iso-ccitt mhs-motis(6) ipms(1)
+      modules(0) information-objects(2)}
+  -- MMS upper bounds
+  lb-military-sic, ub-military-number-of-sics, ub-military-sic
+    --=
+    FROM MMSUpperBounds {iso(1) identified-organization(3) nato(26) stanags(0)
+      mmhs(4406) object-identifiers(0) module(0) upper-bounds(0)}
+  -- MMS object identifiers
+  id-nato-mmhs-mm-acp127-message-identifier,
+    id-nato-mmhs-mm-address-list-indicator, id-nato-mmhs-mm-codress-message,
+    id-nato-mmhs-mm-copy-precedence, id-nato-mmhs-mm-distribution-codes,
+    id-nato-mmhs-mm-exempted-address,
+    id-nato-mmhs-mm-extended-authorisation-info,
+    id-nato-mmhs-mm-handling-instructions, id-nato-mmhs-mm-information-labels,
+    id-nato-mmhs-mm-message-instructions, id-nato-mmhs-mm-message-type,
+    id-nato-mmhs-mm-originator-reference, id-nato-mmhs-mm-originator-plad,
+    id-nato-mmhs-mm-other-recipients-indicator,
+    id-nato-mmhs-mm-pilot-forwarding-info, id-nato-mmhs-mm-primary-precedence
+    --=
+    FROM MMSObjectIdentifiers {iso(1) identified-organization(3) nato(26)
+      stanags(0) mmhs(4406) object-identifiers(0)}
+  -- MTS abstract service
+  --Message--SecurityLabel
+    --=
+    FROM MTSAbstractService {joint-iso-ccitt mhs-motis(6) mts(3) modules(0)
+      mts-abstract-service(1)};
+
+-- exempted address
+--exempted-address IPMS-EXTENSION ::= {
+--  VALUE          SEQUENCE OF ExemptedAddress
+--  IDENTIFIED BY  id-nato-mmhs-mm-exempted-address}
+
+ExemptedAddressSeq ::= SEQUENCE OF ExemptedAddress
+
+ExemptedAddress ::= ORDescriptor
+
+-- extended authorisation information
+--extended-authorisation-info IPMS-EXTENSION ::= {
+--  VALUE          ExtendedAuthorisationInfo
+--  IDENTIFIED BY  id-nato-mmhs-mm-extended-authorisation-info}
+
+ExtendedAuthorisationInfo ::= UTCTime
+
+-- UTCTime as defined in 8.5.4 of ITU-T X.411
+-- Distribution codes
+-- will carry subject indicator codes and leave room for expansion.
+--distribution-codes IPMS-EXTENSION ::= {
+--  VALUE          DistributionCodes
+--  IDENTIFIED BY  id-nato-mmhs-mm-distribution-codes}
+
+DistributionCodes ::= SET {
+  sics
+    [0]  SEQUENCE SIZE (1..ub-military-number-of-sics) OF Sic OPTIONAL,
+  dist-Extensions  [1]  SEQUENCE OF DistributionExtensionField OPTIONAL}
+
+Sic ::= PrintableString(SIZE (lb-military-sic..ub-military-sic))
+
+DistributionExtensionField ::= INSTANCE OF TYPE-IDENTIFIER
+--DistributionExtensionField ::= SEQUENCE {
+--        dist-type       OBJECT IDENTIFIER,
+--        dist-value      ANY DEFINED BY dist-type }
+
+-- Handling instructions
+--handling-instructions IPMS-EXTENSION ::= {
+--  VALUE          HandlingInstructions
+--  IDENTIFIED BY  id-nato-mmhs-mm-handling-instructions}
+
+HandlingInstructions ::= SEQUENCE OF MilitaryString
+
+MilitaryString ::= PrintableString(SIZE (1..ub-military-string))
+
+-- Message instructions
+-- will carry operating signals
+--message-instructions IPMS-EXTENSION ::= {
+--  VALUE          MessageInstructions
+--  IDENTIFIED BY  id-nato-mmhs-mm-message-instructions}
+
+MessageInstructions ::= SEQUENCE OF MilitaryString
+
+-- Codress message
+-- Needed for transition or as long as codress messages need to be carried.
+--codress-message IPMS-EXTENSION ::= {
+--  VALUE          CodressMessage
+--  IDENTIFIED BY  id-nato-mmhs-mm-codress-message}
+
+CodressMessage ::= INTEGER
+
+-- Originator reference
+-- only used if a user designated identifier string becomes important.
+--originator-reference IPMS-EXTENSION ::= {
+--  VALUE          OriginatorReference
+--  IDENTIFIED BY  id-nato-mmhs-mm-originator-reference}
+
+OriginatorReference ::= MilitaryString
+
+-- we have expanded MMHSPrecedence to PrimaryPrecedence and CopyPrecedence to
+-- all rules to be written to highlight high priority messages.
+MMHSPrecedence ::= INTEGER {
+  deferred(0), routine(1), priority(2), immediate(3), flash(4), override(5)
+  -- these are used by some National systems XXX need to verify
+  , ecp(16), critic(17), override(18)
+}
+
+-- Primary reference
+--primary-precedence IPMS-EXTENSION ::= {
+--  VALUE          MMHSPrecedence
+--  IDENTIFIED BY  id-nato-mmhs-mm-primary-precedence}
+
+PrimaryPrecedence ::= INTEGER {
+  deferred(0), routine(1), priority(2), immediate(3), flash(4), override(5)
+  -- these are used by some National systems XXX need to verify
+  , ecp(16), critic(17), override(18)
+}
+
+-- Note: Values 0 to 15 are reserved for NATO defined precedence levels.
+-- Values 16 to 31 are reserved for national user.
+-- Copy precedence
+--copy-precedence IPMS-EXTENSION ::= {
+--  VALUE          MMHSPrecedence
+--  IDENTIFIED BY  id-nato-mmhs-mm-copy-precedence}
+
+CopyPrecedence ::= INTEGER {
+  deferred(0), routine(1), priority(2), immediate(3), flash(4), override(5)
+  -- these are used by some National systems XXX need to verify
+  , ecp(16), critic(17), override(18)
+}
+
+-- Message type
+--message-type IPMS-EXTENSION ::= {
+--  VALUE          MessageType
+--  IDENTIFIED BY  id-nato-mmhs-mm-message-type}
+
+MessageType ::= SET {
+  type        [0]  TypeMessage,
+  identifier  [1]  MessageIdentifier OPTIONAL}
+
+TypeMessage ::= INTEGER {exercise(0), operation(1), project(2), drill(3)}
+
+-- Note: Values 0 to 127 are reserved for NATO defined Message Type
+-- identifiers. Values above 128 to 255 are not defined by NATO and may
+-- be used nationally or bilaterally.
+MessageIdentifier ::=
+  MilitaryString
+
+-- Address list indicator
+--address-list-indicator IPMS-EXTENSION ::= {
+--  VALUE          SEQUENCE OF AddressListDesignator
+--  IDENTIFIED BY  id-nato-mmhs-mm-address-list-indicator}
+
+AddressListDesignatorSeq ::= SEQUENCE OF AddressListDesignator
+
+AddressListDesignator ::= SET {
+  type                 [0]  INTEGER {primaryAddressList(0), copyAddressList(1)},
+  listName             [1]  ORDescriptor,
+  notificationRequest  [2]  AddressListRequest OPTIONAL,
+  replyRequest         [3]  AddressListRequest OPTIONAL}
+
+AddressListRequest ::= INTEGER {action(0), info(1), both(2)}
+
+-- Other recipients indicator
+--other-recipients-indicator IPMS-EXTENSION ::= {
+--  VALUE          SEQUENCE OF OtherRecipientDesignator
+--  IDENTIFIED BY  id-nato-mmhs-mm-other-recipients-indicator}
+
+OtherRecipientDesignatorSeq ::= SEQUENCE OF OtherRecipientDesignator
+
+OtherRecipientDesignator ::= SET {
+  type        [0]  INTEGER {primary(0), copy(1)},
+  designator  [1]  MilitaryString}
+
+-- pilot forwarding information
+--pilot-forwarding-info IPMS-EXTENSION ::= {
+--  VALUE          SEQUENCE OF PilotInformation
+--  IDENTIFIED BY  id-nato-mmhs-mm-pilot-forwarding-info}
+
+PilotInformationSeq ::= SEQUENCE OF PilotInformation
+
+PilotInformation ::= SEQUENCE {
+  pilotPrecedence  [0]  MMHSPrecedence OPTIONAL,
+  -- Note: Values 0 to 15 are reserved for NATO defined precedence levels.
+  -- Values 16 to 31 are reserved for national use.
+  pilotRecipient   [1]  SEQUENCE OF ORDescriptor OPTIONAL,
+  pilotSecurity    [2]  --Message--SecurityLabel OPTIONAL,
+  pilotHandling    [3]  SEQUENCE OF MilitaryString OPTIONAL}
+
+-- Acp127 message identifier
+-- a string to store routing indicator, station serial number and julian file 
+-- time seperated by spaces.
+--acp127-message-identifier IPMS-EXTENSION ::= {
+--  VALUE          Acp127MessageIdentifier
+--  IDENTIFIED BY  id-nato-mmhs-mm-acp127-message-identifier}
+
+Acp127MessageIdentifier ::= MilitaryString
+
+-- Originator PLAD
+--originator-plad IPMS-EXTENSION ::= {
+--  VALUE          OriginatorPlad
+--  IDENTIFIED BY  id-nato-mmhs-mm-originator-plad}
+
+OriginatorPlad ::= MilitaryString
+
+-- Information label
+--security-information-labels IPMS-EXTENSION ::= {
+--  VALUE          SecurityInformationLabels
+--  IDENTIFIED BY  id-nato-mmhs-mm-information-labels}
+
+SecurityInformationLabels ::= SEQUENCE {
+  content-security-label     [0]  SecurityLabel,
+  -- SecurityLabel as defined in 8.5.9 of ITU-T X.411
+  heading-security-label     [1]  SecurityLabel OPTIONAL,
+  body-part-security-labels  [2]  SEQUENCE OF BodyPartSecurityLabel OPTIONAL}
+
+BodyPartSecurityLabel ::= SET {
+  body-part-security-label   [0]  SecurityLabel,
+  body-part-sequence-number  [1]  BodyPartSequenceNumber OPTIONAL}
+
+BodyPartSequenceNumber ::= INTEGER
+
+--  Note: If all body parts of the message are labelled, each 
+--  element in the body sequence above shall correspond to the
+--  same numbered element of the Body sequence, and the body 
+--  part sequence number may be absent. (i.e. the first element
+--  of this field shall correspond to the first body part, etc.
+--  Otherwise the body part sequence number shall be present
+--  and shall correspond to the sequence of the body part
+--  to which the security label relates. (i.e. the value of the 
+--  body part sequence number shall correspond to sequence in which
+--  the originator encoded the body parts of the message).
+-- NOTE: The security-information-labels heading extension is now
+-- deprecated. Its use is, therefore, discouraged. See STANAG 4406
+-- Annex B for instruction on the use of its replacement, the
+-- ESSSecurityLabel.
+
+PriorityLevelQualifier ::= ENUMERATED {
+  low(0),
+  high(1) }
+
+END -- of Military heading extensions used in MMS
+
diff --git a/asn1/s4406/MMSInformationObjects.asn b/asn1/s4406/MMSInformationObjects.asn
new file mode 100644 (file)
index 0000000..235d521
--- /dev/null
@@ -0,0 +1,63 @@
+-- $Id$
+MMSInformationObjects {iso(1) identified-organization(3) nato(26) stanags(0)
+  mmhs(4406) object-identifiers(0) module(0) mms(1)} DEFINITIONS IMPLICIT TAGS
+::=
+BEGIN
+
+-- Prologue
+-- Exports Everything
+IMPORTS
+  -- IPM Information Object
+  Body, CommonFields, Heading, NonReceiptFields, OtherNotificationTypeFields,
+    ReceiptFields, IPM, IPN
+    --=
+    FROM IPMSInformationObjects {joint-iso-ccitt mhs-motis(6) ipms(1)
+      modules(0) information-objects(2)}
+  -- MTS abstract service
+  ORName
+    --=
+    FROM MTSAbstractService {joint-iso-ccitt mhs-motis(6) mts(3) modules(0)
+      mts-abstract-service(1)};
+
+-- Information Object
+--InformationObject ::= CHOICE {mm  [0]  MM,
+--                              mn  [1]  MN}
+
+-- We use IPM and IPN here because asn2wrs is unable to fetch
+-- COMPONENTS OF CommonFields from IPMSInformationObjects.asn (x420).
+InformationObject ::= CHOICE {mm  [0]  IPM,
+                              mn  [1]  IPN}
+
+-- MM (Military Message)
+MM ::= SEQUENCE {mmheading  Heading,
+                 mmbody     Body}
+
+-- The mandatory support on the IPMIdentifier components is more important
+-- in MMS than in IPMS. The user component, ORName of the originating UA is
+-- mandatory. Local IPMIdentifier is made up of 2 concatenated string
+-- separated by a space both generated by the originating UA, a serial
+-- number and the filing time (the time the message generation is finished)
+-- in UTC time format. The minimum length of 15 is because both a date/time
+-- stamp in UTC format including seconds and a serial number, plus the space
+-- delimiter are mandatory. The smallest acceptable UTC date/time stamp
+-- is 13 (ddmmyyhhmmssZ).
+-- MN (Military Notification receipt/non receipt / other notification types)
+MN ::= SET {
+  COMPONENTS OF CommonFields,
+  choice
+    [0]  CHOICE {mn-non-receipt-fields              [0]  NonReceiptFields,
+                 mn-receipt-fields                  [1]  ReceiptFields,
+                 mn-other-notification-type-fields
+                   [2]  OtherNotificationTypeFields}}
+
+MRN ::= MN -- with MN-receipt-fields chosen
+
+MNRN ::= MN -- with MN-non-receipt-fields chosen
+
+MON ::= MN -- with MN-other-notification-type-fields chosen
+
+-- All military specific body parts are defined as extended body parts. 
+-- The military specific body parts are defined in Annex A 
+-- of this part of the MBS.
+END -- of MMS InformationObjects
+
diff --git a/asn1/s4406/MMSObjectIdentifiers.asn b/asn1/s4406/MMSObjectIdentifiers.asn
new file mode 100644 (file)
index 0000000..e451126
--- /dev/null
@@ -0,0 +1,263 @@
+-- $Id$
+MMSObjectIdentifiers {iso(1) identified-organization(3) nato(26) stanags(0)
+  mmhs(4406) object-identifiers(0)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Export everything
+IMPORTS --nothing-- ;
+
+ID ::= OBJECT IDENTIFIER
+
+-- Military Messaging
+id-mmhs ID ::=
+  {iso(1) identified-organization(3) nato(26) stanags(0) mmhs(4406)
+   object-identifiers(0)}
+
+-- Categories of object identifiers
+id-mod ID ::= {id-mmhs  0} -- mm module
+
+id-mm ID ::= {id-mmhs  2} -- heading extension
+
+id-hat ID ::= {id-mmhs  3} -- heading attributes for MS
+
+id-mcont ID ::= {id-mmhs  4} -- content types
+
+id-policy ID ::= {id-mmhs  5} -- NATO policy identifier
+
+id-cat ID ::= {id-mmhs  6} -- special category identifiers
+
+id-et ID ::= {id-mmhs  7} -- military defined extended body part types
+
+id-mmts ID ::= {id-mmhs  8} -- mts object identifiers
+
+id-nat ID ::= {id-mmhs  9} -- military defined notification attributes 
+
+id-mot ID ::= {id-mmhs  10} -- military object types
+
+id-mpt ID ::= {id-mmhs  11} -- military port types
+
+id-ref ID ::= {id-mmhs  12} -- refinements
+
+id-informationlabel ID ::= {id-mmhs  13}
+
+-- Modules
+-- MMS information objects
+id-mod-upper-bounds ID ::= {id-mod  0}
+
+id-mod-mms ID ::= {id-mod  1}
+
+id-mod-functional-objects ID ::= {id-mod  2}
+
+id-mod-abstract-service ID ::= {id-mod  3}
+
+id-mod-heading-extension ID ::= {id-mod  6}
+
+id-mod-extended-body-part-types ID ::= {id-mod  7}
+
+id-mod-message-store-attributes ID ::= {id-mod  8}
+
+id-mod-per-recipient-specifier-extensions ID ::= {id-mod  11}
+
+id-mod-other-notification-type-extensions ID ::= {id-mod  12}
+
+-- Object types
+id-mot-mmme ID ::= {id-mot  0}
+
+id-mot-mms-user ID ::= {id-mot  1}
+
+id-mot-mms ID ::= {id-mot  2}
+
+id-mot-mms-ua ID ::= {id-mot  3}
+
+id-mot-mms-ms ID ::= {id-mot  4}
+
+id-mot-acp127au ID ::= {id-mot  5}
+
+id-mot-pdau ID ::= {id-mot  6}
+
+-- port types
+id-mpt-origination ID ::= {id-mpt  0}
+
+id-mpt-reception ID ::= {id-mpt  1}
+
+id-mpt-management ID ::= {id-mpt  2}
+
+-- Refinements
+id-ref-primary ID ::= {id-ref  0}
+
+id-ref-secondary ID ::= {id-ref  1}
+
+-- Military Defined body parts
+id-nato-mmhs-et-adatp3 ID ::= {id-et  0}
+
+id-nato-mmhs-et-corrections ID ::= {id-et  1}
+
+id-nato-mmhs-et-adatp3-parameters ID ::= {id-et  2}
+
+id-nato-mmhs-et-corrections-parameters ID ::= {id-et  3}
+
+id-nato-mmhs-et-forwarded-encrypted ID ::= {id-et  6}
+
+id-nato-mmhs-et-forwarded-encrypted-parameters ID ::= {id-et  7}
+
+id-nato-mmhs-et-mm-message ID ::= {id-et  9}
+
+id-nato-mmhs-et-mm-message-parameters ID ::= {id-et  10}
+
+id-nato-mmhs-et-mm-acp127data ID ::= {id-et  12}
+
+id-nato-mmhs-et-mm-acp127data-parameters ID ::= {id-et  13}
+
+-- Military Defined Heading Fields
+id-nato-mmhs-mm-primary-precedence ID ::=
+  {id-mm  0}
+
+id-nato-mmhs-mm-copy-precedence ID ::= {id-mm  1}
+
+id-nato-mmhs-mm-message-type ID ::= {id-mm  2}
+
+id-nato-mmhs-mm-address-list-indicator ID ::= {id-mm  3}
+
+id-nato-mmhs-mm-exempted-address ID ::= {id-mm  4}
+
+id-nato-mmhs-mm-extended-authorisation-info ID ::= {id-mm  5}
+
+id-nato-mmhs-mm-distribution-codes ID ::= {id-mm  6}
+
+id-nato-mmhs-mm-handling-instructions ID ::= {id-mm  7}
+
+id-nato-mmhs-mm-message-instructions ID ::= {id-mm  8}
+
+id-nato-mmhs-mm-codress-message ID ::= {id-mm  9}
+
+id-nato-mmhs-mm-originator-reference ID ::= {id-mm  10}
+
+id-nato-mmhs-mm-other-recipients-indicator ID ::= {id-mm  11}
+
+id-nato-mmhs-mm-pilot-forwarding-info ID ::= {id-mm  12}
+
+id-nato-mmhs-mm-acp127-message-identifier ID ::= {id-mm  13}
+
+id-nato-mmhs-mm-originator-plad ID ::= {id-mm  14}
+
+id-nato-mmhs-mm-information-labels ID ::= {id-mm  17}
+
+-- This value is deprecated.
+-- the following are per-recipient
+id-nato-mmhs-mm-acp127-notification-request ID ::=
+  {id-mm  15}
+
+-- the following are per other-notification-type
+id-nato-mmhs-mm-acp127-notification-response ID ::=
+  {id-mm  16}
+
+-- Military Defined Heading Attributes for MS
+id-nato-mmhs-hat-primary-precedence ID ::=
+  {id-hat  0}
+
+id-nato-mmhs-hat-copy-precedence ID ::= {id-hat  1}
+
+id-nato-mmhs-hat-message-type ID ::= {id-hat  2}
+
+id-nato-mmhs-hat-address-list-indicator ID ::= {id-hat  3}
+
+id-nato-mmhs-hat-exempted-address ID ::= {id-hat  4}
+
+id-nato-mmhs-hat-extended-authorisation-info ID ::= {id-hat  5}
+
+id-nato-mmhs-hat-distribution-codes ID ::= {id-hat  6}
+
+id-nato-mmhs-hat-handling-instructions ID ::= {id-hat  7}
+
+id-nato-mmhs-hat-message-instructions ID ::= {id-hat  8}
+
+id-nato-mmhs-hat-codress-message ID ::= {id-hat  9}
+
+id-nato-mmhs-hat-originator-reference ID ::= {id-hat  10}
+
+id-nato-mmhs-hat-other-recipients-indicator ID ::= {id-hat  11}
+
+id-nato-mmhs-hat-pilot-forwarding-info ID ::= {id-hat  12}
+
+id-nato-mmhs-hat-acp127-message-identifier ID ::= {id-hat  13}
+
+id-nato-mmhs-hat-originator-plad ID ::= {id-hat  14}
+
+-- the following are per-recipient
+id-nato-mmhs-hat-acp127-notification-request ID ::=
+  {id-hat  15}
+
+id-nato-mmhs-hat-sic-codes ID ::= {id-hat  16}
+
+id-nato-mmhs-hat-distribution-extensions ID ::= {id-hat  17}
+
+id-nato-mmhs-hat-body-part-information-label ID ::= {id-hat  18}
+
+-- This value is deprecated.
+id-nato-mmhs-hat-security-information-labels ID ::=
+  {id-hat  19}
+
+-- This value is deprecated.
+-- Military Defined special category identifiers
+id-nato-mmhs-cat ID ::=
+  {id-cat  0}
+
+-- This value is deprecated.
+id-nato-mmhs-cat-atomal ID ::= {id-cat  1}
+
+-- This value is deprecated.
+id-nato-mmhs-cat-cryptosecurity ID ::= {id-cat  2}
+
+-- This value is deprecated.
+id-nato-mmhs-cat-specialhandlingintel ID ::=
+  {id-cat  3}
+
+-- This value is deprecated.
+id-nato-mmhs-cat-ussiopesi ID ::= {id-cat  4}
+
+-- This value is deprecated.
+id-nato-mmhs-cat-eyesonly ID ::= {id-cat  5}
+
+-- This value is deprecated.
+id-nato-mmhs-cat-exclusive ID ::= {id-cat  6}
+
+-- This value is deprecated.
+id-nato-mmhs-cat-information-label ID ::=
+  {id-cat  7}
+
+-- This value is deprecated.
+id-nato-mmhs-informationlabel-atomal ID ::=
+  {id-informationlabel  1}
+
+-- This value is deprecated.
+id-nato-mmhs-informationlabel-cryptosecurity ID ::=
+  {id-informationlabel  2}
+
+-- This value is deprecated.
+id-nato-mmhs-informationlabel-specialhandlingintel ID ::=
+  {id-informationlabel  3}
+
+-- This value is deprecated.
+id-nato-mmhs-informationlabel-ussiopesi ID ::=
+  {id-informationlabel  4}
+
+-- This value is deprecated.
+id-nato-mmhs-informationlabel-eyesonly ID ::=
+  {id-informationlabel  5}
+
+-- This value is deprecated.
+id-nato-mmhs-informationlabel-exclusive ID ::=
+  {id-informationlabel  6}
+
+-- This value is deprecated.
+-- Military Defined Notification Extension
+id-nato-mmhs-nat-acp127-notification-response ID ::=
+  {id-nat  0}
+
+-- Military Message content types (for use by MS only)
+id-mct-p772 ID ::=
+  {id-mcont  1}
+
+END -- of MMHSObjectIdentifiers
+
diff --git a/asn1/s4406/MMSOtherNotificationTypeExtensions.asn b/asn1/s4406/MMSOtherNotificationTypeExtensions.asn
new file mode 100644 (file)
index 0000000..e2332ea
--- /dev/null
@@ -0,0 +1,57 @@
+-- $Id$
+MMSOtherNotificationTypeExtensions {iso(1) identified-organization(3) 
+  nato(26) stanags(0) mmhs(4406) object-identifiers(0) module(0)
+  other-notification-type-extensions(12)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports Everything
+IMPORTS
+  -- IPMS information objects
+  IPMS-EXTENSION, ReceiptTimeField
+    --=
+    FROM IPMSInformationObjects {joint-iso-ccitt mhs-motis(6) ipms(1)
+      modules(0) information-objects(2)}
+  -- MMS upper bounds
+  ub-military-bigstring
+    --=
+    FROM MMSUpperBounds {iso(1) identified-organization(3) nato(26) stanags(0)
+      mmhs(4406) object-identifiers(0) module(0) upper-bounds(0)}
+  -- MMS object identifiers
+  id-nato-mmhs-mm-acp127-notification-response
+    --=
+    FROM MMSObjectIdentifiers {iso(1) identified-organization(3) nato(26)
+      stanags(0) mmhs(4406) object-identifiers(0)}
+  -- MMS heading extensions
+  AddressListDesignator
+    --=
+    FROM MMSHeadingExtensions {iso(1) identified-organization(3) nato(26)
+      stanags(0) mmhs(4406) object-identifiers(0) module(0)
+      heading-extensions(6)}
+  -- MMS per recipient specifier extensions
+  Acp127NotificationType
+    --=
+    FROM MMSPerRecipientSpecifierExtensions {iso(1) identified-organization(3)
+      nato(26) stanags(0) mmhs(4406) object-identifiers(0) module(0)
+      per-recipient-specifier-extensions(11)};
+
+--ACP127 notification response
+--acp127-notification-response IPMS-EXTENSION ::= {
+--  VALUE          Acp127NotificationResponse
+--  IDENTIFIED BY  id-nato-mmhs-mm-acp127-notification-response}
+
+Acp127NotificationResponse ::= SET {
+  acp127-notification-type  [0]  Acp127NotificationType,
+  receipt-time              [1]  ReceiptTimeField,
+  addressListIndicator      [2]  AddressListIndicator OPTIONAL,
+  acp127-recipient          [3]  Acp127Recipient OPTIONAL,
+  acp127-supp-info          [4]  Acp127SuppInfo OPTIONAL}
+
+AddressListIndicator ::= SEQUENCE OF AddressListDesignator
+
+Acp127Recipient ::= PrintableString(SIZE (1..ub-military-bigstring))
+
+Acp127SuppInfo ::= PrintableString(SIZE (1..ub-military-bigstring))
+
+END -- of MMS OtherNotificationType extensions
+
diff --git a/asn1/s4406/MMSPerRecipientSpecifierExtensions.asn b/asn1/s4406/MMSPerRecipientSpecifierExtensions.asn
new file mode 100644 (file)
index 0000000..cf5d3d3
--- /dev/null
@@ -0,0 +1,35 @@
+-- $Id$
+MMSPerRecipientSpecifierExtensions {iso(1) identified-organization(3) 
+  nato(26) stanags(0) mmhs(4406) object-identifiers(0) module(0)
+  per-recipient-specifier-extensions(11)} DEFINITIONS IMPLICIT TAGS ::=
+BEGIN
+
+-- Prologue
+-- Exports Everything
+IMPORTS
+  -- IPMS information objects
+  IPMS-EXTENSION
+    --=
+    FROM IPMSInformationObjects {joint-iso-ccitt mhs-motis(6) ipms(1)
+      modules(0) information-objects(2)}
+  -- MMS object identifiers
+  id-nato-mmhs-mm-acp127-notification-request
+    --=
+    FROM MMSObjectIdentifiers {iso(1) identified-organization(3) nato(26)
+      stanags(0) mmhs(4406) object-identifiers(0)};
+
+-- ACP127 notification request
+-- The following definitions are made in order to support
+-- informing the originator of a message that the subject message
+-- has reached a gateway to an ACP 127 domain.
+--acp127-notification-request IPMS-EXTENSION ::= {
+--  VALUE          Acp127NotificationType
+--  IDENTIFIED BY  id-nato-mmhs-mm-acp127-notification-request}
+
+Acp127NotificationType ::= BIT STRING {
+  acp127-nn(0), -- negative notification
+  acp127-pn(1), -- positive notification
+  acp127-tn(2)} -- transfer notification
+
+END -- of MMS per recipient pecifier extensions
+
index 86cdef98552e8585329428f9c5a11932840f191c..2ff18ff7cca282aec1c8fde7c235fa2789d135d5 100644 (file)
@@ -28,7 +28,11 @@ DISSECTOR_FILES=packet-$(PROTOCOL_NAME).c \
 
 EXT_ASN_FILE_LIST =
 
-ASN_FILE_LIST = $(PROTOCOL_NAME).asn MMSUpperBounds.asn
+ASN_FILE_LIST = MMSAbstractService.asn MMSInformationObjects.asn \
+       MMSOtherNotificationTypeExtensions.asn MMSObjectIdentifiers.asn \
+       MMSHeadingExtensions.asn MMSUpperBounds.asn \
+       MMSExtendedBodyPartTypes.asn MMSPerRecipientSpecifierExtensions.asn
+
 
 # The packet-$(PROTOCOL_NAME)-template.h and $(PROTOCOL_NAME).asn
 # files do not exist for all protocols: Please add/remove as required.
diff --git a/asn1/s4406/s4406.asn b/asn1/s4406/s4406.asn
deleted file mode 100644 (file)
index 0bd58c6..0000000
+++ /dev/null
@@ -1,302 +0,0 @@
-MMSHeadingExtensions { iso(1) identified-organization(3) nato(26)
-       stanags(0) mmhs(4406) object-identifiers(0) module(0) heading-extensions(6) }
-
-DEFINITIONS IMPLICIT TAGS ::=
-BEGIN
--- Prologue
--- Exports Everything
-IMPORTS
-
--- IPMS information objects
-IPMS-EXTENSION, ORDescriptor, IPM, IPN, MessageParameters
----
-FROM IPMSInformationObjects { joint-iso-ccitt  mhs-motis(6) ipms(1)
-       modules(0) information-objects(2) }
-
--- MMS upper bounds
---lb-military-sic, ub-military-number-of-sics, ub-military-sic
----
---FROM MMSUpperBounds { iso(1) identified-organization(3) NATO(26)
---     STANAGS(0) MMHS(4406) object-identifiers(0) module(0) upper-bounds(0) }
-
--- MMS object identifiers
---id-nato-mmhs-mm-acp127-message-identifier, 
---id-nato-mmhs-mm-address-list-indicator,
---id-nato-mmhs-mm-codress-message,
---id-nato-mmhs-mm-copy-precedence, id-nato-mmhs-mm-distribution-codes, 
---id-nato-mmhs-mm-exempted-address, 
---id-nato-mmhs-mm-extended-authorisation-info, 
---id-nato-mmhs-mm-handling-instructions, 
---id-nato-mmhs-mm-information-labels,
---id-nato-mmhs-mm-message-instructions, id-nato-mmhs-mm-message-type, 
---id-nato-mmhs-mm-originator-reference, id-nato-mmhs-mm-originator-plad,
---id-nato-mmhs-mm-other-recipients-indicator, 
---id-nato-mmhs-mm-pilot-forwarding-info, 
---id-nato-mmhs-mm-primary-precedence
----
---FROM MMSObjectIdentifiers { iso(1) identified-organization(3) NATO(26)
---     STANAGS(0) MMHS(4406) object-identifiers(0) }
-
--- MTS abstract service
---Message--SecurityLabel
----
-FROM MTSAbstractService {joint-iso-ccitt  mhs-motis(6) mts(3)
-       modules(0) mts-abstract-service(1) };
-
--- Information object
-InformationObject ::= CHOICE {mm  [0]  IPM,
-                              mn [1]   IPN
-}
-
-MMMessageData ::= IPM
-MMMessageParameters ::= MessageParameters
-
--- exempted address
-
---exempted-address IPMS-EXTENSION
---     VALUE SEQUENCE OF ExemptedAddress
---     ::= id-nato-mmhs-mm-exempted-address
-
-ExemptedAddressSeq ::= SEQUENCE OF ExemptedAddress
-
-ExemptedAddress ::= ORDescriptor
-
-
--- extended authorisation information
-
---extended-authorisation-info IPMS-EXTENSION
---     VALUE ExtendedAuthorisationInfo
---     ::= id-nato-mmhs-mm-extended-authorisation-info
-
-ExtendedAuthorisationInfo ::= UTCTime
-               -- UTCTime as defined in 8.5.4 of ITU-T X.411
-
-
--- Distribution codes
--- will carry subject indicator codes and leave room for expansion.
-
---distribution-codes IPMS-EXTENSION
---     VALUE DistributionCodes
---     ::= id-nato-mmhs-mm-distribution-codes
-
-DistributionCodes ::= SET {
-       sics    [0]     SEQUENCE SIZE
-                               (1..ub-military-number-of-sics) OF
-                               Sic OPTIONAL,
-       dist-Extensions [1]     SEQUENCE OF
-                               DistributionExtensionField OPTIONAL }
-
-Sic ::= PrintableString (SIZE (lb-military-sic..ub-military-sic))
-
-DistributionExtensionField ::= SEQUENCE {
-       dist-type       OBJECT IDENTIFIER,
-       dist-value      ANY --DEFINED BY dist-type-- }
-
-
--- Handling instructions
-
---handling-instructions IPMS-EXTENSION
---     VALUE HandlingInstructions
---     ::= id-nato-mmhs-mm-handling-instructions
-
-HandlingInstructions ::= SEQUENCE OF MilitaryString
-
-MilitaryString ::= PrintableString (SIZE(1..ub-military-string))
-
-
--- Message instructions
--- will carry operating signals
-
---message-instructions IPMS-EXTENSION
---     VALUE MessageInstructions
---     ::= id-nato-mmhs-mm-message-instructions
-
-MessageInstructions ::= SEQUENCE OF MilitaryString
-
-
--- Codress message
--- Needed for transition or as long as codress messages need to be carried.
-
---codress-message IPMS-EXTENSION
---     VALUE CodressMessage
---     ::= id-nato-mmhs-mm-codress-message
-
-CodressMessage ::= INTEGER
-
-
--- Originator reference
--- only used if a user designated identifier string becomes important.
-
---originator-reference IPMS-EXTENSION
---     VALUE OriginatorReference
---     ::= id-nato-mmhs-mm-originator-reference
-
-OriginatorReference ::= MilitaryString
-
-
--- Primary reference
-
---primary-precedence IPMS-EXTENSION
---     VALUE MMHSPrecedence
---     ::= id-nato-mmhs-mm-primary-precedence
-
-PrimaryPrecedence ::= INTEGER {deferred (0), routine (1), priority (2), immediate (3),
-       flash (4), override (5), 
--- these are used by some National systems XXX need to verify
-       ecp(16), critic(17), override(18)}
-
--- Note: Values 0 to 15 are reserved for NATO defined precedence levels.
--- Values 16 to 31 are reserved for national user.
-
-
--- Copy precedence
-
---copy-precedence IPMS-EXTENSION
---     VALUE MMHSPrecedence 
---     ::= id-nato-mmhs-mm-copy-precedence
-
--- we have expanded MMHSPrecedence to PrimaryPrecedence and CopyPrecedence to
--- all rules to be written to highlight high priority messages.
-CopyPrecedence ::= INTEGER {deferred (0), routine (1), priority (2), immediate (3),
-       flash (4), override (5), 
--- these are used by some National systems XXX need to verify
-       ecp(16), critic(17), override(18)}
-
--- Note: Values 0 to 15 are reserved for NATO defined precedence levels. 
--- Values 16 to 31 are reserved for national user.
-
--- Message type
-
---message-type IPMS-EXTENSION
---     VALUE MessageType
---     ::=id-nato-mmhs-mm-message-type
-
-MessageType ::= SET{
-       type    [0]     TypeMessage,
-       identifier      [1]     MessageIdentifier OPTIONAL }
-
-TypeMessage ::= INTEGER {exercise(0), operation(1), project(2), drill(3) }
-
--- Note: Values 0 to 127 are reserved for NATO defined Message Type
--- identifiers. Values above 128 to 255 are not defined by NATO and may
--- be used nationally or bilaterally.
-
-MessageIdentifier ::= MilitaryString
-
-
--- Address list indicator
-
---address-list-indicator IPMS-EXTENSION
---     VALUE SEQUENCE OF AddressListDesignator
---     ::=id-nato-mmhs-mm-address-list-indicator
-
-AddressListDesignatorSeq ::= SEQUENCE OF AddressListDesignator
-
-AddressListDesignator ::=SET {
-       type    [0]     INTEGER
-                               { primaryAddressList(0), copyAddressList(1) },
-       listName        [1]     ORDescriptor,
-       notificationRequest     [2]     AddressListRequest OPTIONAL,
-       replyRequest    [3]     AddressListRequest OPTIONAL }
-
-AddressListRequest ::= INTEGER { action(0), info(1), both(2) }
-
--- Other recipients indicator
-
---other-recipients-indicator IPMS-EXTENSION
---     VALUE SEQUENCE OF OtherRecipientDesignator
---     ::=id-nato-mmhs-mm-other-recipients-indicator
-
-OtherRecipientDesignatorSeq ::= SEQUENCE OF OtherRecipientDesignator
-
-OtherRecipientDesignator ::= SET {
-       type    [0]     INTEGER { primary(0), copy(1) },
-       designator      [1]     MilitaryString }
-
-
--- pilot forwarding information
-
---pilot-forwarding-info IPMS-EXTENSION
---     VALUE SEQUENCE OF PilotInformation
---     ::= id-nato-mmhs-mm-pilot-forwarding-info
-
-PilotInformationSeq ::= SEQUENCE OF PilotInformation
-
-PilotInformation ::= SEQUENCE {
-       pilotPrecedence [0]     PilotPrecedence OPTIONAL,
-               -- Note: Values 0 to 15 are reserved for NATO defined precedence levels.
-               -- Values 16 to 31 are reserved for national use.
-       pilotRecipient  [1]     SEQUENCE OF ORDescriptor OPTIONAL,
-       pilotSecurity   [2]     --Message--SecurityLabel OPTIONAL,
-       pilotHandling   [3]     SEQUENCE OF MilitaryString OPTIONAL}
-
-PilotPrecedence ::= INTEGER {deferred (0), routine (1), priority (2), immediate (3),
-       flash (4), override (5), 
--- these are used by some National systems XXX need to verify
-       ecp(16), critic(17), override(18)}
-
-
-
--- Acp127 message identifier
--- a string to store routing indicator, station serial number and julian file 
--- time seperated by spaces.
-
---acp127-message-identifier IPMS-EXTENSION
---     VALUE Acp127MessageIdentifier
---     ::= id-nato-mmhs-mm-acp127-message-identifier
-
-Acp127MessageIdentifier ::= MilitaryString
-
-
--- Originator PLAD
-
---originator-plad IPMS-EXTENSION
---     VALUE OriginatorPlad
---     ::= id-nato-mmhs-mm-originator-plad
-
-OriginatorPlad ::= MilitaryString
-
-Acp127NotificationType ::= BIT STRING {
-       negative (0),   -- nn, negative notification
-       positive (1),   -- pn, positive notification
-       transfer (2) }  -- tn, transfer notification
-
--- Information label
-
---security-information-labels IPMS-EXTENSION
---     VALUE SecurityInformationLabels
---     ::= id-nato-mmhs-mm-information-labels
-
-SecurityInformationLabels ::= SEQUENCE {
-       content-security-label  [0]     SecurityLabel,
-               -- SecurityLabel as defined in 8.5.9 of ITU-T X.411
-       heading-security-label  [1]     SecurityLabel OPTIONAL,
-       body-part-security-labels       [2]     SEQUENCE OF BodyPartSecurityLabel OPTIONAL }
-
-BodyPartSecurityLabel  ::= SET {
-       body-part-security-label        [0]     SecurityLabel,
-       body-part-sequence-number       [1]     BodyPartSequenceNumber OPTIONAL }
-
-BodyPartSequenceNumber ::= INTEGER
-
---  Note: If all body parts of the message are labelled, each 
---  element in the body sequence above shall correspond to the
---  same numbered element of the Body sequence, and the body 
---  part sequence number may be absent. (i.e. the first element
---  of this field shall correspond to the first body part, etc.
---  Otherwise the body part sequence number shall be present
---  and shall correspond to the sequence of the body part
---  to which the security label relates. (i.e. the value of the 
---  body part sequence number shall correspond to sequence in which
---  the originator encoded the body parts of the message).
-
--- NOTE: The security-information-labels heading extension is now
--- deprecated. Its use is, therefore, discouraged. See STANAG 4406
--- Annex B for instruction on the use of its replacement, the
--- ESSSecurityLabel.
-
-PriorityLevelQualifier ::= ENUMERATED {
-  low(0),
-  high(1) }
-
-END -- of Military heading extensions used in MMS
index 2e75073fba19307cd639d56cc909a84420f26951..8324665533366b38b728fc1dd81df6fef5722bf5 100644 (file)
@@ -1,11 +1,42 @@
+# s4406.cnf
+# s4406 conformation file
+
+# $Id$
+
 #.MODULE_IMPORT 
-MTSAbstractService     x411
+ProbeSubmissionEnvelope x411
+InformationObject      x420
 
 #.IMPORT ../x411/x411-exp.cnf
 #.IMPORT ../x420/x420-exp.cnf
 
 
 #.END
+
+#.OMIT_ASSIGNMENT
+ID
+MM
+MN
+MRN
+MNRN
+MON
+OriginateProbeArgument
+OriginateProbeResult
+OriginateMMArgument
+OriginateMMResult
+OriginateMRNArgument
+OriginateMRNResult
+ReceiveReportArgument
+ReceiveMMArgument
+ReceiveMRNArgument
+ReceiveMNRNArgument
+ReceiveMONArgument
+ChangeAutoDiscardArgument
+ChangeAutoAcknowledgementArgument
+ChangeAutoForwardingArgument
+SubscriptionErrorParameter
+SubscriptionProblem
+
 #.TYPE_RENAME
 AddressListDesignator/type     AddressListType
 OtherRecipientDesignator/type  OtherRecipientType
@@ -51,21 +82,26 @@ PilotInformationSeq                 B "1.3.26.0.4406.0.2.12" "pilot-forwarding-info"
 Acp127MessageIdentifier        B "1.3.26.0.4406.0.2.13" "acp127-message-identifier"
 OriginatorPlad                                 B "1.3.26.0.4406.0.2.14" "originator-plad"
 Acp127NotificationType         B "1.3.26.0.4406.0.2.15" "acp127-notification-request"
+Acp127NotificationResponse     B "1.3.26.0.4406.0.2.16" "acp127-notification-response"
 SecurityInformationLabels      B "1.3.26.0.4406.0.2.17" "information-labels"
 
 PriorityLevelQualifier         B "1.3.26.0.4406.0.8.0"  "priority-level-qualifier"
 
 
-
-MMMessageData                  B "1.3.26.0.4406.0.7.9" "mm-message"
-MMMessageParameters            B "1.3.26.0.4406.0.7.10" "mm-message-parameters"
+ADatP3Data                     B id_nato_mmhs_et_adatp3 "adatp3"
+ADatP3Parameters               B id_nato_mmhs_et_adatp3_parameters "adatp3-parameters"
+CorrectionsData                        B id_nato_mmhs_et_corrections "corrections"
+CorrectionsParameters          B id_nato_mmhs_et_corrections_parameters "corrections-parameters"
+ForwardedEncryptedData         B id_nato_mmhs_et_forwarded_encrypted "forwarded-encrypted"
+ForwardedEncryptedParameters   B id_nato_mmhs_et_forwarded_encrypted_parameters "forwarded-encrypted-parameters"
+MMMessageData                  B id_nato_mmhs_et_mm_message "mm-message"
+MMMessageParameters            B id_nato_mmhs_et_mm_message_parameters "mm-message-parameters"
+ACP127DataData                 B id_nato_mmhs_et_mm_acp127data "acp127-data"
+ACP127DataParameters           B id_nato_mmhs_et_mm_acp127data_parameters "acp127-data-parameters"
 
 InformationObject              B "2.6.1.4.17.1.3.26.0.4406.0.4.1"      "id-et-content-p772"
 
 
-#.FN_BODY DistributionExtensionField/dist-value
-/* XXX: not implemented */
-
 #.FN_PARS PrimaryPrecedence
   VAL_PTR=&precedence
 #.FN_BODY PrimaryPrecedence
index 33ba52bc7a58078c7fca7998d3518eaa2cd9b852..ec1e2934366933e8f81d8160e5c785edaf5b2f36 100644 (file)
@@ -1,7 +1,7 @@
 /* Do not modify this file.                                                   */
 /* It is created automatically by the ASN.1 to Wireshark dissector compiler   */
 /* packet-s4406.c                                                             */
-/* ../../tools/asn2wrs.py -b -e -C -p s4406 -c ./s4406.cnf -s ./packet-s4406-template -D . s4406.asn MMSUpperBounds.asn */
+/* ../../tools/asn2wrs.py -b -e -C -p s4406 -c ./s4406.cnf -s ./packet-s4406-template -D . MMSAbstractService.asn MMSInformationObjects.asn MMSOtherNotificationTypeExtensions.asn MMSObjectIdentifiers.asn MMSHeadingExtensions.asn MMSUpperBounds.asn MMSExtendedBodyPartTypes.asn MMSPerRecipientSpecifierExtensions.asn */
 
 /* Input file: packet-s4406-template.c */
 
@@ -60,6 +60,105 @@ static int proto_s4406 = -1;
 
 /*--- Included file: packet-s4406-val.h ---*/
 #line 1 "packet-s4406-val.h"
+#define id_mmhs                        "1.3.26.0.4406.0"
+#define id_mod                         id_mmhs".0"
+#define id_mm                          id_mmhs".2"
+#define id_hat                         id_mmhs".3"
+#define id_mcont                       id_mmhs".4"
+#define id_policy                      id_mmhs".5"
+#define id_cat                         id_mmhs".6"
+#define id_et                          id_mmhs".7"
+#define id_mmts                        id_mmhs".8"
+#define id_nat                         id_mmhs".9"
+#define id_mot                         id_mmhs".10"
+#define id_mpt                         id_mmhs".11"
+#define id_ref                         id_mmhs".12"
+#define id_informationlabel            id_mmhs".13"
+#define id_mod_upper_bounds            id_mod".0"
+#define id_mod_mms                     id_mod".1"
+#define id_mod_functional_objects      id_mod".2"
+#define id_mod_abstract_service        id_mod".3"
+#define id_mod_heading_extension       id_mod".6"
+#define id_mod_extended_body_part_types id_mod".7"
+#define id_mod_message_store_attributes id_mod".8"
+#define id_mod_per_recipient_specifier_extensions id_mod".11"
+#define id_mod_other_notification_type_extensions id_mod".12"
+#define id_mot_mmme                    id_mot".0"
+#define id_mot_mms_user                id_mot".1"
+#define id_mot_mms                     id_mot".2"
+#define id_mot_mms_ua                  id_mot".3"
+#define id_mot_mms_ms                  id_mot".4"
+#define id_mot_acp127au                id_mot".5"
+#define id_mot_pdau                    id_mot".6"
+#define id_mpt_origination             id_mpt".0"
+#define id_mpt_reception               id_mpt".1"
+#define id_mpt_management              id_mpt".2"
+#define id_ref_primary                 id_ref".0"
+#define id_ref_secondary               id_ref".1"
+#define id_nato_mmhs_et_adatp3         id_et".0"
+#define id_nato_mmhs_et_corrections    id_et".1"
+#define id_nato_mmhs_et_adatp3_parameters id_et".2"
+#define id_nato_mmhs_et_corrections_parameters id_et".3"
+#define id_nato_mmhs_et_forwarded_encrypted id_et".6"
+#define id_nato_mmhs_et_forwarded_encrypted_parameters id_et".7"
+#define id_nato_mmhs_et_mm_message     id_et".9"
+#define id_nato_mmhs_et_mm_message_parameters id_et".10"
+#define id_nato_mmhs_et_mm_acp127data  id_et".12"
+#define id_nato_mmhs_et_mm_acp127data_parameters id_et".13"
+#define id_nato_mmhs_mm_primary_precedence id_mm".0"
+#define id_nato_mmhs_mm_copy_precedence id_mm".1"
+#define id_nato_mmhs_mm_message_type   id_mm".2"
+#define id_nato_mmhs_mm_address_list_indicator id_mm".3"
+#define id_nato_mmhs_mm_exempted_address id_mm".4"
+#define id_nato_mmhs_mm_extended_authorisation_info id_mm".5"
+#define id_nato_mmhs_mm_distribution_codes id_mm".6"
+#define id_nato_mmhs_mm_handling_instructions id_mm".7"
+#define id_nato_mmhs_mm_message_instructions id_mm".8"
+#define id_nato_mmhs_mm_codress_message id_mm".9"
+#define id_nato_mmhs_mm_originator_reference id_mm".10"
+#define id_nato_mmhs_mm_other_recipients_indicator id_mm".11"
+#define id_nato_mmhs_mm_pilot_forwarding_info id_mm".12"
+#define id_nato_mmhs_mm_acp127_message_identifier id_mm".13"
+#define id_nato_mmhs_mm_originator_plad id_mm".14"
+#define id_nato_mmhs_mm_information_labels id_mm".17"
+#define id_nato_mmhs_mm_acp127_notification_request id_mm".15"
+#define id_nato_mmhs_mm_acp127_notification_response id_mm".16"
+#define id_nato_mmhs_hat_primary_precedence id_hat".0"
+#define id_nato_mmhs_hat_copy_precedence id_hat".1"
+#define id_nato_mmhs_hat_message_type  id_hat".2"
+#define id_nato_mmhs_hat_address_list_indicator id_hat".3"
+#define id_nato_mmhs_hat_exempted_address id_hat".4"
+#define id_nato_mmhs_hat_extended_authorisation_info id_hat".5"
+#define id_nato_mmhs_hat_distribution_codes id_hat".6"
+#define id_nato_mmhs_hat_handling_instructions id_hat".7"
+#define id_nato_mmhs_hat_message_instructions id_hat".8"
+#define id_nato_mmhs_hat_codress_message id_hat".9"
+#define id_nato_mmhs_hat_originator_reference id_hat".10"
+#define id_nato_mmhs_hat_other_recipients_indicator id_hat".11"
+#define id_nato_mmhs_hat_pilot_forwarding_info id_hat".12"
+#define id_nato_mmhs_hat_acp127_message_identifier id_hat".13"
+#define id_nato_mmhs_hat_originator_plad id_hat".14"
+#define id_nato_mmhs_hat_acp127_notification_request id_hat".15"
+#define id_nato_mmhs_hat_sic_codes     id_hat".16"
+#define id_nato_mmhs_hat_distribution_extensions id_hat".17"
+#define id_nato_mmhs_hat_body_part_information_label id_hat".18"
+#define id_nato_mmhs_hat_security_information_labels id_hat".19"
+#define id_nato_mmhs_cat               id_cat".0"
+#define id_nato_mmhs_cat_atomal        id_cat".1"
+#define id_nato_mmhs_cat_cryptosecurity id_cat".2"
+#define id_nato_mmhs_cat_specialhandlingintel id_cat".3"
+#define id_nato_mmhs_cat_ussiopesi     id_cat".4"
+#define id_nato_mmhs_cat_eyesonly      id_cat".5"
+#define id_nato_mmhs_cat_exclusive     id_cat".6"
+#define id_nato_mmhs_cat_information_label id_cat".7"
+#define id_nato_mmhs_informationlabel_atomal id_informationlabel".1"
+#define id_nato_mmhs_informationlabel_cryptosecurity id_informationlabel".2"
+#define id_nato_mmhs_informationlabel_specialhandlingintel id_informationlabel".3"
+#define id_nato_mmhs_informationlabel_ussiopesi id_informationlabel".4"
+#define id_nato_mmhs_informationlabel_eyesonly id_informationlabel".5"
+#define id_nato_mmhs_informationlabel_exclusive id_informationlabel".6"
+#define id_nato_mmhs_nat_acp127_notification_response id_nat".0"
+#define id_mct_p772                    id_mcont".1"
 #define ub_military_string             69
 #define ub_military_number_of_sics     8
 #define lb_military_sic                3
@@ -74,8 +173,7 @@ static int proto_s4406 = -1;
 /*--- Included file: packet-s4406-hf.c ---*/
 #line 1 "packet-s4406-hf.c"
 static int hf_s4406_InformationObject_PDU = -1;   /* InformationObject */
-static int hf_s4406_MMMessageData_PDU = -1;       /* MMMessageData */
-static int hf_s4406_MMMessageParameters_PDU = -1;  /* MMMessageParameters */
+static int hf_s4406_Acp127NotificationResponse_PDU = -1;  /* Acp127NotificationResponse */
 static int hf_s4406_ExemptedAddressSeq_PDU = -1;  /* ExemptedAddressSeq */
 static int hf_s4406_ExtendedAuthorisationInfo_PDU = -1;  /* ExtendedAuthorisationInfo */
 static int hf_s4406_DistributionCodes_PDU = -1;   /* DistributionCodes */
@@ -91,18 +189,32 @@ static int hf_s4406_OtherRecipientDesignatorSeq_PDU = -1;  /* OtherRecipientDesi
 static int hf_s4406_PilotInformationSeq_PDU = -1;  /* PilotInformationSeq */
 static int hf_s4406_Acp127MessageIdentifier_PDU = -1;  /* Acp127MessageIdentifier */
 static int hf_s4406_OriginatorPlad_PDU = -1;      /* OriginatorPlad */
-static int hf_s4406_Acp127NotificationType_PDU = -1;  /* Acp127NotificationType */
 static int hf_s4406_SecurityInformationLabels_PDU = -1;  /* SecurityInformationLabels */
 static int hf_s4406_PriorityLevelQualifier_PDU = -1;  /* PriorityLevelQualifier */
+static int hf_s4406_ADatP3Parameters_PDU = -1;    /* ADatP3Parameters */
+static int hf_s4406_ADatP3Data_PDU = -1;          /* ADatP3Data */
+static int hf_s4406_CorrectionsParameters_PDU = -1;  /* CorrectionsParameters */
+static int hf_s4406_CorrectionsData_PDU = -1;     /* CorrectionsData */
+static int hf_s4406_ForwardedEncryptedParameters_PDU = -1;  /* ForwardedEncryptedParameters */
+static int hf_s4406_ForwardedEncryptedData_PDU = -1;  /* ForwardedEncryptedData */
+static int hf_s4406_MMMessageParameters_PDU = -1;  /* MMMessageParameters */
+static int hf_s4406_MMMessageData_PDU = -1;       /* MMMessageData */
+static int hf_s4406_ACP127DataParameters_PDU = -1;  /* ACP127DataParameters */
+static int hf_s4406_ACP127DataData_PDU = -1;      /* ACP127DataData */
+static int hf_s4406_Acp127NotificationType_PDU = -1;  /* Acp127NotificationType */
 static int hf_s4406_mm = -1;                      /* IPM */
 static int hf_s4406_mn = -1;                      /* IPN */
+static int hf_s4406_acp127_notification_type = -1;  /* Acp127NotificationType */
+static int hf_s4406_receipt_time = -1;            /* ReceiptTimeField */
+static int hf_s4406_addressListIndicator = -1;    /* AddressListIndicator */
+static int hf_s4406_acp127_recipient = -1;        /* Acp127Recipient */
+static int hf_s4406_acp127_supp_info = -1;        /* Acp127SuppInfo */
+static int hf_s4406_AddressListIndicator_item = -1;  /* AddressListDesignator */
 static int hf_s4406_ExemptedAddressSeq_item = -1;  /* ExemptedAddress */
 static int hf_s4406_sics = -1;                    /* SEQUENCE_SIZE_1_ub_military_number_of_sics_OF_Sic */
 static int hf_s4406_sics_item = -1;               /* Sic */
 static int hf_s4406_dist_Extensions = -1;         /* SEQUENCE_OF_DistributionExtensionField */
 static int hf_s4406_dist_Extensions_item = -1;    /* DistributionExtensionField */
-static int hf_s4406_dist_type = -1;               /* OBJECT_IDENTIFIER */
-static int hf_s4406_dist_value = -1;              /* T_dist_value */
 static int hf_s4406_HandlingInstructions_item = -1;  /* MilitaryString */
 static int hf_s4406_MessageInstructions_item = -1;  /* MilitaryString */
 static int hf_s4406_message_type_type = -1;       /* TypeMessage */
@@ -116,7 +228,7 @@ static int hf_s4406_OtherRecipientDesignatorSeq_item = -1;  /* OtherRecipientDes
 static int hf_s4406_other_recipient_type = -1;    /* OtherRecipientType */
 static int hf_s4406_designator = -1;              /* MilitaryString */
 static int hf_s4406_PilotInformationSeq_item = -1;  /* PilotInformation */
-static int hf_s4406_pilotPrecedence = -1;         /* PilotPrecedence */
+static int hf_s4406_pilotPrecedence = -1;         /* MMHSPrecedence */
 static int hf_s4406_pilotRecipient = -1;          /* SEQUENCE_OF_ORDescriptor */
 static int hf_s4406_pilotRecipient_item = -1;     /* ORDescriptor */
 static int hf_s4406_pilotSecurity = -1;           /* SecurityLabel */
@@ -128,10 +240,15 @@ static int hf_s4406_body_part_security_labels = -1;  /* SEQUENCE_OF_BodyPartSecu
 static int hf_s4406_body_part_security_labels_item = -1;  /* BodyPartSecurityLabel */
 static int hf_s4406_body_part_security_label = -1;  /* SecurityLabel */
 static int hf_s4406_body_part_sequence_number = -1;  /* BodyPartSequenceNumber */
+static int hf_s4406_lineOriented = -1;            /* IA5String */
+static int hf_s4406_setOriented = -1;             /* T_setOriented */
+static int hf_s4406_setOriented_item = -1;        /* IA5String */
+static int hf_s4406_delivery_time = -1;           /* MessageDeliveryTime */
+static int hf_s4406_delivery_envelope = -1;       /* OtherMessageDeliveryFields */
 /* named bits */
-static int hf_s4406_Acp127NotificationType_negative = -1;
-static int hf_s4406_Acp127NotificationType_positive = -1;
-static int hf_s4406_Acp127NotificationType_transfer = -1;
+static int hf_s4406_Acp127NotificationType_acp127_nn = -1;
+static int hf_s4406_Acp127NotificationType_acp127_pn = -1;
+static int hf_s4406_Acp127NotificationType_acp127_tn = -1;
 
 /*--- End of included file: packet-s4406-hf.c ---*/
 #line 55 "packet-s4406-template.c"
@@ -142,11 +259,12 @@ static gint ett_s4406 = -1;
 /*--- Included file: packet-s4406-ett.c ---*/
 #line 1 "packet-s4406-ett.c"
 static gint ett_s4406_InformationObject = -1;
+static gint ett_s4406_Acp127NotificationResponse = -1;
+static gint ett_s4406_AddressListIndicator = -1;
 static gint ett_s4406_ExemptedAddressSeq = -1;
 static gint ett_s4406_DistributionCodes = -1;
 static gint ett_s4406_SEQUENCE_SIZE_1_ub_military_number_of_sics_OF_Sic = -1;
 static gint ett_s4406_SEQUENCE_OF_DistributionExtensionField = -1;
-static gint ett_s4406_DistributionExtensionField = -1;
 static gint ett_s4406_HandlingInstructions = -1;
 static gint ett_s4406_MessageInstructions = -1;
 static gint ett_s4406_MessageType = -1;
@@ -158,10 +276,14 @@ static gint ett_s4406_PilotInformationSeq = -1;
 static gint ett_s4406_PilotInformation = -1;
 static gint ett_s4406_SEQUENCE_OF_ORDescriptor = -1;
 static gint ett_s4406_SEQUENCE_OF_MilitaryString = -1;
-static gint ett_s4406_Acp127NotificationType = -1;
 static gint ett_s4406_SecurityInformationLabels = -1;
 static gint ett_s4406_SEQUENCE_OF_BodyPartSecurityLabel = -1;
 static gint ett_s4406_BodyPartSecurityLabel = -1;
+static gint ett_s4406_ADatP3Data = -1;
+static gint ett_s4406_T_setOriented = -1;
+static gint ett_s4406_ForwardedEncryptedParameters = -1;
+static gint ett_s4406_MMMessageParameters = -1;
+static gint ett_s4406_Acp127NotificationType = -1;
 
 /*--- End of included file: packet-s4406-ett.c ---*/
 #line 59 "packet-s4406-template.c"
@@ -192,41 +314,81 @@ dissect_s4406_InformationObject(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, in
 }
 
 
+static const asn_namedbit Acp127NotificationType_bits[] = {
+  {  0, &hf_s4406_Acp127NotificationType_acp127_nn, -1, -1, "acp127-nn", NULL },
+  {  1, &hf_s4406_Acp127NotificationType_acp127_pn, -1, -1, "acp127-pn", NULL },
+  {  2, &hf_s4406_Acp127NotificationType_acp127_tn, -1, -1, "acp127-tn", NULL },
+  { 0, NULL, 0, 0, NULL, NULL }
+};
 
 static int
-dissect_s4406_MMMessageData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-  offset = dissect_x420_IPM(implicit_tag, tvb, offset, actx, tree, hf_index);
+dissect_s4406_Acp127NotificationType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
+                                    Acp127NotificationType_bits, hf_index, ett_s4406_Acp127NotificationType,
+                                    NULL);
 
   return offset;
 }
 
 
+static const value_string s4406_AddressListType_vals[] = {
+  {   0, "primaryAddressList" },
+  {   1, "copyAddressList" },
+  { 0, NULL }
+};
+
 
 static int
-dissect_s4406_MMMessageParameters(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-  offset = dissect_x420_MessageParameters(implicit_tag, tvb, offset, actx, tree, hf_index);
+dissect_s4406_AddressListType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+                                                NULL);
 
   return offset;
 }
 
 
+static const value_string s4406_AddressListRequest_vals[] = {
+  {   0, "action" },
+  {   1, "info" },
+  {   2, "both" },
+  { 0, NULL }
+};
+
 
 static int
-dissect_s4406_ExemptedAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-  offset = dissect_x420_ORDescriptor(implicit_tag, tvb, offset, actx, tree, hf_index);
+dissect_s4406_AddressListRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+                                                NULL);
 
   return offset;
 }
 
 
-static const ber_sequence_t ExemptedAddressSeq_sequence_of[1] = {
-  { &hf_s4406_ExemptedAddressSeq_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_s4406_ExemptedAddress },
+static const ber_sequence_t AddressListDesignator_set[] = {
+  { &hf_s4406_address_list_type, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_s4406_AddressListType },
+  { &hf_s4406_listName      , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x420_ORDescriptor },
+  { &hf_s4406_notificationRequest, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_s4406_AddressListRequest },
+  { &hf_s4406_replyRequest  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_s4406_AddressListRequest },
+  { NULL, 0, 0, 0, NULL }
 };
 
 static int
-dissect_s4406_ExemptedAddressSeq(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_s4406_AddressListDesignator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              AddressListDesignator_set, hf_index, ett_s4406_AddressListDesignator);
+
+  return offset;
+}
+
+
+static const ber_sequence_t AddressListIndicator_sequence_of[1] = {
+  { &hf_s4406_AddressListIndicator_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_s4406_AddressListDesignator },
+};
+
+static int
+dissect_s4406_AddressListIndicator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
   offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
-                                      ExemptedAddressSeq_sequence_of, hf_index, ett_s4406_ExemptedAddressSeq);
+                                      AddressListIndicator_sequence_of, hf_index, ett_s4406_AddressListIndicator);
 
   return offset;
 }
@@ -234,8 +396,10 @@ dissect_s4406_ExemptedAddressSeq(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, i
 
 
 static int
-dissect_s4406_ExtendedAuthorisationInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-  offset = dissect_ber_UTCTime(implicit_tag, actx, tree, tvb, offset, hf_index);
+dissect_s4406_Acp127Recipient(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
+                                                        actx, tree, tvb, offset,
+                                                        1, ub_military_bigstring, hf_index, NULL);
 
   return offset;
 }
@@ -243,23 +407,28 @@ dissect_s4406_ExtendedAuthorisationInfo(gboolean implicit_tag _U_, tvbuff_t *tvb
 
 
 static int
-dissect_s4406_Sic(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+dissect_s4406_Acp127SuppInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
   offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
                                                         actx, tree, tvb, offset,
-                                                        lb_military_sic, ub_military_sic, hf_index, NULL);
+                                                        1, ub_military_bigstring, hf_index, NULL);
 
   return offset;
 }
 
 
-static const ber_sequence_t SEQUENCE_SIZE_1_ub_military_number_of_sics_OF_Sic_sequence_of[1] = {
-  { &hf_s4406_sics_item     , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_s4406_Sic },
+static const ber_sequence_t Acp127NotificationResponse_set[] = {
+  { &hf_s4406_acp127_notification_type, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_s4406_Acp127NotificationType },
+  { &hf_s4406_receipt_time  , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x420_ReceiptTimeField },
+  { &hf_s4406_addressListIndicator, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_s4406_AddressListIndicator },
+  { &hf_s4406_acp127_recipient, BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_s4406_Acp127Recipient },
+  { &hf_s4406_acp127_supp_info, BER_CLASS_CON, 4, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_s4406_Acp127SuppInfo },
+  { NULL, 0, 0, 0, NULL }
 };
 
 static int
-dissect_s4406_SEQUENCE_SIZE_1_ub_military_number_of_sics_OF_Sic(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-  offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
-                                                  1, ub_military_number_of_sics, SEQUENCE_SIZE_1_ub_military_number_of_sics_OF_Sic_sequence_of, hf_index, ett_s4406_SEQUENCE_SIZE_1_ub_military_number_of_sics_OF_Sic);
+dissect_s4406_Acp127NotificationResponse(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              Acp127NotificationResponse_set, hf_index, ett_s4406_Acp127NotificationResponse);
 
   return offset;
 }
@@ -267,42 +436,70 @@ dissect_s4406_SEQUENCE_SIZE_1_ub_military_number_of_sics_OF_Sic(gboolean implici
 
 
 static int
-dissect_s4406_OBJECT_IDENTIFIER(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-  offset = dissect_ber_object_identifier(implicit_tag, actx, tree, tvb, offset, hf_index, NULL);
+dissect_s4406_ExemptedAddress(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_x420_ORDescriptor(implicit_tag, tvb, offset, actx, tree, hf_index);
 
   return offset;
 }
 
 
+static const ber_sequence_t ExemptedAddressSeq_sequence_of[1] = {
+  { &hf_s4406_ExemptedAddressSeq_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_s4406_ExemptedAddress },
+};
 
 static int
-dissect_s4406_T_dist_value(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 67 "s4406.cnf"
-/* XXX: not implemented */
+dissect_s4406_ExemptedAddressSeq(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+                                      ExemptedAddressSeq_sequence_of, hf_index, ett_s4406_ExemptedAddressSeq);
+
+  return offset;
+}
+
 
 
+static int
+dissect_s4406_ExtendedAuthorisationInfo(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_UTCTime(implicit_tag, actx, tree, tvb, offset, hf_index);
 
   return offset;
 }
 
 
-static const ber_sequence_t DistributionExtensionField_sequence[] = {
-  { &hf_s4406_dist_type     , BER_CLASS_UNI, BER_UNI_TAG_OID, BER_FLAGS_NOOWNTAG, dissect_s4406_OBJECT_IDENTIFIER },
-  { &hf_s4406_dist_value    , BER_CLASS_ANY, 0, BER_FLAGS_NOOWNTAG, dissect_s4406_T_dist_value },
-  { NULL, 0, 0, 0, NULL }
+
+static int
+dissect_s4406_Sic(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_PrintableString,
+                                                        actx, tree, tvb, offset,
+                                                        lb_military_sic, ub_military_sic, hf_index, NULL);
+
+  return offset;
+}
+
+
+static const ber_sequence_t SEQUENCE_SIZE_1_ub_military_number_of_sics_OF_Sic_sequence_of[1] = {
+  { &hf_s4406_sics_item     , BER_CLASS_UNI, BER_UNI_TAG_PrintableString, BER_FLAGS_NOOWNTAG, dissect_s4406_Sic },
 };
 
+static int
+dissect_s4406_SEQUENCE_SIZE_1_ub_military_number_of_sics_OF_Sic(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_sequence_of(implicit_tag, actx, tree, tvb, offset,
+                                                  1, ub_military_number_of_sics, SEQUENCE_SIZE_1_ub_military_number_of_sics_OF_Sic_sequence_of, hf_index, ett_s4406_SEQUENCE_SIZE_1_ub_military_number_of_sics_OF_Sic);
+
+  return offset;
+}
+
+
+
 static int
 dissect_s4406_DistributionExtensionField(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-  offset = dissect_ber_sequence(implicit_tag, actx, tree, tvb, offset,
-                                   DistributionExtensionField_sequence, hf_index, ett_s4406_DistributionExtensionField);
+  offset = dissect_ber_external_type(implicit_tag, tree, tvb, offset, actx, hf_index, NULL);
 
   return offset;
 }
 
 
 static const ber_sequence_t SEQUENCE_OF_DistributionExtensionField_sequence_of[1] = {
-  { &hf_s4406_dist_Extensions_item, BER_CLASS_UNI, BER_UNI_TAG_SEQUENCE, BER_FLAGS_NOOWNTAG, dissect_s4406_DistributionExtensionField },
+  { &hf_s4406_dist_Extensions_item, BER_CLASS_UNI, BER_UNI_TAG_EXTERNAL, BER_FLAGS_NOOWNTAG, dissect_s4406_DistributionExtensionField },
 };
 
 static int
@@ -385,6 +582,29 @@ dissect_s4406_OriginatorReference(gboolean implicit_tag _U_, tvbuff_t *tvb _U_,
 }
 
 
+static const value_string s4406_MMHSPrecedence_vals[] = {
+  {   0, "deferred" },
+  {   1, "routine" },
+  {   2, "priority" },
+  {   3, "immediate" },
+  {   4, "flash" },
+  {   5, "override" },
+  {  16, "ecp" },
+  {  17, "critic" },
+  {  18, "override" },
+  { 0, NULL }
+};
+
+
+static int
+dissect_s4406_MMHSPrecedence(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+                                                NULL);
+
+  return offset;
+}
+
+
 static const value_string s4406_PrimaryPrecedence_vals[] = {
   {   0, "deferred" },
   {   1, "routine" },
@@ -401,7 +621,7 @@ static const value_string s4406_PrimaryPrecedence_vals[] = {
 
 static int
 dissect_s4406_PrimaryPrecedence(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 72 "s4406.cnf"
+#line 108 "s4406.cnf"
   int precedence = -1;
     offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
                                                 &precedence);
@@ -431,7 +651,7 @@ static const value_string s4406_CopyPrecedence_vals[] = {
 
 static int
 dissect_s4406_CopyPrecedence(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-#line 80 "s4406.cnf"
+#line 116 "s4406.cnf"
   int precedence = -1;
     offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
                                                 &precedence);
@@ -486,56 +706,6 @@ dissect_s4406_MessageType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offs
 }
 
 
-static const value_string s4406_AddressListType_vals[] = {
-  {   0, "primaryAddressList" },
-  {   1, "copyAddressList" },
-  { 0, NULL }
-};
-
-
-static int
-dissect_s4406_AddressListType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
-                                                NULL);
-
-  return offset;
-}
-
-
-static const value_string s4406_AddressListRequest_vals[] = {
-  {   0, "action" },
-  {   1, "info" },
-  {   2, "both" },
-  { 0, NULL }
-};
-
-
-static int
-dissect_s4406_AddressListRequest(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
-                                                NULL);
-
-  return offset;
-}
-
-
-static const ber_sequence_t AddressListDesignator_set[] = {
-  { &hf_s4406_address_list_type, BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_s4406_AddressListType },
-  { &hf_s4406_listName      , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x420_ORDescriptor },
-  { &hf_s4406_notificationRequest, BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_s4406_AddressListRequest },
-  { &hf_s4406_replyRequest  , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_s4406_AddressListRequest },
-  { NULL, 0, 0, 0, NULL }
-};
-
-static int
-dissect_s4406_AddressListDesignator(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
-                              AddressListDesignator_set, hf_index, ett_s4406_AddressListDesignator);
-
-  return offset;
-}
-
-
 static const ber_sequence_t AddressListDesignatorSeq_sequence_of[1] = {
   { &hf_s4406_AddressListDesignatorSeq_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_s4406_AddressListDesignator },
 };
@@ -593,29 +763,6 @@ dissect_s4406_OtherRecipientDesignatorSeq(gboolean implicit_tag _U_, tvbuff_t *t
 }
 
 
-static const value_string s4406_PilotPrecedence_vals[] = {
-  {   0, "deferred" },
-  {   1, "routine" },
-  {   2, "priority" },
-  {   3, "immediate" },
-  {   4, "flash" },
-  {   5, "override" },
-  {  16, "ecp" },
-  {  17, "critic" },
-  {  18, "override" },
-  { 0, NULL }
-};
-
-
-static int
-dissect_s4406_PilotPrecedence(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
-                                                NULL);
-
-  return offset;
-}
-
-
 static const ber_sequence_t SEQUENCE_OF_ORDescriptor_sequence_of[1] = {
   { &hf_s4406_pilotRecipient_item, BER_CLASS_UNI, BER_UNI_TAG_SET, BER_FLAGS_NOOWNTAG, dissect_x420_ORDescriptor },
 };
@@ -643,7 +790,7 @@ dissect_s4406_SEQUENCE_OF_MilitaryString(gboolean implicit_tag _U_, tvbuff_t *tv
 
 
 static const ber_sequence_t PilotInformation_sequence[] = {
-  { &hf_s4406_pilotPrecedence, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_s4406_PilotPrecedence },
+  { &hf_s4406_pilotPrecedence, BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_s4406_MMHSPrecedence },
   { &hf_s4406_pilotRecipient, BER_CLASS_CON, 1, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_s4406_SEQUENCE_OF_ORDescriptor },
   { &hf_s4406_pilotSecurity , BER_CLASS_CON, 2, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_SecurityLabel },
   { &hf_s4406_pilotHandling , BER_CLASS_CON, 3, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_s4406_SEQUENCE_OF_MilitaryString },
@@ -690,23 +837,6 @@ dissect_s4406_OriginatorPlad(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int o
 }
 
 
-static const asn_namedbit Acp127NotificationType_bits[] = {
-  {  0, &hf_s4406_Acp127NotificationType_negative, -1, -1, "negative", NULL },
-  {  1, &hf_s4406_Acp127NotificationType_positive, -1, -1, "positive", NULL },
-  {  2, &hf_s4406_Acp127NotificationType_transfer, -1, -1, "transfer", NULL },
-  { 0, NULL, 0, 0, NULL, NULL }
-};
-
-static int
-dissect_s4406_Acp127NotificationType(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
-  offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
-                                    Acp127NotificationType_bits, hf_index, ett_s4406_Acp127NotificationType,
-                                    NULL);
-
-  return offset;
-}
-
-
 
 static int
 dissect_s4406_BodyPartSequenceNumber(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
@@ -776,6 +906,154 @@ dissect_s4406_PriorityLevelQualifier(gboolean implicit_tag _U_, tvbuff_t *tvb _U
   return offset;
 }
 
+
+
+static int
+dissect_s4406_ADatP3Parameters(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+                                                NULL);
+
+  return offset;
+}
+
+
+
+static int
+dissect_s4406_IA5String(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
+                                            actx, tree, tvb, offset, hf_index,
+                                            NULL);
+
+  return offset;
+}
+
+
+static const ber_sequence_t T_setOriented_sequence_of[1] = {
+  { &hf_s4406_setOriented_item, BER_CLASS_UNI, BER_UNI_TAG_IA5String, BER_FLAGS_NOOWNTAG, dissect_s4406_IA5String },
+};
+
+static int
+dissect_s4406_T_setOriented(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_sequence_of(implicit_tag, actx, tree, tvb, offset,
+                                      T_setOriented_sequence_of, hf_index, ett_s4406_T_setOriented);
+
+  return offset;
+}
+
+
+static const value_string s4406_ADatP3Data_vals[] = {
+  {   0, "lineOriented" },
+  {   1, "setOriented" },
+  { 0, NULL }
+};
+
+static const ber_choice_t ADatP3Data_choice[] = {
+  {   0, &hf_s4406_lineOriented  , BER_CLASS_CON, 0, BER_FLAGS_IMPLTAG, dissect_s4406_IA5String },
+  {   1, &hf_s4406_setOriented   , BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_s4406_T_setOriented },
+  { 0, NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_s4406_ADatP3Data(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_choice(actx, tree, tvb, offset,
+                                 ADatP3Data_choice, hf_index, ett_s4406_ADatP3Data,
+                                 NULL);
+
+  return offset;
+}
+
+
+
+static int
+dissect_s4406_CorrectionsParameters(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+                                                NULL);
+
+  return offset;
+}
+
+
+
+static int
+dissect_s4406_CorrectionsData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
+                                            actx, tree, tvb, offset, hf_index,
+                                            NULL);
+
+  return offset;
+}
+
+
+static const ber_sequence_t ForwardedEncryptedParameters_set[] = {
+  { &hf_s4406_delivery_time , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_MessageDeliveryTime },
+  { &hf_s4406_delivery_envelope, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_OtherMessageDeliveryFields },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_s4406_ForwardedEncryptedParameters(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              ForwardedEncryptedParameters_set, hf_index, ett_s4406_ForwardedEncryptedParameters);
+
+  return offset;
+}
+
+
+
+static int
+dissect_s4406_ForwardedEncryptedData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_bitstring(implicit_tag, actx, tree, tvb, offset,
+                                    NULL, hf_index, -1,
+                                    NULL);
+
+  return offset;
+}
+
+
+static const ber_sequence_t MMMessageParameters_set[] = {
+  { &hf_s4406_delivery_time , BER_CLASS_CON, 0, BER_FLAGS_OPTIONAL|BER_FLAGS_IMPLTAG, dissect_x411_MessageDeliveryTime },
+  { &hf_s4406_delivery_envelope, BER_CLASS_CON, 1, BER_FLAGS_IMPLTAG, dissect_x411_OtherMessageDeliveryFields },
+  { NULL, 0, 0, 0, NULL }
+};
+
+static int
+dissect_s4406_MMMessageParameters(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_set(implicit_tag, actx, tree, tvb, offset,
+                              MMMessageParameters_set, hf_index, ett_s4406_MMMessageParameters);
+
+  return offset;
+}
+
+
+
+static int
+dissect_s4406_MMMessageData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_x420_IPM(implicit_tag, tvb, offset, actx, tree, hf_index);
+
+  return offset;
+}
+
+
+
+static int
+dissect_s4406_ACP127DataParameters(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_integer(implicit_tag, actx, tree, tvb, offset, hf_index,
+                                                NULL);
+
+  return offset;
+}
+
+
+
+static int
+dissect_s4406_ACP127DataData(gboolean implicit_tag _U_, tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) {
+  offset = dissect_ber_constrained_restricted_string(implicit_tag, BER_UNI_TAG_IA5String,
+                                                        actx, tree, tvb, offset,
+                                                        1, ub_data_size, hf_index, NULL);
+
+  return offset;
+}
+
 /*--- PDUs ---*/
 
 static void dissect_InformationObject_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
@@ -783,15 +1061,10 @@ static void dissect_InformationObject_PDU(tvbuff_t *tvb _U_, packet_info *pinfo
   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
   dissect_s4406_InformationObject(FALSE, tvb, 0, &asn1_ctx, tree, hf_s4406_InformationObject_PDU);
 }
-static void dissect_MMMessageData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+static void dissect_Acp127NotificationResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
   asn1_ctx_t asn1_ctx;
   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
-  dissect_s4406_MMMessageData(FALSE, tvb, 0, &asn1_ctx, tree, hf_s4406_MMMessageData_PDU);
-}
-static void dissect_MMMessageParameters_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
-  asn1_ctx_t asn1_ctx;
-  asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
-  dissect_s4406_MMMessageParameters(FALSE, tvb, 0, &asn1_ctx, tree, hf_s4406_MMMessageParameters_PDU);
+  dissect_s4406_Acp127NotificationResponse(FALSE, tvb, 0, &asn1_ctx, tree, hf_s4406_Acp127NotificationResponse_PDU);
 }
 static void dissect_ExemptedAddressSeq_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
   asn1_ctx_t asn1_ctx;
@@ -868,11 +1141,6 @@ static void dissect_OriginatorPlad_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_
   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
   dissect_s4406_OriginatorPlad(FALSE, tvb, 0, &asn1_ctx, tree, hf_s4406_OriginatorPlad_PDU);
 }
-static void dissect_Acp127NotificationType_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
-  asn1_ctx_t asn1_ctx;
-  asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
-  dissect_s4406_Acp127NotificationType(FALSE, tvb, 0, &asn1_ctx, tree, hf_s4406_Acp127NotificationType_PDU);
-}
 static void dissect_SecurityInformationLabels_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
   asn1_ctx_t asn1_ctx;
   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
@@ -883,6 +1151,61 @@ static void dissect_PriorityLevelQualifier_PDU(tvbuff_t *tvb _U_, packet_info *p
   asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
   dissect_s4406_PriorityLevelQualifier(FALSE, tvb, 0, &asn1_ctx, tree, hf_s4406_PriorityLevelQualifier_PDU);
 }
+static void dissect_ADatP3Parameters_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+  asn1_ctx_t asn1_ctx;
+  asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+  dissect_s4406_ADatP3Parameters(FALSE, tvb, 0, &asn1_ctx, tree, hf_s4406_ADatP3Parameters_PDU);
+}
+static void dissect_ADatP3Data_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+  asn1_ctx_t asn1_ctx;
+  asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+  dissect_s4406_ADatP3Data(FALSE, tvb, 0, &asn1_ctx, tree, hf_s4406_ADatP3Data_PDU);
+}
+static void dissect_CorrectionsParameters_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+  asn1_ctx_t asn1_ctx;
+  asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+  dissect_s4406_CorrectionsParameters(FALSE, tvb, 0, &asn1_ctx, tree, hf_s4406_CorrectionsParameters_PDU);
+}
+static void dissect_CorrectionsData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+  asn1_ctx_t asn1_ctx;
+  asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+  dissect_s4406_CorrectionsData(FALSE, tvb, 0, &asn1_ctx, tree, hf_s4406_CorrectionsData_PDU);
+}
+static void dissect_ForwardedEncryptedParameters_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+  asn1_ctx_t asn1_ctx;
+  asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+  dissect_s4406_ForwardedEncryptedParameters(FALSE, tvb, 0, &asn1_ctx, tree, hf_s4406_ForwardedEncryptedParameters_PDU);
+}
+static void dissect_ForwardedEncryptedData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+  asn1_ctx_t asn1_ctx;
+  asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+  dissect_s4406_ForwardedEncryptedData(FALSE, tvb, 0, &asn1_ctx, tree, hf_s4406_ForwardedEncryptedData_PDU);
+}
+static void dissect_MMMessageParameters_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+  asn1_ctx_t asn1_ctx;
+  asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+  dissect_s4406_MMMessageParameters(FALSE, tvb, 0, &asn1_ctx, tree, hf_s4406_MMMessageParameters_PDU);
+}
+static void dissect_MMMessageData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+  asn1_ctx_t asn1_ctx;
+  asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+  dissect_s4406_MMMessageData(FALSE, tvb, 0, &asn1_ctx, tree, hf_s4406_MMMessageData_PDU);
+}
+static void dissect_ACP127DataParameters_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+  asn1_ctx_t asn1_ctx;
+  asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+  dissect_s4406_ACP127DataParameters(FALSE, tvb, 0, &asn1_ctx, tree, hf_s4406_ACP127DataParameters_PDU);
+}
+static void dissect_ACP127DataData_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+  asn1_ctx_t asn1_ctx;
+  asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+  dissect_s4406_ACP127DataData(FALSE, tvb, 0, &asn1_ctx, tree, hf_s4406_ACP127DataData_PDU);
+}
+static void dissect_Acp127NotificationType_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+  asn1_ctx_t asn1_ctx;
+  asn1_ctx_init(&asn1_ctx, ASN1_ENC_BER, TRUE, pinfo);
+  dissect_s4406_Acp127NotificationType(FALSE, tvb, 0, &asn1_ctx, tree, hf_s4406_Acp127NotificationType_PDU);
+}
 
 
 /*--- End of included file: packet-s4406-fn.c ---*/
@@ -927,14 +1250,10 @@ void proto_register_s4406(void) {
       { "InformationObject", "s4406.InformationObject",
         FT_UINT32, BASE_DEC, VALS(x420_InformationObject_vals), 0,
         "s4406.InformationObject", HFILL }},
-    { &hf_s4406_MMMessageData_PDU,
-      { "MMMessageData", "s4406.MMMessageData",
+    { &hf_s4406_Acp127NotificationResponse_PDU,
+      { "Acp127NotificationResponse", "s4406.Acp127NotificationResponse",
         FT_NONE, BASE_NONE, NULL, 0,
-        "s4406.MMMessageData", HFILL }},
-    { &hf_s4406_MMMessageParameters_PDU,
-      { "MMMessageParameters", "s4406.MMMessageParameters",
-        FT_NONE, BASE_NONE, NULL, 0,
-        "s4406.MMMessageParameters", HFILL }},
+        "s4406.Acp127NotificationResponse", HFILL }},
     { &hf_s4406_ExemptedAddressSeq_PDU,
       { "ExemptedAddressSeq", "s4406.ExemptedAddressSeq",
         FT_UINT32, BASE_DEC, NULL, 0,
@@ -995,10 +1314,6 @@ void proto_register_s4406(void) {
       { "OriginatorPlad", "s4406.OriginatorPlad",
         FT_STRING, BASE_NONE, NULL, 0,
         "s4406.OriginatorPlad", HFILL }},
-    { &hf_s4406_Acp127NotificationType_PDU,
-      { "Acp127NotificationType", "s4406.Acp127NotificationType",
-        FT_BYTES, BASE_NONE, NULL, 0,
-        "s4406.Acp127NotificationType", HFILL }},
     { &hf_s4406_SecurityInformationLabels_PDU,
       { "SecurityInformationLabels", "s4406.SecurityInformationLabels",
         FT_NONE, BASE_NONE, NULL, 0,
@@ -1007,6 +1322,50 @@ void proto_register_s4406(void) {
       { "PriorityLevelQualifier", "s4406.PriorityLevelQualifier",
         FT_UINT32, BASE_DEC, VALS(s4406_PriorityLevelQualifier_vals), 0,
         "s4406.PriorityLevelQualifier", HFILL }},
+    { &hf_s4406_ADatP3Parameters_PDU,
+      { "ADatP3Parameters", "s4406.ADatP3Parameters",
+        FT_INT32, BASE_DEC, NULL, 0,
+        "s4406.ADatP3Parameters", HFILL }},
+    { &hf_s4406_ADatP3Data_PDU,
+      { "ADatP3Data", "s4406.ADatP3Data",
+        FT_UINT32, BASE_DEC, VALS(s4406_ADatP3Data_vals), 0,
+        "s4406.ADatP3Data", HFILL }},
+    { &hf_s4406_CorrectionsParameters_PDU,
+      { "CorrectionsParameters", "s4406.CorrectionsParameters",
+        FT_INT32, BASE_DEC, NULL, 0,
+        "s4406.CorrectionsParameters", HFILL }},
+    { &hf_s4406_CorrectionsData_PDU,
+      { "CorrectionsData", "s4406.CorrectionsData",
+        FT_STRING, BASE_NONE, NULL, 0,
+        "s4406.CorrectionsData", HFILL }},
+    { &hf_s4406_ForwardedEncryptedParameters_PDU,
+      { "ForwardedEncryptedParameters", "s4406.ForwardedEncryptedParameters",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "s4406.ForwardedEncryptedParameters", HFILL }},
+    { &hf_s4406_ForwardedEncryptedData_PDU,
+      { "ForwardedEncryptedData", "s4406.ForwardedEncryptedData",
+        FT_BYTES, BASE_NONE, NULL, 0,
+        "s4406.ForwardedEncryptedData", HFILL }},
+    { &hf_s4406_MMMessageParameters_PDU,
+      { "MMMessageParameters", "s4406.MMMessageParameters",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "s4406.MMMessageParameters", HFILL }},
+    { &hf_s4406_MMMessageData_PDU,
+      { "MMMessageData", "s4406.MMMessageData",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "s4406.MMMessageData", HFILL }},
+    { &hf_s4406_ACP127DataParameters_PDU,
+      { "ACP127DataParameters", "s4406.ACP127DataParameters",
+        FT_INT32, BASE_DEC, NULL, 0,
+        "s4406.ACP127DataParameters", HFILL }},
+    { &hf_s4406_ACP127DataData_PDU,
+      { "ACP127DataData", "s4406.ACP127DataData",
+        FT_STRING, BASE_NONE, NULL, 0,
+        "s4406.ACP127DataData", HFILL }},
+    { &hf_s4406_Acp127NotificationType_PDU,
+      { "Acp127NotificationType", "s4406.Acp127NotificationType",
+        FT_BYTES, BASE_NONE, NULL, 0,
+        "s4406.Acp127NotificationType", HFILL }},
     { &hf_s4406_mm,
       { "mm", "s4406.mm",
         FT_NONE, BASE_NONE, NULL, 0,
@@ -1015,6 +1374,30 @@ void proto_register_s4406(void) {
       { "mn", "s4406.mn",
         FT_NONE, BASE_NONE, NULL, 0,
         "x420.IPN", HFILL }},
+    { &hf_s4406_acp127_notification_type,
+      { "acp127-notification-type", "s4406.acp127_notification_type",
+        FT_BYTES, BASE_NONE, NULL, 0,
+        "s4406.Acp127NotificationType", HFILL }},
+    { &hf_s4406_receipt_time,
+      { "receipt-time", "s4406.receipt_time",
+        FT_STRING, BASE_NONE, NULL, 0,
+        "x420.ReceiptTimeField", HFILL }},
+    { &hf_s4406_addressListIndicator,
+      { "addressListIndicator", "s4406.addressListIndicator",
+        FT_UINT32, BASE_DEC, NULL, 0,
+        "s4406.AddressListIndicator", HFILL }},
+    { &hf_s4406_acp127_recipient,
+      { "acp127-recipient", "s4406.acp127_recipient",
+        FT_STRING, BASE_NONE, NULL, 0,
+        "s4406.Acp127Recipient", HFILL }},
+    { &hf_s4406_acp127_supp_info,
+      { "acp127-supp-info", "s4406.acp127_supp_info",
+        FT_STRING, BASE_NONE, NULL, 0,
+        "s4406.Acp127SuppInfo", HFILL }},
+    { &hf_s4406_AddressListIndicator_item,
+      { "AddressListDesignator", "s4406.AddressListDesignator",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "s4406.AddressListDesignator", HFILL }},
     { &hf_s4406_ExemptedAddressSeq_item,
       { "ExemptedAddress", "s4406.ExemptedAddress",
         FT_NONE, BASE_NONE, NULL, 0,
@@ -1035,14 +1418,6 @@ void proto_register_s4406(void) {
       { "DistributionExtensionField", "s4406.DistributionExtensionField",
         FT_NONE, BASE_NONE, NULL, 0,
         "s4406.DistributionExtensionField", HFILL }},
-    { &hf_s4406_dist_type,
-      { "dist-type", "s4406.dist_type",
-        FT_OID, BASE_NONE, NULL, 0,
-        "s4406.OBJECT_IDENTIFIER", HFILL }},
-    { &hf_s4406_dist_value,
-      { "dist-value", "s4406.dist_value",
-        FT_NONE, BASE_NONE, NULL, 0,
-        "s4406.T_dist_value", HFILL }},
     { &hf_s4406_HandlingInstructions_item,
       { "MilitaryString", "s4406.MilitaryString",
         FT_STRING, BASE_NONE, NULL, 0,
@@ -1097,8 +1472,8 @@ void proto_register_s4406(void) {
         "s4406.PilotInformation", HFILL }},
     { &hf_s4406_pilotPrecedence,
       { "pilotPrecedence", "s4406.pilotPrecedence",
-        FT_INT32, BASE_DEC, VALS(s4406_PilotPrecedence_vals), 0,
-        "s4406.PilotPrecedence", HFILL }},
+        FT_INT32, BASE_DEC, VALS(s4406_MMHSPrecedence_vals), 0,
+        "s4406.MMHSPrecedence", HFILL }},
     { &hf_s4406_pilotRecipient,
       { "pilotRecipient", "s4406.pilotRecipient",
         FT_UINT32, BASE_DEC, NULL, 0,
@@ -1143,16 +1518,36 @@ void proto_register_s4406(void) {
       { "body-part-sequence-number", "s4406.body_part_sequence_number",
         FT_INT32, BASE_DEC, NULL, 0,
         "s4406.BodyPartSequenceNumber", HFILL }},
-    { &hf_s4406_Acp127NotificationType_negative,
-      { "negative", "s4406.negative",
+    { &hf_s4406_lineOriented,
+      { "lineOriented", "s4406.lineOriented",
+        FT_STRING, BASE_NONE, NULL, 0,
+        "s4406.IA5String", HFILL }},
+    { &hf_s4406_setOriented,
+      { "setOriented", "s4406.setOriented",
+        FT_UINT32, BASE_DEC, NULL, 0,
+        "s4406.T_setOriented", HFILL }},
+    { &hf_s4406_setOriented_item,
+      { "setOriented item", "s4406.setOriented_item",
+        FT_STRING, BASE_NONE, NULL, 0,
+        "s4406.IA5String", HFILL }},
+    { &hf_s4406_delivery_time,
+      { "delivery-time", "s4406.delivery_time",
+        FT_STRING, BASE_NONE, NULL, 0,
+        "x411.MessageDeliveryTime", HFILL }},
+    { &hf_s4406_delivery_envelope,
+      { "delivery-envelope", "s4406.delivery_envelope",
+        FT_NONE, BASE_NONE, NULL, 0,
+        "x411.OtherMessageDeliveryFields", HFILL }},
+    { &hf_s4406_Acp127NotificationType_acp127_nn,
+      { "acp127-nn", "s4406.acp127-nn",
         FT_BOOLEAN, 8, NULL, 0x80,
         NULL, HFILL }},
-    { &hf_s4406_Acp127NotificationType_positive,
-      { "positive", "s4406.positive",
+    { &hf_s4406_Acp127NotificationType_acp127_pn,
+      { "acp127-pn", "s4406.acp127-pn",
         FT_BOOLEAN, 8, NULL, 0x40,
         NULL, HFILL }},
-    { &hf_s4406_Acp127NotificationType_transfer,
-      { "transfer", "s4406.transfer",
+    { &hf_s4406_Acp127NotificationType_acp127_tn,
+      { "acp127-tn", "s4406.acp127-tn",
         FT_BOOLEAN, 8, NULL, 0x20,
         NULL, HFILL }},
 
@@ -1167,11 +1562,12 @@ void proto_register_s4406(void) {
 /*--- Included file: packet-s4406-ettarr.c ---*/
 #line 1 "packet-s4406-ettarr.c"
     &ett_s4406_InformationObject,
+    &ett_s4406_Acp127NotificationResponse,
+    &ett_s4406_AddressListIndicator,
     &ett_s4406_ExemptedAddressSeq,
     &ett_s4406_DistributionCodes,
     &ett_s4406_SEQUENCE_SIZE_1_ub_military_number_of_sics_OF_Sic,
     &ett_s4406_SEQUENCE_OF_DistributionExtensionField,
-    &ett_s4406_DistributionExtensionField,
     &ett_s4406_HandlingInstructions,
     &ett_s4406_MessageInstructions,
     &ett_s4406_MessageType,
@@ -1183,10 +1579,14 @@ void proto_register_s4406(void) {
     &ett_s4406_PilotInformation,
     &ett_s4406_SEQUENCE_OF_ORDescriptor,
     &ett_s4406_SEQUENCE_OF_MilitaryString,
-    &ett_s4406_Acp127NotificationType,
     &ett_s4406_SecurityInformationLabels,
     &ett_s4406_SEQUENCE_OF_BodyPartSecurityLabel,
     &ett_s4406_BodyPartSecurityLabel,
+    &ett_s4406_ADatP3Data,
+    &ett_s4406_T_setOriented,
+    &ett_s4406_ForwardedEncryptedParameters,
+    &ett_s4406_MMMessageParameters,
+    &ett_s4406_Acp127NotificationType,
 
 /*--- End of included file: packet-s4406-ettarr.c ---*/
 #line 101 "packet-s4406-template.c"
@@ -1223,10 +1623,19 @@ void proto_reg_handoff_s4406(void) {
   register_ber_oid_dissector("1.3.26.0.4406.0.2.13", dissect_Acp127MessageIdentifier_PDU, proto_s4406, "acp127-message-identifier");
   register_ber_oid_dissector("1.3.26.0.4406.0.2.14", dissect_OriginatorPlad_PDU, proto_s4406, "originator-plad");
   register_ber_oid_dissector("1.3.26.0.4406.0.2.15", dissect_Acp127NotificationType_PDU, proto_s4406, "acp127-notification-request");
+  register_ber_oid_dissector("1.3.26.0.4406.0.2.16", dissect_Acp127NotificationResponse_PDU, proto_s4406, "acp127-notification-response");
   register_ber_oid_dissector("1.3.26.0.4406.0.2.17", dissect_SecurityInformationLabels_PDU, proto_s4406, "information-labels");
   register_ber_oid_dissector("1.3.26.0.4406.0.8.0", dissect_PriorityLevelQualifier_PDU, proto_s4406, "priority-level-qualifier");
-  register_ber_oid_dissector("1.3.26.0.4406.0.7.9", dissect_MMMessageData_PDU, proto_s4406, "mm-message");
-  register_ber_oid_dissector("1.3.26.0.4406.0.7.10", dissect_MMMessageParameters_PDU, proto_s4406, "mm-message-parameters");
+  register_ber_oid_dissector(id_nato_mmhs_et_adatp3, dissect_ADatP3Data_PDU, proto_s4406, "adatp3");
+  register_ber_oid_dissector(id_nato_mmhs_et_adatp3_parameters, dissect_ADatP3Parameters_PDU, proto_s4406, "adatp3-parameters");
+  register_ber_oid_dissector(id_nato_mmhs_et_corrections, dissect_CorrectionsData_PDU, proto_s4406, "corrections");
+  register_ber_oid_dissector(id_nato_mmhs_et_corrections_parameters, dissect_CorrectionsParameters_PDU, proto_s4406, "corrections-parameters");
+  register_ber_oid_dissector(id_nato_mmhs_et_forwarded_encrypted, dissect_ForwardedEncryptedData_PDU, proto_s4406, "forwarded-encrypted");
+  register_ber_oid_dissector(id_nato_mmhs_et_forwarded_encrypted_parameters, dissect_ForwardedEncryptedParameters_PDU, proto_s4406, "forwarded-encrypted-parameters");
+  register_ber_oid_dissector(id_nato_mmhs_et_mm_message, dissect_MMMessageData_PDU, proto_s4406, "mm-message");
+  register_ber_oid_dissector(id_nato_mmhs_et_mm_message_parameters, dissect_MMMessageParameters_PDU, proto_s4406, "mm-message-parameters");
+  register_ber_oid_dissector(id_nato_mmhs_et_mm_acp127data, dissect_ACP127DataData_PDU, proto_s4406, "acp127-data");
+  register_ber_oid_dissector(id_nato_mmhs_et_mm_acp127data_parameters, dissect_ACP127DataParameters_PDU, proto_s4406, "acp127-data-parameters");
   register_ber_oid_dissector("2.6.1.4.17.1.3.26.0.4406.0.4.1", dissect_InformationObject_PDU, proto_s4406, "id-et-content-p772");
 
 
index 741505a1b2bfceaa650d1ab29e701f03dfc76caf..c20e03f2aad2d7bbcd0afa70d91d99ee6dd8ab1c 100644 (file)
@@ -1,7 +1,7 @@
 /* Do not modify this file.                                                   */
 /* It is created automatically by the ASN.1 to Wireshark dissector compiler   */
 /* packet-s4406.h                                                             */
-/* ../../tools/asn2wrs.py -b -e -C -p s4406 -c ./s4406.cnf -s ./packet-s4406-template -D . s4406.asn MMSUpperBounds.asn */
+/* ../../tools/asn2wrs.py -b -e -C -p s4406 -c ./s4406.cnf -s ./packet-s4406-template -D . MMSAbstractService.asn MMSInformationObjects.asn MMSOtherNotificationTypeExtensions.asn MMSObjectIdentifiers.asn MMSHeadingExtensions.asn MMSUpperBounds.asn MMSExtendedBodyPartTypes.asn MMSPerRecipientSpecifierExtensions.asn */
 
 /* Input file: packet-s4406-template.h */