Netdev List
 help / color / mirror / Atom feed
* Re: net-PA Semi: Deletion of unnecessary checks before the function call "pci_dev_put"
From: SF Markus Elfring @ 2014-11-30 20:40 UTC (permalink / raw)
  To: Lino Sanfilippo
  Cc: Julia Lawall, Olof Johansson, netdev, LKML, kernel-janitors
In-Reply-To: <547B6F9A.8030806@gmx.de>

> Maybe this topic should be clarified somewhere (e.g. in "CodingStyle")?
> On the other hand i always found it obvious that its the callers
> responsibility to only pass sane parameters to the called functions...

Can you imagine that any more source code places which would benefit from
check adjustments because of defensive programming?

Regards,
Markus

^ permalink raw reply

* Re: [PATCH 3/3] net-PPP: Delete an unnecessary assignment
From: Eric Dumazet @ 2014-11-30 19:59 UTC (permalink / raw)
  To: SF Markus Elfring
  Cc: Paul Mackerras, linux-ppp, netdev, LKML, kernel-janitors,
	Julia Lawall
In-Reply-To: <547B4A35.7000500@users.sourceforge.net>

On Sun, 2014-11-30 at 17:47 +0100, SF Markus Elfring wrote:
> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Sun, 30 Nov 2014 17:17:36 +0100
> 
> The data structure element "arc4" was assigned a null pointer by the
> mppe_alloc() function if a previous function call "crypto_alloc_blkcipher"
> failed. This assignment became unnecessary with previous source
> code adjustments.
> Let us delete it from the affected implementation because the element "arc4"
> will not be accessible outside the function after the detected
> allocation failure.
> 
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
> ---
>  drivers/net/ppp/ppp_mppe.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/drivers/net/ppp/ppp_mppe.c b/drivers/net/ppp/ppp_mppe.c
> index 962c1a0..d913bc9 100644
> --- a/drivers/net/ppp/ppp_mppe.c
> +++ b/drivers/net/ppp/ppp_mppe.c
> @@ -205,10 +205,8 @@ static void *mppe_alloc(unsigned char *options, int optlen)
>  
> 
>  	state->arc4 = crypto_alloc_blkcipher("ecb(arc4)", 0, CRYPTO_ALG_ASYNC);
> -	if (IS_ERR(state->arc4)) {
> -		state->arc4 = NULL;
> +	if (IS_ERR(state->arc4))
>  		goto out_free;
> -	}
>  
>  	state->sha1 = crypto_alloc_hash("sha1", 0, CRYPTO_ALG_ASYNC);
>  	if (IS_ERR(state->sha1)) {

I have no idea why its a patch on its own, and why state->arc4 gets
special treatment while state->sha1 does not.

This definitely belongs to the previous patch, refactoring error
handling in mppe_alloc()

Also, it seems your patches do not fix bugs, so so you need to target
net-next tree, as explained in Documentation/networking/netdev-FAQ.txt

^ permalink raw reply

* Re: Non Explained TODOs in halbtcoutsrc.c
From: Larry Finger @ 2014-11-30 19:52 UTC (permalink / raw)
  To: nick
  Cc: linux-wireless-u79uwXL29TY76Z2rM5mHXA,
	netdev-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <547A9F9D.8050103-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

On 11/29/2014 10:39 PM, nick wrote:
> Larry,
> Do you known who wrote that code as this I can email them for the explanations for them.
> If not I assume we can remove them as the code makes logical sense unless there are
> hardware or other quirks that need to be handled. :)
> Cheers and Thanks for Your Time,
> Nick
>
> On 2014-11-29 11:31 PM, Larry Finger wrote:
>> On 11/29/2014 05:34 PM, nick wrote:
>>> Greetings Larry,
>>> After reading the code around the TODOS, I can't understand you reasoning for them in this file as they seem to
>>> unneeded as the logic for the switch statement with them seems to be fine. If there are reasons for them in this
>>> file, it would be nice to hear from you on why they are needed as TODO as a comment is rather unclear for anybody
>>> reading this file.
>>> Nick
>>
>> I did not write that code. I merely make it available through the git repo, and modify it so that it will build on all kernel versions. I do not understand the TODOs any more than you do.
>>
>> Larry

Sorry, I do not have permission to reveal the E-mail addresses of any Realtek 
software developers. I have added the appropriate developer as a Bcc to this 
E-mail. That will leave it up to that individual to respond to you.

Larry


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply

* Re: [PATCH net] net/mlx4_en: correct the endianness of doorbell_qpn on big endian platform
From: Eric Dumazet @ 2014-11-30 19:27 UTC (permalink / raw)
  To: Wei Yang; +Cc: netdev, davem, gideonn, Eric Dumazet, Amir Vadai
In-Reply-To: <1417315431-16761-1-git-send-email-weiyang@linux.vnet.ibm.com>

On Sun, 2014-11-30 at 10:43 +0800, Wei Yang wrote:
> In commit 6a4e812 (net/mlx4_en: Avoid calling bswap in tx fast path), we store
> doorbell_qpn in big endian to avoid bswap(). Then we try to write it directly
> by iowrite32() instead of iowrite32be().
> 
> This works fine on little endian platform, while has some problem on big
> endian platform. Here is the definition in general:
> 
> 	#define iowrite32(v, addr)	writel((v), (addr))
> 	#define writel(b,addr)		__raw_writel(__cpu_to_le32(b),addr)

Oh well...

