-- *****************************************************************
-- DELL-NETWORKING-SYSTEM-COMPONENT-MIB
--
--
-- Copyright (c) 2003-2014 by Dell Inc. All Rights Reserved.
-- All rights reserved.
-- *****************************************************************
--

DELL-NETWORKING-SYSTEM-COMPONENT-MIB DEFINITIONS ::= BEGIN

IMPORTS

        MODULE-IDENTITY, OBJECT-TYPE,Integer32
            FROM SNMPv2-SMI
        MODULE-COMPLIANCE,
        OBJECT-GROUP
            FROM SNMPv2-CONF
		DisplayString
			FROM RFC1213-MIB
        dellNetMgmt
            FROM DELL-NETWORKING-SMI
        DellNetCamPartitionType
            FROM DELL-NETWORKING-TC
        ;
 
dellNetSysComponentMib   MODULE-IDENTITY
        LAST-UPDATED    "201108020000Z"
        ORGANIZATION    "Dell Inc"
        CONTACT-INFO
            "http://www.dell.com/support"        

        DESCRIPTION
            "Dell Networking OS System component MIB.
            Dell Networking OS System component allow user to view the SW information 
            of a component in the system. 

            Currently, the available component information that are avaibale 
            are
		1)  CAM Entries on linecard
                  - Overall system CAM usage table
		  - L2 Ingress or Egress CAM Usage 
		  - L3 Ingress or Egress CAM Usage 
		  - L3Ext Table CAM Usage (Specific to S-series L3 tables-Broadcom pltforms) 

            "
        ::= { dellNetMgmt 7 }   


dellNetSysComponentObjects  OBJECT IDENTIFIER ::= { dellNetSysComponentMib 1 }
dellNetCamEntries           OBJECT IDENTIFIER ::= { dellNetSysComponentObjects 1 } 
dellNetSysComponentTrap     OBJECT IDENTIFIER ::= { dellNetSysComponentObjects 2 } 

-- TEXTUAL-CONVENTION
--  Status
--    mandatory
--  Descr

camUsageTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CamUsageEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A table of general CAM usages table."
    ::= { dellNetCamEntries 1 }

camUsageEntry OBJECT-TYPE
    SYNTAX CamUsageEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A table of CAM usage table.  
         The table show the different partition of CAM
	"

    INDEX { camUsageSlot, camUsagePipeNum, camUsagePartId }
    ::= { camUsageTable 1 }


CamUsageEntry ::= SEQUENCE {

    camUsageSlot 		Integer32,
    camUsagePipeNum 		Integer32,
    camUsagePartId 		DellNetCamPartitionType,
    camUsagePartDesc            DisplayString, 
    camUsageTotal 		Integer32,
    camUsageUsed 		Integer32

    }

camUsageSlot OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "
        The slot number of linecard where the CAM is located
        "
    ::= { camUsageEntry 1 }

camUsagePipeNum OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "
        The port pipe number on the linecard where the CAM is located
        "
    ::= { camUsageEntry 2 }

camUsagePartId OBJECT-TYPE
    SYNTAX DellNetCamPartitionType
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "
        The partition id of the CAM on the line card.
        "
    ::= { camUsageEntry 3 }

camUsagePartDesc     OBJECT-TYPE
    SYNTAX        DisplayString
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
       "The description of the CAM partition id."
    ::= { camUsageEntry 4 }

camUsageTotal OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS    read-only
    STATUS current
    DESCRIPTION
        "
        The total cam size allocated to this CAM partition
        "
    ::= { camUsageEntry 5 }

camUsageUsed OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS    read-only
    STATUS current
    DESCRIPTION
        "
        The total cam used or configured  to this CAM partition
        "
    ::= { camUsageEntry 6 }


-- End of General CAM Usage Entry


camUsageL2Table OBJECT-TYPE
    SYNTAX SEQUENCE OF CamUsageL2Entry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A table of Layer 2 or switch layer CAM usages table."
    ::= { dellNetCamEntries 2 }

camUsageL2Entry OBJECT-TYPE
    SYNTAX CamUsageL2Entry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A table of Layer 2 (switch layer ) CAM usage table.  
         The table show the different partition of CAM and if the cam
         is used in the Ingress or Egress.  
	"

    INDEX { camUsageL2Slot, camUsageL2PipeId, camUsageL2PipeLine }
    ::= { camUsageL2Table 1 }

