PEA-IF-IPDSLAM DEFINITIONS ::= BEGIN IMPORTS peaIpDslam FROM DIESEL-SMI lineIndex FROM PEA-BRIDGE-IPDSLAM IANAItuProbableCause FROM PEM-STANDARD-TC -- standar X.733 header for the traps managedObjectClass, managedObjectInstance, sequenceNumber, perceivedSeverity, eventTime, eventTypePem, probableCause FROM PEM-STANDARD TruthValue, DisplayString, PhysAddress, AutonomousType, TestAndIncr FROM SNMPv2-TC MODULE-IDENTITY, NOTIFICATION-TYPE, OBJECT-TYPE, Unsigned32, IpAddress, TimeTicks, Gauge32 FROM SNMPv2-SMI OwnerString FROM IF-MIB IANAifType FROM IANAifType-MIB OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF ; peaIfIpDslam MODULE-IDENTITY LAST-UPDATED "200405031200Z" ORGANIZATION "Ericsson Diax A/S - Denmark" CONTACT-INFO " Ericsson Diax A/S Faelledvej 17 DK-7600 Struer Denmark E-mail: support@dxd.ericsson.se " DESCRIPTION " The IP DSLAM software supports a number of standard and proprietary MIBs. Contains the objects for controlling and managing the ADSL interfaces. The MIB is a subset of the IF-MIB, (described in RFC2863), where the objects implemented in the IP DSLAM are copies of the standardized objects. The only reason for not using the standard interface MIB, is that the management system are polling interfaces, and too many interfaces in the IP DSLAM would reduce the number of IP DSLAMs to be managed by one collection station. The currently implemented management system cannot avoid polling all interfaces. Naming convention: 'adsl' was added in front of the parameter name from IF-MIB. " ::= { peaIpDslam 50 } adslIfObjects OBJECT IDENTIFIER ::= { peaIfIpDslam 1 } adslIfTraps OBJECT IDENTIFIER ::= { peaIfIpDslam 2 } adslIfObjectsGoups OBJECT IDENTIFIER ::= { peaIfIpDslam 3 } adslIfTrapsGoups OBJECT IDENTIFIER ::= { peaIfIpDslam 4 } adslIfTableLastChange OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime at the time of the last creation or deletion of an entry in the adslIfTable. If the number of entries has been unchanged since the last re-initialization of the local network management subsystem, then this object contains a zero value." ::= { adslIfObjects 1 } adslIfTable OBJECT-TYPE SYNTAX SEQUENCE OF AdslIfEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A list of interface entries. The number of entries is given by the value of lineIndex." ::= { adslIfObjects 2 } adslIfEntry OBJECT-TYPE SYNTAX AdslIfEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry containing management information applicable to a particular interface." INDEX { lineIndex } ::= { adslIfTable 1 } AdslIfEntry ::= SEQUENCE { adslIfDescr DisplayString, adslIfType IANAifType, adslIfSpeed Gauge32, adslIfPhysAddress PhysAddress, adslIfAdminStatus INTEGER, adslIfOperStatus INTEGER, adslIfLastChange TimeTicks } adslIfDescr OBJECT-TYPE SYNTAX DisplayString (SIZE (0..255)) MAX-ACCESS read-only STATUS current DESCRIPTION "A textual string containing information about the interface. This string should include the name of the manufacturer, the product name and the version of the interface hardware/software." ::= { adslIfEntry 1 } adslIfType OBJECT-TYPE SYNTAX IANAifType MAX-ACCESS read-only STATUS current DESCRIPTION "The type of interface. Additional values for ifType are assigned by the Internet Assigned Numbers Authority (IANA), through updating the syntax of the IANAifType textual convention." ::= { adslIfEntry 2 } adslIfSpeed OBJECT-TYPE SYNTAX Gauge32 UNITS "bits per second" MAX-ACCESS read-only STATUS current DESCRIPTION "An estimate of the interface's current bandwidth in bits per second. For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made, this object should contain the nominal bandwidth. If the bandwidth of the interface is greater than the maximum value reportable by this object then this object should report its maximum value (4,294,967,295) and adslIfHighSpeed must be used to report the interace's speed. For a sub-layer which has no concept of bandwidth, this object should be zero." ::= { adslIfEntry 3 } adslIfPhysAddress OBJECT-TYPE SYNTAX PhysAddress MAX-ACCESS read-only STATUS current DESCRIPTION "The interface's address at its protocol sub-layer. For example, for an 802.x interface, this object normally contains a MAC address. The interface's media-specific MIB must define the bit and byte ordering and the format of the value of this object. For interfaces which do not have such an address (e.g., a serial line), this object should contain an octet string of zero length." ::= { adslIfEntry 4 } adslIfAdminStatus OBJECT-TYPE SYNTAX INTEGER { up(1), -- ready to pass packets down(2), testing(3) -- in some test mode } MAX-ACCESS read-write STATUS current DESCRIPTION "The desired state of the interface. The testing(3) state indicates that no operational packets can be passed. When a managed system initializes, all interfaces start with adslIfAdminStatus in the down(2) state. As a result of either explicit management action or per configuration information retained by the managed system, adslIfAdminStatus is then changed to either the up(1) or testing(3) states (or remains in the down(2) state)." ::= { adslIfEntry 5 } adslIfOperStatus OBJECT-TYPE SYNTAX INTEGER { up(1), -- ready to pass packets down(2), testing(3), -- in some test mode unknown(4), -- status can not be determined -- for some reason. dormant(5), notPresent(6), -- some component is missing lowerLayerDown(7) -- down due to state of -- lower-layer interface(s) } MAX-ACCESS read-only STATUS current DESCRIPTION "The current operational state of the interface. The testing(3) state indicates that no operational packets can be passed. If adslIfAdminStatus is down(2) then adslIfOperStatus should be down(2). If adslIfAdminStatus is changed to up(1) then adslIfOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic; it should change to dormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection); it should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state; it should remain in the notPresent(6) state if the interface has missing (typically, hardware) components." ::= { adslIfEntry 6 } adslIfLastChange OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime at the time the interface entered its current operational state. If the current state was entered prior to the last re-initialization of the local network management subsystem, then this object contains a zero value." ::= { adslIfEntry 7 } adslIfXTable OBJECT-TYPE SYNTAX SEQUENCE OF AdslIfXEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A list of interface entries. The number of entries is given by the value of lineIndex. This table contains additional objects for the interface table." ::= { adslIfObjects 3 } adslIfXEntry OBJECT-TYPE SYNTAX AdslIfXEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry containing additional management information applicable to a particular interface." AUGMENTS { adslIfEntry } ::= { adslIfXTable 1 } AdslIfXEntry ::= SEQUENCE { adslIfName DisplayString, adslIfLinkUpDownTrapEnable INTEGER, adslIfHighSpeed Gauge32, adslIfConnectorPresent TruthValue } adslIfName OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "The textual name of the interface. The value of this object should be the name of the interface as assigned by the local device and should be suitable for use in commands entered at the device's `console'. This might be a text name, such as `le0' or a simple port number, such as `1', depending on the interface naming syntax of the device. If several entries in the adslIfTable together represent a single interface as named by the device, then each will have the same value of adslIfName. Note that for an agent which responds to SNMP queries concerning an interface on some other (proxied) device, then the value of adslIfName for such an interface is the proxied device's local name for it. If there is no local name, or this object is otherwise not applicable, then this object contains a zero- length string." ::= { adslIfXEntry 1 } adslIfLinkUpDownTrapEnable OBJECT-TYPE SYNTAX INTEGER { enabled(1), disabled(2) } MAX-ACCESS read-write STATUS current DESCRIPTION "Indicates whether linkUp/linkDown traps should be generated for this interface. By default, this object should have the value enabled(1) for interfaces which do not operate on 'top' of any other interface (as defined in the ifStackTable), and disabled(2) otherwise." ::= { adslIfXEntry 14 } adslIfHighSpeed OBJECT-TYPE SYNTAX Gauge32 UNITS "1,000,000 bits per second" MAX-ACCESS read-only STATUS current DESCRIPTION "An estimate of the interface's current bandwidth in units of 1,000,000 bits per second. If this object reports a value of `n' then the speed of the interface is somewhere in the range of `n-500,000' to `n+499,999'. For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made, this object should contain the nominal bandwidth. For a sub-layer which has no concept of bandwidth, this object should be zero." ::= { adslIfXEntry 15 } adslIfConnectorPresent OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current DESCRIPTION "This object has the value 'true(1)' if the interface sublayer has a physical connector and the value 'false(2)' otherwise." ::= { adslIfXEntry 17 } adslIfTestTable OBJECT-TYPE SYNTAX SEQUENCE OF AdslIfTestEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table contains one entry per interface. It defines objects which allow a network manager to instruct an agent to test an interface for various faults. Tests for an interface are defined in the media-specific MIB for that interface. After invoking a test, the object adslIfTestResult can be read to determine the outcome. If an agent can not perform the test, adslIfTestResult is set to so indicate. The object adslIfTestCode can be used to provide further test-specific or interface-specific (or even enterprise-specific) information concerning the outcome of the test. Only one test can be in progress on each interface at any one time. If one test is in progress when another test is invoked, the second test is rejected. Some agents may reject a test when a prior test is active on another interface. Before starting a test, a manager-station must first obtain 'ownership' of the entry in the adslIfTestTable for the interface to be tested. This is accomplished with the adslIfTestId and adslIfTestStatus objects as follows: try_again: get (adslIfTestId, adslIfTestStatus) while (adslIfTestStatus != notInUse) /* * Loop while a test is running or some other * manager is configuring a test. */ short delay get (adslIfTestId, adslIfTestStatus) } /* * Is not being used right now -- let's compete * to see who gets it. */ lock_value = adslIfTestId if ( set(adslIfTestId = lock_value, adslIfTestStatus = inUse, adslIfTestOwner = 'my-IP-address') == FAILURE) /* * Another manager got the adslIfTestEntry -- go * try again */ goto try_again; /* * I have the lock */ set up any test parameters. /* * This starts the test */ set(adslIfTestType = test_to_run); wait for test completion by polling adslIfTestResult when test completes, agent sets adslIfTestResult agent also sets adslIfTestStatus = 'notInUse' retrieve any additional test results, and adslIfTestId if (adslIfTestId == lock_value+1) results are valid A manager station first retrieves the value of the appropriate adslIfTestId and adslIfTestStatus objects, periodically repeating the retrieval if necessary, until the value of adslIfTestStatus is 'notInUse'. The manager station then tries to set the same adslIfTestId object to the value it just retrieved, the same adslIfTestStatus object to 'inUse', and the corresponding adslIfTestOwner object to a value indicating itself. If the set operation succeeds then the manager has obtained ownership of the adslIfTestEntry, and the value of the adslIfTestId object is incremented by the agent (per the semantics of TestAndIncr). Failure of the set operation indicates that some other manager has obtained ownership of the adslIfTestEntry. Once ownership is obtained, any test parameters can be setup, and then the test is initiated by setting adslIfTestType. On completion of the test, the agent sets adslIfTestStatus to 'notInUse'. Once this occurs, the manager can retrieve the results. In the (rare) event that the invocation of tests by two network managers were to overlap, then there would be a possibility that the first test's results might be overwritten by the second test's results prior to the first results being read. This unlikely circumstance can be detected by a network manager retrieving adslIfTestId at the same time as retrieving the test results, and ensuring that the results are for the desired request. If adslIfTestType is not set within an abnormally long period of time after ownership is obtained, the agent should time-out the manager, and reset the value of the adslIfTestStatus object back to 'notInUse'. It is suggested that this time-out period be 5 minutes. In general, a management station must not retransmit a request to invoke a test for which it does not receive a response; instead, it properly inspects an agent's MIB to determine if the invocation was successful. Only if the invocation was unsuccessful, is the invocation request retransmitted. Some tests may require the interface to be taken off- line in order to execute them, or may even require the agent to reboot after completion of the test. In these circumstances, communication with the management station invoking the test may be lost until after completion of the test. An agent is not required to support such tests. However, if such tests are supported, then the agent should make every effort to transmit a response to the request which invoked the test prior to losing communication. When the agent is restored to normal service, the results of the test are properly made available in the appropriate objects. Note that this requires that the lineIndex value assigned to an interface must be unchanged even if the test causes a reboot. An agent must reject any test for which it cannot, perhaps due to resource constraints, make available at least the minimum amount of information after that test completes." ::= { adslIfObjects 4 } adslIfTestEntry OBJECT-TYPE SYNTAX AdslIfTestEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry containing objects for invoking tests on an interface." AUGMENTS { adslIfEntry } ::= { adslIfTestTable 1 } AdslIfTestEntry ::= SEQUENCE { adslIfTestId TestAndIncr, adslIfTestStatus INTEGER, adslIfTestType AutonomousType, adslIfTestResult INTEGER, adslIfTestCode OBJECT IDENTIFIER, adslIfTestOwner OwnerString, adslIfTestError IANAItuProbableCause } adslIfTestId OBJECT-TYPE SYNTAX TestAndIncr MAX-ACCESS read-write STATUS current DESCRIPTION "This object identifies the current invocation of the interface's test." ::= { adslIfTestEntry 1 } adslIfTestStatus OBJECT-TYPE SYNTAX INTEGER { notInUse(1), inUse(2) } MAX-ACCESS read-write STATUS current DESCRIPTION "This object indicates whether or not some manager currently has the necessary 'ownership' required to invoke a test on this interface. A write to this object is only successful when it changes its value from 'notInUse(1)' to 'inUse(2)'. After completion of a test, the agent resets the value back to 'notInUse(1)'." ::= { adslIfTestEntry 2 } adslIfTestType OBJECT-TYPE SYNTAX AutonomousType MAX-ACCESS read-write STATUS current DESCRIPTION "A control variable used to start and stop operator- initiated interface tests. Most OBJECT IDENTIFIER values assigned to tests are defined elsewhere, in association with specific types of interface. However, this document assigns a value for a full- duplex loopback test, and defines the special meanings of the subject identifier: noTest OBJECT IDENTIFIER ::= { 0 0 } When the value noTest is written to this object, no action is taken unless a test is in progress, in which case the test is aborted. Writing any other value to this object is only valid when no test is currently in progress, in which case the indicated test is initiated. When read, this object always returns the most recent value that adslIfTestType was set to. If it has not been set since the last initialization of the network management subsystem on the agent, a value of noTest is returned." ::= { adslIfTestEntry 3 } adslIfTestResult OBJECT-TYPE SYNTAX INTEGER { none(1), -- no test yet requested success(2), inProgress(3), notSupported(4), unAbleToRun(5), -- due to state of system aborted(6), failed(7) } MAX-ACCESS read-only STATUS current DESCRIPTION "This object contains the result of the most recently requested test, or the value none(1) if no tests have been requested since the last reset. Note that this facility provides no provision for saving the results of one test when starting another, as could be required if used by multiple managers concurrently." ::= { adslIfTestEntry 4 } adslIfTestCode OBJECT-TYPE SYNTAX OBJECT IDENTIFIER MAX-ACCESS read-only STATUS current DESCRIPTION "This object contains a code which contains more specific information on the test result, for example an error-code after a failed test. Error codes and other values this object may take are specific to the type of interface and/or test. The value may have the semantics of either the AutonomousType or InstancePointer textual conventions as defined in RFC 1903. The identifier: testCodeUnknown OBJECT IDENTIFIER ::= { 0 0 } is defined for use if no additional result code is available." ::= { adslIfTestEntry 5 } adslIfTestOwner OBJECT-TYPE SYNTAX OwnerString MAX-ACCESS read-write STATUS current DESCRIPTION "The entity which currently has the 'ownership' required to invoke a test on this interface." ::= { adslIfTestEntry 6 } adslIfTestError OBJECT-TYPE SYNTAX IANAItuProbableCause MAX-ACCESS read-only STATUS current DESCRIPTION "ITU probable cause values as per [M.3100], [X.733] and [X.736]." ::= { adslIfTestEntry 7 } --************************************************************************ -- definition of interface-related traps. --************************************************************************ adslIfTrapsEntry OBJECT IDENTIFIER ::= { adslIfTraps 0 } linkDown NOTIFICATION-TYPE OBJECTS { managedObjectClass, managedObjectInstance, sequenceNumber, perceivedSeverity, eventTime, eventTypePem, probableCause, adslIfAdminStatus, adslIfOperStatus } STATUS current DESCRIPTION "A linkDown trap signifies that the SNMPv2 entity, acting in an agent role, has detected that the adslIfOperStatus object for one of its communication links is about to enter the down state from some other state (but not from the notPresent state). This other state is indicated by the included value of adslIfOperStatus. Valid from: EDA 1.1R2A Parameters 1: Managed object class IP DSLAM Port 2: Managed object ID (MAC + PortNo) 3: Sequence number (Alarm sequence number) 4: Perceived severity Warning 5: Event time (Timestamp is retrieved from a SNTP server) 6: Event type CommunicationsAlarm 7: Probable cause ExternalPointFailure 8: Administrative state (Administrative state of ADSL line) 9: Operational state (Operational state of ADSL line) Ceasing OID: 1.3.6.1.4.1.193.72.300.50.2.0.2 # linkUp Ceasing OID: 1.3.6.1.4.1.193.72.600.1.2.0.7 # restartAlarm " --Ericsson Diax additional information: --Format: LinkDown trap from: $2; Probable cause: $7; AdminStatus: $8; OperStatus: $9; Sequence Number: $3; --CeasingId: "agent-addr", 2 --CeasingId: "agent-addr", 0 ::= { adslIfTrapsEntry 1 } linkUp NOTIFICATION-TYPE OBJECTS { managedObjectClass, managedObjectInstance, sequenceNumber, perceivedSeverity, eventTime, eventTypePem, probableCause, adslIfAdminStatus, adslIfOperStatus } STATUS current DESCRIPTION "A linkUp trap signifies that the SNMPv2 entity, acting in an agent role, has detected that the adslIfOperStatus object for one of its communication links left the down state and transitioned into some other state (but not into the notPresent state). This other state is indicated by the included value of adslIfOperStatus. Valid from: EDA 1.1R2A Parameters 1: Managed object class IP DSLAM Port 2: Managed object ID (MAC + PortNo) 3: Sequence number (Alarm sequence number) 4: Perceived severity Cleared 5: Event time (Timestamp is retrieved from a SNTP server) 6: Event type CommunicationsAlarm 7: Probable cause ExternalPointFailure 8: Administrative state (Administrative state of ADSL line) 9: Operational state (Operational state of ADSL line) " --Ericsson Diax additional information: --Format: LinkUp trap from: $2; Probable cause: $7; AdminStatus: $8; OperStatus: $9; Sequence Number: $3; ::= { adslIfTrapsEntry 2 } adslIfTableLastChangeGroup OBJECT-GROUP OBJECTS { adslIfTableLastChange } STATUS current DESCRIPTION "Objects for the adslIfTableLastChange Group" ::= { adslIfObjectsGoups 1 } adslIfGroup OBJECT-GROUP OBJECTS { adslIfDescr, adslIfType, adslIfSpeed, adslIfPhysAddress, adslIfAdminStatus, adslIfOperStatus, adslIfLastChange } STATUS current DESCRIPTION "Objects for the AdslIf Group" ::= { adslIfObjectsGoups 2 } adslIfXGroup OBJECT-GROUP OBJECTS { adslIfName, adslIfLinkUpDownTrapEnable, adslIfHighSpeed, adslIfConnectorPresent } STATUS current DESCRIPTION "Objects for the adslIfX Group" ::= { adslIfObjectsGoups 3 } adslIfTestGroup OBJECT-GROUP OBJECTS { adslIfTestId, adslIfTestStatus, adslIfTestType, adslIfTestResult, adslIfTestCode, adslIfTestOwner, adslIfTestError } STATUS current DESCRIPTION "Objects for the adslIfTest Group" ::= { adslIfObjectsGoups 4 } adslIfTrapsGoup NOTIFICATION-GROUP NOTIFICATIONS { linkDown, linkUp } STATUS current DESCRIPTION "Notifications Group" ::= { adslIfTrapsGoups 1 } END