RGBN-PIF-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, enterprises, IpAddress
        FROM SNMPv2-SMI
    DisplayString, TruthValue, MacAddress, RowStatus
        FROM SNMPv2-TC
    RgbnAdminState, RgbnOperState, RgbnUID
        FROM RGBN-BASE-MIB;

rgbnPifMIB MODULE-IDENTITY
    LAST-UPDATED    "200905180000Z" -- 18-may-2009, midnight
    ORGANIZATION    "RGB Networks"
    CONTACT-INFO    "Postal:
                        RGB Networks Inc
                        390 West Java Drive
                        Sunnyvale, CA 94089

                    WEB:
                        http://www.rgbnetworks.com
                        
                    Email:
                        info@rgbnetworks.com
                    "
    DESCRIPTION
        "Port and interface management
            
        Copyright (C) RGB Networks."
            
    -- revision descriptions in reverse chronological order
    REVISION        "200905180000Z" -- 18-may-2009, midnight
    DESCRIPTION
        "Initial Version of MIB module."
    ::= { enterprises rgbnetworks(19601) rgbnG2Modules(3) 5 }

-- Top level OID branches
rgbnPifNotifications  OBJECT IDENTIFIER ::= { rgbnPifMIB 0 }
rgbnPifObjects        OBJECT IDENTIFIER ::= { rgbnPifMIB 1 }
rgbnPifConformance    OBJECT IDENTIFIER ::= { rgbnPifMIB 2 }
rgbnPifCompliances    OBJECT IDENTIFIER ::= { rgbnPifConformance 1 }
rgbnPifGroups         OBJECT IDENTIFIER ::= { rgbnPifConformance 2 }

-- textual conventions

  -- none defined in this MIB module

-- +++++++++++++++++++++++++++++++++++++++++++

-- Ports

rgbnPifComPortTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RgbnPifComPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of common attributes of ports. The number of entries in the
        table is the sum of the ports on cards presently or pre-provisioned in
        the system in 'main slots'."
    ::= { rgbnPifObjects 1 }

rgbnPifComPortEntry OBJECT-TYPE
    SYNTAX      RgbnPifComPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A row in the Ethernet-type ports table. No row creation or deletion
        is supported via SNMP operations."
    INDEX { rgbnPifComPortUid }
    ::= { rgbnPifComPortTable 1 }

RgbnPifComPortEntry ::= SEQUENCE {
    rgbnPifComPortUid                RgbnUID,
    rgbnPifComPortAdminState         RgbnAdminState,
    rgbnPifComPortOperState          RgbnOperState,
    rgbnPifComPortFailReas           DisplayString,
    rgbnPifComPortName               DisplayString 
    }

rgbnPifComPortUid OBJECT-TYPE
    SYNTAX      RgbnUID
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The identifier of the port. The UID value must have 
        the type set to a 'physical component', the component
        type set to 'port', slot type set to 'main slots',
        the 'slot number' to the slot number of the card containing
        the port, the daughter card type and number set appropriately,
        the port type set to the type of port, and the port
        number set to the port."
    ::= { rgbnPifComPortEntry 1 }

rgbnPifComPortAdminState OBJECT-TYPE
    SYNTAX      RgbnAdminState
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The admin state of the port." 
    ::= { rgbnPifComPortEntry 2 }

rgbnPifComPortOperState OBJECT-TYPE
    SYNTAX      RgbnOperState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The oper state of the port." 
    ::= { rgbnPifComPortEntry 3 }

rgbnPifComPortFailReas OBJECT-TYPE
    SYNTAX      DisplayString(SIZE(0..64))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A possible description of the failure reason when
        a port has oper state of 'down'. Otherwise, the
        value is a zero length string." 
    ::= { rgbnPifComPortEntry 4 }

rgbnPifComPortName OBJECT-TYPE
    SYNTAX      DisplayString(SIZE(0..64))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The name of the port as it is shown in the CLI
        of the system." 
    ::= { rgbnPifComPortEntry 5 }
    
-- +++++++++++++++++++++++++++++++++++++++++++

rgbnPifEthPortTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RgbnPifEthPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of Ethernet-type ports. The number of entries in the
        table is the sum of the Ethernet-type ports on cards presently
        or pre-provisioned in the system in 'main slots'."
    ::= { rgbnPifObjects 2 }

