From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Dumazet Subject: Re: [RFC v2 net-next 02/10] net: ipv4: raw: Hook into time based transmission. Date: Wed, 17 Jan 2018 16:28:14 -0800 Message-ID: <1516235294.3606.18.camel@gmail.com> References: <20180117230621.26074-1-jesus.sanchez-palencia@intel.com> <20180117230621.26074-3-jesus.sanchez-palencia@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Cc: jhs@mojatatu.com, xiyou.wangcong@gmail.com, jiri@resnulli.us, vinicius.gomes@intel.com, richardcochran@gmail.com, intel-wired-lan@lists.osuosl.org, anna-maria@linutronix.de, henrik@austad.us, tglx@linutronix.de, john.stultz@linaro.org, andre.guedes@intel.com, ivan.briano@intel.com, levi.pearson@harman.com, Richard Cochran To: Jesus Sanchez-Palencia , netdev@vger.kernel.org Return-path: Received: from mail-pg0-f65.google.com ([74.125.83.65]:37934 "EHLO mail-pg0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753688AbeARA2U (ORCPT ); Wed, 17 Jan 2018 19:28:20 -0500 Received: by mail-pg0-f65.google.com with SMTP id y27so6476818pgc.5 for ; Wed, 17 Jan 2018 16:28:20 -0800 (PST) In-Reply-To: <20180117230621.26074-3-jesus.sanchez-palencia@intel.com> Sender: netdev-owner@vger.kernel.org List-ID: On Wed, 2018-01-17 at 15:06 -0800, Jesus Sanchez-Palencia wrote: > From: Richard Cochran > > For raw packets, copy the desired future transmit time from the CMSG > cookie into the skb. > > Signed-off-by: Richard Cochran > Signed-off-by: Jesus Sanchez-Palencia > --- > net/ipv4/raw.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c > index 136544b36a46..e37ea8ab6a78 100644 > --- a/net/ipv4/raw.c > +++ b/net/ipv4/raw.c > @@ -381,6 +381,7 @@ static int raw_send_hdrinc(struct sock *sk, struct flowi4 *fl4, > > skb->priority = sk->sk_priority; > skb->mark = sk->sk_mark; > + skb->tstamp = sockc->transmit_time; > skb_dst_set(skb, &rt->dst); > *rtp = NULL; > > @@ -562,6 +563,7 @@ static int raw_sendmsg(struct sock *sk, struct msghdr *msg, size_t len) > } > > ipc.sockc.tsflags = sk->sk_tsflags; > + ipc.sockc.transmit_time = 0; > ipc.addr = inet->inet_saddr; > ipc.opt = NULL; > ipc.tx_flags = 0; It seems that skb_scrub_packet() will clear skb->tstamp, meaning that going through a tunnel will break your feature. Maybe we need to remove skb->tstamp clear from skb_scrub_packet() and do the cleaning only in forwarding path.