Skip to content

Commit

Permalink
openvswitch: Make 100 percents packets sampled when sampling rate is 1.
Browse files Browse the repository at this point in the history
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@vmware.com>
Acked-by: Pravin B Shelar <pshelar@nicira.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Wenyu Zhang authored and David S. Miller committed Aug 7, 2015
1 parent da8b43c commit e05176a
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion net/openvswitch/actions.c
Original file line number Diff line number Diff line change
Expand Up @@ -669,9 +669,12 @@ 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)) {
u32 probability;

switch (nla_type(a)) {
case OVS_SAMPLE_ATTR_PROBABILITY:
if (prandom_u32() >= nla_get_u32(a))
probability = nla_get_u32(a);
if (!probability || prandom_u32() > probability)
return 0;
break;

Expand Down

0 comments on commit e05176a

Please sign in to comment.