Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
uapi
linux
net_tstamp.h
Go to the documentation of this file.
1
/*
2
* Userspace API for hardware time stamping of network packets
3
*
4
* Copyright (C) 2008,2009 Intel Corporation
5
* Author: Patrick Ohly <
[email protected]
>
6
*
7
*/
8
9
#ifndef _NET_TIMESTAMPING_H
10
#define _NET_TIMESTAMPING_H
11
12
#include <linux/socket.h>
/* for SO_TIMESTAMPING */
13
14
/* SO_TIMESTAMPING gets an integer bit field comprised of these values */
15
enum
{
16
SOF_TIMESTAMPING_TX_HARDWARE
= (1<<0),
17
SOF_TIMESTAMPING_TX_SOFTWARE
= (1<<1),
18
SOF_TIMESTAMPING_RX_HARDWARE
= (1<<2),
19
SOF_TIMESTAMPING_RX_SOFTWARE
= (1<<3),
20
SOF_TIMESTAMPING_SOFTWARE
= (1<<4),
21
SOF_TIMESTAMPING_SYS_HARDWARE
= (1<<5),
22
SOF_TIMESTAMPING_RAW_HARDWARE
= (1<<6),
23
SOF_TIMESTAMPING_MASK
=
24
(
SOF_TIMESTAMPING_RAW_HARDWARE
- 1) |
25
SOF_TIMESTAMPING_RAW_HARDWARE
26
};
27
41
struct
hwtstamp_config
{
42
int
flags
;
43
int
tx_type
;
44
int
rx_filter
;
45
};
46
47
/* possible values for hwtstamp_config->tx_type */
48
enum
hwtstamp_tx_types
{
49
/*
50
* No outgoing packet will need hardware time stamping;
51
* should a packet arrive which asks for it, no hardware
52
* time stamping will be done.
53
*/
54
HWTSTAMP_TX_OFF
,
55
56
/*
57
* Enables hardware time stamping for outgoing packets;
58
* the sender of the packet decides which are to be
59
* time stamped by setting %SOF_TIMESTAMPING_TX_SOFTWARE
60
* before sending the packet.
61
*/
62
HWTSTAMP_TX_ON
,
63
64
/*
65
* Enables time stamping for outgoing packets just as
66
* HWTSTAMP_TX_ON does, but also enables time stamp insertion
67
* directly into Sync packets. In this case, transmitted Sync
68
* packets will not received a time stamp via the socket error
69
* queue.
70
*/
71
HWTSTAMP_TX_ONESTEP_SYNC
,
72
};
73
74
/* possible values for hwtstamp_config->rx_filter */
75
enum
hwtstamp_rx_filters
{
76
/* time stamp no incoming packet at all */
77
HWTSTAMP_FILTER_NONE
,
78
79
/* time stamp any incoming packet */
80
HWTSTAMP_FILTER_ALL
,
81
82
/* return value: time stamp all packets requested plus some others */
83
HWTSTAMP_FILTER_SOME
,
84
85
/* PTP v1, UDP, any kind of event packet */
86
HWTSTAMP_FILTER_PTP_V1_L4_EVENT
,
87
/* PTP v1, UDP, Sync packet */
88
HWTSTAMP_FILTER_PTP_V1_L4_SYNC
,
89
/* PTP v1, UDP, Delay_req packet */
90
HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ
,
91
/* PTP v2, UDP, any kind of event packet */
92
HWTSTAMP_FILTER_PTP_V2_L4_EVENT
,
93
/* PTP v2, UDP, Sync packet */
94
HWTSTAMP_FILTER_PTP_V2_L4_SYNC
,
95
/* PTP v2, UDP, Delay_req packet */
96
HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ
,
97
98
/* 802.AS1, Ethernet, any kind of event packet */
99
HWTSTAMP_FILTER_PTP_V2_L2_EVENT
,
100
/* 802.AS1, Ethernet, Sync packet */
101
HWTSTAMP_FILTER_PTP_V2_L2_SYNC
,
102
/* 802.AS1, Ethernet, Delay_req packet */
103
HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ
,
104
105
/* PTP v2/802.AS1, any layer, any kind of event packet */
106
HWTSTAMP_FILTER_PTP_V2_EVENT
,
107
/* PTP v2/802.AS1, any layer, Sync packet */
108
HWTSTAMP_FILTER_PTP_V2_SYNC
,
109
/* PTP v2/802.AS1, any layer, Delay_req packet */
110
HWTSTAMP_FILTER_PTP_V2_DELAY_REQ
,
111
};
112
113
#endif
/* _NET_TIMESTAMPING_H */
Generated on Thu Jan 10 2013 14:53:50 for Linux Kernel by
1.8.2