Infiniband::Port Class Reference
[Fountain serverInfiniband discovery and monitoring]

Object representing a single port of a node in an Infiniband network. More...

#include <InfinibandPort.h>

List of all members.

Public Member Functions

 Port (const Node *node, int portnum)
 Default constructor.
 Port (const Port &rhs)
 Copy constructor.
Portoperator= (const Port &rhs)
 Assignment operator.
void query (uint32_t lid)
 Update this ports port counters.
void setGuid (uint64_t guid)
 Sets the remote node GUID for this port.
void addInfo (BambooLib::XMLElement *portElement)
 Append this ports's usage information to the portElement.

Private Member Functions

bool checkStuckPortCounters ()
 Checks for port counters that have maxed out their values.
void calculatePortBandwidth ()
 Calculates the send and receive rates for this port over the specified interval.

Private Attributes

uint64_t remoteNodeGuid
uint32_t portNumber
uint32_t receiveBytesCurrent
uint32_t receiveBytesLast
double receiveRate
uint32_t sendBytesCurrent
uint32_t sendBytesLast
double sendRate
uint32_t receivePacketsCurrent
uint32_t receivePacketsLast
double receivePacketsRate
uint32_t sendPacketsCurrent
uint32_t sendPacketsLast
double sendPacketsRate
uint32_t symbolErrorsCurrent
 The number of symbol errors for this port from the most recent call to update.
uint32_t symbolErrorsLast
 The number of symbol errors for this port from the second most recent call to update.
double symbolErrorsRate
int width
double speed
Timer queryTime
bool getPortCounters
unsigned int timeout
bool resetPortCounters
uint32_t resetMask


Detailed Description

Object representing a single port of a node in an Infiniband network.


Constructor & Destructor Documentation

Infiniband::Port::Port const Node node,
int  portnum
 

Default constructor.

Parameters:
[in] node A pointer to the Node object where this Port object resides
[in] portnum The port number of this Port object for the Node object
Exceptions:
FountainException if the smp_query() fails to get this port's information or if the port's physical state is not active

Infiniband::Port::Port const Port rhs  ) 
 

Copy constructor.

Parameters:
[in] rhs The Port object to copy from


Member Function Documentation

void Infiniband::Port::addInfo BambooLib::XMLElement portElement  ) 
 

Append this ports's usage information to the portElement.

Parameters:
[in] portElement A pointer to the XMLElement to add the information

bool Infiniband::Port::checkStuckPortCounters  )  [private]
 

Checks for port counters that have maxed out their values.

Return values:
bool True if the port counters will be reset during the next query
Postcondition:
resetMask will be set with the appropriate bitmask if the result is true

Infiniband::Port & Infiniband::Port::operator= const Port rhs  ) 
 

Assignment operator.

Parameters:
[in] rhs The Port object to copy from
Return values:
Port Reference to a Port object

void Infiniband::Port::query uint32_t  lid  ) 
 

Update this ports port counters.

Parameters:
[in] lid The lid of the node to query

void Infiniband::Port::setGuid uint64_t  guid  )  [inline]
 

Sets the remote node GUID for this port.

Parameters:
[in] guid The GUID to use


Member Data Documentation

bool Infiniband::Port::getPortCounters [private]
 

True if we should query port counter statistics for this port

uint32_t Infiniband::Port::portNumber [private]
 

Our port number

Timer Infiniband::Port::queryTime [private]
 

The time between calls to update, used for both send and receive bandwidth calculation

uint32_t Infiniband::Port::receiveBytesCurrent [private]
 

The number of bytes received by this port from the most recent call to update

uint32_t Infiniband::Port::receiveBytesLast [private]
 

The number of bytes received by this port from the second most recent call to update

uint32_t Infiniband::Port::receivePacketsCurrent [private]
 

The number of packets received by this port from the most recent call to update

uint32_t Infiniband::Port::receivePacketsLast [private]
 

The number of packets received by this port from the second most recent call to update

double Infiniband::Port::receivePacketsRate [private]
 

The rate at which this port is receiving packets

double Infiniband::Port::receiveRate [private]
 

The rate at which this port is receiving bytes

uint64_t Infiniband::Port::remoteNodeGuid [private]
 

The guid of the remote node connected to this port

uint32_t Infiniband::Port::resetMask [private]
 

The bitmask to use for resetting performance and error counters

bool Infiniband::Port::resetPortCounters [private]
 

Each time the port counters are polled, if this is true they are reset back to 0

uint32_t Infiniband::Port::sendBytesCurrent [private]
 

The number of bytes sent by this port from the most recent call to update

uint32_t Infiniband::Port::sendBytesLast [private]
 

The number of bytes sent by this port from the second most recent call to update

uint32_t Infiniband::Port::sendPacketsCurrent [private]
 

The number of packets sent by this port from the most recent call to update

uint32_t Infiniband::Port::sendPacketsLast [private]
 

The number of packets sent by this port from the second most recent call to update

double Infiniband::Port::sendPacketsRate [private]
 

The rate at which this port is sending packets

double Infiniband::Port::sendRate [private]
 

The rate at which this port is sending bytes

double Infiniband::Port::speed [private]
 

The maximum speed of this port, eg 2.5 Gbps, 5.0 Gbps, 10.0 Gbps, 12.0 Gbps

double Infiniband::Port::symbolErrorsRate [private]
 

The rate at which this port notices symbol errors

unsigned int Infiniband::Port::timeout [private]
 

The timeout value for executing a port_performance_query on this port

int Infiniband::Port::width [private]
 

The width of this port, eg 1X, 2X, 4X, 8X, 12X


The documentation for this class was generated from the following files:
Generated on Wed Mar 8 14:43:34 2006 for Fountain by  doxygen 1.4.6