(* $Workfile:   p1.tpl  $ $Revision:   3.15  $ *)
(* P1.TPL *)
(*****************************************************************************)
(* ASN.1 P1 (1988) DATA-TYPE TEMPLATE                                        *)
(*                                                                           *)
(* - Used by POP-MTA Transfer-In and Transfer-Out components                 *)
(* - Defines:                                                                *)
(*    - Message Transfer                                                     *)
(*    - Probe Transfer                                                       *)
(*    - Report Transfer                                                      *)
(*                                                                           *)
(* Known simplifications:                                                    *)
(*   - setting of 'S' for potential constructor octet primitives             *)
(*****************************************************************************)

(*****************************************************************************)
(* MESSAGE TRANSFER                                                          *)
(*****************************************************************************)

MessageTransfer            LABEL     = 1msgt
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <1msev, U 17 C,M,0> E,
                                         <Mcont, U  4 S,M,2147483647> }

MessageTransferEnvelope    LABEL     = 1msev
                           STRUCTURE = SET
                           CHILDREN  = { <Mmtid, A  4 C,M,0>  ,
                                         <Morig, A  0 C,M,0> D,
                                         <Meits, A  5 C,O,0> D,
                                         <Mcntt, U  0 P,M,0>DE,
                                         <Mcnti, A 10 P,O,16>D,
                                         <Mprio, A  7 P,D,0> ,
                                         <1pmsg, A  8 S,D,0> ,
                                         <Mddlv, C  0 P,O,0>D,
                                         <1spdi, C  1 C,O,0> ,
                                         <Mtrac, A  9 C,M,0> ,
                                         <Xitrc, A 30 C,O,0> ,
                                         <1pmxf, C  3 C,D,0> ,
                                         <1srcp, C  2 C,M,0> D }

PerMessageExtensionFields  LABEL     = 1pmxf
                           STRUCTURE = SET OF
                           CHILDREN  = { <1pmxt, U 16 C,O,0>  }

PerMessageExtensions       LABEL     = 1pmxt
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <Cxtyp, U  0 P,M,0>DE*,
                                         <Ccrtc, C  1 P,D,2> ,
                                         <1pmxv, C  2 C,D,0>DE  }

PerMessageExtensionValues  LABEL     = 1pmxv
                           STRUCTURE = ANY DEFINED BY
                           TAG       = (C 2 C)
                           DEFGLABEL = Cxtyp
                           REGISTER  = { <01,Xrrpb, U 10 P,0>  ,
                                         <03,Xdlxp, U 10 P,0>  ,
                                         <04,Xcwlp, U 10 P,0>  ,
                                         <05,Xldvt, U 23 P,0>  ,
                                         <0D,Xoret, U 16 C,0>,
                                         <0F,Xoctf, U  0 P,0>DE,
                                         <11,Xccal, U 16 C,0>,
                                         <13,Xochk, U 16 C,0>,
                                         <14,Xmslb, U 17 C,0>,
                                         <17,Xcntc, U  0 P,0>,
                                         <1A,Xdlhs, U 16 C,0>,
                                         <26,Xit8c, U 16 C,0>,
                                         <P,Cpext, U  0 P,0> }

SEQ OF PerDomainBiInfo     LABEL     = 1spdi
                           STRUCTURE = SEQUENCE OF
                           LIMIT     = 512
                           CHILDREN  = { <1pdbi, U 16 C,M,0> }

PerDomainBilateralInfo     LABEL     = 1pdbi
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <Dctry, A  1 C,M,0>E,
                                         <1biac, U  0 P,M,0>E,
                                         <1bifo, U  0 P,O,1024> }

CHOICE {ADMD,SEQ}          LABEL     = 1biac
                           STRUCTURE = CHOICE
                           CHILDREN  = { <Dadmd, A  2 C,O,0>,
                                         <1biad, U 16 C,O,0> }

SEQ {ADMD,PrivDomID}       LABEL     = 1biad
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <1admd, C  0 C,M,0>,
                                         <1pdid, C  1 C,O,0> }

AdministrationDomainName   LABEL     = 1admd
                           STRUCTURE = CHOICE
                           TAG       = (C 0 C)
                           CHILDREN  = { <Dadmp, U 19 P,O,16>,
                                         <Dadmp, U 18 P,O,16>}