CamUsageL2Entry ::= SEQUENCE {

    camUsageL2Slot 		Integer32,
    camUsageL2PipeId 		Integer32,
    camUsageL2IngAclTotal 	Integer32,
    camUsageL2IngAclUsed 	Integer32,
    camUsageL2IngFibTotal 	Integer32,
    camUsageL2IngFibUsed 	Integer32,
    camUsageL2EgrAclTotal 	Integer32,
    camUsageL2EgrAclUsed 	Integer32,
    camUsageL2PipeLine      Integer32
    }

camUsageL2Slot OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "
        The slot number of linecard where the CAM is located
        "
    ::= { camUsageL2Entry 1 }

camUsageL2PipeId OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "
        The port pipe number on the linecard where the CAM is located
        "
    ::= { camUsageL2Entry 2 }

camUsageL2IngAclTotal OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS    read-only
    STATUS current
    DESCRIPTION
        "
        The total cam size allocated to layer 2 ingress ACL
        "
    ::= { camUsageL2Entry 3 }

camUsageL2IngAclUsed OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS    read-only
    STATUS current
    DESCRIPTION
        "
        The total cam used or configured in layer 2 ingress ACL
        "
    ::= { camUsageL2Entry 4 }

camUsageL2IngFibTotal OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS    read-only
    STATUS current
    DESCRIPTION
        "
        The total cam size allocated to layer 2 ingress FIB
        "
    ::= { camUsageL2Entry 7 }

camUsageL2IngFibUsed OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS    read-only
    STATUS current
    DESCRIPTION
        "
        The total cam used or configured in layer 2 ingress FIB
        "
    ::= { camUsageL2Entry 8 }

camUsageL2EgrAclTotal OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS    read-only
    STATUS current
    DESCRIPTION
        "
        The total cam size allocated to layer 2 Egress ACL
        "
    ::= { camUsageL2Entry 9 }

camUsageL2EgrAclUsed OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS    read-only
    STATUS current
    DESCRIPTION
        "
        The total cam used or configured in layer 2 Egress Acl 
        "
    ::= { camUsageL2Entry 10 }

camUsageL2PipeLine  OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "
        The Pipeline number of the chip where the CAM is located
        "
    ::= { camUsageL2Entry 11 }


-- End of camUsageL2Entry


camUsageL3Table OBJECT-TYPE
    SYNTAX SEQUENCE OF CamUsageL3Entry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A table of Layer 3 or router layer CAM usages table."
    ::= { dellNetCamEntries 3 }

camUsageL3Entry OBJECT-TYPE
    SYNTAX CamUsageL3Entry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A table of Layer 3 (router layer ) CAM usage table.
         The table show the different partition of CAM and if the cam
         is used in the Ingress or Egress.
        "
    INDEX { camUsageL3Slot, camUsageL3PipeId, camUsageL3PipeLine}
    ::= { camUsageL3Table 1 }

CamUsageL3Entry ::= SEQUENCE {

    camUsageL3Slot 		Integer32,
    camUsageL3PipeId 		Integer32,
    camUsageL3IngFibTotal 	Integer32,
    camUsageL3IngFibUsed 	Integer32,
    camUsageL3IngSysFlowTotal 	Integer32,
    camUsageL3IngSysFlowUsed 	Integer32,
    camUsageL3IngTrcListTotal 	Integer32,
    camUsageL3IngTrcListUsed 	Integer32,
    camUsageL3IngMcastFibTotal 	Integer32,
    camUsageL3IngMcastFibUsed 	Integer32,
    camUsageL3IngQosTotal 	Integer32,
    camUsageL3IngQosUsed 	Integer32,
    camUsageL3IngPbrTotal 	Integer32,
    camUsageL3IngPbrUsed 	Integer32,
    camUsageL3IngAclTotal 	Integer32,
    camUsageL3IngAclUsed 	Integer32,
    camUsageL3EgrAclTotal 	Integer32,
    camUsageL3EgrAclUsed 	Integer32,
    camUsageL3PipeLine      Integer32
}

camUsageL3Slot OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "
        The slot number of linecard where the CAM is located
        "
    ::= { camUsageL3Entry 1 }

camUsageL3PipeId OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "
        The port pipe number on the linecard where the CAM is located
        "
    ::= { camUsageL3Entry 2 }

camUsageL3IngFibTotal OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS    read-only
    STATUS current
    DESCRIPTION
        "
        The total cam size allocated to layer 3 ingress FIB
        "
    ::= { camUsageL3Entry 3 }

camUsageL3IngFibUsed OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS    read-only
    STATUS current
    DESCRIPTION
        "
        The total cam used or configured in layer 3 ingress FIB
        "
    ::= { camUsageL3Entry 4 }

