Abhishek Chauhan wrote: > mono_delivery_time was added to check if skb->tstamp has delivery > time in mono clock base (i.e. EDT) otherwise skb->tstamp has > timestamp in ingress and delivery_time at egress. > > Renaming the bitfield from mono_delivery_time to tstamp_type is for > extensibilty for other timestamps such as userspace timestamp > (i.e. SO_TXTIME) set via sock opts. > > As we are renaming the mono_delivery_time to tstamp_type, it makes > sense to start assigning tstamp_type based on enum defined > in this commit. > > Earlier we used bool arg flag to check if the tstamp is mono in > function skb_set_delivery_time, Now the signature of the functions > accepts tstamp_type to distinguish between mono and real time. > > In future tstamp_type:1 can be extended to support userspace timestamp > by increasing the bitfield. > > Link: https://lore.kernel.org/netdev/bc037db4-58bb-4861-ac31-a361a93841d3@xxxxxxxxx/ > Signed-off-by: Abhishek Chauhan <quic_abchauha@xxxxxxxxxxx> > +/** > + * tstamp_type:1 can take 2 values each > + * represented by time base in skb > + * 0x0 => real timestamp_type > + * 0x1 => mono timestamp_type > + */ > +enum skb_tstamp_type { > + SKB_CLOCK_REAL, /* Time base is skb is REALTIME */ > + SKB_CLOCK_MONO, /* Time base is skb is MONOTONIC */ > +}; > + Can drop the comments. These names are self documenting. > /** > * DOC: Basic sk_buff geometry > * > @@ -819,7 +830,7 @@ typedef unsigned char *sk_buff_data_t; > * @dst_pending_confirm: need to confirm neighbour > * @decrypted: Decrypted SKB > * @slow_gro: state present at GRO time, slower prepare step required > - * @mono_delivery_time: When set, skb->tstamp has the > + * @tstamp_type: When set, skb->tstamp has the > * delivery_time in mono clock base (i.e. EDT). Otherwise, the > * skb->tstamp has the (rcv) timestamp at ingress and > * delivery_time at egress. Is this still correct? I think all egress does now annotate correctly as SKB_CLOCK_MONO. So when not set it always is SKB_CLOCK_REAL. > diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c > index 61119d42b0fd..a062f88c47c3 100644 > --- a/net/ipv4/tcp_output.c > +++ b/net/ipv4/tcp_output.c > @@ -1300,7 +1300,7 @@ static int __tcp_transmit_skb(struct sock *sk, struct sk_buff *skb, > tp = tcp_sk(sk); > prior_wstamp = tp->tcp_wstamp_ns; > tp->tcp_wstamp_ns = max(tp->tcp_wstamp_ns, tp->tcp_clock_cache); > - skb_set_delivery_time(skb, tp->tcp_wstamp_ns, true); > + skb_set_delivery_time(skb, tp->tcp_wstamp_ns, CLOCK_MONOTONIC); Multiple references to CLOCK_MONOTONIC left