Main Page | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

vipl_priv_conn_recv.c File Reference

#include <string.h>
#include "vipl_priv.h"

Go to the source code of this file.

Functions

static void vip_send_conn_request (VIP_CONN *vip_conn_ptr, VIP_GM *vip_gm_ptr)
void vip_handle_conn_list (VIP_PACKET_CONN_LIST *ptr, VIP_GM *vip_gm_ptr)
void vip_handle_conn_req (VIP_PACKET_CONN_REQ *ptr, gm_recv_event_t *gm_event, VIP_GM *vip_gm_ptr)
void vip_handle_conn_nomatch (VIP_PACKET_CONN_NOMATCH *ptr, VIP_GM *vip_gm_ptr)
void vip_handle_conn_accept (VIP_PACKET_CONN_ACCEPT *ptr, gm_recv_event_t *gm_event, VIP_GM *vip_gm_ptr)
void vip_handle_conn_reject (VIP_PACKET_CONN_REJECT *ptr)
void vip_handle_conn_ack (VIP_PACKET_CONN_ACK *ptr)


Detailed Description

This file contains the internal functions related to connection message reception and processing of connnection receive events.

Definition in file vipl_priv_conn_recv.c.


Function Documentation

static void vip_send_conn_request VIP_CONN vip_conn_ptr,
VIP_GM vip_gm_ptr
[static]
 

This function builds a Connection request packet from the Connection handle and send it.

Parameters:
vip_conn_ptr (IN) The pointer to the Connection handle.
vip_gm_ptr (IN) The pointer to the main GM structure.
Author:
Patrick Geoffray
Version:
1.0

Definition at line 32 of file vipl_priv_conn_recv.c.

References VIP_PACKET_CONN_REQ::clt_conn_ptr, VIP_PACKET_CONN_REQ::clt_disc_len, VIP_PACKET_CONN_REQ::clt_net_addr, VIP_PACKET_CONN_REQ::clt_seq_num, VIP_SEND_REQ::dest_gm_id, VIP_SEND_REQ::dest_port_id, VIP_CONN::handle, VIP_PACKET_CONN_REQ::mtu, VIP_SEND_REQ::ptr, VIP_PACKET_CONN_REQ::qos, VIP_PACKET_CONN_REQ::rdma_write, VIP_PACKET_CONN_REQ::reliability, VIP_HANDLE::seq_num, VIP_PACKET_CONN_REQ::srv_disc_len, VIP_PACKET_CONN_REQ::srv_net_addr, VIP_PACKET_CONN_REQ::srv_net_magic, VIP_SEND_REQ::type, VIP_PACKET_CONN_REQ::type, VIP_CONN::type, VI_GM_MAC_ADDRESS_LEN, vip_addr2addrbits(), vip_allocate_packet(), VIP_ASSERT, VIP_CONN_PEER_REQ_PKT, VIP_CONN_REQ_PKT, VIP_CONN_TYPE_PEER, VIP_DEBUG, VIP_DEBUG_LABEL, VIP_FALSE, VIP_HTON_UCHAR, VIP_HTON_UINT16, VIP_HTON_UINT32, VIP_HTON_UINT64, VIP_INVALID_VI_HANDLE, VIP_SEND_REQ::vip_nic_ptr, vip_send_data(), VIP_SEND_REQ_RELIABLE, VIP_SEND_REQ::vip_vi_ptr, VIP_CONN::vip_vi_ptr, and VIP_CONN::waiting_list.

Referenced by vip_handle_conn_list(), and vip_handle_conn_nomatch().

void vip_handle_conn_list VIP_PACKET_CONN_LIST ptr,
VIP_GM vip_gm_ptr
 

This function handles incoming Connection List reply back from the connection manager. If at least one endpoint is valid in this list, a connection request is sent to the first matching one.

Parameters:
ptr (IN) The pointer to the incoming Connection List packet.
vip_gm_ptr (IN) The pointer to the main GM structure.
Author:
Patrick Geoffray
Version:
1.0

Definition at line 106 of file vipl_priv_conn_recv.c.

