-- *****************************************************************
-- WESTERMO-SW6-ICL-MIB :
-- SNMP feature configuration of Westermo devices with SW6.
--
-- Copyright (c) 2020 by Westermo Network Technologies AB
-- All rights reserved.
-- *****************************************************************

-- *****************************************************************
-- This script has been tested using the SMI checker smilint
-- the tool can be downloaded at
-- http://www.ibr.cs.tu-bs.de/projects/libsmi/smilint.html
-- or use alternatively the online version at:
-- http://www.simpleweb.org/ietf/mibs/validate/
--
-- smilint -m -s -l 6 -i nameLength-32 ./WESTERMO-SW6-ICL-MIB
-- Ensure that all needed MIBS are located in the SMIPATH.
-- *****************************************************************

-- **********************************************************************
-- * ICL MIB
-- **********************************************************************

WESTERMO-SW6-ICL-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE,
        Integer32                              FROM SNMPv2-SMI
        DisplayString                          FROM SNMPv2-TC
        MODULE-COMPLIANCE, OBJECT-GROUP        FROM SNMPv2-CONF
    ;

-- **********************************************************************
-- *  MODULE IDENTITY
-- **********************************************************************
icl MODULE-IDENTITY
    LAST-UPDATED "202510160000Z"

    ORGANIZATION "Westermo Network Technologies AB"
    CONTACT-INFO "E-mail: info@westermo.com"
    DESCRIPTION  "MIB Module for the Westermo RT-300 Radio Modem Device - ICL definitions"

    REVISION     "202510160000Z"
    DESCRIPTION  "Release 6.11.6-0"

    ::= { iso(1) org(3) dod(6) internet(1) private(4) enterprises(1)
          westermo(16177) products(1) rt(400) feature(2) 5 }

-- *********************************************************************
-- *  Begin Major sections
-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

--  Configuration
--  =============

    configuration         OBJECT IDENTIFIER ::= { icl 1 }
     cfgIcl               OBJECT IDENTIFIER ::= { configuration 1 }

--  RPCs Remote Procedure Calls
--  ==========================

    rpc                   OBJECT IDENTIFIER ::= { icl 3 }
     rpcIcl               OBJECT IDENTIFIER ::= { rpc 1 }

--  Settings
--  ========

    settings             OBJECT IDENTIFIER ::= { icl 4 }
      setIcl             OBJECT IDENTIFIER ::= { settings 1 }

--  Software
--  ========

    software              OBJECT IDENTIFIER ::= { icl 6 }
     swIcl                OBJECT IDENTIFIER ::= { software 1 }

--  Conformance Information
--  =======================

    conformance           OBJECT IDENTIFIER ::= { icl 10000 }
     groups               OBJECT IDENTIFIER ::= { conformance 1 }
      groupConfiguration  OBJECT IDENTIFIER ::= { groups 1 }
      groupRpc            OBJECT IDENTIFIER ::= { groups 2 }
      groupSettings       OBJECT IDENTIFIER ::= { groups 3 }
      groupSoftware       OBJECT IDENTIFIER ::= { groups 4 }

     compliances          OBJECT IDENTIFIER ::= { conformance 2 }

-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-- *  End Major Sections
-- *********************************************************************



-- *********************************************************************
-- *  Begin Object Types
-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

    cfgIclEnabled OBJECT-TYPE
        SYNTAX INTEGER { disabled(0), enabled(1) }
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
            "Enable Inter-Carriage Link application.

             Applies to AP. 802.11n and 802.11ax products only.
            "
        ::= { cfgIcl 1 }

    cfgIclConnectionDelay OBJECT-TYPE
        SYNTAX Integer32 (0..600)
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
            "Connection delay after a potential ICL partner was first detected.

             This value in conjunction with cfgIclCycleTime defines how
             extensively a potential ICL partner is monitored and analyzed
             before a connection is established.

             Applies to AP. 802.11n and 802.11ax products only.
            "
        ::= { cfgIcl 2 }

    cfgIclConnectionThreshold OBJECT-TYPE
        SYNTAX Integer32 (-99..99)
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
            "This value defines the minimum signal level necessary for the ICL
             application to start evaluating a potential ICL partner.

             Applies to AP. 802.11n and 802.11ax products only.
            "
        ::= { cfgIcl 3 }

    cfgIclDisconnectionDelay OBJECT-TYPE
        SYNTAX Integer32 (1..600)
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
            "Disconnection delay in seconds defines how quickly a connected ICL
             pair resets to scanning mode after after the current ICL partner
             reaches a low signal level or gets disconnected.

             Applies to AP. 802.11n and 802.11ax products only.
            "
        ::= { cfgIcl 4 }

    cfgIclDisconnectionThreshold OBJECT-TYPE
        SYNTAX Integer32 (-99..99)
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
            "This value defines the minimum signal level necessary for a ICL
             pair to stay connected. If the singal level drops below this level
             for longer than in cfgIclDisconnectionDelay specified, the ICL
             application will revert the device do access point and resume scans
             for a new partner.

             Applies to AP. 802.11n and 802.11ax products only.
            "
        ::= { cfgIcl 5 }

    cfgIclInterfaceName OBJECT-TYPE
        SYNTAX DisplayString (SIZE(1..15))
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
            "This value describes the interface the ICL Application will use for
             its services.

             Applies to AP. 802.11n and 802.11ax products only.
            "
        ::= { cfgIcl 6 }

    cfgIclCycleTime OBJECT-TYPE
        SYNTAX Integer32 (2..60)
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
            "Interval of background scans in seconds.

             This value in conjunction with cfgIclConnectionDelay defines how
             extensively a potential ICL partner is monitored and analyzed
             before a connection is established.

             Applies to AP. 802.11n and 802.11ax products only.
            "
        ::= { cfgIcl 7 }

    cfgIclBlacklistTime OBJECT-TYPE
        SYNTAX Integer32 (1..3600)
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
            "Duration of blacklisting in seconds.

             Applies to AP. 802.11n and 802.11ax products only.
            "
        ::= { cfgIcl 8 }

    cfgIclSuspended OBJECT-TYPE
        SYNTAX INTEGER { resumed(0), suspended(1) }
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
            "Initial state of ICL when it starts up.

             Applies to AP. 802.11n and 802.11ax products only.
            "
        ::= { cfgIcl 9 }

