--  *****************************************************************
--  DLINKSW-SURVEILLANCE-VLAN-MIB.mib : Surveillance VLAN MIB
--
--  Copyright (c) 2013 D-Link Corporation, all rights reserved.
--
-- ----------------------------
-- MODIFICTION HISTORY:
-- ----------------------------
-- Version 2.0, 2016/3/28, Fanny He
-- [New Object]
-- Add new objects to support auto surveillance vlan v2.0.
-- Request by Fanny He for project DGS-1510
--
-- Version 2.01, 2016/10/18, Fanny He
-- Remove the objects "dsvLocation". Add the new objects "dsvOnvifIpcIpAddress",
--  "dsvOnvifNvrIpAddress", "dsvOnvifNvrGroupNvrIpAddress", "dsvOnvifNvrGroupIpcIpAddress"
--  *****************************************************************
DLINKSW-SURVEILLANCE-VLAN-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        MODULE-IDENTITY,OBJECT-TYPE,Unsigned32,Counter64
            FROM SNMPv2-SMI
        MODULE-COMPLIANCE, OBJECT-GROUP
            FROM SNMPv2-CONF
        MacAddress, TruthValue, RowStatus, DateAndTime, TEXTUAL-CONVENTION
            FROM SNMPv2-TC
        InetAddress  
            FROM INET-ADDRESS-MIB
        PortList, VlanIdOrNone
            FROM Q-BRIDGE-MIB
        InterfaceIndex
            FROM IF-MIB
        SnmpAdminString
            FROM SNMP-FRAMEWORK-MIB
        dlinkIndustrialCommon
            FROM DLINK-ID-REC-MIB;


    dlinkSwSurveillanceVlanMIB MODULE-IDENTITY
        LAST-UPDATED "201610180000Z"
        ORGANIZATION "D-Link Corp."
            CONTACT-INFO
                "       D-Link Corporation

                 Postal: No. 289, Sinhu 3rd Rd., Neihu District,
                         Taipei City 114, Taiwan, R.O.C
                 Tel:    +886-2-66000123
                 E-mail: tsd@dlink.com.tw
                "
        DESCRIPTION
            "The MIB module for managing surveillance VLAN feature."
        REVISION    "201304080000Z"
        DESCRIPTION
            "Initial version of this MIB module."

 	REVISION    "201603280000Z"
        DESCRIPTION
            "Add new objects dsvOnvifGlobal, dsvOnvifInterface, dsvOnvifIpcInfo,
             dsvOnvifNvrInfo and dsvOnvifNvrAdminIpcInfo to support auto surveillance vlan v2.0."

 	REVISION    "201610180000Z"
        DESCRIPTION
            "Remove the objects dsvLocation. Add the new objects dsvOnvifIpcIpAddress,
	    dsvOnvifNvrIpAddress, dsvOnvifNvrGroupNvrIpAddress, dsvOnvifNvrGroupIpcIpAddress."
        ::= { dlinkIndustrialCommon 34 }

    OuiComponentType ::= TEXTUAL-CONVENTION
        STATUS          current
        DESCRIPTION
            "Represents an OUI component type.
            Note: The component type 'dlink' indicates default OUI and is not
            used for setting.
            " 
        SYNTAX       INTEGER {
            other(1),
            dlink(2),
            vms(3),
            vmsClient(4),
            videoEncoder(5),
            networkStorage(6)      
        }

-- -----------------------------------------------------------------------------
-- Node definitions
-- -----------------------------------------------------------------------------

    dsvMIBNotifications   OBJECT IDENTIFIER ::= { dlinkSwSurveillanceVlanMIB 0 }
    dsvMIBObjects         OBJECT IDENTIFIER ::= { dlinkSwSurveillanceVlanMIB 1 }
    dsvMIBConformance     OBJECT IDENTIFIER ::= { dlinkSwSurveillanceVlanMIB 2 }

