diff options
Diffstat (limited to 'xlators/mgmt/glusterd/src/glusterd-sm.h')
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-sm.h | 240 |
1 files changed, 119 insertions, 121 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-sm.h b/xlators/mgmt/glusterd/src/glusterd-sm.h index 640468830d5..051e83c675d 100644 --- a/xlators/mgmt/glusterd/src/glusterd-sm.h +++ b/xlators/mgmt/glusterd/src/glusterd-sm.h @@ -26,196 +26,194 @@ #include "glusterd-rcu.h" typedef enum gd_quorum_contribution_ { - QUORUM_NONE, - QUORUM_WAITING, - QUORUM_DOWN, - QUORUM_UP + QUORUM_NONE, + QUORUM_WAITING, + QUORUM_DOWN, + QUORUM_UP } gd_quorum_contrib_t; typedef enum glusterd_friend_sm_state_ { - GD_FRIEND_STATE_DEFAULT = 0, - GD_FRIEND_STATE_REQ_SENT, - GD_FRIEND_STATE_REQ_RCVD, - GD_FRIEND_STATE_BEFRIENDED, - GD_FRIEND_STATE_REQ_ACCEPTED, - GD_FRIEND_STATE_REQ_SENT_RCVD, - GD_FRIEND_STATE_REJECTED, - GD_FRIEND_STATE_UNFRIEND_SENT, - GD_FRIEND_STATE_PROBE_RCVD, - GD_FRIEND_STATE_CONNECTED_RCVD, - GD_FRIEND_STATE_CONNECTED_ACCEPTED, - GD_FRIEND_STATE_MAX + GD_FRIEND_STATE_DEFAULT = 0, + GD_FRIEND_STATE_REQ_SENT, + GD_FRIEND_STATE_REQ_RCVD, + GD_FRIEND_STATE_BEFRIENDED, + GD_FRIEND_STATE_REQ_ACCEPTED, + GD_FRIEND_STATE_REQ_SENT_RCVD, + GD_FRIEND_STATE_REJECTED, + GD_FRIEND_STATE_UNFRIEND_SENT, + GD_FRIEND_STATE_PROBE_RCVD, + GD_FRIEND_STATE_CONNECTED_RCVD, + GD_FRIEND_STATE_CONNECTED_ACCEPTED, + GD_FRIEND_STATE_MAX } glusterd_friend_sm_state_t; typedef struct glusterd_peer_state_info_ { - glusterd_friend_sm_state_t state; - struct timeval transition_time; -}glusterd_peer_state_info_t; + glusterd_friend_sm_state_t state; + struct timeval transition_time; +} glusterd_peer_state_info_t; typedef struct glusterd_peer_hostname_ { - char *hostname; - struct cds_list_head hostname_list; + char *hostname; + struct cds_list_head hostname_list; } glusterd_peer_hostname_t; typedef struct glusterd_sm_transition_ { - int old_state; - int event; - int new_state; - time_t time; + int old_state; + int event; + int new_state; + time_t time; } glusterd_sm_transition_t; typedef struct glusterd_sm_tr_log_ { - glusterd_sm_transition_t *transitions; - size_t current; - size_t size; - size_t count; - char* (*state_name_get) (int); - char* (*event_name_get) (int); + glusterd_sm_transition_t *transitions; + size_t current; + size_t size; + size_t count; + char *(*state_name_get)(int); + char *(*event_name_get)(int); } glusterd_sm_tr_log_t; struct glusterd_peerinfo_ { - uuid_t uuid; - char uuid_str[50]; /* Retrieve this using - * gd_peer_uuid_str () - */ - glusterd_peer_state_info_t state; - char *hostname; - struct cds_list_head hostnames; - int port; - struct cds_list_head uuid_list; - struct cds_list_head op_peers_list; - struct rpc_clnt *rpc; - rpc_clnt_prog_t *mgmt; - rpc_clnt_prog_t *peer; - rpc_clnt_prog_t *mgmt_v3; - int connected; - gf_store_handle_t *shandle; - glusterd_sm_tr_log_t sm_log; - gf_boolean_t quorum_action; - gd_quorum_contrib_t quorum_contrib; - gf_boolean_t locked; - gf_boolean_t detaching; - /* Members required for proper cleanup using RCU */ - gd_rcu_head rcu_head; - pthread_mutex_t delete_lock; - uint32_t generation; + uuid_t uuid; + char uuid_str[50]; /* Retrieve this using + * gd_peer_uuid_str () + */ + glusterd_peer_state_info_t state; + char *hostname; + struct cds_list_head hostnames; + int port; + struct cds_list_head uuid_list; + struct cds_list_head op_peers_list; + struct rpc_clnt *rpc; + rpc_clnt_prog_t *mgmt; + rpc_clnt_prog_t *peer; + rpc_clnt_prog_t *mgmt_v3; + int connected; + gf_store_handle_t *shandle; + glusterd_sm_tr_log_t sm_log; + gf_boolean_t quorum_action; + gd_quorum_contrib_t quorum_contrib; + gf_boolean_t locked; + gf_boolean_t detaching; + /* Members required for proper cleanup using RCU */ + gd_rcu_head rcu_head; + pthread_mutex_t delete_lock; + uint32_t generation; }; typedef struct glusterd_peerinfo_ glusterd_peerinfo_t; typedef struct glusterd_local_peers_ { - glusterd_peerinfo_t *peerinfo; - struct cds_list_head op_peers_list; + glusterd_peerinfo_t *peerinfo; + struct cds_list_head op_peers_list; } glusterd_local_peers_t; typedef enum glusterd_ev_gen_mode_ { - GD_MODE_OFF, - GD_MODE_ON, - GD_MODE_SWITCH_ON + GD_MODE_OFF, + GD_MODE_ON, + GD_MODE_SWITCH_ON } glusterd_ev_gen_mode_t; typedef struct glusterd_peer_ctx_args_ { - rpcsvc_request_t *req; - glusterd_ev_gen_mode_t mode; - dict_t *dict; + rpcsvc_request_t *req; + glusterd_ev_gen_mode_t mode; + dict_t *dict; } glusterd_peerctx_args_t; typedef struct glusterd_peer_ctx_ { - glusterd_peerctx_args_t args; - uuid_t peerid; - char *peername; - uint32_t peerinfo_gen; - char *errstr; + glusterd_peerctx_args_t args; + uuid_t peerid; + char *peername; + uint32_t peerinfo_gen; + char *errstr; } glusterd_peerctx_t; typedef enum glusterd_friend_sm_event_type_ { - GD_FRIEND_EVENT_NONE = 0, - GD_FRIEND_EVENT_PROBE, - GD_FRIEND_EVENT_INIT_FRIEND_REQ, - GD_FRIEND_EVENT_RCVD_ACC, - GD_FRIEND_EVENT_LOCAL_ACC, - GD_FRIEND_EVENT_RCVD_RJT, - GD_FRIEND_EVENT_LOCAL_RJT, - GD_FRIEND_EVENT_RCVD_FRIEND_REQ, - GD_FRIEND_EVENT_INIT_REMOVE_FRIEND, - GD_FRIEND_EVENT_RCVD_REMOVE_FRIEND, - GD_FRIEND_EVENT_REMOVE_FRIEND, - GD_FRIEND_EVENT_CONNECTED, - GD_FRIEND_EVENT_NEW_NAME, - GD_FRIEND_EVENT_MAX + GD_FRIEND_EVENT_NONE = 0, + GD_FRIEND_EVENT_PROBE, + GD_FRIEND_EVENT_INIT_FRIEND_REQ, + GD_FRIEND_EVENT_RCVD_ACC, + GD_FRIEND_EVENT_LOCAL_ACC, + GD_FRIEND_EVENT_RCVD_RJT, + GD_FRIEND_EVENT_LOCAL_RJT, + GD_FRIEND_EVENT_RCVD_FRIEND_REQ, + GD_FRIEND_EVENT_INIT_REMOVE_FRIEND, + GD_FRIEND_EVENT_RCVD_REMOVE_FRIEND, + GD_FRIEND_EVENT_REMOVE_FRIEND, + GD_FRIEND_EVENT_CONNECTED, + GD_FRIEND_EVENT_NEW_NAME, + GD_FRIEND_EVENT_MAX } glusterd_friend_sm_event_type_t; - typedef enum glusterd_friend_update_op_ { - GD_FRIEND_UPDATE_NONE = 0, - GD_FRIEND_UPDATE_ADD, - GD_FRIEND_UPDATE_DEL, + GD_FRIEND_UPDATE_NONE = 0, + GD_FRIEND_UPDATE_ADD, + GD_FRIEND_UPDATE_DEL, } glusterd_friend_update_op_t; - struct glusterd_friend_sm_event_ { - struct cds_list_head list; - uuid_t peerid; - char *peername; - void *ctx; - glusterd_friend_sm_event_type_t event; + struct cds_list_head list; + uuid_t peerid; + char *peername; + void *ctx; + glusterd_friend_sm_event_type_t event; }; typedef struct glusterd_friend_sm_event_ glusterd_friend_sm_event_t; -typedef int (*glusterd_friend_sm_ac_fn) (glusterd_friend_sm_event_t *, void *); +typedef int (*glusterd_friend_sm_ac_fn)(glusterd_friend_sm_event_t *, void *); typedef struct glusterd_sm_ { - glusterd_friend_sm_state_t next_state; - glusterd_friend_sm_ac_fn handler; + glusterd_friend_sm_state_t next_state; + glusterd_friend_sm_ac_fn handler; } glusterd_sm_t; typedef struct glusterd_friend_req_ctx_ { - uuid_t uuid; - char *hostname; - rpcsvc_request_t *req; - int port; - dict_t *vols; + uuid_t uuid; + char *hostname; + rpcsvc_request_t *req; + int port; + dict_t *vols; } glusterd_friend_req_ctx_t; typedef struct glusterd_friend_update_ctx_ { - uuid_t uuid; - char *hostname; - int op; + uuid_t uuid; + char *hostname; + int op; } glusterd_friend_update_ctx_t; typedef struct glusterd_probe_ctx_ { - char *hostname; - rpcsvc_request_t *req; - int port; - dict_t *dict; + char *hostname; + rpcsvc_request_t *req; + int port; + dict_t *dict; } glusterd_probe_ctx_t; int -glusterd_friend_sm_new_event (glusterd_friend_sm_event_type_t event_type, - glusterd_friend_sm_event_t **new_event); +glusterd_friend_sm_new_event(glusterd_friend_sm_event_type_t event_type, + glusterd_friend_sm_event_t **new_event); int -glusterd_friend_sm_inject_event (glusterd_friend_sm_event_t *event); +glusterd_friend_sm_inject_event(glusterd_friend_sm_event_t *event); int -glusterd_friend_sm_init (); +glusterd_friend_sm_init(); int -glusterd_friend_sm (); +glusterd_friend_sm(); void -glusterd_destroy_probe_ctx (glusterd_probe_ctx_t *ctx); +glusterd_destroy_probe_ctx(glusterd_probe_ctx_t *ctx); void -glusterd_destroy_friend_req_ctx (glusterd_friend_req_ctx_t *ctx); +glusterd_destroy_friend_req_ctx(glusterd_friend_req_ctx_t *ctx); -char* -glusterd_friend_sm_state_name_get (int state); +char * +glusterd_friend_sm_state_name_get(int state); -char* -glusterd_friend_sm_event_name_get (int event); +char * +glusterd_friend_sm_event_name_get(int event); int -glusterd_broadcast_friend_delete (char *hostname, uuid_t uuid); +glusterd_broadcast_friend_delete(char *hostname, uuid_t uuid); void -glusterd_destroy_friend_update_ctx (glusterd_friend_update_ctx_t *ctx); +glusterd_destroy_friend_update_ctx(glusterd_friend_update_ctx_t *ctx); #endif |