References VIP_PACKET_CONN_LIST::clt_conn_ptr, VIP_PACKET_CONN_LIST::clt_seq_num, VIP_PACKET_CONN_LIST::net_srv_magic, VI_GM_MAX_PORTS, vip_addrbits2addr(), VIP_ASSERT, VIP_CONN_TYPE_CLIENT, VIP_CONN_TYPE_PEER, VIP_DEBUG, VIP_DEBUG_LABEL, VIP_EVENT_SIGNAL, VIP_HTON_UINT32, VIP_INVALID_CONN_HANDLE, VIP_MUTEX_LOCK, VIP_MUTEX_UNLOCK, VIP_NET_UINT32, VIP_NO_MATCH, VIP_NTOH_UINT16, VIP_NTOH_UINT32, VIP_NTOH_UINT64, and vip_send_conn_request().

Referenced by vip_receive_event().

void vip_handle_conn_req VIP_PACKET_CONN_REQ ptr,
gm_recv_event_t *  gm_event,
VIP_GM vip_gm_ptr
 

This function handles incoming Connection Request messages from clients. It searches in the Connection waiting list and returns a No match packet if no matching connection is found on the server. If a matching connection is found, it may return a Reject packet if parameters are not compatible, or finally wake up the blocked VipConnectWait and remove the matching connection from the waiting list.

Parameters:
ptr (IN) The pointer to the incoming Connection Request packet.
gm_event (IN) The GM receive event related to the message.
vip_gm_ptr (IN) The pointer to the main GM structure.
Author:
Patrick Geoffray
Version:
1.0

Definition at line 188 of file vipl_priv_conn_recv.c.

References VIP_PACKET_CONN_REJECT::clt_conn_ptr, VIP_PACKET_CONN_NOMATCH::clt_conn_ptr, VIP_PACKET_CONN_ACCEPT::clt_conn_ptr, VIP_PACKET_CONN_REQ::clt_conn_ptr, VIP_PACKET_CONN_REQ::clt_disc_len, VIP_PACKET_CONN_REQ::clt_net_addr, VIP_PACKET_CONN_REJECT::clt_seq_num, VIP_PACKET_CONN_NOMATCH::clt_seq_num, VIP_PACKET_CONN_ACCEPT::clt_seq_num, VIP_PACKET_CONN_REQ::clt_seq_num, VIP_SEND_REQ::dest_gm_id, VIP_SEND_REQ::dest_port_id, VIP_VI_ATTRIBUTES::EnableRdmaRead, VIP_VI_ATTRIBUTES::EnableRdmaWrite, VIP_CONN::event, VIP_GM::gm_id, VIP_GM::gm_port_id, VIP_CONN::handle, VIP_GM::head_waiting_conn_ptr, VIP_CONN::locale_disc_len, VIP_CONN::locale_net_addr, VIP_NIC::lock, VIP_GM::magic, VIP_VI_ATTRIBUTES::MaxTransferSize, VIP_PACKET_CONN_REQ::mtu, VIP_PACKET_CONN_ACCEPT::net_local_nic_index, VIP_PACKET_CONN_ACCEPT::net_local_vi_index, VIP_CONN::net_remote_conn_ptr, VIP_CONN::net_remote_seq_num, VIP_CONN::next_waiting_conn_ptr, VIP_PACKET_CONN_REJECT::peer_status, VIP_CONN::peer_timeout_alarm, VIP_SEND_REQ::ptr, VIP_PACKET_CONN_REQ::qos, VIP_VI_ATTRIBUTES::QoS, VIP_VI::rdma_write, VIP_PACKET_CONN_ACCEPT::rdma_write, VIP_PACKET_CONN_REQ::rdma_write, VIP_PACKET_CONN_REQ::reliability, VIP_VI_ATTRIBUTES::ReliabilityLevel, VIP_CONN::remote_disc_len, VIP_CONN::remote_gm_id, VIP_CONN::remote_net_addr, VIP_CONN::remote_port_id, VIP_CONN::remote_vi_attribs, VIP_HANDLE::seq_num, VIP_PACKET_CONN_ACCEPT::srv_conn_ptr, VIP_PACKET_CONN_REQ::srv_disc_len, VIP_PACKET_CONN_REQ::srv_net_addr, VIP_PACKET_CONN_REQ::srv_net_magic, VIP_PACKET_CONN_ACCEPT::srv_seq_num, VIP_CONN::status, VIP_GM::tail_waiting_conn_ptr, VIP_PACKET_CONN_REJECT::type, VIP_PACKET_CONN_NOMATCH::type, VIP_SEND_REQ::type, VIP_PACKET_CONN_ACCEPT::type, VIP_CONN::type, VIP_PACKET_CONN_REQ::type, VI_GM_MAC_ADDRESS_LEN, vip_addr2addrbits(), vip_addrbits2addr(), vip_allocate_packet(), VIP_ASSERT, VIP_CONN_NOMATCH_PKT, VIP_CONN_PEER_ACCEPT_PKT, VIP_CONN_PEER_REJECT_PKT, VIP_CONN_PEER_REQ_PKT, VIP_CONN_REQ_PKT, VIP_CONN_TYPE_PEER, VIP_CONN_TYPE_SERVER, VIP_DEBUG, VIP_DEBUG_LABEL, VIP_EVENT_SIGNAL, VIP_FALSE, VIP_NIC::vip_gm_ptr, VIP_HTON_UCHAR, VIP_HTON_UINT16, VIP_HTON_UINT64, VIP_INVALID_MTU, VIP_INVALID_RELIABILITY_LEVEL, VIP_MUTEX_LOCK, VIP_MUTEX_UNLOCK, VIP_SEND_REQ::vip_nic_ptr, VIP_HANDLE::vip_nic_ptr, VIP_NOT_DONE, VIP_NTOH_UCHAR, VIP_NTOH_UINT16, VIP_NTOH_UINT32, VIP_NTOH_UINT64, VIP_PACKET::vip_pkt_conn_accept, VIP_PACKET::vip_pkt_conn_nomatch, VIP_PACKET::vip_pkt_conn_reject, vip_remove_conn_waiting_list(), vip_send_data(), VIP_SEND_REQ_RELIABLE, VIP_SUCCESS, VIP_TRUE, VIP_SEND_REQ::vip_vi_ptr, VIP_CONN::vip_vi_ptr, and VIP_CONN::waiting_list.