rgbnPifEthPortEntry OBJECT-TYPE
    SYNTAX      RgbnPifEthPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A row in the Ethernet-type ports table. No row creation or deletion
        is supported via SNMP operations."
    INDEX { rgbnPifEthPortUid }
    ::= { rgbnPifEthPortTable 1 }

RgbnPifEthPortEntry ::= SEQUENCE {
    rgbnPifEthPortUid                RgbnUID,
    rgbnPifEthPortAutoNeg            TruthValue,
    rgbnPifEthPortPhyMacAddr         MacAddress,
    rgbnPifEthPortVirtMacAddr        MacAddress,
    rgbnPifEthPortMacSrc             INTEGER,
    rgbnPifEthPortMirroredPort       Unsigned32,
    rgbnPifEthPortAmpLoopback        TruthValue
    }

rgbnPifEthPortUid OBJECT-TYPE
    SYNTAX      RgbnUID
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The identifier of the port. The UID value must have 
        the type set to a 'physical component', the component
        type set to 'port', slot type set to 'main slots',
        the 'slot number' to the slot number of the card containing
        the port, the daughter card type and number set appropriately,
        the port type set to the type of port (which must be a
        Ethernet-type port), and the port number set to the port."
    ::= { rgbnPifEthPortEntry 1 }

rgbnPifEthPortAutoNeg OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Indicates if auto-negotiation is turned on. A value of
        'true(1)' enables and a value of 'false(2)' disables
        auto-negotiation."
    ::= { rgbnPifEthPortEntry 2 }

rgbnPifEthPortPhyMacAddr OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The MAC address of the port from hardware or EEPROM."
    ::= { rgbnPifEthPortEntry 3 }

rgbnPifEthPortVirtMacAddr OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The virtual MAC address of the port. If none have been
        configured, the value is 00:00:00:00:00:00."
    ::= { rgbnPifEthPortEntry 4 }

