linux/net/ipv6
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
..
netfilter [NET]: convert network timestamps to ktime_t 2007-04-25 22:23:34 -07:00
addrconf_core.c [IPV6]: Fix __ipv6_addr_type() export in correct place. 2007-02-26 11:42:57 -08:00
addrconf.c [IPV6]: Disallow RH0 by default. 2007-04-24 14:58:30 -07:00
af_inet6.c [IPV6]: Adjust inet6_exit() cleanup sequence against inet6_init() 2007-02-26 11:42:44 -08:00
ah6.c [NET] IPV6: Fix whitespace errors. 2007-02-10 23:19:42 -08:00
anycast.c [IPV6]: /proc/net/anycast6 unbalanced inet6_dev refcnt 2007-02-28 09:42:10 -08:00
datagram.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
esp6.c [NET] IPV6: Fix whitespace errors. 2007-02-10 23:19:42 -08:00
exthdrs_core.c [NET] IPV6: Fix whitespace errors. 2007-02-10 23:19:42 -08:00
exthdrs.c [NET]: convert network timestamps to ktime_t 2007-04-25 22:23:34 -07:00
fib6_rules.c [NET]: Fix fib_rules compatibility breakage 2007-03-25 18:48:00 -07:00
icmp.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
inet6_connection_sock.c [TCP]: Restore SKB socket owner setting in tcp_transmit_skb(). 2007-01-26 01:04:55 -08:00
inet6_hashtables.c [IPV6] HASHTABLES: Use appropriate seed for caluculating ehash index. 2007-02-12 20:26:39 -08:00
ip6_fib.c [IPV6]: Fix routing round-robin locking. 2007-03-25 18:48:05 -07:00
ip6_flowlabel.c [PATCH] mark struct file_operations const 7 2007-02-12 09:48:46 -08:00
ip6_input.c [IPv6]: Exclude truncated packets from InHdrErrors statistics 2007-04-04 23:54:59 -07:00
ip6_output.c [NET] IPV6: Fix whitespace errors. 2007-02-10 23:19:42 -08:00
ip6_tunnel.c [IPV6] IP6TUNNEL: Use update_pmtu() of dst on xmit. 2007-02-26 11:42:53 -08:00
ipcomp6.c [NET] IPV6: Fix whitespace errors. 2007-02-10 23:19:42 -08:00
ipv6_sockglue.c [IPV6] fix ipv6_getsockopt_sticky copy_to_user leak 2007-03-09 16:19:17 -08:00
ipv6_syms.c [IPV6]: Fix __ipv6_addr_type() export in correct place. 2007-02-26 11:42:57 -08:00
Kconfig [IPSEC]: make sit use the xfrm4_tunnel_register 2007-02-13 12:55:25 -08:00
Makefile [IPV6] ADDRCONF: Statically link __ipv6_addr_type() for sunrpc subsystem. 2007-02-26 11:42:52 -08:00
mcast.c [PATCH] mark struct file_operations const 7 2007-02-12 09:48:46 -08:00
mip6.c [NET] IPV6: Fix whitespace errors. 2007-02-10 23:19:42 -08:00
ndisc.c [NET] IPV6: Fix whitespace errors. 2007-02-10 23:19:42 -08:00
netfilter.c [NETFILTER]: ip6_route_me_harder should take into account mark 2007-03-05 13:25:27 -08:00
proc.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
protocol.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
raw.c [IPv6]: Fix incorrect length check in rawv6_sendmsg() 2007-04-02 13:30:54 -07:00
reassembly.c [NET]: convert network timestamps to ktime_t 2007-04-25 22:23:34 -07:00
route.c [IPV6] SNMP: Fix {In,Out}NoRoutes statistics. 2007-04-13 16:18:02 -07:00
sit.c [PATCH] remove many unneeded #includes of sched.h 2007-02-14 08:09:54 -08:00
sysctl_net_ipv6.c [PATCH] sysctl: remove insert_at_head from register_sysctl 2007-02-14 08:09:59 -08:00
tcp_ipv6.c [IPV6]: ipv6_fl_socklist is inadvertently shared. 2007-03-16 16:14:03 -07:00
tunnel6.c [IPSEC]: changing API of xfrm6_tunnel_register 2007-02-13 12:55:55 -08:00
udp_impl.h [NET] IPV6: Fix whitespace errors. 2007-02-10 23:19:42 -08:00
udp.c [IPv6]: Fix incorrect length check in rawv6_sendmsg() 2007-04-02 13:30:54 -07:00
udplite.c [NET]: Possible cleanups. 2006-12-02 21:31:51 -08:00
xfrm6_input.c [IPSEC]: changing API of xfrm6_tunnel_register 2007-02-13 12:55:55 -08:00
xfrm6_mode_beet.c [XFRM]: BEET mode 2006-10-04 00:31:09 -07:00
xfrm6_mode_ro.c [IPSEC]: output mode to take an xfrm state as input param 2006-09-22 15:18:48 -07:00
xfrm6_mode_transport.c [IPSEC]: output mode to take an xfrm state as input param 2006-09-22 15:18:48 -07:00
xfrm6_mode_tunnel.c [IPSEC]: IPv4 over IPv6 IPsec tunnel 2007-02-08 12:39:02 -08:00
xfrm6_output.c [NET]: Convert xtime.tv_sec to get_seconds() 2007-04-25 22:23:32 -07:00
xfrm6_policy.c [IPSEC]: More fix is needed for __xfrm6_bundle_create(). 2007-02-26 11:42:43 -08:00
xfrm6_state.c [NET] IPV6: Fix whitespace errors. 2007-02-10 23:19:42 -08:00
xfrm6_tunnel.c [NET]: fix up misplaced inlines. 2007-03-22 12:27:49 -07:00