MSDP-MIB

File: MSDP-MIB.mib (41128 bytes)

Imported modules

SNMPv2-SMI SNMPv2-TC SNMPv2-CONF

Imported symbols

MODULE-IDENTITY OBJECT-TYPE NOTIFICATION-TYPE
experimental Counter32 Gauge32
TimeTicks Integer32 IpAddress
RowStatus TruthValue TimeStamp
DisplayString MODULE-COMPLIANCE OBJECT-GROUP
NOTIFICATION-GROUP

Defined Types

MsdpRequestsEntry  
SEQUENCE    
  msdpRequestsGroupAddress IpAddress
  msdpRequestsGroupMask IpAddress
  msdpRequestsPeer IpAddress
  msdpRequestsStatus RowStatus

MsdpPeerEntry  
SEQUENCE    
  msdpPeerRemoteAddress IpAddress
  msdpPeerState INTEGER
  msdpPeerRPFFailures Counter32
  msdpPeerInSAs Counter32
  msdpPeerOutSAs Counter32
  msdpPeerInSARequests Counter32
  msdpPeerOutSARequests Counter32
  msdpPeerInSAResponses Counter32
  msdpPeerOutSAResponses Counter32
  msdpPeerInControlMessages Counter32
  msdpPeerOutControlMessages Counter32
  msdpPeerInDataPackets Counter32
  msdpPeerOutDataPackets Counter32
  msdpPeerFsmEstablishedTransitions Counter32
  msdpPeerFsmEstablishedTime TimeStamp
  msdpPeerInMessageTime TimeStamp
  msdpPeerLocalAddress IpAddress
  msdpPeerConnectRetryInterval Integer32
  msdpPeerHoldTimeConfigured Integer32
  msdpPeerKeepAliveConfigured Integer32
  msdpPeerDataTtl Integer32
  msdpPeerProcessRequestsFrom TruthValue
  msdpPeerStatus RowStatus
  msdpPeerRemotePort Integer32
  msdpPeerLocalPort Integer32
  msdpPeerEncapsulationType INTEGER
  msdpPeerConnectionAttempts Counter32
  msdpPeerInNotifications Counter32
  msdpPeerOutNotifications Counter32
  msdpPeerLastError STRING
  msdpPeerDiscontinuityTime TimeStamp

MsdpSACacheEntry  
SEQUENCE    
  msdpSACacheGroupAddr IpAddress
  msdpSACacheSourceAddr IpAddress
  msdpSACacheOriginRP IpAddress
  msdpSACachePeerLearnedFrom IpAddress
  msdpSACacheRPFPeer IpAddress
  msdpSACacheInSAs Counter32
  msdpSACacheInDataPackets Counter32
  msdpSACacheUpTime TimeTicks
  msdpSACacheExpiryTime TimeTicks
  msdpSACacheStatus RowStatus

MsdpMeshGroupEntry  
SEQUENCE    
  msdpMeshGroupName DisplayString
  msdpMeshGroupPeerAddress IpAddress
  msdpMeshGroupStatus RowStatus

Defined Values

msdpMIB 1.3.6.1.3.92
An experimental MIB module for MSDP Management and Monitoring. Copyright (C) The Internet Society 2006. This version of this MIB module is part of RFC 4624; see the RFC itself for full legal notices.
MODULE-IDENTITY    

msdpMIBobjects 1.3.6.1.3.92.1
OBJECT IDENTIFIER    

msdp 1.3.6.1.3.92.1.1
OBJECT IDENTIFIER    

msdpEnabled 1.3.6.1.3.92.1.1.1
The state of MSDP on this MSDP speaker - globally enabled or disabled. Changes to this object should be stored to non-volatile memory.
OBJECT-TYPE    
  TruthValue  

msdpCacheLifetime 1.3.6.1.3.92.1.1.2
The lifetime given to SA cache entries when created or refreshed. This is the [SG-State-Period] in the MSDP spec. A value of 0 means no SA caching is done by this MSDP speaker. Changes to this object should be stored to non-volatile memory. This object does not measure time per se; instead, it is the delta from the time at which an SA message is received at which it should be expired if not refreshed. (i.e., it is the value of msdpSACacheExpiryTime immediately after receiving an SA message applying to that row.) As such, TimeInterval would be a more appropriate SYNTAX; it remains TimeTicks for backwards compatibility.
OBJECT-TYPE    
  TimeTicks  

