Generated from osm_vl15intf.h with ROBODoc vunknown on Wed Aug 07 15:31:54 2002
TABLE OF CONTENTS
- OpenSM/VL15
- OpenSM: SM/OSM_VL15_DEFAULT_POLL_INTERVAL_USECS
- OpenSM: SM/osm_vl15_state_t
- OpenSM: VL15/osm_vl15_t
- OpenSM: VL15/osm_vl15_construct
- OpenSM: VL15/osm_vl15_destroy
- OpenSM: VL15/osm_vl15_init
- OpenSM: VL15/osm_vl15_post
- OpenSM: VL15/osm_vl15_poll
NAME
VL15
DESCRIPTION
The VL15 object encapsulates the information needed by the
OpenSM to instantiate the VL15 interface. The OpenSM allocates
one VL15 object per subnet.
The VL15 object transmits MADs to the wire at a throttled rate,
so as to not overload the VL15 buffering of subnet components.
OpenSM modules may post VL15 MADs to the VL15 interface as fast
as possible.
The VL15 object is thread safe.
This object should be treated as opaque and should
be manipulated only through the provided functions.
AUTHOR
Steve King, Intel
NAME
OSM_VL15_DEFAULT_POLL_INTERVAL_USECS
DESCRIPTION
Specifies the default number of seconds between subnet sweeps.
SYNOPSIS
#define OSM_VL15_DEFAULT_POLL_INTERVAL_USECS 100000
NAME
osm_vl15_state_t
DESCRIPTION
Enumerates the possible states of SM object.
SYNOPSIS
typedef enum _osm_vl15_state
{
OSM_VL15_STATE_INIT = 0,
OSM_VL15_STATE_READY
} osm_vl15_state_t;
NAME
osm_vl15_t
DESCRIPTION
VL15 structure.
This object should be treated as opaque and should
be manipulated only through the provided functions.
SYNOPSIS
typedef struct _osm_vl15
{
osm_thread_state_t thread_state;
osm_vl15_state_t state;
boolean_t poller_idle_flag;
cl_event_t signal;
cl_thread_t poller;
cl_qlist_t fifo;
cl_spinlock_t lock;
uint32_t poll_interval;
osm_vendor_t *p_vend;
osm_log_t *p_log;
osm_stats_t *p_stats;
} osm_vl15_t;
FIELDS
thread_state
Tracks the thread state of the poller thread.
state
Tracks the state of the VL15 interface itself.
poller_idle_flag
Indicates that the poller thread is waiting indefinitely.
The event must be signalled to wake up the thread.
signal
Event on which the poller sleeps.
fifo
First-in First-out queue for outbound VL15 MADs.
poller
Worker thread pool that services the fifo to transmit VL15 MADs
lock
Spinlock guarding the FIFO.
poll_interval
The minimum number of microseconds between VL15 transmissions.
p_vend
Pointer to the vendor transport object.
p_log
Pointer to the log object.
p_stats
Pointer to the OpenSM statistics block.
SEE ALSO
VL15 object
NAME
osm_vl15_construct
DESCRIPTION
This function constructs an VL15 object.
SYNOPSIS
void
osm_vl15_construct(
IN osm_vl15_t* const p_vl15 );
PARAMETERS
p_vl15
[in] Pointer to a VL15 object to construct.
RETURN VALUE
This function does not return a value.
NOTES
Allows calling osm_vl15_init, osm_vl15_destroy, and osm_vl15_is_inited.
Calling osm_vl15_construct is a prerequisite to calling any other
method except osm_vl15_init.
SEE ALSO
VL15 object, osm_vl15_init, osm_vl15_destroy, osm_vl15_is_inited
NAME
osm_vl15_destroy
DESCRIPTION
The osm_vl15_destroy function destroys the object, releasing
all resources.
SYNOPSIS
void
osm_vl15_destroy(
IN osm_vl15_t* const p_vl15 );
PARAMETERS
p_vl15
[in] Pointer to a VL15 object to destroy.
RETURN VALUE
This function does not return a value.
NOTES
Performs any necessary cleanup of the specified VL15 object.
Further operations should not be attempted on the destroyed object.
This function should only be called after a call to osm_vl15_construct or
osm_vl15_init.
SEE ALSO
VL15 object, osm_vl15_construct, osm_vl15_init
NAME
osm_vl15_init
DESCRIPTION
The osm_vl15_init function initializes a VL15 object for use.
SYNOPSIS
ib_api_status_t
osm_vl15_init(
IN osm_vl15_t* const p_vl15,
IN osm_vendor_t* const p_vend,
IN osm_log_t* const p_log,
IN osm_stats_t* const p_stats,
IN const uint32_t rate );
PARAMETERS
p_vl15
[in] Pointer to an osm_vl15_t object to initialize.
p_vend
[in] Pointer to the vendor transport object.
p_log
[in] Pointer to the log object.
p_stats
[in] Pointer to the OpenSM stastics block.
rate
[in] Minimum number of microseconds between VL15 transmissions.
RETURN VALUES
IB_SUCCESS if the VL15 object was initialized successfully.
NOTES
Allows calling other VL15 methods.
SEE ALSO
VL15 object, osm_vl15_construct, osm_vl15_destroy,
osm_vl15_is_inited
NAME
osm_vl15_post
DESCRIPTION
Posts a MAD to the VL15 interface for transmission.
SYNOPSIS
void
osm_vl15_post(
IN osm_vl15_t* const p_vl15,
IN osm_madw_t* const p_madw );
PARAMETERS
p_vl15
[in] Pointer to an osm_vl15_t object.
p_madw
[in] Pointer to a MAD wrapper structure containing the MAD.
RETURN VALUES
This function does not return a value.
NOTES
The osm_vl15_construct or osm_vl15_init must be called before using
this function.
SEE ALSO
VL15 object, osm_vl15_construct, osm_vl15_init
NAME
osm_vl15_poll
DESCRIPTION
Causes the VL15 Interface to consider sending another QP0 MAD.
SYNOPSIS
void
osm_vl15_poll(
IN osm_vl15_t* const p_vl );
PARAMETERS
p_vl15
[in] Pointer to an osm_vl15_t object.
RETURN VALUES
None.
NOTES
This function signals the VL15 that it may be possible to send
a SMP. This function checks three criteria before sending a SMP:
1) The VL15 worker is IDLE
2) There are no QP0 SMPs currently outstanding
3) There is something on the VL15 FIFO to send
SEE ALSO
VL15 object, osm_vl15_construct, osm_vl15_init