PrivateDomainIdentifier    LABEL     = 1pdid
                           STRUCTURE = CHOICE
                           TAG       = (C 1 C)
                           CHILDREN  = { <Cnumc, U 18 P,O,16>,
                                         <Cptbl, U 19 P,O,16>  }

BilateralInfo              LABEL     = 1bifo
                           STRUCTURE = ANY
                           CHILDREN  = {}

SEQ OF PerRecipientInfo    LABEL     = 1srcp
                           STRUCTURE = SEQUENCE OF
                           LIMIT     = 32767
                           CHILDREN  = { <1rcpf, U 17 C,M,0>  }

PerRecipientFields         LABEL     = 1rcpf
                           STRUCTURE = SET
                           CHILDREN  = { <Mrcpn, A  0 C,M,0> ,
                                         <1rnum, C  0 P,M,0> ,
                                         <Morrq, C  1 P,M,0> ,
                                         <Mexcv, C  2 P,O,0> ,
                                         <1mrxf, C  3 C,D,0>  }

PerRecipientExtensionField LABEL     = 1mrxf
                           STRUCTURE = SET OF
                           LIMIT     = 13
                           CHILDREN  = { <1mrxt, U 16 C,O,0> }

PerRecipientExtensions     LABEL     = 1mrxt
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <Cxtyp, U  0 P,M,0>DE*,
                                         <Ccrtc, C  1 P,D,2>  ,
                                         <1mrxv, C  2 C,D,0> E }

PerRecipientExtensionValue LABEL     = 1mrxv
                           STRUCTURE = ANY DEFINED BY
                           TAG       = (C 2 C)
                           DEFGLABEL = Cxtyp
                           REGISTER  = { <02,Xoalt, A  0 C,0>  ,
                                         <06,Xrdms, U 16 C,0>  ,
                                         <07,Xpfwp, U 10 P,0>  ,
                                         <08,Xpfwa, U 10 P,0>  ,
                                         <09,Xpdlm, U  3 P,0>  ,
                                         <0A,Xrmty, U  2 P,0>  ,
                                         <0B,Xrnad, U 20 P,0>  ,
                                         <0C,Xprat, U  6 P,0>  ,
                                         <0E,Xpdrr, U  2 P,0>  ,
                                         <10,Xmtok, U 16 C,0>  ,
                                         <12,Xcick, U 16 C,0>  ,
                                         <16,Xpdvr, U 10 P,0>  ,
                                         <19,Xrhis, U 16 C,0>  ,
                                         <P,Cpext, U  0 P,0> }

OriginallySpecifiedRcptNo  LABEL     = 1rnum
                           STRUCTURE = INTEGER

(*****************************************************************************)
(* PROBE TRANSFER                                                            *)
(*****************************************************************************)

ProbeTransferEnvelope      LABEL     = 1prbt
                           STRUCTURE = SET
                           CHILDREN  = { <Mmtid, A  4 C,M,0>  ,
                                         <Morig, A  0 C,M,0> D,
                                         <Meits, A  5 C,O,0> D,
                                         <Mcntt, U  0 P,M,0>DE,
                                         <Mcnti, A 10 P,O,16> ,
                                         <Mcntl, C  0 P,O,4>DE,
                                         <1pmsg, A  8 S,D,0>  ,
                                         <1spdi, C  1 C,O,0> ,
                                         <Mtrac, A  9 C,M,0> ,
                                         <Xitrc, A 30 C,O,0> ,
                                         <1ppxf, C  3 C,D,0> ,
                                         <1prcp, C  2 C,M,0> D}

PerProbeExtensionFields    LABEL     = 1ppxf
                           STRUCTURE = SET OF
                           LIMIT     = 7
                           CHILDREN  = { <1ppxt, U 16 C,O,0>  }

PerProbeExtensions         LABEL     = 1ppxt
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <Cxtyp, U  0 P,M,0>DE*,
                                         <Ccrtc, C  1 P,D,2>  ,
                                         <1ppxv, C  2 C,D,0>DE }