msdpNumSACacheEntries 1.3.6.1.3.92.1.1.3
The total number of entries in the SA Cache table.
OBJECT-TYPE    
  Gauge32  

msdpRPAddress 1.3.6.1.3.92.1.1.11
The Rendezvous Point (RP) address used when sourcing MSDP SA messages. May be 0.0.0.0 on non-RPs. Changes to this object should be stored to non-volatile memory.
OBJECT-TYPE    
  IpAddress  

msdpRequestsTable 1.3.6.1.3.92.1.1.4
The (conceptual) table listing group ranges and MSDP peers used when deciding where to send an SA Request message, when required. If SA Requests are not enabled, this table may be empty. In order to choose a peer to whom to send an SA Request for a given group, G, the subset of entries in this table whose (msdpRequestsPeerType, msdpRequestsPeer) tuple represents a peer whose msdpPeerState is established are examined. The set is further reduced by examining only those entries for which msdpPeerRequestsGroupAddressType equals the address type of G. The entries with the highest value of msdpRequestsGroupPrefix are considered, where the group G falls within the range described by the combination of msdpRequestsGroup and msdpRequestsGroupPrefix. (This sequence is commonly known as a 'longest-match' lookup.) Finally, if multiple entries remain, the entry with the lowest value of msdpRequestsPriority is chosen. The SA Request message is sent to the peer described by this row.
OBJECT-TYPE    
  SEQUENCE OF  
    MsdpRequestsEntry

msdpRequestsEntry 1.3.6.1.3.92.1.1.4.1
An entry (conceptual row) representing a group range used when deciding where to send an SA Request message.
OBJECT-TYPE    
  MsdpRequestsEntry  

msdpRequestsGroupAddress 1.3.6.1.3.92.1.1.4.1.1
The group address that, when combined with the mask in this entry, represents the group range to which this row applies.
OBJECT-TYPE    
  IpAddress  

msdpRequestsGroupMask 1.3.6.1.3.92.1.1.4.1.2
The mask that, when combined with the group address in this entry, represents the group range to which this row applies.
OBJECT-TYPE    
  IpAddress  

msdpRequestsPeer 1.3.6.1.3.92.1.1.4.1.3
The peer to which MSDP SA Requests for groups matching this entry's group range will be sent. This object, combined with msdpRequestsPeerType, must match the INDEX of a row in the msdpPeerTable, and to be considered, this peer's msdpPeerState must be established.
OBJECT-TYPE    
  IpAddress  

msdpRequestsStatus 1.3.6.1.3.92.1.1.4.1.4
The status of this row, by which new rows may be added to the table or old rows may be deleted.
OBJECT-TYPE    
  RowStatus  

msdpPeerTable 1.3.6.1.3.92.1.1.5
The (conceptual) table listing the MSDP speaker's peers.
OBJECT-TYPE    
  SEQUENCE OF  
    MsdpPeerEntry

msdpPeerEntry 1.3.6.1.3.92.1.1.5.1
An entry (conceptual row) representing an MSDP peer. If row creation is supported, dynamically added rows are added to the system's stable configuration (corresponding to a StorageType value of nonVolatile).
OBJECT-TYPE    
  MsdpPeerEntry  

msdpPeerRemoteAddress 1.3.6.1.3.92.1.1.5.1.1
The address of the remote MSDP peer.
OBJECT-TYPE    
  IpAddress  

msdpPeerState 1.3.6.1.3.92.1.1.5.1.3
The state of the MSDP TCP connection with this peer.
OBJECT-TYPE    
  INTEGER inactive(1), listen(2), connecting(3), established(4), disabled(5)  

msdpPeerRPFFailures 1.3.6.1.3.92.1.1.5.1.4
The number of SA messages received from this peer that failed the Peer-RPF check. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of msdpPeerDiscontinuityTime.
OBJECT-TYPE    
  Counter32  