-- -----------------------------------------------------------------------------
    dsvGlobal OBJECT IDENTIFIER ::= { dsvMIBObjects 1 }

    dsvVlanId OBJECT-TYPE
        SYNTAX          VlanIdOrNone
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "The object specifies the surveillance VLAN on a switch.
            A value of zero indicates that no surveillance VLAN has been
            configured.
            It is required to configure the global dsvVlanId and enable
            dsvIfEnabled to start the surveillance VLAN function
            on a port."
        DEFVAL  { 0 }
        ::= { dsvGlobal 1 }

    dsvQos OBJECT-TYPE
        SYNTAX          Unsigned32 (0..7)
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "The priority for the surveillance VLAN, which is used to distinguish
            the QoS of the surveillance traffic from data traffic."
        DEFVAL  { 5 }
        ::= { dsvGlobal 2 }

    dsvAgingTime OBJECT-TYPE
        SYNTAX          Unsigned32 (1..65535)
        UNITS           "minutes"
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "The aging time for the surveillance VLAN, for aging out the surveillance
            device and the surveillance VLAN automatically learned member ports.
            "
        DEFVAL  { 720 }
        ::= { dsvGlobal 3 }

-- -----------------------------------------------------------------------------
    dsvOuiTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF DsvOuiEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "This table contains a list of the surveillance VLAN OUI configuration."
        ::= { dsvGlobal 4 }

    dsvOuiEntry OBJECT-TYPE
        SYNTAX          DsvOuiEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "An entry indicates an OUI information, which is used to classify
            surveillance traffic into the surveillance VLAN. If the source MAC addresses of
            the received packet matches any of the OUI pattern, the received
            packet is determined as surveillance packet. "
        INDEX { 
            dsvOuiAddr, 
            dsvOuiMask
        }
        ::= { dsvOuiTable 1 }

    DsvOuiEntry ::=
        SEQUENCE {
            dsvOuiAddr            MacAddress,
            dsvOuiMask            MacAddress,
            dsvOuiComponentType   OuiComponentType,
            dsvOuiDescription     SnmpAdminString,
            dsvOuiRowStatus       RowStatus
        }

    dsvOuiAddr OBJECT-TYPE
        SYNTAX          MacAddress
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "The MAC address of the OUI referring to this entry."
        ::= { dsvOuiEntry 1 }

    dsvOuiMask OBJECT-TYPE
        SYNTAX          MacAddress
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "Indicates the OUI MAC address matching bitmask."
        ::= { dsvOuiEntry 2 }

    dsvOuiComponentType OBJECT-TYPE
        SYNTAX          OuiComponentType
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION
            "The Component type of the OUI.
             Note: The component type 'dlink' is not allowed to set."
        ::= { dsvOuiEntry 3 }

    dsvOuiDescription OBJECT-TYPE
        SYNTAX          SnmpAdminString (SIZE (0..32))
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION
            "The description of the OUI. A zero length string of this object 
             indicates there is no description for this OUI."
        ::= { dsvOuiEntry 4 }

    dsvOuiRowStatus   OBJECT-TYPE
        SYNTAX          RowStatus
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION
            "This object indicates the status of this entry."
        ::= { dsvOuiEntry 5 }

-- -----------------------------------------------------------------------------
    dsvOnvifDiscoverPort OBJECT-TYPE
        SYNTAX          Unsigned32
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "The UDP and TCP port for snoop RTSP streaming."
        DEFVAL  { 554 }
        ::= { dsvGlobal 5 }