> 
> On little endian platform, the value is not swapped before write. While on big
> endian platform, the value is swapped. This is not expected to happen.
> 
> This patch does the swap on big endian platform before it is written.
> 
> Signed-off-by: Wei Yang <weiyang@linux.vnet.ibm.com>
> CC: Eric Dumazet <edumazet@google.com>
> CC: Amir Vadai <amirv@mellanox.com>
> ---
>  drivers/net/ethernet/mellanox/mlx4/en_tx.c |    2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/mellanox/mlx4/en_tx.c b/drivers/net/ethernet/mellanox/mlx4/en_tx.c
> index 454d9fe..76f028b 100644
> --- a/drivers/net/ethernet/mellanox/mlx4/en_tx.c
> +++ b/drivers/net/ethernet/mellanox/mlx4/en_tx.c
> @@ -954,7 +954,7 @@ netdev_tx_t mlx4_en_xmit(struct sk_buff *skb, struct net_device *dev)
>  		tx_desc->ctrl.owner_opcode = op_own;
>  		if (send_doorbell) {
>  			wmb();
> -			iowrite32(ring->doorbell_qpn,
> +			iowrite32(__cpu_to_le32(ring->doorbell_qpn),
>  				  ring->bf.uar->map + MLX4_SEND_DOORBELL);
>  		} else {
>  			ring->xmit_more++;

Well, whole idea of the patch was to perform the swap (if any) out of
the fast path.

ring->doorbell_qpn is a cache of whatever value.

Have you tried to convert it to a __le32 instead of __be32 ?

Thanks

^ permalink raw reply

* Re: [PATCH 1/1] net-PA Semi: Deletion of unnecessary checks before the function call "pci_dev_put"
From: Lino Sanfilippo @ 2014-11-30 19:27 UTC (permalink / raw)
  To: Julia Lawall
  Cc: SF Markus Elfring, Olof Johansson, netdev, LKML, kernel-janitors
In-Reply-To: <alpine.DEB.2.10.1411301846560.2522@hadrien>

On 30.11.2014 18:47, Julia Lawall wrote:

> 
> I have heard of at least one case where the problem you are raising
> happened in practice...
> 
> julia

If one case is known then there are probably a lot more that have not
been discovered yet.
Maybe this topic should be clarified somewhere (e.g. in "CodingStyle")?
On the other hand i always found it obvious that its the callers
responsibility to only pass sane parameters to the called functions...

Regards,
Lino

^ permalink raw reply

* Re: Is this 32-bit NCM?
From: Enrico Mioso @ 2014-11-30 18:36 UTC (permalink / raw)
  To: Bjørn Mork
  Cc: Eli Britstein, youtux, alexxst, linux-usb, netdev,
	Midge Shaojun Tan, Kevin Zhu
In-Reply-To: <874mtl55ar.fsf@nemi.mork.no>

[-- Attachment #1: Type: TEXT/PLAIN, Size: 3672 bytes --]

Thank you Bjorn for the help and suggestions.
These are parameters that the driver ends up choosing:
/sys/class/net/wwan0/cdc_ncm/bmNtbFormatsSupported:0x0003
/sys/class/net/wwan0/cdc_ncm/dwNtbInMaxSize:131072
/sys/class/net/wwan0/cdc_ncm/dwNtbOutMaxSize:16384
/sys/class/net/wwan0/cdc_ncm/min_tx_pkt:14848
/sys/class/net/wwan0/cdc_ncm/rx_max:16384
/sys/class/net/wwan0/cdc_ncm/tx_max:16384
/sys/class/net/wwan0/cdc_ncm/tx_timer_usecs:400
/sys/class/net/wwan0/cdc_ncm/wNdpInAlignment:4
/sys/class/net/wwan0/cdc_ncm/wNdpInDivisor:4
/sys/class/net/wwan0/cdc_ncm/wNdpInPayloadRemainder:2
/sys/class/net/wwan0/cdc_ncm/wNdpOutAlignment:4
/sys/class/net/wwan0/cdc_ncm/wNdpOutDivisor:4
/sys/class/net/wwan0/cdc_ncm/wNdpOutPayloadRemainder:2
/sys/class/net/wwan0/cdc_ncm/wNtbOutMaxDatagrams:0

Sorry if I did not report them before. If I missed someone in CC please add it 
guys.
Kevin - after you discovered that the device might handle the offset in a 
different way, have you tried this approach?


On Thu, 27 Nov 2014, Bjørn Mork wrote:

==Date: Thu, 27 Nov 2014 11:03:24
==From: Bjørn Mork <bjorn@mork.no>
==To: Enrico Mioso <mrkiko.rs@gmail.com>
==Cc: youtux@gmail.com, alexxst@gmail.com, linux-usb@vger.kernel.org,
==    netdev@vger.kernel.org
==Subject: Re: Is this 32-bit NCM?
==
==Enrico Mioso <mrkiko.rs@gmail.com> writes:
==
==> Ok - we can arrive to some ocnclusions regarding the E3272.
==> First of all - the modem seems buggy enough to not be able to handle requests 
==> for different formats. You need to unplug and re-plug it, but this is onlyan 
==> impression and is reasonable.
==>
==> Then - the modem will accept to ndisdup the connection with
==> at^ndisdup=1,1,"internet"
==> but - if we use huawei_cdc_ncm + cdc_ncm we have no flow handling messages and 
==> the modem stops here.
==> If we use the cdc_ncm 32-bit driver (modified) we get lotfs of
==> ^dsflorpt
==> that's how it should be.
==> So I think we can say that something is changing.
==> Then there's the alignment problem you mentioned in your previous reply. And 
==> this is hard to solve.
==> could you try to help me understand where the problem is?
==> I feel like we are very close to the solution but something isn't working.
==> Or might be just try to change the 16 bit driver?
==
==If you use a recent version of the driver as a basis, then you get the
==CDC NCM NTB parameters in sysfs (if not, then you need to enable
==debugging and look in the log for these values).  For example:
==
==bjorn@nemi:~$ grep . /sys/class/net/wwan0/cdc_ncm/*
==/sys/class/net/wwan0/cdc_ncm/bmNtbFormatsSupported:0x0001
==/sys/class/net/wwan0/cdc_ncm/dwNtbInMaxSize:15360
==/sys/class/net/wwan0/cdc_ncm/dwNtbOutMaxSize:15360
==/sys/class/net/wwan0/cdc_ncm/min_tx_pkt:13824
==/sys/class/net/wwan0/cdc_ncm/rx_max:15360
==/sys/class/net/wwan0/cdc_ncm/tx_max:15360
==/sys/class/net/wwan0/cdc_ncm/tx_timer_usecs:400
==/sys/class/net/wwan0/cdc_ncm/wNdpInAlignment:4
==/sys/class/net/wwan0/cdc_ncm/wNdpInDivisor:1
==/sys/class/net/wwan0/cdc_ncm/wNdpInPayloadRemainder:0
==/sys/class/net/wwan0/cdc_ncm/wNdpOutAlignment:4
==/sys/class/net/wwan0/cdc_ncm/wNdpOutDivisor:32
==/sys/class/net/wwan0/cdc_ncm/wNdpOutPayloadRemainder:0
==/sys/class/net/wwan0/cdc_ncm/wNtbOutMaxDatagrams:32
==
==
==The possible problem I am thinking of is proper handling of the
==wNdp*PayloadRemainder values. See section 3.3.4 "NCM Ethernet Frame
==Alignment" in the spec.  Which is confusing as hell, but if I understand
==it correctly then we are supposed to align the start of the IP packets
==(the "payload", _not_ the ethernet frame) to a whole wNdp*Divisor number
==as long as the wNdp*PayloadRemainder is 0.
==
==
==Bjørn
==

^ permalink raw reply

* Re: [PATCH net-next v2] bridge: make proxy arp configurable
From: Sabrina Dubroca @ 2014-11-30 18:20 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: David Miller, Kyeyoon Park, netdev
In-Reply-To: <20141130092001.7168dc72@urahara>

Hello Stephen,

2014-11-30, 09:20:01 -0800, Stephen Hemminger wrote:
> 
> This solves kernel build without INET enabled, and allows user
> to control enabling this feature.
> 
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> 
> ---
>  net/bridge/Kconfig       |   15 +++++++++++++++
>  net/bridge/br_input.c    |    4 ++++
>  net/bridge/br_sysfs_if.c |    4 ++++
>  3 files changed, 23 insertions(+)
> 
> --- a/net/bridge/Kconfig	2014-11-25 09:42:34.687891662 -0800
> +++ b/net/bridge/Kconfig	2014-11-25 09:42:34.683891643 -0800
> @@ -60,3 +60,18 @@ config BRIDGE_VLAN_FILTERING
>  	  Say N to exclude this support and reduce the binary size.
>  
>  	  If unsure, say Y.
> +
> +config BRIDGE_ARP_PROXY

Shouldn't this be BRIDGE_PROXY_ARP to match all the

  #ifdef CONFIG_BRIDGE_PROXY_ARP

below?


> --- a/net/bridge/br_input.c	2014-11-25 09:42:34.687891662 -0800
> +++ b/net/bridge/br_input.c	2014-11-25 09:42:34.683891643 -0800
> @@ -59,6 +59,7 @@ static int br_pass_frame_up(struct sk_bu
>  		       netif_receive_skb);
>  }
>  
> +#ifdef CONFIG_BRIDGE_PROXY_ARP
>  static void br_do_proxy_arp(struct sk_buff *skb, struct net_bridge *br,
>  			    u16 vid)
>  {
> @@ -112,6 +113,7 @@ static void br_do_proxy_arp(struct sk_bu
>  		neigh_release(n);
>  	}
>  }
> +#endif


-- 
Sabrina

^ permalink raw reply

* Re: Is this 32-bit NCM?
From: Enrico Mioso @ 2014-11-30 18:10 UTC (permalink / raw)
  To: Bjørn Mork
  Cc: Alex Strizhevsky, ShaojunMidge.Tan, Mingying.Zhu, youtux,
	linux-usb, netdev, Eli.Britstein
In-Reply-To: <87ppc71xne.fsf@nemi.mork.no>

[-- Attachment #1: Type: TEXT/PLAIN, Size: 2463 bytes --]

this is a capture equivalent to the m1 capture in the previous message; the 
E3251 modem is communicating us the arp traffic of the gateway asking who will 
have our IP in case of DHCP.
So you have some comparison.
See preivous mail in case.

Note: at^dialmode returns 3,2 in our case, which should be fine.
In the windows sniff it returned 1,2; however we are not allowed to change 
this.


On Fri, 28 Nov 2014, Bjørn Mork wrote:

==Date: Fri, 28 Nov 2014 10:29:09
==From: Bjørn Mork <bjorn@mork.no>
==To: Enrico Mioso <mrkiko.rs@gmail.com>
==Cc: Alex Strizhevsky <alexxst@gmail.com>, ShaojunMidge.Tan@audiocodes.com,
==    Mingying.Zhu@audiocodes.com, youtux@gmail.com, linux-usb@vger.kernel.org,
==    netdev@vger.kernel.org, Eli.Britstein@audiocodes.com
==Subject: Re: Is this 32-bit NCM?
==
==Enrico Mioso <mrkiko.rs@gmail.com> writes:
==
==> What I suspect, is that all this mess started when Huawei introduce new 
==> firmware releases that changed something in the IPV6 support.
==> Bjorn - do you remember when a guy called Thomas reported us a problem about an 
==> LTE huawei modem that wasn't working with huawei_cdc_ncm?
==> And you then discovered the problem was originated from some changes in the 
==> ordering of cdc_ncm actions; what happened then?
==> Did Thomas get his modem back to working state?
==
==yes, that bug was fixed by
==
==commit ff0992e9036e9810e7cd45234fa32ca1e79750e2
==Author: Bjørn Mork <bjorn@mork.no>
==Date:   Mon Mar 17 16:25:18 2014 +0100
==
==    net: cdc_ncm: fix control message ordering
==    
==    This is a context modified revert of commit 6a9612e2cb22
==    ("net: cdc_ncm: remove ncm_parm field") which introduced
==    a NCM specification violation, causing setup errors for
==    some devices. These errors resulted in the device and
==    host disagreeing about shared settings, with complete
==    failure to communicate as the end result.
==    
==    The NCM specification require that many of the NCM specific
==    control reuests are sent only while the NCM Data Interface
==    is in alternate setting 0. Reverting the commit ensures that
==    we follow this requirement.
==    
==    Fixes: 6a9612e2cb22 ("net: cdc_ncm: remove ncm_parm field")
==    Reported-and-tested-by: Pasi Kärkkäinen <pasik@iki.fi>
==    Reported-by: Thomas Schäfer <tschaefer@t-online.de>
==    Signed-off-by: Bjørn Mork <bjorn@mork.no>
==    Signed-off-by: David S. Miller <davem@davemloft.net>
==
==
==
==Bjørn
==

[-- Attachment #2: Type: TEXT/PLAIN, Size: 78350 bytes --]

0000  80 cf 74 d7 00 00 00 00 53 02 80 0a 01 00 00 3c   ..t.....S......<
0010  9b 5c 7b 54 00 00 00 00 7f ae 01 00 8d ff ff ff   .\{T............
0020  28 00 00 00 00 00 00 00 80 06 00 01 00 00 28 00   (.............(.
0030  00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00   ................

0000  80 cf 74 d7 00 00 00 00 43 02 80 0a 01 00 2d 00   ..t.....C.....-.
0010  9b 5c 7b 54 00 00 00 00 7d b1 01 00 00 00 00 00   .\{T....}.......
0020  12 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00   ................
0040  12 01 00 02 00 00 00 40 d1 12 06 15 02 01 02 01   .......@........
0050  00 01                                             ..

0000  80 cf 74 d7 00 00 00 00 53 02 80 06 01 00 00 3c   ..t.....S......<
0010  9b 5c 7b 54 00 00 00 00 de b1 01 00 8d ff ff ff   .\{T............
0020  28 00 00 00 00 00 00 00 80 06 00 01 00 00 28 00   (.............(.
0030  00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00   ................

0000  80 cf 74 d7 00 00 00 00 43 02 80 06 01 00 2d 00   ..t.....C.....-.
0010  9b 5c 7b 54 00 00 00 00 5a b2 01 00 00 00 00 00   .\{T....Z.......
0020  12 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00   ................
0040  12 01 00 02 ef 02 01 40 1a eb 61 27 12 12 00 00   .......@..a'....
0050  00 01                                             ..

0000  80 cf 74 d7 00 00 00 00 53 02 80 05 01 00 00 3c   ..t.....S......<
0010  9b 5c 7b 54 00 00 00 00 89 b2 01 00 8d ff ff ff   .\{T............
0020  28 00 00 00 00 00 00 00 80 06 00 01 00 00 28 00   (.............(.
0030  00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00   ................

0000  80 cf 74 d7 00 00 00 00 43 02 80 05 01 00 2d 00   ..t.....C.....-.
0010  9b 5c 7b 54 00 00 00 00 b6 b6 01 00 00 00 00 00   .\{T............
0020  12 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00   ................
0040  12 01 00 02 00 00 00 08 ac 05 50 02 74 00 01 02   ..........P.t...
0050  00 01                                             ..

0000  80 cf 74 d7 00 00 00 00 53 02 80 04 01 00 00 3c   ..t.....S......<
0010  9b 5c 7b 54 00 00 00 00 e0 b6 01 00 8d ff ff ff   .\{T............
0020  28 00 00 00 00 00 00 00 80 06 00 01 00 00 28 00   (.............(.
0030  00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00   ................

0000  80 cf 74 d7 00 00 00 00 43 02 80 04 01 00 2d 00   ..t.....C.....-.
0010  9b 5c 7b 54 00 00 00 00 b3 b7 01 00 00 00 00 00   .\{T............
0020  12 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00   ................
0040  12 01 00 02 00 00 00 40 51 09 06 16 00 01 01 02   .......@Q.......
0050  04 01                                             ..

0000  80 cf 74 d7 00 00 00 00 53 02 80 03 01 00 00 3c   ..t.....S......<
0010  9b 5c 7b 54 00 00 00 00 da b7 01 00 8d ff ff ff   .\{T............
0020  28 00 00 00 00 00 00 00 80 06 00 01 00 00 28 00   (.............(.
0030  00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00   ................

0000  80 cf 74 d7 00 00 00 00 43 02 80 03 01 00 2d 00   ..t.....C.....-.
0010  9b 5c 7b 54 00 00 00 00 33 b8 01 00 00 00 00 00   .\{T....3.......
0020  12 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00   ................
0040  12 01 00 02 09 00 01 40 ac 05 06 10 15 96 01 02   .......@........
0050  03 01                                             ..

0000  80 cf 74 d7 00 00 00 00 53 02 80 01 01 00 00 3c   ..t.....S......<
0010  9b 5c 7b 54 00 00 00 00 58 b8 01 00 8d ff ff ff   .\{T....X.......
0020  28 00 00 00 00 00 00 00 80 06 00 01 00 00 28 00   (.............(.
0030  00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00   ................

0000  80 cf 74 d7 00 00 00 00 43 02 80 01 01 00 2d 00   ..t.....C.....-.
0010  9b 5c 7b 54 00 00 00 00 66 b8 01 00 00 00 00 00   .\{T....f.......
0020  12 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00   ................
0040  12 01 00 02 09 00 00 40 6b 1d 02 00 18 03 03 02   .......@k.......
0050  01 01                                             ..

0000  00 ac 38 c0 00 00 00 00 53 03 06 0a 01 00 2d 00   ..8.....S.....-.
0010  9b 5c 7b 54 00 00 00 00 a0 44 04 00 8d ff ff ff   .\{T.....D......
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 e6 00 00 00 00 00 00 00 00 00 06 00   USBC............
0050  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00      ...............

0000  00 ac 38 c0 00 00 00 00 43 03 06 0a 01 00 2d 3e   ..8.....C.....->
0010  9b 5c 7b 54 00 00 00 00 0d 45 04 00 00 00 00 00   .\{T.....E......
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  00 ac 38 c0 00 00 00 00 53 03 88 0a 01 00 2d 3c   ..8.....S.....-<
0010  9b 5c 7b 54 00 00 00 00 1d 45 04 00 8d ff ff ff   .\{T.....E......
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  00 ac 38 c0 00 00 00 00 43 03 88 0a 01 00 2d 00   ..8.....C.....-.
0010  9b 5c 7b 54 00 00 00 00 7b 46 04 00 00 00 00 00   .\{T....{F......
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 e6 00 00 00 00 00 00 00 01            USBS.........

0000  00 ac 38 c0 00 00 00 00 53 03 06 0a 01 00 2d 00   ..8.....S.....-.
0010  9b 5c 7b 54 00 00 00 00 8c 46 04 00 8d ff ff ff   .\{T.....F......
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 e7 00 00 00 12 00 00 00 80 00 06 03   USBC............
0050  00 00 00 12 00 00 00 00 00 00 00 00 00 00 00      ...............

0000  00 ac 38 c0 00 00 00 00 43 03 06 0a 01 00 2d 3e   ..8.....C.....->
0010  9b 5c 7b 54 00 00 00 00 f8 46 04 00 00 00 00 00   .\{T.....F......
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  80 c5 74 d7 00 00 00 00 53 03 88 0a 01 00 2d 3c   ..t.....S.....-<
0010  9b 5c 7b 54 00 00 00 00 05 47 04 00 8d ff ff ff   .\{T.....G......
0020  12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................

0000  80 c5 74 d7 00 00 00 00 43 03 88 0a 01 00 2d 00   ..t.....C.....-.
0010  9b 5c 7b 54 00 00 00 00 74 48 04 00 00 00 00 00   .\{T....tH......
0020  12 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................
0040  f0 00 02 00 00 00 00 0a 00 00 00 00 3a 00 00 00   ............:...
0050  00 00                                             ..

0000  00 ac 38 c0 00 00 00 00 53 03 88 0a 01 00 2d 3c   ..8.....S.....-<
0010  9b 5c 7b 54 00 00 00 00 81 48 04 00 8d ff ff ff   .\{T.....H......
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  00 ac 38 c0 00 00 00 00 43 03 88 0a 01 00 2d 00   ..8.....C.....-.
0010  9b 5c 7b 54 00 00 00 00 e6 48 04 00 00 00 00 00   .\{T.....H......
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 e7 00 00 00 00 00 00 00 00            USBS.........

0000  80 ac 38 c0 00 00 00 00 53 03 05 0a 01 00 2d 00   ..8.....S.....-.
0010  9b 5c 7b 54 00 00 00 00 ac 14 0c 00 8d ff ff ff   .\{T............
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 4c 01 00 00 08 00 00 00 80 00 0a 4a   USBCL..........J
0050  01 00 00 10 00 00 00 08 00 00 00 00 00 00 00      ...............

0000  80 ac 38 c0 00 00 00 00 43 03 05 0a 01 00 2d 3e   ..8.....C.....->
0010  9b 5c 7b 54 00 00 00 00 26 15 0c 00 00 00 00 00   .\{T....&.......
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  80 c5 74 d7 00 00 00 00 53 03 87 0a 01 00 2d 3c   ..t.....S.....-<
0010  9b 5c 7b 54 00 00 00 00 37 15 0c 00 8d ff ff ff   .\{T....7.......
0020  08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................

0000  80 c5 74 d7 00 00 00 00 43 03 87 0a 01 00 2d 00   ..t.....C.....-.
0010  9b 5c 7b 54 00 00 00 00 04 16 0c 00 e0 ff ff ff   .\{T............
0020  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 53 02 00 0a 01 00 00 00   ..8.....S.......
0010  9b 5c 7b 54 00 00 00 00 12 16 0c 00 8d ff ff ff   .\{T............
0020  00 00 00 00 00 00 00 00 02 01 00 00 87 00 00 00   ................
0030  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 43 02 00 0a 01 00 2d 3e   ..8.....C.....->
0010  9b 5c 7b 54 00 00 00 00 66 19 0c 00 00 00 00 00   .\{T....f.......
0020  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 53 03 87 0a 01 00 2d 3c   ..8.....S.....-<
0010  9b 5c 7b 54 00 00 00 00 76 19 0c 00 8d ff ff ff   .\{T....v.......
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 43 03 87 0a 01 00 2d 00   ..8.....C.....-.
0010  9b 5c 7b 54 00 00 00 00 e9 19 0c 00 00 00 00 00   .\{T............
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 4c 01 00 00 08 00 00 00 01            USBSL........

0000  80 ac 38 c0 00 00 00 00 53 03 05 0a 01 00 2d 00   ..8.....S.....-.
0010  9b 5c 7b 54 00 00 00 00 f6 19 0c 00 8d ff ff ff   .\{T............
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 4d 01 00 00 12 00 00 00 80 00 06 03   USBCM...........
0050  00 00 00 12 00 00 00 00 00 00 00 00 00 00 00      ...............

0000  80 ac 38 c0 00 00 00 00 43 03 05 0a 01 00 2d 3e   ..8.....C.....->
0010  9b 5c 7b 54 00 00 00 00 66 1a 0c 00 00 00 00 00   .\{T....f.......
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  80 c5 74 d7 00 00 00 00 53 03 87 0a 01 00 2d 3c   ..t.....S.....-<
0010  9b 5c 7b 54 00 00 00 00 72 1a 0c 00 8d ff ff ff   .\{T....r.......
0020  12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................

0000  80 c5 74 d7 00 00 00 00 43 03 87 0a 01 00 2d 00   ..t.....C.....-.
0010  9b 5c 7b 54 00 00 00 00 d6 1b 0c 00 00 00 00 00   .\{T............
0020  12 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................
0040  f0 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00   ............ ...
0050  00 00                                             ..

0000  80 ac 38 c0 00 00 00 00 53 03 87 0a 01 00 2d 3c   ..8.....S.....-<
0010  9b 5c 7b 54 00 00 00 00 e3 1b 0c 00 8d ff ff ff   .\{T............
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 43 03 87 0a 01 00 2d 00   ..8.....C.....-.
0010  9b 5c 7b 54 00 00 00 00 57 1c 0c 00 00 00 00 00   .\{T....W.......
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 4d 01 00 00 00 00 00 00 00            USBSM........

0000  80 cb 26 c0 00 00 00 00 53 03 01 04 01 00 2d 00   ..&.....S.....-.
0010  9c 5c 7b 54 00 00 00 00 57 a2 04 00 8d ff ff ff   .\{T....W.......
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 6a 4a 00 00 00 00 00 00 00 00 06 00   USBCjJ..........
0050  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00      ...............

0000  80 cb 26 c0 00 00 00 00 43 03 01 04 01 00 2d 3e   ..&.....C.....->
0010  9c 5c 7b 54 00 00 00 00 d3 a2 04 00 00 00 00 00   .\{T............
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  80 cb 26 c0 00 00 00 00 53 03 82 04 01 00 2d 3c   ..&.....S.....-<
0010  9c 5c 7b 54 00 00 00 00 e4 a2 04 00 8d ff ff ff   .\{T............
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  80 cb 26 c0 00 00 00 00 43 03 82 04 01 00 2d 00   ..&.....C.....-.
0010  9c 5c 7b 54 00 00 00 00 41 a3 04 00 00 00 00 00   .\{T....A.......
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 6a 4a 00 00 00 00 00 00 00            USBSjJ.......

0000  80 ca 74 d7 00 00 00 00 53 02 00 01 01 00 00 00   ..t.....S.......
0010  9d 5c 7b 54 00 00 00 00 4f b0 01 00 8d ff ff ff   .\{T....O.......
0020  00 00 00 00 00 00 00 00 23 03 02 00 08 00 00 00   ........#.......
0030  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0000  80 ca 74 d7 00 00 00 00 43 02 00 01 01 00 2d 3e   ..t.....C.....->
0010  9d 5c 7b 54 00 00 00 00 69 b0 01 00 00 00 00 00   .\{T....i.......
0020  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0000  00 ac 38 c0 00 00 00 00 53 03 06 0a 01 00 2d 00   ..8.....S.....-.
0010  9d 5c 7b 54 00 00 00 00 0d 00 05 00 8d ff ff ff   .\{T............
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 e8 00 00 00 00 00 00 00 00 00 06 00   USBC............
0050  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00      ...............

0000  00 ac 38 c0 00 00 00 00 43 03 06 0a 01 00 2d 3e   ..8.....C.....->
0010  9d 5c 7b 54 00 00 00 00 8a 00 05 00 00 00 00 00   .\{T............
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  00 ac 38 c0 00 00 00 00 53 03 88 0a 01 00 2d 3c   ..8.....S.....-<
0010  9d 5c 7b 54 00 00 00 00 96 02 05 00 8d ff ff ff   .\{T............
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  00 ac 38 c0 00 00 00 00 43 03 88 0a 01 00 2d 00   ..8.....C.....-.
0010  9d 5c 7b 54 00 00 00 00 fa 02 05 00 00 00 00 00   .\{T............
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 e8 00 00 00 00 00 00 00 01            USBS.........

0000  00 ac 38 c0 00 00 00 00 53 03 06 0a 01 00 2d 00   ..8.....S.....-.
0010  9d 5c 7b 54 00 00 00 00 2c 03 05 00 8d ff ff ff   .\{T....,.......
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 e9 00 00 00 12 00 00 00 80 00 06 03   USBC............
0050  00 00 00 12 00 00 00 00 00 00 00 00 00 00 00      ...............

0000  00 ac 38 c0 00 00 00 00 43 03 06 0a 01 00 2d 3e   ..8.....C.....->
0010  9d 5c 7b 54 00 00 00 00 6f 03 05 00 00 00 00 00   .\{T....o.......
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  80 c5 74 d7 00 00 00 00 53 03 88 0a 01 00 2d 3c   ..t.....S.....-<
0010  9d 5c 7b 54 00 00 00 00 fc 12 05 00 8d ff ff ff   .\{T............
0020  12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................

0000  80 c5 74 d7 00 00 00 00 43 03 88 0a 01 00 2d 00   ..t.....C.....-.
0010  9d 5c 7b 54 00 00 00 00 8c 13 05 00 00 00 00 00   .\{T............
0020  12 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................
0040  f0 00 02 00 00 00 00 0a 00 00 00 00 3a 00 00 00   ............:...
0050  00 00                                             ..

0000  00 ac 38 c0 00 00 00 00 53 03 88 0a 01 00 2d 3c   ..8.....S.....-<
0010  9d 5c 7b 54 00 00 00 00 a3 13 05 00 8d ff ff ff   .\{T............
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  00 ac 38 c0 00 00 00 00 43 03 88 0a 01 00 2d 00   ..8.....C.....-.
0010  9d 5c 7b 54 00 00 00 00 07 14 05 00 00 00 00 00   .\{T............
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 e9 00 00 00 00 00 00 00 00            USBS.........

0000  80 ac 38 c0 00 00 00 00 53 03 05 0a 01 00 2d 00   ..8.....S.....-.
0010  9d 5c 7b 54 00 00 00 00 27 d0 0c 00 8d ff ff ff   .\{T....'.......
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 4e 01 00 00 08 00 00 00 80 00 0a 4a   USBCN..........J
0050  01 00 00 10 00 00 00 08 00 00 00 00 00 00 00      ...............

0000  80 ac 38 c0 00 00 00 00 43 03 05 0a 01 00 2d 3e   ..8.....C.....->
0010  9d 5c 7b 54 00 00 00 00 a4 d0 0c 00 00 00 00 00   .\{T............
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  80 ce 74 d7 00 00 00 00 53 03 87 0a 01 00 2d 3c   ..t.....S.....-<
0010  9d 5c 7b 54 00 00 00 00 b5 d0 0c 00 8d ff ff ff   .\{T............
0020  08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................

0000  80 ce 74 d7 00 00 00 00 43 03 87 0a 01 00 2d 00   ..t.....C.....-.
0010  9d 5c 7b 54 00 00 00 00 86 d1 0c 00 e0 ff ff ff   .\{T............
0020  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 53 02 00 0a 01 00 00 00   ..8.....S.......
0010  9d 5c 7b 54 00 00 00 00 93 d1 0c 00 8d ff ff ff   .\{T............
0020  00 00 00 00 00 00 00 00 02 01 00 00 87 00 00 00   ................
0030  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 43 02 00 0a 01 00 2d 3e   ..8.....C.....->
0010  9d 5c 7b 54 00 00 00 00 ec d4 0c 00 00 00 00 00   .\{T............
0020  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 53 03 87 0a 01 00 2d 3c   ..8.....S.....-<
0010  9d 5c 7b 54 00 00 00 00 fa d4 0c 00 8d ff ff ff   .\{T............
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 43 03 87 0a 01 00 2d 00   ..8.....C.....-.
0010  9d 5c 7b 54 00 00 00 00 69 d5 0c 00 00 00 00 00   .\{T....i.......
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 4e 01 00 00 08 00 00 00 01            USBSN........

0000  80 ac 38 c0 00 00 00 00 53 03 05 0a 01 00 2d 00   ..8.....S.....-.
0010  9d 5c 7b 54 00 00 00 00 76 d5 0c 00 8d ff ff ff   .\{T....v.......
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 4f 01 00 00 12 00 00 00 80 00 06 03   USBCO...........
0050  00 00 00 12 00 00 00 00 00 00 00 00 00 00 00      ...............

0000  80 ac 38 c0 00 00 00 00 43 03 05 0a 01 00 2d 3e   ..8.....C.....->
0010  9d 5c 7b 54 00 00 00 00 dd d5 0c 00 00 00 00 00   .\{T............
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  80 c5 74 d7 00 00 00 00 53 03 87 0a 01 00 2d 3c   ..t.....S.....-<
0010  9d 5c 7b 54 00 00 00 00 eb d5 0c 00 8d ff ff ff   .\{T............
0020  12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................

0000  80 c5 74 d7 00 00 00 00 43 03 87 0a 01 00 2d 00   ..t.....C.....-.
0010  9d 5c 7b 54 00 00 00 00 54 d7 0c 00 00 00 00 00   .\{T....T.......
0020  12 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................
0040  f0 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00   ............ ...
0050  00 00                                             ..

0000  80 ac 38 c0 00 00 00 00 53 03 87 0a 01 00 2d 3c   ..8.....S.....-<
0010  9d 5c 7b 54 00 00 00 00 61 d7 0c 00 8d ff ff ff   .\{T....a.......
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 43 03 87 0a 01 00 2d 00   ..8.....C.....-.
0010  9d 5c 7b 54 00 00 00 00 58 d8 0c 00 00 00 00 00   .\{T....X.......
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 4f 01 00 00 00 00 00 00 00            USBSO........

0000  80 e6 26 c0 00 00 00 00 43 03 84 0a 01 00 2d 00   ..&.....C.....-.
0010  9d 5c 7b 54 00 00 00 00 a8 b0 0d 00 00 00 00 00   .\{T............
0020  5a 00 00 00 5a 00 00 00 00 00 00 00 00 00 00 00   Z...Z...........
0030  00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00   ................
0040  4e 43 4d 48 0c 00 3b 00 5a 00 0c 00 4e 43 4d 30   NCMH..;.Z...NCM0
0050  10 00 00 00 1e 00 3c 00 00 00 00 00 00 00 ff ff   ......<.........
0060  ff ff ff ff 4c 54 99 45 e5 d5 08 06 00 01 08 00   ....LT.E........
0070  06 04 00 01 4c 54 99 45 e5 d5 0a 0c 9b da 00 00   ....LT.E........
0080  00 00 00 00 0a 0c 9b d9 00 00 00 00 00 00 00 00   ................
0090  00 00 00 00 00 00 00 00 00 00                     ..........

0000  80 e6 26 c0 00 00 00 00 53 03 84 0a 01 00 2d 3c   ..&.....S.....-<
0010  9d 5c 7b 54 00 00 00 00 b6 b0 0d 00 8d ff ff ff   .\{T............
0020  00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00   ................

0000  80 cb 26 c0 00 00 00 00 53 03 01 04 01 00 2d 00   ..&.....S.....-.
0010  9e 5c 7b 54 00 00 00 00 db 5d 05 00 8d ff ff ff   .\{T.....]......
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 6b 4a 00 00 00 00 00 00 00 00 06 00   USBCkJ..........
0050  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00      ...............

0000  80 cb 26 c0 00 00 00 00 43 03 01 04 01 00 2d 3e   ..&.....C.....->
0010  9e 5c 7b 54 00 00 00 00 4e 5e 05 00 00 00 00 00   .\{T....N^......
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  80 cb 26 c0 00 00 00 00 53 03 82 04 01 00 2d 3c   ..&.....S.....-<
0010  9e 5c 7b 54 00 00 00 00 b2 64 05 00 8d ff ff ff   .\{T.....d......
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  80 cb 26 c0 00 00 00 00 43 03 82 04 01 00 2d 00   ..&.....C.....-.
0010  9e 5c 7b 54 00 00 00 00 25 65 05 00 00 00 00 00   .\{T....%e......
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 6b 4a 00 00 00 00 00 00 00            USBSkJ.......

0000  00 ac 38 c0 00 00 00 00 53 03 06 0a 01 00 2d 00   ..8.....S.....-.
0010  9f 5c 7b 54 00 00 00 00 9b bb 05 00 8d ff ff ff   .\{T............
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 ea 00 00 00 00 00 00 00 00 00 06 00   USBC............
0050  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00      ...............

0000  00 ac 38 c0 00 00 00 00 43 03 06 0a 01 00 2d 3e   ..8.....C.....->
0010  9f 5c 7b 54 00 00 00 00 14 bc 05 00 00 00 00 00   .\{T............
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  00 ac 38 c0 00 00 00 00 53 03 88 0a 01 00 2d 3c   ..8.....S.....-<
0010  9f 5c 7b 54 00 00 00 00 21 bc 05 00 8d ff ff ff   .\{T....!.......
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  00 ac 38 c0 00 00 00 00 43 03 88 0a 01 00 2d 00   ..8.....C.....-.
0010  9f 5c 7b 54 00 00 00 00 80 bd 05 00 00 00 00 00   .\{T............
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 ea 00 00 00 00 00 00 00 01            USBS.........

0000  00 ac 38 c0 00 00 00 00 53 03 06 0a 01 00 2d 00   ..8.....S.....-.
0010  9f 5c 7b 54 00 00 00 00 8e bd 05 00 8d ff ff ff   .\{T............
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 eb 00 00 00 12 00 00 00 80 00 06 03   USBC............
0050  00 00 00 12 00 00 00 00 00 00 00 00 00 00 00      ...............

0000  00 ac 38 c0 00 00 00 00 43 03 06 0a 01 00 2d 3e   ..8.....C.....->
0010  9f 5c 7b 54 00 00 00 00 f8 bd 05 00 00 00 00 00   .\{T............
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  00 ca 74 d7 00 00 00 00 53 03 88 0a 01 00 2d 3c   ..t.....S.....-<
0010  9f 5c 7b 54 00 00 00 00 05 be 05 00 8d ff ff ff   .\{T............
0020  12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................

0000  00 ca 74 d7 00 00 00 00 43 03 88 0a 01 00 2d 00   ..t.....C.....-.
0010  9f 5c 7b 54 00 00 00 00 75 bf 05 00 00 00 00 00   .\{T....u.......
0020  12 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................
0040  f0 00 02 00 00 00 00 0a 00 00 00 00 3a 00 00 00   ............:...
0050  00 00                                             ..

0000  00 ac 38 c0 00 00 00 00 53 03 88 0a 01 00 2d 3c   ..8.....S.....-<
0010  9f 5c 7b 54 00 00 00 00 82 bf 05 00 8d ff ff ff   .\{T............
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  00 ac 38 c0 00 00 00 00 43 03 88 0a 01 00 2d 00   ..8.....C.....-.
0010  9f 5c 7b 54 00 00 00 00 ec bf 05 00 00 00 00 00   .\{T............
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 eb 00 00 00 00 00 00 00 00            USBS.........

0000  80 ac 38 c0 00 00 00 00 53 03 05 0a 01 00 2d 00   ..8.....S.....-.
0010  9f 5c 7b 54 00 00 00 00 ad 8b 0d 00 8d ff ff ff   .\{T............
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 50 01 00 00 08 00 00 00 80 00 0a 4a   USBCP..........J
0050  01 00 00 10 00 00 00 08 00 00 00 00 00 00 00      ...............

0000  80 ac 38 c0 00 00 00 00 43 03 05 0a 01 00 2d 3e   ..8.....C.....->
0010  9f 5c 7b 54 00 00 00 00 0d 8c 0d 00 00 00 00 00   .\{T............
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  00 ca 74 d7 00 00 00 00 53 03 87 0a 01 00 2d 3c   ..t.....S.....-<
0010  9f 5c 7b 54 00 00 00 00 20 8c 0d 00 8d ff ff ff   .\{T.... .......
0020  08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................

0000  00 ca 74 d7 00 00 00 00 43 03 87 0a 01 00 2d 00   ..t.....C.....-.
0010  9f 5c 7b 54 00 00 00 00 fd 8c 0d 00 e0 ff ff ff   .\{T............
0020  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 53 02 00 0a 01 00 00 00   ..8.....S.......
0010  9f 5c 7b 54 00 00 00 00 0d 8d 0d 00 8d ff ff ff   .\{T............
0020  00 00 00 00 00 00 00 00 02 01 00 00 87 00 00 00   ................
0030  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 43 02 00 0a 01 00 2d 3e   ..8.....C.....->
0010  9f 5c 7b 54 00 00 00 00 66 90 0d 00 00 00 00 00   .\{T....f.......
0020  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 53 03 87 0a 01 00 2d 3c   ..8.....S.....-<
0010  9f 5c 7b 54 00 00 00 00 20 91 0d 00 8d ff ff ff   .\{T.... .......
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 43 03 87 0a 01 00 2d 00   ..8.....C.....-.
0010  9f 5c 7b 54 00 00 00 00 6b 91 0d 00 00 00 00 00   .\{T....k.......
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 50 01 00 00 08 00 00 00 01            USBSP........

0000  80 ac 38 c0 00 00 00 00 53 03 05 0a 01 00 2d 00   ..8.....S.....-.
0010  9f 5c 7b 54 00 00 00 00 7a 91 0d 00 8d ff ff ff   .\{T....z.......
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 51 01 00 00 12 00 00 00 80 00 06 03   USBCQ...........
0050  00 00 00 12 00 00 00 00 00 00 00 00 00 00 00      ...............

0000  80 ac 38 c0 00 00 00 00 43 03 05 0a 01 00 2d 3e   ..8.....C.....->
0010  9f 5c 7b 54 00 00 00 00 e2 91 0d 00 00 00 00 00   .\{T............
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  80 c7 74 d7 00 00 00 00 53 03 87 0a 01 00 2d 3c   ..t.....S.....-<
0010  9f 5c 7b 54 00 00 00 00 f0 91 0d 00 8d ff ff ff   .\{T............
0020  12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................

0000  80 c7 74 d7 00 00 00 00 43 03 87 0a 01 00 2d 00   ..t.....C.....-.
0010  9f 5c 7b 54 00 00 00 00 5a 93 0d 00 00 00 00 00   .\{T....Z.......
0020  12 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................
0040  f0 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00   ............ ...
0050  00 00                                             ..

0000  80 ac 38 c0 00 00 00 00 53 03 87 0a 01 00 2d 3c   ..8.....S.....-<
0010  9f 5c 7b 54 00 00 00 00 69 93 0d 00 8d ff ff ff   .\{T....i.......
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 43 03 87 0a 01 00 2d 00   ..8.....C.....-.
0010  9f 5c 7b 54 00 00 00 00 51 94 0d 00 00 00 00 00   .\{T....Q.......
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 51 01 00 00 00 00 00 00 00            USBSQ........

0000  80 cb 26 c0 00 00 00 00 53 03 01 04 01 00 2d 00   ..&.....S.....-.
0010  a0 5c 7b 54 00 00 00 00 5a 19 06 00 8d ff ff ff   .\{T....Z.......
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 6c 4a 00 00 00 00 00 00 00 00 06 00   USBClJ..........
0050  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00      ...............

0000  80 cb 26 c0 00 00 00 00 43 03 01 04 01 00 2d 3e   ..&.....C.....->
0010  a0 5c 7b 54 00 00 00 00 d2 19 06 00 00 00 00 00   .\{T............
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  80 cb 26 c0 00 00 00 00 53 03 82 04 01 00 2d 3c   ..&.....S.....-<
0010  a0 5c 7b 54 00 00 00 00 e0 19 06 00 8d ff ff ff   .\{T............
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  80 cb 26 c0 00 00 00 00 43 03 82 04 01 00 2d 00   ..&.....C.....-.
0010  a0 5c 7b 54 00 00 00 00 43 1a 06 00 00 00 00 00   .\{T....C.......
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 6c 4a 00 00 00 00 00 00 00            USBSlJ.......

0000  80 ca 26 c0 00 00 00 00 43 03 84 0a 01 00 2d 00   ..&.....C.....-.
0010  a0 5c 7b 54 00 00 00 00 9f c7 0d 00 00 00 00 00   .\{T............
0020  5a 00 00 00 5a 00 00 00 00 00 00 00 00 00 00 00   Z...Z...........
0030  00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00   ................
0040  4e 43 4d 48 0c 00 3c 00 5a 00 0c 00 4e 43 4d 30   NCMH..<.Z...NCM0
0050  10 00 00 00 1e 00 3c 00 00 00 00 00 00 00 ff ff   ......<.........
0060  ff ff ff ff 4c 54 99 45 e5 d5 08 06 00 01 08 00   ....LT.E........
0070  06 04 00 01 4c 54 99 45 e5 d5 0a 0c 9b da 00 00   ....LT.E........
0080  00 00 00 00 0a 0c 9b d9 00 00 00 00 00 00 00 00   ................
0090  00 00 00 00 00 00 00 00 00 00                     ..........

0000  80 ca 26 c0 00 00 00 00 53 03 84 0a 01 00 2d 3c   ..&.....S.....-<
0010  a0 5c 7b 54 00 00 00 00 b6 c7 0d 00 8d ff ff ff   .\{T............
0020  00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00   ................

0000  00 ac 38 c0 00 00 00 00 53 03 06 0a 01 00 2d 00   ..8.....S.....-.
0010  a1 5c 7b 54 00 00 00 00 15 77 06 00 8d ff ff ff   .\{T.....w......
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 ec 00 00 00 00 00 00 00 00 00 06 00   USBC............
0050  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00      ...............

0000  00 ac 38 c0 00 00 00 00 43 03 06 0a 01 00 2d 3e   ..8.....C.....->
0010  a1 5c 7b 54 00 00 00 00 90 77 06 00 00 00 00 00   .\{T.....w......
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  00 ac 38 c0 00 00 00 00 53 03 88 0a 01 00 2d 3c   ..8.....S.....-<
0010  a1 5c 7b 54 00 00 00 00 9d 77 06 00 8d ff ff ff   .\{T.....w......
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  00 ac 38 c0 00 00 00 00 43 03 88 0a 01 00 2d 00   ..8.....C.....-.
0010  a1 5c 7b 54 00 00 00 00 ff 78 06 00 00 00 00 00   .\{T.....x......
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 ec 00 00 00 00 00 00 00 01            USBS.........

0000  00 ac 38 c0 00 00 00 00 53 03 06 0a 01 00 2d 00   ..8.....S.....-.
0010  a1 5c 7b 54 00 00 00 00 0d 79 06 00 8d ff ff ff   .\{T.....y......
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 ed 00 00 00 12 00 00 00 80 00 06 03   USBC............
0050  00 00 00 12 00 00 00 00 00 00 00 00 00 00 00      ...............

0000  00 ac 38 c0 00 00 00 00 43 03 06 0a 01 00 2d 3e   ..8.....C.....->
0010  a1 5c 7b 54 00 00 00 00 78 79 06 00 00 00 00 00   .\{T....xy......
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  80 c7 74 d7 00 00 00 00 53 03 88 0a 01 00 2d 3c   ..t.....S.....-<
0010  a1 5c 7b 54 00 00 00 00 84 79 06 00 8d ff ff ff   .\{T.....y......
0020  12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................

0000  80 c7 74 d7 00 00 00 00 43 03 88 0a 01 00 2d 00   ..t.....C.....-.
0010  a1 5c 7b 54 00 00 00 00 76 7a 06 00 00 00 00 00   .\{T....vz......
0020  12 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................
0040  f0 00 02 00 00 00 00 0a 00 00 00 00 3a 00 00 00   ............:...
0050  00 00                                             ..

0000  00 ac 38 c0 00 00 00 00 53 03 88 0a 01 00 2d 3c   ..8.....S.....-<
0010  a1 5c 7b 54 00 00 00 00 82 7a 06 00 8d ff ff ff   .\{T.....z......
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  00 ac 38 c0 00 00 00 00 43 03 88 0a 01 00 2d 00   ..8.....C.....-.
0010  a1 5c 7b 54 00 00 00 00 6a 7b 06 00 00 00 00 00   .\{T....j{......
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 ed 00 00 00 00 00 00 00 00            USBS.........

0000  80 ac 38 c0 00 00 00 00 53 03 05 0a 01 00 2d 00   ..8.....S.....-.
0010  a1 5c 7b 54 00 00 00 00 2c 47 0e 00 8d ff ff ff   .\{T....,G......
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 52 01 00 00 08 00 00 00 80 00 0a 4a   USBCR..........J
0050  01 00 00 10 00 00 00 08 00 00 00 00 00 00 00      ...............

0000  80 ac 38 c0 00 00 00 00 43 03 05 0a 01 00 2d 3e   ..8.....C.....->
0010  a1 5c 7b 54 00 00 00 00 97 47 0e 00 00 00 00 00   .\{T.....G......
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  80 c7 74 d7 00 00 00 00 53 03 87 0a 01 00 2d 3c   ..t.....S.....-<
0010  a1 5c 7b 54 00 00 00 00 a8 47 0e 00 8d ff ff ff   .\{T.....G......
0020  08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................

0000  80 c7 74 d7 00 00 00 00 43 03 87 0a 01 00 2d 00   ..t.....C.....-.
0010  a1 5c 7b 54 00 00 00 00 86 48 0e 00 e0 ff ff ff   .\{T.....H......
0020  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 53 02 00 0a 01 00 00 00   ..8.....S.......
0010  a1 5c 7b 54 00 00 00 00 93 48 0e 00 8d ff ff ff   .\{T.....H......
0020  00 00 00 00 00 00 00 00 02 01 00 00 87 00 00 00   ................
0030  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 43 02 00 0a 01 00 2d 3e   ..8.....C.....->
0010  a1 5c 7b 54 00 00 00 00 ed 4b 0e 00 00 00 00 00   .\{T.....K......
0020  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 53 03 87 0a 01 00 2d 3c   ..8.....S.....-<
0010  a1 5c 7b 54 00 00 00 00 fa 4b 0e 00 8d ff ff ff   .\{T.....K......
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 43 03 87 0a 01 00 2d 00   ..8.....C.....-.
0010  a1 5c 7b 54 00 00 00 00 6a 4c 0e 00 00 00 00 00   .\{T....jL......
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 52 01 00 00 08 00 00 00 01            USBSR........

0000  80 ac 38 c0 00 00 00 00 53 03 05 0a 01 00 2d 00   ..8.....S.....-.
0010  a1 5c 7b 54 00 00 00 00 78 4c 0e 00 8d ff ff ff   .\{T....xL......
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 53 01 00 00 12 00 00 00 80 00 06 03   USBCS...........
0050  00 00 00 12 00 00 00 00 00 00 00 00 00 00 00      ...............

0000  80 ac 38 c0 00 00 00 00 43 03 05 0a 01 00 2d 3e   ..8.....C.....->
0010  a1 5c 7b 54 00 00 00 00 de 4c 0e 00 00 00 00 00   .\{T.....L......
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  80 c7 74 d7 00 00 00 00 53 03 87 0a 01 00 2d 3c   ..t.....S.....-<
0010  a1 5c 7b 54 00 00 00 00 ec 4c 0e 00 8d ff ff ff   .\{T.....L......
0020  12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................

0000  80 c7 74 d7 00 00 00 00 43 03 87 0a 01 00 2d 00   ..t.....C.....-.
0010  a1 5c 7b 54 00 00 00 00 dd 4e 0e 00 00 00 00 00   .\{T.....N......
0020  12 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................
0040  f0 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00   ............ ...
0050  00 00                                             ..

0000  80 ac 38 c0 00 00 00 00 53 03 87 0a 01 00 2d 3c   ..8.....S.....-<
0010  a1 5c 7b 54 00 00 00 00 e9 4e 0e 00 8d ff ff ff   .\{T.....N......
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 43 03 87 0a 01 00 2d 00   ..8.....C.....-.
0010  a1 5c 7b 54 00 00 00 00 54 4f 0e 00 00 00 00 00   .\{T....TO......
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 53 01 00 00 00 00 00 00 00            USBSS........

0000  80 cb 26 c0 00 00 00 00 53 03 01 04 01 00 2d 00   ..&.....S.....-.
0010  a2 5c 7b 54 00 00 00 00 d7 d4 06 00 8d ff ff ff   .\{T............
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 6d 4a 00 00 00 00 00 00 00 00 06 00   USBCmJ..........
0050  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00      ...............

0000  80 cb 26 c0 00 00 00 00 43 03 01 04 01 00 2d 3e   ..&.....C.....->
0010  a2 5c 7b 54 00 00 00 00 55 d5 06 00 00 00 00 00   .\{T....U.......
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  80 cb 26 c0 00 00 00 00 53 03 82 04 01 00 2d 3c   ..&.....S.....-<
0010  a2 5c 7b 54 00 00 00 00 66 d5 06 00 8d ff ff ff   .\{T....f.......
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  80 cb 26 c0 00 00 00 00 43 03 82 04 01 00 2d 00   ..&.....C.....-.
0010  a2 5c 7b 54 00 00 00 00 c2 d5 06 00 00 00 00 00   .\{T............
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 6d 4a 00 00 00 00 00 00 00            USBSmJ.......

0000  00 ac 38 c0 00 00 00 00 53 03 06 0a 01 00 2d 00   ..8.....S.....-.
0010  a3 5c 7b 54 00 00 00 00 9a 32 07 00 8d ff ff ff   .\{T.....2......
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 ee 00 00 00 00 00 00 00 00 00 06 00   USBC............
0050  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00      ...............

0000  00 ac 38 c0 00 00 00 00 43 03 06 0a 01 00 2d 3e   ..8.....C.....->
0010  a3 5c 7b 54 00 00 00 00 14 33 07 00 00 00 00 00   .\{T.....3......
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  00 ac 38 c0 00 00 00 00 53 03 88 0a 01 00 2d 3c   ..8.....S.....-<
0010  a3 5c 7b 54 00 00 00 00 22 33 07 00 8d ff ff ff   .\{T...."3......
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  00 ac 38 c0 00 00 00 00 43 03 88 0a 01 00 2d 00   ..8.....C.....-.
0010  a3 5c 7b 54 00 00 00 00 7f 34 07 00 00 00 00 00   .\{T.....4......
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 ee 00 00 00 00 00 00 00 01            USBS.........

0000  00 ac 38 c0 00 00 00 00 53 03 06 0a 01 00 2d 00   ..8.....S.....-.
0010  a3 5c 7b 54 00 00 00 00 8d 34 07 00 8d ff ff ff   .\{T.....4......
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 ef 00 00 00 12 00 00 00 80 00 06 03   USBC............
0050  00 00 00 12 00 00 00 00 00 00 00 00 00 00 00      ...............

0000  00 ac 38 c0 00 00 00 00 43 03 06 0a 01 00 2d 3e   ..8.....C.....->
0010  a3 5c 7b 54 00 00 00 00 f9 34 07 00 00 00 00 00   .\{T.....4......
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  80 c7 74 d7 00 00 00 00 53 03 88 0a 01 00 2d 3c   ..t.....S.....-<
0010  a3 5c 7b 54 00 00 00 00 07 35 07 00 8d ff ff ff   .\{T.....5......
0020  12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................

0000  80 c7 74 d7 00 00 00 00 43 03 88 0a 01 00 2d 00   ..t.....C.....-.
0010  a3 5c 7b 54 00 00 00 00 70 36 07 00 00 00 00 00   .\{T....p6......
0020  12 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................
0040  f0 00 02 00 00 00 00 0a 00 00 00 00 3a 00 00 00   ............:...
0050  00 00                                             ..

0000  00 ac 38 c0 00 00 00 00 53 03 88 0a 01 00 2d 3c   ..8.....S.....-<
0010  a3 5c 7b 54 00 00 00 00 7e 36 07 00 8d ff ff ff   .\{T....~6......
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  00 ac 38 c0 00 00 00 00 43 03 88 0a 01 00 2d 00   ..8.....C.....-.
0010  a3 5c 7b 54 00 00 00 00 ed 36 07 00 00 00 00 00   .\{T.....6......
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 ef 00 00 00 00 00 00 00 00            USBS.........

0000  80 c0 26 c0 00 00 00 00 43 03 84 0a 01 00 2d 00   ..&.....C.....-.
0010  a3 5c 7b 54 00 00 00 00 14 df 0d 00 00 00 00 00   .\{T............
0020  5a 00 00 00 5a 00 00 00 00 00 00 00 00 00 00 00   Z...Z...........
0030  00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00   ................
0040  4e 43 4d 48 0c 00 3d 00 5a 00 0c 00 4e 43 4d 30   NCMH..=.Z...NCM0
0050  10 00 00 00 1e 00 3c 00 00 00 00 00 00 00 ff ff   ......<.........
0060  ff ff ff ff 4c 54 99 45 e5 d5 08 06 00 01 08 00   ....LT.E........
0070  06 04 00 01 4c 54 99 45 e5 d5 0a 0c 9b da 00 00   ....LT.E........
0080  00 00 00 00 0a 0c 9b d9 00 00 00 00 00 00 00 00   ................
0090  00 00 00 00 00 00 00 00 00 00                     ..........

0000  80 c0 26 c0 00 00 00 00 53 03 84 0a 01 00 2d 3c   ..&.....S.....-<
0010  a3 5c 7b 54 00 00 00 00 25 df 0d 00 8d ff ff ff   .\{T....%.......
0020  00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 53 03 05 0a 01 00 2d 00   ..8.....S.....-.
0010  a3 5c 7b 54 00 00 00 00 9f 02 0f 00 8d ff ff ff   .\{T............
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 54 01 00 00 08 00 00 00 80 00 0a 4a   USBCT..........J
0050  01 00 00 10 00 00 00 08 00 00 00 00 00 00 00      ...............

0000  80 ac 38 c0 00 00 00 00 43 03 05 0a 01 00 2d 3e   ..8.....C.....->
0010  a3 5c 7b 54 00 00 00 00 0a 03 0f 00 00 00 00 00   .\{T............
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  80 c7 74 d7 00 00 00 00 53 03 87 0a 01 00 2d 3c   ..t.....S.....-<
0010  a3 5c 7b 54 00 00 00 00 69 07 0f 00 8d ff ff ff   .\{T....i.......
0020  08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................

0000  80 c7 74 d7 00 00 00 00 43 03 87 0a 01 00 2d 00   ..t.....C.....-.
0010  a3 5c 7b 54 00 00 00 00 f2 07 0f 00 e0 ff ff ff   .\{T............
0020  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 53 02 00 0a 01 00 00 00   ..8.....S.......
0010  a3 5c 7b 54 00 00 00 00 60 17 0f 00 8d ff ff ff   .\{T....`.......
0020  00 00 00 00 00 00 00 00 02 01 00 00 87 00 00 00   ................
0030  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 43 02 00 0a 01 00 2d 3e   ..8.....C.....->
0010  a3 5c 7b 54 00 00 00 00 7f 1a 0f 00 00 00 00 00   .\{T............
0020  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 53 03 87 0a 01 00 2d 3c   ..8.....S.....-<
0010  a3 5c 7b 54 00 00 00 00 97 1a 0f 00 8d ff ff ff   .\{T............
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 43 03 87 0a 01 00 2d 00   ..8.....C.....-.
0010  a3 5c 7b 54 00 00 00 00 ef 1a 0f 00 00 00 00 00   .\{T............
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 54 01 00 00 08 00 00 00 01            USBST........

0000  80 ac 38 c0 00 00 00 00 53 03 05 0a 01 00 2d 00   ..8.....S.....-.
0010  a3 5c 7b 54 00 00 00 00 00 1b 0f 00 8d ff ff ff   .\{T............
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 55 01 00 00 12 00 00 00 80 00 06 03   USBCU...........
0050  00 00 00 12 00 00 00 00 00 00 00 00 00 00 00      ...............

0000  80 ac 38 c0 00 00 00 00 43 03 05 0a 01 00 2d 3e   ..8.....C.....->
0010  a3 5c 7b 54 00 00 00 00 6a 1b 0f 00 00 00 00 00   .\{T....j.......
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  00 c0 74 d7 00 00 00 00 53 03 87 0a 01 00 2d 3c   ..t.....S.....-<
0010  a3 5c 7b 54 00 00 00 00 77 1b 0f 00 8d ff ff ff   .\{T....w.......
0020  12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................

0000  00 c0 74 d7 00 00 00 00 43 03 87 0a 01 00 2d 00   ..t.....C.....-.
0010  a3 5c 7b 54 00 00 00 00 e3 1c 0f 00 00 00 00 00   .\{T............
0020  12 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................
0040  f0 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00   ............ ...
0050  00 00                                             ..

0000  80 ac 38 c0 00 00 00 00 53 03 87 0a 01 00 2d 3c   ..8.....S.....-<
0010  a3 5c 7b 54 00 00 00 00 f1 1c 0f 00 8d ff ff ff   .\{T............
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 43 03 87 0a 01 00 2d 00   ..8.....C.....-.
0010  a3 5c 7b 54 00 00 00 00 de 1d 0f 00 00 00 00 00   .\{T............
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 55 01 00 00 00 00 00 00 00            USBSU........

0000  80 cb 26 c0 00 00 00 00 53 03 01 04 01 00 2d 00   ..&.....S.....-.
0010  a4 5c 7b 54 00 00 00 00 7e 93 07 00 8d ff ff ff   .\{T....~.......
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 6e 4a 00 00 00 00 00 00 00 00 06 00   USBCnJ..........
0050  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00      ...............

0000  80 cb 26 c0 00 00 00 00 43 03 01 04 01 00 2d 3e   ..&.....C.....->
0010  a4 5c 7b 54 00 00 00 00 be 93 07 00 00 00 00 00   .\{T............
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  80 cb 26 c0 00 00 00 00 53 03 82 04 01 00 2d 3c   ..&.....S.....-<
0010  a4 5c 7b 54 00 00 00 00 ca 93 07 00 8d ff ff ff   .\{T............
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  80 cb 26 c0 00 00 00 00 43 03 82 04 01 00 2d 00   ..&.....C.....-.
0010  a4 5c 7b 54 00 00 00 00 2a 94 07 00 00 00 00 00   .\{T....*.......
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 6e 4a 00 00 00 00 00 00 00            USBSnJ.......

0000  80 fc 09 de 00 00 00 00 43 01 81 05 01 00 2d 00   ........C.....-.
0010  a5 5c 7b 54 00 00 00 00 c1 12 01 00 00 00 00 00   .\{T............
0020  08 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00   ................
0030  08 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  01 00 00 00 00 00 00 00                           ........

0000  80 fc 09 de 00 00 00 00 53 01 81 05 01 00 2d 3c   ........S.....-<
0010  a5 5c 7b 54 00 00 00 00 fd 12 01 00 8d ff ff ff   .\{T............
0020  08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  08 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  00 ac 38 c0 00 00 00 00 53 03 06 0a 01 00 2d 00   ..8.....S.....-.
0010  a5 5c 7b 54 00 00 00 00 35 f5 07 00 8d ff ff ff   .\{T....5.......
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 f0 00 00 00 00 00 00 00 00 00 06 00   USBC............
0050  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00      ...............

0000  00 ac 38 c0 00 00 00 00 43 03 06 0a 01 00 2d 3e   ..8.....C.....->
0010  a5 5c 7b 54 00 00 00 00 e2 f5 07 00 00 00 00 00   .\{T............
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  00 ac 38 c0 00 00 00 00 53 03 88 0a 01 00 2d 3c   ..8.....S.....-<
0010  a5 5c 7b 54 00 00 00 00 cd f7 07 00 8d ff ff ff   .\{T............
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  00 ac 38 c0 00 00 00 00 43 03 88 0a 01 00 2d 00   ..8.....C.....-.
0010  a5 5c 7b 54 00 00 00 00 4e f8 07 00 00 00 00 00   .\{T....N.......
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 f0 00 00 00 00 00 00 00 01            USBS.........

0000  00 ac 38 c0 00 00 00 00 53 03 06 0a 01 00 2d 00   ..8.....S.....-.
0010  a5 5c 7b 54 00 00 00 00 72 f8 07 00 8d ff ff ff   .\{T....r.......
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 f1 00 00 00 12 00 00 00 80 00 06 03   USBC............
0050  00 00 00 12 00 00 00 00 00 00 00 00 00 00 00      ...............

0000  00 ac 38 c0 00 00 00 00 43 03 06 0a 01 00 2d 3e   ..8.....C.....->
0010  a5 5c 7b 54 00 00 00 00 c4 f8 07 00 00 00 00 00   .\{T............
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  00 c0 74 d7 00 00 00 00 53 03 88 0a 01 00 2d 3c   ..t.....S.....-<
0010  a5 5c 7b 54 00 00 00 00 e7 f8 07 00 8d ff ff ff   .\{T............
0020  12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................

0000  00 c0 74 d7 00 00 00 00 43 03 88 0a 01 00 2d 00   ..t.....C.....-.
0010  a5 5c 7b 54 00 00 00 00 3f fa 07 00 00 00 00 00   .\{T....?.......
0020  12 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................
0040  f0 00 02 00 00 00 00 0a 00 00 00 00 3a 00 00 00   ............:...
0050  00 00                                             ..

0000  00 ac 38 c0 00 00 00 00 53 03 88 0a 01 00 2d 3c   ..8.....S.....-<
0010  a5 5c 7b 54 00 00 00 00 56 fa 07 00 8d ff ff ff   .\{T....V.......
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  00 ac 38 c0 00 00 00 00 43 03 88 0a 01 00 2d 00   ..8.....C.....-.
0010  a5 5c 7b 54 00 00 00 00 bf fa 07 00 00 00 00 00   .\{T............
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 f1 00 00 00 00 00 00 00 00            USBS.........

0000  80 ac 38 c0 00 00 00 00 53 03 05 0a 01 00 2d 00   ..8.....S.....-.
0010  a6 5c 7b 54 00 00 00 00 61 8a 00 00 8d ff ff ff   .\{T....a.......
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 56 01 00 00 08 00 00 00 80 00 0a 4a   USBCV..........J
0050  01 00 00 10 00 00 00 08 00 00 00 00 00 00 00      ...............

0000  80 ac 38 c0 00 00 00 00 43 03 05 0a 01 00 2d 3e   ..8.....C.....->
0010  a6 5c 7b 54 00 00 00 00 f7 8a 00 00 00 00 00 00   .\{T............
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  00 c0 74 d7 00 00 00 00 53 03 87 0a 01 00 2d 3c   ..t.....S.....-<
0010  a6 5c 7b 54 00 00 00 00 1d 8b 00 00 8d ff ff ff   .\{T............
0020  08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................

0000  00 c0 74 d7 00 00 00 00 43 03 87 0a 01 00 2d 00   ..t.....C.....-.
0010  a6 5c 7b 54 00 00 00 00 65 8b 00 00 e0 ff ff ff   .\{T....e.......
0020  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 53 02 00 0a 01 00 00 00   ..8.....S.......
0010  a6 5c 7b 54 00 00 00 00 86 8b 00 00 8d ff ff ff   .\{T............
0020  00 00 00 00 00 00 00 00 02 01 00 00 87 00 00 00   ................
0030  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 43 02 00 0a 01 00 2d 3e   ..8.....C.....->
0010  a6 5c 7b 54 00 00 00 00 d3 8e 00 00 00 00 00 00   .\{T............
0020  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 53 03 87 0a 01 00 2d 3c   ..8.....S.....-<
0010  a6 5c 7b 54 00 00 00 00 e4 8e 00 00 8d ff ff ff   .\{T............
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 43 03 87 0a 01 00 2d 00   ..8.....C.....-.
0010  a6 5c 7b 54 00 00 00 00 55 8f 00 00 00 00 00 00   .\{T....U.......
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 56 01 00 00 08 00 00 00 01            USBSV........

0000  80 ac 38 c0 00 00 00 00 53 03 05 0a 01 00 2d 00   ..8.....S.....-.
0010  a6 5c 7b 54 00 00 00 00 64 8f 00 00 8d ff ff ff   .\{T....d.......
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 57 01 00 00 12 00 00 00 80 00 06 03   USBCW...........
0050  00 00 00 12 00 00 00 00 00 00 00 00 00 00 00      ...............

0000  80 ac 38 c0 00 00 00 00 43 03 05 0a 01 00 2d 3e   ..8.....C.....->
0010  a6 5c 7b 54 00 00 00 00 ce 8f 00 00 00 00 00 00   .\{T............
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  80 c7 74 d7 00 00 00 00 53 03 87 0a 01 00 2d 3c   ..t.....S.....-<
0010  a6 5c 7b 54 00 00 00 00 d9 8f 00 00 8d ff ff ff   .\{T............
0020  12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................

0000  80 c7 74 d7 00 00 00 00 43 03 87 0a 01 00 2d 00   ..t.....C.....-.
0010  a6 5c 7b 54 00 00 00 00 48 91 00 00 00 00 00 00   .\{T....H.......
0020  12 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................
0040  f0 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00   ............ ...
0050  00 00                                             ..

0000  80 ac 38 c0 00 00 00 00 53 03 87 0a 01 00 2d 3c   ..8.....S.....-<
0010  a6 5c 7b 54 00 00 00 00 53 91 00 00 8d ff ff ff   .\{T....S.......
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 43 03 87 0a 01 00 2d 00   ..8.....C.....-.
0010  a6 5c 7b 54 00 00 00 00 3d 92 00 00 00 00 00 00   .\{T....=.......
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 57 01 00 00 00 00 00 00 00            USBSW........

0000  80 cb 26 c0 00 00 00 00 53 03 01 04 01 00 2d 00   ..&.....S.....-.
0010  a6 5c 7b 54 00 00 00 00 d1 4b 08 00 8d ff ff ff   .\{T.....K......
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 6f 4a 00 00 00 00 00 00 00 00 06 00   USBCoJ..........
0050  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00      ...............

0000  80 cb 26 c0 00 00 00 00 43 03 01 04 01 00 2d 3e   ..&.....C.....->
0010  a6 5c 7b 54 00 00 00 00 5c 4c 08 00 00 00 00 00   .\{T....\L......
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  80 cb 26 c0 00 00 00 00 53 03 82 04 01 00 2d 3c   ..&.....S.....-<
0010  a6 5c 7b 54 00 00 00 00 6d 4c 08 00 8d ff ff ff   .\{T....mL......
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  80 cb 26 c0 00 00 00 00 43 03 82 04 01 00 2d 00   ..&.....C.....-.
0010  a6 5c 7b 54 00 00 00 00 c3 4c 08 00 00 00 00 00   .\{T.....L......
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 6f 4a 00 00 00 00 00 00 00            USBSoJ.......

0000  80 cc 26 c0 00 00 00 00 43 03 84 0a 01 00 2d 00   ..&.....C.....-.
0010  a6 5c 7b 54 00 00 00 00 09 f6 0d 00 00 00 00 00   .\{T............
0020  5a 00 00 00 5a 00 00 00 00 00 00 00 00 00 00 00   Z...Z...........
0030  00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00   ................
0040  4e 43 4d 48 0c 00 3e 00 5a 00 0c 00 4e 43 4d 30   NCMH..>.Z...NCM0
0050  10 00 00 00 1e 00 3c 00 00 00 00 00 00 00 ff ff   ......<.........
0060  ff ff ff ff 4c 54 99 45 e5 d5 08 06 00 01 08 00   ....LT.E........
0070  06 04 00 01 4c 54 99 45 e5 d5 0a 0c 9b da 00 00   ....LT.E........
0080  00 00 00 00 0a 0c 9b d9 00 00 00 00 00 00 00 00   ................
0090  00 00 00 00 00 00 00 00 00 00                     ..........

0000  80 cc 26 c0 00 00 00 00 53 03 84 0a 01 00 2d 3c   ..&.....S.....-<
0010  a6 5c 7b 54 00 00 00 00 1b f6 0d 00 8d ff ff ff   .\{T............
0020  00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00   ................

0000  00 ac 38 c0 00 00 00 00 53 03 06 0a 01 00 2d 00   ..8.....S.....-.
0010  a7 5c 7b 54 00 00 00 00 89 a9 08 00 8d ff ff ff   .\{T............
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 f2 00 00 00 00 00 00 00 00 00 06 00   USBC............
0050  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00      ...............

0000  00 ac 38 c0 00 00 00 00 43 03 06 0a 01 00 2d 3e   ..8.....C.....->
0010  a7 5c 7b 54 00 00 00 00 18 aa 08 00 00 00 00 00   .\{T............
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  00 ac 38 c0 00 00 00 00 53 03 88 0a 01 00 2d 3c   ..8.....S.....-<
0010  a7 5c 7b 54 00 00 00 00 25 aa 08 00 8d ff ff ff   .\{T....%.......
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  00 ac 38 c0 00 00 00 00 43 03 88 0a 01 00 2d 00   ..8.....C.....-.
0010  a7 5c 7b 54 00 00 00 00 7f ab 08 00 00 00 00 00   .\{T............
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 f2 00 00 00 00 00 00 00 01            USBS.........

0000  00 ac 38 c0 00 00 00 00 53 03 06 0a 01 00 2d 00   ..8.....S.....-.
0010  a7 5c 7b 54 00 00 00 00 8d ab 08 00 8d ff ff ff   .\{T............
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 f3 00 00 00 12 00 00 00 80 00 06 03   USBC............
0050  00 00 00 12 00 00 00 00 00 00 00 00 00 00 00      ...............

0000  00 ac 38 c0 00 00 00 00 43 03 06 0a 01 00 2d 3e   ..8.....C.....->
0010  a7 5c 7b 54 00 00 00 00 fb ab 08 00 00 00 00 00   .\{T............
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  00 c0 74 d7 00 00 00 00 53 03 88 0a 01 00 2d 3c   ..t.....S.....-<
0010  a7 5c 7b 54 00 00 00 00 07 ac 08 00 8d ff ff ff   .\{T............
0020  12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................

0000  00 c0 74 d7 00 00 00 00 43 03 88 0a 01 00 2d 00   ..t.....C.....-.
0010  a7 5c 7b 54 00 00 00 00 f6 ac 08 00 00 00 00 00   .\{T............
0020  12 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................
0040  f0 00 02 00 00 00 00 0a 00 00 00 00 3a 00 00 00   ............:...
0050  00 00                                             ..

0000  00 ac 38 c0 00 00 00 00 53 03 88 0a 01 00 2d 3c   ..8.....S.....-<
0010  a7 5c 7b 54 00 00 00 00 02 ad 08 00 8d ff ff ff   .\{T............
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  00 ac 38 c0 00 00 00 00 43 03 88 0a 01 00 2d 00   ..8.....C.....-.
0010  a7 5c 7b 54 00 00 00 00 f4 ad 08 00 00 00 00 00   .\{T............
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 f3 00 00 00 00 00 00 00 00            USBS.........

0000  80 ac 38 c0 00 00 00 00 53 03 05 0a 01 00 2d 00   ..8.....S.....-.
0010  a8 5c 7b 54 00 00 00 00 67 37 01 00 8d ff ff ff   .\{T....g7......
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 58 01 00 00 08 00 00 00 80 00 0a 4a   USBCX..........J
0050  01 00 00 10 00 00 00 08 00 00 00 00 00 00 00      ...............

0000  80 ac 38 c0 00 00 00 00 43 03 05 0a 01 00 2d 3e   ..8.....C.....->
0010  a8 5c 7b 54 00 00 00 00 d6 37 01 00 00 00 00 00   .\{T.....7......
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  00 c0 74 d7 00 00 00 00 53 03 87 0a 01 00 2d 3c   ..t.....S.....-<
0010  a8 5c 7b 54 00 00 00 00 e8 37 01 00 8d ff ff ff   .\{T.....7......
0020  08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................

0000  00 c0 74 d7 00 00 00 00 43 03 87 0a 01 00 2d 00   ..t.....C.....-.
0010  a8 5c 7b 54 00 00 00 00 c6 38 01 00 e0 ff ff ff   .\{T.....8......
0020  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 53 02 00 0a 01 00 00 00   ..8.....S.......
0010  a8 5c 7b 54 00 00 00 00 d2 38 01 00 8d ff ff ff   .\{T.....8......
0020  00 00 00 00 00 00 00 00 02 01 00 00 87 00 00 00   ................
0030  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 43 02 00 0a 01 00 2d 3e   ..8.....C.....->
0010  a8 5c 7b 54 00 00 00 00 30 3c 01 00 00 00 00 00   .\{T....0<......
0020  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 53 03 87 0a 01 00 2d 3c   ..8.....S.....-<
0010  a8 5c 7b 54 00 00 00 00 3f 3c 01 00 8d ff ff ff   .\{T....?<......
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 43 03 87 0a 01 00 2d 00   ..8.....C.....-.
0010  a8 5c 7b 54 00 00 00 00 aa 3c 01 00 00 00 00 00   .\{T.....<......
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 58 01 00 00 08 00 00 00 01            USBSX........

0000  80 ac 38 c0 00 00 00 00 53 03 05 0a 01 00 2d 00   ..8.....S.....-.
0010  a8 5c 7b 54 00 00 00 00 b7 3c 01 00 8d ff ff ff   .\{T.....<......
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 59 01 00 00 12 00 00 00 80 00 06 03   USBCY...........
0050  00 00 00 12 00 00 00 00 00 00 00 00 00 00 00      ...............

0000  80 ac 38 c0 00 00 00 00 43 03 05 0a 01 00 2d 3e   ..8.....C.....->
0010  a8 5c 7b 54 00 00 00 00 28 3d 01 00 00 00 00 00   .\{T....(=......
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  00 c0 74 d7 00 00 00 00 53 03 87 0a 01 00 2d 3c   ..t.....S.....-<
0010  a8 5c 7b 54 00 00 00 00 32 3d 01 00 8d ff ff ff   .\{T....2=......
0020  12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................

0000  00 c0 74 d7 00 00 00 00 43 03 87 0a 01 00 2d 00   ..t.....C.....-.
0010  a8 5c 7b 54 00 00 00 00 99 3e 01 00 00 00 00 00   .\{T.....>......
0020  12 00 00 00 12 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00   ................
0040  f0 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00   ............ ...
0050  00 00                                             ..

0000  80 ac 38 c0 00 00 00 00 53 03 87 0a 01 00 2d 3c   ..8.....S.....-<
0010  a8 5c 7b 54 00 00 00 00 a5 3e 01 00 8d ff ff ff   .\{T.....>......
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  80 ac 38 c0 00 00 00 00 43 03 87 0a 01 00 2d 00   ..8.....C.....-.
0010  a8 5c 7b 54 00 00 00 00 1d 3f 01 00 00 00 00 00   .\{T.....?......
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 59 01 00 00 00 00 00 00 00            USBSY........

0000  80 cb 26 c0 00 00 00 00 53 03 01 04 01 00 2d 00   ..&.....S.....-.
0010  a8 5c 7b 54 00 00 00 00 48 07 09 00 8d ff ff ff   .\{T....H.......
0020  1f 00 00 00 1f 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................
0040  55 53 42 43 70 4a 00 00 00 00 00 00 00 00 06 00   USBCpJ..........
0050  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00      ...............

0000  80 cb 26 c0 00 00 00 00 43 03 01 04 01 00 2d 3e   ..&.....C.....->
0010  a8 5c 7b 54 00 00 00 00 d8 07 09 00 00 00 00 00   .\{T............
0020  1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00   ................

0000  80 cb 26 c0 00 00 00 00 53 03 82 04 01 00 2d 3c   ..&.....S.....-<
0010  a8 5c 7b 54 00 00 00 00 e7 07 09 00 8d ff ff ff   .\{T............
0020  0d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................

0000  80 cb 26 c0 00 00 00 00 43 03 82 04 01 00 2d 00   ..&.....C.....-.
0010  a8 5c 7b 54 00 00 00 00 47 08 09 00 00 00 00 00   .\{T....G.......
0020  0d 00 00 00 0d 00 00 00 00 00 00 00 00 00 00 00   ................
0030  00 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  55 53 42 53 70 4a 00 00 00 00 00 00 00            USBSpJ.......

0000  80 fc 09 de 00 00 00 00 43 01 81 05 01 00 2d 00   ........C.....-.
0010  a9 5c 7b 54 00 00 00 00 35 c8 02 00 00 00 00 00   .\{T....5.......
0020  08 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00   ................
0030  08 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................
0040  01 00 06 00 00 00 00 00                           ........

0000  80 fc 09 de 00 00 00 00 53 01 81 05 01 00 2d 3c   ........S.....-<
0010  a9 5c 7b 54 00 00 00 00 64 c8 02 00 8d ff ff ff   .\{T....d.......
0020  08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0030  08 00 00 00 00 00 00 00 04 02 00 00 00 00 00 00   ................


^ permalink raw reply

* [PATCH iproute2] ip link: Show devices by link type
From: Vadim Kochan @ 2014-11-30 17:58 UTC (permalink / raw)
  To: netdev; +Cc: Vadim Kochan

Added new option 'type' to 'ip link show'
command which allows to filter devices by
link type name:

    ip link show type bridge
    ip link show type vlan

Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
---
 ip/ipaddress.c        | 24 ++++++++++++++++++++++++
 ip/iplink.c           |  2 +-
 man/man8/ip-link.8.in | 20 +++++++++++++++++++-
 3 files changed, 44 insertions(+), 2 deletions(-)

diff --git a/ip/ipaddress.c b/ip/ipaddress.c
index 4d99324..a2f7a83 100644
--- a/ip/ipaddress.c
+++ b/ip/ipaddress.c
@@ -57,6 +57,7 @@ static struct
 	int flushe;
 	int group;
 	int master;
+	char *link_kind;
 } filter;
 
 static int do_link;
@@ -189,6 +190,18 @@ static void print_linkmode(FILE *f, struct rtattr *tb)
 		fprintf(f, "mode %s ", link_modes[mode]);
 }
 
+static char *parse_link_kind(struct rtattr *tb)
+{
+	struct rtattr *linkinfo[IFLA_INFO_MAX+1];
+
+	parse_rtattr_nested(linkinfo, IFLA_INFO_MAX, tb);
+
+	if (linkinfo[IFLA_INFO_KIND])
+		return RTA_DATA(linkinfo[IFLA_INFO_KIND]);
+
+	return "";
+}
+
 static void print_linktype(FILE *fp, struct rtattr *tb)
 {
 	struct rtattr *linkinfo[IFLA_INFO_MAX+1];
@@ -551,6 +564,14 @@ int print_linkinfo(const struct sockaddr_nl *who,
 	else if (filter.master > 0)
 		return -1;
 
+	if (filter.link_kind && tb[IFLA_LINKINFO]) {
+		char *link_kind = parse_link_kind(tb[IFLA_LINKINFO]);
+		if (strcmp(link_kind, filter.link_kind)) {
+			return -1;
+		}
+	} else if (filter.link_kind)
+		return -1;
+
 	if (n->nlmsg_type == RTM_DELLINK)
 		fprintf(fp, "Deleted ");
 
@@ -1293,6 +1314,9 @@ static int ipaddr_list_flush_or_save(int argc, char **argv, int action)
 			if (!ifindex)
 				invarg("Device does not exist\n", *argv);
 			filter.master = ifindex;
+		} else if (do_link && strcmp(*argv, "type") == 0) {
+			NEXT_ARG();
+			filter.link_kind = *argv;
 		} else {
 			if (strcmp(*argv, "dev") == 0) {
 				NEXT_ARG();
diff --git a/ip/iplink.c b/ip/iplink.c
index ce6eb3e..f9a75d5 100644
--- a/ip/iplink.c
+++ b/ip/iplink.c
@@ -82,7 +82,7 @@ void iplink_usage(void)
 	fprintf(stderr, "			  [ master DEVICE ]\n");
 	fprintf(stderr, "			  [ nomaster ]\n");
 	fprintf(stderr, "			  [ addrgenmode { eui64 | none } ]\n");
-	fprintf(stderr, "       ip link show [ DEVICE | group GROUP ] [up] [master DEV]\n");
+	fprintf(stderr, "       ip link show [ DEVICE | group GROUP ] [up] [master DEV] [type TYPE]\n");
 
 	if (iplink_have_newlink()) {
 		fprintf(stderr, "       ip link help [ TYPE ]\n");
diff --git a/man/man8/ip-link.8.in b/man/man8/ip-link.8.in
index 9d4e3da..4233291 100644
--- a/man/man8/ip-link.8.in
+++ b/man/man8/ip-link.8.in
@@ -148,7 +148,9 @@ ip-link \- network device configuration
 .IR GROUP " | "
 .BR up " | "
 .B master
-.IR DEVICE " ]"
+.IR DEVICE " | "
+.B type
+.IR TYPE " ]"
 
 .ti -8
 .B ip link help
@@ -688,6 +690,12 @@ only display running interfaces.
 .I DEVICE
 specifies the master device which enslaves devices to show.
 
+.TP
+.BI type " TYPE "
+.I TYPE
+specifies the link type of devices to show.
+
+.TP
 The show command has additional formatting options:
 
 .TP
@@ -719,6 +727,16 @@ ip link show
 Shows the state of all network interfaces on the system.
 .RE
 .PP
+ip link show type bridge
+.RS 4
+Shows the bridge devices.
+.RE
+.PP
+ip link show type vlan
+.RS 4
+Shows the vlan devices.
+.RE
+.PP
 ip link set dev ppp0 mtu 1400
 .RS 4
 Change the MTU the ppp0 device.
-- 
2.1.3

^ permalink raw reply related

* Re: [PATCH] sky2: avoid pci write posting after disabling irqs
From: Stephen Hemminger @ 2014-11-30 17:54 UTC (permalink / raw)
  To: Lino Sanfilippo; +Cc: mlindner, netdev, linux-kernel
In-Reply-To: <1417348611-1752-1-git-send-email-LinoSanfilippo@gmx.de>

On Sun, 30 Nov 2014 12:56:51 +0100
Lino Sanfilippo <LinoSanfilippo@gmx.de> wrote:

> In sky2_change_mtu setting B0_IMSK to 0 may be delayed due to PCI write posting
> which could result in irqs being still active when synchronize_irq is called.
> Since we are not prepared to handle any further irqs after synchronize_irq
> (our resources are freed after that) force the write by a consecutive read from
> the same register.
> Similar situation in sky2_all_down: Here we disabled irqs by a write to B0_IMSK
> but did not ensure that this write took place before synchronize_irq. Fix that
> too.
> 
> Signed-off-by: Lino Sanfilippo <LinoSanfilippo@gmx.de>

Looks correct.

Acked-by: Stephen Hemminger <stephen@networkplumber.org>

^ permalink raw reply

* Re: [PATCH iproute2] configure: Add check for the doc tools
From: Stephen Hemminger @ 2014-11-30 17:51 UTC (permalink / raw)
  To: Vadim Kochan; +Cc: netdev
In-Reply-To: <1417363705-560-1-git-send-email-vadim4j@gmail.com>

On Sun, 30 Nov 2014 18:08:25 +0200
Vadim Kochan <vadim4j@gmail.com> wrote:

> Added checking existence of the doc files converters.
> If the XXX tool exists then HAVE_XXX:=y will be written
> to the Config file. Example of the configure script output:
> 
> TC schedulers
>  ATM	no
>  IPT	using xtables
>  IPSET  yes
> 
> iptables modules directory: /usr/lib/iptables
> libc has setns: yes
> SELinux support: no
> 
> Docs
>  latex: no
>  WARNING: no docs can be built from LaTeX files
>  sgml2html: yes
> 
> Signed-off-by: Vadim Kochan <vadim4j@gmail.com>

Applied

^ permalink raw reply

* Re: [PATCH 1/1] net-PA Semi: Deletion of unnecessary checks before the function call "pci_dev_put"
From: Julia Lawall @ 2014-11-30 17:47 UTC (permalink / raw)
  To: Lino Sanfilippo
  Cc: SF Markus Elfring, Olof Johansson, netdev, LKML, kernel-janitors
In-Reply-To: <547B579F.10709@gmx.de>



On Sun, 30 Nov 2014, Lino Sanfilippo wrote:

> On 29.11.2014 19:00, SF Markus Elfring wrote:
>
> >  out:
> > -	if (mac->iob_pdev)
> > -		pci_dev_put(mac->iob_pdev);
> > -	if (mac->dma_pdev)
> > -		pci_dev_put(mac->dma_pdev);
> > +	pci_dev_put(mac->iob_pdev);
> > +	pci_dev_put(mac->dma_pdev);
> >
> >  	free_netdev(dev);
> >  out_disable_device:
> >
>
> Hi,
>
> I know there has been some criticism about those kind of "code
> improvements" already but i would like to point out just one more thing:
>
> Some of those NULL pointer checks on input parameters may have been
> added subsequently to functions. So there may be older kernel versions
> out there in which those checks dont exists in some cases. If some of
> the now "cleaned up" code is backported to such a kernel chances are
> good that those missing checks are overseen. And then neither caller nor
> callee is doing the NULL pointer check.
>
> Quite frankly i would vote for the opposite approach: Never rely on the
> callee do to checks for NULL and do it always in the caller. An
> exception could be for calls on a fast path. But most of those checks
> are done on error paths anyway.

I have heard of at least one case where the problem you are raising
happened in practice...

julia

^ permalink raw reply

* Re: [PATCH 1/1] net-PA Semi: Deletion of unnecessary checks before the function call "pci_dev_put"
From: Lino Sanfilippo @ 2014-11-30 17:45 UTC (permalink / raw)
  To: SF Markus Elfring, Olof Johansson, netdev
  Cc: LKML, kernel-janitors, Julia Lawall
In-Reply-To: <547A09B1.9090102@users.sourceforge.net>

On 29.11.2014 19:00, SF Markus Elfring wrote:

>  out:
> -	if (mac->iob_pdev)
> -		pci_dev_put(mac->iob_pdev);
> -	if (mac->dma_pdev)
> -		pci_dev_put(mac->dma_pdev);
> +	pci_dev_put(mac->iob_pdev);
> +	pci_dev_put(mac->dma_pdev);
>  
>  	free_netdev(dev);
>  out_disable_device:
> 

Hi,

I know there has been some criticism about those kind of "code
improvements" already but i would like to point out just one more thing:

Some of those NULL pointer checks on input parameters may have been
added subsequently to functions. So there may be older kernel versions
out there in which those checks dont exists in some cases. If some of
the now "cleaned up" code is backported to such a kernel chances are
good that those missing checks are overseen. And then neither caller nor
callee is doing the NULL pointer check.

Quite frankly i would vote for the opposite approach: Never rely on the
callee do to checks for NULL and do it always in the caller. An
exception could be for calls on a fast path. But most of those checks
are done on error paths anyway.

Just my 2 cents.

Regards,
Lino

^ permalink raw reply

* Re: [PATCH iproute2] ip xfrm: support 64bit kernel and 32bit userspace
From: Stephen Hemminger @ 2014-11-30 17:42 UTC (permalink / raw)
  To: Ben Hutchings; +Cc: roy.qing.li, netdev
In-Reply-To: <1417311202.7215.109.camel@decadent.org.uk>

[-- Attachment #1: Type: text/plain, Size: 973 bytes --]

On Sun, 30 Nov 2014 01:33:22 +0000
Ben Hutchings <ben@decadent.org.uk> wrote:

> On Fri, 2014-11-28 at 14:58 +0800, roy.qing.li@gmail.com wrote:
> > From: Li RongQing <roy.qing.li@gmail.com> 
> > 
> > The size of struct xfrm_userpolicy_info is 168 bytes for 64bit kernel, and
> > 164 bytes for 32bit userspace because of the different alignment.
> 
> I think it's specific to x86 as other architectures have the same type
> alignments for 32- and 64-bit variants.
> 
> > and lead to "ip xfrm" be unable to work.
> > 
> > add a pad in struct xfrm_userpolicy_info, and enable it by set
> > KERNEL_64_USERSPACE_32 to y
> [...]
> 
> This doesn't make sense.  32-bit compat needs to work like 32-bit native
> - no exceptions, no workarounds in userland.  And if you really want to
> work around this in userland you'll need a run-time, not compile-time,
> check.

I agree with Ben, this is not a good solution.
It creates a 3rd ABI (32, 64, and 32/64).

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply

* Re: [PATCH iproute2] man ip-link: Add description for 'help' command
From: Stephen Hemminger @ 2014-11-30 17:40 UTC (permalink / raw)
  To: Vadim Kochan; +Cc: netdev
In-Reply-To: <1417290561-16970-1-git-send-email-vadim4j@gmail.com>

On Sat, 29 Nov 2014 21:49:21 +0200
Vadim Kochan <vadim4j@gmail.com> wrote:

> Signed-off-by: Vadim Kochan <vadim4j@gmail.com>


Applied, thnks

^ permalink raw reply

* [PATCH net-next v2] bridge: make proxy arp configurable
From: Stephen Hemminger @ 2014-11-30 17:20 UTC (permalink / raw)
  To: David Miller, Kyeyoon Park; +Cc: netdev


This solves kernel build without INET enabled, and allows user
to control enabling this feature.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>

---
 net/bridge/Kconfig       |   15 +++++++++++++++
 net/bridge/br_input.c    |    4 ++++
 net/bridge/br_sysfs_if.c |    4 ++++
 3 files changed, 23 insertions(+)

--- a/net/bridge/Kconfig	2014-11-25 09:42:34.687891662 -0800
+++ b/net/bridge/Kconfig	2014-11-25 09:42:34.683891643 -0800
@@ -60,3 +60,18 @@ config BRIDGE_VLAN_FILTERING
 	  Say N to exclude this support and reduce the binary size.
 
 	  If unsure, say Y.
+
+config BRIDGE_ARP_PROXY
+	bool "ARP proxying"
+	depends on BRIDGE
+	depends on INET
+	default y
+	---help---
+	  If you say Y here, then the Ethernet bridge to keep track of
+	  the hardware address to IP address mapping.
+
+	  It is most useful when used as a wireless AP.
+
+	  Say N to exclude this support and reduce the binary size.
+
+	  If unsure, say Y.
--- a/net/bridge/br_input.c	2014-11-25 09:42:34.687891662 -0800
+++ b/net/bridge/br_input.c	2014-11-25 09:42:34.683891643 -0800
@@ -59,6 +59,7 @@ static int br_pass_frame_up(struct sk_bu
 		       netif_receive_skb);
 }
 
+#ifdef CONFIG_BRIDGE_PROXY_ARP
 static void br_do_proxy_arp(struct sk_buff *skb, struct net_bridge *br,
 			    u16 vid)
 {
@@ -112,6 +113,7 @@ static void br_do_proxy_arp(struct sk_bu
 		neigh_release(n);
 	}
 }
+#endif
 
 /* note: already called with rcu_read_lock */
 int br_handle_frame_finish(struct sk_buff *skb)
@@ -154,9 +156,11 @@ int br_handle_frame_finish(struct sk_buf
 	dst = NULL;
 
 	if (is_broadcast_ether_addr(dest)) {
+#ifdef CONFIG_BRIDGE_PROXY_ARP
 		if (p->flags & BR_PROXYARP &&
 		    skb->protocol == htons(ETH_P_ARP))
 			br_do_proxy_arp(skb, br, vid);
+#endif
 
 		skb2 = skb;
 		unicast = false;
--- a/net/bridge/br_sysfs_if.c	2014-11-25 09:42:34.687891662 -0800
+++ b/net/bridge/br_sysfs_if.c	2014-11-25 09:42:34.687891662 -0800
@@ -170,7 +170,9 @@ BRPORT_ATTR_FLAG(bpdu_guard, BR_BPDU_GUA
 BRPORT_ATTR_FLAG(root_block, BR_ROOT_BLOCK);
 BRPORT_ATTR_FLAG(learning, BR_LEARNING);
 BRPORT_ATTR_FLAG(unicast_flood, BR_FLOOD);
+#ifdef CONFIG_BRIDGE_PROXY_ARP
 BRPORT_ATTR_FLAG(proxyarp, BR_PROXYARP);
+#endif
 
 #ifdef CONFIG_BRIDGE_IGMP_SNOOPING
 static ssize_t show_multicast_router(struct net_bridge_port *p, char *buf)
@@ -214,7 +216,9 @@ static const struct brport_attribute *br
 	&brport_attr_multicast_router,
 	&brport_attr_multicast_fast_leave,
 #endif
+#ifdef CONFIG_BRIDGE_PROXY_ARP
 	&brport_attr_proxyarp,
+#endif
 	NULL
 };
 

^ permalink raw reply

* [PATCH 3/3] net-PPP: Delete an unnecessary assignment
From: SF Markus Elfring @ 2014-11-30 16:47 UTC (permalink / raw)
  To: Paul Mackerras, linux-ppp, netdev; +Cc: LKML, kernel-janitors, Julia Lawall
In-Reply-To: <547B4886.4080406@users.sourceforge.net>

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Sun, 30 Nov 2014 17:17:36 +0100

The data structure element "arc4" was assigned a null pointer by the
mppe_alloc() function if a previous function call "crypto_alloc_blkcipher"
failed. This assignment became unnecessary with previous source
code adjustments.
Let us delete it from the affected implementation because the element "arc4"
will not be accessible outside the function after the detected
allocation failure.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 drivers/net/ppp/ppp_mppe.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/net/ppp/ppp_mppe.c b/drivers/net/ppp/ppp_mppe.c
index 962c1a0..d913bc9 100644
--- a/drivers/net/ppp/ppp_mppe.c
+++ b/drivers/net/ppp/ppp_mppe.c
@@ -205,10 +205,8 @@ static void *mppe_alloc(unsigned char *options, int optlen)
 
 
 	state->arc4 = crypto_alloc_blkcipher("ecb(arc4)", 0, CRYPTO_ALG_ASYNC);
-	if (IS_ERR(state->arc4)) {
-		state->arc4 = NULL;
+	if (IS_ERR(state->arc4))
 		goto out_free;
-	}
 
 	state->sha1 = crypto_alloc_hash("sha1", 0, CRYPTO_ALG_ASYNC);
 	if (IS_ERR(state->sha1)) {
-- 
2.1.3


^ permalink raw reply related

* [PATCH 2/3] net-PPP: Less function calls in mppe_alloc() after error detection
From: SF Markus Elfring @ 2014-11-30 16:45 UTC (permalink / raw)
  To: Paul Mackerras, linux-ppp, netdev; +Cc: LKML, kernel-janitors, Julia Lawall
In-Reply-To: <547B4886.4080406@users.sourceforge.net>

>From 06c1a0fff81142dfa6d933479e17bb1b45ab9dc7 Mon Sep 17 00:00:00 2001
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Sun, 30 Nov 2014 17:07:34 +0100

The functions crypto_free_blkcipher((), crypto_free_hash() and kfree() could be
called in some cases by the mppe_alloc() function during error handling even
if the passed data structure element contained still a null pointer.
This implementation detail could be improved by adjustments for jump labels.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 drivers/net/ppp/ppp_mppe.c | 24 +++++++++++-------------
 1 file changed, 11 insertions(+), 13 deletions(-)

diff --git a/drivers/net/ppp/ppp_mppe.c b/drivers/net/ppp/ppp_mppe.c
index 7e44212..962c1a0 100644
--- a/drivers/net/ppp/ppp_mppe.c
+++ b/drivers/net/ppp/ppp_mppe.c
@@ -197,11 +197,11 @@ static void *mppe_alloc(unsigned char *options, int optlen)
 
 	if (optlen != CILEN_MPPE + sizeof(state->master_key) ||
 	    options[0] != CI_MPPE || options[1] != CILEN_MPPE)
-		goto out;
+		return NULL;
 
 	state = kzalloc(sizeof(*state), GFP_KERNEL);
 	if (state == NULL)
-		goto out;
+		return NULL;
 
 
 	state->arc4 = crypto_alloc_blkcipher("ecb(arc4)", 0, CRYPTO_ALG_ASYNC);
@@ -213,16 +213,16 @@ static void *mppe_alloc(unsigned char *options, int optlen)
 	state->sha1 = crypto_alloc_hash("sha1", 0, CRYPTO_ALG_ASYNC);
 	if (IS_ERR(state->sha1)) {
 		state->sha1 = NULL;
-		goto out_free;
+		goto out_free_blkcipher;
 	}
 
 	digestsize = crypto_hash_digestsize(state->sha1);
 	if (digestsize < MPPE_MAX_KEY_LEN)
-		goto out_free;
+		goto out_free_hash;
 
 	state->sha1_digest = kmalloc(digestsize, GFP_KERNEL);
 	if (!state->sha1_digest)
-		goto out_free;
+		goto out_free_hash;
 
 	/* Save keys. */
 	memcpy(state->master_key, &options[CILEN_MPPE],
@@ -237,14 +237,12 @@ static void *mppe_alloc(unsigned char *options, int optlen)
 
 	return (void *)state;
 
-	out_free:
-	kfree(state->sha1_digest);
-	    if (state->sha1)
-		crypto_free_hash(state->sha1);
-	    if (state->arc4)
-		crypto_free_blkcipher(state->arc4);
-	    kfree(state);
-	out:
+out_free_hash:
+	crypto_free_hash(state->sha1);
+out_free_blkcipher:
+	crypto_free_blkcipher(state->arc4);
+out_free:
+	kfree(state);
 	return NULL;
 }
 
-- 
2.1.3

^ permalink raw reply related

* [PATCH 1/3] net-PPP: Deletion of unnecessary checks before the function call "kfree"
From: SF Markus Elfring @ 2014-11-30 16:44 UTC (permalink / raw)
  To: Paul Mackerras, linux-ppp, netdev; +Cc: LKML, kernel-janitors, Julia Lawall
In-Reply-To: <547B4886.4080406@users.sourceforge.net>

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Sun, 30 Nov 2014 17:02:07 +0100

The kfree() function tests whether its argument is NULL and then
returns immediately. Thus the test around the call is not needed.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 drivers/net/ppp/ppp_mppe.c | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/drivers/net/ppp/ppp_mppe.c b/drivers/net/ppp/ppp_mppe.c
index 911b216..7e44212 100644
--- a/drivers/net/ppp/ppp_mppe.c
+++ b/drivers/net/ppp/ppp_mppe.c
@@ -238,8 +238,7 @@ static void *mppe_alloc(unsigned char *options, int optlen)
 	return (void *)state;
 
 	out_free:
-	    if (state->sha1_digest)
-		kfree(state->sha1_digest);
+	kfree(state->sha1_digest);
 	    if (state->sha1)
 		crypto_free_hash(state->sha1);
 	    if (state->arc4)
@@ -256,13 +255,12 @@ static void mppe_free(void *arg)
 {
 	struct ppp_mppe_state *state = (struct ppp_mppe_state *) arg;
 	if (state) {
-	    if (state->sha1_digest)
 		kfree(state->sha1_digest);
-	    if (state->sha1)
-		crypto_free_hash(state->sha1);
-	    if (state->arc4)
-		crypto_free_blkcipher(state->arc4);
-	    kfree(state);
+		if (state->sha1)
+			crypto_free_hash(state->sha1);
+		if (state->arc4)
+			crypto_free_blkcipher(state->arc4);
+		kfree(state);
 	}
 }
 
-- 
2.1.3


^ permalink raw reply related

* [PATCH 0/3] net-PPP: Deletion of a few unnecessary checks
From: SF Markus Elfring @ 2014-11-30 16:40 UTC (permalink / raw)
  To: Paul Mackerras, linux-ppp, netdev; +Cc: LKML, kernel-janitors, Julia Lawall
In-Reply-To: <5317A59D.4@users.sourceforge.net>

From: Markus Elfring <elfring@users.sourceforge.net>
Date: Sun, 30 Nov 2014 17:25:40 +0100

Further update suggestions were taken into account after a patch was applied
from static source code analysis.

Markus Elfring (3):
  Deletion of unnecessary checks before the function call "kfree"
  Less function calls in mppe_alloc() after error detection
  Delete an unnecessary assignment

 drivers/net/ppp/ppp_mppe.c | 32 +++++++++++++-------------------
 1 file changed, 13 insertions(+), 19 deletions(-)

-- 
2.1.3


^ permalink raw reply

* [PATCH iproute2] configure: Add check for the doc tools
From: Vadim Kochan @ 2014-11-30 16:08 UTC (permalink / raw)
  To: netdev; +Cc: Vadim Kochan

Added checking existence of the doc files converters.
If the XXX tool exists then HAVE_XXX:=y will be written
to the Config file. Example of the configure script output:

TC schedulers
 ATM	no
 IPT	using xtables
 IPSET  yes

iptables modules directory: /usr/lib/iptables
libc has setns: yes
SELinux support: no

Docs
 latex: no
 WARNING: no docs can be built from LaTeX files
 sgml2html: yes

Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
---
 configure | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/configure b/configure
index d5170f0..c3dacdb 100755
--- a/configure
+++ b/configure
@@ -7,6 +7,24 @@ INCLUDE=${1:-"$PWD/include"}
 TMPDIR=$(mktemp -d config.XXXXXX)
 trap 'status=$?; rm -rf $TMPDIR; exit $status' EXIT HUP INT QUIT TERM
 
+check_prog()
+{
+    echo -n "$2"
+    command -v $1 >/dev/null 2>&1 && (echo "$3:=y" >> Config; echo "yes") || (echo "no"; return 1)
+}
+
+check_docs()
+{
+    if check_prog latex " latex: " HAVE_LATEX; then
+        check_prog pdflatex " pdflatex: " HAVE_PDFLATEX || echo " WARNING: no PDF docs can be built from LaTeX files"
+        check_prog sgml2latex " sgml2latex: " HAVE_SGML2LATEX || echo " WARNING: no LaTeX files can be build from SGML files"
+    else
+        echo " WARNING: no docs can be built from LaTeX files"
+    fi
+
+    check_prog sgml2html " sgml2html: " HAVE_SGML2HTML || echo " WARNING: no HTML docs can be built from SGML"
+}
+
 check_toolchain()
 {
     : ${PKG_CONFIG:=pkg-config}
@@ -260,7 +278,7 @@ check_ipt
 echo -n " IPSET  "
 check_ipset
 
-echo -n "iptables modules directory: "
+echo -n -e "\niptables modules directory: "
 check_ipt_lib_dir
 
 echo -n "libc has setns: "
@@ -268,3 +286,6 @@ check_setns
 
 echo -n "SELinux support: "
 check_selinux
+
+echo -e "\nDocs"
+check_docs
-- 
2.1.3

^ permalink raw reply related

* Re: [PATCH v7 28/46] vhost: make features 64 bit
From: Sergei Shtylyov @ 2014-11-30 15:44 UTC (permalink / raw)
  To: Michael S. Tsirkin, linux-kernel
  Cc: thuth, kvm, rusty, netdev, virtualization, dahi, pbonzini,
	David Miller
In-Reply-To: <1417359787-10138-29-git-send-email-mst@redhat.com>

Hello.

On 11/30/2014 6:11 PM, Michael S. Tsirkin wrote:

> We need to use bit 32 for virtio 1.0

> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> Reviewed-by: Jason Wang <jasowang@redhat.com>
> ---
>   drivers/vhost/vhost.h | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)

> diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h
> index 3eda654..c624b09 100644
> --- a/drivers/vhost/vhost.h
> +++ b/drivers/vhost/vhost.h
> @@ -106,7 +106,7 @@ struct vhost_virtqueue {
>   	/* Protected by virtqueue mutex. */
>   	struct vhost_memory *memory;
>   	void *private_data;
> -	unsigned acked_features;
> +	u64 acked_features;
>   	/* Log write descriptors */
>   	void __user *log_base;
>   	struct vhost_log *log;
> @@ -174,6 +174,6 @@ enum {
>
>   static inline int vhost_has_feature(struct vhost_virtqueue *vq, int bit)
>   {
> -	return vq->acked_features & (1 << bit);
> +	return vq->acked_features & (1ULL << bit);

    Erm, wouldn't the high word be just dropped when returning *int*? I think 
you need !!(vq->acked_features & (1ULL << bit)).

[...]

WBR, Sergei

^ permalink raw reply

* [PATCH v7 46/46] af_packet: virtio 1.0 stubs
From: Michael S. Tsirkin @ 2014-11-30 15:13 UTC (permalink / raw)
  To: linux-kernel
  Cc: David Miller, cornelia.huck, rusty, nab, pbonzini, thuth, dahi,
	Daniel Borkmann, Atzm Watanabe, Hannes Frederic Sowa,
	Eric Dumazet, Tom Herbert, netdev
In-Reply-To: <1417359787-10138-1-git-send-email-mst@redhat.com>

This merely fixes sparse warnings, without actually
adding support for the new APIs.

Still working out the best way to enable the new
functionality.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 net/packet/af_packet.c | 35 ++++++++++++++++++++++-------------
 1 file changed, 22 insertions(+), 13 deletions(-)

diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
index 87d20f4..d4a877e 100644
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
@@ -2444,13 +2444,15 @@ static int packet_snd(struct socket *sock, struct msghdr *msg, size_t len)
 			goto out_unlock;
 
 		if ((vnet_hdr.flags & VIRTIO_NET_HDR_F_NEEDS_CSUM) &&
-		    (vnet_hdr.csum_start + vnet_hdr.csum_offset + 2 >
-		      vnet_hdr.hdr_len))
-			vnet_hdr.hdr_len = vnet_hdr.csum_start +
-						 vnet_hdr.csum_offset + 2;
+		    (__virtio16_to_cpu(false, vnet_hdr.csum_start) +
+		     __virtio16_to_cpu(false, vnet_hdr.csum_offset) + 2 >
+		      __virtio16_to_cpu(false, vnet_hdr.hdr_len)))
+			vnet_hdr.hdr_len = __cpu_to_virtio16(false,
+				 __virtio16_to_cpu(false, vnet_hdr.csum_start) +
+				__virtio16_to_cpu(false, vnet_hdr.csum_offset) + 2);
 
 		err = -EINVAL;
-		if (vnet_hdr.hdr_len > len)
+		if (__virtio16_to_cpu(false, vnet_hdr.hdr_len) > len)
 			goto out_unlock;
 
 		if (vnet_hdr.gso_type != VIRTIO_NET_HDR_GSO_NONE) {
@@ -2492,7 +2494,8 @@ static int packet_snd(struct socket *sock, struct msghdr *msg, size_t len)
 	err = -ENOBUFS;
 	hlen = LL_RESERVED_SPACE(dev);
 	tlen = dev->needed_tailroom;
-	skb = packet_alloc_skb(sk, hlen + tlen, hlen, len, vnet_hdr.hdr_len,
+	skb = packet_alloc_skb(sk, hlen + tlen, hlen, len,
+			       __virtio16_to_cpu(false, vnet_hdr.hdr_len),
 			       msg->msg_flags & MSG_DONTWAIT, &err);
 	if (skb == NULL)
 		goto out_unlock;
@@ -2534,14 +2537,16 @@ static int packet_snd(struct socket *sock, struct msghdr *msg, size_t len)
 
 	if (po->has_vnet_hdr) {
 		if (vnet_hdr.flags & VIRTIO_NET_HDR_F_NEEDS_CSUM) {
-			if (!skb_partial_csum_set(skb, vnet_hdr.csum_start,
-						  vnet_hdr.csum_offset)) {
+			u16 s = __virtio16_to_cpu(false, vnet_hdr.csum_start);
+			u16 o = __virtio16_to_cpu(false, vnet_hdr.csum_offset);
+			if (!skb_partial_csum_set(skb, s, o)) {
 				err = -EINVAL;
 				goto out_free;
 			}
 		}
 
-		skb_shinfo(skb)->gso_size = vnet_hdr.gso_size;
+		skb_shinfo(skb)->gso_size =
+			__virtio16_to_cpu(false, vnet_hdr.gso_size);
 		skb_shinfo(skb)->gso_type = gso_type;
 
 		/* Header must be checked, and gso_segs computed. */
@@ -2912,8 +2917,10 @@ static int packet_recvmsg(struct kiocb *iocb, struct socket *sock,
 			struct skb_shared_info *sinfo = skb_shinfo(skb);
 
 			/* This is a hint as to how much should be linear. */
-			vnet_hdr.hdr_len = skb_headlen(skb);
-			vnet_hdr.gso_size = sinfo->gso_size;
+			vnet_hdr.hdr_len =
+				__cpu_to_virtio16(false, skb_headlen(skb));
+			vnet_hdr.gso_size =
+				__cpu_to_virtio16(false, sinfo->gso_size);
 			if (sinfo->gso_type & SKB_GSO_TCPV4)
 				vnet_hdr.gso_type = VIRTIO_NET_HDR_GSO_TCPV4;
 			else if (sinfo->gso_type & SKB_GSO_TCPV6)
@@ -2931,8 +2938,10 @@ static int packet_recvmsg(struct kiocb *iocb, struct socket *sock,
 
 		if (skb->ip_summed == CHECKSUM_PARTIAL) {
 			vnet_hdr.flags = VIRTIO_NET_HDR_F_NEEDS_CSUM;
-			vnet_hdr.csum_start = skb_checksum_start_offset(skb);
-			vnet_hdr.csum_offset = skb->csum_offset;
+			vnet_hdr.csum_start = __cpu_to_virtio16(false,
+					  skb_checksum_start_offset(skb));
+			vnet_hdr.csum_offset = __cpu_to_virtio16(false,
+							 skb->csum_offset);
 		} else if (skb->ip_summed == CHECKSUM_UNNECESSARY) {
 			vnet_hdr.flags = VIRTIO_NET_HDR_F_DATA_VALID;
 		} /* else everything is zero */
-- 
MST

^ permalink raw reply related

* [PATCH v7 45/46] vhost/scsi: partial virtio 1.0 support
From: Michael S. Tsirkin @ 2014-11-30 15:13 UTC (permalink / raw)
  To: linux-kernel
  Cc: David Miller, cornelia.huck, rusty, nab, pbonzini, thuth, dahi,
	kvm, virtualization, netdev
In-Reply-To: <1417359787-10138-1-git-send-email-mst@redhat.com>

Include all endian conversions as required by virtio 1.0.
Don't set virtio 1.0 yet, since that requires ANY_LAYOUT
which we don't yet support.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
---
 drivers/vhost/scsi.c | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/drivers/vhost/scsi.c b/drivers/vhost/scsi.c
index a17f118..01c01cb 100644
--- a/drivers/vhost/scsi.c
+++ b/drivers/vhost/scsi.c
@@ -168,6 +168,7 @@ enum {
 	VHOST_SCSI_VQ_IO = 2,
 };
 
+/* Note: can't set VIRTIO_F_VERSION_1 yet, since that implies ANY_LAYOUT. */
 enum {
 	VHOST_SCSI_FEATURES = VHOST_FEATURES | (1ULL << VIRTIO_SCSI_F_HOTPLUG) |
 					       (1ULL << VIRTIO_SCSI_F_T10_PI)
@@ -577,8 +578,8 @@ tcm_vhost_allocate_evt(struct vhost_scsi *vs,
 		return NULL;
 	}
 
-	evt->event.event = event;
-	evt->event.reason = reason;
+	evt->event.event = cpu_to_vhost32(vq, event);
+	evt->event.reason = cpu_to_vhost32(vq, reason);
 	vs->vs_events_nr++;
 
 	return evt;
@@ -636,7 +637,7 @@ again:
 	}
 
 	if (vs->vs_events_missed) {
-		event->event |= VIRTIO_SCSI_T_EVENTS_MISSED;
+		event->event |= cpu_to_vhost32(vq, VIRTIO_SCSI_T_EVENTS_MISSED);
 		vs->vs_events_missed = false;
 	}
 
@@ -695,12 +696,13 @@ static void vhost_scsi_complete_cmd_work(struct vhost_work *work)
 			cmd, se_cmd->residual_count, se_cmd->scsi_status);
 
 		memset(&v_rsp, 0, sizeof(v_rsp));
-		v_rsp.resid = se_cmd->residual_count;
+		v_rsp.resid = cpu_to_vhost32(cmd->tvc_vq, se_cmd->residual_count);
 		/* TODO is status_qualifier field needed? */
 		v_rsp.status = se_cmd->scsi_status;
-		v_rsp.sense_len = se_cmd->scsi_sense_length;
+		v_rsp.sense_len = cpu_to_vhost32(cmd->tvc_vq,
+						 se_cmd->scsi_sense_length);
 		memcpy(v_rsp.sense, cmd->tvc_sense_buf,
-		       v_rsp.sense_len);
+		       se_cmd->scsi_sense_length);
 		ret = copy_to_user(cmd->tvc_resp, &v_rsp, sizeof(v_rsp));
 		if (likely(ret == 0)) {
 			struct vhost_scsi_virtqueue *q;
@@ -1095,14 +1097,14 @@ vhost_scsi_handle_vq(struct vhost_scsi *vs, struct vhost_virtqueue *vq)
 						", but wrong data_direction\n");
 					goto err_cmd;
 				}
-				prot_bytes = v_req_pi.pi_bytesout;
+				prot_bytes = vhost32_to_cpu(vq, v_req_pi.pi_bytesout);
 			} else if (v_req_pi.pi_bytesin) {
 				if (data_direction != DMA_FROM_DEVICE) {
 					vq_err(vq, "Received non zero di_pi_niov"
 						", but wrong data_direction\n");
 					goto err_cmd;
 				}
-				prot_bytes = v_req_pi.pi_bytesin;
+				prot_bytes = vhost32_to_cpu(vq, v_req_pi.pi_bytesin);
 			}
 			if (prot_bytes) {
 				int tmp = 0;
@@ -1117,12 +1119,12 @@ vhost_scsi_handle_vq(struct vhost_scsi *vs, struct vhost_virtqueue *vq)
 				data_first += prot_niov;
 				data_niov = data_num - prot_niov;
 			}
-			tag = v_req_pi.tag;
+			tag = vhost64_to_cpu(vq, v_req_pi.tag);
 			task_attr = v_req_pi.task_attr;
 			cdb = &v_req_pi.cdb[0];
 			lun = ((v_req_pi.lun[2] << 8) | v_req_pi.lun[3]) & 0x3FFF;
 		} else {
-			tag = v_req.tag;
+			tag = vhost64_to_cpu(vq, v_req.tag);
 			task_attr = v_req.task_attr;
 			cdb = &v_req.cdb[0];
 			lun = ((v_req.lun[2] << 8) | v_req.lun[3]) & 0x3FFF;
-- 
MST

^ permalink raw reply related

* [PATCH v7 41/46] macvtap: TUN_VNET_LE support
From: Michael S. Tsirkin @ 2014-11-30 15:12 UTC (permalink / raw)
  To: linux-kernel
  Cc: David Miller, cornelia.huck, rusty, nab, pbonzini, thuth, dahi,
	Jason Wang, Vlad Yasevich, Zhi Yong Wu, Ben Hutchings,
	Tom Herbert, netdev
In-Reply-To: <1417359787-10138-1-git-send-email-mst@redhat.com>

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Jason Wang <jasowang@redhat.com>
---
 drivers/net/macvtap.c | 68 ++++++++++++++++++++++++++++++++-------------------
 1 file changed, 43 insertions(+), 25 deletions(-)

diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c
index 880cc09..af90ab5 100644
--- a/drivers/net/macvtap.c
+++ b/drivers/net/macvtap.c
@@ -45,6 +45,18 @@ struct macvtap_queue {
 	struct list_head next;
 };
 
+#define MACVTAP_FEATURES (IFF_VNET_HDR | IFF_VNET_LE | IFF_MULTI_QUEUE)
+
+static inline u16 macvtap16_to_cpu(struct macvtap_queue *q, __virtio16 val)
+{
+	return __virtio16_to_cpu(q->flags & IFF_VNET_LE, val);
+}
+
+static inline __virtio16 cpu_to_macvtap16(struct macvtap_queue *q, u16 val)
+{
+	return __cpu_to_virtio16(q->flags & IFF_VNET_LE, val);
+}
+
 static struct proto macvtap_proto = {
 	.name = "macvtap",
 	.owner = THIS_MODULE,
@@ -557,7 +569,8 @@ static inline struct sk_buff *macvtap_alloc_skb(struct sock *sk, size_t prepad,
  * macvtap_skb_from_vnet_hdr and macvtap_skb_to_vnet_hdr should
  * be shared with the tun/tap driver.
  */
-static int macvtap_skb_from_vnet_hdr(struct sk_buff *skb,
+static int macvtap_skb_from_vnet_hdr(struct macvtap_queue *q,
+				     struct sk_buff *skb,
 				     struct virtio_net_hdr *vnet_hdr)
 {
 	unsigned short gso_type = 0;
@@ -588,13 +601,13 @@ static int macvtap_skb_from_vnet_hdr(struct sk_buff *skb,
 	}
 
 	if (vnet_hdr->flags & VIRTIO_NET_HDR_F_NEEDS_CSUM) {
-		if (!skb_partial_csum_set(skb, vnet_hdr->csum_start,
-					  vnet_hdr->csum_offset))
+		if (!skb_partial_csum_set(skb, macvtap16_to_cpu(q, vnet_hdr->csum_start),
+					  macvtap16_to_cpu(q, vnet_hdr->csum_offset)))
 			return -EINVAL;
 	}
 
 	if (vnet_hdr->gso_type != VIRTIO_NET_HDR_GSO_NONE) {
-		skb_shinfo(skb)->gso_size = vnet_hdr->gso_size;
+		skb_shinfo(skb)->gso_size = macvtap16_to_cpu(q, vnet_hdr->gso_size);
 		skb_shinfo(skb)->gso_type = gso_type;
 
 		/* Header must be checked, and gso_segs computed. */
@@ -604,8 +617,9 @@ static int macvtap_skb_from_vnet_hdr(struct sk_buff *skb,
 	return 0;
 }
 
-static void macvtap_skb_to_vnet_hdr(const struct sk_buff *skb,
-				   struct virtio_net_hdr *vnet_hdr)
+static void macvtap_skb_to_vnet_hdr(struct macvtap_queue *q,
+				    const struct sk_buff *skb,
+				    struct virtio_net_hdr *vnet_hdr)
 {
 	memset(vnet_hdr, 0, sizeof(*vnet_hdr));
 
@@ -613,8 +627,8 @@ static void macvtap_skb_to_vnet_hdr(const struct sk_buff *skb,
 		struct skb_shared_info *sinfo = skb_shinfo(skb);
 
 		/* This is a hint as to how much should be linear. */
-		vnet_hdr->hdr_len = skb_headlen(skb);
-		vnet_hdr->gso_size = sinfo->gso_size;
+		vnet_hdr->hdr_len = cpu_to_macvtap16(q, skb_headlen(skb));
+		vnet_hdr->gso_size = cpu_to_macvtap16(q, sinfo->gso_size);
 		if (sinfo->gso_type & SKB_GSO_TCPV4)
 			vnet_hdr->gso_type = VIRTIO_NET_HDR_GSO_TCPV4;
 		else if (sinfo->gso_type & SKB_GSO_TCPV6)
@@ -628,10 +642,13 @@ static void macvtap_skb_to_vnet_hdr(const struct sk_buff *skb,
 
 	if (skb->ip_summed == CHECKSUM_PARTIAL) {
 		vnet_hdr->flags = VIRTIO_NET_HDR_F_NEEDS_CSUM;
-		vnet_hdr->csum_start = skb_checksum_start_offset(skb);
 		if (vlan_tx_tag_present(skb))
-			vnet_hdr->csum_start += VLAN_HLEN;
-		vnet_hdr->csum_offset = skb->csum_offset;
+			vnet_hdr->csum_start = cpu_to_macvtap16(q,
+				skb_checksum_start_offset(skb) + VLAN_HLEN);
+		else
+			vnet_hdr->csum_start = cpu_to_macvtap16(q,
+				skb_checksum_start_offset(skb));
+		vnet_hdr->csum_offset = cpu_to_macvtap16(q, skb->csum_offset);
 	} else if (skb->ip_summed == CHECKSUM_UNNECESSARY) {
 		vnet_hdr->flags = VIRTIO_NET_HDR_F_DATA_VALID;
 	} /* else everything is zero */
@@ -666,12 +683,14 @@ static ssize_t macvtap_get_user(struct macvtap_queue *q, struct msghdr *m,
 		if (err < 0)
 			goto err;
 		if ((vnet_hdr.flags & VIRTIO_NET_HDR_F_NEEDS_CSUM) &&
-		     vnet_hdr.csum_start + vnet_hdr.csum_offset + 2 >
-							vnet_hdr.hdr_len)
-			vnet_hdr.hdr_len = vnet_hdr.csum_start +
-						vnet_hdr.csum_offset + 2;
+		     macvtap16_to_cpu(q, vnet_hdr.csum_start) +
+		     macvtap16_to_cpu(q, vnet_hdr.csum_offset) + 2 >
+			     macvtap16_to_cpu(q, vnet_hdr.hdr_len))
+			vnet_hdr.hdr_len = cpu_to_macvtap16(q,
+				 macvtap16_to_cpu(q, vnet_hdr.csum_start) +
+				 macvtap16_to_cpu(q, vnet_hdr.csum_offset) + 2);
 		err = -EINVAL;
-		if (vnet_hdr.hdr_len > len)
+		if (macvtap16_to_cpu(q, vnet_hdr.hdr_len) > len)
 			goto err;
 	}
 
@@ -684,7 +703,8 @@ static ssize_t macvtap_get_user(struct macvtap_queue *q, struct msghdr *m,
 		goto err;
 
 	if (m && m->msg_control && sock_flag(&q->sk, SOCK_ZEROCOPY)) {
-		copylen = vnet_hdr.hdr_len ? vnet_hdr.hdr_len : GOODCOPY_LEN;
+		copylen = vnet_hdr.hdr_len ?
+			macvtap16_to_cpu(q, vnet_hdr.hdr_len) : GOODCOPY_LEN;
 		if (copylen > good_linear)
 			copylen = good_linear;
 		linear = copylen;
@@ -695,10 +715,10 @@ static ssize_t macvtap_get_user(struct macvtap_queue *q, struct msghdr *m,
 
 	if (!zerocopy) {
 		copylen = len;
-		if (vnet_hdr.hdr_len > good_linear)
+		if (macvtap16_to_cpu(q, vnet_hdr.hdr_len) > good_linear)
 			linear = good_linear;
 		else
-			linear = vnet_hdr.hdr_len;
+			linear = macvtap16_to_cpu(q, vnet_hdr.hdr_len);
 	}
 
 	skb = macvtap_alloc_skb(&q->sk, NET_IP_ALIGN, copylen,
@@ -725,7 +745,7 @@ static ssize_t macvtap_get_user(struct macvtap_queue *q, struct msghdr *m,
 	skb->protocol = eth_hdr(skb)->h_proto;
 
 	if (vnet_hdr_len) {
-		err = macvtap_skb_from_vnet_hdr(skb, &vnet_hdr);
+		err = macvtap_skb_from_vnet_hdr(q, skb, &vnet_hdr);
 		if (err)
 			goto err_kfree;
 	}
@@ -791,7 +811,7 @@ static ssize_t macvtap_put_user(struct macvtap_queue *q,
 		if ((len -= vnet_hdr_len) < 0)
 			return -EINVAL;
 
-		macvtap_skb_to_vnet_hdr(skb, &vnet_hdr);
+		macvtap_skb_to_vnet_hdr(q, skb, &vnet_hdr);
 
 		if (memcpy_toiovecend(iv, (void *)&vnet_hdr, 0, sizeof(vnet_hdr)))
 			return -EFAULT;
@@ -1003,8 +1023,7 @@ static long macvtap_ioctl(struct file *file, unsigned int cmd,
 			return -EFAULT;
 
 		ret = 0;
-		if ((u & ~(IFF_VNET_HDR | IFF_MULTI_QUEUE)) !=
-		    (IFF_NO_PI | IFF_TAP))
+		if ((u & ~MACVTAP_FEATURES) != (IFF_NO_PI | IFF_TAP))
 			ret = -EINVAL;
 		else
 			q->flags = u;
@@ -1036,8 +1055,7 @@ static long macvtap_ioctl(struct file *file, unsigned int cmd,
 		return ret;
 
 	case TUNGETFEATURES:
-		if (put_user(IFF_TAP | IFF_NO_PI | IFF_VNET_HDR |
-			     IFF_MULTI_QUEUE, up))
+		if (put_user(IFF_TAP | IFF_NO_PI | MACVTAP_FEATURES, up))
 			return -EFAULT;
 		return 0;
 
-- 
MST

^ permalink raw reply related


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox