Generated from sdp_defs.h with ROBODoc vunknown on Thu Aug 01 16:41:36 2002

TABLE OF CONTENTS

  1. SDP/sdp_versions
  2. SDP/sdp_mode_t
  3. SDP/sdp_flags_t
  4. SDP/sdp_mid_t
  5. SDP/sdp_bsdh_t
  6. SDP/sdp_hello_t
  7. SDP/sdp_hello_ack_t
  8. SDP/sdp_srcav_t
  9. SDP/sdp_snkav_t
  10. SDP/sdp_rwc_t
  11. SDP/sdp_rrc_t
  12. SDP/sdp_mc_t
  13. SDP/sdp_srcav_c_t
  14. SDP/sdp_snkavc_t
  15. SDP/sdp_snkavc_ack_t
  16. SDP/sdp_crb_t
  17. SDP/sdp_crb_ack_t
  18. SDP/sdp_susp_t
  19. SDP/sdp_susp_ack_t
  20. SDP/SDP_BSDH_LEN
  21. SDP/SDP_HH_LEN
  22. SDP/SDP_HM_LEN

SDP/sdp_versions

NAME
        Latest SDP Major and Minor Versions 
DESCRIPTION
    

#define SDP_MAJOR   1
#define SDP_MINOR   1

VALUES
    Self explanatory

SDP/sdp_mode_t

NAME
    sdp_mode_t -- SDP Data Transfer modes
DESCRIPTION
    Identify SDP data transfer modes per half pipe

typedef enum 
{
    SDP_BUFFERED,
    SDP_COMBINED,
    SDP_PIPELINED
} sdp_mode_t;

VALUES
    Self explanatory

SDP/sdp_flags_t

NAME
    sdp_flags_t -- SDP message flags field in the BSDH (CA4-6)
DESCRIPTION
SYNOPSIS
typedef uint8_t         sdp_flags_t;

#define SDP_OOB_PRES    0x00
#define SDP_OOB_PEND    0x01
#define SDP_REQ_PIPE    0x02


VALUES
    SDP_OOB_PRES
        set when the last byte of the ULP payload in the SDP message
        is OOB data. 
    SDP_OOB_PEND
        set when Out-of-Band data has been sent by the ULP. This flag
        may be set in any SDP message. Actual OOB data may or may not
        be in the current SDP message.
    SDP_REQ_PIPE
        set as a hint from the data sink to the data source to switch
        to pipelined mode.
        
 NOTE:
    CA4-7:  SDP_OOB_PRES bit SHALL be set only in a data message.
    CA4-8:  Data Sink SHALL clear the REQ_PIPE bit if it would prefer
            the data source to stay in SDP_COMBINED mode. Data sink SHALL
            set the REQ_PIPE bit to one if it would prefer the Data Source
            to switch to SDP_PIPELINED mode or remain in SDP_PIPELINED mode. 
            REQ_PIPE bit SHALL only be set in RdmaRdCompl messages.
            Data source is not obligated to follow the recommendations
    CA4-9:  Data source SHALL ignore the REQ_PIPE if the current mode is
            SDP_BUFFERED.

SDP/sdp_mid_t

NAME
    sdp_mid_t -- SDP message flags field in the BSDH (CA4-5)
DESCRIPTION
SYNOPSIS
typedef uint8_t         sdp_mid_t;

#define SDP_HELLO           0x00
#define SDP_HELLO_ACK       0x01
#define SDP_DIS_CONN        0x02
#define SDP_ABORT_CONN      0x03
#define SDP_SEND_SM         0x04
#define SDP_RDMA_WR_CMP     0x05
#define SDP_RDMA_RD_CMP     0x06
#define SDP_MODE_CHANGE     0x07
#define SDP_SRC_AV_CAN      0x08
#define SDP_SNK_AV_CAN      0x09
#define SDP_SNK_CAN_ACK     0x0a
#define SDP_CH_RCV_BUF      0x0b
#define SDP_CH_RCV_ACK      0x0c
#define SDP_SUSP_COMM       0x0d
#define SDP_SUSP_COMM_ACK   0x0e
#define SDP_RSVD            (0x0f|0x3f)
#define SDP_EXP             (0x40|0x7f)
#define SDP_RSVD2           (0x80|0xfc)
#define SDP_SNK_AVAIL       0xfd
#define SDP_SRC_AVAIL       0xfe
#define SDP_DATA            0xff

