On Mon, Apr 22, 2013 at 10:01:14AM -0700, Romain Lenglet wrote:
> 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 <[email protected]>
I noticed a couple of things in final review, so I just changed them
myself.
First, I didn't see a reason that the userspace datapath can't do
IPFIX, and when we IM'd you confirmed, so I applied this incremental:
diff --git a/FAQ b/FAQ
index 38c6346..e7249cf 100644
--- a/FAQ
+++ b/FAQ
@@ -192,7 +192,7 @@ Q: What features are not available when using the userspace
datapath?
A: Tunnel virtual ports are not supported, as described in the
previous answer. It is also not possible to use queue-related
actions. On Linux kernels before 2.6.39, maximum-sized VLAN packets
- may not be transmitted. IPFIX is not supported.
+ may not be transmitted.
Terminology
Second, "sparse" reported that ntohl and htonl were reversed, so I
also applied this:
diff --git a/lib/ofp-actions.c b/lib/ofp-actions.c
index 9805d06..068699f 100644
--- a/lib/ofp-actions.c
+++ b/lib/ofp-actions.c
@@ -1428,8 +1428,8 @@ ofpact_sample_to_nxast(const struct ofpact_sample *os,
nas = ofputil_put_NXAST_SAMPLE(out);
nas->probability = htons(os->probability);
- nas->collector_set_id = ntohl(os->collector_set_id);
- nas->obs_domain_id = ntohl(os->obs_domain_id);
+ nas->collector_set_id = htonl(os->collector_set_id);
+ nas->obs_domain_id = htonl(os->obs_domain_id);
nas->obs_point_id = htonl(os->obs_point_id);
}
I also noticed that the E-R diagram in ovs-vswitchd.conf.db(5) is now
ugly and unreadable, but we can fix that later.
I pushed this to master. Thank you!
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev