[ovs-dev] [PATCH v1] netdev: Make 100 percents packets sampled when sampling rate is 1.

Jesse Gross jesse at nicira.com
Mon Aug 3 18:30:05 UTC 2015


On Mon, Aug 3, 2015 at 11:18 AM, Pravin Shelar <pshelar at nicira.com> wrote:
> On Mon, Aug 3, 2015 at 12:11 AM, Wenyu Zhang <wenyuz at vmware.com> wrote:
>> When sampling rate is 1, the sampling probability is UINT32_MAX. The packet
>> should be sampled even the prandom32() generate the number of UINT32_MAX.
>> And none packet need be sampled when the probability is 0.
>>
>> Signed-off-by: Wenyu Zhang <wenyuz at vmware.com>
>> ---
>>  net/openvswitch/actions.c |    4 +++-
>>  1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/net/openvswitch/actions.c b/net/openvswitch/actions.c
>> index cf04c2f..03acb09 100644
>> --- a/net/openvswitch/actions.c
>> +++ b/net/openvswitch/actions.c
>> @@ -669,9 +669,11 @@ static int sample(struct datapath *dp, struct sk_buff *skb,
>>
>>         for (a = nla_data(attr), rem = nla_len(attr); rem > 0;
>>                  a = nla_next(a, &rem)) {
>> +               uint32_t probability;
>>                 switch (nla_type(a)) {
>>                 case OVS_SAMPLE_ATTR_PROBABILITY:
>> -                       if (prandom_u32() >= nla_get_u32(a))
>> +                       probability = nla_get_u32(a);
>> +                       if (!probability || probability > nla_get_u32(a))
>
> This condition does not looks right to calculate sampling probability.

When you send v2, can you also make the subject more narrow
("openvswitch" instead of "netdev") and add the tree that you are
targeting ("[PATCH net]" in this case)?



More information about the dev mailing list