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