Subject: ath & net80211 patches
To: None <tech-net@netbsd.org>
From: David Young <dyoung@pobox.com>
List: tech-net
Date: 07/30/2004 23:03:37
--Pql/uPZNXIm1JCle
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Here are some works in progress.  These may spoil your milk, catch your
house on fire, or make your kernel panic.

ath-ibss-patch makes Atheros cards work better in IBSS mode.  The beacon
generation is more nearly right (problems remain), and now ath(4) will
do a proper IBSS merge.

lru-cache-patch changes the management of the 802.11 node table, treating
it as a Least-Recently Used cache.  The node reference count tells how
many copies of a node that the net80211 layer has granted to a driver.
When the count falls to 0, a node is eligible to be purged from the cache.
A sysctl, net.link.ieee80211.maxnodecache, sets the maximum cache size.
Nodes now have a ni_state member that tells where a node is in the
authentication/association process, for one thing.  The ic->ic_bss node
is still "distinguished," but drivers can treat it alike to any other
node when net80211 grants it to them.  Basically, ic_bss is subject to
the same reference counting as any other node....

find-beacon-node-patch does a "best match" on [bssid, channel, ssid]
rather than a "perfect match."  Matches on [mac, channel], [mac, ssid],
and [mac] are possible.  "More perfect" matches are preferred.  Also,
an entry in the node table with an empty ssid matches any SSID: this
helps avoid two entries for the same MAC if the first time we see a MAC,
it has an empty SSID.

Dave

-- 
David Young             OJC Technologies
dyoung@ojctech.com      Urbana, IL * (217) 278-3933

--Pql/uPZNXIm1JCle
Content-Type: application/x-gzip
Content-Disposition: attachment; filename="lru-cache-patch.gz"
Content-Transfer-Encoding: base64

