-- ****************************************************************************
-- CISCO-WIRELESS-P2P-BPI.my:  Baseline Privacy Interface MIB for Cisco 
--                             Wireless Point to Point Link.
--
-- December 1998, Joseph L Raja
--
-- Copyright (c) 1998-1999 by Cisco Systems, Inc.
-- All rights reserved.
-- 
-- ****************************************************************************
--
--
-- 1.0 Glossary
-- 
-- Radio Card: The Point-to-Point(P2P) radio card that will be plugged into
--             a router.
-- RF Unit: The Radio Frequency components and the associated antennas.
-- Radio System: Radio card and RF unit(s).
-- Radio MAC: Represents a Wireless Media Access Control layer.
-- Radio Master: A Radio Card configured to act as the Master,
--		 abbreviated as 'Rm'.
-- Radio Slave : A Radio Card configured to act as the Slave
--		 abbreviated as 'Rs'.
-- 
--
-- 2.0 Cisco Wireless P2P Privacy MIB Organization
--
-- The Cisco Wireless P2P Privacy MIB is derived from the DOCSIS docsBpiMib.
-- Reference doc number SP-OSSI-BPI-I01-98331.
-- The Cisco Wireless P2P Baseline Privacy Document is : Firestar
-- (Wireless P2P) Privacy.
-- 
-- 
-- 3.0 Differences between DOCSIS and Cisco P2P BPI MIBs.
--
-- The mapping is as follows:
-- 	CMTS maps to Master Radio. The Mibs related to Master Radio are tagged
--      with 'Rm'.
-- 	CM maps to Slave Radio. The Mibs related to Slave Radio are tagged
--      with 'Rs'.
--
-- The fundamental differences are:
--
-- 3.1 In docsBpiMib, the docsBpiCmTEKTable is indexed by the
--     docsIfCmServiceId. i.e. It directly associates the TEK attributes with
--     the SID. In a P2P there is no SID. Therefore this association has been
--     severed. The equivalent table cwrBpiRxTEKTable is indexed only by
--     ifIndex.
--
-- 3.2 In docsBpiMib docsBpiCmtsAuthTable is indexed by the
--     docsBpiCmtsAuthCmMacAddress. In case of a P2P there is no
--     MAC address. Therefore this relationship has been severed. 
--     The equivalent cwrBpiRmAuthTable is indexed only by ifIndex.
--
-- 3.3 In docsBpiMib, docsBpiCmtsTEKTable is indexed by docsIfCmtsServiceId.
--     In case of a P2P there are no service classes and so no SID. 
--     Therefore this relationship has been severed.
--     The equivalent cwrBpiRmTEKTable is indexed only by ifIndex.
--
-- 3.4 In case of P2P there is no multicast support at all so
--     docsBpiIpMulticastMapTable and docsBpiMulticastAuthTable have
--     been eliminated completely.
--
-- 3.5 In P2P link Authentication failures are not possible so
--     Objects related to authentication failures have been removed.
--

--
-- 4.0 MIB Organization
--
-- The Cisco P2P Wireless Baseline Privacy MIB has the following groups:
--
-- o. Radio Slave Group : This includes
--              1. Configuration
--              2. Authorization
--              3. Traffic Encryption Key (TEK) information.
--              For a Radio Slave.
--
-- o. Radio Master Group: This includes
--		1. Configuration
--		2. Authorization
--		3. Traffic Encryption Key (TEK) information.
--		For the Radio Master.
--

--
-- 5. Cisco P2P Wireless Radio Baseline Privacy MIB.
--