camUsageL3IngSysFlowTotal OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS    read-only
    STATUS current
    DESCRIPTION
        "
        The total cam size allocated to layer 3 ingress system flow
        "
    ::= { camUsageL3Entry 5 }

camUsageL3IngSysFlowUsed OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS    read-only
    STATUS current
    DESCRIPTION
        "
        The total cam used or configured in layer 3 ingress system flow
        "
    ::= { camUsageL3Entry 6 }

camUsageL3IngTrcListTotal OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS    read-only
    STATUS current
    DESCRIPTION
        "
        The total cam size allocated to layer 3 ingress trace list
        "
    ::= { camUsageL3Entry 7 }

camUsageL3IngTrcListUsed OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS    read-only
    STATUS current
    DESCRIPTION
        "
        The total cam used or configured in layer 3 ingress trace list
        "
    ::= { camUsageL3Entry 8 }

camUsageL3IngMcastFibTotal OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS    read-only
    STATUS current
    DESCRIPTION
        "
        The total cam size allocated to layer 3 ingress multicast FIB
        "
    ::= { camUsageL3Entry 9 }

camUsageL3IngMcastFibUsed OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS    read-only
    STATUS current
    DESCRIPTION
        "
        The total cam used or configured in layer 3 ingress multicast FIB
        "
    ::= { camUsageL3Entry 10 }

camUsageL3IngQosTotal OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS    read-only
    STATUS current
    DESCRIPTION
        "
        The total cam size allocated to layer 3 ingress QOS 
        "
    ::= { camUsageL3Entry 11 }

camUsageL3IngQosUsed OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS    read-only
    STATUS current
    DESCRIPTION
        "
        The total cam used or configured in layer 3 ingress QOS
        "
    ::= { camUsageL3Entry 12 }


camUsageL3IngPbrTotal OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS    read-only
    STATUS current
    DESCRIPTION
        "
        The total cam size allocated to layer 3 ingress PBR 
        "
    ::= { camUsageL3Entry 13 }

camUsageL3IngPbrUsed OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS    read-only
    STATUS current
    DESCRIPTION
        "
        The total cam used or configured in layer 3 ingress QOS
        "
    ::= { camUsageL3Entry 14 }

camUsageL3IngAclTotal OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS    read-only
    STATUS current
    DESCRIPTION
        "
        The total cam size allocated to layer 3 ingress ACL 
        "
    ::= { camUsageL3Entry 15 }

camUsageL3IngAclUsed OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS    read-only
    STATUS current
    DESCRIPTION
        "
        The total cam used or configured in layer 3 ingress ACL
        "
    ::= { camUsageL3Entry 16 }

camUsageL3EgrAclTotal OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS    read-only
    STATUS current
    DESCRIPTION
        "
        The total cam size allocated to layer 3 egress ACL 
        "
    ::= { camUsageL3Entry 17 }

camUsageL3EgrAclUsed OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS    read-only
    STATUS current
    DESCRIPTION
        "
        The total cam used or configured in layer 3 egress ACL
        "
    ::= { camUsageL3Entry 18 }

camUsageL3PipeLine OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "
        The Pipeline number of the chip where the CAM is located
        "
    ::= { camUsageL3Entry 19 }

    --
    -- ##camUsageL3ExtTable - Table for S-series or BCM specific 
    -- CAM/Table usage info
    --

camUsageL3ExtTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CamUsageL3ExtEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A table of Layer 3 or router layer CAM usages table based on BCM pltform."
    ::= { dellNetCamEntries 4 }

camUsageL3ExtEntry OBJECT-TYPE
    SYNTAX CamUsageL3ExtEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A table of Layer 3 (router layer ) CAM usage table.
         The table show the different partition of CAM/Table based on BCM 
         architecture.
        "
    INDEX { camUsageL3ExtSlot, camUsageL3ExtPipeId }
    ::= { camUsageL3ExtTable 1 }

CamUsageL3ExtEntry ::= SEQUENCE {

    camUsageL3ExtSlot 		Integer32,
    camUsageL3ExtPipeId 	Integer32,
    camUsageL3ExtHostTotal 	Integer32,
    camUsageL3ExtHostUsed       Integer32,
    camUsageL3ExtLPMTotal    	Integer32,
    camUsageL3ExtLPMUsed 	Integer32
    }

camUsageL3ExtSlot OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "
        The slot number of linecard where the CAM is located
        "
    ::= { camUsageL3ExtEntry 1 }

camUsageL3ExtPipeId OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "
        The port pipe number on the linecard where the CAM is located
        "
    ::= { camUsageL3ExtEntry 2 }