VALUES
    Self explanatory

SDP/sdp_bsdh_t

NAME
    sdp_bsdh_t -- Base Sockets Direct Header (CA4-4)
DESCRIPTION
SYNOPSIS
typedef struct _sdp_bsdh_
{
    uint8_t     mid;
    uint8_t     flags;
    uint16_t    bufs;
    uint32_t    len;
    uint32_t    m_seq;
    uint32_t    m_seq_ack;

} sdp_bsdh_t;

VALUES
    mid
        sdp_mid_t defines the message identifier field.
    flags
        sdp_flags_t defines the flags field.
    bufs
        Number of private buffers currently posted after the last SDP
        message was received by the local peer, in units of private buffers.
    len
        SDP message length in bytes.
        CA4-10: For SDP messages other then HH and HAH, len SHALL be equal to 
        the sum of the sizes in BSDH, extended header (if present), and ULP 
        payload data (if present). The transport message SHALL equal the 
        value of len.   
    m_seq
        message sequence number. Increased by one for each SDP message.
        CA4-11: The first SDP message sent after connection establishment 
        SHALL have a m_seq value of one. Each successive SDP message SHALL 
        increase the value of m_seq by one, wrapping to zero after 
        0xFFFFFFFF.
    m_seq_ack
        message sequence number acknowledgement is the sequence number of the
        last SDP message received by the local peer.
        CA4-12: If no messages have been received by local peer since 
        connection establishment, a m_seq_ack value of zero SHALL be sent.

 NOTE
    CA4-1:  All SDP message headers SHALL use big indian byte ordering
            (network) and little indian bit ordering.
    CA4-2:  SDP_HELLO and SDP_HELLO_ACK message SHALL be carried in the
            transport providers connection management private data area.
            For InfiniBand this is CM REQ and CM REP MAD's.
    CA4-3:  All SDP messages, except SDP_HELLO and SDP_HELLO_ACK SHALL be 
            transmited via the transport provider's reliable connection. 
            For InfiniBand this is a RC channel.
    CA4-4:  All SDP message SHALL contain the Base Sockets Direct Header.

SDP/sdp_hello_t

NAME
    sdp_hello_t -- SDP Hello (CA4-13)
DESCRIPTION
    Hello Message contains both a sdp_bsdh_t and a Hello Header
    which is used to initiate a connection between SDP clients.

SYNOPSIS
typedef struct _sdp_hello_
{
    sdp_bsdh_t  bh;
    uint8_t     maj_vers:4;
    uint8_t     min_vers:4;
    uint8_t     ip_vers:4;
    uint8_t     rsvd1:4;
    uint8_t     rsvd2;
    uint8_t     max_adverts;
    uint32_t    rem_rcv_sz;
    uint32_t    local_rcv_sz;
    uint16_t    local_port;
    uint16_t    rsvd3;
    uint32_t    src_ip[4];
    uint32_t    dst_ip[4];
    uint32_t    rsvd4[7];

} sdp_hello_t;

