#include <stddef.h>
#include <stdint.h>
#include "cfm.h"
+#include "classifier.h"
#include "flow.h"
+#include "meta-flow.h"
#include "netflow.h"
#include "sset.h"
#include "stp.h"
struct cfm_settings;
struct cls_rule;
struct netdev;
-struct ofproto;
+struct netdev_stats;
struct ofport;
+struct ofproto;
struct shash;
struct simap;
struct smap;
-struct netdev_stats;
struct ofproto_controller_info {
bool is_connected;
} pairs;
};
-struct ofexpired {
- struct flow flow;
- uint64_t packet_count; /* Packets from subrules. */
- uint64_t byte_count; /* Bytes from subrules. */
- long long int used; /* Last-used time (0 if never used). */
-};
-
struct ofproto_sflow_options {
struct sset targets;
uint32_t sampling_rate;
char *control_ip;
};
-
struct ofproto_ipfix_bridge_exporter_options {
struct sset targets;
uint32_t sampling_rate;
void ofproto_init(const struct shash *iface_hints);
int ofproto_type_run(const char *datapath_type);
-int ofproto_type_run_fast(const char *datapath_type);
void ofproto_type_wait(const char *datapath_type);
int ofproto_create(const char *datapath, const char *datapath_type,
int ofproto_delete(const char *name, const char *type);
int ofproto_run(struct ofproto *);
-int ofproto_run_fast(struct ofproto *);
void ofproto_wait(struct ofproto *);
bool ofproto_is_alive(const struct ofproto *);
void ofproto_get_memory_usage(const struct ofproto *, struct simap *);
+void ofproto_type_get_memory_usage(const char *datapath_type, struct simap *);
/* A port within an OpenFlow switch.
*
* distinguished by different values for the subfields within 'groups'. */
struct mf_subfield *groups;
size_t n_groups;
+
+ /*
+ * Fields for which prefix trie lookup is maintained.
+ */
+ unsigned int n_prefix_fields;
+ enum mf_field_id prefix_fields[CLS_MAX_TRIES];
};
int ofproto_get_n_tables(const struct ofproto *);