msdpPeerInSAs 1.3.6.1.3.92.1.1.5.1.5
The number of MSDP SA messages received on this connection. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of msdpPeerDiscontinuityTime.
OBJECT-TYPE    
  Counter32  

msdpPeerOutSAs 1.3.6.1.3.92.1.1.5.1.6
The number of MSDP SA messages transmitted on this connection. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of msdpPeerDiscontinuityTime.
OBJECT-TYPE    
  Counter32  

msdpPeerInSARequests 1.3.6.1.3.92.1.1.5.1.7
The number of MSDP SA-Request messages received on this connection. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of msdpPeerDiscontinuityTime.
OBJECT-TYPE    
  Counter32  

msdpPeerOutSARequests 1.3.6.1.3.92.1.1.5.1.8
The number of MSDP SA-Request messages transmitted on this connection. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of msdpPeerDiscontinuityTime.
OBJECT-TYPE    
  Counter32  

msdpPeerInSAResponses 1.3.6.1.3.92.1.1.5.1.9
The number of MSDP SA-Response messages received on this connection. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of msdpPeerDiscontinuityTime.
OBJECT-TYPE    
  Counter32  

msdpPeerOutSAResponses 1.3.6.1.3.92.1.1.5.1.10
The number of MSDP SA Response messages transmitted on this TCP connection. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of msdpPeerDiscontinuityTime.
OBJECT-TYPE    
  Counter32  

msdpPeerInControlMessages 1.3.6.1.3.92.1.1.5.1.11
The total number of MSDP messages, excluding encapsulated data packets, received on this TCP connection. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of msdpPeerDiscontinuityTime.
OBJECT-TYPE    
  Counter32  

msdpPeerOutControlMessages 1.3.6.1.3.92.1.1.5.1.12
The total number of MSDP messages, excluding encapsulated data packets, transmitted on this TCP connection. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of msdpPeerDiscontinuityTime.
OBJECT-TYPE    
  Counter32  

msdpPeerInDataPackets 1.3.6.1.3.92.1.1.5.1.13
The total number of encapsulated data packets received from this peer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of msdpPeerDiscontinuityTime.
OBJECT-TYPE    
  Counter32  

msdpPeerOutDataPackets 1.3.6.1.3.92.1.1.5.1.14
The total number of encapsulated data packets sent to this peer. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of msdpPeerDiscontinuityTime.
OBJECT-TYPE    
  Counter32  

msdpPeerFsmEstablishedTransitions 1.3.6.1.3.92.1.1.5.1.15
The total number of times the MSDP FSM transitioned into the ESTABLISHED state.
OBJECT-TYPE    
  Counter32  

msdpPeerFsmEstablishedTime 1.3.6.1.3.92.1.1.5.1.16
This timestamp is set to the value of sysUpTime when a peer transitions into or out of the ESTABLISHED state. It is set to zero when the MSDP speaker is booted.
OBJECT-TYPE    
  TimeStamp  

msdpPeerInMessageTime 1.3.6.1.3.92.1.1.5.1.17
The sysUpTime value when the last MSDP message was received from the peer. It is set to zero when the MSDP speaker is booted.
OBJECT-TYPE    
  TimeStamp  

msdpPeerLocalAddress 1.3.6.1.3.92.1.1.5.1.18
The local IP address used for this entry's MSDP TCP connection.
OBJECT-TYPE    
  IpAddress  

msdpPeerConnectRetryInterval 1.3.6.1.3.92.1.1.5.1.20
Time interval, in seconds, for the [ConnectRetry-period] for this peer.
OBJECT-TYPE    
  Integer32 1..65535  

msdpPeerHoldTimeConfigured 1.3.6.1.3.92.1.1.5.1.21
Time interval, in seconds, for the [HoldTime-Period] configured for this MSDP speaker with this peer. If the value of this object is zero (0), the MSDP connection is never torn down due to the absence of messages from the peer.
OBJECT-TYPE    
  Integer32 0 | 3..65535  

