hi, On 2023/11/13 13:28, Michael van Elst wrote: > mak...@ki.nu (Makoto Fujiwara) writes: > >> I've compared to openbsd: if_axen.c >> https://raw.githubusercontent.com/openbsd/src/master/sys/dev/usb/if_axen.c >> to N, and there are so many differencies. > >> Does this (N) if_axen.c works on any installation ? > > > axen seems to work, but I can see that the code does nonsense if > you receive something a buffer with pkt_count == 0. > > I suggest to dump the whole buffer as it was received.
My rx_loop now hexdump its buffer. I perform iperf between 179A and other host. This is a part of rxbuf dump. 1700366741.414702 axen_uno_rx_loop#0@0: rxbuf: 3064 bytes @ 0xffff0000088da000 1700366741.414702 axen_uno_rx_loop#0@0: eeee207b d26f4276 00e04c53 44580800 0000 <-- pkt #1 1700366741.414703 axen_uno_rx_loop#0@0: 450005dc 60cb4000 400650f5 c0a80104 1700366741.414703 axen_uno_rx_loop#0@0: c0a80107 e4c71388 1b8bd508 9f8f2f31 1700366741.414703 axen_uno_rx_loop#0@0: 80102014 18d80000 0101080a 00000004 1700366741.414703 axen_uno_rx_loop#0@0: 00000005 c84e3c5c 8bd907b3 f4adb29d 1700366741.414704 axen_uno_rx_loop#0@0: 6ad24e1d 1e2543ee 32697ee7 0abef55e 1700366741.414704 axen_uno_rx_loop#0@0: d7c11bca 9d027273 53ec1fbc 6508201b 1700366741.414704 axen_uno_rx_loop#0@0: 5e4e7679 9f9a38fd c0133df9 21a5677c 1700366741.414704 axen_uno_rx_loop#0@0: 0542fadd 562c8053 bb89dc3f f4ed406a 1700366741.414705 axen_uno_rx_loop#0@0: 0011b337 dbb6a8a8 f8d0022c 9983dcda 1700366741.414705 axen_uno_rx_loop#0@0: b4825199 42f3db4f b4fcdca1 8e3404cc 1700366741.414705 axen_uno_rx_loop#0@0: 4ad71c09 0ea081da 705a6175 2a1b4429 1700366741.414705 axen_uno_rx_loop#0@0: 1ea81312 9604400d 8f468791 fa02bf04 1700366741.414706 axen_uno_rx_loop#0@0: 383ab1b8 e96b3fd4 470641dc 6f2df1a1 1700366741.414706 axen_uno_rx_loop#0@0: 97edf08f 02167f69 213cfd57 debaee5e 1700366741.414706 axen_uno_rx_loop#0@0: 77e46444 a02d18bc 634320d6 5462ddb3 1700366741.414707 axen_uno_rx_loop#0@0: 1d212542 7e6caa36 5ab5b565 510e134b 1700366741.414707 axen_uno_rx_loop#0@0: 4b879893 661868a7 95ae3626 a254c4bc 1700366741.414707 axen_uno_rx_loop#0@0: 04ea0dcf 56c2751f deeee255 5bc31b51 1700366741.414707 axen_uno_rx_loop#0@0: 32d0ef9a b76e5449 9e6868c2 8bce1a04 1700366741.414707 axen_uno_rx_loop#0@0: a0fbebf5 b2f8cdf1 3d9ff296 2f011dbd 1700366741.414708 axen_uno_rx_loop#0@0: 002b74cd fd378d74 79c0ecbd 6221f4c0 1700366741.414708 axen_uno_rx_loop#0@0: e0215217 31e35e7c 00a091e9 20c948cc 1700366741.414708 axen_uno_rx_loop#0@0: 7afc3d51 0a4e238a 67c5cc21 7fd62029 1700366741.414708 axen_uno_rx_loop#0@0: e9a19089 8565e39c e7b42754 f5f77f71 1700366741.414708 axen_uno_rx_loop#0@0: 9477e217 ce72eb9e c4021c9a 386c7c40 1700366741.414709 axen_uno_rx_loop#0@0: 98b541d8 bfa940ba 69a0ccb4 38678212 1700366741.414709 axen_uno_rx_loop#0@0: adef35b9 dc55d6a5 334884c7 77cf9c93 1700366741.414709 axen_uno_rx_loop#0@0: 1083a7b2 078a849e 8f038031 994289cc 1700366741.414709 axen_uno_rx_loop#0@0: 074a50ef a97bc117 9934bdb0 6410c348 1700366741.414709 axen_uno_rx_loop#0@0: fcd7ab92 29d4fbf3 c1c30b2a 300dbfef 1700366741.414709 axen_uno_rx_loop#0@0: d52d1b2e 7badbaf4 af5ae320 5ad5936f 1700366741.414710 axen_uno_rx_loop#0@0: ef16fe32 d6455cd3 856ba821 a4539b52 1700366741.414710 axen_uno_rx_loop#0@0: 18418dc2 7a9e8925 6d79a54d f6f71d0e 1700366741.414710 axen_uno_rx_loop#0@0: c7d2a831 c1a054d3 3e59661c 311a7f83 1700366741.414710 axen_uno_rx_loop#0@0: ba687364 570c0e1d 53f36ea8 bd816a70 1700366741.414711 axen_uno_rx_loop#0@0: 1f157011 ae703a5a ceb9f7d8 cbd4d962 1700366741.414711 axen_uno_rx_loop#0@0: 9778087e 8a2690db 10e859b6 f984802d 1700366741.414711 axen_uno_rx_loop#0@0: 8bb30ebd 0899ff0b 0dd2b9f7 d5c51cb7 1700366741.414711 axen_uno_rx_loop#0@0: 953a92a4 794f3950 e135ca54 49c04aa5 1700366741.414711 axen_uno_rx_loop#0@0: d14ebd93 4a1ab0bd 70ee7c61 121e8be9 1700366741.414712 axen_uno_rx_loop#0@0: 05e58c08 3c081868 9dba7e0c f26e5377 1700366741.414712 axen_uno_rx_loop#0@0: 20851cad 81514d59 3304bae3 7a3f6cd6 1700366741.414712 axen_uno_rx_loop#0@0: 859a62dc b1bbb221 1a49a2a5 1dcc8a54 1700366741.414712 axen_uno_rx_loop#0@0: b3dd7eca 98ad8b8f 9ca16d9b 5c881cd2 1700366741.414712 axen_uno_rx_loop#0@0: 2624ff79 81848b6e 983f0d7b c436646d 1700366741.414712 axen_uno_rx_loop#0@0: 6e9464b0 53a05afa 8ed06d30 6887e8e4 1700366741.414713 axen_uno_rx_loop#0@0: f7dd5843 76dd8e43 60d7b7d9 7108bbe4 1700366741.414713 axen_uno_rx_loop#0@0: 9596a085 936ba262 6d700539 a29857da 1700366741.414713 axen_uno_rx_loop#0@0: 2f397e7e 1691e6d8 5d21dd31 5481c337 1700366741.414713 axen_uno_rx_loop#0@0: 802f366c 50e01b37 a15a8760 f6854e94 1700366741.414713 axen_uno_rx_loop#0@0: 53a65f2b f09328f0 c4f533a3 7a96cb62 1700366741.414713 axen_uno_rx_loop#0@0: ee817bf7 4e41aa80 1a2f4c41 16bc9f98 1700366741.414714 axen_uno_rx_loop#0@0: abed5728 85eb07a8 26053a16 43ccc2fe 1700366741.414714 axen_uno_rx_loop#0@0: 25476ccb 420f91d0 cf7851f2 6fd78cf7 1700366741.414714 axen_uno_rx_loop#0@0: 49cecb97 47e06724 81b17b42 2b179898 1700366741.414714 axen_uno_rx_loop#0@0: 7a64143f 8e583d44 07e65bc1 5faf89ea 1700366741.414715 axen_uno_rx_loop#0@0: 6f13ee8a 61b2376d f557a5f1 522591e4 1700366741.414715 axen_uno_rx_loop#0@0: bfc3c6cf 0a5b9c16 097776db 5f9996f1 1700366741.414715 axen_uno_rx_loop#0@0: 7429f979 e81a82de ab82071f bed8d8ca 1700366741.414715 axen_uno_rx_loop#0@0: b78629fb 0226ff9e 3309d149 477120c4 1700366741.414715 axen_uno_rx_loop#0@0: 8b1b0fca e961ffe5 0cb2225c 9990e39c 1700366741.414716 axen_uno_rx_loop#0@0: a025e3b5 418e4f2c 3b1d48e6 19a4ff48 1700366741.414716 axen_uno_rx_loop#0@0: 5f48b30e 1f0547d5 38780165 5a1429a3 1700366741.414716 axen_uno_rx_loop#0@0: 410a2351 3786ac7a 7725d781 76f3b56b 1700366741.414716 axen_uno_rx_loop#0@0: e08e2217 8c3d8fa2 3c8c41d2 39475d1f 1700366741.414716 axen_uno_rx_loop#0@0: 5e93901d 5c33d027 1a3f7a49 b305771e 1700366741.414716 axen_uno_rx_loop#0@0: 45a98e14 1a961dcd 62ffd2b5 bc0a3f38 1700366741.414717 axen_uno_rx_loop#0@0: a5a9dfa4 23d1360e 4ebcf27e 01e11362 1700366741.414717 axen_uno_rx_loop#0@0: 73d478e4 09996d02 35b032da ded03a97 1700366741.414717 axen_uno_rx_loop#0@0: 55ccbdbf 9de61e4f 8811ad4f 3c504081 1700366741.414717 axen_uno_rx_loop#0@0: a75751f1 59e54533 30ea1fd8 1aa3298e 1700366741.414717 axen_uno_rx_loop#0@0: c38100ab 268667a6 fae11ffc bc430be9 1700366741.414718 axen_uno_rx_loop#0@0: a57d01f1 4527edae 71b27342 d593f5e3 1700366741.414718 axen_uno_rx_loop#0@0: 9e560bd3 ce1fd2dd 136ec12e fc1ba31e 1700366741.414718 axen_uno_rx_loop#0@0: 6d89444f 8f7c34be 493c94b2 34101b46 1700366741.414718 axen_uno_rx_loop#0@0: 2f1dfe3a 37ea59b2 b0e80141 2e92e495 1700366741.414718 axen_uno_rx_loop#0@0: f33b572e cf350368 1e7037a9 4ebd761d 1700366741.414718 axen_uno_rx_loop#0@0: 1b088eff 77041c30 94b00794 94558aaa 1700366741.414719 axen_uno_rx_loop#0@0: 55382e1e c8b039a5 9d30093c 4f2cc83e 1700366741.414719 axen_uno_rx_loop#0@0: 54ab074c 75a08d83 1098cfda 565f4a21 1700366741.414719 axen_uno_rx_loop#0@0: 9127447c f38c58fd cdc002b8 4fbf3f3d 1700366741.414719 axen_uno_rx_loop#0@0: 87cec9b5 d886f303 ab30a607 f99a49d2 1700366741.414719 axen_uno_rx_loop#0@0: 831c154a d1a621ee 970c2d2a 54902057 1700366741.414720 axen_uno_rx_loop#0@0: 79fd3021 c071cb04 dbb5a8ab 35a6bf7c 1700366741.414720 axen_uno_rx_loop#0@0: e6623d29 6924bd25 c9772dd5 dc655ed9 1700366741.414720 axen_uno_rx_loop#0@0: 137ade12 832e33f5 d108df42 1eff4ee0 1700366741.414720 axen_uno_rx_loop#0@0: 416565bf 18a73a5f a8dfa6b9 3d549733 1700366741.414720 axen_uno_rx_loop#0@0: f1c77692 0cf01cf7 30c4fd44 9811a65b 1700366741.414721 axen_uno_rx_loop#0@0: 5dd770b2 e2db5fbc 5372ca65 555868b0 1700366741.414721 axen_uno_rx_loop#0@0: ef5cab24 486462c2 cc487a54 78987723 1700366741.414721 axen_uno_rx_loop#0@0: 16c8cc52 08612fa7 3201f729 9ce568ac 1700366741.414721 axen_uno_rx_loop#0@0: 03662a37 d92ae79d cf488f51 ab69c553 1700366741.414721 axen_uno_rx_loop#0@0: f7652ce7 012b435e c34f298d 1d91de5c 1700366741.414722 axen_uno_rx_loop#0@0: a88e9532 194555b5 f377bd2e 0413f0e8 0ec0 pkt #1 --> <garbage> 1700366741.414722 axen_uno_rx_loop#0@0: eeee207b d26f4276 00e04c53 44580800 0ed0 <-- pkt #2 1700366741.414722 axen_uno_rx_loop#0@0: 450005dc 56b64000 40065b0a c0a80104 1700366741.414722 axen_uno_rx_loop#0@0: c0a80107 e4c71388 1b8bdab0 9f8f2f31 1700366741.414722 axen_uno_rx_loop#0@0: 80102014 6ad90000 0101080a 00000004 1700366741.414722 axen_uno_rx_loop#0@0: 00000005 7870e5e4 7ba53e1e 47a5a470 1700366741.414723 axen_uno_rx_loop#0@0: 45b6f7f9 ab6d3009 01368208 e791d237 1700366741.414723 axen_uno_rx_loop#0@0: bee4d3a3 7f66686d 8c4a9cba aa249276 1700366741.414723 axen_uno_rx_loop#0@0: edb48f58 959045e1 824fe1a4 e19d2a38 1700366741.414723 axen_uno_rx_loop#0@0: 11c89d13 453be8bd 1b067dfd aa31a44b 1700366741.414723 axen_uno_rx_loop#0@0: dda666d3 de8ed86a fa2dfc64 715122ae 1700366741.414724 axen_uno_rx_loop#0@0: 32597ada 702072e4 97ca323f b091a79f 1700366741.414724 axen_uno_rx_loop#0@0: 8bb7c2cf 3cc1704e 1d794978 2a279cf0 1700366741.414724 axen_uno_rx_loop#0@0: bdf48d62 37a4c38e 0b468463 eeee668c 1700366741.414724 axen_uno_rx_loop#0@0: 7593e4d6 cbaea8d2 91f1afb2 4d97fcd2 1700366741.414724 axen_uno_rx_loop#0@0: 23fa8389 b88a9185 927382c1 32fd2403 1700366741.414724 axen_uno_rx_loop#0@0: 5b1c9f7b 4b6de8b5 db7b5bb9 ef752bcc 1700366741.414725 axen_uno_rx_loop#0@0: d53ad036 27e4fe97 a1e4a1c0 a2e9147a 1700366741.414725 axen_uno_rx_loop#0@0: b9a7b6ab 0d541939 34c16606 cf87835f 1700366741.414725 axen_uno_rx_loop#0@0: 2b6a9e6b cae57899 e5e37722 fde3d957 1700366741.414725 axen_uno_rx_loop#0@0: 30594240 5e1621df 775ef1be e083d46d 1700366741.414725 axen_uno_rx_loop#0@0: 6c7c5570 beeac6e8 956869d0 639e586b 1700366741.414725 axen_uno_rx_loop#0@0: e5e3c4e3 a1ebf8bb 03817386 c5223ba9 1700366741.414726 axen_uno_rx_loop#0@0: e8c26420 94df0ae8 0871314d 77ed04ad 1700366741.414726 axen_uno_rx_loop#0@0: 1d3d5812 4f72bdc0 6bd4c2af 314acfaf 1700366741.414726 axen_uno_rx_loop#0@0: 2955c6cc df45ef17 48e6127e 09806bbb 1700366741.414726 axen_uno_rx_loop#0@0: f6a30d5f d3c7a708 e22bc64c 1ad78871 1700366741.414727 axen_uno_rx_loop#0@0: ce54b693 a314a692 63b7ef42 5dbd3051 1700366741.414727 axen_uno_rx_loop#0@0: 8a0b5ade 5950db7f bf0a73a0 eeb7a030 1700366741.414727 axen_uno_rx_loop#0@0: d1aa615b 615a67e5 fd9d3d3f ca9a1d9b 1700366741.414727 axen_uno_rx_loop#0@0: 38cc3f4d cdaec28f 370aa0be c39be753 1700366741.414727 axen_uno_rx_loop#0@0: ba6a9e67 acc84fe7 71a3955e 6f2c7bfa 1700366741.414727 axen_uno_rx_loop#0@0: 19ed74fc 70b4ea02 f8b324e9 670f66d4 1700366741.414728 axen_uno_rx_loop#0@0: 3ed73c00 12dad6cf 5b7a8eda 9f6b6779 1700366741.414728 axen_uno_rx_loop#0@0: 3c5a2585 8970e6d5 3010a761 d50e1212 1700366741.414728 axen_uno_rx_loop#0@0: b27e0a9e 75db07b8 7b1092c3 5a625fea 1700366741.414728 axen_uno_rx_loop#0@0: cdff500e 185202fb ca5c5629 582b1de6 1700366741.414728 axen_uno_rx_loop#0@0: e59b504e 6146e59a 8e8cb57d 303b0962 1700366741.414728 axen_uno_rx_loop#0@0: f239f8a0 3d8b0acb 51dca239 31ec9294 1700366741.414728 axen_uno_rx_loop#0@0: 5b2579ea 6ef5d6d9 ae846092 703ffec1 1700366741.414729 axen_uno_rx_loop#0@0: 10ec0d4d 97d61997 e9535d9c f707e887 1700366741.414729 axen_uno_rx_loop#0@0: db40b4ba bfee1a94 1ff03e9c 8c8ff1d3 1700366741.414729 axen_uno_rx_loop#0@0: 445f335f 7c6074bf 179db38a 1d6f0ab1 1700366741.414729 axen_uno_rx_loop#0@0: 4924a8c5 806561f2 5f5755f2 3b69173c 1700366741.414729 axen_uno_rx_loop#0@0: d280445a cd6a5379 ac2abc85 ff3e9eda 1700366741.414729 axen_uno_rx_loop#0@0: b284dabc c6b1177b 24722b43 86b6daf2 1700366741.414730 axen_uno_rx_loop#0@0: 9f7093ef 69cf98b1 e448f383 9a21e03b 1700366741.414730 axen_uno_rx_loop#0@0: a962e113 fbebb9f8 3fe1124e b3ee4eb0 1700366741.414730 axen_uno_rx_loop#0@0: b00d003e fb077b08 ca61da5b 42356d3e 1700366741.414730 axen_uno_rx_loop#0@0: a1d4562b 4d37686c 1789f417 98c23c8e 1700366741.414730 axen_uno_rx_loop#0@0: 71e8d342 459911bf e4d235aa 74e3312b 1700366741.414730 axen_uno_rx_loop#0@0: d4d22c5b 4cf62df8 89906c3b 13f29ab3 1700366741.414730 axen_uno_rx_loop#0@0: 6059786e 66e816c4 36714b65 53082ccf 1700366741.414731 axen_uno_rx_loop#0@0: 9a9c4284 d3c6ab5a b3604225 a9ce255f 1700366741.414731 axen_uno_rx_loop#0@0: 0aea82f0 f0fc689e 837b712b 5b4e2c38 1700366741.414731 axen_uno_rx_loop#0@0: bb1b2278 4cf92544 86962c00 70e66f9a 1700366741.414731 axen_uno_rx_loop#0@0: e5da3412 f12da685 3ee42e95 7ed0653e 1700366741.414731 axen_uno_rx_loop#0@0: 9b4615ef b64c72d5 07afdaf5 f8fe0d5d 1700366741.414732 axen_uno_rx_loop#0@0: 0436e821 10abbb22 754b54f9 20f4e51b 1700366741.414732 axen_uno_rx_loop#0@0: b929ea36 87e27710 6d5ed5d7 6f83c952 1700366741.414732 axen_uno_rx_loop#0@0: e8b0b7c9 f43aaa1a 236497b7 5c1209b5 1700366741.414732 axen_uno_rx_loop#0@0: 80738fa6 0799ee86 93d83b29 544ff202 1700366741.414732 axen_uno_rx_loop#0@0: b47a571c f4af0f00 d271bd7b 02f7b9c5 1700366741.414732 axen_uno_rx_loop#0@0: 3de4a322 d61129b8 59b9951b 5b8f61e5 1700366741.414733 axen_uno_rx_loop#0@0: 8a3eb341 a0ddc9b1 f8688df6 e0943798 1700366741.414733 axen_uno_rx_loop#0@0: 862f34f9 2e619ca6 08cead83 df680dc5 1700366741.414733 axen_uno_rx_loop#0@0: d6a11694 ea335f37 30a4ac29 e604ade4 1700366741.414733 axen_uno_rx_loop#0@0: bb273e40 16721d36 e9764012 1e10b07d 1700366741.414733 axen_uno_rx_loop#0@0: 414a5405 6f86d53d 697288e4 7de5ccbc 1700366741.414734 axen_uno_rx_loop#0@0: 8441d68b 1bc7b30b ac7173de 3c08e5d5 1700366741.414734 axen_uno_rx_loop#0@0: ae4e24e8 a8dbfc5e b490a8aa cde79fd7 1700366741.414734 axen_uno_rx_loop#0@0: e996dad0 c0307194 15ea7045 2234293f 1700366741.414734 axen_uno_rx_loop#0@0: 2a5d16bc 2651da88 cb50489f 70ee9329 1700366741.414734 axen_uno_rx_loop#0@0: 6a1a8134 b60bb294 8de25162 736e32d7 1700366741.414734 axen_uno_rx_loop#0@0: 6ca20975 d0f7ff3d 0e49baab e9868522 1700366741.414735 axen_uno_rx_loop#0@0: 5927d4c9 a12ba793 ccc39489 fdc6865a 1700366741.414735 axen_uno_rx_loop#0@0: f0db951a c943a4c4 03ede0ce f00509ad 1700366741.414735 axen_uno_rx_loop#0@0: 634b1607 92b164a3 d06c2dbc 780200c8 1700366741.414735 axen_uno_rx_loop#0@0: 31dc0b23 96ba0c50 348f276e e380a69c 1700366741.414736 axen_uno_rx_loop#0@0: a72fce8e 35612ee3 852a3010 936ce3b3 1700366741.414736 axen_uno_rx_loop#0@0: 1b262da5 c386becc 392ad7d3 2be79e80 1700366741.414736 axen_uno_rx_loop#0@0: 7c6e3240 f0335b74 b6a629f4 e5d783dd 1700366741.414736 axen_uno_rx_loop#0@0: 6c460388 b471bfab 8e5761ce 90036db6 1700366741.414736 axen_uno_rx_loop#0@0: 013bea51 039800b4 cb874d4b 6cb4a2d7 1700366741.414736 axen_uno_rx_loop#0@0: cec655cc b9ad434e 23aa297c 675e9b88 1700366741.414737 axen_uno_rx_loop#0@0: d026b4e0 bfeaabaf 8c03704e 891bb174 1700366741.414737 axen_uno_rx_loop#0@0: b8830307 a24380d6 25a79861 fc694e7c 1700366741.414737 axen_uno_rx_loop#0@0: 6197102c 8a27c980 1aadc7ac 02daed17 1700366741.414737 axen_uno_rx_loop#0@0: a1026503 6190fbd8 e9195786 805c2a4f 1700366741.414737 axen_uno_rx_loop#0@0: 59b5ece4 292e9313 c4d5f04d 2c1f8c9e 1700366741.414738 axen_uno_rx_loop#0@0: 31e631c3 3bc8a7a8 d1db03da 1662fe35 1700366741.414738 axen_uno_rx_loop#0@0: ace05ec1 9946d9c0 578b38e8 96d31fc5 1700366741.414738 axen_uno_rx_loop#0@0: 5a486de6 fc47240c b952877d f1135a69 1700366741.414738 axen_uno_rx_loop#0@0: 30679159 18227ae1 ed42e6a7 9741b099 1700366741.414738 axen_uno_rx_loop#0@0: c50fac75 09400219 34a159f9 d55caa10 1700366741.414739 axen_uno_rx_loop#0@0: 64b37ba4 4d8bcd3a 3380d6f1 d02d86c4 0bd0 pkt #2 --> <garbage> 1700366741.414739 axen_uno_rx_loop#0@0: 0008ec05 00000080 0008ec05 00000080 0be0 < pkt_hdr #1 > < pkt_hdr #2 > 1700366741.414739 axen_uno_rx_loop#0@0: 00000000 0400e00b 400657b9 c0a80104 0bf0 <garbage><recv_hdr><-- garbage --> Receive buffer map of AX88179A resembles 179 map in each frame has 0xeeee header, but 179A pkt_count in recv_hdr looks like twice of 179. 179A pkt_hdr looks having new field `0x80000000'. I'm not sure what this means. In addition, each 179A frame doesn't contain FCS. It's correct increasing pkt_length by 4 if chip is 179A.