H4sICF8WC0EAA2xydS1jYWNoZS1wYXRjaADsXOt32kiW/2z/FRX3aTcYsBFv40m2iS0n7NrY
AzidbE8fHVkSRicg0ZKI495k//a991aVVBLi4fRMej9MTrcFUj1v/e77ir5nO5+7zPSOrf2X
f/7f/vB8xCbuzOmyE+tTGPh+dBIG1kn4FJ7YzqcT1zrBqcqf9gMnClznk+s9sAAuoet7TDuu
V/dtdzJhlSWrBPiVr6xSqdCHvVqd/edyxmrVaoNVO916o6tprFKFf3vUuVQq8YZ1TWlY71Yb
3YZouP/zz6zSapyWW6yElw77+ed9tre3504WlVfuxPCdIPCDsFQ6o9uW70Wut3To29f9EjZk
Bc9lL16ywd3VVRFv7bmO43SqNU0zAmfmmKFjeL7tFFyrzDy3CH1/gF6D17eX/auxPmSvWBWH
w5FcC2a1jMB8vF9MijQlfDDmkblIPyuzOQyEq9fq9RouH66NcpuvHxb0kiWrmLiebQSf40U8
TnERyjJdb7GMCrBnGBbXWGaTYD61g2PTg35G6D545swIo8DxHqJpGfoy+Ddz6rXInxZSbSN3
7hRh+NJ2KnzdZ/ssjMzItdgn37X3+wJ/0fT7ARDnWo9ALY1ATayNIIif9mqdFAab7W6jmmBQ
4xikljkgrCkg1OABwK8E12YCw3Gvf/V3oz8Y6cOxgV8KhyHAILSM6PP9ElBwT/8bMzeMihyi
MBt/aFiBG4WOFRmOZxdCIHsomuSAu7IXQ/nwkHFAC8Ddh2GRnisnOgmc7HGW9vKZYTsOVvmK
EUlq9Xa7fMpKtYamSWTvnRzhX3bErnzLjBwWTR2G47GJH7AQduoEZRYFpvWRoOWUQQTYogu0
9djCDEP45Ia8WyFwJg7g2nLsIlsuWOTTkLDgY03DbUO/mfnkBDQBEJQtQ+eYsV8cZgYOgOX3
pRs4NvbDkUWP0J87MAegKfTZIyzOnM3YPS4K2nGaAhfCamghk8CcO6InffXnsGq29D56/qMn
dnWM1MxdDN/dCV52YnxO3Ea1XtZqSN16E6icoe4YaEDLYnPziU3NTw6zTJjMTggOO7nHx8FH
uAvrET0Dx5qZc2Bq4KCCc/xwzFwPboYL3wupk8ku9N7d+C2bO2FoPjjFmGa4GxZDi03hXKBz
GDmmzfwJ0APOih5JWoguKq429hKEqsRIfbmK8oR6Sc/CISEVHjuz0Mk0y+eFrahnDKSl53yO
uris9Ywe5DP6VzhMkGysgPxObUCKuxHx+f2kiDurCg1R69RbKFpqnVYz5iMkH/4jAMJ/2VOB
B2bEHs0Q4RchE+HJqz2J2tgART6Qehkxe0kn7HqmFbmf3OjpWHQ4UQXMt4mW7VLkK/5BciAx
7DmAcGGET55VEJSEWxEn5Ou7kXFx3Rt9GJwbtzej8S/D/ljng9wvQ9l36c180872rry6l6NL
+p4iK2lA4NO6hh84hYkXRXtcKx8++c64lDyTq84I7XvnwfW42K5x7KWla66cZv+TY5PATTwF
ztt4ekNkUXfOTzCWf5mz+mcdyPNV2CYNhqSIzYTH72gmPG4wE9qdlJnQ7oi1cTPhcdVM0Grd
xmlsJkB3biY85psJDcVMqGv1Nolt+vBvsf3dxTZZJwwozu4WtjRAgHiOC7Re+K4XgarG1dJp
NU7RpyjBtSWMOtzMtXE71G/1wUVhXi3DZiehE/mTAtjXSytCHBh0hmX66IJtXSyza+PiZjD+
pdcfkwrfTRzstuVv8WCkwzKv4mGoYibHuJQM++h+P4bFudYybKuRYthWQ6yNGBY/pXxLrdrV
ml2tHjMsdCeGpZZbGLbNEcAvQvWu8y7TZjAgrbJiU/8l1vnjFHTVPPJtwquAqTodCpyj2Llg
hRd9Xdf5w/7IuL67GvfPe6Nx4XEKazZM2w60IuyEKxz4J31bfzEnxfiSJQNcG29BQ/du2Zcv
wlHS2uV6FT0l+KC1YqLuPfggpoRRJQj6lV+UDWxcfwUcc9uZMMMYONHr0YVh8P67mNWVH2Ih
o7ryYksv0luCDSG/UOPc0eXYogkSKSGesAf2VHnIj5TfzY4Yy0P5HIdT8CNG+8qSHawdIt3t
B1DM7kSAekM4IQhD+huZ84XAibRHtqqtuFWu+lIVV9xyowLjG4RWUpHlqzDOHjnNVtRWPO16
9ZXYVRtU2DYlpqixHbh9J84WR04rjP2NBRwq8kvaSRFC/DvK8I0iXOvUUjIcvrNYhq+I8JXw
IHZHGb5OhDfV+GBTQxHOL0LaLALQ9JPCwY9hl1lAXQ+XBy4QIBw4ApcKoLHNRcQOYil3YDsh
WLSLyOf++4/hP7yDcvxYwMGdHINm+OyRAeAA/gMjFLN5buWV5xpz00IpUNzZK/jXmQEkYOfO
HAyYwlFEyIHNlxmqCfcPB4ya5G6ROjy6BpAGKRFyhxW/kYCwcV0yqKm16xQN41dOdNeGHdnS
d/JcgrCiMjlO/z+QREawtFZVI2udPghrneTeN9vq32qqP99S/yZDnYu5tTJuo4CT0m3LsewW
VwYNC0YHjyvzo+jUCFGtdmKJIdsZxmTpWYZRZgJfAVj1rv2ZS8jYVRUg/jXd6DcAYpUfemVX
2G3b3irotmNudNUfjaWT/VbvXSThI8FYnMXgr03yHHuBuMLYkzRGJzPzIWSHL9n/9i8vjZve
+bj/Thfs2NE48TrVfxPvOcQTSjNew79ed3pORDOdKHM+I8OmrhQ1qfJ9Dx4narLRrde6WjWb
b0u1T6tVTevWVbWqVTmm6IKQksakvO5XQOulzErTikD7fWaqMd0fALGN6957ECEimQTdWE43
OnhvCXZNKT2wZVpTx0CFlRr5vHf+VjdG/f+GgyzlDp10TMamnFbaw7D8uTFFcbl65+U+xVIJ
gQg92E5/3O9dwaTDwkpzoR1bGAMCDwivcVRB8TnmDxHl4QJko0pl5S7FhkmjxjvxnEeD8iXE
GAkNRsbovDcow2mRiFYm4WRdnUa9zydKsS0+AN4heoUwlohm5K4e2LgKbh/LGfkFjVxa34/v
T3CnWA3TzhLdfFqjrO9pLXYiSW+seoAlNUVZUg4fzT7DnM3kXgAaCSBgcRiLzYECO3ItlFV0
5pc3Qx1gRlQ/XDnvMuaKKDAqArtip4hlmhT2lEyZCWDx9Sl0LmHGGv7bZydgfby+YBOgJ9ih
j240ZSA7rGhmYOz1kxO4kycKYrEE9vuySTIDb1gYfRidj68uB0Zv+GZU5MRt1Amhp83Y7MGT
onAHnijAbZF4rXBSIJ+WgSdaKJggu0JMDOxFJsV6zhY+NXaM2N+YJhGycZRVJlbC6DgMx1K8
RL0/eNe74sZ3BAcQ+EvPXi4KUXlFKlG4jp3k3j+LsZY8vdBf372h5A7aQixv6S/UpdvO/fIh
XjVKTuwGp5sZUsYjT5stwnyrnsiNIwTuUTHAUUDp8ZlsMzJhaxhG+UYS5mEx4RUe6ZcUrRYV
vtS0TqOsNdH2P63jB75OrhTW7A3RAk/QFwj8mZJ/YpzzoUlJbXA1vON8Q14Kz53iJguBBbsW
u7QCB+Thp4I187lHc0g0gqtFV1EFgdC/6r0xbvXhdW+gD8Zf5B3g7AvKLJWx0fjDrQ7HP8aQ
DnmDgFta6EGZcQ6C/YzOh4WDUcRt+8w2QGoeFGXvNbzI15nDIWU06MWsuHra/crM17CkORxu
KFaQ0AhnLj1n5gQSklBVIoNxDmQRJDH0m6tiMRHXFMADCSDYfz2fo9hL4ZVr9VyVvrkPi2EI
n2Hq7orJxqNZf4XhJmdeb77V0+ZbPWfVKSNO3t2rnSamWa3WrXW61WZiytXTplzcK8ega6m5
KbDk2qyEFyUqq9gS+uDCuH5zPRbGd1m0QHAkrS7Pq8bo7jWxC3dj89sBjEY3A2NwMzawkX6R
BEU3+QhqWFioU0R7eOyGWL7k+ZEZhr4Vh+QTTPL0W4O2qNWVLW7d4YYN9ke90ejmPLehukNs
lGxxgxv9DRvjuQbaXqtN22s11RPcm2siHCi+qpnrOE+xO92/xnkCGFhJUpNp28YShVKrLTFE
IicbsadAxBEGltHo4sHlJcA0qteMSISZxR2tBXdC5/cyH0q5B8RZglNJJgMOA9rJt+5DXGoI
JpE1zcTweYLLAg8yFcrvvx6Nupn6PbKk0zH/kTG8G8gcRltrkopra5rUcBRyp/AebgfNCric
pe/jtugJfkg9s6amx1RnOb7LESP2xk3gSirUnzyqkgFJp7MN0vloJmZFYrMS0/iZK8r6dgja
7zLjX1yP3gg1/iVzN+H8woHURz+G+J+5xEIuMEuByDYr+AvHK8aR1I0RU55OKcgt/wc7AEN0
9nTAuuzAnIG+t58OikURQC/I3nmnOe5x95AHBRFZGwdLQxe9Le5sIYTTo+K2RSUKDPGRa6gV
0EHLLkdSi2Ruu9kRlT0xyDewQj4XsD263YG7R4Cc2czxHpIilRSPAN+RukVn+Cz2PiX6RSxE
FXkGHP673vkHUZfEU8W7YIOjAHfaqVExYKdWT2qY1rLMRp7ZlWlWuCaVIcvyjSLWkvElERVP
R50+pnEhPrKj4pxGLuRphPO3vasrffBGN+Av1QTo717fXQoCNUh4dxpKmiKXxFmttQsPIhNO
TSx0/Og8ARMiD1LxoxNGvGAx4VHiRaKRymnEF4EwJJ/HXpK/lCFoTZuzI0LpSDbay3IRbs4Y
ve0N9QtQtaPbm8FI50zVaTfQTeq0ThWoPZ9eidDKSKyEkonc2r6ZdPZhdzmiUAC8TXM54xWH
z2S/0wZZPqeNqqTJujz64/QsJUsmwbzMjhy4pO8Ds9rwAIPBIFCOPtMHKWhgyWitlCmvUU50
sxA6IW69nG7FBdEzahVgRTHr0YqKh4/TX7XfZAqqVkOBo4FDGhdaZdPitK7E0kmn6BNxkBEA
0uFY0cx0xLQ3EazaqKmTphRFp7mQqLAFHjqjIDrhyAlDEDWq8FXKAUUhkz4a9S+YGbFF4N87
6YSS7S8iNnVt8KRY75bdPwkSNRs8S9esJmmBI9bznnjxM4UjLJCyMJ7thpYZ2Ij/9+/fU0Fp
OPWXMxsfgsy1Z46s0zbv/U+OqJy2fe+nCP7i1/kSjLJHP/hYPGaZorCNBSRooiExJAEPD6l2
DUXr6HZ481ovhMv76GnhFJXIz/YRv3yBVvwIYMTSmhFX6X1pfnSwvpuw63IhEfKycztwwZ0m
koUAkgVzo59C2Q9Ewyc8KGL5Y0YJxIBuOHA4ZgiEdGQ/IqEEcqvOgdw8Vct/T2KAiq3CRmhJ
AqWFo+x9aQIyTTgiJ0ds8LrLpj6cYlxHKk5FAe56d0WOAOcLDgqlJnmwhmvTWHLFwaFa9ZT2
UqsqZsBOkkxxs3jaHs9NQv13rsOUjPxektpKS2aVx0UK/tnm9RqzZYPRQuesSh46ZsqkhfGx
CFHKJWlZEKzW5K+VaO3Ep9vqsebb94Rs0pVlKi5nwvdDDIl97pBYzz3Xeg31Skmra4kkSRbx
Th/2Lz8YKKCUAiQQ76hCRHCWIIpWgvjI7XD6lKmYfLm2ZHqTPUIJ9YTPtzRGtEnO3wmegw9J
JQjHJ8hasrRoXwKeZWKTlDmRqiFJQJsiCNHioCzfFxOkrmn/pCCGGqXJDWEQOXJCNVsjBsKm
Xg1n0OYoqAG0kDENqVd5vr/NX4trtRJJIat2CoKcZH5tLbLhMC09w/gC7UD9EhGKHSx/8cRl
qIrhuJ5WRMP1gT4GFtPHq9ljXmXxV0Qi+cTrA5HpWqx6bXXN6Tgkv5kOQ9a7WrtbS8ri67VM
GFJ02hKFPK2TnSoPPfWG4Yr8JMStydERoDeEnhK7UWIlyUDTZEYevHMnK6eSjOwZ/dYvkaPq
GhxGYL0L/bI/0AvXBm8xuLnQy+yAvmDrA/7lWNN43RHh+iCuxaoSI2mx5Z8FdUoxxXfPMi0f
ADpc4WUaiwdKe7AUwS/2pFGcl/bMC/WfrSTCoYcJBE0S3pn7qjvYv0AyiT3XeIBOq7XKNWH8
i7oueVJryK5miBPvwJg6s4UTrIPammRxDDZZ2iLJyYnwKtZjCWVy826pHPAzxhESiQeAStz3
SYs02mFRHTpbfaPOhHK6JEelXVE2mhLrWVDMAIFmFMHZrica6dcNREOlv3XRaz06eWa8RmGv
D0pMH46VDZZBUS89835GPpKw1z03MmcM3QNiLK4/0gGnVDxngKr/nNzeWCmI6sZS+lZOMbbQ
k6JZ9HnhP1KdQzLD+P3tzS/6kNfHxDnWekuj9Hy93VL9Nlyf58y4sYHuCOUfyb9QXzLF2tXC
GUsIQZ9fUv3lfSjr2tcvFwxdagld+MthA/39mLQo0Eh5kxmmvXejgm9Zy4XrYDFEgmtYaQ2/
CnMhJq+0yLdZFl/jjbhkmjOX/S17MEgz5pZKxcRRCrHQVZAbpzM4hWBp+D4DAxd3FqgLLvJy
iPopel6lhhZnxnaxCanyBucuHPwjEjqGxf/u0fiNvxG0yJPgLiHGYBn4zwvGHGwIhg6H4k6H
t+Hsdjo6xZqemO4sVHxgJEdDa5Tr4JQ0ULrK1yWJvvG8czOypgh8eWqp2AVFOpwZriMVWBH3
iHsQBUkVheJwvWLULL4Rv4iR76ZSYxF+2228/LWosePNdf6i+iPLRnmpvq9cL60hCKX4wEae
YIXK2QYLlrr+GSNWEontFjoR56i+8/KZfNmVgdUcwsXN5bA31tmXfbbijuDbcfqbm1REFm9e
6FdJmXwm0k9u8nEQGh59ihFWkaeXADj+iYRtENl1GsJI5nwq0p3eOEmF2Ii/e3nBY2osFAGj
s7h0POQF5SaGZSwvwkLtP5zAF/0w+EbPyZsMP4qacxF9ipWZCDiJTolleMzYlRNhlzmj8MnC
XyxnFNsGd8B25ji+46JbJfpG08BfPkzxhxm8cA5ilGrXM+88RVSZUmT8pR7HXUSiNyzezEYl
C7w2HmSiYxePecOTnAph0OdqqeFuNY/DO1nyyFLcuPlkdhycZ0nl6KiUUSY2NVIRTS3+ERcK
U4mQFFsXjUpnOxRr9uJiaJzf3H7I+LNlljgrbG9qhtOUuYCOgfG2N3pbUHyaOC7FoYRGOYX+
8L2EJOxn88Dd7k4yT/Bwmz2zAnBZ/st4/VaeGczFadSokdnS5PWvSKV1Vnh+jH6dp5fjy/G6
gLXG5UajMlvNXtxk2+9ifa6Y1ln5qXizMhioHiBpnpLytldugYjt0PQ8mqJY6RKhTfKsmw2Z
at6B9jasCpX4dyL8nyQz+1NkZrF902xTJrbZrsnE0U6MxtIlwTj6odgp9v8V//xGlhZ+kouD
FWfYXv/7WqZfNc6JCK5nAR+TjcfWMTaxPL5AEVVQOnvR7InR20r44yGgDEBNyobcNBzq1zfv
9MKhclicZImpmDRO/T7Ehh5KIa54AYybQET20w4GKpqn8vdsMOVCP3dB7U0lRSF+5cdcgFYB
SYoWMwFF/oiQ6z1QV5NRJSxlDSnj4oYiVyV+PgizWj4ozSd8B8u0p74FlnSEOarweL+E4QBU
06RXQ/bozmbMwp8Cwl9dKWPShyiPeWn+MwJyfRZYBBHoN1iPQ0PwPWPYTWr4Y1zgyU5cqGjX
Z3EiFWRR2KfUSqI/+ErscobR5zA6uQ9808ZPgkb7bC8pp91oB4IKwAzamjfFY8AiXMWBJ3bV
mRKd2PaOsvi1Bsw5gpX0U8SzVcD/H8G9DXxwrYWQYj9Zyz/Q1gB4L4MQHV9shTSnHeXoKC42
+CsZLSITXWRMfUsGLQZvJRUT2bAx5f02IWpaHTIb8BIXfVARs7Y291+RTVbFxtE9T8pL05W+
Cj59VhcsdJOFURs6kS0TQyiRo8qy1TwgL53DPFapnSTlBbnmvudG/O2CwBJUKp0kzPdsvkt4
jjgw4bvSs/gu2MJ368soSBXSnuu8yCsBVwaLd4MEjWxVjSk8xBG2FWK7MDD/WQb17Y1trEh7
6VBaplOtilBI+icAK7sHzXOJJ9V9UY3D/rmBSM+mo3+qh1o4wOFRSqAMSYJ+4tc/qny3ndWT
w4Dz+dVQ6mpeDWDH7q/p2sa9G/GfmWK761RhRYiW4hkZDEpEkcdjKxVp87zoX6L81a9vxx8w
usBzm+Ah2r/LAgZocXs3fKNnH5/FvwUjjcr/K+7aetM4ovAz/hVbRZGMBxIDBtzQRLJSqkZ1
7BQ7UqTUQhuzLjTAogWMo6r/vecy193ZC45a58Xxem67c2bmXL7zTUR5WHX5AU4bLYTtIVeH
lQnEryP7s96mbrvpnVQyBrm4uh9ljNv5nzKxCdbdjNkBY2nUrpnPLKSoP82thKWQKkimKy5q
2lpZEP8DOXQSUB8pis1KoshPSBCbFb2NFBOyzE7lOXg+cQ1Qcr4Uo2wDx2Csm8xBV+ucRErr
1K4XUaEcB+EzMfjXGQDh5fn58O11BmyatTBhe/RuO35iKL9D2bsjWzasNvQZwCpOT9rZLaFk
duQEo8yyk0d7dYvtZ8kUSNgH6bf95d0ItCx35TnnReEHCYKyTxJ4rPr0N3EPGdw99QAYz0qa
56lGLREEKr6NoGAU3k55GcdLsENipq+jJZxevW7CaX4Azh80e3zsiZGOAYcx3bgmWNgaOxV/
Zb1zDct2HjU3UwSORxOZsHcKxnaHoKj9RocTBZII5D0hDGeuRqqOC58pqc4MJ680ExP8KS8m
aKlmNmZGBWxf4wvX8eVWiA+It+v5N4XuU5Azh+Uq3QDW1w5bIeSf6SQI3vhyP5VJW32Pa2qY
jQXRLSCxDA6fb8EqvGW4iK5eIdPA2qSoORWdYgcuWlJXyLUDVmZkY3qULcVlVNGfwVQ11CBk
wEhFVVqsRJYkCzsN4iuyVjnDnD6p9Spvb/gV5hv/qbohNd4IQsmTS2YriB1YD2TlBueXI+h6
s4uIwDZyKpvBScpQ1Q8+U6/0MjVjGSVWEZ9VUUBV+KYIwdSshmDyFFMIJgSLDz99eDcaZsFL
HLCOQB8yR0J+yMdzfjQ9ICdqVG5eKvzADGe8Ach4gYtdk2f2G06Ot5ea2GeFCM8CWW2TP5GF
BmPDOn+WFoSosB4kgB0EX5TLPRWRBatJvXi80IvvkHlRReQFS7woFPgqoGMj76JE3EUlac+W
8gq7J+8gJetCi7ook3RRLugiLeeGIOaHArOhmWM25OTeF5rQmiOi06F8+a7mH8+DSxe4evQT
t9fMrMlUB0eJvf54BdP29u2QYrH7RFcYgZryFv3YPWZahp52F4H87mBxRUxhPonRnZtIfmDH
N+K69lyj1RB90MxN4mVkuRlSkam9zN50P2gFNg+a2AN6skpkbY9glDQW6IP5cZfTp8JdTvNJ
8NwE8FYnO2YP7nJanP7dSqd/y0oluMsT8nTo9KBnk+hutoysib8enV1c0fILal3SfykaPKOd
ehfONiRd2Xpm2cpqGXoHIt29D+eFDbw/+1Q77Bwfv/SSdByIbD3D/1NrwUsGvrZ1HIeKddrE
rbKeLVZzTGpZT3E5RUuKfWNs4T5MZMJHfKeCMoqco9ul6EWv0e7w0lQeeVhHa0YRfLa26rPr
Ib4T9nuDUosGlSCig5TUs3mMh4Yn/togWgw8yid8jtFJlQGCUDHb1UAnMgc6cP/4K4bPMvFV
pqMGa6+3t2i63W3nYBG4CXG+apSuka0nU2b8leQiJi+QvuAhiRbhbLnGUxwHzZQWZBFrhk/r
yEalYk2KSZNSHCWD3kCXDe9A1nYIugCBNQlMuP3QDrrA5B5Y1gtdA+fd+J1eqOcwfJgzYQQv
b7Maj3G7GvM81mt/QAOwTf+NrdAvNSpRt10hwaEqPqAi+rIAVAsNx9Fvw9HF8FzHyS4I4LGK
bmd3RPkDA2eWwRcB/G0jrwRQ/jS8/SJ6gNIwGRIn3CKccFtnGSHLFlp4jKGhZB/83zZRjnZM
LVMzKs8WVYUW+SC13CkwyVXd0hvKeZHFYfPGlhX05vONRCaowvRltIWOSbe12pGdkEvtcJJm
E9NdTaYu+QiVc7d12m+0TgLRPu7hT3zl6AGkY5nnF0hFBtiFGSfjL1EIivqhD8zNMO9scM6P
/FYATqgB/004xxLtCzmufdHlwl+v3I9ZBkwvGI8G7HgbZr8RZtahBKfqz6BRclMe0h+Ocn2p
+UPAJkA6ir0/DRcVoLvFHrnn/G9ewR2Fqou/cqlnij+PvzKJG27U+08Z8WzUPQkp8CZPRY6j
us5XjnquctTzjdtVj9TjDHcw6DomMQUadhUkXa1ERWr3+nQPS0/R9n0JJ6+kQr0wzk+YhwWt
hcXhwkYT/Z+cmEcrchYrmhcnEyBQZDGU/Is/DDIAj9KHxQxTtGGjRjVow/5q/MMu/KaOYT5F
4GC5XAbMCreLpDXClvcCU4DjbZI1QGx0Ve6XcOOZogDR7ISXFPELpe76+F586ZC/v9LXyCFN
tMZHGaeORb3IKqsDLGQxcHiLrfcilVd+Dxg7alsEeqx6UUv5XP9jJhh+wJNn2yXurnzvVJJd
9asErLwnWfSy5/w133XXfNczanfJy6fFFz5As+6KV7XKbKIuoUJO+hZdVBHbf5qLxAGX5Vzr
U7OB9spRWMYQJfMqdSG6bIic8Bonqxz9mdkHG+ZJbGHqN3/m++7M9zMjduednhXfywNNurPO
dTxz3rdpbYk1ROAPfRUUe2LXmyJ9xDL30JnkpMbVC47sWpGi1ZSBIGI1bqRK1APZjdSbtb5P
gGsVY2Tl+bubYbOHb+4bfVSIQfPUaOg6CDVgxCFeOYlNmeCUW9gEqAaMSn7IqyShEflvQTDL
HOP+Rs8REidRz3P45T6c8zhn6020dF0RqeIIPEOsIJX/8J6BaPggmGwT/mLq3qBWp9FFmrl+
o+tQI2utMofi2GiOeUTFA5dMc3wxvJbOEJNtfzYa/zrGsRz8CyT3xV0SdgAA

