PDN-DOMAIN-MIB DEFINITIONS ::= BEGIN

-- Version :  1.0 APPROVED
-- Enterprise pdn Domain mib
-- Copyright (C) 1999 Paradyne Corporation.

-- Created by : Wayne Jadoo / Prakash Easwar

--The tables in this Mib is used primarily for configuring 
--VNIDs on a card. The configured VNIDs can then be bounded to
--intefaces and clients can then be configured at each interface.
--
--  04/27/00 Prakash Easwar
--   1) added support for allocating clients per interface from
--      a pool of 250
--
--      pdnMaxClientsTable
--      pdnClientAdditionalClientsAvailable


IMPORTS
ClientState,
SwitchState,
VnidRange,
VnidTaggingState
FROM PDN-TC
MacAddress, RowStatus,
DisplayString
FROM SNMPv2-TC
TimeTicks,
IpAddress
FROM RFC1155-SMI
TRAP-TYPE
FROM RFC-1215
ifIndex
FROM RFC1213-MIB
OBJECT-TYPE
FROM RFC-1212 
pdn-domain
FROM PDN-HEADER-MIB
;

pdnDomainMIBObjects   OBJECT IDENTIFIER ::= { pdn-domain 1 }
pdnDomainMIBTraps     OBJECT IDENTIFIER ::= { pdn-domain 2 }
pdnCardGeneralParams  OBJECT IDENTIFIER ::= { pdnDomainMIBObjects 1 }
pdnCardConfig         OBJECT IDENTIFIER ::= { pdnDomainMIBObjects 2 }
pdnClientConfig       OBJECT IDENTIFIER ::= { pdnDomainMIBObjects 3 }
pdnPortConfig         OBJECT IDENTIFIER ::= { pdnDomainMIBObjects 4 }

-- pdnCardGeneralParams group
-- This group reflect the status of VNID tagging.

          pdnCardGeneralParamsVNIDMode  OBJECT-TYPE
              SYNTAX  VnidTaggingState
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                 "The state of VNID tagging on the card."
              ::= { pdnCardGeneralParams  1 }

 -- The Card Configuration Table

          pdnCardConfigTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF PdnCardConfigEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                 "A table that contains information about
                  Mux Forwarding, IP Filtering, IP Scoping 
                  and domain name for each VNID."
              ::= { pdnCardConfig 1 }

          pdnCardConfigEntry OBJECT-TYPE
              SYNTAX  PdnCardConfigEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                 "A list of configuration information for each VNID."
              INDEX  { pdnCardConfigVnidId  }
              ::= { pdnCardConfigTable 1 }
          PdnCardConfigEntry ::=
              SEQUENCE {
                pdnCardConfigVnidId       VnidRange,
                pdnCardConfigDomainName   DisplayString,
                pdnCardConfigMuxFwd       SwitchState,
                pdnCardConfigIPFiltering  SwitchState,
                pdnCardConfigIPScoping    SwitchState,
                pdnCardConfigVnidAuth     SwitchState,
                pdnCardConfigRowStatus    RowStatus
               }

          pdnCardConfigVnidId OBJECT-TYPE
              SYNTAX  VnidRange
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                 "The VNID Id number of the virtual network for which this entry
                  contains management information."
              ::= { pdnCardConfigEntry 1 }

         pdnCardConfigDomainName OBJECT-TYPE
              SYNTAX  DisplayString
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                 "The Domain name of the ISP for this VNID. The default value 
                  for this object is a blank string"
              ::= { pdnCardConfigEntry 2 }

          pdnCardConfigMuxFwd OBJECT-TYPE
              SYNTAX  SwitchState
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                 "This object shows if Mux Forwarding has been
                  enabled or disabled by the user."
              ::= { pdnCardConfigEntry 3 }

          pdnCardConfigIPFiltering OBJECT-TYPE
              SYNTAX  SwitchState
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                  "This object shows if IP Filtering has been
                   enabled or disabled by the user."
              ::= { pdnCardConfigEntry 4 }

          pdnCardConfigIPScoping OBJECT-TYPE
              SYNTAX  SwitchState
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                 "This object shows if IP Scoping has been
                  enabled or disabled by the user."
              ::= { pdnCardConfigEntry 5}


 pdnCardConfigVnidAuth OBJECT-TYPE
              SYNTAX  SwitchState
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                 "This object shows if VNID authorization has been
                  enabled or disabled by the user. When this obect is 
                  is enable, only interfaces bound to this VNID will accept
                  packets with this VNID."
              ::= { pdnCardConfigEntry 6 }