msdpPeerKeepAliveConfigured 1.3.6.1.3.92.1.1.5.1.22
Time interval, in seconds, for the [KeepAlive-Period] configured for this MSDP speaker with this peer. If the value of this object is zero (0), no periodic KEEPALIVE messages are sent to the peer after the MSDP connection has been established.
OBJECT-TYPE    
  Integer32 0 | 1..21845  

msdpPeerDataTtl 1.3.6.1.3.92.1.1.5.1.23
The minimum TTL a packet is required to have before it may be forwarded using SA encapsulation to this peer.
OBJECT-TYPE    
  Integer32 0..255  

msdpPeerProcessRequestsFrom 1.3.6.1.3.92.1.1.5.1.24
This object indicates whether to process MSDP SA Request messages from this peer. If True(1), MSDP SA Request messages from this peer are processed and replied to (if appropriate) with SA Response messages. If False(2), MSDP SA Request messages from this peer are silently ignored. It defaults to False when msdpCacheLifetime is 0 and to True when msdpCacheLifetime is non-0. This object is deprecated because MSDP SA Requests were removed from the MSDP specification.
OBJECT-TYPE    
  TruthValue  

msdpPeerStatus 1.3.6.1.3.92.1.1.5.1.25
The RowStatus object by which peers can be added and deleted. A transition to 'active' will cause the MSDP 'Enable MSDP peering with P' Event to be generated. A transition out of the 'active' state will cause the MSDP 'Disable MSDP peering with P' Event to be generated. Care should be used in providing write access to this object without adequate authentication. msdpPeerRemoteAddress is the only variable that must be set to a valid value before the row can be activated. Since this is the table's INDEX, a row can be activated by simply setting the msdpPeerStatus variable. It is possible to modify other columns in the same conceptual row when the status value is active(1).
OBJECT-TYPE    
  RowStatus  

msdpPeerRemotePort 1.3.6.1.3.92.1.1.5.1.26
The remote port for the TCP connection between the MSDP peers.
OBJECT-TYPE    
  Integer32 0..65535  

msdpPeerLocalPort 1.3.6.1.3.92.1.1.5.1.27
The local port for the TCP connection between the MSDP peers.
OBJECT-TYPE    
  Integer32 0..65535  

msdpPeerEncapsulationType 1.3.6.1.3.92.1.1.5.1.29
The encapsulation in use when encapsulating data in SA messages to this peer.
OBJECT-TYPE    
  INTEGER none(0), tcp(1)  

msdpPeerConnectionAttempts 1.3.6.1.3.92.1.1.5.1.30
The number of times the state machine has transitioned from INACTIVE to CONNECTING.
OBJECT-TYPE    
  Counter32  

msdpPeerInNotifications 1.3.6.1.3.92.1.1.5.1.31
The number of MSDP Notification messages received from this peer. This object is deprecated because MSDP Notifications have been removed from the spec.
OBJECT-TYPE    
  Counter32  

msdpPeerOutNotifications 1.3.6.1.3.92.1.1.5.1.32
The number of MSDP Notification messages transmitted to this peer. This object is deprecated because MSDP Notifications have been removed from the spec.
OBJECT-TYPE    
  Counter32  

msdpPeerLastError 1.3.6.1.3.92.1.1.5.1.33
The last error code and subcode received via Notification from this peer. If no error has occurred, this field is zero. Otherwise, the first byte of this two-byte OCTET STRING contains the O-bit and error code, and the second byte contains the subcode. This object is deprecated because MSDP Notifications have been removed from the spec.
OBJECT-TYPE    
  STRING Size(2)  

msdpPeerDiscontinuityTime 1.3.6.1.3.92.1.1.5.1.34
The value of sysUpTime on the most recent occasion at which one or more of this entry's counters suffered a discontinuity. See the DESCRIPTION of each object to see if it is expected to have discontinuities. These discontinuities may occur at peer connection establishment. If no such discontinuities have occurred since the last reinitialization of the local management subsystem, then this object contains a zero value.
OBJECT-TYPE    
  TimeStamp  

msdpSACacheTable 1.3.6.1.3.92.1.1.6
The (conceptual) table listing the MSDP SA advertisements currently in the MSDP speaker's cache.
OBJECT-TYPE    
  SEQUENCE OF  
    MsdpSACacheEntry