-- -----------------------------------------------------------------------------

    dsvInterface OBJECT IDENTIFIER ::= { dsvMIBObjects 2 }

    dsvInterfaceTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF DsvInterfaceEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "This table contains the interface-specific surveillance VLAN parameters."
        ::= { dsvInterface 1 }

    dsvInterfaceEntry OBJECT-TYPE
        SYNTAX          DsvInterfaceEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "An entry indicates the surveillance VLAN parameters for a port/port-channel."
        INDEX { dsvIfIndex }
        ::= { dsvInterfaceTable 1 }

    DsvInterfaceEntry ::=
    	SEQUENCE {
            dsvIfIndex		InterfaceIndex,
            dsvIfEnabled    TruthValue
        }

    dsvIfIndex OBJECT-TYPE
        SYNTAX          InterfaceIndex
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "Indicates the ifIndex of the physical port/port-channel interface."
        ::= { dsvInterfaceEntry 1 }

    dsvIfEnabled OBJECT-TYPE
        SYNTAX          TruthValue
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "Indicates whether the surveillance VLAN is enabled at the port."
        ::= { dsvInterfaceEntry 2 }  
        
-- -----------------------------------------------------------------------------
    dsvInfo OBJECT IDENTIFIER ::= { dsvMIBObjects 3 }

    dsvMemberPorts OBJECT-TYPE
        SYNTAX          PortList
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The surveillance VLAN's member ports, includes the dynamically
            learned ports."
        ::= { dsvInfo 1 }

    dsvDynamicPorts OBJECT-TYPE
        SYNTAX          PortList
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The dynamically learned member ports of the surveillance VLAN."
        ::= { dsvInfo 2 }

    dsvDeviceTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF DsvDeviceEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "This table contains the information about the learned surveillance devices."
        ::= { dsvInfo 3 }

    dsvDeviceEntry OBJECT-TYPE
        SYNTAX          DsvDeviceEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "Indicates the information of the connected surveillance device."
        INDEX {
            dsvDevicePortIfIdx,
            dsvDeviceAddr 
        }
        ::= { dsvDeviceTable 1 }

    DsvDeviceEntry ::=
        SEQUENCE {
            dsvDevicePortIfIdx      InterfaceIndex,
            dsvDeviceAddr           MacAddress,
            dsvDeviceCompType       OuiComponentType,
            dsvDeviceDescr          SnmpAdminString,
            dsvDeviceStartTime      DateAndTime,
            dsvDeviceStatus         INTEGER
        }

    dsvDevicePortIfIdx OBJECT-TYPE
        SYNTAX          InterfaceIndex
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "Indicates the ifIndex of the port to which the surveillance device connects."
        ::= { dsvDeviceEntry 1 }

    dsvDeviceAddr OBJECT-TYPE
        SYNTAX          MacAddress
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "Indicates the MAC address of the surveillance device."
        ::= { dsvDeviceEntry 2 }            
        
    dsvDeviceCompType OBJECT-TYPE
        SYNTAX          OuiComponentType
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The component type of the surveillance device."
        ::= { dsvDeviceEntry 3 }

    dsvDeviceDescr OBJECT-TYPE
        SYNTAX          SnmpAdminString (SIZE (0..32))
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The description of the surveillance device. A zero length string
            of this object indicates there is no description for this OUI."
        ::= { dsvDeviceEntry 4 }

     dsvDeviceStartTime OBJECT-TYPE
        SYNTAX          DateAndTime
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Indicates the start time of the connected surveillance device."
        ::= { dsvDeviceEntry 5 }

    dsvDeviceStatus OBJECT-TYPE
        SYNTAX          INTEGER {
            active(1),
            aging(2)
        }
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Indicates the status of the connected surveillance device."
        ::= { dsvDeviceEntry 6 }