CISCO-WIRELESS-P2P-BPI-MIB DEFINITIONS ::= BEGIN

	IMPORTS
	MODULE-IDENTITY, OBJECT-TYPE, Counter32 
		FROM SNMPv2-SMI
        DisplayString, TruthValue, TimeInterval
		FROM SNMPv2-TC
	OBJECT-GROUP, MODULE-COMPLIANCE
		FROM SNMPv2-CONF
	ifIndex
		FROM IF-MIB
	ciscoMgmt
		FROM CISCO-SMI;

	ciscoWirelessP2pBpiMIB MODULE-IDENTITY
	LAST-UPDATED "9905181200Z"
	ORGANIZATION "Cisco Systems Inc."
	CONTACT-INFO 
	   "	Cisco Systems
		Customer Service

	   Postal: 170 W Tasman Drive
		   San Jose, CA  95134
		   USA

		   Tel: +1 800 553-NETS
	           E-mail: cs-wireless@cisco.com"
	DESCRIPTION
	"This is the MIB Module for the Baseline Privacy Interface (BPI)
	at Point to Point Wireless Radio Card.

	This is a specialization on the MCNS docsBpiMib for Cisco Wireless
	point to point communication links."
	::= { ciscoMgmt 135}
	
cwrBpiMIBObjects OBJECT IDENTIFIER ::= { ciscoWirelessP2pBpiMIB 1 }

--
--  The Radio Slave Group.
--

cwrBpiRsObjects OBJECT IDENTIFIER ::= { cwrBpiMIBObjects 1 }

--
-- The BPI base and authorization table for Radio Slave, indexed by ifIndex
--

cwrBpiRsBaseTable OBJECT-TYPE
        SYNTAX SEQUENCE OF CwrBpiRsBaseEntry
        MAX-ACCESS  not-accessible
        STATUS current
        DESCRIPTION
        "Describes the basic and authorization-related Baseline Privacy
        attributes of each Slave Radio interface."
        ::= { cwrBpiRsObjects 1 }

cwrBpiRsBaseEntry OBJECT-TYPE
	SYNTAX CwrBpiRsBaseEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
	"An entry containing objects describing attributes of one Slave
	Radio interface. An entry in this table exists for each
	ifEntry with an	ifType of ciscoWirelessP2P."
	INDEX { ifIndex }
	::= { cwrBpiRsBaseTable 1 }

CwrBpiRsBaseEntry ::= SEQUENCE {
	cwrBpiRsPrivacyEnable	        TruthValue,
	cwrBpiRsPublicKey		OCTET STRING,
	cwrBpiRsAuthState		INTEGER,
	cwrBpiRsAuthKeySequenceNumber	INTEGER,
	cwrBpiRsAuthExpires		TimeInterval,
	cwrBpiRsAuthReset		TruthValue,
	cwrBpiRsAuthGraceTime		INTEGER,
	cwrBpiRsTEKGraceTime		INTEGER,
	cwrBpiRsAuthWaitTimeout 	INTEGER,
	cwrBpiRsReauthWaitTimeout	INTEGER,
	cwrBpiRsOpWaitTimeout		INTEGER,
	cwrBpiRsRekeyWaitTimeout 	INTEGER,
	cwrBpiRsAuthRequests		Counter32,
	cwrBpiRsAuthReplies		Counter32,
	cwrBpiRsAuthInvalids		Counter32,
	cwrBpiRsAuthInvalidErrorCode	INTEGER,
	cwrBpiRsAuthInvalidErrorString	DisplayString
	}

cwrBpiRsPrivacyEnable OBJECT-TYPE
	SYNTAX TruthValue
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"This object identifies whether the Slave Radio is provisioned
	to use Encryption or not."
	::= { cwrBpiRsBaseEntry 1 }

