Motr  M0
conn.c File Reference
#include "lib/trace.h"
#include "lib/errno.h"
#include "lib/memory.h"
#include "lib/misc.h"
#include "lib/bitstring.h"
#include "lib/arith.h"
#include "lib/finject.h"
#include "lib/uuid.h"
#include "fop/fop.h"
#include "module/instance.h"
#include "reqh/reqh.h"
#include "rpc/rpc_internal.h"
#include "conf/helpers.h"
#include "conf/obj_ops.h"
#include "conf/cache.h"
#include "conf/confc.h"
#include "ha/note.h"
#include "ha/msg.h"
#include "ha/ha.h"
Include dependency graph for conn.c:

Go to the source code of this file.

Macros

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_RPC
 
#define S_CASE(x)   case x: return #x;
 

Enumerations

enum  { RPC_HA_INTERVAL = 500 * M0_TIME_ONE_MSEC }
 

Functions

M0_INTERNAL struct m0_rpc_chanrpc_chan_get (struct m0_rpc_machine *machine, struct m0_net_end_point *dest_ep, uint64_t max_rpcs_in_flight)
 
M0_INTERNAL void rpc_chan_put (struct m0_rpc_chan *chan)
 
static bool rpc_conn__on_service_event_cb (struct m0_clink *clink)
 
static void rpc_conn_sessions_cleanup_fail (struct m0_rpc_conn *conn, bool fail)
 
static bool rpc_conn__on_cache_expired_cb (struct m0_clink *clink)
 
static bool rpc_conn__on_cache_ready_cb (struct m0_clink *clink)
 
static struct m0_confcrpc_conn2confc (const struct m0_rpc_conn *conn)
 
static void rpc_conn_ha_timer_cb (struct m0_sm_timer *timer)
 
static void reqh_service_ha_state_set (struct m0_rpc_conn *conn, uint8_t state)
 
static int session_zero_attach (struct m0_rpc_conn *conn)
 
static void session_zero_detach (struct m0_rpc_conn *conn)
 
static int __conn_init (struct m0_rpc_conn *conn, struct m0_net_end_point *ep, struct m0_rpc_machine *machine, uint64_t max_rpcs_in_flight)
 
static void __conn_fini (struct m0_rpc_conn *conn)
 
static void conn_failed (struct m0_rpc_conn *conn, int32_t error)
 
static void deregister_all_item_sources (struct m0_rpc_conn *conn)
 
M0_INTERNAL void conn_state_set (struct m0_rpc_conn *conn, int state)
 
M0_INTERNAL bool m0_rpc_conn_invariant (const struct m0_rpc_conn *conn)
 
M0_INTERNAL bool m0_rpc_conn_is_snd (const struct m0_rpc_conn *conn)
 
M0_INTERNAL bool m0_rpc_conn_is_rcv (const struct m0_rpc_conn *conn)
 
M0_INTERNAL int m0_rpc_conn_init (struct m0_rpc_conn *conn, struct m0_fid *svc_fid, struct m0_net_end_point *ep, struct m0_rpc_machine *machine, uint64_t max_rpcs_in_flight)
 
M0_INTERNAL struct m0_conf_objm0_rpc_conn2svc (const struct m0_rpc_conn *conn)
 
static void __conn_ha_subscribe (struct m0_rpc_conn *conn)
 
static void __conn_ha_unsubscribe (struct m0_rpc_conn *conn)
 
M0_INTERNAL void m0_rpc_conn_reset (struct m0_rpc_conn *conn)
 
M0_INTERNAL int m0_rpc_rcv_conn_init (struct m0_rpc_conn *conn, struct m0_net_end_point *ep, struct m0_rpc_machine *machine, const struct m0_uint128 *uuid)
 
M0_INTERNAL void m0_rpc_conn_fini (struct m0_rpc_conn *conn)
 
M0_INTERNAL int m0_rpc_conn_ha_subscribe (struct m0_rpc_conn *conn, struct m0_fid *svc_fid)
 
M0_INTERNAL void m0_rpc_conn_ha_unsubscribe (struct m0_rpc_conn *conn)
 
M0_INTERNAL void m0_rpc_conn_fini_locked (struct m0_rpc_conn *conn)
 