VALUES
    bh
        Base Sockets Direct Header  
    maj_vers
        4-bit Major Protocol Version Number. Current specification requires 1.
        CA4-15: The accepting peer SHALL reject the connection if maj_vers
        does not match it's local value.
    min_vers
        4-bit Minor Protocol Version Number. Current specification requires 1.
        CA4-16: The accepting peer SHALL NOT reject the connection if the 
        min_vers does not match it's local value.
    ip_vers
        4-bit IP Version number of the address fields. If ip_vers=0x4 then 
        both addresses are in IPv4 format (32-bit). If ip_vers=0x6, then both
        addresses are IPv6 format (128-bit). No other values are valid.
        CA4-17: The accepting peer SHALL reject the connecion if ip_vers
        has a value other than 0x4 or 0x6.
    rsvd1
        4-bits reserved for future use. Must be transmitted as zeros and not 
        checked on receive.
    rsvd2
        8-bits reserved for future use. Must be transmitted as zeros and not 
        checked on receive.
    max_adverts
        Maximum number of concurrent ZCOPY advertisements that can be 
        outstanding to the local send message queue at any one time. This
        includes SrcAvail advertisments for data transfer from the remote peer
        and SinkAvail advertisements for data transfer from the local peer
        to the remote peer. max_adverts may be between 1 and 2^8-1, inclusive.
        CA4-18: The accepting peer SHALL reject the connection if max_adverts
        has a value of zero.
    rem_rcv_sz
        Desired size of the remote peer's receive private buffers, in units of
        bytes. Usually set to the initial size of the local send buffers. This
        is a hint to the remote peer. The remote peer may use this value when
        choosing local sizes but is not required to do so.
    local_rcv_sz
        Initial size of the local receive private buffers, in units of bytes.
    local_port
        The local 16-bit TCP port number. 
    src_ip
        Src IP address. Either IPv4 or IPv6, as specified in the ip_vers field.
        src_ip[0] = (127-96), src_ip[1] = (95-64)
        src_ip[2] = (63-32),  src_ip[3] = (31-0)
    dst_ip
        Dst IP address. Either IPv4 or IPv6, as specified in the ip_vers field.
        dst_ip[0] = (127-96), dst_ip[1] = (95-64)
        dst_ip[2] = (63-32),  dst_ip[3] = (31-0)
        CA4-19: If src_ip and dst_ip are IPv4 addresses then src_ip[3] and 
        dst_ip[3] contain the addresses. 
    rsvd3
        28 bytes reserved for future use. Must be transmitted as zeros and not 
        checked on receive.
        
 NOTE
    CA4-14: The BSDH fields SHALL be set as follow:
            mid     = SDP_HELLO 
            len     = size of sdp_bsdh_t + sdp_hh_t
            flags   = 0
            bufs    = initial send credits. >= 3 during connection setup
            seq     = set to zero and not checked on receive
            seq_ack = set to zero and not checked on receive

SDP/sdp_hello_ack_t

NAME
    sdp_hello_ack_t -- SDP Hello Acknowledgement(CA4-20)
DESCRIPTION
    Hello Message contains both a sdp_bsdh_t and a Hello Ack Header
    which is used to respond to a HH connection request.

SYNOPSIS
typedef struct _sdp_hello_ack_
{
    sdp_bsdh_t  bh;
    uint8_t     maj_vers:4;
    uint8_t     min_vers:4;
    uint8_t     rsvd1;
    uint8_t     rsvd2;
    uint8_t     max_adverts;
    uint32_t    act_rcv_sz;
    uint32_t    rsvd3[45];

} sdp_hello_ack_t;

VALUES
    bh
        Base Sockets Direct Header  
    maj_vers
        4-bit Major Protocol Version Number. Current specification requires 1.
        CA4-22: Connecting peer SHALL terminate the connection if maj_vers 
        does not match local value. It sends a REJECT back to the remote peer.
    min_vers
        4-bit Minor Protocol Version Number. Current specification requires 1.
        CA4-23: Connecting peer SHALL NOT terminate the connection if min_vers
        does not match the local value.
    rsvd1
        8-bits reserved for future use. Must be transmitted as zeros and not 
        checked on receive.
    rsvd2
        8-bits reserved for future use. Must be transmitted as zeros and not 
        checked on receive.
    max_adverts
        Maximum number of concurrent ZCOPY advertisements that can be 
        outstanding to the local send message queue at any one time. This
        includes SrcAvail advertisments for data transfer from the remote peer
        and SinkAvail advertisements for data transfer from the local peer
        to the remote peer. max_adverts may be between 1 and 2^8-1, inclusive.
        CA4-24: Connecting peer SHALL terminate the connection if max_adverts
        is set to zero.
    act_rcv_sz
        initial size of the local receive private buffers, in units of
        bytes. 
    rsvd3
        180 bytes reserved for future use. Must be transmitted as zeros and 
        not checked on receive.
        
 NOTE
    CA4-21: The BSDH fields SHALL be set as follow:
            mid     = SDP_HELLO_ACK 
            len     = size of sdp_bsdh_t + sdp_hah_t
            flags   = 0
            bufs    = initial send credits. >= 3 during connection setup
            seq     = set to zero and not checked on receive
            seq_ack = set to zero and not checked on receive

SDP/sdp_srcav_t

NAME
    sdp_srcav_t -- SDP Source Available (CA4-25)
DESCRIPTION
    Message sent from the data source to the data sink specifying the 
    available buffers ready for RDMA Read.
SYNOPSIS
typedef struct _sdp_srcav_
{
    sdp_bsdh_t  bh;
    uint32_t    len;
    uint32_t    r_key;
    uint64_t    va; 

} sdp_srcav_t;

