diff options
author | 2018-11-10 16:22:29 -0800 | |
---|---|---|
committer | 2018-11-11 10:21:31 -0800 | |
commit | 7236ead1b14923f3ba35cd29cce13246be83f451 (patch) | |
tree | 7e111a6aa40a9e3b196b7a9570dbba98edee6843 /net/sched/act_mirred.c | |
parent | net: dsa: mv88e6xxx: Fix clearing of stats counters (diff) | |
download | linux-7236ead1b14923f3ba35cd29cce13246be83f451.tar.gz linux-7236ead1b14923f3ba35cd29cce13246be83f451.tar.bz2 linux-7236ead1b14923f3ba35cd29cce13246be83f451.zip |
act_mirred: clear skb->tstamp on redirect
If sch_fq is used at ingress, skbs that might have been
timestamped by net_timestamp_set() if a packet capture
is requesting timestamps could be delayed by arbitrary
amount of time, since sch_fq time base is MONOTONIC.
Fix this problem by moving code from sch_netem.c to act_mirred.c.
Fixes: fb420d5d91c1 ("tcp/fq: move back to CLOCK_MONOTONIC")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched/act_mirred.c')
-rw-r--r-- | net/sched/act_mirred.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/sched/act_mirred.c b/net/sched/act_mirred.c index 1dae5f2b358f..c8cf4d10c435 100644 --- a/net/sched/act_mirred.c +++ b/net/sched/act_mirred.c @@ -258,7 +258,8 @@ static int tcf_mirred_act(struct sk_buff *skb, const struct tc_action *a, if (is_redirect) { skb2->tc_redirected = 1; skb2->tc_from_ingress = skb2->tc_at_ingress; - + if (skb2->tc_from_ingress) + skb2->tstamp = 0; /* let's the caller reinsert the packet, if possible */ if (use_reinsert) { res->ingress = want_ingress; |