msdpSACacheEntry 1.3.6.1.3.92.1.1.6.1
An entry (conceptual row) representing an MSDP SA advertisement. The INDEX to this table includes msdpSACacheOriginRP for diagnosing incorrect MSDP advertisements; normally, a Group and Source pair would be unique. Row creation is not permitted; msdpSACacheStatus may only be used to delete rows from this table.
OBJECT-TYPE    
  MsdpSACacheEntry  

msdpSACacheGroupAddr 1.3.6.1.3.92.1.1.6.1.1
The group address of the SA Cache entry.
OBJECT-TYPE    
  IpAddress  

msdpSACacheSourceAddr 1.3.6.1.3.92.1.1.6.1.2
The source address of the SA Cache entry.
OBJECT-TYPE    
  IpAddress  

msdpSACacheOriginRP 1.3.6.1.3.92.1.1.6.1.3
The RP of the SA Cache entry. This field is in the INDEX in order to catch multiple RP's advertising the same source and group.
OBJECT-TYPE    
  IpAddress  

msdpSACachePeerLearnedFrom 1.3.6.1.3.92.1.1.6.1.4
The peer from which this SA Cache entry was last accepted. This address must correspond to the msdpPeerRemoteAddress value for a row in the MSDP Peer Table. This should be 0.0.0.0 on the router that originated the entry.
OBJECT-TYPE    
  IpAddress  

msdpSACacheRPFPeer 1.3.6.1.3.92.1.1.6.1.5
The peer from which an SA message corresponding to this cache entry would be accepted (i.e., the RPF peer for msdpSACacheOriginRP). This may be different than msdpSACachePeerLearnedFrom if this entry was created by an MSDP SA-Response. This address must correspond to the msdpPeerRemoteAddress value for a row in the MSDP Peer Table, or it may be 0.0.0.0 if no RPF peer exists.
OBJECT-TYPE    
  IpAddress  

msdpSACacheInSAs 1.3.6.1.3.92.1.1.6.1.6
The number of MSDP SA messages received relevant to this cache entry. This object must be initialized to zero when creating a cache entry.
OBJECT-TYPE    
  Counter32  

msdpSACacheInDataPackets 1.3.6.1.3.92.1.1.6.1.7
The number of MSDP-encapsulated data packets received relevant to this cache entry. This object must be initialized to zero when creating a cache entry.
OBJECT-TYPE    
  Counter32  

msdpSACacheUpTime 1.3.6.1.3.92.1.1.6.1.8
The time since this entry was first placed in the SA cache. The first epoch is the time that the entry was first placed in the SA cache, and the second epoch is the current time.
OBJECT-TYPE    
  TimeTicks  

msdpSACacheExpiryTime 1.3.6.1.3.92.1.1.6.1.9
The time remaining before this entry will expire from the SA cache. The first epoch is now, and the second epoch is the time that the entry will expire.
OBJECT-TYPE    
  TimeTicks  

msdpSACacheStatus 1.3.6.1.3.92.1.1.6.1.10
The status of this row in the table. The only allowable actions are to retrieve the status, which will be 'active', or to set the status to 'destroy' in order to remove this entry from the cache. Row creation is not permitted. No columnar objects are writable, so there are none that may be changed while the status value is active(1).
OBJECT-TYPE    
  RowStatus active(1), destroy(6)  

msdpMeshGroupTable 1.3.6.1.3.92.1.1.12
The (conceptual) table listing MSDP Mesh Group configuration.
OBJECT-TYPE    
  SEQUENCE OF  
    MsdpMeshGroupEntry

msdpMeshGroupEntry 1.3.6.1.3.92.1.1.12.1
An entry (conceptual row) representing a peer in an MSDP Mesh Group. If row creation is supported, dynamically added rows are added to the system's stable configuration (corresponding to a StorageType value of nonVolatile).
OBJECT-TYPE    
  MsdpMeshGroupEntry  

msdpMeshGroupName 1.3.6.1.3.92.1.1.12.1.1
The name of the mesh group.
OBJECT-TYPE    
  DisplayString Size(1..64)  