camUsageL3ExtHostTotal OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS    read-only
    STATUS current
    DESCRIPTION
        "
        The total cam size allocated to layer 3 Host table. Host table is shared by
        IPv4,IPv6 unicast host route entries (ARP) and IPv4,IPv6 Multicast entries. 
        The usage reflects sum of all these entries
        "
    ::= { camUsageL3ExtEntry 3 }

camUsageL3ExtHostUsed OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS    read-only
    STATUS current
    DESCRIPTION
        "
        The total cam used in layer 3 Host table. As Host table is shared by 
        IPv4,Ipv6 unicast host route entries and IPv4,IPv6 Multicast entries. 
        The usage reflects sum of all these entries. 
        "
    ::= { camUsageL3ExtEntry 4 }

camUsageL3ExtLPMTotal OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS    read-only
    STATUS current
    DESCRIPTION
        "
        The total cam size allocated to layer 3 Longest Prefix Match table. The
        LPM table is shared by IPv4,IPv6 unicast route entries.        
        "
    ::= { camUsageL3ExtEntry 5 }

camUsageL3ExtLPMUsed OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS    read-only
    STATUS current
    DESCRIPTION
        "
        The total cam size used in layer 3 Longest Prefix Match table. The
        LPM table is shared by IPv4,Ipv6 unicast route entries.The usage 
        reflects sum of IPv4 and v6 unicast route entries. 
        "
    ::= { camUsageL3ExtEntry 6 }

-- End of camUsageL3ExtEntry

    --
    -- ## Alarm Group or Traps
    --

    sysCompAlarmMibNotifications     OBJECT IDENTIFIER ::= { dellNetSysComponentTrap 0 }
    sysCompAlarmVariable             OBJECT IDENTIFIER ::= { dellNetSysComponentTrap 1 }

    --
    -- TRAP VarBind Data
    --

    sysCompAlarmLevel OBJECT-TYPE
        SYNTAX       INTEGER
        MAX-ACCESS   accessible-for-notify
        STATUS       current
        DESCRIPTION
            "the message warning level"
        ::= { sysCompAlarmVariable 1 }


    sysCompAlarmVarString OBJECT-TYPE
        SYNTAX       OCTET STRING
        MAX-ACCESS   accessible-for-notify
        STATUS       current
        DESCRIPTION
            "An generic string value in the TRAP object"
        ::= { sysCompAlarmVariable 2 }


    sysCompSlotId OBJECT-TYPE
        SYNTAX       INTEGER
        MAX-ACCESS   accessible-for-notify
        STATUS       current
        DESCRIPTION
            "The associated LineCard in the TRAP object"
        ::= { sysCompAlarmVariable 3 }

    sysCompPortPipe OBJECT-TYPE
        SYNTAX       INTEGER
        MAX-ACCESS   accessible-for-notify
        STATUS       current
        DESCRIPTION
            "The associated port pipe in the TRAP object"
        ::= { sysCompAlarmVariable 4 }

    sysCompCamPartId OBJECT-TYPE
        SYNTAX       DisplayString
        MAX-ACCESS   accessible-for-notify
        STATUS       current
        DESCRIPTION
            "The associated CAM partion name in the TRAP object"
        ::= { sysCompAlarmVariable 5 }

    --
    -- TRAPS
    --
   
    camUsageThresholdExceed  NOTIFICATION-TYPE
        OBJECTS              {   sysCompAlarmLevel,
                                 sysCompAlarmVarString,
								 sysCompSlotId,
								 sysCompPortPipe,
								 sysCompCamPartId
                             }
        STATUS          current
        DESCRIPTION
            "The agent generate this trap when the
             cam usage for a partition is exceeded."
        ::= { sysCompAlarmMibNotifications 1 }

    camIsFull  NOTIFICATION-TYPE
        OBJECTS              {   sysCompAlarmLevel,
                                 sysCompAlarmVarString,
								 sysCompSlotId,
								 sysCompPortPipe,
								 sysCompCamPartId
                             }
        STATUS          current
        DESCRIPTION
            "The agent generate this trap when the
             cam is fully used."
        ::= { sysCompAlarmMibNotifications 2 }

    camAuditError  NOTIFICATION-TYPE
        OBJECTS              {   sysCompAlarmLevel,
                                 sysCompAlarmVarString,
								 sysCompSlotId,
								 sysCompPortPipe,
								 sysCompCamPartId
                             }
        STATUS          current
        DESCRIPTION
            "The agent generate this trap when a
             cam entry mismatches with the Software entry."
        ::= { sysCompAlarmMibNotifications 3 }

END
