DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T m

⟦7374372b0⟧ TextFile

    Length: 6250 (0x186a)
    Types: TextFile
    Names: »mib.py«

Derivation

└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0
    └─⟦e83f91978⟧ »EurOpenD22/isode/osimis-2.0.tar.Z« 
        └─⟦d846658bd⟧ 
            └─⟦this⟧ »osimis/sma/mib.py« 

TextFile

--
-- 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