VALUES
    bh
        Base Sockets Direct Header  
    len 
        size of send buffer in bytes represented by the r_key and va.
        CA4-26: The value of len SHALL be >0 and <2-31 bytes
    r_key
        CA4-28: SHALL contain the r_key value that should be used by the data
        sink when retrieving data from the data source via a RDMA read.
    va
        64-bit starting address of the buffer. May start on any byte boundary.
        CA4-27: The buffer that is addressed by va SHALL include the initial
        ULP data (if any) that was copied into the ULP payload of 
        the sdp_srcah_t.
 NOTE

SDP/sdp_snkav_t

NAME
    sdp_snkav_t -- SDP Sink Available (CA4-25)
DESCRIPTION
    Message sent from the data sink to the data source specifying the 
    available buffers ready for RDMA write.
SYNOPSIS
typedef struct _sdp_snkav_
{
    sdp_bsdh_t  bh;
    uint32_t    len;
    uint32_t    r_key;
    uint64_t    va; 
    uint32_t    seq_cons;

} sdp_snkav_t;

VALUES
    bh
        Base Sockets Direct Header  
    len 
        size of send buffer in bytes represented by the r_key and va.
        CA4-30: The value of len SHALL be >0 and <2-31 bytes
    r_key
        CA4-31: SHALL contain the r_key value that should be used by the data
        source when retrieving data from the data sink via a RDMA write.
    va
        64-bit starting address of the buffer. May start on any byte boundary.
    seq_cons
        sequentially consumed. Number of SDP messages received by the data sink
        after connection establishment which contain ULP payload, and whose 
        data has been fully consumed by the ULP via receive completions.
 NOTE

SDP/sdp_rwc_t

NAME
    sdp_rwc_t -- SDP RDMA Write Complete (CA4-32) 
DESCRIPTION
    RDMA write completion message is sent by the data source to inform the
    data sink that the RDMA write transfer has completed.

SYNOPSIS
typedef struct _sdp_rwc_
{
    sdp_bsdh_t  bh;
    uint32_t    len;

} sdp_rwc_t;

VALUES
    bh
        Base Sockets Direct Header  
    len 
        size in bytes transfered to the receiver's buffers through RDMA write(s)
        for the oldest outstanding sink available. The size MAY be less then 
        advertised.
 NOTE
            

SDP/sdp_rrc_t

NAME
    sdp_rwc_t -- SDP RDMA Read Complete (CA4-33) 
DESCRIPTION
    RDMA write completion message is sent by the data sink to inform the
    data source that the RDMA read transfer has completed.

SYNOPSIS
typedef struct _sdp_rrc_
{
    sdp_bsdh_t  bh;
    uint32_t    len;

} sdp_rrc_t;

VALUES
    bh
        Base Sockets Direct Header  
    len 
        size in bytes transfered to the data sinks receive buffers through 
        RDMA read(s) for the oldest outstanding src available. The size MAY 
        be less then advertised. The len field does not include the part
        of the buffer sent within the src_avh_t message data payload. If there
        was data included with the sdp_srcah_t message then len shall be exactly
        the difference between the advertised sdp_srcah_t buffer and the amount
        of data in sdp_srcah_t.
 NOTE
            

SDP/sdp_mc_t

NAME
    sdp_mc_t -- SDP Mode change (CA4-34) 
DESCRIPTION
    Message used to inform peer of flow-control mode change 

SYNOPSIS
typedef struct _sdp_mc_
{
    sdp_bsdh_t  bh;
    uint32_t    snd_half:1;
    uint32_t    mode:3;
    uint32_t    rsvd:28;

} sdp_mc_t;

VALUES
    bh
        Base Sockets Direct Header  
    snd_half
        Specifies whether the peer receiving the message should change its
        flow control for the send or receive half_connection. S=1 is send half
        and S=0 is receive half. 
    mode
        CA4-35. Mode values are defined in sdp_mode_t. Currently supports
        buffered, combined, and pipelined modes.
    rsvd
        28-bits reserved for future use. Must be transmitted as zeros and not 
        checked on receive.
 NOTE
            

SDP/sdp_srcav_c_t

NAME
    sdp_srcav_c_t -- SDP Src Available Cancel  
DESCRIPTION
    Message sent by data source to ask the data sink to ignore all source
    available advertisements which are unprocessed by the data sink.

