--  =======================================================================
--  File        : osOneIpMng.mib
--  Description : OptiSwitch private One IP Management MIB support
--  By          : Pavel Fridland

-- Copyright (c) 2014 MRV.  All Rights Reserved.
--
--
-- Reproduction of this document is authorized on condition that this
-- copyright notice is included.  This MRV SNMP MIB Specification
-- embodies MRV's proprietary intellectual property.  MRV
-- retains all title and ownership in the specification, including any
-- revisions.
--
-- It is MRV's intent to encourage the widespread use of this
-- specification in connection with the management of MRV's
-- products. MRV grants vendor, end-users, and other interested
-- parties a non-exclusive license to use this specification in
-- connection with the management of MRV's products.
--
-- This specification is supplied "AS IS," and MRV makes no
-- warranty, either express or implied, as to the use, operation,
-- condition, or performance of the specification.
--
-- Copyright text courtesy of MRV
--
-- If you have any questions about this MIB, please call MRV
-- Technical Support Center at 1-800-858-7815 from inside USA or
-- 1-818-773-0900 from outside USA.
--
--
-- MRV retains the right to change this MIB without notification.

OS-ONE-IP-MIB DEFINITIONS ::= BEGIN

     IMPORTS
         OBJECT-TYPE, MODULE-IDENTITY, Unsigned32
         -- ,NOTIFICATION-TYPE,
         -- Integer32, Counter32
             FROM SNMPv2-SMI                                -- [RFC2578]

         MODULE-COMPLIANCE, OBJECT-GROUP
         -- , NOTIFICATION-GROUP
             FROM SNMPv2-CONF                              --  [RFC2580]

         oaOptiSwitch, EntityName
             FROM OS-COMMON-TC-MIB;

osOneIpMng      MODULE-IDENTITY
         LAST-UPDATED "201410150000Z"  -- December 26, 2021
         ORGANIZATION "ADVA Optical, Inc."
         CONTACT-INFO
            "Chris Murch
             ADVA Optical, Inc.
             http://www.mrv.com
             Email: cmurch@mrv.com"
         DESCRIPTION
            "Single IP management MIB."

         REVISION "201410150000Z"  -- December 26, 2021
         DESCRIPTION
            "Initial draft version."

         ::= { oaOptiSwitch 43 }


-- ************************************************************
-- MIB place Definition
-- ************************************************************

osOneIpMngNat               OBJECT IDENTIFIER ::= { osOneIpMng    1 }
osOneIpMngNatGen            OBJECT IDENTIFIER ::= { osOneIpMngNat 1 }
osOneIpMngNatGlb            OBJECT IDENTIFIER ::= { osOneIpMngNat 2 }
osOneIpMngNatConformance    OBJECT IDENTIFIER ::= { osOneIpMng 101 }
osOneIpMngNatMIBCompliances OBJECT IDENTIFIER ::= { osOneIpMngNatConformance  1 }
osOneIpMngNatMIBGroups      OBJECT IDENTIFIER ::= { osOneIpMngNatConformance  2 }

-- ************************************************************
-- Textual conventions
-- ************************************************************

-- ************************************************************
-- OneIP Management scalar objects
-- ************************************************************

osOneIpManagFeatOpStatus OBJECT-TYPE
    SYNTAX  INTEGER {
       enable     (1),
       disable    (2)
    }       
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
       "One IP management feature admin status."
    ::= { osOneIpMngNatGlb 1 }

-- ************************************************************
-- The default protocol ports table
-- ************************************************************
osOneIpMngDefaultTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF OsOneIpMngDefaultEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Contains default protocol ports table.
       Read Only information."
    ::= { osOneIpMngNatGen 2 }

osOneIpMngDefaultEntry   OBJECT-TYPE
    SYNTAX      OsOneIpMngDefaultEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Contains default protocol-port NAT entry."
    INDEX { osOneIpMngDefName }
    ::= { osOneIpMngDefaultTable 1 }

OsOneIpMngDefaultEntry ::= SEQUENCE {
      osOneIpMngDefName          EntityName,	
      osOneIpMngDefTransport       INTEGER,	
      osOneIpMngDefListType        INTEGER,	
      osOneIpMngDefStdFirstPort    Unsigned32,	
      osOneIpMngDefStdLastPort     Unsigned32,	
      osOneIpMngDefAltFirstPort    Unsigned32,	
      osOneIpMngDefAltLastPort     Unsigned32,	
      osOneIpMngDefOperStatus      INTEGER	
      }