-- -----------------------------------------------------------------------------
    dsvOnvifIpcInfo OBJECT IDENTIFIER ::= { dsvMIBObjects 4 }

    dsvOnvifIpcTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF DsvOnvifIpcEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "This table contains the IPC information and configurations."
        ::= { dsvOnvifIpcInfo 1 }

    dsvOnvifIpcEntry OBJECT-TYPE
        SYNTAX          DsvOnvifIpcEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "An entry indicates the IPC information and configurations."
        INDEX { dsvOnvifIpcIfIndex,
		dsvOnvifIpcAddress
	}
        ::= { dsvOnvifIpcTable 1 }

    DsvOnvifIpcEntry::=
    	SEQUENCE {
            dsvOnvifIpcIfIndex		InterfaceIndex,
	    dsvOnvifIpcAddress		MacAddress,
            dsvOnvifIpcIpAddress	InetAddress,
	    dsvOnvifIpcState		TruthValue,
            dsvOnvifIpcModel		SnmpAdminString,
	    dsvOnvifIpcManufacturer	SnmpAdminString,
	    dsvOnvifIpcDescription	SnmpAdminString,
	    dsvOnvifIpcThroughput	Counter64
        }

    dsvOnvifIpcIfIndex	OBJECT-TYPE
        SYNTAX          InterfaceIndex
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "Indicates the ifIndex of the physical port/port-channel interface."
        ::= { dsvOnvifIpcEntry 1 }

    dsvOnvifIpcAddress	OBJECT-TYPE
        SYNTAX          MacAddress
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "Indicates the MAC address of the ONVIF IP-Camera."
        ::= { dsvOnvifIpcEntry 2 }

    dsvOnvifIpcIpAddress	OBJECT-TYPE
        SYNTAX          InetAddress
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Indicates the Ip address of the ONVIF IP-Camera."
        ::= { dsvOnvifIpcEntry 3 }

    dsvOnvifIpcState		OBJECT-TYPE
        SYNTAX          TruthValue
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "Indicates the state of the ONVIF IP-Camera on this port."
        ::= { dsvOnvifIpcEntry 4 }

    dsvOnvifIpcModel		OBJECT-TYPE
        SYNTAX          SnmpAdminString(SIZE (0..32))
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Indicates the model name of the ONVIF IP-Camera."
        ::= { dsvOnvifIpcEntry 5 }

    dsvOnvifIpcManufacturer	OBJECT-TYPE
        SYNTAX          SnmpAdminString(SIZE (0..32))
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Indicates the manufacturer of the ONVIF IP-Camera."
        ::= { dsvOnvifIpcEntry 6 }

    dsvOnvifIpcDescription	OBJECT-TYPE
        SYNTAX          SnmpAdminString(SIZE (0..32))
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "Indicates the description of the ONVIF IP-Camera added by user."
        ::= { dsvOnvifIpcEntry 7 }


    dsvOnvifIpcThroughput	OBJECT-TYPE
        SYNTAX          Counter64
        UNITS           "Mbps"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Indicates traffic throughput of the ONVIF IP-Camera."
        ::= { dsvOnvifIpcEntry 8 }

-- -----------------------------------------------------------------------------
    dsvOnvifNvrInfo OBJECT IDENTIFIER ::= { dsvMIBObjects 5 }

    dsvOnvifNvrTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF DsvOnvifNvrEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "This table contains the IPC information and configurations."
        ::= { dsvOnvifNvrInfo 1 }

    dsvOnvifNvrEntry  OBJECT-TYPE
        SYNTAX          DsvOnvifNvrEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "An entry indicates the NVR information and configurations."
        INDEX { dsvOnvifNvrIfIndex,
		dsvOnvifNvrAddress
	}
        ::= { dsvOnvifNvrTable 1 }

    DsvOnvifNvrEntry ::=
    	SEQUENCE {
            dsvOnvifNvrIfIndex		InterfaceIndex,
            dsvOnvifNvrAddress		MacAddress,
            dsvOnvifNvrIpAddress	InetAddress,
	    dsvOnvifNvrIpcNumber	Unsigned32,
	    dsvOnvifNvrThroughput	Counter64,
	    dsvOnvifNvrGroup		Unsigned32, 
 	    dsvOnvifNvrDescription	SnmpAdminString
        }

    dsvOnvifNvrIfIndex	OBJECT-TYPE
        SYNTAX          InterfaceIndex
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "Indicates the ifIndex of the physical port/port-channel interface."
        ::= { dsvOnvifNvrEntry  1 }

    dsvOnvifNvrAddress	OBJECT-TYPE
        SYNTAX          MacAddress
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "Indicates the MAC address of the ONVIF NVR."
        ::= { dsvOnvifNvrEntry  2 }

    dsvOnvifNvrIpAddress	OBJECT-TYPE
        SYNTAX          InetAddress
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Indicates the Ip address of the ONVIF NVR."
        ::= { dsvOnvifNvrEntry  3 }

    dsvOnvifNvrIpcNumber	OBJECT-TYPE
        SYNTAX          Unsigned32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Indicates the number of the ONVIF IP-Camera administrated by this NVR."
        ::= { dsvOnvifNvrEntry  4 }

    dsvOnvifNvrThroughput	OBJECT-TYPE
        SYNTAX          Counter64
        UNITS           "Mbps"
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Indicates traffic throughput of the ONVIF NVR."
        ::= { dsvOnvifNvrEntry  5 }

    dsvOnvifNvrGroup		OBJECT-TYPE
        SYNTAX          Unsigned32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Indicates the group ID of the ONVIF NVR."
        ::= { dsvOnvifNvrEntry  6 }

    dsvOnvifNvrDescription	OBJECT-TYPE
        SYNTAX          SnmpAdminString(SIZE (0..32))
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION
            "Indicates the description of the ONVIF NVR added by user."
        ::= { dsvOnvifNvrEntry  7 }