PerProbeExtensionValues    LABEL     = 1ppxv
                           STRUCTURE = ANY DEFINED BY
                           TAG       = (C 2 C)
                           DEFGLABEL = Cxtyp
                           REGISTER  = { <01,Xrrpb, U 10 P,0>  ,
                                         <03,Xdlxp, U 10 P,0>  ,
                                         <04,Xcwlp, U 10 P,0>  ,
                                         <0F,Xoctf, U  0 P,0>DE,
                                         <14,Xmslb, U 17 C,0>,
                                         <17,Xcntc, U  0 P,0>,
                                         <18,Xpoac, U 16 C,0>,
                                         <1A,Xdlhs, U 16 C,0>,
                                         <26,Xit8c, U 16 C,0>  }

SEQ OF PerRecipientInfo    LABEL     = 1prcp
                           STRUCTURE = SEQUENCE OF
                           LIMIT     = 32767
                           CHILDREN  = { <1prcf, U 17 C,M,0>  }

PerRecipientFields         LABEL     = 1prcf
                           STRUCTURE = SET
                           CHILDREN  = { <Mrcpn, A  0 C,M,0> ,
                                         <1rnum, C  0 P,M,0> ,
                                         <Morrq, C  1 P,M,0> ,
                                         <Mexcv, C  2 P,O,0> ,
                                         <1prxf, C  3 C,D,0>  }

PerRcptProbeExtensionField LABEL     = 1prxf
                           STRUCTURE = SET OF
                           LIMIT     = 4
                           CHILDREN  = { <1prxt, U 16 C,O,0>  }

PerRcptProbeExtensions     LABEL     = 1prxt
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <Cxtyp, U  0 P,M,0>DE*,
                                         <Ccrtc, C  1 P,D,2>  ,
                                         <1prxv, C  2 C,D,0> E }

PerRcptProbeExtensionValue LABEL     = 1prxv
                           STRUCTURE = ANY DEFINED BY
                           TAG       = (C 2 C)
                           DEFGLABEL = Cxtyp
                           REGISTER  = { <02,Xoalt, A  0 C,0> E,
                                         <06,Xrdms, U 16 C,0> E,
                                         <0C,Xprat, U  6 P,0>  ,
                                         <19,Xrhis, U 16 C,0>  ,
                                         <P,Cpext, U  0 P,0> }


(*****************************************************************************)
(* REPORT TRANSFER                                                           *)
(*****************************************************************************)

ReportTransfer             LABEL     = 1rptt
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <1rpte, U 17 C,M,0> ,
                                         <1rptc, U 17 C,M,0>  }

ReportTransferEnvelope     LABEL     = 1rpte
                           STRUCTURE = SET
                           CHILDREN  = { <Mmtid, A  4 C,M,0>  ,
                                         <Dornm, A  0 C,M,0> D,
                                         <Mtrac, A  9 C,M,0> ,
                                         <Xitrc, A 30 C,O,0> ,
                                         <1rtxf, C  1 C,D,0> }

ReportTransferEnvExtFields LABEL     = 1rtxf
                           STRUCTURE = SET OF
                           CHILDREN  = { <1rtxt, U 16 C,O,0> }

ReportTransferEnvExtension LABEL     = 1rtxt
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <Cxtyp, U  0 P,M,0>DE*,
                                         <Ccrtc, C  1 P,D,2>  ,
                                         <1rtxv, C  2 C,D,0> E }

ReportTransferEnvExtValue  LABEL     = 1rtxv
                           STRUCTURE = ANY DEFINED BY
                           TAG       = (C 2 C)
                           DEFGLABEL = Cxtyp
                           REGISTER  = { <14,Xmslb, U 17 C,0> ,
                                         <1E,Xodlh, U 16 C,0> ,
                                         <1F,Xrdln, A  0 C,0> ,
                                         <20,Xrmta, U  0 P,0> E,
                                         <21,Xroac, U 16 C,0> D,
                                         <26,Xit8c, U 16 C,0> ,
                                         <P,Cpext, U  0 P,0> }

ReportTransferContent      LABEL     = 1rptc
                           STRUCTURE = SET
                           CHILDREN  = { <Mmtid, A  4 C,M,0> D,
                                         <Mtrac, A  9 C,O,0> D,
                                         <Meits, A  5 C,O,0> D,
                                         <Mrcnt, U  0 P,O,0>DE,
                                         <Mcnti, A 10 P,O,16>D ,
                                         <1rcon, C  1 S,O,2147483647> ,
                                         <1addi, C  2 C,O,0> D,
                                         <1rcxf, C  3 C,D,0) ,
                                         <1rrcp, C  0 C,M,0> }

