python: Implement write support in Python IDL for OVSDB.
[sliver-openvswitch.git] / ofproto / ofproto.h
index ed8d45b..3552aac 100644 (file)
@@ -22,6 +22,7 @@
 #include <stdbool.h>
 #include <stddef.h>
 #include <stdint.h>
+#include "cfm.h"
 #include "flow.h"
 #include "netflow.h"
 #include "sset.h"
@@ -31,7 +32,7 @@
 extern "C" {
 #endif
 
-struct cfm;
+struct cfm_settings;
 struct cls_rule;
 struct netdev;
 struct ofproto;
@@ -141,6 +142,9 @@ int ofproto_port_dump_done(struct ofproto_port_dump *);
           : (ofproto_port_dump_done(DUMP), false));         \
         )
 
+#define OFPROTO_FLOW_EVICTON_THRESHOLD_DEFAULT 1000
+#define OFPROTO_FLOW_EVICTION_THRESHOLD_MIN    100
+
 int ofproto_port_add(struct ofproto *, struct netdev *, uint16_t *ofp_portp);
 int ofproto_port_del(struct ofproto *, uint16_t ofp_port);
 
@@ -156,6 +160,8 @@ void ofproto_reconnect_controllers(struct ofproto *);
 void ofproto_set_extra_in_band_remotes(struct ofproto *,
                                        const struct sockaddr_in *, size_t n);
 void ofproto_set_in_band_queue(struct ofproto *, int queue_id);
+void ofproto_set_flow_eviction_threshold(struct ofproto *, unsigned threshold);
+void ofproto_set_forward_bpdu(struct ofproto *, bool forward_bpdu);
 void ofproto_set_desc(struct ofproto *,
                       const char *mfr_desc, const char *hw_desc,
                       const char *sw_desc, const char *serial_desc,
@@ -171,9 +177,7 @@ void ofproto_port_unregister(struct ofproto *, uint16_t ofp_port);
 
 void ofproto_port_clear_cfm(struct ofproto *, uint16_t ofp_port);
 void ofproto_port_set_cfm(struct ofproto *, uint16_t ofp_port,
-                          const struct cfm *,
-                          const uint16_t *remote_mps, size_t n_remote_mps);
-const struct cfm *ofproto_port_get_cfm(struct ofproto *, uint16_t ofp_port);
+                          const struct cfm_settings *);
 int ofproto_port_is_lacp_current(struct ofproto *, uint16_t ofp_port);
 
 /* Configuration of bundles. */
@@ -187,6 +191,7 @@ struct ofproto_bundle_settings {
     unsigned long *trunks;      /* vlan_bitmap, NULL to trunk all VLANs. */
 
     struct bond_settings *bond; /* Must be nonnull iff if n_slaves > 1. */
+    uint32_t *bond_stable_ids;  /* Array of n_slaves elements. */
 
     struct lacp_settings *lacp;              /* Nonnull to enable LACP. */
     struct lacp_slave_settings *lacp_slaves; /* Array of n_slaves elements. */
@@ -230,6 +235,10 @@ void ofproto_get_snoops(const struct ofproto *, struct sset *);
 void ofproto_get_all_flows(struct ofproto *p, struct ds *);
 void ofproto_get_netflow_ids(const struct ofproto *,
                              uint8_t *engine_type, uint8_t *engine_id);
+int ofproto_port_get_cfm_fault(const struct ofproto *, uint16_t ofp_port);
+int ofproto_port_get_cfm_remote_mpids(const struct ofproto *,
+                                      uint16_t ofp_port, const uint64_t **rmps,
+                                      size_t *n_rmps);
 
 void ofproto_get_ofproto_controller_info(const struct ofproto *, struct shash *);
 void ofproto_free_ofproto_controller_info(struct shash *);