-- -----------------------------------------------------------------------------
    dsvOnvifNvrGroupInfo  OBJECT IDENTIFIER ::= { dsvMIBObjects 6 }

    dsvOnvifNvrGroupTable  OBJECT-TYPE
        SYNTAX          SEQUENCE OF DsvOnvifNvrGroupEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "This table contains the IPC list in NVR group on the interface."
        ::= { dsvOnvifNvrGroupInfo  1 }

    dsvOnvifNvrGroupEntry OBJECT-TYPE
        SYNTAX          DsvOnvifNvrGroupEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "An entry indicates the NVR group information."
        INDEX { 
		dsvOnvifNvrGroupIfIndex,
		dsvOnvifNvrGroupNvrAddress,
		dsvOnvifNvrGroupIpcAddress
	}
        ::= { dsvOnvifNvrGroupTable  1 }

    DsvOnvifNvrGroupEntry ::=
    	SEQUENCE {
  	    dsvOnvifNvrGroupIfIndex	InterfaceIndex,
	    dsvOnvifNvrGroupNvrAddress		MacAddress,
	    dsvOnvifNvrGroupIpcAddress		MacAddress,
	    dsvOnvifNvrGroupNvrIpAddress 	InetAddress,
	    dsvOnvifNvrGroupIpcIpAddress	InetAddress,
	    dsvOnvifNvrGroupNvrGroup		Unsigned32
        }

    dsvOnvifNvrGroupIfIndex	OBJECT-TYPE
        SYNTAX          InterfaceIndex
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "Indicates the ifIndex of the physical port/port-channel interface."
        ::= { dsvOnvifNvrGroupEntry 1 }

    dsvOnvifNvrGroupNvrAddress	OBJECT-TYPE
        SYNTAX          MacAddress
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "Indicates the MAC address of the ONVIF NVR."
        ::= { dsvOnvifNvrGroupEntry 2 }

    dsvOnvifNvrGroupIpcAddress	OBJECT-TYPE
        SYNTAX          MacAddress
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "Indicates the MAC address of the ONVIF IP-Camera."
        ::= { dsvOnvifNvrGroupEntry 3 }

    dsvOnvifNvrGroupNvrIpAddress OBJECT-TYPE
        SYNTAX          InetAddress
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Indicates the Ip address of the ONVIF NVR."
        ::= { dsvOnvifNvrGroupEntry 4 }

    dsvOnvifNvrGroupIpcIpAddress OBJECT-TYPE
        SYNTAX          InetAddress
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Indicates the Ip address of the ONVIF IP-Camera."
        ::= { dsvOnvifNvrGroupEntry 5 }

    dsvOnvifNvrGroupNvrGroup	OBJECT-TYPE
        SYNTAX          Unsigned32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "Indicates the group ID of the ONVIF NVR."
        ::= { dsvOnvifNvrGroupEntry 6 }

