diff options
-rw-r--r-- | asn1/s4406/MMSAbstractService.asn | 183 | ||||
-rw-r--r-- | asn1/s4406/MMSExtendedBodyPartTypes.asn | 116 | ||||
-rw-r--r-- | asn1/s4406/MMSHeadingExtensions.asn | 251 | ||||
-rw-r--r-- | asn1/s4406/MMSInformationObjects.asn | 63 | ||||
-rw-r--r-- | asn1/s4406/MMSObjectIdentifiers.asn | 263 | ||||
-rw-r--r-- | asn1/s4406/MMSOtherNotificationTypeExtensions.asn | 57 | ||||
-rw-r--r-- | asn1/s4406/MMSPerRecipientSpecifierExtensions.asn | 35 | ||||
-rw-r--r-- | asn1/s4406/Makefile.common | 6 | ||||
-rw-r--r-- | asn1/s4406/s4406.asn | 302 | ||||
-rw-r--r-- | asn1/s4406/s4406.cnf | 50 | ||||
-rw-r--r-- | epan/dissectors/packet-s4406.c | 767 | ||||
-rw-r--r-- | epan/dissectors/packet-s4406.h | 2 |
12 files changed, 1605 insertions, 490 deletions
diff --git a/asn1/s4406/MMSAbstractService.asn b/asn1/s4406/MMSAbstractService.asn new file mode 100644 index 0000000000..c055ba2341 --- /dev/null +++ b/asn1/s4406/MMSAbstractService.asn @@ -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 index 0000000000..141a07bda0 --- /dev/null +++ b/asn1/s4406/MMSExtendedBodyPartTypes.asn @@ -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 index 0000000000..f336c0e25b --- /dev/null +++ b/asn1/s4406/MMSHeadingExtensions.asn @@ -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 index 0000000000..235d521ab7 --- /dev/null +++ b/asn1/s4406/MMSInformationObjects.asn @@ -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 index 0000000000..e4511264f3 --- /dev/null +++ b/asn1/s4406/MMSObjectIdentifiers.asn @@ -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 index 0000000000..e2332ead84 --- /dev/null +++ b/asn1/s4406/MMSOtherNotificationTypeExtensions.asn @@ -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 index 0000000000..cf5d3d3c9c --- /dev/null +++ b/asn1/s4406/MMSPerRecipientSpecifierExtensions.asn @@ -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 + diff --git a/asn1/s4406/Makefile.common b/asn1/s4406/Makefile.common index 86cdef9855..2ff18ff7cc 100644 --- a/asn1/s4406/Makefile.common +++ b/asn1/s4406/Makefile.common @@ -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 index 0bd58c6d4a..0000000000 --- a/asn1/s4406/s4406.asn +++ /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 diff --git a/asn1/s4406/s4406.cnf b/asn1/s4406/s4406.cnf index 2e75073fba..8324665533 100644 --- a/asn1/s4406/s4406.cnf +++ b/asn1/s4406/s4406.cnf @@ -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 diff --git a/epan/dissectors/packet-s4406.c b/epan/dissectors/packet-s4406.c index 33ba52bc7a..ec1e293436 100644 --- a/epan/dissectors/packet-s4406.c +++ b/epan/dissectors/packet-s4406.c @@ -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"); diff --git a/epan/dissectors/packet-s4406.h b/epan/dissectors/packet-s4406.h index 741505a1b2..c20e03f2aa 100644 --- a/epan/dissectors/packet-s4406.h +++ b/epan/dissectors/packet-s4406.h @@ -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 */ |