M0_INTERNAL int m0_rpc_conn_timedwait (struct m0_rpc_conn *conn, uint64_t states, const m0_time_t timeout)
 
M0_INTERNAL void m0_rpc_conn_add_session (struct m0_rpc_conn *conn, struct m0_rpc_session *session)
 
M0_INTERNAL void m0_rpc_conn_remove_session (struct m0_rpc_session *session)
 
M0_INTERNAL struct m0_rpc_sessionm0_rpc_conn_session0 (const struct m0_rpc_conn *conn)
 
M0_INTERNAL struct m0_rpc_sessionm0_rpc_session_search (const struct m0_rpc_conn *conn, uint64_t session_id)
 
M0_INTERNAL struct m0_rpc_sessionm0_rpc_session_search_and_pop (const struct m0_rpc_conn *conn, uint64_t session_id)
 
M0_INTERNAL struct m0_rpc_sessionm0_rpc_session_pop (const struct m0_rpc_conn *conn)
 
M0_INTERNAL int m0_rpc_conn_create (struct m0_rpc_conn *conn, struct m0_fid *svc_fid, struct m0_net_end_point *ep, struct m0_rpc_machine *rpc_machine, uint64_t max_rpcs_in_flight, m0_time_t abs_timeout)
 
M0_INTERNAL int m0_rpc_conn_establish_sync (struct m0_rpc_conn *conn, m0_time_t abs_timeout)
 
M0_INTERNAL int m0_rpc_conn_establish (struct m0_rpc_conn *conn, m0_time_t abs_timeout)
 
M0_INTERNAL void m0_rpc_conn_establish_reply_received (struct m0_rpc_item *item)
 
int m0_rpc_conn_destroy (struct m0_rpc_conn *conn, m0_time_t abs_timeout)
 
M0_INTERNAL int m0_rpc_conn_terminate_sync (struct m0_rpc_conn *conn, m0_time_t abs_timeout)
 
M0_INTERNAL int m0_rpc_conn_terminate (struct m0_rpc_conn *conn, m0_time_t abs_timeout)
 
M0_INTERNAL void m0_rpc_conn_terminate_reply_received (struct m0_rpc_item *item)
 
M0_INTERNAL void m0_rpc_conn_cleanup_all_sessions (struct m0_rpc_conn *conn)
 
M0_INTERNAL int m0_rpc_rcv_conn_terminate (struct m0_rpc_conn *conn)
 
M0_INTERNAL void m0_rpc_conn_terminate_reply_sent (struct m0_rpc_conn *conn)
 
M0_INTERNAL bool m0_rpc_item_is_conn_establish (const struct m0_rpc_item *item)
 
M0_INTERNAL bool m0_rpc_item_is_sess_establish (const struct m0_rpc_item *item)
 
M0_INTERNAL int m0_rpc_machine_conn_list_dump (struct m0_rpc_machine *machine, int dir)
 
M0_INTERNAL int m0_rpc_conn_session_list_dump (const struct m0_rpc_conn *conn)
 
M0_INTERNAL const char * m0_rpc_conn_addr (const struct m0_rpc_conn *conn)
 
M0_INTERNAL bool m0_rpc_conn_is_known_dead (const struct m0_rpc_conn *conn)
 
M0_INTERNAL void m0_rpc_conn_sessions_cancel (struct m0_rpc_conn *conn)
 
M0_INTERNAL int m0_rpc_conn_ha_timer_start (struct m0_rpc_conn *conn)
 
M0_INTERNAL void m0_rpc_conn_ha_timer_stop (struct m0_rpc_conn *conn)
 
M0_INTERNAL void m0_rpc_conn_ha_cfg_set (struct m0_rpc_conn *conn, const struct m0_rpc_conn_ha_cfg *cfg)
 
M0_INTERNAL const char * m0_rpc_conn_state_to_str (enum m0_rpc_conn_state state)
 

Variables

static struct m0_rpc_conn_ha_cfg rpc_conn_ha_cfg
 
static const struct m0_rpc_item_ops conn_establish_item_ops
 
static const struct m0_rpc_item_ops conn_terminate_item_ops
 
static struct m0_sm_state_descr conn_states []
 
static const struct m0_sm_conf conn_conf
 

Macro Definition Documentation

◆ M0_TRACE_SUBSYSTEM

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_RPC

Definition at line 23 of file conn.c.