1What:		/sys/class/net/<iface>/cdc_ncm/min_tx_pkt
2Date:		May 2014
3KernelVersion:	3.16
4Contact:	Bjørn Mork <bjorn@mork.no>
5Description:
6		The driver will pad NCM Transfer Blocks (NTBs) longer
7		than this to tx_max, allowing the device to receive
8		tx_max sized frames with no terminating short
9		packet. NTBs shorter than this limit are transmitted
10		as-is, without any padding, and are terminated with a
11		short USB packet.
12
13		Padding to tx_max allows the driver to transmit NTBs
14		back-to-back without any interleaving short USB
15		packets.  This reduces the number of short packet
16		interrupts in the device, and represents a tradeoff
17		between USB bus bandwidth and device DMA optimization.
18
19		Set to 0 to pad all frames. Set greater than tx_max to
20		disable all padding.
21
22What:		/sys/class/net/<iface>/cdc_ncm/ndp_to_end
23Date:		Dec 2015
24KernelVersion:	4.5
25Contact:	Bjørn Mork <bjorn@mork.no>
26Description:
27		Boolean attribute showing the status of the "NDP to
28		end" quirk.  Defaults to 'N', except for devices
29		already known to need it enabled.
30
31		The "NDP to end" quirk makes the driver place the NDP
32		(the packet index table) after the payload.  The NCM
33		specification does not mandate this, but some devices
34		are known to be more restrictive. Write 'Y' to this
35		attribute for temporary testing of a suspect device
36		failing to work with the default driver settings.
37
38		A device entry should be added to the driver if this
39		quirk is found to be required.
40
41What:		/sys/class/net/<iface>/cdc_ncm/rx_max
42Date:		May 2014
43KernelVersion:	3.16
44Contact:	Bjørn Mork <bjorn@mork.no>
45Description:
46		The maximum NTB size for RX.  Cannot exceed the
47		maximum value supported by the device. Must allow at
48		least one max sized datagram plus headers.
49
50		The actual limits are device dependent.  See
51		dwNtbInMaxSize.
52
53		Note: Some devices will silently ignore changes to
54		this value, resulting in oversized NTBs and
55		corresponding framing errors.
56
57What:		/sys/class/net/<iface>/cdc_ncm/tx_max
58Date:		May 2014
59KernelVersion:	3.16
60Contact:	Bjørn Mork <bjorn@mork.no>
61Description:
62		The maximum NTB size for TX.  Cannot exceed the
63		maximum value supported by the device.  Must allow at
64		least one max sized datagram plus headers.
65
66		The actual limits are device dependent.  See
67		dwNtbOutMaxSize.
68
69What:		/sys/class/net/<iface>/cdc_ncm/tx_timer_usecs
70Date:		May 2014
71KernelVersion:	3.16
72Contact:	Bjørn Mork <bjorn@mork.no>
73Description:
74		Datagram aggregation timeout in µs. The driver will
75		wait up to 3 times this timeout for more datagrams to
76		aggregate before transmitting an NTB frame.
77
78		Valid range: 5 to 4000000
79
80		Set to 0 to disable aggregation.
81
82The following read-only attributes all represent fields of the
83structure defined in section 6.2.1 "GetNtbParameters" of "Universal
84Serial Bus Communications Class Subclass Specifications for Network
85Control Model Devices" (CDC NCM), Revision 1.0 (Errata 1), November
8624, 2010 from USB Implementers Forum, Inc.  The descriptions are
87quoted from table 6-3 of CDC NCM: "NTB Parameter Structure".
88
89What:		/sys/class/net/<iface>/cdc_ncm/bmNtbFormatsSupported
90Date:		May 2014
91KernelVersion:	3.16
92Contact:	Bjørn Mork <bjorn@mork.no>
93Description:
94		- Bit 0: 16-bit NTB supported (set to 1)
95		- Bit 1: 32-bit NTB supported
96		- Bits 2 – 15: reserved (reset to zero; must be ignored by host)
97
98What:		/sys/class/net/<iface>/cdc_ncm/dwNtbInMaxSize
99Date:		May 2014
100KernelVersion:	3.16
101Contact:	Bjørn Mork <bjorn@mork.no>
102Description:
103		IN NTB Maximum Size in bytes
104
105What:		/sys/class/net/<iface>/cdc_ncm/wNdpInDivisor
106Date:		May 2014
107KernelVersion:	3.16
108Contact:	Bjørn Mork <bjorn@mork.no>
109Description:
110		Divisor used for IN NTB Datagram payload alignment
111
112What:		/sys/class/net/<iface>/cdc_ncm/wNdpInPayloadRemainder
113Date:		May 2014
114KernelVersion:	3.16
115Contact:	Bjørn Mork <bjorn@mork.no>
116Description:
117		Remainder used to align input datagram payload within
118		the NTB: (Payload Offset) mod (wNdpInDivisor) =
119		wNdpInPayloadRemainder
120
121What:		/sys/class/net/<iface>/cdc_ncm/wNdpInAlignment
122Date:		May 2014
123KernelVersion:	3.16
124Contact:	Bjørn Mork <bjorn@mork.no>
125Description:
126		NDP alignment modulus for NTBs on the IN pipe. Shall
127		be a power of 2, and shall be at least 4.
128
129What:		/sys/class/net/<iface>/cdc_ncm/dwNtbOutMaxSize
130Date:		May 2014
131KernelVersion:	3.16
132Contact:	Bjørn Mork <bjorn@mork.no>
133Description:
134		OUT NTB Maximum Size
135
136What:		/sys/class/net/<iface>/cdc_ncm/wNdpOutDivisor
137Date:		May 2014
138KernelVersion:	3.16
139Contact:	Bjørn Mork <bjorn@mork.no>
140Description:
141		OUT NTB Datagram alignment modulus
142
143What:		/sys/class/net/<iface>/cdc_ncm/wNdpOutPayloadRemainder
144Date:		May 2014
145KernelVersion:	3.16
146Contact:	Bjørn Mork <bjorn@mork.no>
147Description:
148		Remainder used to align output datagram payload
149		offsets within the NTB: Padding, shall be transmitted
150		as zero by function, and ignored by host.  (Payload
151		Offset) mod (wNdpOutDivisor) = wNdpOutPayloadRemainder
152
153What:		/sys/class/net/<iface>/cdc_ncm/wNdpOutAlignment
154Date:		May 2014
155KernelVersion:	3.16
156Contact:	Bjørn Mork <bjorn@mork.no>
157Description:
158		NDP alignment modulus for use in NTBs on the OUT
159		pipe. Shall be a power of 2, and shall be at least 4.
160
161What:		/sys/class/net/<iface>/cdc_ncm/wNtbOutMaxDatagrams
162Date:		May 2014
163KernelVersion:	3.16
164Contact:	Bjørn Mork <bjorn@mork.no>
165Description:
166		Maximum number of datagrams that the host may pack
167		into a single OUT NTB. Zero means that the device
168		imposes no limit.
169