projects
/
openvswitch
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ovs.json: Optimize __dump_string().
[openvswitch]
/
ofproto
/
connmgr.h
diff --git
a/ofproto/connmgr.h
b/ofproto/connmgr.h
index 4710e6da7e2a2921dfc8b3656aa9711d73be13a0..ea39b724edaa4db6823d7351cbfcd105e6046314 100644
(file)
--- a/
ofproto/connmgr.h
+++ b/
ofproto/connmgr.h
@@
-23,9
+23,11
@@
#include "openflow/nicira-ext.h"
#include "openvswitch/types.h"
#include "openflow/nicira-ext.h"
#include "openvswitch/types.h"
-struct dpif_upcall;
struct ofconn;
struct ofconn;
+struct ofopgroup;
struct ofputil_flow_removed;
struct ofputil_flow_removed;
+struct ofputil_packet_in;
+struct sset;
/* ofproto supports two kinds of OpenFlow connections:
*
/* ofproto supports two kinds of OpenFlow connections:
*
@@
-53,21
+55,25
@@
struct connmgr *connmgr_create(struct ofproto *ofproto,
void connmgr_destroy(struct connmgr *);
void connmgr_run(struct connmgr *,
void connmgr_destroy(struct connmgr *);
void connmgr_run(struct connmgr *,
-
void
(*handle_openflow)(struct ofconn *,
+
bool
(*handle_openflow)(struct ofconn *,
struct ofpbuf *ofp_msg));
struct ofpbuf *ofp_msg));
-void connmgr_wait(struct connmgr *);
+void connmgr_wait(struct connmgr *
, bool handling_openflow
);
struct ofproto *ofconn_get_ofproto(const struct ofconn *);
struct ofproto *ofconn_get_ofproto(const struct ofconn *);
+void connmgr_retry(struct connmgr *);
+
/* OpenFlow configuration. */
bool connmgr_has_controllers(const struct connmgr *);
void connmgr_get_controller_info(struct connmgr *, struct shash *);
/* OpenFlow configuration. */
bool connmgr_has_controllers(const struct connmgr *);
void connmgr_get_controller_info(struct connmgr *, struct shash *);
+void connmgr_free_controller_info(struct shash *);
void connmgr_set_controllers(struct connmgr *,
const struct ofproto_controller[], size_t n);
void connmgr_reconnect(const struct connmgr *);
void connmgr_set_controllers(struct connmgr *,
const struct ofproto_controller[], size_t n);
void connmgr_reconnect(const struct connmgr *);
-int connmgr_set_snoops(struct connmgr *, const struct svec *snoops);
-void connmgr_get_snoops(const struct connmgr *, struct svec *snoops);
+int connmgr_set_snoops(struct connmgr *, const struct sset *snoops);
+bool connmgr_has_snoops(const struct connmgr *);
+void connmgr_get_snoops(const struct connmgr *, struct sset *snoops);
/* Individual connections to OpenFlow controllers. */
enum ofconn_type ofconn_get_type(const struct ofconn *);
/* Individual connections to OpenFlow controllers. */
enum ofconn_type ofconn_get_type(const struct ofconn *);
@@
-78,20
+84,31
@@
void ofconn_set_role(struct ofconn *, enum nx_role);
enum nx_flow_format ofconn_get_flow_format(struct ofconn *);
void ofconn_set_flow_format(struct ofconn *, enum nx_flow_format);
enum nx_flow_format ofconn_get_flow_format(struct ofconn *);
void ofconn_set_flow_format(struct ofconn *, enum nx_flow_format);
+bool ofconn_get_flow_mod_table_id(const struct ofconn *);
+void ofconn_set_flow_mod_table_id(struct ofconn *, bool enable);
+
int ofconn_get_miss_send_len(const struct ofconn *);
void ofconn_set_miss_send_len(struct ofconn *, int miss_send_len);
void ofconn_send_reply(const struct ofconn *, struct ofpbuf *);
int ofconn_get_miss_send_len(const struct ofconn *);
void ofconn_set_miss_send_len(struct ofconn *, int miss_send_len);
void ofconn_send_reply(const struct ofconn *, struct ofpbuf *);
+void ofconn_send_replies(const struct ofconn *, struct list *);
+void ofconn_send_error(const struct ofconn *, const struct ofp_header *request,
+ int error);
int ofconn_pktbuf_retrieve(struct ofconn *, uint32_t id,
struct ofpbuf **bufferp, uint16_t *in_port);
int ofconn_pktbuf_retrieve(struct ofconn *, uint32_t id,
struct ofpbuf **bufferp, uint16_t *in_port);
+bool ofconn_has_pending_opgroups(const struct ofconn *);
+void ofconn_add_opgroup(struct ofconn *, struct list *);
+void ofconn_remove_opgroup(struct ofconn *, struct list *,
+ const struct ofp_header *request, int error);
+
/* Sending asynchronous messages. */
void connmgr_send_port_status(struct connmgr *, const struct ofp_phy_port *,
uint8_t reason);
void connmgr_send_flow_removed(struct connmgr *,
const struct ofputil_flow_removed *);
/* Sending asynchronous messages. */
void connmgr_send_port_status(struct connmgr *, const struct ofp_phy_port *,
uint8_t reason);
void connmgr_send_flow_removed(struct connmgr *,
const struct ofputil_flow_removed *);
-void connmgr_send_packet_in(struct connmgr *, const struct
dpif_upcall
*,
+void connmgr_send_packet_in(struct connmgr *, const struct
ofputil_packet_in
*,
const struct flow *, struct ofpbuf *rw_packet);
/* Fail-open settings. */
const struct flow *, struct ofpbuf *rw_packet);
/* Fail-open settings. */