|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: P T
Length: 12938 (0x328a)
Types: TextFile
Names: »P1.py«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0
└─⟦dc59850a2⟧ »EurOpenD22/pp5.0/pp-5.tar.Z«
└─⟦e5a54fb17⟧
└─⟦this⟧ »pp-5.0/Tools/mpp84/P1.py«
-- P1.py - MHS P1 definitions
-- @(#) $Header: /cs/research/pp/hubris/pp-beta/Tools/mpp84/RCS/P1.py,v 5.0 90/09/20 16:27:55 pp Exp Locker: pp $
--
-- $Log: P1.py,v $
-- Revision 5.0 90/09/20 16:27:55 pp
-- rcsforce : 5.0 public release
--
--
P1 DEFINITIONS ::=
%{
#ifndef lint
static char *rcsid = "$Header: /cs/research/pp/hubris/pp-beta/Tools/mpp84/RCS/P1.py,v 5.0 90/09/20 16:27:55 pp Exp Locker: pp $";
#endif lint
void parse_p2 ();
%}
BEGIN
PRINTER print
-- P1 makes use of types defined in the following module:
-- Sa: Recommendation S.a[14]
-- T73: T.73, Section 5
MPDU ::=
CHOICE {
usermpdu
[0] IMPLICIT UserMPDU,
ServiceMPDU
}
ServiceMPDU ::=
CHOICE {
reportmpdu [1]
IMPLICIT DeliveryReportMPDU,
probempdu [2]
IMPLICIT ProbeMPDU
}
UserMPDU ::=
SEQUENCE {
envelope
UMPDUEnvelope,
content
UMPDUContent
}
UMPDUEnvelope ::=
SET {
mpduID
MPDUIdentifier,
originator
ORName,
encodedtypes
EncodedInformationTypes
OPTIONAL,
contentype
ContentType,
uacontentID
UAContentId OPTIONAL,
priority
Priority DEFAULT normal,
permsgflag
PerMessageFlag DEFAULT {},
deferredDelivery[0]
IMPLICIT Time
OPTIONAL,
perdomain [1]
IMPLICIT SEQUENCE OF PerDomainBilateralInfo
OPTIONAL,
recipient [2]
IMPLICIT SEQUENCE OF RecipientInfo,
trace
TraceInformation
}
UMPDUContent ::=
OCTETSTRING
%{ parse_p2 ($$, $$_len); %}
-- time
Time ::=
UniversalTime
-- various envelope information
MPDUIdentifier ::=
[APPLICATION 4] IMPLICIT SEQUENCE {
globalid
GlobalDomainIdentifier,
IA5String
}
ContentType ::=
[APPLICATION 6]
IMPLICIT INTEGER {
p2(2)
}
UAContentId ::=
[APPLICATION 10]
IMPLICIT PrintableString
Priority ::=
[APPLICATION 7]
IMPLICIT INTEGER {
normal(0),
nonUrgent(1),
urgent(2)
}
PerMessageFlag ::=
[APPLICATION 8]
IMPLICIT BITSTRING {
discloseRecipients(0),
conversionProhibited(1),
alternateRecipientAllowed(2),
contentReturnRequest(3)
}
-- per-domain bilateral information
PerDomainBilateralInfo ::=
SEQUENCE {
country
CountryName,
admd
AdministrationDomainName,
bilateralinfo
BilateralInfo
}
BilateralInfo ::=
ANY
-- recipient information
RecipientInfo ::=
SET {
recipname
ORName,
extensionid [0]
IMPLICIT ExtensionIdentifier,
perecipflag [1]
IMPLICIT PerRecipientFlag,
explicitconversion [2]
IMPLICIT ExplicitConversion DEFAULT {}
}
ExtensionIdentifier ::=
INTEGER
PerRecipientFlag ::=
BITSTRING -- See Figure 23/X.411
ExplicitConversion ::=
INTEGER {
iA5TextTeletex(0),
teletexTelex(1)
}
-- trace information
TraceInformation ::=
[APPLICATION 9]
IMPLICIT SEQUENCE OF SEQUENCE {
domainid
GlobalDomainIdentifier,
domainsupplied
DomainSuppliedInfo
}
DomainSuppliedInfo ::=
SET {
arrival [0]
IMPLICIT Time,
deferred [1]
IMPLICIT Time
OPTIONAL,
action [2]
IMPLICIT INTEGER {
relayed(0),
rerouted(1)
},
encodedtypes
EncodedInformationTypes
OPTIONAL,
previous
GlobalDomainIdentifier OPTIONAL
}
-- global domain identifier
GlobalDomainIdentifier ::=
[APPLICATION 3]
IMPLICIT SEQUENCE {
country
CountryName,
admd
AdministrationDomainName,
prmd
PrivateDomainIdentifier OPTIONAL
}
CountryName ::=
[APPLICATION 1]
CHOICE {
NumericString,
PrintableString
}
AdministrationDomainName ::=
[APPLICATION 2]
CHOICE {
NumericString,
PrintableString
}
PrivateDomainIdentifier ::=
CHOICE {
NumericString,
PrintableString
}
-- O/R name
ORName ::=
[APPLICATION 0]
IMPLICIT SEQUENCE {
standard
StandardAttributeList,
domaindefined
DomainDefinedAttributeList
OPTIONAL
}
StandardAttributeList ::=
SEQUENCE {
country
CountryName OPTIONAL,
admd
AdministrationDomainName OPTIONAL,
x121 [0]
IMPLICIT X121Address OPTIONAL,
terminalID [1]
IMPLICIT TerminalID OPTIONAL,
prmd [2]
PrivateDomainName OPTIONAL,
org [3]
IMPLICIT OrganizationName OPTIONAL,
uaID [4]
IMPLICIT UniqueUAIdentifier OPTIONAL,
pname [5]
IMPLICIT PersonalName
OPTIONAL,
orgUnit [6]
IMPLICIT SEQUENCE OF OrganizationalUnit OPTIONAL
}
DomainDefinedAttributeList ::=
SEQUENCE OF DomainDefinedAttribute
DomainDefinedAttribute ::=
SEQUENCE {
type
PrintableString,
value
PrintableString
}
X121Address ::=
NumericString
TerminalID ::=
PrintableString
OrganizationName ::=
PrintableString
UniqueUAIdentifier ::=
NumericString
PersonalName ::=
SET {
surName [0]
IMPLICIT PrintableString,
givenName [1]
IMPLICIT PrintableString
OPTIONAL,
initials [2]
IMPLICIT PrintableString
OPTIONAL,
generalQualifier [3]
IMPLICIT PrintableString
OPTIONAL
}
OrganizationalUnit ::=
PrintableString
PrivateDomainName ::=
CHOICE {
NumericString,
PrintableString
}
-- encoded information types
EncodedInformationTypes ::=
[APPLICATION 5] IMPLICIT SET {
bitstring [0]
IMPLICIT BITSTRING {
undefined(0),
tLX(1),
iA5Text(2),
g3Fax(3),
tIF0(4),
tTX(5),
videotex(6),
voice(7),
sFD(8),
tIF1(9)
},
[1]
IMPLICIT G3NonBasicParams
OPTIONAL,
[2]
IMPLICIT TeletexNonBasicParams
OPTIONAL,
[3]
IMPLICIT PresentationCapabilities
OPTIONAL
-- other non-basic parameters are for further study
}
G3NonBasicParams ::=
BITSTRING {
twoDimensional(8),
fineResolution(9),
unlimitedLength(20),
b4Length(21),
a3Width(22),
b4Width(23),
uncompressed(30)
}
TeletexNonBasicParams ::=
SET {
graphicCharacterSets[0]
IMPLICIT T61String OPTIONAL,
controlCharacterSets[1]
IMPLICIT T61String OPTIONAL,
pageFormats[2]
IMPLICIT OCTETSTRING OPTIONAL,
miscTerminalCapabilities[3]
IMPLICIT T61String OPTIONAL,
privateUse[4]
IMPLICIT OCTETSTRING OPTIONAL
}
PresentationCapabilities ::=
T73.PresentationCapabilities
-- Delivery Report MPDU
DeliveryReportMPDU ::=
SEQUENCE {
envelope
DeliveryReportEnvelope,
content
DeliveryReportContent
}
DeliveryReportEnvelope ::=
SET {
report
MPDUIdentifier,
originator
ORName,
TraceInformation
}
DeliveryReportContent ::=
SET {
original
MPDUIdentifier,
intermediate
TraceInformation OPTIONAL,
uacontentID
UAContentId OPTIONAL,
reprecip [0]
IMPLICIT SEQUENCE OF ReportedRecipientInfo,
returned [1]
IMPLICIT UMPDUContent OPTIONAL,
billingInformation [2]
ANY
OPTIONAL
}
ReportedRecipientInfo ::=
SET {
recipient[0]
IMPLICIT ORName,
extensionID [1]
IMPLICIT ExtensionIdentifier,
perecipflag [2]
IMPLICIT PerRecipientFlag,
lastrace [3]
IMPLICIT LastTraceInformation,
intendedRecipient[4]
IMPLICIT ORName
OPTIONAL,
additional [5]
IMPLICIT SupplementaryInformation OPTIONAL
}
-- last trace information
LastTraceInformation ::=
SET {
arrival [0]
IMPLICIT Time,
encodedtypes
EncodedInformationTypes
OPTIONAL,
report [1]
Report
}
Report ::=
CHOICE {
delivered [0]
IMPLICIT DeliveredInfo,
nondelivered [1]
IMPLICIT NonDeliveredInfo
}
DeliveredInfo ::=
SET {
delivery [0]
IMPLICIT Time,
typeOfUA [1]
IMPLICIT INTEGER {
public(0),
private(1)
} DEFAULT public
}
NonDeliveredInfo::=
SET {
reason [0]
IMPLICIT ReasonCode,
diagnostic [1]
IMPLICIT DiagnosticCode OPTIONAL
}
ReasonCode ::=
INTEGER {
transferFailure(0),
unableToTransfer(1),
conversionNotPerformed(2)
}
DiagnosticCode ::=
INTEGER {
unrecognizedORName(0),
ambiguousORName(1),
mtaCongestion(2),
loopDetected(3),
uaUnavailable(4),
maximumTimeExpired(5),
encodedInformationTypesUnsupported(6),
contentTooLong(7),
conversionImpractical(8),
conversionProhibited(9),
implicitConversionNotResgistered(10),
invalidParameters(11)
}
-- supplementary information
SupplementaryInformation ::=
PrintableString -- length limited and for further study
-- Probe MPDU
ProbeMPDU ::=
ProbeEnvelope
ProbeEnvelope ::=
SET {
probeid
MPDUIdentifier,
originator
ORName,
ContentType,
UAContentId OPTIONAL,
encodedtypes
EncodedInformationTypes
OPTIONAL,
TraceInformation,
PerMessageFlag DEFAULT {},
contentLength[0]
IMPLICIT INTEGER
OPTIONAL,
[1]
IMPLICIT SEQUENCE OF PerDomainBilateralInfo
OPTIONAL,
[2]
IMPLICIT SEQUENCE OF RecipientInfo
}
END
%{
void adios ();
void parse_p2 (octstr, len)
char *octstr;
int len;
{
PS ps;
PE pe;
if ((ps = ps_alloc (str_open)) == NULLPS)
adios (NULLCP, "ps_alloc");
if (str_setup (ps, octstr, len, 0) == NOTOK)
adios (NULLCP, "str_setup (%s)", ps_error (ps -> ps_errno));
if ((pe = ps2pe (ps)) == NULLPE)
adios (NULLCP, "ps2pe (%s)", ps_error (ps -> ps_errno));
(void) print_P2_UAPDU (pe, 1, NULLIP, NULLVP, NullParm);
pe_free (pe);
ps_free (ps);
}
%}