summaryrefslogtreecommitdiffstats
path: root/Documentation/ABI/testing/sysfs-class-net-cdc_ncm
blob: f7be0e88b139d0483bca5624aa0cffb9243309b0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
What:		/sys/class/net/<iface>/cdc_ncm/min_tx_pkt
Date:		May 2014
KernelVersion:	3.16
Contact:	Bjørn Mork <bjorn@mork.no>
Description:
		The driver will pad NCM Transfer Blocks (NTBs) longer
		than this to tx_max, allowing the device to receive
		tx_max sized frames with no terminating short
		packet. NTBs shorter than this limit are transmitted
		as-is, without any padding, and are terminated with a
		short USB packet.

		Padding to tx_max allows the driver to transmit NTBs
		back-to-back without any interleaving short USB
		packets.  This reduces the number of short packet
		interrupts in the device, and represents a tradeoff
		between USB bus bandwidth and device DMA optimization.

		Set to 0 to pad all frames. Set greater than tx_max to
		disable all padding.

What:		/sys/class/net/<iface>/cdc_ncm/ndp_to_end
Date:		Dec 2015
KernelVersion:	4.5
Contact:	Bjørn Mork <bjorn@mork.no>
Description:
		Boolean attribute showing the status of the "NDP to
		end" quirk.  Defaults to 'N', except for devices
		already known to need it enabled.

		The "NDP to end" quirk makes the driver place the NDP
		(the packet index table) after the payload.  The NCM
		specification does not mandate this, but some devices
		are known to be more restrictive. Write 'Y' to this
		attribute for temporary testing of a suspect device
		failing to work with the default driver settings.

		A device entry should be added to the driver if this
		quirk is found to be required.

What:		/sys/class/net/<iface>/cdc_ncm/rx_max
Date:		May 2014
KernelVersion:	3.16
Contact:	Bjørn Mork <bjorn@mork.no>
Description:
		The maximum NTB size for RX.  Cannot exceed the
		maximum value supported by the device. Must allow at
		least one max sized datagram plus headers.

		The actual limits are device dependent.  See
		dwNtbInMaxSize.

		Note: Some devices will silently ignore changes to
		this value, resulting in oversized NTBs and
		corresponding framing errors.

What:		/sys/class/net/<iface>/cdc_ncm/tx_max
Date:		May 2014
KernelVersion:	3.16
Contact:	Bjørn Mork <bjorn@mork.no>
Description:
		The maximum NTB size for TX.  Cannot exceed the
		maximum value supported by the device.  Must allow at
		least one max sized datagram plus headers.

		The actual limits are device dependent.  See
		dwNtbOutMaxSize.

What:		/sys/class/net/<iface>/cdc_ncm/tx_timer_usecs
Date:		May 2014
KernelVersion:	3.16
Contact:	Bjørn Mork <bjorn@mork.no>
Description:
		Datagram aggregation timeout in µs. The driver will
		wait up to 3 times this timeout for more datagrams to
		aggregate before transmitting an NTB frame.

		Valid range: 5 to 4000000

		Set to 0 to disable aggregation.

The following read-only attributes all represent fields of the
structure defined in section 6.2.1 "GetNtbParameters" of "Universal
Serial Bus Communications Class Subclass Specifications for Network
Control Model Devices" (CDC NCM), Revision 1.0 (Errata 1), November
24, 2010 from USB Implementers Forum, Inc.  The descriptions are
quoted from table 6-3 of CDC NCM: "NTB Parameter Structure".

What:		/sys/class/net/<iface>/cdc_ncm/bmNtbFormatsSupported
Date:		May 2014
KernelVersion:	3.16
Contact:	Bjørn Mork <bjorn@mork.no>
Description:
		Bit 0: 16-bit NTB supported (set to 1)
		Bit 1: 32-bit NTB supported
		Bits 2 – 15: reserved (reset to zero; must be ignored by host)

What:		/sys/class/net/<iface>/cdc_ncm/dwNtbInMaxSize
Date:		May 2014
KernelVersion:	3.16
Contact:	Bjørn Mork <bjorn@mork.no>
Description:
		IN NTB Maximum Size in bytes

What:		/sys/class/net/<iface>/cdc_ncm/wNdpInDivisor
Date:		May 2014
KernelVersion:	3.16
Contact:	Bjørn Mork <bjorn@mork.no>
Description:
		Divisor used for IN NTB Datagram payload alignment

What:		/sys/class/net/<iface>/cdc_ncm/wNdpInPayloadRemainder
Date:		May 2014
KernelVersion:	3.16
Contact:	Bjørn Mork <bjorn@mork.no>
Description:
		Remainder used to align input datagram payload within
		the NTB: (Payload Offset) mod (wNdpInDivisor) =
		wNdpInPayloadRemainder

What:		/sys/class/net/<iface>/cdc_ncm/wNdpInAlignment
Date:		May 2014
KernelVersion:	3.16
Contact:	Bjørn Mork <bjorn@mork.no>
Description:
		NDP alignment modulus for NTBs on the IN pipe. Shall
		be a power of 2, and shall be at least 4.

What:		/sys/class/net/<iface>/cdc_ncm/dwNtbOutMaxSize
Date:		May 2014
KernelVersion:	3.16
Contact:	Bjørn Mork <bjorn@mork.no>
Description:
		OUT NTB Maximum Size

What:		/sys/class/net/<iface>/cdc_ncm/wNdpOutDivisor
Date:		May 2014
KernelVersion:	3.16
Contact:	Bjørn Mork <bjorn@mork.no>
Description:
		OUT NTB Datagram alignment modulus

What:		/sys/class/net/<iface>/cdc_ncm/wNdpOutPayloadRemainder
Date:		May 2014
KernelVersion:	3.16
Contact:	Bjørn Mork <bjorn@mork.no>
Description:
		Remainder used to align output datagram payload
		offsets within the NTB: Padding, shall be transmitted
		as zero by function, and ignored by host.  (Payload
		Offset) mod (wNdpOutDivisor) = wNdpOutPayloadRemainder

What:		/sys/class/net/<iface>/cdc_ncm/wNdpOutAlignment
Date:		May 2014
KernelVersion:	3.16
Contact:	Bjørn Mork <bjorn@mork.no>
Description:
		NDP alignment modulus for use in NTBs on the OUT
		pipe. Shall be a power of 2, and shall be at least 4.

What:		/sys/class/net/<iface>/cdc_ncm/wNtbOutMaxDatagrams
Date:		May 2014
KernelVersion:	3.16
Contact:	Bjørn Mork <bjorn@mork.no>
Description:
		Maximum number of datagrams that the host may pack
		into a single OUT NTB. Zero means that the device
		imposes no limit.