msdpMeshGroupPeerAddress 1.3.6.1.3.92.1.1.12.1.2
A peer address that is a member of the mesh group with name msdpMeshGroupName. The msdpMeshGroupPeerAddress must match a row in the msdpPeerTable.
OBJECT-TYPE    
  IpAddress  

msdpMeshGroupStatus 1.3.6.1.3.92.1.1.12.1.3
This entry's status, by which new entries may be added to the table and old entries deleted. msdpMeshGroupName and msdpMeshGroupPeerAddress must be set to valid values before the row can be activated. Since these are the table's INDEX, a row can be activated by simply setting the msdpMeshGroupStatus variable. It is not possible to modify other columns in the same conceptual row when the status value is active(1), because the only other objects in the row are part of the INDEX. Changing one of these changes the row, so an old row must be deleted and a new one created.
OBJECT-TYPE    
  RowStatus  

msdpTraps 1.3.6.1.3.92.1.1.0
OBJECT IDENTIFIER    

msdpEstablished 1.3.6.1.3.92.1.1.0.1
The MSDP Established event is generated when the MSDP FSM enters the ESTABLISHED state.
NOTIFICATION-TYPE    

msdpBackwardTransition 1.3.6.1.3.92.1.1.0.2
The MSDPBackwardTransition Event is generated when the MSDP FSM moves from a higher-numbered state to a lower-numbered state.
NOTIFICATION-TYPE    

msdpMIBConformance 1.3.6.1.3.92.1.1.8
OBJECT IDENTIFIER    

msdpMIBCompliances 1.3.6.1.3.92.1.1.8.1
OBJECT IDENTIFIER    

msdpMIBGroups 1.3.6.1.3.92.1.1.8.2
OBJECT IDENTIFIER    

msdpMIBCompliance 1.3.6.1.3.92.1.1.8.1.1
This group is mandatory if the MSDP speaker can participate in MSDP Mesh Groups.
MODULE-COMPLIANCE    

msdpMIBFullCompliance 1.3.6.1.3.92.1.1.8.1.2
This group is mandatory if the MSDP speaker can participate in MSDP Mesh Groups.
MODULE-COMPLIANCE    

msdpMIBReadOnlyCompliance 1.3.6.1.3.92.1.1.8.1.3
Write access is not required.
MODULE-COMPLIANCE    

msdpMIBGlobalsGroup 1.3.6.1.3.92.1.1.8.2.1
A collection of objects providing information on global MSDP state.
OBJECT-GROUP    

msdpMIBPeerGroup 1.3.6.1.3.92.1.1.8.2.2
A collection of objects for managing MSDP peers. This group is deprecated in favor of msdpMIBPeerGroup2 because it contains objects for managing aspects of MSDP that were removed before it was published as an RFC.
OBJECT-GROUP    

msdpMIBEncapsulationGroup 1.3.6.1.3.92.1.1.8.2.3
A collection of objects for managing encapsulations if the MSDP encapsulation interfaces are not given interface indices.
OBJECT-GROUP    

msdpMIBSACacheGroup 1.3.6.1.3.92.1.1.8.2.4
A collection of objects for managing MSDP SA cache entries.
OBJECT-GROUP    

msdpMIBNotificationGroup 1.3.6.1.3.92.1.1.8.2.5
A collection of notifications for signaling changes in MSDP peer relationships.
NOTIFICATION-GROUP    

msdpMIBRequestsGroup 1.3.6.1.3.92.1.1.8.2.6
A collection of objects for managing MSDP Request transmission. This group is deprecated because Requests were removed from MSDP before its publication as an RFC.
OBJECT-GROUP    

msdpMIBRPGroup 1.3.6.1.3.92.1.1.8.2.7
A collection of objects for MSDP speakers that source MSDP messages.
OBJECT-GROUP    

msdpMIBMeshGroupGroup 1.3.6.1.3.92.1.1.8.2.8
A collection of objects for MSDP speakers that can participate in MSDP mesh groups.
OBJECT-GROUP    

msdpMIBPeerGroup2 1.3.6.1.3.92.1.1.8.2.9
A collection of objects for managing MSDP peers.
OBJECT-GROUP