[ovs-dev] [PATCH] Implement IPFIX export

Romain Lenglet rlenglet at vmware.com
Mon Apr 22 21:49:00 UTC 2013


Thanks for your reviews and your changes!
--
Romain Lenglet

On Apr 22, 2013, at 2:44 PM, Ben Pfaff <blp at nicira.com> wrote:

> 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 <rlenglet at vmware.com>
> 
> 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!



More information about the dev mailing list