ReportXferReturnedContent  LABEL     = 1rcon
                           STRUCTURE = OCTET STRING

AdditionalInformation      LABEL     = 1addi
                           STRUCTURE = ANY
                           TAG       = (C 2 C)
                           CHILDREN  = {}

ReportContentExtField      LABEL     = 1rcxf
                           STRUCTURE = SET OF
                           CHILDREN  = { <1rcxt, U 16 C,O,0> D }

ReportContentExtensions    LABEL     = 1rcxt
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <Cxtyp, U  0 P,M,0>DE*,
                                         <Ccrtc, C  1 P,D,2>  ,
                                         <1rcxv, C  2 C,D,0> E }

ReportContentExtValue      LABEL     = 1rcxv
                           STRUCTURE = ANY DEFINED BY
                           TAG       = (C 2 C)
                           DEFGLABEL = Cxtyp
                           REGISTER  = { <17,Xcntc, U  0 P,0> ,
                                         <P,Cpext, U  0 P,0> }

SEQ OF ReportedRcptFields  LABEL     = 1rrcp
                           STRUCTURE = SEQUENCE OF
                           LIMIT     = 32767
                           CHILDREN  = { <1rrpf, U 17 C,M,0>  }

PerReportRecipientFields   LABEL     = 1rrpf
                           STRUCTURE = SET
                           CHILDREN  = { <Macnm, C  0 C,M,0> ,
                                         <1rnum, C  1 P,M,4> ,
                                         <Morrq, C  2 P,M,0> ,
                                         <1ltrc, C  3 C,M,0> ,
                                         <Mircp, C  4 C,O,0> ,
                                         <Cptbl, C  5 P,O,256> ,
                                         <1rrxf, C  6 C,O,0>  }

ReportRcptExtensionFields  LABEL     = 1rrxf
                           STRUCTURE = SET OF
                           LIMIT     = 4
                           CHILDREN  = { <1rrxt, U 16 C,O,0>  }

ReportRecipientExtensions  LABEL     = 1rrxt
                           STRUCTURE = SEQUENCE
                           CHILDREN  = { <Cxtyp, U  0 P,M,0>DE*,
                                         <Ccrtc, C  1 P,D,2>  ,
                                         <1rrxv, C  2 C,D,0>DE }

ReportRcptExtensionValues  LABEL     = 1rrxv
                           STRUCTURE = ANY DEFINED BY
                           TAG       = (C 2 C)
                           DEFGLABEL = Cxtyp
                           REGISTER  = { <19,Xrhis, U 16 C,0>,
                                         <1B,Xpfad, A  0 C,0>,
                                         <1C,Xrctf, U 16 C,0>,
                                         <1D,Xpdlv, U 16 C,0>,
                                         <P,Cpext, U  0 P,0> }

LastTraceInformation       LABEL     = 1ltrc
                           STRUCTURE = SET
                           CHILDREN  = { <Marrt, C  0 P,M,0>  ,
                                         <Mceit, A  5 C,O,0>  ,
                                         <Mrept, C  1 C,M,0> D }

PerMessageIndicators       LABEL     = 1pmsg
                           STRUCTURE = BITSTRING

(*****************************************************************************)
(* Definition for PDBInfo used for logging or loop detection purposes        *)
(*****************************************************************************)
PDBInfo Log                LABEL     = 1bilg
                           STRUCTURE = CHOICE
                           CHILDREN  = { <1doma, P  0 P,O,1022>,
                                         <1domb, P  1 P,O,1020> }

DomainEntryPoint           LABEL     = 1doma
                           STRUCTURE = PRINTABLE STRING

LoopDetectDN               LABEL     = 1domb
                           STRUCTURE = OCTET STRING

(*****************************************************************************)
(* Definition for AdditionalInformation for loop detection purposes.  Data   *)
(* limited by size limit on 1addi so no need for SEQ_OF size limit.          *)
(*****************************************************************************)
AdditionalInfoLoopDetect   LABEL     = 1addl
                           STRUCTURE = SEQUENCE OF
                           CHILDREN  = { <1domb, P  1 P,O,1020> }


ExchangeRoutingInfo        LABEL     = 1rtgi
                           STRUCTURE = OCTET STRING


!