-- -----------------------------------------------------------------------------
-- MIB Conformance statements
-- -----------------------------------------------------------------------------
    dsvMIBCompliances OBJECT IDENTIFIER
        ::= { dsvMIBConformance 1 }

    dsvMIBGroups  OBJECT IDENTIFIER
        ::= { dsvMIBConformance 2 }

    dsvMIBCompliance MODULE-COMPLIANCE
        STATUS          current
        DESCRIPTION
            "The compliance statement for entities which implement the
            DLINKSW-SURVEILLANCE-VLAN-MIB."
        MODULE          -- this module
        MANDATORY-GROUPS    { dsvBasicGroup }

        GROUP dsvOUICfgGroup
        DESCRIPTION
            "This group is required for entities that implement classifying
            surveillance traffic based on OUI patterns." 
            
        GROUP dsvDeviceInfoGroup
        DESCRIPTION
            "This group is required for entities that display surveillance
             vlan device infomation."
        ::= { dsvMIBCompliances 1 }

    dsvBasicGroup OBJECT-GROUP
        OBJECTS {
            dsvVlanId,
            dsvQos,
            dsvAgingTime,
            dsvOnvifDiscoverPort,
            dsvIfEnabled,
            dsvMemberPorts,
            dsvDynamicPorts 
        }
        STATUS current
        DESCRIPTION
            "A collection of objects to configure or display the status
            of surveillance VLAN feature."
        ::= { dsvMIBGroups 1 }

    
    dsvOUICfgGroup OBJECT-GROUP
        OBJECTS {
            dsvOuiComponentType,
            dsvOuiDescription,
            dsvOuiRowStatus 
        }
        STATUS current
        DESCRIPTION
            "A collection of objects to configure surveillance device OUI(s)."
        ::= { dsvMIBGroups 2 }   
        
	dsvDeviceInfoGroup OBJECT-GROUP
        OBJECTS {
            dsvDeviceCompType,
            dsvDeviceDescr,
            dsvDeviceStartTime,
            dsvDeviceStatus
        }
        STATUS current
        DESCRIPTION
            "A collection of objects to display surveillance device(s)."
        ::= { dsvMIBGroups 3 }


    dsvOnvifIpcCfgGroup OBJECT-GROUP
        OBJECTS {
		dsvOnvifIpcIpAddress,	
		dsvOnvifIpcState,
		dsvOnvifIpcModel,
                dsvOnvifIpcManufacturer,
		dsvOnvifIpcDescription,
		dsvOnvifIpcThroughput
        }
        STATUS current
        DESCRIPTION
            "A collection of objects to display ONVIF-based surveillance vlan IPC information."
        ::= { dsvMIBGroups 4 } 

    dsvOnvifNvrCfgGroup OBJECT-GROUP
        OBJECTS {
		dsvOnvifNvrIpAddress,	
		dsvOnvifNvrIpcNumber,
		dsvOnvifNvrThroughput,
		dsvOnvifNvrGroup,
		dsvOnvifNvrDescription
        }
        STATUS current
        DESCRIPTION
            "A collection of objects to display ONVIF-based surveillance vlan NVR information."
        ::= { dsvMIBGroups 5 } 


    dsvOnvifNvrGroupCfgGroup OBJECT-GROUP
        OBJECTS {
            dsvOnvifNvrGroupNvrIpAddress,
            dsvOnvifNvrGroupIpcIpAddress,
	    dsvOnvifNvrGroupNvrGroup
        }
        STATUS current
        DESCRIPTION
            "A collection of objects to display IPC in the NVR group on the interface."
        ::= { dsvMIBGroups 6 } 

END 
   