X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Frconn.h;h=69f9b8dea0d4169ec3cf07fa0d5f40a31f299029;hb=95204b0bf0c329fde1ff1ba821f9166abfa18377;hp=064be01a8780c43257e0ca754fee10cf3bdd290e;hpb=9e6949d69fc59f1d36604973b8dbed16aa36b1f4;p=sliver-openvswitch.git diff --git a/include/rconn.h b/include/rconn.h index 064be01a8..69f9b8dea 100644 --- a/include/rconn.h +++ b/include/rconn.h @@ -36,6 +36,7 @@ #include "queue.h" #include +#include #include /* A wrapper around vconn that provides queuing and optionally reliability. @@ -52,18 +53,41 @@ struct vconn; -struct rconn *rconn_new(const char *name, int txq_limit); -struct rconn *rconn_new_from_vconn(const char *name, int txq_limit, - struct vconn *); +struct rconn *rconn_new(const char *name, + int inactivity_probe_interval, int max_backoff); +struct rconn *rconn_new_from_vconn(const char *name, struct vconn *); +struct rconn *rconn_create(int inactivity_probe_interval, int max_backoff); +int rconn_connect(struct rconn *, const char *name); +void rconn_connect_unreliably(struct rconn *, + const char *name, struct vconn *vconn); +void rconn_disconnect(struct rconn *); void rconn_destroy(struct rconn *); void rconn_run(struct rconn *); void rconn_run_wait(struct rconn *); -struct buffer *rconn_recv(struct rconn *); +struct ofpbuf *rconn_recv(struct rconn *); void rconn_recv_wait(struct rconn *); -int rconn_send(struct rconn *, struct buffer *); +int rconn_send(struct rconn *, struct ofpbuf *, int *n_queued); +int rconn_send_with_limit(struct rconn *, struct ofpbuf *, + int *n_queued, int queue_limit); +unsigned int rconn_packets_sent(const struct rconn *); +unsigned int rconn_packets_received(const struct rconn *); const char *rconn_get_name(const struct rconn *); bool rconn_is_alive(const struct rconn *); +bool rconn_is_connected(const struct rconn *); +int rconn_disconnected_duration(const struct rconn *); +bool rconn_is_connectivity_questionable(struct rconn *); + +uint32_t rconn_get_ip(const struct rconn *); + +const char *rconn_get_state(const struct rconn *); +unsigned int rconn_get_attempted_connections(const struct rconn *); +unsigned int rconn_get_successful_connections(const struct rconn *); +time_t rconn_get_last_connection(const struct rconn *); +time_t rconn_get_creation_time(const struct rconn *); +unsigned long int rconn_get_total_time_connected(const struct rconn *); +int rconn_get_backoff(const struct rconn *); +unsigned int rconn_get_state_elapsed(const struct rconn *); #endif /* rconn.h */