osOneIpMngDefName          OBJECT-TYPE
    SYNTAX           EntityName
    MAX-ACCESS       not-accessible
    STATUS           current
    DESCRIPTION
       "Protocol Identifier."
    REFERENCE
      "."
    ::= { osOneIpMngDefaultEntry 1 }

osOneIpMngDefTransport     OBJECT-TYPE
    SYNTAX            INTEGER {
                        tcp (6),
                        udp (17)
                      }
    MAX-ACCESS        read-only
    STATUS            current
    DESCRIPTION
       "IP transport protocol id value."
    ::= { osOneIpMngDefaultEntry 2 }

osOneIpMngDefListType   OBJECT-TYPE
    SYNTAX            INTEGER {
                        single (1),
                        range  (2),
			pair   (3)
                      }
    MAX-ACCESS        read-only
    STATUS            current
    DESCRIPTION
       "Type of the list."
    ::= { osOneIpMngDefaultEntry 3 }

osOneIpMngDefStdFirstPort     OBJECT-TYPE
     SYNTAX           Unsigned32 (1..65535)
     MAX-ACCESS       read-only
     STATUS           current
     DESCRIPTION
        "First of the port value from standard 
         protocol ports value list (range or pair)."
     ::= { osOneIpMngDefaultEntry 4 }

osOneIpMngDefStdLastPort     OBJECT-TYPE
     SYNTAX           Unsigned32 (1..65535)
     MAX-ACCESS       read-only
     STATUS           current
     DESCRIPTION
        "Last of the port value from standard 
         protocol ports value list (range or pair)."
     ::= { osOneIpMngDefaultEntry 5 }

osOneIpMngDefAltFirstPort     OBJECT-TYPE
     SYNTAX           Unsigned32 (0..65535)
     MAX-ACCESS       read-only
     STATUS           current
     DESCRIPTION
        "First of the port value from standard (alternative)
         protocol ports value list (range or pair)."
     ::= { osOneIpMngDefaultEntry 6 }

osOneIpMngDefAltLastPort     OBJECT-TYPE
     SYNTAX           Unsigned32 (0..65535)
     MAX-ACCESS       read-only
     STATUS           current
     DESCRIPTION
        "Last of the port value from not standard (alternative)
         protocol ports value list (range or pair)."
     ::= { osOneIpMngDefaultEntry 7 }

osOneIpMngDefOperStatus   OBJECT-TYPE
    SYNTAX            INTEGER {
                        original  (1),
                        modified  (2),
			removed   (3)
                      }
     MAX-ACCESS       read-only
     STATUS           current
     DESCRIPTION
        "."
     ::= { osOneIpMngDefaultEntry 98 }

-- ************************************************************
-- The configured/running protocol ports table 
-- ************************************************************
osOneIpMngProtoTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF OsOneIpMngProtoEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Contains configured/running protocol ports table.
       Mandatory parameters for entry create: osOneIpMngCfgName, osOneIpMngCfgTransport, 
       osOneIpMngCfgListType, osOneIpMngCfgStdFirstPort, osOneIpMngCfgStdLastPort,
       osOneIpMngCfgAdminStatus.
       In order to create a new entry, you must specify all the mandatory parameters.
       If it is necessary to modify an existing entry, you must first delete it and
       the recreate it with new parameters
       In order to delete an existing entry, you need to specify osOneIpMngCfgName, 
       osOneIpMngCfgAdminStatus."
    ::= { osOneIpMngNatGen 3 }

osOneIpMngProtoEntry   OBJECT-TYPE
    SYNTAX      OsOneIpMngProtoEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Contains protocol-port NAT entry."
    INDEX { osOneIpMngCfgName }
    ::= { osOneIpMngProtoTable 1 }

OsOneIpMngProtoEntry ::= SEQUENCE {
      osOneIpMngCfgName            EntityName,
      osOneIpMngCfgTransport       INTEGER,
      osOneIpMngCfgListType        INTEGER,
      osOneIpMngCfgStdFirstPort    Unsigned32,
      osOneIpMngCfgStdLastPort     Unsigned32,
      osOneIpMngCfgAltFirstPort    Unsigned32,
      osOneIpMngCfgAltLastPort     Unsigned32,
      osOneIpMngCfgOperStatus      INTEGER,
      osOneIpMngCfgAdminStatus     INTEGER
      }

osOneIpMngCfgName          OBJECT-TYPE
    SYNTAX           EntityName
    MAX-ACCESS       not-accessible
    STATUS           current
    DESCRIPTION
       "Protocol Identifier."
    REFERENCE
      "."
    ::= { osOneIpMngProtoEntry 1 }

