Generated from osm_vl15intf.h with ROBODoc vunknown on Wed Aug 07 15:31:54 2002

TABLE OF CONTENTS

  1. OpenSM/VL15
  2. OpenSM: SM/OSM_VL15_DEFAULT_POLL_INTERVAL_USECS
  3. OpenSM: SM/osm_vl15_state_t
  4. OpenSM: VL15/osm_vl15_t
  5. OpenSM: VL15/osm_vl15_construct
  6. OpenSM: VL15/osm_vl15_destroy
  7. OpenSM: VL15/osm_vl15_init
  8. OpenSM: VL15/osm_vl15_post
  9. OpenSM: VL15/osm_vl15_poll

OpenSM/VL15

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


OpenSM: SM/OSM_VL15_DEFAULT_POLL_INTERVAL_USECS

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

OpenSM: SM/osm_vl15_state_t

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;

OpenSM: VL15/osm_vl15_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

OpenSM: VL15/osm_vl15_construct

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

OpenSM: VL15/osm_vl15_destroy

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

OpenSM: VL15/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

OpenSM: VL15/osm_vl15_post

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

OpenSM: VL15/osm_vl15_poll

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