Date: Wed, 20 Jul 2005 22:03:49 -0500 From: Sam Pierson <samuel.pierson@gmail.com> To: FreeBSD Hackers <freebsd-hackers@freebsd.org> Subject: Atheros, hardware access layer, collisions Message-ID: <d9204e4c0507202003231add5a@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
Hey all, I'm working on a project that requires creating a single packet collision between hosts, so I've been digging around in=20 /sys/contrib/dev/ath for awhile now. I successfully disabled the CTS and RTS control frames from being transmitted, which was the first step. I believe now the application is sending packets, creating a collision. I think there is still collision detection happening on the hardware=20 level. I think I have to disable the retransmission of frames=20 which are lost due to collisions. Here's my reasoning: In the lab, two hosts are sending packets to the middle guy at the same time. After examining the traffic on the middle guy, one packet will arrive before the other one (sometimes in different order) and the second packet comes 500-1200us after the first. From this, I think some retransmission is happening because of collision, since the results are seemingly random. Can anyone help me determine what I should zero out from the drivers? I'm not sure, but these look like the important ones: >From ah.h (/contrib/dev/ath/) #define=09CHANNEL_BUSY=090x0004=09/* Busy, occupied or overlap with adjoin = chan */ (earlier in the file...) typedef enum { =09TXQ_FLAG_TXOKINT_ENABLE=09 =3D 0x0001, /* enable TXOK interrupt */ =09TXQ_FLAG_TXERRINT_ENABLE =3D 0x0001, /* enable TXERR interrupt */ =09TXQ_FLAG_TXDESCINT_ENABLE =3D 0x0002, /* enable TXDESC interrupt */ =09TXQ_FLAG_TXEOLINT_ENABLE =3D 0x0004, /* enable TXEOL interrupt */ =09TXQ_FLAG_TXURNINT_ENABLE =3D 0x0008, /* enable TXURN interrupt */ =09TXQ_FLAG_BACKOFF_DISABLE =3D 0x0010, /* disable Post Backoff */ =09TXQ_FLAG_COMPRESSION_ENABLE =3D 0x0020, /* compression enabled */ =09TXQ_FLAG_RDYTIME_EXP_POLICY_ENABLE =3D 0x0040, /* enable ready time =09=09=09=09=09=09=09expiry policy */ =09TXQ_FLAG_FRAG_BURST_BACKOFF_ENABLE =3D 0x0080, /* enable backoff while =09=09=09=09=09=09=09sending fragment burst*/ } HAL_TX_QUEUE_FLAGS; Does zeroing out frag_burst_backoff_enable do anything for me? I'm still trying many configurations and recompiling this to my kernel is very time consuming. =20 Thanks, Sam
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?d9204e4c0507202003231add5a>