Referenced by vip_receive_event().

void vip_handle_conn_nomatch VIP_PACKET_CONN_NOMATCH ptr,
VIP_GM vip_gm_ptr
 

This function handles incoming Connection No Match reply packets back from servers. It tries to find another endpoints on the remote node in the list returned by the connection manager, and sends a new Connection Request message if it finds one.

Parameters:
ptr (IN) The pointer to the incoming Connection No Match packet.
vip_gm_ptr (IN) The pointer to the main GM structure.
Author:
Patrick Geoffray
Version:
1.0

Definition at line 419 of file vipl_priv_conn_recv.c.

References VIP_PACKET_CONN_NOMATCH::clt_conn_ptr, VIP_PACKET_CONN_NOMATCH::clt_seq_num, VI_GM_MAX_PORTS, vip_addrbits2addr(), VIP_ASSERT, VIP_CONN_TYPE_CLIENT, VIP_CONN_TYPE_PEER, VIP_DEBUG, VIP_DEBUG_LABEL, VIP_EVENT_SIGNAL, VIP_HTON_UINT32, VIP_INVALID_CONN_HANDLE, VIP_MUTEX_LOCK, VIP_MUTEX_UNLOCK, VIP_NET_UINT32, VIP_NO_MATCH, VIP_NTOH_UINT16, VIP_NTOH_UINT32, VIP_NTOH_UINT64, and vip_send_conn_request().

Referenced by vip_receive_event().

void vip_handle_conn_accept VIP_PACKET_CONN_ACCEPT ptr,
gm_recv_event_t *  gm_event,
VIP_GM vip_gm_ptr
 

This function handles incoming Connection Accept packets back from servers. If the connection is still valid on the client side, the VIs are connected. Otherwise, a Connection Nack is sent back to the server to drop the connection.

Parameters:
ptr (IN) The pointer to the incoming Connection Accept packet.
gm_event (IN) The GM receive event related to the message.
vip_gm_ptr (IN) The pointer to the main GM structure.
Author:
Patrick Geoffray
Version:
1.0

Definition at line 495 of file vipl_priv_conn_recv.c.

