|
|
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: T m
Length: 6250 (0x186a)
Types: TextFile
Names: »mib.py«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0
└─⟦e83f91978⟧ »EurOpenD22/isode/osimis-2.0.tar.Z«
└─⟦d846658bd⟧
└─⟦this⟧ »osimis/sma/mib.py«
--
-- Copyright (c) 1988 University College London
-- All rights reserved.
--
-- Redistribution and use in source and binary forms are permitted
-- provided that the above copyright notice and this paragraph are
-- duplicated in all such forms and that any documentation,
-- advertising materials, and other materials related to such
-- distribution and use acknowledge that the software was developed
-- by the Department of Computer Science, University College London.
-- The name of the University may not be used to
-- endorse or promote products derived from this software without
-- specific prior written permission.
-- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
-- IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
-- WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
--
-- pepy directives for encoding and decoding of the MIB attribute types
-- By Simon Walton, October 1988
-- Modified by George Pavlou, April 1990
MIB DEFINITIONS ::=
%{
#include <stdio.h>
#include "isode/rosap.h"
#include "msap.h"
#include "smi.h"
typedef caddr_t PEPYPARM;
extern int M_This_Con;
%}
PREFIXES encode decode print
BEGIN
IMPORTS DistinguishedName FROM IF
{ joint-iso-ccitt ds(5) modules(1) informationFramework(1) };
SECTIONS build parse none
Counter [[P Counter *]] ::= INTEGER [[i parm -> Value]]
Gauge [[P Gauge *]] ::= INTEGER [[i parm -> Value]]
ENCODER build
EventId ::= INTEGER (0 .. 4294967295)
TideMark ::= SEQUENCE
{
currentValue INTEGER (0 .. 4294967295),
previousValue INTEGER (0 .. 4294967295),
lastResetTime GeneralizedTime
}
-- Threshold attributes
ComparisonLevels [[P struct ComparisonLevels *]] %{int i; %} ::=
SET OF
<< i = 0; i < 10; i++ >>
ComparisonLevel [[i parm -> levels[i] ]]
%{ if (parm ->levels[i] == COMP_LEVEL_FREE) break; %}
ComparisonLevel ::= INTEGER (0 .. 4294967295)
-- Defined event
DefinedEvent [[P DefinedEvent *]]
%{ MO_ID ** p; DN dn; %} ::= SET OF
<<p = parm -> rcis; *p != NULL && p < &parm -> rcis[3]; p++>>
DistinguishedName [[p dn = moid2dn(*p)]]
%{ dn_free(dn); %}
-- Report destinations
ReportDestinationList [[P struct destinations **]] ::= SET OF
<<; *parm; parm = & (*parm) -> Next>>
ReportDestination [[p *parm]]
ReportDestination [[P struct destinations *]] ::= CHOICE
<< parm -> type + 1>>
{
pAddress [2] IMPLICIT PAddress [[p &parm -> Psap_dest ]],
aEInfo [3] IMPLICIT NULL, -- for future use
thisConnection [1] IMPLICIT NULL
}
PAddress [[P struct PSAPaddr *]] ::= SEQUENCE
%{ if (parm == NULL) return (NOTOK); %}
{
pSelector Selector [[o parm -> pa_selector $ parm -> pa_selectlen]],
sAddress SAddress [[p &parm -> pa_addr ]]
}
SAddress [[P struct SSAPaddr *]] ::= SEQUENCE
%{ if (parm == NULL) return (NOTOK); %}
{
sSelector Selector [[o parm -> sa_selector $ parm -> sa_selectlen]],
tAddress TAddress [[p &parm -> sa_addr]]
}
TAddress [[P struct TSAPaddr *]] ::= SEQUENCE
%{ if (parm == NULL) return (NOTOK); %}
{
tSelector Selector [[o parm -> ta_selector $ parm -> ta_selectlen]],
nAddress NAddress [[p &parm -> ta_addrs[0] ]]
}
NAddress [[P struct NSAPaddr *]] %{char s[100]; %} ::=
%{
if (parm == NULL) return (NOTOK);
switch (parm -> na_type)
{
case NA_TCP:
sprintf(s, "TCP %.*s %d", NSAP_DOMAINLEN, parm->na_domain, parm->na_port);
break;
case NA_BRG:
case NA_X25:
sprintf(s, "X.25 %.*s", NSAP_DTELEN, parm -> na_dte);
break;
case NA_NSAP:
bcopy("NSAP ", s, 5);
bcopy(&parm -> na_address[NASIZE-16], s+5,
16 + sizeof(struct NSAPaddr) - NASIZE - 2*sizeof(long));
s[21 + sizeof(struct NSAPaddr) - NASIZE - 2*sizeof(long)] = '\0';
break;
} /* close switch */
%}
Selector [[o s $ strlen(s)]] -- hack for pepy
Selector ::= OCTETSTRING
TAddressList [[P struct TSAPaddr **]] %{int i;%} ::= SET OF
<< i = 0 ;*parm && i < len; i++ >>
TAddress [[p *parm++]]
T-ProtocolState [[P int *]] ::= ENUMERATED [[i *parm]]
{
undefined (0),
tp0 (1),
tp1 (2),
tp2 (3),
tp3 (4),
tp4 (5)
}
DECODER parse
-- Threshold attributes
ComparisonLevels [[P ComparisonLevels *]] %{int i; %}::=
%{ for (i = 0; i < 10; i++)
parm ->levels[i] = COMP_LEVEL_FREE; i = 0; %}
SET OF ComparisonLevel [[i parm -> levels[i++] ]]
%{ if ( i > 10) return (NOTOK); %}
ComparisonLevel ::= INTEGER
-- Defined event
DefinedEvent [[P DefinedEvent *]]
%{ int i = 0; DN dn; %} ::= SET OF
DistinguishedName [[p &dn]]
%{ parm -> rcis[i++] = dn2moid(dn); dn_free(dn); %}
%{ while (i < 3) parm -> rcis[i++] = (MO_ID *) NULL; %}
-- ReportControlId [[P DN *]] ::= ManagedObjectId [[p parm]]
-- Report destinations
ReportDestination [[P struct destinations *]] ::= CHOICE
{
pAddress [2] IMPLICIT PAddress [[p &parm -> Psap_dest ]]
%{parm -> type = RCI_DEST_PSAP; %},
-- aEInfo DistinguishedName,
thisConnection [1] IMPLICIT NULL %{parm -> Fd_dest = M_This_Con;
parm -> type = RCI_DEST_FD; %}
}
PAddress [[P struct PSAPaddr* ]] %{char * cp; %} ::= SEQUENCE
{
pSelector Selector [[o cp $ parm -> pa_selectlen ]]
%{ bcopy(cp, parm -> pa_selector, parm -> pa_selectlen);
free(cp); %},
sAddress SAddress [[p &parm -> pa_addr ]]
}
SAddress [[P struct SSAPaddr*]] %{char * cp; %} ::= SEQUENCE
{
sSelector Selector [[o cp $ parm -> sa_selectlen ]]
%{ bcopy(cp, parm -> sa_selector, parm -> sa_selectlen);
free(cp); %},
tAddress TAddress [[p &parm -> sa_addr ]]
}
TAddress [[P struct TSAPaddr*]] %{char * cp; %} ::= SEQUENCE
{
tSelector Selector [[o cp $ parm -> ta_selectlen ]]
%{ bcopy(cp, parm -> ta_selector, parm -> ta_selectlen);
free(cp); %},
nAddress NAddress [[p &parm -> ta_addrs[0] ]]
}
NAddress [[P struct NSAPaddr* ]] %{char * cp; %} ::=
OCTETSTRING [[s cp]]
%{ strncpy(parm -> na_domain, cp, NASIZE);
parm -> na_tset = NA_TSET_TCP;
parm -> na_type = NA_TCP;
free(cp); %}
Selector ::= OCTETSTRING
END