linux/net/ipv4
Eric Dumazet b7aa0bf70c [NET]: convert network timestamps to ktime_t
We currently use a special structure (struct skb_timeval) and plain
'struct timeval' to store packet timestamps in sk_buffs and struct
sock.

This has some drawbacks :
- Fixed resolution of micro second.
- Waste of space on 64bit platforms where sizeof(struct timeval)=16

I suggest using ktime_t that is a nice abstraction of high resolution
time services, currently capable of nanosecond resolution.

As sizeof(ktime_t) is 8 bytes, using ktime_t in 'struct sock' permits
a 8 byte shrink of this structure on 64bit architectures. Some other
structures also benefit from this size reduction (struct ipq in
ipv4/ip_fragment.c, struct frag_queue in ipv6/reassembly.c, ...)

Once this ktime infrastructure adopted, we can more easily provide
nanosecond resolution on top of it. (ioctl SIOCGSTAMPNS and/or
SO_TIMESTAMPNS/SCM_TIMESTAMPNS)

Note : this patch includes a bug correction in
compat_sock_get_timestamp() where a "err = 0;" was missing (so this
syscall returned -ENOENT instead of 0)

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
CC: Stephen Hemminger <shemminger@linux-foundation.org>
CC: John find <linux.kernel@free.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-04-25 22:23:34 -07:00
..
ipvs [PATCH] sysctl: remove insert_at_head from register_sysctl 2007-02-14 08:09:59 -08:00
netfilter [NET]: convert network timestamps to ktime_t 2007-04-25 22:23:34 -07:00
af_inet.c
ah4.c
arp.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
cipso_ipv4.c [NetLabel]: parse the CIPSO ranged tag on incoming packets 2007-03-12 14:38:02 -07:00
datagram.c
devinet.c [IPV4]: Fix rtm_to_ifaddr() error handling. 2007-03-09 13:43:24 -08:00
esp4.c
fib_frontend.c [NETLINK]: Infinite recursion in netlink. 2007-04-25 13:07:28 -07:00
fib_hash.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
fib_lookup.h
fib_rules.c [NET]: Fix fib_rules compatibility breakage 2007-03-25 18:48:00 -07:00
fib_semantics.c [IPv4] fib: Fix out of bound access of fib_props[] 2007-03-25 18:48:03 -07:00
fib_trie.c [IPV4] fib_trie: Document locking. 2007-03-26 14:22:22 -07:00
icmp.c
igmp.c [IPV4]: Fix warning in ip_mc_rejoin_group. 2007-03-12 17:02:37 -07:00
inet_connection_sock.c
inet_diag.c
inet_hashtables.c
inet_timewait_sock.c
inetpeer.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
ip_forward.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
ip_fragment.c [NET]: convert network timestamps to ktime_t 2007-04-25 22:23:34 -07:00
ip_gre.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
ip_input.c
ip_options.c
ip_output.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
ip_sockglue.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
ipcomp.c
ipconfig.c [PATCH] mark struct file_operations const 7 2007-02-12 09:48:46 -08:00
ipip.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
ipmr.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
Kconfig [TCP] YeAH-TCP: algorithm implementation 2007-04-25 22:23:18 -07:00
Makefile [TCP] YeAH-TCP: algorithm implementation 2007-04-25 22:23:18 -07:00
multipath_drr.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
multipath_random.c [IPV4]: Use random32() in net/ipv4/multipath 2007-02-26 11:43:00 -08:00
multipath_rr.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
multipath_wrandom.c [IPV4]: Use random32() in net/ipv4/multipath 2007-02-26 11:43:00 -08:00
multipath.c
netfilter.c
proc.c [PATCH] mark struct file_operations const 7 2007-02-12 09:48:46 -08:00
protocol.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
raw.c [PATCH] mark struct file_operations const 7 2007-02-12 09:48:46 -08:00
route.c [NET]: Convert xtime.tv_sec to get_seconds() 2007-04-25 22:23:32 -07:00
syncookies.c
sysctl_net_ipv4.c [TCP]: Add two new spurious RTO responses to FRTO 2007-04-25 22:23:23 -07:00
tcp_bic.c
tcp_cong.c [TCP]: Add RFC3742 Limited Slow-Start, controlled by variable sysctl_tcp_max_ssthresh. 2007-04-25 22:23:19 -07:00
tcp_cubic.c [NET]: div64_64 consolidate (rev3) 2007-04-25 22:23:33 -07:00
tcp_diag.c
tcp_highspeed.c
tcp_htcp.c [TCP]: cleanup of htcp (resend) 2007-02-12 13:34:03 -08:00
tcp_hybla.c
tcp_input.c [NET]: Convert xtime.tv_sec to get_seconds() 2007-04-25 22:23:32 -07:00
tcp_ipv4.c [NET]: Convert xtime.tv_sec to get_seconds() 2007-04-25 22:23:32 -07:00
tcp_lp.c
tcp_minisocks.c [NET]: Convert xtime.tv_sec to get_seconds() 2007-04-25 22:23:32 -07:00
tcp_output.c [TCP]: Add two new spurious RTO responses to FRTO 2007-04-25 22:23:23 -07:00
tcp_probe.c [PATCH] mark struct file_operations const 7 2007-02-12 09:48:46 -08:00
tcp_scalable.c
tcp_timer.c
tcp_vegas.c
tcp_veno.c
tcp_westwood.c
tcp_yeah.c [NET]: div64_64 consolidate (rev3) 2007-04-25 22:23:33 -07:00
tcp_yeah.h [NET]: div64_64 consolidate (rev3) 2007-04-25 22:23:33 -07:00
tcp.c [TCP]: Fix tcp_mem[] initialization. 2007-03-16 15:04:03 -07:00
tunnel4.c [IPSEC]: Changing API of xfrm4_tunnel_register. 2007-02-13 12:54:47 -08:00
udp_impl.h
udp.c [UDP]: Reread uh pointer after pskb_trim 2007-03-07 16:08:04 -08:00
udplite.c
xfrm4_input.c [IPSEC]: Changing API of xfrm4_tunnel_register. 2007-02-13 12:54:47 -08:00
xfrm4_mode_beet.c [XFRM]: beet: fix pseudo header length value 2007-04-23 22:39:02 -07:00
xfrm4_mode_transport.c
xfrm4_mode_tunnel.c [XFRM_TUNNEL]: Reload header pointer after pskb_may_pull/pskb_expand_head 2007-02-26 11:43:01 -08:00
xfrm4_output.c
xfrm4_policy.c [XFRM]: Fix oops in xfrm4_dst_destroy() 2007-02-26 12:10:32 -08:00
xfrm4_state.c
xfrm4_tunnel.c [IPSEC]: Changing API of xfrm4_tunnel_register. 2007-02-13 12:54:47 -08:00