rgbnPifEthPortMacSrc OBJECT-TYPE
    SYNTAX      INTEGER {
                    phy(1),
                    virt(2)
                    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The source of the MAC address used by the port."
    ::= { rgbnPifEthPortEntry 5 }

rgbnPifEthPortMirroredPort OBJECT-TYPE
    SYNTAX      Unsigned32(0..8)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "If the Port Mirrored is enabled, the value is 0. Otherwise,
         the value represents as Mirrored Port."
    ::= { rgbnPifEthPortEntry 6 }

rgbnPifEthPortAmpLoopback OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Indicates if AMP loopback is enable or disable. A value of
        'true(1)' enables  AMP Loopback Interface and a value of 
        'false(2)' disables AMP Loopback"
    ::= { rgbnPifEthPortEntry 7 }


-- +++++++++++++++++++++++++++++++++++++++++++

-- Interfaces

rgbnPifComIfTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RgbnPifComIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of common attributes of interfaces. The number of entries
        is configuration dependent, and is typically one per interface that
        supports the IP protocol."
    ::= { rgbnPifObjects 3 }

rgbnPifComIfEntry OBJECT-TYPE
    SYNTAX      RgbnPifComIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A row in the interfaces table. Row creation and deletion
        is supported via SNMP operations on object rgbnPifComIfRowStatus.
        Only the 'createAndGo' and 'destroy' operations are supported.
        On creation, the value must be specified for object 
        rgbnPifComIfIpAddr, and may be specified for objects
        rgbnPifComIfNetMask, rgbnPifComIfAdminState, rgbnPifComIfDescr,
        and rgbnPifComIfStrictArp."
    INDEX { rgbnPifComIfUid }
    ::= { rgbnPifComIfTable 1 }

RgbnPifComIfEntry ::= SEQUENCE {
    rgbnPifComIfUid                  RgbnUID,
    rgbnPifComIfRowStatus            RowStatus,
    rgbnPifComIfIpAddr               IpAddress,
    rgbnPifComIfNetMask              IpAddress,
    rgbnPifComIfDescr                DisplayString,
    rgbnPifComIfAdminState           RgbnAdminState,
    rgbnPifComIfOperState            RgbnOperState,
    rgbnPifComIfFailReas             DisplayString,
    rgbnPifComIfName                 DisplayString,
    rgbnPifComIfStrictArp            TruthValue,
    rgbnPifComIfPhys1IpAddr          IpAddress,
    rgbnPifComIfPhys2IpAddr          IpAddress 
    }
    
rgbnPifComIfUid OBJECT-TYPE
    SYNTAX      RgbnUID
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The identifier of the interface. The UID value must have 
        the type set to a 'network interface', the 'slot number'
        to the slot number of the card containing the port,
        reserved bits set to zero, the port type set to the
        type of port, and the port number set to the port,
        and the sub-interface ID set."
    ::= { rgbnPifComIfEntry 1 }

rgbnPifComIfRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
         "The status of the row. Only 'one-shot creation' is allowed.
        The value of any writable object in this table can be modified
        when the value is 'active(1)'."
    ::= { rgbnPifComIfEntry 2 }

rgbnPifComIfIpAddr OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The IP address of the interface. The value must be a
        valid uni-cast address not currently used by any other
        interface. Also, the network portion of the address
        must not be the same as any other interface. (The network
        portion is determined by ANDing the value of the the
        IP address and network mask.)"
    ::= { rgbnPifComIfEntry 3 }

rgbnPifComIfNetMask OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The network mask for the IP address of the interface."
    DEFVAL { 'ffffff00'h }  -- 255.255.255.0
    ::= { rgbnPifComIfEntry 4 }

rgbnPifComIfDescr OBJECT-TYPE
    SYNTAX      DisplayString(SIZE(0..64))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The description of the interface."
    DEFVAL { "" }
    ::= { rgbnPifComIfEntry 5 }

rgbnPifComIfAdminState OBJECT-TYPE
    SYNTAX      RgbnAdminState
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The admin state of the interface."
    DEFVAL { enable }
    ::= { rgbnPifComIfEntry 6 }

rgbnPifComIfOperState OBJECT-TYPE
    SYNTAX      RgbnOperState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The oper state of the interface."
    ::= { rgbnPifComIfEntry 7 }
        
rgbnPifComIfFailReas OBJECT-TYPE
    SYNTAX      DisplayString(SIZE(0..64))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "A possible description of the failure reason when
        an interface has oper state of 'down'. Otherwise, the
        value is a zero length string." 
    ::= { rgbnPifComIfEntry 8 }

rgbnPifComIfName OBJECT-TYPE
    SYNTAX      DisplayString(SIZE(0..64))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The name of the interface as shown in the CLI." 
    ::= { rgbnPifComIfEntry 9 }

rgbnPifComIfStrictArp OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Indicates if 'strict ARP' is turned on. A value of
        'true(1)' enables and a value of 'false(2)' disables
        strict ARP. When on, an ARP request received on the interface
        will result in an ARP response only when the IP address
        in the request matches the IP address configured for
        the interface. Otherwise, an ARP response will be sent
        if any interface on the system is configured with the
        IP address in the ARP request."
    DEFVAL { true }
    ::= { rgbnPifComIfEntry 10 }

rgbnPifComIfPhys1IpAddr OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The Physical IP address 1 of the interface. The value 
         must be a valid uni-cast address not currently used 
         by any other interface. Also, the network portion of
         the address must not be the same as rgbnPifCommIfIpAddr 
         interface."
    ::= { rgbnPifComIfEntry 11 }

rgbnPifComIfPhys2IpAddr OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The Physical IP address 2 of the interface. The value 
         must be a valid uni-cast address not currently used 
         by any other interface. Also, the network portion of
         the address must not be the same as rgbnPifCommIfIpAddr 
         interface."
    ::= { rgbnPifComIfEntry 12 }

-- +++++++++++++++++++++++++++++++++++++++++++

-- IP configuration

rgbnPifIpGlobalCfg OBJECT IDENTIFIER ::= { rgbnPifObjects 4}

rgbnPifIpDefGw OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The IP address of the system's default gateway. If none
        is configured, the value is 0.0.0.0."
    ::= { rgbnPifIpGlobalCfg 1 }
    
rgbnPifSysIpAddr OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The system's IP address, which is also called the 'virtual
        IP address'. If none is configured, the value is 0.0.0.0."
    ::= { rgbnPifIpGlobalCfg 2 }
    
rgbnPifSysNetMask OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The netmask for the system's IP address (which is also
        called the 'virtual IP address'). If not is configured,
        the value is 0.0.0.0."
    ::= { rgbnPifIpGlobalCfg 3 }
    
END