--Pql/uPZNXIm1JCle
Content-Type: application/x-gzip
Content-Disposition: attachment; filename="find-beacon-node-patch.gz"
Content-Transfer-Encoding: base64

H4sICF8WC0EAA2ZpbmQtYmVhY29uLW5vZGUtcGF0Y2gApVRbT9swFH5OfsXpC8qVXIoKa1VW
BEWwVUWD8YRQVBxnWLTOZKfVppX/vnOclN6YhDQ/2PE533euPrmWOf/VBcE5P4nTJMlkmfND
Zvf/f9m353dQiCnvQsQWWpVlFWnFIv1bR5JXxl206zhY2IpXSvCFkD9A4aFFKSE5bKd2LooC
wjmEiq77MYdhuCe00k/wZT6FNI6PIG13k+MuSsIYl2WM+r6/T2ona1KMpKTb7tQkezCA8LiT
BmkM/nGnE7SPYDCwN0wUQubGTlaUKnviE1ZKR1dqzqo1ipUz8AQLYJ4JWZ1kFXizCZvkuQps
sHbRGXueSMmn4NFHALgr8LQWuWvDHzvcJ5B/8KTo2f6/lQF4T1xXPfSIQcDzRD8Tnr5JnmlW
Kh6AOVCBKhJDH8b3o1GvudYoFIYJGkJTZAav18PhsHY3vrkYZldnd1dOk6JLHnf0o5vzr45g
RjW6vvueXd7cDs/OrxwK80Cw8FSwjEw/0PYYgBTm6pr8LVGAs7Z4dnFxmw2/ITc8RdyqsrDy
DwcHRAJcDYTqCv0+mHOtdajGD8kjqWJYLrcEDZVrPeWbJGjN+IzNfhos+JAGG1CRY0FrGy6u
Onpruzf4JJjiBYbv9iIPo1YvOAkFV1wynoMXGc6T4pMX6oJJvvXx7F3iWPgqKyHnTWOtVRed
dwriwmdIoAtxgyV/u4XZLgZJazfGru+bOPlUc9gkt3aLuFwSzhTxgzUkG/G7GRlHJqvTjedM
FScwac1rbtXPuTZhOYsSh2qnHTk37SC4axJZzcEah3qDNT17g7zNRjNCYFmvuL3uP//78XoA
Qgv/gHMloR7f5tJM6qtt/wXEyuJBswUAAA==

--Pql/uPZNXIm1JCle
Content-Type: application/x-gzip
Content-Disposition: attachment; filename="ath-ibss-patch.gz"
Content-Transfer-Encoding: base64

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

--Pql/uPZNXIm1JCle--