Generated from sdp_defs.h with ROBODoc vunknown on Thu Aug 01 16:41:36 2002
TABLE OF CONTENTS
- SDP/sdp_versions
- SDP/sdp_mode_t
- SDP/sdp_flags_t
- SDP/sdp_mid_t
- SDP/sdp_bsdh_t
- SDP/sdp_hello_t
- SDP/sdp_hello_ack_t
- SDP/sdp_srcav_t
- SDP/sdp_snkav_t
- SDP/sdp_rwc_t
- SDP/sdp_rrc_t
- SDP/sdp_mc_t
- SDP/sdp_srcav_c_t
- SDP/sdp_snkavc_t
- SDP/sdp_snkavc_ack_t
- SDP/sdp_crb_t
- SDP/sdp_crb_ack_t
- SDP/sdp_susp_t
- SDP/sdp_susp_ack_t
- SDP/SDP_BSDH_LEN
- SDP/SDP_HH_LEN
- SDP/SDP_HM_LEN
NAME
Latest SDP Major and Minor Versions
DESCRIPTION
#define SDP_MAJOR 1
#define SDP_MINOR 1
VALUES
Self explanatory
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
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.
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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