cwrBpiRsPublicKey OBJECT-TYPE
	SYNTAX OCTET STRING(SIZE(0..126)) 
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Public key of the Radio Slave encoded as an ASN.1
	SubjectPublicKeyInfo object as defined in the RSA Encryption
	Standard (PKCS #1) [RSA1]."
	::= { cwrBpiRsBaseEntry 2 }

cwrBpiRsAuthState OBJECT-TYPE
	SYNTAX INTEGER {
		start(1),
		authWait(2),
		authorized(3),
		reauthWait(4),
		authRejectWait(5)
		}
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"The state of the Radio Slave authorization FSM. 
	The start state indicates that FSM is in its initial state."
	::= { cwrBpiRsBaseEntry 3 }

cwrBpiRsAuthKeySequenceNumber OBJECT-TYPE
	SYNTAX INTEGER (0..15)
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"The authorization key sequence number for this FSM."
	::= { cwrBpiRsBaseEntry 4 }

cwrBpiRsAuthExpires OBJECT-TYPE
	SYNTAX TimeInterval 
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"The number of seconds left before the current authorization for this
	FSM expires. If the Radio Slave does not have an active authorization,
	then this value is 0."
	::= { cwrBpiRsBaseEntry 5 }

cwrBpiRsAuthReset OBJECT-TYPE
	SYNTAX TruthValue
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Setting this object to TRUE generates a Reauthorize event in the
	authorization FSM, as described in section 4.1.2.3.4 of the Baseline
	Privacy Interface Specification. Reading this object always returns
	FALSE."
	::= { cwrBpiRsBaseEntry 6 }

cwrBpiRsAuthGraceTime OBJECT-TYPE
	SYNTAX INTEGER (1..1800)
	UNITS "seconds"
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Grace time for an authorization key. A Radio Slave is expected to
	start trying to get a new authorization key beginning AuthGraceTime
	seconds before the authorization key actually expires. The value
	of this object cannot be changed while the authorization state machine
	is running.

        NOTE:  When installed in the field, this variable should NEVER be set
	       below 300 which is the lower limit by standard.  
	       This variable accepts a wider range to facilitate testing."
        ::= { cwrBpiRsBaseEntry 7 }

cwrBpiRsTEKGraceTime OBJECT-TYPE
	SYNTAX INTEGER (1..1800)
	UNITS "seconds"
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Grace time for a TEK. A Radio Slave is expected to start trying
	to get a new TEK beginning TEKGraceTime seconds before the
	TEK actually expires. The value of this object cannot be changed
	while the authorization	state machine is running.

	NOTE:  When installed in the field, this variable should NEVER be set
	       below 300 which is the lower limit by standard.
	       This variable accepts a wider range to facilitate testing."
        ::= { cwrBpiRsBaseEntry 8 }

cwrBpiRsAuthWaitTimeout OBJECT-TYPE
	SYNTAX INTEGER (2..30)
	UNITS "seconds"
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Authorize Wait Timeout. The value of this object cannot be changed
	while the authorization state machine is running."
	::= { cwrBpiRsBaseEntry 9 }

cwrBpiRsReauthWaitTimeout OBJECT-TYPE
	SYNTAX INTEGER (2..30)
	UNITS "seconds"
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Reauthorize Wait Timeout in seconds. The value of this object cannot
	be changed while the authorization state machine is running."
	::= { cwrBpiRsBaseEntry 10 }

cwrBpiRsOpWaitTimeout OBJECT-TYPE
	SYNTAX INTEGER (1..10)
	UNITS "seconds"
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Operational Wait Timeout in seconds. The value of this object cannot
	be changed while the authorization state machine is running."
	::= { cwrBpiRsBaseEntry 11 }
	
cwrBpiRsRekeyWaitTimeout OBJECT-TYPE
	SYNTAX INTEGER (1..10)
	UNITS "seconds"
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Rekey Wait Timeout in seconds. The value of this object cannot be
	changed while the authorization state machine is running."
	::= { cwrBpiRsBaseEntry 12 }

cwrBpiRsAuthRequests OBJECT-TYPE
	SYNTAX Counter32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Count of times the Radio Slave has transmitted an Authorization
	Request message."
	::= { cwrBpiRsBaseEntry 13 }

cwrBpiRsAuthReplies OBJECT-TYPE
	SYNTAX Counter32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Count of times the Radio Slave has received an Authorization
	Reply message."
	::= { cwrBpiRsBaseEntry 14 }

cwrBpiRsAuthInvalids OBJECT-TYPE
	SYNTAX Counter32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Count of times the Radio Slave has received an Authorization
	Invalid message."
	::= { cwrBpiRsBaseEntry 15 }

cwrBpiRsAuthInvalidErrorCode OBJECT-TYPE
	SYNTAX INTEGER {
		noInformation(0),
		unauthorizedSlave(1),
                undefined(2),
		unsolicited(3),
		invalidKeySequence(4),
		keyRequestAuthenticationFailure(5)
	}
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Error-Code in most recent Authorization Invalid message received by
	the Radio Slave. On bootup, this has value no-information(0).  At all
        other times, this object reflects the error code received"
	::= { cwrBpiRsBaseEntry 16 }

cwrBpiRsAuthInvalidErrorString OBJECT-TYPE
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Display-String in most recent Authorization Invalid message received
	 by the Radio Slave. This is a zero length string if no Authorization
	 Invalid message has been received since reboot."
	 ::= { cwrBpiRsBaseEntry 17 }

--
-- The Radio Slave TEK Table, indexed by ifIndex.
--

cwrBpiRsTEKTable OBJECT-TYPE
	SYNTAX SEQUENCE OF CwrBpiRsTEKEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
	"Describes the attributes of each Radio Slave Traffic Encryption
	Key (TEK) Service."
	::= { cwrBpiRsObjects 2 }

cwrBpiRsTEKEntry OBJECT-TYPE
	SYNTAX CwrBpiRsTEKEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
	"An entry containing objects describing the TEK attributes of
	one instantiated TEK service. There will be one such entry for every
	Radio Slave of a P2P link."
	INDEX { ifIndex }
	::= { cwrBpiRsTEKTable 1 }
	
CwrBpiRsTEKEntry ::= SEQUENCE {
	cwrBpiRsTEKEncryptionNegotiated TruthValue,
	cwrBpiRsTEKState 		INTEGER,
	cwrBpiRsTEKExpiresOld		TimeInterval,
	cwrBpiRsTEKExpiresNew		TimeInterval,
	cwrBpiRsTEKKeyRequests		Counter32,
	cwrBpiRsTEKKeyReplies		Counter32,
	cwrBpiRsTEKInvalids		Counter32,
	cwrBpiRsTEKAuthPends		Counter32,
	cwrBpiRsTEKInvalidErrorCode	INTEGER,
	cwrBpiRsTEKInvalidErrorString	DisplayString
}
	
cwrBpiRsTEKEncryptionNegotiated OBJECT-TYPE
	SYNTAX TruthValue
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"This identifies whether this TEK service is using encryption or
         not.  Encryption may not be in use even though cwrBpiRsPrivacyEnable
         is provisioned.  This is possible if the remote is not configured
         for privacy or it's not running an encryption capable image."
        ::= { cwrBpiRsTEKEntry 1 }

cwrBpiRsTEKState OBJECT-TYPE
	SYNTAX INTEGER {
		start (1),
		opWait (2),
		opReauthWait (3),
		operational (4),
		rekeyWait (5),
		rekeyReauthWait (6)
		}
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"The state of the indicated TEK FSM. The start(1) state indicates
	that FSM is in its initial state."
	::= { cwrBpiRsTEKEntry 2 }

cwrBpiRsTEKExpiresOld OBJECT-TYPE
	SYNTAX TimeInterval 
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"The number of seconds left to expire for the oldest active key
	for this FSM. If this FSM has no active keys then this value will
	be zero."
	::= { cwrBpiRsTEKEntry 3 }

cwrBpiRsTEKExpiresNew OBJECT-TYPE
	SYNTAX TimeInterval 
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"The number of seconds left to expire for the newest active key for
	this FSM. If this FSM has no active keys then this value will
	be zero."
	::= { cwrBpiRsTEKEntry 4 }

cwrBpiRsTEKKeyRequests OBJECT-TYPE
	SYNTAX Counter32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Count of times the this TEK Service has transmitted a Key Request
	message."
	::= { cwrBpiRsTEKEntry 5 }

cwrBpiRsTEKKeyReplies OBJECT-TYPE
	SYNTAX Counter32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Count of times this TEK Service has received a Key Reply message."
	::= { cwrBpiRsTEKEntry 6 }

cwrBpiRsTEKInvalids OBJECT-TYPE
	SYNTAX Counter32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Count of times this TEK Service has received a TEK Invalid message."
	::= { cwrBpiRsTEKEntry 7 }
	
cwrBpiRsTEKAuthPends OBJECT-TYPE
	SYNTAX Counter32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Count of times an Authorization Pending (Auth Pend) event
	occurred in this TEK Serivce FSM."
	::= { cwrBpiRsTEKEntry 8 }

cwrBpiRsTEKInvalidErrorCode OBJECT-TYPE
	SYNTAX INTEGER {
                noInformation(0),
                unauthorizedSlave(1),
                undefined(2),
                unsolicited(3),
                invalidKeySequence(4),
                keyRequestAuthenticationFailure(5)
		}
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Error-Code in most recent TEK Invalid message received by this TEK
	service. On bootup, this has value no-information(0).  At all
        other times, this object reflects the error code received"
	::= { cwrBpiRsTEKEntry 9 }
	
cwrBpiRsTEKInvalidErrorString OBJECT-TYPE
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Display-String in most recent TEK Invalid message received by
	this TEK Service. This is a zero length string if no TEK Invalid
	message has been received since this TEK Service was started."
	::= { cwrBpiRsTEKEntry 10 }

--	
--   The Radio Master Group.
--

cwrBpiRmObjects OBJECT IDENTIFIER ::= { cwrBpiMIBObjects 2 }

--
--  The Radio Master Authorization Table, indexed by ifIndex.
--
cwrBpiRmAuthTable OBJECT-TYPE
	SYNTAX SEQUENCE OF CwrBpiRmAuthEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
	"Describes the attributes of each Radio Master authorization
	association. The Radio master maintains one authorization association
	with each Baseline Privacy-enabled Radio Slave on each Radio Master
	MAC interface."
	::= { cwrBpiRmObjects 1 }
	
cwrBpiRmAuthEntry OBJECT-TYPE
	SYNTAX CwrBpiRmAuthEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
	"An entry containing objects describing attributes of one authorization
	association. The Radio master MUST create one entry per Radio Slave per
	MAC interface, based on the receipt of an Authorization Request
	message, and MUST not delete the entry before the Radio Slave
	authorization permanently expires."
	INDEX { ifIndex }
	::= { cwrBpiRmAuthTable 1 }

CwrBpiRmAuthEntry ::= SEQUENCE {
	cwrBpiRmAuthPrivacyEnable	TruthValue,
	cwrBpiRmAuthRsPublicKey		OCTET STRING,
	cwrBpiRmAuthRsKeySequenceNumber INTEGER,
	cwrBpiRmAuthRsExpires		TimeInterval,
	cwrBpiRmAuthRsLifetime		INTEGER,
	cwrBpiRmAuthRsReset		TruthValue,
	cwrBpiRmAuthRsRequests		Counter32,
	cwrBpiRmAuthRsReplies		Counter32,
	cwrBpiRmAuthRsInvalids		Counter32,
	cwrBpiRmAuthInvalidErrorCode	INTEGER,
	cwrBpiRmAuthInvalidErrorString	DisplayString
	}
	
cwrBpiRmAuthPrivacyEnable OBJECT-TYPE
	SYNTAX TruthValue
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"This object identifies whether the Master Radio is provisioned
	to use Encryption or not."
	::= { cwrBpiRmAuthEntry 1 }

cwrBpiRmAuthRsPublicKey OBJECT-TYPE
	SYNTAX OCTET STRING(SIZE(0..126))
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Public key of the Radio Slave encoded as an ASN.1 SubjectPublicKeyInfo
	object as defined in the RSA Encryption Standard (PKCS #1) [RSA1].
	This is a zero-length string if the Radio Master does not retain the
	public key."
	::= { cwrBpiRmAuthEntry 2 }

cwrBpiRmAuthRsKeySequenceNumber OBJECT-TYPE
	SYNTAX INTEGER (0..15)
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"The authorization key sequence number for this Radio Slave."
	::= { cwrBpiRmAuthEntry 3 }
	
cwrBpiRmAuthRsExpires OBJECT-TYPE
	SYNTAX TimeInterval 
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"The number of seconds left before the current authorization for
	this Radio Slave expires. If this Radio Slave does not have an active
	authorization, then the value is zero."
	::= { cwrBpiRmAuthEntry 4 }

cwrBpiRmAuthRsLifetime OBJECT-TYPE
	SYNTAX INTEGER (1..6048000)
	UNITS "seconds"
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Lifetime, in seconds, the Radio Master assigns to an authorization key
	for this Radio Slave.

        NOTE:  When installed in the field, this variable should NEVER be set
	       below 86400 which is the lower limit by standard.
	       This variable accepts a wider range to facilitate testing."
	::= { cwrBpiRmAuthEntry 5 }

cwrBpiRmAuthRsReset OBJECT-TYPE
	SYNTAX TruthValue
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Setting this object to True(1) causes the Radio Master
	to invalidate the current Radio Slave authorization key, to transmit
	an Authorization Invalid message to the Radio Slave, and to invalidate
	the unicast TEK associated with this Radio Slave authorization.
	Reading this object always returns False"
	::= { cwrBpiRmAuthEntry 6 }

cwrBpiRmAuthRsRequests OBJECT-TYPE
	SYNTAX Counter32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Count of times the Radio Master has received an Authorization Request
	message from this Radio Slave."
	::= { cwrBpiRmAuthEntry 7 }

cwrBpiRmAuthRsReplies OBJECT-TYPE
	SYNTAX Counter32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Count of times the Radio master has transmitted an Authorization Reply
	message to this Radio Slave."
	::= { cwrBpiRmAuthEntry 8 }

cwrBpiRmAuthRsInvalids OBJECT-TYPE
	SYNTAX Counter32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Count of times the Radio Master has transmitted an Authorization
	Invalid message to this Radio Slave."
	::= { cwrBpiRmAuthEntry 9 }

cwrBpiRmAuthInvalidErrorCode OBJECT-TYPE
	SYNTAX INTEGER {
	        noInformation(0),
                unauthorizedSlave(1),
                undefined(2),
                unsolicited(3),
                invalidKeySequence(4),
                keyRequestAuthenticationFailure(5)
		}
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Error-Code in most recent Authorization Invalid message transmitted to
	the Radio Slave. On bootup, this has value no-information(0).  At all
        other times, this object reflects the error code transmitted"
	::= { cwrBpiRmAuthEntry 10 }

cwrBpiRmAuthInvalidErrorString OBJECT-TYPE
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Display-String in most recent Authorization Invalid message
	transmitted to the Radio Slave. This is a zero length string if no
	Authorization Invalid message has been transmitted to the Radio Slave."
	::= { cwrBpiRmAuthEntry 11 }

--
-- The Radio Master TEK Table, indexed by ifIndex.
--

cwrBpiRmTEKTable OBJECT-TYPE
	SYNTAX SEQUENCE OF CwrBpiRmTEKEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
	"Describes the attributes of each Radio Slave Traffic Encryption Key
	(TEK) association. The Radio master maintains one TEK association
	for the Radio Slave."
	::= { cwrBpiRmObjects 2 }

cwrBpiRmTEKEntry OBJECT-TYPE
	SYNTAX CwrBpiRmTEKEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
	"An entry containing objects describing attributes of one
	TEK service on a particular Radio Master MAC interface. The Radio
	Master MUST create one entry per TEK Service per MAC interface,
	based on the receipt of an Key Request message, and MUST not
	delete the entry before the Radio Slave authorization for that
	TEK Service permanently expires."
	INDEX { ifIndex }
	::= { cwrBpiRmTEKTable 1 }

CwrBpiRmTEKEntry ::= SEQUENCE {
	cwrBpiRmTEKEncryptionNegotiated TruthValue,
	cwrBpiRmTEKLifetime		INTEGER,
	cwrBpiRmTEKExpiresOld		TimeInterval,
	cwrBpiRmTEKExpiresNew		TimeInterval,
	cwrBpiRmTEKReset		TruthValue,
	cwrBpiRmKeyRequests		Counter32,
	cwrBpiRmKeyReplies		Counter32,
	cwrBpiRmTEKInvalids		Counter32,
	cwrBpiRmTEKInvalidErrorCode	INTEGER,
	cwrBpiRmTEKInvalidErrorString	DisplayString
	}
	
cwrBpiRmTEKEncryptionNegotiated OBJECT-TYPE
	SYNTAX TruthValue
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"This identifies whether this TEK service is using encryption or
         not.  Encryption may not be in use even though
	 cwrBpiRmAuthPrivacyEnable is provisioned.
	 This is possible if the master is not configured
         for privacy or it's not running an encryption capable image."
        ::= { cwrBpiRmTEKEntry 1 }

cwrBpiRmTEKLifetime OBJECT-TYPE
	SYNTAX INTEGER (1..604800)
	UNITS "seconds"
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Lifetime, in seconds, the Radio Master assigns to keys for this TEK
	association.
        NOTE:  When installed in the field, this variable should NEVER be set
	       below 1800 which is the lower limit by standard.
	       This variable accepts a wider range to facilitate testing."
	::= { cwrBpiRmTEKEntry 2 }

cwrBpiRmTEKExpiresOld OBJECT-TYPE
	SYNTAX TimeInterval
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"The number of seconds left to expire for the oldest active key for
	this TEK association. If this TEK associateion has no active key then
	the value will be zero."
	::= { cwrBpiRmTEKEntry 3 }
	
cwrBpiRmTEKExpiresNew OBJECT-TYPE
	SYNTAX TimeInterval 
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"The number of seconds left to expire for the newest active key for
	this TEK association. If this TEK association has no active keys
	then this value will be zero."
	::= { cwrBpiRmTEKEntry 4 }
	
cwrBpiRmTEKReset OBJECT-TYPE
	SYNTAX TruthValue
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"Setting this object to TRUE causes the Radio Master to invalidate the
	current active TEK(s) (plural due to key transition periods), and
	to generate a new TEK.  Reading this object always returns FALSE."
	::= { cwrBpiRmTEKEntry 5 }
	
cwrBpiRmKeyRequests OBJECT-TYPE
	SYNTAX Counter32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Count of times the Radio Master has received a Key Request message."
	::= { cwrBpiRmTEKEntry 6 }
	
cwrBpiRmKeyReplies OBJECT-TYPE
	SYNTAX Counter32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Count of times the Radio master has transmitted a Key Reply message."
	::= { cwrBpiRmTEKEntry 7 }
	
cwrBpiRmTEKInvalids OBJECT-TYPE
	SYNTAX Counter32
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Count of times the Radio Master has transmitted a TEK Invalid
	message."
	::= { cwrBpiRmTEKEntry 8 }

cwrBpiRmTEKInvalidErrorCode OBJECT-TYPE
	SYNTAX INTEGER {
	        noInformation(0),
                unauthorizedSlave(1),
                undefined(2),
                unsolicited(3),
                invalidKeySequence(4),
                keyRequestAuthenticationFailure(5)
		}
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Error-Code in most recent TEK Invalid message sent in association 
	with this TEK service. On bootup, this has value no-information(0).
	At all other times, this object reflects the error code received"
	::= { cwrBpiRmTEKEntry 9 }
	
cwrBpiRmTEKInvalidErrorString OBJECT-TYPE
	SYNTAX DisplayString
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
	"Display-String in the most recent TEK Invalid message sent in 
	ssociation with this BPI TEK service. This is a zero length
	string if no TEK Invalid message has been received since reboot."
	::= { cwrBpiRmTEKEntry 10 }

--
-- The BPI MIB Conformance Statements (with a placeholder for notifications)
--

cwrBpiNotification OBJECT IDENTIFIER ::= { ciscoWirelessP2pBpiMIB 2 }
cwrBpiConformance OBJECT IDENTIFIER ::= { ciscoWirelessP2pBpiMIB 3 }
cwrBpiCompliances OBJECT IDENTIFIER ::= { cwrBpiConformance 1 }
cwrBpiGroups OBJECT IDENTIFIER ::= { cwrBpiConformance 2 }

cwrBpiBasicCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
	"The compliance statement for devices which implement the
	Cisco Wireless Radio point to point Baseline Privacy Interface."

MODULE -- ciscoWirelessP2pBpiMib

-- conditionally mandatory group

GROUP cwrBpiRsGroup
DESCRIPTION
	"This group is implemented for Radio Cards configurable as Radio Slave."

-- conditionally mandatory group

GROUP cwrBpiRmGroup
DESCRIPTION
	"This group is implemented for Radio Cards configurable as
	Radio Master."
	::= { cwrBpiCompliances 1 }

cwrBpiRsGroup OBJECT-GROUP
	OBJECTS {
		cwrBpiRsPrivacyEnable,
		cwrBpiRsPublicKey,
		cwrBpiRsAuthState,
		cwrBpiRsAuthKeySequenceNumber,
		cwrBpiRsAuthExpires,
		cwrBpiRsAuthReset,
		cwrBpiRsAuthGraceTime,
		cwrBpiRsTEKGraceTime,
		cwrBpiRsAuthWaitTimeout,
		cwrBpiRsReauthWaitTimeout,
		cwrBpiRsOpWaitTimeout,
		cwrBpiRsRekeyWaitTimeout,
		cwrBpiRsAuthRequests,
		cwrBpiRsAuthReplies,
		cwrBpiRsAuthInvalids,
		cwrBpiRsAuthInvalidErrorCode,
		cwrBpiRsAuthInvalidErrorString,
		cwrBpiRsTEKEncryptionNegotiated,
		cwrBpiRsTEKState,
		cwrBpiRsTEKExpiresOld,
		cwrBpiRsTEKExpiresNew,
		cwrBpiRsTEKKeyRequests,
		cwrBpiRsTEKKeyReplies,
		cwrBpiRsTEKInvalids,
		cwrBpiRsTEKAuthPends,
		cwrBpiRsTEKInvalidErrorCode,
		cwrBpiRsTEKInvalidErrorString
		}
	STATUS current
	DESCRIPTION
	"A collection of objects providing Radio Slave BPI status and control."
	::= { cwrBpiGroups 1 }
	
cwrBpiRmGroup OBJECT-GROUP
	OBJECTS {
		cwrBpiRmAuthPrivacyEnable,
		cwrBpiRmAuthRsPublicKey,
		cwrBpiRmAuthRsKeySequenceNumber,
		cwrBpiRmAuthRsExpires,
		cwrBpiRmAuthRsLifetime,
		cwrBpiRmAuthRsReset,
		cwrBpiRmAuthRsRequests,
		cwrBpiRmAuthRsReplies,
		cwrBpiRmAuthRsInvalids,
		cwrBpiRmAuthInvalidErrorCode,
		cwrBpiRmAuthInvalidErrorString,
		cwrBpiRmTEKEncryptionNegotiated,
		cwrBpiRmTEKLifetime,
		cwrBpiRmTEKExpiresOld,
		cwrBpiRmTEKExpiresNew,
		cwrBpiRmTEKReset,
		cwrBpiRmKeyRequests,
		cwrBpiRmKeyReplies,
		cwrBpiRmTEKInvalids,
		cwrBpiRmTEKInvalidErrorCode,
		cwrBpiRmTEKInvalidErrorString
		}
	STATUS current
	DESCRIPTION
	"A collection of objects providing Radio Master BPI status and control."
	::= { cwrBpiGroups 2 }
	
END


-- 6. References
-- 
-- 1. Cisco Wireless Proprietary Management Information Base 
--    CISCO-WIRELESS-IF-MIB.my
-- 
-- 2. [IPCDN2] G. Roeck, "Radio Frequency (RF) Interface Management Information
--    Base for MCNS compliant RF Interfaces", 
--    draft-ietf-ipcdn-rf-interface-mib-03.txt, January 1998.
-- 
-- 3. [MCNS1] Data-Over-Cable Service Interface Specifications, Baseline Privacy
--    Interface Specification,SP-BPI-I01-980331
-- 
-- 4. [MCNS5] Data-Over-Cable Service Interface Specifications, OSSI
--    Specification Overview "Telephony Return MIB, SP-OSSI-TRD02-970901.
-- 
-- 5. [RSA1] RSA Laboratories, "The Public-Key Cryptography Standards", RSA Data
--    Security Inc., Redwood City, CA.
--