SYNOPSIS
typedef struct _sdp_srcav_c_
{
    sdp_bsdh_t  bh;

} sdp_srcav_c_t;

VALUES
    bh
        Base Sockets Direct Header  
 NOTE
            

SDP/sdp_snkavc_t

NAME
    sdp_snkavc_t -- SDP Sink Available Cancel  
DESCRIPTION
    Message sent by data sink to ask the data source to ignore all sink
    available advertisements which are unprocessed by the data source.

SYNOPSIS
typedef struct _sdp_snkavc_
{
    sdp_bsdh_t  bh;

} sdp_snkavc_t;

VALUES
    bh
        Base Sockets Direct Header  
 NOTE
            

SDP/sdp_snkavc_ack_t

NAME
    sdp_snkavc_ack_t -- SDP Sink Available Cancel Acknowledge   
DESCRIPTION
    Message sent by data source in response to the Sink Available Cancel.
    Sent after data source has canceled all unprocessed sink available
    advertisements.  

SYNOPSIS
typedef struct _sdp_snkavc_ack_
{
    sdp_bsdh_t  bh;

} sdp_snkavc_ack_t;

VALUES
    bh
        Base Sockets Direct Header  
 NOTE
            

SDP/sdp_crb_t

NAME
    sdp_crb_t -- SDP change receive buffer size (CA4-36)  
DESCRIPTION
    Message sent by data source to the data sink to request a change
    in buffer size of the data sink's private receive buffers.

SYNOPSIS
typedef struct _sdp_crb_
{
    sdp_bsdh_t  bh;
    uint32_t    des_len;

} sdp_crb_t;

VALUES
    bh
        Base Sockets Direct Header  
    des_len
        Desired size in bytes of the data sink's receive private buffers.
 NOTE
            

SDP/sdp_crb_ack_t

NAME
    sdp_crba_t -- SDP change receive buffer size acknowledgement (CA4-37)  
DESCRIPTION
    Message sent by data sink to the data source in response to a change 
    receive buffer request. Informs data source of new receive buffer size.

SYNOPSIS
typedef struct _sdp_crb_ack_
{
    sdp_bsdh_t  bh;
    uint32_t    act_len;

} sdp_crb_ack_t;

VALUES
    bh
        Base Sockets Direct Header  
    act_len
        Actual size in bytes of the data sink's receive private buffers. May
        be the same size prior to receipt of the change receive buffer request
        if the peer does not wish to resize.
 NOTE
            

SDP/sdp_susp_t

NAME
    sdp_susp_comm_t -- SDP suspend communications (CA4-38)  
DESCRIPTION
    Message sent to ask the peer to suspend communications as part of socket
    duplication processing.
SYNOPSIS
typedef struct _sdp_susp_
{
    sdp_bsdh_t  bh;
    uint64_t    sid;

} sdp_susp_t;

VALUES
    bh
        Base Sockets Direct Header  
    sid
        Service identification that the remote peer should try to connect with 
        to re-establish with the local peer after socket duplication is 
        complete.
 NOTE
            

SDP/sdp_susp_ack_t

NAME
    sdp_susp_comm_t -- SDP suspend communications acknowledgement (CA4-38)  
DESCRIPTION
    Message sent in response to peer request to suspend communications 
    as part of socket duplication.
SYNOPSIS
typedef struct _sdp_susp_ack_
{
    sdp_bsdh_t  bh;

} sdp_susp_ack_t;

VALUES
    bh
        Base Sockets Direct Header  
 NOTE
            

SDP/SDP_BSDH_LEN

NAME
    SDP_BSDH_LEN - SDP Base Header length
DESCRIPTION
    Size of Base Sockets Direct Header length
 
SYNOPSIS
#define SDP_BSDH_LEN sizeof(sdp_bsdh_t)  

VALUES
    Self explanatory

SDP/SDP_HH_LEN

NAME
    SDP_HH_LEN - SDP Hello Header length
DESCRIPTION
    Size of Hello Header length
 
SYNOPSIS
#define SDP_HH_LEN sizeof(sdp_hh_t) 

VALUES
    Self explanatory

SDP/SDP_HM_LEN

NAME
    SDP_HM_LEN - SDP Hello Header length
DESCRIPTION
    Size of Hello Header length
 
SYNOPSIS
#define SDP_HM_LEN (sizeof(sdp_bsdh_t) + sizeof(sdp_hh_t))

VALUES
    Self explanatory