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

vipl_priv_conn_mgr.c File Reference

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

Go to the source code of this file.

Data Structures

struct  _VIP_CONN_MGR_ENTRY

Typedefs

typedef _VIP_CONN_MGR_ENTRY VIP_ENDPOINT

Functions

void vip_conn_mgr_dead_endpoint (void *ptr)
void vip_conn_mgr_send_callback (struct gm_port *gm_port, void *context, gm_status_t status)
int main (void)


Detailed Description

The VI-GM connection manager daemon.

Definition in file vipl_priv_conn_mgr.c.


Typedef Documentation

typedef struct _VIP_CONN_MGR_ENTRY VIP_ENDPOINT
 

This structure describes an entry in the connection manager table of local endpoints.


Function Documentation

void vip_conn_mgr_dead_endpoint void *  ptr  ) 
 

This function is called when the GM alarm associated to a local endpoint is raised. As the timeout is expired, the endpoint is deregistered from the connection manager list.

Parameters:
ptr (IN) The pointer to the endpoint entry in the connection manager active list.
Author:
Patrick Geoffray
Version:
1.0

Definition at line 47 of file vipl_priv_conn_mgr.c.

References _VIP_CONN_MGR_ENTRY::net_srv_magic, VIP_ASSERT, VIP_DEBUG, VIP_DEBUG_LABEL, VIP_HTON_UINT32, and VIP_NTOH_UINT32.

Referenced by main().

void vip_conn_mgr_send_callback struct gm_port *  gm_port,
void *  context,
gm_status_t  status
 

This function is the send completion callback, called when the send operation of a Connection List replay packet is done. It only recycles the receive buffer previously used by the incoming Connection List request.

Parameters:
gm_port (IN) The GM port used to send the packet.
context (IN) The context passed to GM by the send call, contains the pointer to the packet sent.
status (IN) The GM status of the send operation.
Author:
Patrick Geoffray
Version:
1.0

Definition at line 75 of file vipl_priv_conn_mgr.c.

References VIP_PACKET_CONN_LIST::gm_unique_id, VIP_PACKET_CONN_LIST::port_id, and VI_GM_CTRL_GM_SIZE.

Referenced by main().

int main void   ) 
 

The connection manager is a daemon receiving heartbeat messages from VI-GM processes on the local nodes (even with several Myrinet interfaces) and sending the list of such processes associated to a specific NIC. The clients in the client/server connection model request the list of VI-GM processes to send them CONN_REQ messages.

This design is required because of the independence of the differents GM ports on a local host: VI-GM has the concept of NIC, whereas GM has the notion of Ports. The connection manager is in charge of keeping the up-to-date map between VI-GM processes and GM ports per Myrinet interface.

The connection manager is stateless, i.e. you can restart it at anytime to allow connection with the node. If a connection manager is killed or dies, a new one will be operational as soon as the local VI-GM endpoints will send it a ALIVE message, each VI_GM_CONN_MGR_TTL/2 ms.

See also:
VipConnectWait VipConnectRequest
Author:
Patrick Geoffray
Version:
1.0

Definition at line 128 of file vipl_priv_conn_mgr.c.

References _VIP_CONN_MGR_ENTRY::alarm, VIP_PACKET_CONN_LIST::gm_unique_id, VIP_PACKET_CONN_LIST::net_srv_magic, VIP_PACKET_ALIVE::net_srv_magic, _VIP_CONN_MGR_ENTRY::net_srv_magic, VIP_PACKET_CONN_LIST::port_id, VIP_PACKET_CONN_LIST::type, VIP_PACKET::type, VI_GM_CONN_MGR_TTL, VI_GM_CTRL_GM_SIZE, VI_GM_MAX_NICS, VI_GM_MAX_PORTS, VI_GM_PORT_CONN_MANAGER, VIP_ALIVE_PKT, VIP_CONN_LIST_REPLY_PKT, VIP_CONN_LIST_REQ_PKT, vip_conn_mgr_dead_endpoint(), vip_conn_mgr_send_callback(), VIP_DEBUG, VIP_DEBUG_LABEL, VIP_HTON_UCHAR, vip_millisleep(), VIP_NET_UINT32, VIP_NTOH_UCHAR, VIP_NTOH_UINT32, VIP_PACKET::vip_pkt_alive, and VIP_PACKET::vip_pkt_conn_list.

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