aboutsummaryrefslogtreecommitdiff
path: root/ofproto/ofproto.h
diff options
context:
space:
mode:
authorRomain Lenglet <rlenglet@vmware.com>2013-04-22 10:01:14 -0700
committerBen Pfaff <blp@nicira.com>2013-04-22 14:33:58 -0700
commit29089a540cfa30a834e3ee19a8b4c52ff2e331b2 (patch)
tree7fd0c5d666c5f18fbd7ad463edc8d908636999f3 /ofproto/ofproto.h
parentd8558b4ae86f0f64afe520c4c1d99f55a94063d8 (diff)
Implement IPFIX export
Define a new NXAST_SAMPLE OpenFlow vendor action and the corresponding OFPACT_SAMPLE OVS action, to do per-flow packet sampling, translated into a new SAMPLE "flow_sample" dp action. Make the userspace action's userdata size vary depending on the union member used. Add a new "flow_sample" upcall to do per-flow packet sampling. Add a new "ipfix" upcall to do per-bridge packet sampling to IPFIX collectors. Extend the OVSDB schema to support configuring IPFIX collector sets. Add support for configuring multiple IPFIX collectors for per-flow packet sampling. Add support for configuring per-bridge IPFIX sampling. Automatically generate standard IPFIX entity definitions from the IANA specs. Send one IPFIX data record message for every packet sampled by an OpenFlow sample action or received by a bridge configured with IPFIX sampling, and periodically send IPFIX template set messages. Signed-off-by: Romain Lenglet <rlenglet@vmware.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
Diffstat (limited to 'ofproto/ofproto.h')
-rw-r--r--ofproto/ofproto.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/ofproto/ofproto.h b/ofproto/ofproto.h
index b3a55a43..bb799b5e 100644
--- a/ofproto/ofproto.h
+++ b/ofproto/ofproto.h
@@ -68,6 +68,19 @@ struct ofproto_sflow_options {
char *control_ip;
};
+
+struct ofproto_ipfix_bridge_exporter_options {
+ struct sset targets;
+ uint32_t sampling_rate;
+ uint32_t obs_domain_id; /* Bridge-wide Observation Domain ID. */
+ uint32_t obs_point_id; /* Bridge-wide Observation Point ID. */
+};
+
+struct ofproto_ipfix_flow_exporter_options {
+ uint32_t collector_set_id;
+ struct sset targets;
+};
+
struct ofproto_stp_settings {
stp_identifier system_id;
uint16_t priority;
@@ -229,6 +242,10 @@ int ofproto_set_snoops(struct ofproto *, const struct sset *snoops);
int ofproto_set_netflow(struct ofproto *,
const struct netflow_options *nf_options);
int ofproto_set_sflow(struct ofproto *, const struct ofproto_sflow_options *);
+int ofproto_set_ipfix(struct ofproto *,
+ const struct ofproto_ipfix_bridge_exporter_options *,
+ const struct ofproto_ipfix_flow_exporter_options *,
+ size_t);
int ofproto_set_stp(struct ofproto *, const struct ofproto_stp_settings *);
int ofproto_get_stp_status(struct ofproto *, struct ofproto_stp_status *);