osOneIpMngCfgTransport     OBJECT-TYPE
    SYNTAX            INTEGER {
                        tcp (6),
                        udp (17)
                      }
    MAX-ACCESS        read-write
    STATUS            current
    DESCRIPTION
       "IP transport protocol id value."
    ::= { osOneIpMngProtoEntry 2 }

osOneIpMngCfgListType   OBJECT-TYPE
    SYNTAX            INTEGER {
                        single (1),
                        range  (2),
			pair   (3)
                      }
    MAX-ACCESS        read-write
    STATUS            current
    DESCRIPTION
       "Type of the list."
    ::= { osOneIpMngProtoEntry 3 }

osOneIpMngCfgStdFirstPort     OBJECT-TYPE
     SYNTAX           Unsigned32 (1..65535)
     MAX-ACCESS       read-write
     STATUS           current
     DESCRIPTION
        "First of the port value from standard 
         protocol ports value list (range or pair)."
     ::= { osOneIpMngProtoEntry 4 }

osOneIpMngCfgStdLastPort     OBJECT-TYPE
     SYNTAX           Unsigned32 (1..65535)
     MAX-ACCESS       read-write
     STATUS           current
     DESCRIPTION
        "Last of the port value from standard 
         protocol ports value list (range or pair)."
     ::= { osOneIpMngProtoEntry 5 }

osOneIpMngCfgAltFirstPort     OBJECT-TYPE
     SYNTAX           Unsigned32 (0..65535)
     MAX-ACCESS       read-write
     STATUS           current
     DESCRIPTION
        "First of the port value from standard (alternative)
         protocol ports value list (range or pair)."
     DEFVAL { 0 }
     ::= { osOneIpMngProtoEntry 6 }

osOneIpMngCfgAltLastPort     OBJECT-TYPE
     SYNTAX           Unsigned32 (0..65535)
     MAX-ACCESS       read-write
     STATUS           current
     DESCRIPTION
        "Last of the port value from not standard (alternative)
         protocol ports value list (range or pair)."
     DEFVAL { 0 }
     ::= { osOneIpMngProtoEntry 7 }

osOneIpMngCfgOperStatus   OBJECT-TYPE
    SYNTAX            INTEGER {
                        defaultOriginal  (1),
                        defaultModified  (2),
                        hotDefault       (3)
                      }
     MAX-ACCESS       read-only
     STATUS           current
     DESCRIPTION
        "."
     ::= { osOneIpMngProtoEntry 98 }
  
osOneIpMngCfgAdminStatus   OBJECT-TYPE
    SYNTAX            INTEGER {
                        valid   (1),
                        invalid (2)
		      }
     MAX-ACCESS       read-write
     STATUS           current
     DESCRIPTION
        "Create (valid) or remove (invalid) entry in table.
	CLI-command for create : 
	'protocol NAME transport (tcp|udp) port LIST' or
	'protocol NAME transport (tcp|udp) port LIST alt-port LIST'.
	CLI-command for remove : 
	'no protocol NAME'."
     ::= { osOneIpMngProtoEntry 99 }
  



-- *******************************************************************
--  Conformance Information 
-- ******************************************************************* 

osOneIpMngNatMIBCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
        "The core compliance statement for all the implementations."

    MODULE -- this module 
        MANDATORY-GROUPS {
                          osOneIpMngNatMandatoryGroup
                         }

    ::= { osOneIpMngNatMIBCompliances 1 }

-- ...................................................................
-- Conformance Groups 
-- ................................................................... 

osOneIpMngNatMandatoryGroup  OBJECT-GROUP
    OBJECTS {
              osOneIpManagFeatOpStatus,
	      osOneIpMngDefTransport, osOneIpMngDefListType, osOneIpMngDefStdFirstPort,
	      osOneIpMngDefStdLastPort, osOneIpMngDefAltFirstPort, osOneIpMngDefAltLastPort,
        osOneIpMngDefOperStatus,
	      osOneIpMngCfgTransport, osOneIpMngCfgListType,
              osOneIpMngCfgStdFirstPort, osOneIpMngCfgStdLastPort, osOneIpMngCfgAltFirstPort,	
	      osOneIpMngCfgAltLastPort, osOneIpMngCfgOperStatus, osOneIpMngCfgAdminStatus
            }
    STATUS current
    DESCRIPTION
        "."

    ::= { osOneIpMngNatMIBGroups 1 }


END