pdnCardConfigRowStatus OBJECT-TYPE
              SYNTAX   RowStatus 
              ACCESS   read-write
              STATUS   mandatory
              DESCRIPTION
                 "This object is used to create a new row or
                  or delete an existing row in this table"
              ::= { pdnCardConfigEntry 7 }

 -- The Port Configuration Table ( VNID BINDING TABLE )

          pdnPortConfigTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF PdnPortConfigEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                 "A table that contains VNID configuration information
                  for each port."
              ::= { pdnPortConfig 1 }

          pdnPortConfigEntry OBJECT-TYPE
              SYNTAX  PdnPortConfigEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                 "A list of configuration information for each port."
              INDEX  { ifIndex, pdnPortConfigVnidId }
              ::= { pdnPortConfigTable 1 }

          PdnPortConfigEntry ::=
              SEQUENCE {
				  pdnPortConfigVnidId		 VnidRange,
                  pdnPortConfigCfg           INTEGER,
                  pdnPortConfigDefNHR        IpAddress,
                  pdnPortConfigOperStatus    SwitchState
              }
		 
		   pdnPortConfigVnidId OBJECT-TYPE
		   SYNTAX  VnidRange
		   ACCESS  read-only
		   STATUS  mandatory
		   DESCRIPTION
			"The VNID Id number of the virtual network for which this entry
			  contains management information."
           ::= { pdnPortConfigEntry 1 }

          pdnPortConfigCfg OBJECT-TYPE
              SYNTAX  INTEGER { 
                                un-bind(1),
                                bind (2)
                                } 
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                 "This object shows if a VNID has been 
                  binded or not binded to  a port."
              ::= { pdnPortConfigEntry 2 }

          pdnPortConfigDefNHR OBJECT-TYPE
              SYNTAX  IpAddress
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                 "The Default Next Hop Router address for the
                  specified VNID and port."
              ::= { pdnPortConfigEntry 3 }

          pdnPortConfigOperStatus OBJECT-TYPE
              SYNTAX  SwitchState
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                "This object shows which VNIDs are 
                 enabled or disabled for a port."
              ::= { pdnPortConfigEntry 4 }

 -- pdnClientConfig group
 -- The Client Configuration Table


          pdnClientConfigTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF PdnClientConfigEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                 "A table that contains configuration information
                  for each client."
              ::= { pdnClientConfig 1 }

          pdnClientConfigEntry OBJECT-TYPE
              SYNTAX  PdnClientConfigEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A list of configuration information for each client."
              INDEX  { ifIndex, pdnClientConfigAddr, pdnClientConfigSubnetMask,
                       pdnClientConfigVnidId }
              ::= { pdnClientConfigTable 1 }

          PdnClientConfigEntry ::=
              SEQUENCE {
                  pdnClientConfigAddr       IpAddress,
                  pdnClientConfigSubnetMask  IpAddress,
				  pdnClientConfigVnidId		 VnidRange,
                  pdnClientConfigNHR         IpAddress,
                  pdnClientConfigType        ClientState,
                  pdnClientConfigLeaseTime   TimeTicks,
                  pdnClientConfigLeaseRemainTime  TimeTicks,
                  pdnClientConfigMacAddr      MacAddress,
                  pdnClientConfigRowStatus    RowStatus
            }
          pdnClientConfigAddr OBJECT-TYPE
              SYNTAX  IpAddress
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                 "The IP address of the client specified by the client id."
              ::= { pdnClientConfigEntry 1 }

         pdnClientConfigSubnetMask OBJECT-TYPE
              SYNTAX  IpAddress
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The subnet mask of the client."
              ::= { pdnClientConfigEntry 2 }

		  pdnClientConfigVnidId OBJECT-TYPE
		  SYNTAX  VnidRange
		  ACCESS  read-only
		  STATUS  mandatory
		  DESCRIPTION
		  "The VNID Id number of the virtual network for which this entry
			contains management information."
          ::= { pdnClientConfigEntry 3 }

          pdnClientConfigNHR OBJECT-TYPE
              SYNTAX  IpAddress
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The Next Hop Router address for the client
 	                 specified by the client index."
              ::= { pdnClientConfigEntry 4 }

           pdnClientConfigType OBJECT-TYPE
              SYNTAX  ClientState
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The Configuration type of this entry -
 	       Static or Dynamic."
              ::= { pdnClientConfigEntry 5 }

          pdnClientConfigLeaseTime OBJECT-TYPE
              SYNTAX  TimeTicks
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                 "The Lease Time in seconds for this client."
              ::= { pdnClientConfigEntry 6 }

          pdnClientConfigLeaseRemainTime OBJECT-TYPE
              SYNTAX  TimeTicks
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                 "The Lease Remaining Time in seconds for this client."
              ::= { pdnClientConfigEntry 7 }

          pdnClientConfigMacAddr OBJECT-TYPE
              SYNTAX  MacAddress
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                 "The MAC Address of the client."
              ::= { pdnClientConfigEntry 8 }

		  pdnClientConfigRowStatus OBJECT-TYPE
              SYNTAX   RowStatus 
              ACCESS   read-write
              STATUS   mandatory
              DESCRIPTION
                 "This object is used to create a new row or
                  or delete an existing row in this table"
              ::= { pdnClientConfigEntry 9 }

 -- The Max Clients Configuration Table

          pdnMaxClientsTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF PdnMaxClientsEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                 "This table contains configuration information
                  for the number of DHCP clients allowed on each
                  DSL interface."
              ::= { pdnClientConfig 2 }

          pdnMaxClientsEntry OBJECT-TYPE
              SYNTAX  PdnMaxClientsEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      " This table is indexed by ifIndex "
              INDEX  { ifIndex }
              ::= { pdnMaxClientsTable 1 }

          PdnMaxClientsEntry ::=
              SEQUENCE {
                  pdnMaxClients INTEGER,
                  pdnMaxDynamicClients INTEGER
            }

            pdnMaxClients OBJECT-TYPE
              SYNTAX   INTEGER
              ACCESS   read-write
              STATUS   mandatory
              DESCRIPTION
                 "This object contains the maximum number
                  of users (static + DHCP) that can be 
                  supported by the corresponding xDSL interface.
                  This is in addition to a pool of 256 entries
                  shared among all DSL interfaces"
              DEFVAL { 32 }
              ::= { pdnMaxClientsEntry 1 }

            pdnMaxDynamicClients OBJECT-TYPE
              SYNTAX   INTEGER
              ACCESS   read-write
              STATUS   mandatory
              DESCRIPTION
                 "This object contains the maximum number
                  of DHCP users that can be supported by the 
                  corresponding xDSL interface when IP scoping
                  (connection management) attribute is enabled
                  on the bridge. The valid range for this object
                  is 0 thru pdnMaxClients"
              DEFVAL { 0 }
              ::= { pdnMaxClientsEntry 2 }

  pdnClientAdditionalClientsAvailable OBJECT-TYPE
     SYNTAX   INTEGER
     ACCESS   read-only
     STATUS   mandatory
     DESCRIPTION
        "This object contains the current number
         of unallocated client entries" 
  ::= { pdnClientConfig 3 }

-- Traps related to the Domain  MIB

  dhcpClientHostTableFull TRAP-TYPE
  ENTERPRISE pdnDomainMIBTraps
  VARIABLES { ifIndex }
  DESCRIPTION
     "This trap indicates that no more entries can 
      be added to the client VNID table . This trap is of
     'warning' class."
 ::= 1

 dhcpAddressInStaticSubnet TRAP-TYPE
   ENTERPRISE pdnDomainMIBTraps
   VARIABLES { ifIndex, pdnClientConfigSubnetMask, ifIndex }
   DESCRIPTION
     "This trap indicates that the DHCP server attempting to
      assign an address in range of static subnet on a 
      different port. Information on affected port, subnet
      mask and the assigned port is also sent with the trap.
      This trap is of warning class"
 ::= 2
END

