It sounds like snaplen is not very useful in IPFIX. If so, then I'd support removing the IPFIX and sample action support for it.
If you agree, will you send a v4? Otherwise, let me know and I'll apply v3. Here's a change I'd like to fold into v3, to better allow for future extensions. It matches the way that we treat padding fields in most actions these days. diff --git a/lib/ofp-actions.c b/lib/ofp-actions.c index a3a14b0..cd528a4 100644 --- a/lib/ofp-actions.c +++ b/lib/ofp-actions.c @@ -4779,7 +4779,7 @@ struct nx_action_sample2 { ovs_be32 obs_point_id; /* ID of sampling observation point. */ ovs_be16 sampling_port; /* Sampling port. */ ovs_be16 snaplen; /* Max sampled packet size in byte. */ - uint8_t pad[4]; /* Pad to a multiple of 8 bytes */ + uint8_t zeros[4]; /* Pad to a multiple of 8 bytes */ }; OFP_ASSERT(sizeof(struct nx_action_sample2) == 32); @@ -4812,6 +4812,10 @@ decode_NXAST_RAW_SAMPLE2(const struct nx_action_sample2 *nas, enum ofp_version ofp_version OVS_UNUSED, struct ofpbuf *out) { + if (!is_all_zeros(nas->zeros, sizeof nas->zeros)) { + return OFPERR_NXBRC_MUST_BE_ZERO; + } + struct ofpact_sample *sample; sample = ofpact_put_SAMPLE(out); Thanks, Ben. On Sun, Jul 10, 2016 at 09:24:45PM -0700, William Tu wrote: > Hi Daniel, > > Thanks for reviewing the patch. > Indeed, the way sFlow sets up the datapath does not require the > OpenFlow sample action, and changing OVSDB/compose_sample_action() is > sufficient to program the datapath sample action for current sFlow use > case. So if IPFIX does not use 'snaplen', or there is no future use > case, then I could remove the snaplen in "struct nx_action_sample2". > > Regards, > William > > On Sun, Jul 10, 2016 at 7:46 PM, Daniel Ye <dani...@vmware.com> wrote: > > Hi William, > > > > > > > > I saw that you submitted the patch below. It’s about adding ‘snaplen’ for > > sample action and sFlow. > > > > https://patchwork.ozlabs.org/patch/645013/ > > > > > > > > I’m still confused whether sFlow uses the openflow sample action. In my > > opinion, sFlow only uses the datapath > > > > sample action, not the sample action in userworld. Actually, there are two > > kinds of IPFIX, one is bridge level IPFIX and the > > > > other is flow-based IPFIX. Bridge level IPFIX doesn’t use openflow sample > > action, it only uses the datapath sample action. I think > > > > sFlow does the same as bridge level IPFIX. For bridge level IPFIX and sFlow, > > all the parameters are stored in OVSDB. > > > > > > > > Actually, “nx_action_sample2” is only used by flow-based IPFIX now. If you > > add a ‘snaplen’ field in it, I don’t think this field > > > > will be used by sFlow. Maybe you only need to change > > “compose_sample_action()” and put ‘snaplen’ in OVSDB?? > > > > > > > > For all the alias, does any sFlow experts come to make sure of this? > > > > > > > > Thanks, > > > > Daniel Benli Ye _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev