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