Print this page
Try versioning as a new state


 101         void                    *sq_arg;        /* Callback function arg */
 102         svp_t                   *sq_svp;        /* Pointer back to svp_t */
 103         svp_req_t               sq_header;      /* Header for the query */
 104         svp_query_data_t        sq_rdun;        /* Union for read data */
 105         svp_query_data_t        sq_wdun;        /* Union for write data */
 106         svp_status_t            sq_status;      /* Query response status */
 107         size_t                  sq_size;        /* Query response size */
 108         void                    *sq_rdata;      /* Read data pointer */
 109         size_t                  sq_rsize;       /* Read data size */
 110         void                    *sq_wdata;      /* Write data pointer */
 111         size_t                  sq_wsize;       /* Write data size */
 112         hrtime_t                sq_acttime;     /* Last I/O activity time */
 113 };
 114 
 115 typedef enum svp_conn_state {
 116         SVP_CS_ERROR            = 0x00,
 117         SVP_CS_INITIAL          = 0x01,
 118         SVP_CS_CONNECTING       = 0x02,
 119         SVP_CS_BACKOFF          = 0x03,
 120         SVP_CS_ACTIVE           = 0x04,
 121         SVP_CS_WINDDOWN         = 0x05

 122 } svp_conn_state_t;
 123 
 124 typedef enum svp_conn_error {
 125         SVP_CE_NONE             = 0x00,
 126         SVP_CE_ASSOCIATE        = 0x01,
 127         SVP_CE_NOPOLLOUT        = 0x02,
 128         SVP_CE_SOCKET           = 0x03,
 129         SVP_CE_VERSION_PONG     = 0x04
 130 } svp_conn_error_t;
 131 
 132 typedef enum svp_conn_flags {
 133         SVP_CF_ADDED            = 0x01,
 134         SVP_CF_DEGRADED         = 0x02,
 135         SVP_CF_REAP             = 0x04,
 136         SVP_CF_TEARDOWN         = 0x08,
 137         SVP_CF_UFLAG            = 0x0c,
 138         SVP_CF_USER             = 0x10
 139 } svp_conn_flags_t;
 140 
 141 typedef struct svp_conn_out {


 330 extern int svp_conn_create(svp_remote_t *, const struct in6_addr *);
 331 extern void svp_conn_destroy(svp_conn_t *);
 332 extern void svp_conn_fallout(svp_conn_t *);
 333 extern void svp_conn_queue(svp_conn_t *, svp_query_t *);
 334 
 335 /*
 336  * FMA related
 337  */
 338 extern void svp_remote_degrade(svp_remote_t *, svp_degrade_state_t);
 339 extern void svp_remote_restore(svp_remote_t *, svp_degrade_state_t);
 340 
 341 /*
 342  * Misc.
 343  */
 344 extern int svp_comparator(const void *, const void *);
 345 extern void svp_remote_reassign(svp_remote_t *, svp_conn_t *);
 346 extern void svp_remote_resolved(svp_remote_t *, struct addrinfo *);
 347 extern void svp_host_queue(svp_remote_t *);
 348 extern void svp_query_release(svp_query_t *);
 349 extern void svp_query_crc32(svp_req_t *, void *, size_t);

 350 
 351 /*
 352  * Shootdown related
 353  */
 354 extern void svp_remote_shootdown_vl3(svp_remote_t *, svp_log_vl3_t *,
 355     svp_sdlog_t *);
 356 extern void svp_remote_shootdown_vl2(svp_remote_t *, svp_log_vl2_t *);
 357 extern void svp_remote_log_request(svp_remote_t *, svp_query_t *, void *,
 358     size_t);
 359 extern void svp_remote_lrm_request(svp_remote_t *, svp_query_t *, void *,
 360     size_t);
 361 extern void svp_shootdown_logr_cb(svp_remote_t *, svp_status_t, void *, size_t);
 362 extern void svp_shootdown_lrm_cb(svp_remote_t *, svp_status_t);
 363 extern void svp_shootdown_vl3_cb(svp_status_t, svp_log_vl3_t *, svp_sdlog_t *);
 364 extern int svp_shootdown_init(svp_remote_t *);
 365 extern void svp_shootdown_fini(svp_remote_t *);
 366 extern void svp_shootdown_start(svp_remote_t *);
 367 
 368 #ifdef __cplusplus
 369 }


 101         void                    *sq_arg;        /* Callback function arg */
 102         svp_t                   *sq_svp;        /* Pointer back to svp_t */
 103         svp_req_t               sq_header;      /* Header for the query */
 104         svp_query_data_t        sq_rdun;        /* Union for read data */
 105         svp_query_data_t        sq_wdun;        /* Union for write data */
 106         svp_status_t            sq_status;      /* Query response status */
 107         size_t                  sq_size;        /* Query response size */
 108         void                    *sq_rdata;      /* Read data pointer */
 109         size_t                  sq_rsize;       /* Read data size */
 110         void                    *sq_wdata;      /* Write data pointer */
 111         size_t                  sq_wsize;       /* Write data size */
 112         hrtime_t                sq_acttime;     /* Last I/O activity time */
 113 };
 114 
 115 typedef enum svp_conn_state {
 116         SVP_CS_ERROR            = 0x00,
 117         SVP_CS_INITIAL          = 0x01,
 118         SVP_CS_CONNECTING       = 0x02,
 119         SVP_CS_BACKOFF          = 0x03,
 120         SVP_CS_ACTIVE           = 0x04,
 121         SVP_CS_WINDDOWN         = 0x05,
 122         SVP_CS_VERSIONING       = 0x06
 123 } svp_conn_state_t;
 124 
 125 typedef enum svp_conn_error {
 126         SVP_CE_NONE             = 0x00,
 127         SVP_CE_ASSOCIATE        = 0x01,
 128         SVP_CE_NOPOLLOUT        = 0x02,
 129         SVP_CE_SOCKET           = 0x03,
 130         SVP_CE_VERSION_PONG     = 0x04
 131 } svp_conn_error_t;
 132 
 133 typedef enum svp_conn_flags {
 134         SVP_CF_ADDED            = 0x01,
 135         SVP_CF_DEGRADED         = 0x02,
 136         SVP_CF_REAP             = 0x04,
 137         SVP_CF_TEARDOWN         = 0x08,
 138         SVP_CF_UFLAG            = 0x0c,
 139         SVP_CF_USER             = 0x10
 140 } svp_conn_flags_t;
 141 
 142 typedef struct svp_conn_out {


 331 extern int svp_conn_create(svp_remote_t *, const struct in6_addr *);
 332 extern void svp_conn_destroy(svp_conn_t *);
 333 extern void svp_conn_fallout(svp_conn_t *);
 334 extern void svp_conn_queue(svp_conn_t *, svp_query_t *);
 335 
 336 /*
 337  * FMA related
 338  */
 339 extern void svp_remote_degrade(svp_remote_t *, svp_degrade_state_t);
 340 extern void svp_remote_restore(svp_remote_t *, svp_degrade_state_t);
 341 
 342 /*
 343  * Misc.
 344  */
 345 extern int svp_comparator(const void *, const void *);
 346 extern void svp_remote_reassign(svp_remote_t *, svp_conn_t *);
 347 extern void svp_remote_resolved(svp_remote_t *, struct addrinfo *);
 348 extern void svp_host_queue(svp_remote_t *);
 349 extern void svp_query_release(svp_query_t *);
 350 extern void svp_query_crc32(svp_req_t *, void *, size_t);
 351 extern id_t svp_id_alloc(void);
 352 
 353 /*
 354  * Shootdown related
 355  */
 356 extern void svp_remote_shootdown_vl3(svp_remote_t *, svp_log_vl3_t *,
 357     svp_sdlog_t *);
 358 extern void svp_remote_shootdown_vl2(svp_remote_t *, svp_log_vl2_t *);
 359 extern void svp_remote_log_request(svp_remote_t *, svp_query_t *, void *,
 360     size_t);
 361 extern void svp_remote_lrm_request(svp_remote_t *, svp_query_t *, void *,
 362     size_t);
 363 extern void svp_shootdown_logr_cb(svp_remote_t *, svp_status_t, void *, size_t);
 364 extern void svp_shootdown_lrm_cb(svp_remote_t *, svp_status_t);
 365 extern void svp_shootdown_vl3_cb(svp_status_t, svp_log_vl3_t *, svp_sdlog_t *);
 366 extern int svp_shootdown_init(svp_remote_t *);
 367 extern void svp_shootdown_fini(svp_remote_t *);
 368 extern void svp_shootdown_start(svp_remote_t *);
 369 
 370 #ifdef __cplusplus
 371 }