diff options
Diffstat (limited to 'Documentation/networking')
-rw-r--r-- | Documentation/networking/bonding.txt | 31 | ||||
-rw-r--r-- | Documentation/networking/filter.txt | 12 | ||||
-rw-r--r-- | Documentation/networking/i40e.txt | 7 | ||||
-rw-r--r-- | Documentation/networking/ip-sysctl.txt | 38 | ||||
-rw-r--r-- | Documentation/networking/packet_mmap.txt | 18 | ||||
-rw-r--r-- | Documentation/networking/phy.txt | 18 | ||||
-rw-r--r-- | Documentation/networking/pktgen.txt | 28 | ||||
-rw-r--r-- | Documentation/networking/timestamping.txt | 16 | ||||
-rw-r--r-- | Documentation/networking/timestamping/timestamping.c | 7 |
9 files changed, 112 insertions, 63 deletions
diff --git a/Documentation/networking/bonding.txt b/Documentation/networking/bonding.txt index 9c723ecd0025..eeb5b2e97bed 100644 --- a/Documentation/networking/bonding.txt +++ b/Documentation/networking/bonding.txt | |||
@@ -542,10 +542,10 @@ mode | |||
542 | 542 | ||
543 | XOR policy: Transmit based on the selected transmit | 543 | XOR policy: Transmit based on the selected transmit |
544 | hash policy. The default policy is a simple [(source | 544 | hash policy. The default policy is a simple [(source |
545 | MAC address XOR'd with destination MAC address) modulo | 545 | MAC address XOR'd with destination MAC address XOR |
546 | slave count]. Alternate transmit policies may be | 546 | packet type ID) modulo slave count]. Alternate transmit |
547 | selected via the xmit_hash_policy option, described | 547 | policies may be selected via the xmit_hash_policy option, |
548 | below. | 548 | described below. |
549 | 549 | ||
550 | This mode provides load balancing and fault tolerance. | 550 | This mode provides load balancing and fault tolerance. |
551 | 551 | ||
@@ -801,10 +801,11 @@ xmit_hash_policy | |||
801 | 801 | ||
802 | layer2 | 802 | layer2 |
803 | 803 | ||
804 | Uses XOR of hardware MAC addresses to generate the | 804 | Uses XOR of hardware MAC addresses and packet type ID |
805 | hash. The formula is | 805 | field to generate the hash. The formula is |
806 | 806 | ||
807 | (source MAC XOR destination MAC) modulo slave count | 807 | hash = source MAC XOR destination MAC XOR packet type ID |
808 | slave number = hash modulo slave count | ||
808 | 809 | ||
809 | This algorithm will place all traffic to a particular | 810 | This algorithm will place all traffic to a particular |
810 | network peer on the same slave. | 811 | network peer on the same slave. |
@@ -819,7 +820,7 @@ xmit_hash_policy | |||
819 | Uses XOR of hardware MAC addresses and IP addresses to | 820 | Uses XOR of hardware MAC addresses and IP addresses to |
820 | generate the hash. The formula is | 821 | generate the hash. The formula is |
821 | 822 | ||
822 | hash = source MAC XOR destination MAC | 823 | hash = source MAC XOR destination MAC XOR packet type ID |
823 | hash = hash XOR source IP XOR destination IP | 824 | hash = hash XOR source IP XOR destination IP |
824 | hash = hash XOR (hash RSHIFT 16) | 825 | hash = hash XOR (hash RSHIFT 16) |
825 | hash = hash XOR (hash RSHIFT 8) | 826 | hash = hash XOR (hash RSHIFT 8) |
@@ -2301,13 +2302,13 @@ broadcast: Like active-backup, there is not much advantage to this | |||
2301 | bandwidth. | 2302 | bandwidth. |
2302 | 2303 | ||
2303 | Additionally, the linux bonding 802.3ad implementation | 2304 | Additionally, the linux bonding 802.3ad implementation |
2304 | distributes traffic by peer (using an XOR of MAC addresses), | 2305 | distributes traffic by peer (using an XOR of MAC addresses |
2305 | so in a "gatewayed" configuration, all outgoing traffic will | 2306 | and packet type ID), so in a "gatewayed" configuration, all |
2306 | generally use the same device. Incoming traffic may also end | 2307 | outgoing traffic will generally use the same device. Incoming |
2307 | up on a single device, but that is dependent upon the | 2308 | traffic may also end up on a single device, but that is |
2308 | balancing policy of the peer's 8023.ad implementation. In a | 2309 | dependent upon the balancing policy of the peer's 8023.ad |
2309 | "local" configuration, traffic will be distributed across the | 2310 | implementation. In a "local" configuration, traffic will be |
2310 | devices in the bond. | 2311 | distributed across the devices in the bond. |
2311 | 2312 | ||
2312 | Finally, the 802.3ad mode mandates the use of the MII monitor, | 2313 | Finally, the 802.3ad mode mandates the use of the MII monitor, |
2313 | therefore, the ARP monitor is not available in this mode. | 2314 | therefore, the ARP monitor is not available in this mode. |
diff --git a/Documentation/networking/filter.txt b/Documentation/networking/filter.txt index ee78eba78a9d..c48a9704bda8 100644 --- a/Documentation/networking/filter.txt +++ b/Documentation/networking/filter.txt | |||
@@ -586,12 +586,12 @@ team driver's classifier for its load-balancing mode, netfilter's xt_bpf | |||
586 | extension, PTP dissector/classifier, and much more. They are all internally | 586 | extension, PTP dissector/classifier, and much more. They are all internally |
587 | converted by the kernel into the new instruction set representation and run | 587 | converted by the kernel into the new instruction set representation and run |
588 | in the eBPF interpreter. For in-kernel handlers, this all works transparently | 588 | in the eBPF interpreter. For in-kernel handlers, this all works transparently |
589 | by using sk_unattached_filter_create() for setting up the filter, resp. | 589 | by using bpf_prog_create() for setting up the filter, resp. |
590 | sk_unattached_filter_destroy() for destroying it. The macro | 590 | bpf_prog_destroy() for destroying it. The macro |
591 | SK_RUN_FILTER(filter, ctx) transparently invokes eBPF interpreter or JITed | 591 | BPF_PROG_RUN(filter, ctx) transparently invokes eBPF interpreter or JITed |
592 | code to run the filter. 'filter' is a pointer to struct sk_filter that we | 592 | code to run the filter. 'filter' is a pointer to struct bpf_prog that we |
593 | got from sk_unattached_filter_create(), and 'ctx' the given context (e.g. | 593 | got from bpf_prog_create(), and 'ctx' the given context (e.g. |
594 | skb pointer). All constraints and restrictions from sk_chk_filter() apply | 594 | skb pointer). All constraints and restrictions from bpf_check_classic() apply |
595 | before a conversion to the new layout is being done behind the scenes! | 595 | before a conversion to the new layout is being done behind the scenes! |
596 | 596 | ||
597 | Currently, the classic BPF format is being used for JITing on most of the | 597 | Currently, the classic BPF format is being used for JITing on most of the |
diff --git a/Documentation/networking/i40e.txt b/Documentation/networking/i40e.txt index f737273c6dc1..a251bf4fe9c9 100644 --- a/Documentation/networking/i40e.txt +++ b/Documentation/networking/i40e.txt | |||
@@ -69,8 +69,11 @@ Additional Configurations | |||
69 | 69 | ||
70 | FCoE | 70 | FCoE |
71 | ---- | 71 | ---- |
72 | Fiber Channel over Ethernet (FCoE) hardware offload is not currently | 72 | The driver supports Fiber Channel over Ethernet (FCoE) and Data Center |
73 | supported. | 73 | Bridging (DCB) functionality. Configuring DCB and FCoE is outside the scope |
74 | of this driver doc. Refer to http://www.open-fcoe.org/ for FCoE project | ||
75 | information and http://www.open-lldp.org/ or email list | ||
76 | e1000-eedc@lists.sourceforge.net for DCB information. | ||
74 | 77 | ||
75 | MAC and VLAN anti-spoofing feature | 78 | MAC and VLAN anti-spoofing feature |
76 | ---------------------------------- | 79 | ---------------------------------- |
diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt index ab42c95f9985..29a93518bf18 100644 --- a/Documentation/networking/ip-sysctl.txt +++ b/Documentation/networking/ip-sysctl.txt | |||
@@ -101,19 +101,17 @@ ipfrag_high_thresh - INTEGER | |||
101 | Maximum memory used to reassemble IP fragments. When | 101 | Maximum memory used to reassemble IP fragments. When |
102 | ipfrag_high_thresh bytes of memory is allocated for this purpose, | 102 | ipfrag_high_thresh bytes of memory is allocated for this purpose, |
103 | the fragment handler will toss packets until ipfrag_low_thresh | 103 | the fragment handler will toss packets until ipfrag_low_thresh |
104 | is reached. | 104 | is reached. This also serves as a maximum limit to namespaces |
105 | different from the initial one. | ||
105 | 106 | ||
106 | ipfrag_low_thresh - INTEGER | 107 | ipfrag_low_thresh - INTEGER |
107 | See ipfrag_high_thresh | 108 | Maximum memory used to reassemble IP fragments before the kernel |
109 | begins to remove incomplete fragment queues to free up resources. | ||
110 | The kernel still accepts new fragments for defragmentation. | ||
108 | 111 | ||
109 | ipfrag_time - INTEGER | 112 | ipfrag_time - INTEGER |
110 | Time in seconds to keep an IP fragment in memory. | 113 | Time in seconds to keep an IP fragment in memory. |
111 | 114 | ||
112 | ipfrag_secret_interval - INTEGER | ||
113 | Regeneration interval (in seconds) of the hash secret (or lifetime | ||
114 | for the hash secret) for IP fragments. | ||
115 | Default: 600 | ||
116 | |||
117 | ipfrag_max_dist - INTEGER | 115 | ipfrag_max_dist - INTEGER |
118 | ipfrag_max_dist is a non-negative integer value which defines the | 116 | ipfrag_max_dist is a non-negative integer value which defines the |
119 | maximum "disorder" which is allowed among fragments which share a | 117 | maximum "disorder" which is allowed among fragments which share a |
@@ -1132,6 +1130,15 @@ flowlabel_consistency - BOOLEAN | |||
1132 | FALSE: disabled | 1130 | FALSE: disabled |
1133 | Default: TRUE | 1131 | Default: TRUE |
1134 | 1132 | ||
1133 | auto_flowlabels - BOOLEAN | ||
1134 | Automatically generate flow labels based based on a flow hash | ||
1135 | of the packet. This allows intermediate devices, such as routers, | ||
1136 | to idenfify packet flows for mechanisms like Equal Cost Multipath | ||
1137 | Routing (see RFC 6438). | ||
1138 | TRUE: enabled | ||
1139 | FALSE: disabled | ||
1140 | Default: false | ||
1141 | |||
1135 | anycast_src_echo_reply - BOOLEAN | 1142 | anycast_src_echo_reply - BOOLEAN |
1136 | Controls the use of anycast addresses as source addresses for ICMPv6 | 1143 | Controls the use of anycast addresses as source addresses for ICMPv6 |
1137 | echo reply | 1144 | echo reply |
@@ -1153,11 +1160,6 @@ ip6frag_low_thresh - INTEGER | |||
1153 | ip6frag_time - INTEGER | 1160 | ip6frag_time - INTEGER |
1154 | Time in seconds to keep an IPv6 fragment in memory. | 1161 | Time in seconds to keep an IPv6 fragment in memory. |
1155 | 1162 | ||
1156 | ip6frag_secret_interval - INTEGER | ||
1157 | Regeneration interval (in seconds) of the hash secret (or lifetime | ||
1158 | for the hash secret) for IPv6 fragments. | ||
1159 | Default: 600 | ||
1160 | |||
1161 | conf/default/*: | 1163 | conf/default/*: |
1162 | Change the interface-specific default settings. | 1164 | Change the interface-specific default settings. |
1163 | 1165 | ||
@@ -1210,6 +1212,18 @@ accept_ra_defrtr - BOOLEAN | |||
1210 | Functional default: enabled if accept_ra is enabled. | 1212 | Functional default: enabled if accept_ra is enabled. |
1211 | disabled if accept_ra is disabled. | 1213 | disabled if accept_ra is disabled. |
1212 | 1214 | ||
1215 | accept_ra_from_local - BOOLEAN | ||
1216 | Accept RA with source-address that is found on local machine | ||
1217 | if the RA is otherwise proper and able to be accepted. | ||
1218 | Default is to NOT accept these as it may be an un-intended | ||
1219 | network loop. | ||
1220 | |||
1221 | Functional default: | ||
1222 | enabled if accept_ra_from_local is enabled | ||
1223 | on a specific interface. | ||
1224 | disabled if accept_ra_from_local is disabled | ||
1225 | on a specific interface. | ||
1226 | |||
1213 | accept_ra_pinfo - BOOLEAN | 1227 | accept_ra_pinfo - BOOLEAN |
1214 | Learn Prefix Information in Router Advertisement. | 1228 | Learn Prefix Information in Router Advertisement. |
1215 | 1229 | ||
diff --git a/Documentation/networking/packet_mmap.txt b/Documentation/networking/packet_mmap.txt index 38112d512f47..a6d7cb91069e 100644 --- a/Documentation/networking/packet_mmap.txt +++ b/Documentation/networking/packet_mmap.txt | |||
@@ -1008,14 +1008,9 @@ hardware timestamps to be used. Note: you may need to enable the generation | |||
1008 | of hardware timestamps with SIOCSHWTSTAMP (see related information from | 1008 | of hardware timestamps with SIOCSHWTSTAMP (see related information from |
1009 | Documentation/networking/timestamping.txt). | 1009 | Documentation/networking/timestamping.txt). |
1010 | 1010 | ||
1011 | PACKET_TIMESTAMP accepts the same integer bit field as | 1011 | PACKET_TIMESTAMP accepts the same integer bit field as SO_TIMESTAMPING: |
1012 | SO_TIMESTAMPING. However, only the SOF_TIMESTAMPING_SYS_HARDWARE | 1012 | |
1013 | and SOF_TIMESTAMPING_RAW_HARDWARE values are recognized by | 1013 | int req = SOF_TIMESTAMPING_RAW_HARDWARE; |
1014 | PACKET_TIMESTAMP. SOF_TIMESTAMPING_SYS_HARDWARE takes precedence over | ||
1015 | SOF_TIMESTAMPING_RAW_HARDWARE if both bits are set. | ||
1016 | |||
1017 | int req = 0; | ||
1018 | req |= SOF_TIMESTAMPING_SYS_HARDWARE; | ||
1019 | setsockopt(fd, SOL_PACKET, PACKET_TIMESTAMP, (void *) &req, sizeof(req)) | 1014 | setsockopt(fd, SOL_PACKET, PACKET_TIMESTAMP, (void *) &req, sizeof(req)) |
1020 | 1015 | ||
1021 | For the mmap(2)ed ring buffers, such timestamps are stored in the | 1016 | For the mmap(2)ed ring buffers, such timestamps are stored in the |
@@ -1023,14 +1018,13 @@ tpacket{,2,3}_hdr structure's tp_sec and tp_{n,u}sec members. To determine | |||
1023 | what kind of timestamp has been reported, the tp_status field is binary |'ed | 1018 | what kind of timestamp has been reported, the tp_status field is binary |'ed |
1024 | with the following possible bits ... | 1019 | with the following possible bits ... |
1025 | 1020 | ||
1026 | TP_STATUS_TS_SYS_HARDWARE | ||
1027 | TP_STATUS_TS_RAW_HARDWARE | 1021 | TP_STATUS_TS_RAW_HARDWARE |
1028 | TP_STATUS_TS_SOFTWARE | 1022 | TP_STATUS_TS_SOFTWARE |
1029 | 1023 | ||
1030 | ... that are equivalent to its SOF_TIMESTAMPING_* counterparts. For the | 1024 | ... that are equivalent to its SOF_TIMESTAMPING_* counterparts. For the |
1031 | RX_RING, if none of those 3 are set (i.e. PACKET_TIMESTAMP is not set), | 1025 | RX_RING, if neither is set (i.e. PACKET_TIMESTAMP is not set), then a |
1032 | then this means that a software fallback was invoked *within* PF_PACKET's | 1026 | software fallback was invoked *within* PF_PACKET's processing code (less |
1033 | processing code (less precise). | 1027 | precise). |
1034 | 1028 | ||
1035 | Getting timestamps for the TX_RING works as follows: i) fill the ring frames, | 1029 | Getting timestamps for the TX_RING works as follows: i) fill the ring frames, |
1036 | ii) call sendto() e.g. in blocking mode, iii) wait for status of relevant | 1030 | ii) call sendto() e.g. in blocking mode, iii) wait for status of relevant |
diff --git a/Documentation/networking/phy.txt b/Documentation/networking/phy.txt index 3544c98401fd..e839e7efc835 100644 --- a/Documentation/networking/phy.txt +++ b/Documentation/networking/phy.txt | |||
@@ -272,6 +272,8 @@ Writing a PHY driver | |||
272 | txtsamp: Requests a transmit timestamp at the PHY level for a 'skb' | 272 | txtsamp: Requests a transmit timestamp at the PHY level for a 'skb' |
273 | set_wol: Enable Wake-on-LAN at the PHY level | 273 | set_wol: Enable Wake-on-LAN at the PHY level |
274 | get_wol: Get the Wake-on-LAN status at the PHY level | 274 | get_wol: Get the Wake-on-LAN status at the PHY level |
275 | read_mmd_indirect: Read PHY MMD indirect register | ||
276 | write_mmd_indirect: Write PHY MMD indirect register | ||
275 | 277 | ||
276 | Of these, only config_aneg and read_status are required to be | 278 | Of these, only config_aneg and read_status are required to be |
277 | assigned by the driver code. The rest are optional. Also, it is | 279 | assigned by the driver code. The rest are optional. Also, it is |
@@ -284,7 +286,21 @@ Writing a PHY driver | |||
284 | 286 | ||
285 | Feel free to look at the Marvell, Cicada, and Davicom drivers in | 287 | Feel free to look at the Marvell, Cicada, and Davicom drivers in |
286 | drivers/net/phy/ for examples (the lxt and qsemi drivers have | 288 | drivers/net/phy/ for examples (the lxt and qsemi drivers have |
287 | not been tested as of this writing) | 289 | not been tested as of this writing). |
290 | |||
291 | The PHY's MMD register accesses are handled by the PAL framework | ||
292 | by default, but can be overridden by a specific PHY driver if | ||
293 | required. This could be the case if a PHY was released for | ||
294 | manufacturing before the MMD PHY register definitions were | ||
295 | standardized by the IEEE. Most modern PHYs will be able to use | ||
296 | the generic PAL framework for accessing the PHY's MMD registers. | ||
297 | An example of such usage is for Energy Efficient Ethernet support, | ||
298 | implemented in the PAL. This support uses the PAL to access MMD | ||
299 | registers for EEE query and configuration if the PHY supports | ||
300 | the IEEE standard access mechanisms, or can use the PHY's specific | ||
301 | access interfaces if overridden by the specific PHY driver. See | ||
302 | the Micrel driver in drivers/net/phy/ for an example of how this | ||
303 | can be implemented. | ||
288 | 304 | ||
289 | Board Fixups | 305 | Board Fixups |
290 | 306 | ||
diff --git a/Documentation/networking/pktgen.txt b/Documentation/networking/pktgen.txt index 0e30c7845b2b..0dffc6e37902 100644 --- a/Documentation/networking/pktgen.txt +++ b/Documentation/networking/pktgen.txt | |||
@@ -24,6 +24,34 @@ For monitoring and control pktgen creates: | |||
24 | /proc/net/pktgen/ethX | 24 | /proc/net/pktgen/ethX |
25 | 25 | ||
26 | 26 | ||
27 | Tuning NIC for max performance | ||
28 | ============================== | ||
29 | |||
30 | The default NIC setting are (likely) not tuned for pktgen's artificial | ||
31 | overload type of benchmarking, as this could hurt the normal use-case. | ||
32 | |||
33 | Specifically increasing the TX ring buffer in the NIC: | ||
34 | # ethtool -G ethX tx 1024 | ||
35 | |||
36 | A larger TX ring can improve pktgen's performance, while it can hurt | ||
37 | in the general case, 1) because the TX ring buffer might get larger | ||
38 | than the CPUs L1/L2 cache, 2) because it allow more queueing in the | ||
39 | NIC HW layer (which is bad for bufferbloat). | ||
40 | |||
41 | One should be careful to conclude, that packets/descriptors in the HW | ||
42 | TX ring cause delay. Drivers usually delay cleaning up the | ||
43 | ring-buffers (for various performance reasons), thus packets stalling | ||
44 | the TX ring, might just be waiting for cleanup. | ||
45 | |||
46 | This cleanup issues is specifically the case, for the driver ixgbe | ||
47 | (Intel 82599 chip). This driver (ixgbe) combine TX+RX ring cleanups, | ||
48 | and the cleanup interval is affected by the ethtool --coalesce setting | ||
49 | of parameter "rx-usecs". | ||
50 | |||
51 | For ixgbe use e.g "30" resulting in approx 33K interrupts/sec (1/30*10^6): | ||
52 | # ethtool -C ethX rx-usecs 30 | ||
53 | |||
54 | |||
27 | Viewing threads | 55 | Viewing threads |
28 | =============== | 56 | =============== |
29 | /proc/net/pktgen/kpktgend_0 | 57 | /proc/net/pktgen/kpktgend_0 |
diff --git a/Documentation/networking/timestamping.txt b/Documentation/networking/timestamping.txt index bc3554124903..897f942b976b 100644 --- a/Documentation/networking/timestamping.txt +++ b/Documentation/networking/timestamping.txt | |||
@@ -40,7 +40,7 @@ the set bits correspond to data that is available, then the control | |||
40 | message will not be generated: | 40 | message will not be generated: |
41 | 41 | ||
42 | SOF_TIMESTAMPING_SOFTWARE: report systime if available | 42 | SOF_TIMESTAMPING_SOFTWARE: report systime if available |
43 | SOF_TIMESTAMPING_SYS_HARDWARE: report hwtimetrans if available | 43 | SOF_TIMESTAMPING_SYS_HARDWARE: report hwtimetrans if available (deprecated) |
44 | SOF_TIMESTAMPING_RAW_HARDWARE: report hwtimeraw if available | 44 | SOF_TIMESTAMPING_RAW_HARDWARE: report hwtimeraw if available |
45 | 45 | ||
46 | It is worth noting that timestamps may be collected for reasons other | 46 | It is worth noting that timestamps may be collected for reasons other |
@@ -88,13 +88,12 @@ hwtimeraw is the original hardware time stamp. Filled in if | |||
88 | SOF_TIMESTAMPING_RAW_HARDWARE is set. No assumptions about its | 88 | SOF_TIMESTAMPING_RAW_HARDWARE is set. No assumptions about its |
89 | relation to system time should be made. | 89 | relation to system time should be made. |
90 | 90 | ||
91 | hwtimetrans is the hardware time stamp transformed so that it | 91 | hwtimetrans is always zero. This field is deprecated. It used to hold |
92 | corresponds as good as possible to system time. This correlation is | 92 | hw timestamps converted to system time. Instead, expose the hardware |
93 | not perfect; as a consequence, sorting packets received via different | 93 | clock device on the NIC directly as a HW PTP clock source, to allow |
94 | NICs by their hwtimetrans may differ from the order in which they were | 94 | time conversion in userspace and optionally synchronize system time |
95 | received. hwtimetrans may be non-monotonic even for the same NIC. | 95 | with a userspace PTP stack such as linuxptp. For the PTP clock API, |
96 | Filled in if SOF_TIMESTAMPING_SYS_HARDWARE is set. Requires support | 96 | see Documentation/ptp/ptp.txt. |
97 | by the network device and will be empty without that support. | ||
98 | 97 | ||
99 | 98 | ||
100 | SIOCSHWTSTAMP, SIOCGHWTSTAMP: | 99 | SIOCSHWTSTAMP, SIOCGHWTSTAMP: |
@@ -185,7 +184,6 @@ struct skb_shared_hwtstamps { | |||
185 | * since arbitrary point in time | 184 | * since arbitrary point in time |
186 | */ | 185 | */ |
187 | ktime_t hwtstamp; | 186 | ktime_t hwtstamp; |
188 | ktime_t syststamp; /* hwtstamp transformed to system time base */ | ||
189 | }; | 187 | }; |
190 | 188 | ||
191 | Time stamps for outgoing packets are to be generated as follows: | 189 | Time stamps for outgoing packets are to be generated as follows: |
diff --git a/Documentation/networking/timestamping/timestamping.c b/Documentation/networking/timestamping/timestamping.c index 8ba82bfe6a33..5cdfd743447b 100644 --- a/Documentation/networking/timestamping/timestamping.c +++ b/Documentation/networking/timestamping/timestamping.c | |||
@@ -76,7 +76,6 @@ static void usage(const char *error) | |||
76 | " SOF_TIMESTAMPING_RX_HARDWARE - hardware time stamping of incoming packets\n" | 76 | " SOF_TIMESTAMPING_RX_HARDWARE - hardware time stamping of incoming packets\n" |
77 | " SOF_TIMESTAMPING_RX_SOFTWARE - software fallback for incoming packets\n" | 77 | " SOF_TIMESTAMPING_RX_SOFTWARE - software fallback for incoming packets\n" |
78 | " SOF_TIMESTAMPING_SOFTWARE - request reporting of software time stamps\n" | 78 | " SOF_TIMESTAMPING_SOFTWARE - request reporting of software time stamps\n" |
79 | " SOF_TIMESTAMPING_SYS_HARDWARE - request reporting of transformed HW time stamps\n" | ||
80 | " SOF_TIMESTAMPING_RAW_HARDWARE - request reporting of raw HW time stamps\n" | 79 | " SOF_TIMESTAMPING_RAW_HARDWARE - request reporting of raw HW time stamps\n" |
81 | " SIOCGSTAMP - check last socket time stamp\n" | 80 | " SIOCGSTAMP - check last socket time stamp\n" |
82 | " SIOCGSTAMPNS - more accurate socket time stamp\n"); | 81 | " SIOCGSTAMPNS - more accurate socket time stamp\n"); |
@@ -202,9 +201,7 @@ static void printpacket(struct msghdr *msg, int res, | |||
202 | (long)stamp->tv_sec, | 201 | (long)stamp->tv_sec, |
203 | (long)stamp->tv_nsec); | 202 | (long)stamp->tv_nsec); |
204 | stamp++; | 203 | stamp++; |
205 | printf("HW transformed %ld.%09ld ", | 204 | /* skip deprecated HW transformed */ |
206 | (long)stamp->tv_sec, | ||
207 | (long)stamp->tv_nsec); | ||
208 | stamp++; | 205 | stamp++; |
209 | printf("HW raw %ld.%09ld", | 206 | printf("HW raw %ld.%09ld", |
210 | (long)stamp->tv_sec, | 207 | (long)stamp->tv_sec, |
@@ -361,8 +358,6 @@ int main(int argc, char **argv) | |||
361 | so_timestamping_flags |= SOF_TIMESTAMPING_RX_SOFTWARE; | 358 | so_timestamping_flags |= SOF_TIMESTAMPING_RX_SOFTWARE; |
362 | else if (!strcasecmp(argv[i], "SOF_TIMESTAMPING_SOFTWARE")) | 359 | else if (!strcasecmp(argv[i], "SOF_TIMESTAMPING_SOFTWARE")) |
363 | so_timestamping_flags |= SOF_TIMESTAMPING_SOFTWARE; | 360 | so_timestamping_flags |= SOF_TIMESTAMPING_SOFTWARE; |
364 | else if (!strcasecmp(argv[i], "SOF_TIMESTAMPING_SYS_HARDWARE")) | ||
365 | so_timestamping_flags |= SOF_TIMESTAMPING_SYS_HARDWARE; | ||
366 | else if (!strcasecmp(argv[i], "SOF_TIMESTAMPING_RAW_HARDWARE")) | 361 | else if (!strcasecmp(argv[i], "SOF_TIMESTAMPING_RAW_HARDWARE")) |
367 | so_timestamping_flags |= SOF_TIMESTAMPING_RAW_HARDWARE; | 362 | so_timestamping_flags |= SOF_TIMESTAMPING_RAW_HARDWARE; |
368 | else | 363 | else |