References VIP_PACKET_CONN_ACCEPT::clt_conn_ptr, VIP_PACKET_CONN_ACCEPT::clt_seq_num, VIP_SEND_REQ::dest_gm_id, VIP_SEND_REQ::dest_port_id, VIP_PACKET_CONN_ACK::net_local_nic_index, VIP_PACKET_CONN_ACCEPT::net_local_nic_index, VIP_PACKET_CONN_ACK::net_local_vi_index, VIP_PACKET_CONN_ACCEPT::net_local_vi_index, VIP_SEND_REQ::ptr, VIP_PACKET_CONN_ACCEPT::rdma_write, VIP_PACKET_CONN_ACK::srv_conn_ptr, VIP_PACKET_CONN_ACCEPT::srv_conn_ptr, VIP_PACKET_CONN_ACK::srv_seq_num, VIP_PACKET_CONN_ACCEPT::srv_seq_num, VIP_PACKET_CONN_ACK::status, VIP_SEND_REQ::type, VIP_PACKET_CONN_ACK::type, vip_addrbits2addr(), vip_allocate_packet(), VIP_ASSERT, VIP_CONN_ACK_PKT, VIP_CONN_TYPE_CLIENT, VIP_CONN_TYPE_PEER, VIP_DEBUG, VIP_DEBUG_LABEL, VIP_EVENT_SIGNAL, VIP_HTON_UCHAR, VIP_HTON_UINT16, VIP_INVALID_CONN_HANDLE, VIP_MUTEX_LOCK, VIP_MUTEX_UNLOCK, VIP_SEND_REQ::vip_nic_ptr, VIP_NTOH_UCHAR, VIP_NTOH_UINT16, VIP_NTOH_UINT64, vip_remove_conn_waiting_list(), vip_send_data(), VIP_SEND_REQ_RELIABLE, VIP_STATE_CONNECTED, VIP_SUCCESS, VIP_TIMEOUT, VIP_TRUE, and VIP_SEND_REQ::vip_vi_ptr.

Referenced by vip_receive_event().

void vip_handle_conn_reject VIP_PACKET_CONN_REJECT ptr  ) 
 

This function handles incoming Connection Reject packets back from servers. It will terminate the pending connection with the corresponding status code.

Parameters:
ptr (IN) The pointer to the incoming Connection Reject packet.
Author:
Patrick Geoffray
Version:
1.0

Definition at line 607 of file vipl_priv_conn_recv.c.

References VIP_PACKET_CONN_REJECT::clt_conn_ptr, VIP_PACKET_CONN_REJECT::clt_seq_num, VIP_PACKET_CONN_REJECT::peer_status, VIP_PACKET_CONN_REJECT::type, vip_addrbits2addr(), VIP_ASSERT, VIP_CONN_PEER_REJECT_PKT, VIP_CONN_REJECT_PKT, VIP_CONN_TYPE_CLIENT, VIP_CONN_TYPE_PEER, VIP_DEBUG, VIP_DEBUG_LABEL, VIP_EVENT_SIGNAL, VIP_INVALID_CONN_HANDLE, VIP_MUTEX_LOCK, VIP_MUTEX_UNLOCK, VIP_NTOH_UCHAR, VIP_NTOH_UINT16, VIP_NTOH_UINT64, VIP_REJECT, vip_remove_conn_waiting_list(), and VIP_TRUE.

Referenced by vip_receive_event().

void vip_handle_conn_ack VIP_PACKET_CONN_ACK ptr  ) 
 

This function handles incoming Connection accept Acknowledgement packets back from the client side. It connects the VI and terminate the connection procedure.

Parameters:
ptr (IN) The pointer to the incoming Connection Ack packet.
Author:
Patrick Geoffray
Version:
1.0

Definition at line 666 of file vipl_priv_conn_recv.c.

References VIP_PACKET_CONN_ACK::net_local_nic_index, VIP_PACKET_CONN_ACK::net_local_vi_index, VIP_PACKET_CONN_ACK::srv_conn_ptr, VIP_PACKET_CONN_ACK::srv_seq_num, VIP_PACKET_CONN_ACK::status, vip_addrbits2addr(), VIP_ASSERT, VIP_CONN_TYPE_PEER, VIP_CONN_TYPE_SERVER, VIP_DEBUG, VIP_DEBUG_LABEL, VIP_EVENT_SIGNAL, VIP_INVALID_CONN_HANDLE, VIP_MUTEX_LOCK, VIP_MUTEX_UNLOCK, VIP_NTOH_UCHAR, VIP_NTOH_UINT16, VIP_NTOH_UINT64, VIP_STATE_CONNECTED, and VIP_SUCCESS.

Referenced by vip_receive_event().

VI-GM-1.3 by Myricom © 1997-2006. Documentation generated on 20 May 2006 by doxygen 1.4.4.