-- This file is corresponding to Release 9.1.10.101 from 2014/08/11 00:00:00


-- (C)opyright 2004-2014 bintec elmeg GmbH, All Rights Reserved
-- $RCSfile: mibupnp,v $ 
-- $Revision: 1.8 $ 

BIANCA-BRICK-UPNP-MIB DEFINITIONS ::= BEGIN

        IMPORTS
            IpAddress, Counter, enterprises
                FROM RFC1155-SMI

            DisplayString
                FROM RFC1158-MIB
 
            OBJECT-TYPE
                FROM RFC-1212;

    bintec 	OBJECT IDENTIFIER ::= { enterprises 272 }
    bibo	OBJECT IDENTIFIER ::= { bintec 4 }
    biboip	OBJECT IDENTIFIER ::= { bibo 5 }

    -- UPNP

    upnp	OBJECT IDENTIFIER
	::= { biboip 45 }

    -- UPNP static table for global parameters

	upnpGlobals OBJECT IDENTIFIER
	::= { upnp 10 }

	upnpGlobStatus OBJECT-TYPE
	    SYNTAX INTEGER {
		enabled(10), 	-- UPnP enabled
		restricted(20),	-- UPnP mapping requests for client IP only
		disabled(30)	-- UPnP disabled (default).
	    }
            ACCESS  read-write
            STATUS  mandatory
	    DESCRIPTION
		"This object specifies whether UPnP is enabled on the router.
		 Possible values:
		 enabled(10),	 -- UPnP enabled
		 restricted(20), -- UPnP mapping requests for client IP only
		 disabled(30)	 -- UPnP disabled (default)."
	    DEFVAL { disabled }
	::= { upnpGlobals 10 }

	upnpGlobTcpPort OBJECT-TYPE
	    SYNTAX INTEGER(1..65535)
            ACCESS  read-write
            STATUS  mandatory
            DESCRIPTION
		"The TCP port which is monitored by UPnP for HTTP requests
		received from UPnP clients."
	    DEFVAL { 5678 }
	::= { upnpGlobals 20 }

	upnpGlobSsdpTtl OBJECT-TYPE
	    SYNTAX INTEGER(0..255)
            ACCESS  read-write
            STATUS  mandatory
            DESCRIPTION
		"The time-to-live value for SSDP packet transmitted on
		the LAN. If this object is set to 0, the default value
		specified in the ip MIB will be used instead."
	    DEFVAL { 4 }
	::= { upnpGlobals 30 }



    -- UPNP NAT table
	
	ipNatUPnPTable OBJECT-TYPE
	    SYNTAX  SEQUENCE OF IpNatUPnPEntry
	    ACCESS  not-accessible
	    STATUS  mandatory
	    DESCRIPTION
		"This table specifies the IP addresses and port numbers
		 for sessions requested from outside and authorized by
		 a UPnP client.

		 Entries in the table are created by UPnP clients."
	::= { upnp 20 }

	ipNatUPnPEntry OBJECT-TYPE
	    SYNTAX  IpNatUPnPEntry
	    ACCESS  not-accessible
	    STATUS  mandatory
	    DESCRIPTION
		""
	    INDEX   {
		ipNatUPnPIfIndex,
		ipNatUPnPProtocol,
		ipNatUPnPRemoteAddr,
		ipNatUPnPExtPort
	    }
	::= { ipNatUPnPTable 10 }

	IpNatUPnPEntry ::=
	    SEQUENCE {
		ipNatUPnPIfIndex			INTEGER,
		ipNatUPnPProtocol			INTEGER,
		ipNatUPnPRemoteAddr			IpAddress,
		ipNatUPnPExtPort			INTEGER,
		ipNatUPnPIntAddr			IpAddress,
		ipNatUPnPIntPort			INTEGER,
		ipNatUPnPLeaseDuration			INTEGER,
		ipNatUPnPStatus				INTEGER,
		ipNatUPnPDescription			DisplayString
	    }

	ipNatUPnPIfIndex OBJECT-TYPE
	    SYNTAX  INTEGER 
	    ACCESS  read-only
	    STATUS  mandatory
	    DESCRIPTION
		"This object specifies the interface index, for which the
		 table entry shall be valid."
	::= { ipNatUPnPEntry 10 }

	ipNatUPnPProtocol OBJECT-TYPE
	    SYNTAX  INTEGER { 
		tcp(6), 
		udp(17)
	    } 
	    ACCESS  read-only
	    STATUS  mandatory
	    DESCRIPTION
		"This object specifies the protocol, for which the table
		 entry shall be valid."
	    DEFVAL { tcp }
	::= { ipNatUPnPEntry 20 }

	ipNatUPnPRemoteAddr OBJECT-TYPE
	    SYNTAX  IpAddress 
	    ACCESS  read-only
	    STATUS  mandatory
	    DESCRIPTION
		"This object specifies the IP address of the remote host 
		 initiating the connection. An incoming call can only be 
		 accepted if the IP adress of the remote host initiating 
		 the connection is the one specified by this object.
		 If this object is set to 0.0.0.0, the table entry will
		 be valid for any remote host."
	::= { ipNatUPnPEntry 30 }

	ipNatUPnPExtPort OBJECT-TYPE
	    SYNTAX  INTEGER (-1..65535) 
	    ACCESS  read-only
	    STATUS  mandatory
	    DESCRIPTION
		"This object specifies the destination port number for 
		 incoming calls. An incoming call can only be accepted if
		 the destination port is the one specified by this object.
		 If this object is set to -1, the entry is valid for all 
		 port numbers."
	    DEFVAL { -1 }
	::= { ipNatUPnPEntry 40 }

	ipNatUPnPIntAddr OBJECT-TYPE
	    SYNTAX  IpAddress 
	    ACCESS  read-only
	    STATUS  mandatory
	    DESCRIPTION
		"This object specifies the internal target host IP address 
		 for incoming calls matching the table entry.

		 An incoming call matching this entry will be routed to the
		 internal server specified by this object."
	::= { ipNatUPnPEntry 50 }

	ipNatUPnPIntPort OBJECT-TYPE
	    SYNTAX  INTEGER (0..65535) 
	    ACCESS  read-only
	    STATUS  mandatory
	    DESCRIPTION
		"This object specifies the internal target host port-number
		 for incoming calls matching the table entry."
	    DEFVAL { 0 }
	::= { ipNatUPnPEntry 60 }

	ipNatUPnPLeaseDuration OBJECT-TYPE
	    SYNTAX  INTEGER (0..5184000) 
	    ACCESS  read-only
	    STATUS  mandatory
	    DESCRIPTION
		"This object specifies a lease duration in seconds. The 
		entry is discarded at the end of this time. If this object 
		is set to 0, the lease duration is infinite, and the entry
		will have to be explicitely deleted by a UPnP client."
	    DEFVAL { 3600 }
	::= { ipNatUPnPEntry 70 }

	ipNatUPnPStatus OBJECT-TYPE
	    SYNTAX  INTEGER {
		delete(10),
		enabled(20),
		disabled(30)
	    }
	    ACCESS  read-write
	    STATUS  mandatory
	    DESCRIPTION
		"This object specifies whether this entry is currently
		enabled or disabled."
	    DEFVAL { enabled }
	::= { ipNatUPnPEntry 80 }

	ipNatUPnPDescription OBJECT-TYPE
	    SYNTAX  DisplayString (SIZE (0..255))
	    ACCESS  read-only
	    STATUS  mandatory
	    DESCRIPTION
		"This object specifies an optional description 
		 for this entry."
	::= { ipNatUPnPEntry 90 }



    -- UPNP interface table
	
	upnpIfTable OBJECT-TYPE
	    SYNTAX  SEQUENCE OF UpnpIfEntry
	    ACCESS  not-accessible
	    STATUS  mandatory
	    DESCRIPTION
		"This table specifies how various interfaces are 
		 handled by UPnP.

		 Entries in the table are created and deleted by the system."
	::= { upnp 30 }

	upnpIfEntry OBJECT-TYPE
	    SYNTAX  UpnpIfEntry
	    ACCESS  not-accessible
	    STATUS  mandatory
	    DESCRIPTION
		"An entry in the upnpIfTable."
	    INDEX   { upnpIfIndex }
	::= { upnpIfTable 10 }

	UpnpIfEntry ::=
	    SEQUENCE {
		upnpIfIndex				INTEGER,
		upnpIfClientRequests			INTEGER,
		upnpIfUPnPControlled			INTEGER
	    }

	upnpIfIndex OBJECT-TYPE
	    SYNTAX  INTEGER 
	    ACCESS  read-only
	    STATUS  mandatory
	    DESCRIPTION
		"This object specifies the interface index, for which the
		 table entry shall be valid."
	::= { upnpIfEntry 10 }

	upnpIfClientRequests OBJECT-TYPE
	    SYNTAX INTEGER {
		enabled(10), 	-- UPnP client requests enabled
		disabled(20)	-- UPnP client requests disabled (default).
	    }
            ACCESS  read-write
            STATUS  mandatory
	    DESCRIPTION
		"This object specifies whether UPnP accepts client requests 
		 received through this interface.
		 Possible values:
		 enabled(10) 	-- UPnP client requests enabled
		 disabled(20)	-- UPnP client requests disabled (default)."
	    DEFVAL { disabled }
	::= { upnpIfEntry 20 }

	upnpIfUPnPControlled OBJECT-TYPE
	    SYNTAX INTEGER {
		enabled(10), 	-- UPnP control of the interface enabled
		disabled(20)	-- UPnP control of the interface disabled (default).
	    }
            ACCESS  read-write
            STATUS  mandatory
	    DESCRIPTION
		"This object specifies if this interface can be controlled 
		 through UPnP requests.
		 Possible values:
		 enabled(10) 	-- UPnP control of the interface enabled
		 disabled(20)	-- UPnP control of the interface disabled (default)."
	    DEFVAL { disabled }
	::= { upnpIfEntry 30 }



END