-- =============================================================================

  -- ICL

     rpcIclForceDisconnect OBJECT-TYPE
        SYNTAX INTEGER { nop(0), disconnect(1) }
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
            "Force the device to disconnect from the current ICL partner and
             resume background scanning for a new partner.
            "
        ::= { rpcIcl 1 }

     rpcIclClearBlacklist OBJECT-TYPE
        SYNTAX INTEGER { nop(0), clear(1) }
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
            "Clear all currently blacklisted entries.
            "
        ::= { rpcIcl 2 }

-- =============================================================================

  -- ICL

-- Settings
-- ========

    setIclSuspended OBJECT-TYPE
        SYNTAX INTEGER { resumed(0), suspended(1) }
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
            "Suspend or resume ICL operation.

             When suspended, ICL brings down the wireless interface and
             pauses operation. It remains silent until it is resumed."

        ::= { setIcl 1 }

-- =============================================================================

  -- ICL

     swIclStatus OBJECT-TYPE
        SYNTAX INTEGER { disabled(0), scanning(1), connected(2), suspended(3) }
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION
            "Current status of ICL application.

             * **scanning(1):** Scanning indicates Access Point mode with
               background scanning activated.
             * **connected(2):** Connected indicates a connection with an ICL
               partner is established and background scanning is disabled.
             * **suspended(3):** Suspended indicates that ICL is currently
               suspended.
            "
        ::= { swIcl 1 }


-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-- *  End of   Object Types
-- *********************************************************************

-- *********************************************************************
-- *  Begin GROUPS
-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

   groupCfgIcl OBJECT-GROUP
       OBJECTS {
          cfgIclEnabled,
          cfgIclConnectionDelay,
          cfgIclConnectionThreshold,
          cfgIclDisconnectionDelay,
          cfgIclDisconnectionThreshold,
          cfgIclInterfaceName,
          cfgIclCycleTime,
          cfgIclBlacklistTime,
          cfgIclSuspended
          }
        STATUS current
        DESCRIPTION
            "ICL configuration."
        ::= { groupConfiguration 1 }

-- =============================================================================

    groupRpcIcl OBJECT-GROUP
        OBJECTS {
           rpcIclForceDisconnect,
        rpcIclClearBlacklist
           }
        STATUS  current
        DESCRIPTION
            "RPCs for ICL"
        ::= { groupRpc 1 }

-- =============================================================================

    groupSetIcl OBJECT-GROUP
        OBJECTS {
           setIclSuspended
        }
        STATUS  current
        DESCRIPTION
            "Setting for ICL"
        ::= { groupSettings 1 }

-- =============================================================================

    groupSwIcl OBJECT-GROUP
        OBJECTS {
          swIclStatus
           }
        STATUS  current
        DESCRIPTION
            "Software ICL"
        ::= { groupSoftware 1 }


-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-- *  End GROUPS
-- *********************************************************************

-- *********************************************************************
-- *  Begin COMPLIANCE STATEMENTS
-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

    compliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
        "Implementation Requirements for DT50 bindings"
    MODULE  -- this module
        MANDATORY-GROUPS {
            groupCfgIcl,
            groupRpcIcl,
            groupSetIcl,
            groupSwIcl
        }
    ::= { compliances 1 }

-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-- *  End COMPLIANCE STATEMENTS
-- *********************************************************************

-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
-- *  End of MIB DEFINITION
-- *********************************************************************
END


-- *********************************************************************
-- *********************************************************************
