User space can request hardware and/or software time stamping. Reporting of the result(s) via a new control message is enabled separately for each field in the message because some of the fields may require additional computation and thus cause overhead. User space can tell the different kinds of time stamps apart and choose what suits its needs. When a TX timestamp operation is requested, the TX skb will be cloned and the clone will be time stamped (in hardware or software) and added to the socket error queue of the skb, if the skb has a socket associated with it. The actual TX timestamp will reach userspace as a RX timestamp on the cloned packet. If timestamping is requested and no timestamping is done in the device driver (potentially this may use hardware timestamping), it will be done in software after the device's start_hard_xmit routine. Signed-off-by: Patrick Ohly <patrick.ohly@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
		
			
				
	
	
		
			67 lines
		
	
	
	
		
			1.5 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
	
		
			1.5 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef _ASM_POWERPC_SOCKET_H
 | 
						|
#define _ASM_POWERPC_SOCKET_H
 | 
						|
 | 
						|
/*
 | 
						|
 * This program is free software; you can redistribute it and/or
 | 
						|
 * modify it under the terms of the GNU General Public License
 | 
						|
 * as published by the Free Software Foundation; either version
 | 
						|
 * 2 of the License, or (at your option) any later version.
 | 
						|
 */
 | 
						|
 | 
						|
#include <asm/sockios.h>
 | 
						|
 | 
						|
/* For setsockopt(2) */
 | 
						|
#define SOL_SOCKET	1
 | 
						|
 | 
						|
#define SO_DEBUG	1
 | 
						|
#define SO_REUSEADDR	2
 | 
						|
#define SO_TYPE		3
 | 
						|
#define SO_ERROR	4
 | 
						|
#define SO_DONTROUTE	5
 | 
						|
#define SO_BROADCAST	6
 | 
						|
#define SO_SNDBUF	7
 | 
						|
#define SO_RCVBUF	8
 | 
						|
#define SO_SNDBUFFORCE	32
 | 
						|
#define SO_RCVBUFFORCE	33
 | 
						|
#define SO_KEEPALIVE	9
 | 
						|
#define SO_OOBINLINE	10
 | 
						|
#define SO_NO_CHECK	11
 | 
						|
#define SO_PRIORITY	12
 | 
						|
#define SO_LINGER	13
 | 
						|
#define SO_BSDCOMPAT	14
 | 
						|
/* To add :#define SO_REUSEPORT 15 */
 | 
						|
#define SO_RCVLOWAT	16
 | 
						|
#define SO_SNDLOWAT	17
 | 
						|
#define SO_RCVTIMEO	18
 | 
						|
#define SO_SNDTIMEO	19
 | 
						|
#define SO_PASSCRED	20
 | 
						|
#define SO_PEERCRED	21
 | 
						|
 | 
						|
/* Security levels - as per NRL IPv6 - don't actually do anything */
 | 
						|
#define SO_SECURITY_AUTHENTICATION		22
 | 
						|
#define SO_SECURITY_ENCRYPTION_TRANSPORT	23
 | 
						|
#define SO_SECURITY_ENCRYPTION_NETWORK		24
 | 
						|
 | 
						|
#define SO_BINDTODEVICE	25
 | 
						|
 | 
						|
/* Socket filtering */
 | 
						|
#define SO_ATTACH_FILTER	26
 | 
						|
#define SO_DETACH_FILTER	27
 | 
						|
 | 
						|
#define SO_PEERNAME		28
 | 
						|
#define SO_TIMESTAMP		29
 | 
						|
#define SCM_TIMESTAMP		SO_TIMESTAMP
 | 
						|
 | 
						|
#define SO_ACCEPTCONN		30
 | 
						|
 | 
						|
#define SO_PEERSEC		31
 | 
						|
#define SO_PASSSEC		34
 | 
						|
#define SO_TIMESTAMPNS		35
 | 
						|
#define SCM_TIMESTAMPNS		SO_TIMESTAMPNS
 | 
						|
 | 
						|
#define SO_MARK			36
 | 
						|
 | 
						|
#define SO_TIMESTAMPING		37
 | 
						|
#define SCM_TIMESTAMPING	SO_TIMESTAMPING
 | 
						|
 | 
						|
#endif	/* _ASM_POWERPC_SOCKET_H */
 |