Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 9 Feb 2012 23:18:13 -0800
From:      Adrian Chadd <adrian@freebsd.org>
To:        Bernhard Schmidt <bschmidt@freebsd.org>
Cc:        freebsd-wireless@freebsd.org
Subject:   Re: [net80211] support vendor bitmap entries; teach if_ath to export PHY error code in error frames
Message-ID:  <CAJ-Vmonmk=0maQcJd8iZscZvRxi%2BZcZiwWQyZ1r1Ju4QyhgKXw@mail.gmail.com>
In-Reply-To: <CAJ-Vmo=6xF8pWceBQVb4x3PYbLoGiiiAh9u2ZA8A=bAQdrOFdg@mail.gmail.com>
References:  <CAJ-VmonSrcSQmZeENgH1fagnn6DOMhX6rC-n9=dOtypTabcSLg@mail.gmail.com> <CAAgh0_aAijDoguQCJO8jR=cZ5LrZGLfxpGruZWGsjGf987-zOw@mail.gmail.com> <CAJ-Vmon%2BpQ9U7-YEQ1pYVbHM=5D=cp-z6eoPGJhV_GU3r7hy8A@mail.gmail.com> <201202062059.16816.bschmidt@freebsd.org> <CAJ-Vmo=6xF8pWceBQVb4x3PYbLoGiiiAh9u2ZA8A=bAQdrOFdg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--f46d0444813b92008104b896eed1
Content-Type: text/plain; charset=ISO-8859-1

Hi,

Please find the second pass of this attached.

Fixes:

* I was missing a call to ath_rx_tap_vendor() when processing normal frames
* I've extended the data stored in the radiotap vendor header to
include the EVM and per-chain RSSI.
* I'm also storing the _raw_ combined RSSI in the radiotap header.
* The rs_status and rs_phyerr_code fields are also stored.

The EVM isn't strictly needed for radar work and the only RSSI
required for radar is rssi_ctl[0] and rssi_ext[0] (with the combined
RSSI used in some instances.)

What's left:

* I have a need for some continuous feedback about how busy the
primary/extension channels are. I may add some method of encoding this
in the radiotap header as a vendor extension; I'm not sure yet.

I don't like the idea of doing this via radiotap but I need a way to
encode this live as part of the stream so it can be played back with
the rest of the radar error frames.

I'm not sure if I really _want_ this to be part of the default FreeBSD
build but honestly, having these as vendor extensions will make
debugging a few things a lot easier moving forward. For example, users
could begin writing live traffic sniffing applications that track
per-RX-rate EVM in userland and provide graphical feedback.

Bernhard: what do you think?



Adrian

--f46d0444813b92008104b896eed1
Content-Type: text/x-patch; charset=US-ASCII;
	name="net80211-ath-radiotap-phyerr-2.diff"
Content-Disposition: attachment; 
	filename="net80211-ath-radiotap-phyerr-2.diff"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gygvycys0

SW5kZXg6IHN5cy9uZXQ4MDIxMS9pZWVlODAyMTFfbm9kZS5jCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9u
ZXQ4MDIxMS9pZWVlODAyMTFfbm9kZS5jCShyZXZpc2lvbiAyMzA4NTUpCisrKyBzeXMvbmV0ODAy
MTEvaWVlZTgwMjExX25vZGUuYwkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsOCBAQAogI2lu
Y2x1ZGUgPHN5cy9tYnVmLmg+ICAgCiAjaW5jbHVkZSA8c3lzL21hbGxvYy5oPgogI2luY2x1ZGUg
PHN5cy9rZXJuZWwuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvcHJv
Yy5oPgogCiAjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgogIApAQCAtNDMxLDYgKzQzMyw5IEBACiAJ
bmkgPSBpZWVlODAyMTFfYWxsb2Nfbm9kZSgmaWMtPmljX3N0YSwgdmFwLCB2YXAtPml2X215YWRk
cik7CiAJS0FTU0VSVChuaSAhPSBOVUxMLCAoInVuYWJsZSB0byBzZXR1cCBpbml0aWFsIEJTUyBu
b2RlIikpOwogCW9ic3MgPSB2YXAtPml2X2JzczsKKwlwcmludGYoIlslbGxkXTogJXM6IGl2X2Jz
cz0lcCwgbmV3IGl2X2Jzcz0lcFxuIiwKKwkgICAgKGxvbmcgbG9uZyBpbnQpIGN1cnRocmVhZC0+
dGRfdGlkLAorCSAgICBfX2Z1bmNfXyx2YXAtPml2X2JzcywgbmkpOwogCXZhcC0+aXZfYnNzID0g
aWVlZTgwMjExX3JlZl9ub2RlKG5pKTsKIAlpZiAob2JzcyAhPSBOVUxMKSB7CiAJCWNvcHlfYnNz
KG5pLCBvYnNzKTsKQEAgLTcwMCw2ICs3MDUsOSBAQAogCS8qCiAJICogQ29tbWl0dGVkIHRvIHNl
bGJzLCBzZXR1cCBzdGF0ZS4KIAkgKi8KKwlwcmludGYoIlslbGxkXTogJXM6IHNlbGJzPSVwLCBv
YnNzPSVwXG4iLAorCSAgICAobG9uZyBsb25nIGludCkgY3VydGhyZWFkLT50ZF90aWQsCisJICAg
IF9fZnVuY19fLCBzZWxicywgdmFwLT5pdl9ic3MpOwogCW9ic3MgPSB2YXAtPml2X2JzczsKIAkv
KgogCSAqIENoZWNrIGlmIG9sZCtuZXcgbm9kZSBoYXZlIHRoZSBzYW1lIGFkZHJlc3MgaW4gd2hp
Y2gKSW5kZXg6IHN5cy9uZXQ4MDIxMS9pZWVlODAyMTFfd2RzLmMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gc3lz
L25ldDgwMjExL2llZWU4MDIxMV93ZHMuYwkocmV2aXNpb24gMjMwODU1KQorKysgc3lzL25ldDgw
MjExL2llZWU4MDIxMV93ZHMuYwkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsOCBAQAogI2lu
Y2x1ZGUgPHN5cy9lcnJuby5oPgogI2luY2x1ZGUgPHN5cy9wcm9jLmg+CiAjaW5jbHVkZSA8c3lz
L3N5c2N0bC5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9wcm9jLmg+
CiAKICNpbmNsdWRlIDxuZXQvaWYuaD4KICNpbmNsdWRlIDxuZXQvaWZfbWVkaWEuaD4KQEAgLTE3
NSw2ICsxNzcsOSBAQAogCQkJLyoKIAkJCSAqIENvbW1pdHRlZCB0byBuZXcgbm9kZSwgc2V0dXAg
c3RhdGUuCiAJCQkgKi8KKwkJCXByaW50ZigiWyVsbGRdOiAlczogaXZfYnNzPSVwLCBuZXcgaXZf
YnNzPSVwXG4iLAorCQkJICAgIChsb25nIGxvbmcgaW50KSAoY3VydGhyZWFkLT50ZF90aWQpLAor
CQkJICAgIF9fZnVuY19fLCB2YXAtPml2X2JzcywgbmkpOwogCQkJb2JzcyA9IHZhcC0+aXZfYnNz
OwogCQkJdmFwLT5pdl9ic3MgPSBuaTsKIAkJCW5pLT5uaV93ZHN2YXAgPSB2YXA7CkBAIC0xOTcs
NiArMjAyLDkgQEAKIAkJICovCiAJCW5pID0gaWVlZTgwMjExX25vZGVfY3JlYXRlX3dkcyh2YXAs
IHZhcC0+aXZfZGVzX2Jzc2lkLCBjaGFuKTsKIAkJaWYgKG5pICE9IE5VTEwpIHsKKwkJCXByaW50
ZigiWyVsbGRdOiAlczogaXZfYnNzPSVwLCBuZXcgaXZfYnNzPSVwXG4iLAorCQkJICAgIChsb25n
IGxvbmcgaW50KSAoY3VydGhyZWFkLT50ZF90aWQpLAorCQkJICAgIF9fZnVuY19fLCB2YXAtPml2
X2JzcywgbmkpOwogCQkJb2JzcyA9IHZhcC0+aXZfYnNzOwogCQkJdmFwLT5pdl9ic3MgPSBpZWVl
ODAyMTFfcmVmX25vZGUobmkpOwogCQkJbmktPm5pX2ZsYWdzIHw9IElFRUU4MDIxMV9OT0RFX0FS
RUY7CkluZGV4OiBzeXMvbmV0ODAyMTEvaWVlZTgwMjExX3Zhci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5
cy9uZXQ4MDIxMS9pZWVlODAyMTFfdmFyLmgJKHJldmlzaW9uIDIzMDg1NSkKKysrIHN5cy9uZXQ4
MDIxMS9pZWVlODAyMTFfdmFyLmgJKHdvcmtpbmcgY29weSkKQEAgLTcwMCw2ICs3MDAsMTEgQEAK
IAkJdWludDMyX3QgdHhfcmFkaW90YXAsCiAJICAgIHN0cnVjdCBpZWVlODAyMTFfcmFkaW90YXBf
aGVhZGVyICpyaCwgaW50IHJsZW4sCiAJCXVpbnQzMl90IHJ4X3JhZGlvdGFwKTsKK3ZvaWQJaWVl
ZTgwMjExX3JhZGlvdGFwX2F0dGFjaHYoc3RydWN0IGllZWU4MDIxMWNvbSAqLAorCSAgICBzdHJ1
Y3QgaWVlZTgwMjExX3JhZGlvdGFwX2hlYWRlciAqdGgsCisJICAgIGludCB0bGVuLCBpbnQgbl90
eF92LCB1aW50MzJfdCB0eF9yYWRpb3RhcCwKKwkgICAgc3RydWN0IGllZWU4MDIxMV9yYWRpb3Rh
cF9oZWFkZXIgKnJoLAorCSAgICBpbnQgcmxlbiwgaW50IG5fcnhfdiwgdWludDMyX3QgcnhfcmFk
aW90YXApOwogdm9pZAlpZWVlODAyMTFfcmFkaW90YXBfZGV0YWNoKHN0cnVjdCBpZWVlODAyMTFj
b20gKik7CiB2b2lkCWllZWU4MDIxMV9yYWRpb3RhcF92YXR0YWNoKHN0cnVjdCBpZWVlODAyMTF2
YXAgKik7CiB2b2lkCWllZWU4MDIxMV9yYWRpb3RhcF92ZGV0YWNoKHN0cnVjdCBpZWVlODAyMTF2
YXAgKik7CkluZGV4OiBzeXMvbmV0ODAyMTEvaWVlZTgwMjExX3JhZGlvdGFwLmMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gc3lzL25ldDgwMjExL2llZWU4MDIxMV9yYWRpb3RhcC5jCShyZXZpc2lvbiAyMzA4NTUp
CisrKyBzeXMvbmV0ODAyMTEvaWVlZTgwMjExX3JhZGlvdGFwLmMJKHdvcmtpbmcgY29weSkKQEAg
LTQ3LDEzICs0NywyNCBAQAogCiAjaW5jbHVkZSA8bmV0ODAyMTEvaWVlZTgwMjExX3Zhci5oPgog
Ci1zdGF0aWMgaW50IHJhZGlvdGFwX29mZnNldChzdHJ1Y3QgaWVlZTgwMjExX3JhZGlvdGFwX2hl
YWRlciAqLCBpbnQpOworc3RhdGljIGludCByYWRpb3RhcF9vZmZzZXQoc3RydWN0IGllZWU4MDIx
MV9yYWRpb3RhcF9oZWFkZXIgKiwgaW50LCBpbnQpOwogCiB2b2lkCiBpZWVlODAyMTFfcmFkaW90
YXBfYXR0YWNoKHN0cnVjdCBpZWVlODAyMTFjb20gKmljLAogCXN0cnVjdCBpZWVlODAyMTFfcmFk
aW90YXBfaGVhZGVyICp0aCwgaW50IHRsZW4sIHVpbnQzMl90IHR4X3JhZGlvdGFwLAogCXN0cnVj
dCBpZWVlODAyMTFfcmFkaW90YXBfaGVhZGVyICpyaCwgaW50IHJsZW4sIHVpbnQzMl90IHJ4X3Jh
ZGlvdGFwKQogeworCWllZWU4MDIxMV9yYWRpb3RhcF9hdHRhY2h2KGljLCB0aCwgdGxlbiwgMCwg
dHhfcmFkaW90YXAsCisJICAgIHJoLCBybGVuLCAwLCByeF9yYWRpb3RhcCk7Cit9CisKK3ZvaWQK
K2llZWU4MDIxMV9yYWRpb3RhcF9hdHRhY2h2KHN0cnVjdCBpZWVlODAyMTFjb20gKmljLAorCXN0
cnVjdCBpZWVlODAyMTFfcmFkaW90YXBfaGVhZGVyICp0aCwKKwlpbnQgdGxlbiwgaW50IG5fdHhf
diwgdWludDMyX3QgdHhfcmFkaW90YXAsCisJc3RydWN0IGllZWU4MDIxMV9yYWRpb3RhcF9oZWFk
ZXIgKnJoLAorCWludCBybGVuLCBpbnQgbl9yeF92LCB1aW50MzJfdCByeF9yYWRpb3RhcCkKK3sK
ICNkZWZpbmUJQihfdikJKDE8PChfdikpCiAJaW50IG9mZjsKIApAQCAtNjMsOSArNzQsOSBAQAog
CS8qIGNhbGN1bGF0ZSBvZmZzZXQgdG8gY2hhbm5lbCBkYXRhICovCiAJb2ZmID0gLTE7CiAJaWYg
KHR4X3JhZGlvdGFwICYgQihJRUVFODAyMTFfUkFESU9UQVBfQ0hBTk5FTCkpCi0JCW9mZiA9IHJh
ZGlvdGFwX29mZnNldCh0aCwgSUVFRTgwMjExX1JBRElPVEFQX0NIQU5ORUwpOworCQlvZmYgPSBy
YWRpb3RhcF9vZmZzZXQodGgsIG5fdHhfdiwgSUVFRTgwMjExX1JBRElPVEFQX0NIQU5ORUwpOwog
CWVsc2UgaWYgKHR4X3JhZGlvdGFwICYgQihJRUVFODAyMTFfUkFESU9UQVBfWENIQU5ORUwpKQot
CQlvZmYgPSByYWRpb3RhcF9vZmZzZXQodGgsIElFRUU4MDIxMV9SQURJT1RBUF9YQ0hBTk5FTCk7
CisJCW9mZiA9IHJhZGlvdGFwX29mZnNldCh0aCwgbl90eF92LCBJRUVFODAyMTFfUkFESU9UQVBf
WENIQU5ORUwpOwogCWlmIChvZmYgPT0gLTEpIHsKIAkJaWZfcHJpbnRmKGljLT5pY19pZnAsICIl
czogbm8gdHggY2hhbm5lbCwgcmFkaW90YXAgMHgleCIsCiAJCSAgICBfX2Z1bmNfXywgdHhfcmFk
aW90YXApOwpAQCAtNzksOSArOTAsOSBAQAogCS8qIGNhbGN1bGF0ZSBvZmZzZXQgdG8gY2hhbm5l
bCBkYXRhICovCiAJb2ZmID0gLTE7CiAJaWYgKHJ4X3JhZGlvdGFwICYgQihJRUVFODAyMTFfUkFE
SU9UQVBfQ0hBTk5FTCkpCi0JCW9mZiA9IHJhZGlvdGFwX29mZnNldChyaCwgSUVFRTgwMjExX1JB
RElPVEFQX0NIQU5ORUwpOworCQlvZmYgPSByYWRpb3RhcF9vZmZzZXQocmgsIG5fcnhfdiwgSUVF
RTgwMjExX1JBRElPVEFQX0NIQU5ORUwpOwogCWVsc2UgaWYgKHJ4X3JhZGlvdGFwICYgQihJRUVF
ODAyMTFfUkFESU9UQVBfWENIQU5ORUwpKQotCQlvZmYgPSByYWRpb3RhcF9vZmZzZXQocmgsIElF
RUU4MDIxMV9SQURJT1RBUF9YQ0hBTk5FTCk7CisJCW9mZiA9IHJhZGlvdGFwX29mZnNldChyaCwg
bl9yeF92LCBJRUVFODAyMTFfUkFESU9UQVBfWENIQU5ORUwpOwogCWlmIChvZmYgPT0gLTEpIHsK
IAkJaWZfcHJpbnRmKGljLT5pY19pZnAsICIlczogbm8gcnggY2hhbm5lbCwgcmFkaW90YXAgMHgl
eCIsCiAJCSAgICBfX2Z1bmNfXywgcnhfcmFkaW90YXApOwpAQCAtMjYwLDcgKzI3MSw4IEBACiAg
KiBrbm93biAtMSBpcyByZXR1cm5lZC4KICAqLwogc3RhdGljIGludAotcmFkaW90YXBfb2Zmc2V0
KHN0cnVjdCBpZWVlODAyMTFfcmFkaW90YXBfaGVhZGVyICpyaCwgaW50IGl0ZW0pCityYWRpb3Rh
cF9vZmZzZXQoc3RydWN0IGllZWU4MDIxMV9yYWRpb3RhcF9oZWFkZXIgKnJoLAorICAgIGludCBu
X3ZlbmRvcl9hdHRyaWJ1dGVzLCBpbnQgaXRlbSkKIHsKIAlzdGF0aWMgY29uc3Qgc3RydWN0IHsK
IAkJc2l6ZV90CWFsaWduLCB3aWR0aDsKQEAgLTMzNCw2ICszNDYsOCBAQAogCWludCBvZmYsIGk7
CiAKIAlvZmYgPSBzaXplb2Yoc3RydWN0IGllZWU4MDIxMV9yYWRpb3RhcF9oZWFkZXIpOworCW9m
ZiArPSBuX3ZlbmRvcl9hdHRyaWJ1dGVzICogKHNpemVvZih1aW50MzJfdCkpOworCiAJZm9yIChp
ID0gMDsgaSA8IElFRUU4MDIxMV9SQURJT1RBUF9FWFQ7IGkrKykgewogCQlpZiAoKHByZXNlbnQg
JiAoMTw8aSkpID09IDApCiAJCQljb250aW51ZTsKSW5kZXg6IHN5cy9uZXQ4MDIxMS9pZWVlODAy
MTFfcmFkaW90YXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvbmV0ODAyMTEvaWVlZTgwMjExX3JhZGlv
dGFwLmgJKHJldmlzaW9uIDIzMDg1NSkKKysrIHN5cy9uZXQ4MDIxMS9pZWVlODAyMTFfcmFkaW90
YXAuaAkod29ya2luZyBjb3B5KQpAQCAtNTQsNiArNTQsMTIgQEAKIAogI2RlZmluZQlJRUVFODAy
MTFfUkFESU9UQVBfSERSTEVOCTY0CS8qIFhYWCBkZXByZWNhdGVkICovCiAKK3N0cnVjdCBpZWVl
ODAyMTFfcmFkaW90YXBfdmVuZG9yX2hlYWRlciB7CisJdWludDhfdAkJdmhfb3VpWzNdOwkvKiAz
IGJ5dGUgdmVuZG9yIE9VSSAqLworCXVpbnQ4X3QJCXZoX3N1Yl9uczsJLyogU3ViIG5hbWVzcGFj
ZSBvZiB0aGlzIHNlY3Rpb24gKi8KKwl1aW50MTZfdAl2aF9za2lwX2xlbjsJLyogTGVuZ3RoIG9m
IHRoaXMgdmVuZG9yIHNlY3Rpb24gKi8KK30gX19wYWNrZWQ7CisKIC8qCiAgKiBUaGUgcmFkaW8g
Y2FwdHVyZSBoZWFkZXIgcHJlY2VkZXMgdGhlIDgwMi4xMSBoZWFkZXIuCiAgKgpJbmRleDogc3lz
L2Rldi9hdGgvYXRoX2hhbC9hcjU0MTYvYXI1NDE2X21pc2MuYwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMv
ZGV2L2F0aC9hdGhfaGFsL2FyNTQxNi9hcjU0MTZfbWlzYy5jCShyZXZpc2lvbiAyMzA4NTUpCisr
KyBzeXMvZGV2L2F0aC9hdGhfaGFsL2FyNTQxNi9hcjU0MTZfbWlzYy5jCSh3b3JraW5nIGNvcHkp
CkBAIC03MTQsMTMgKzcxNCwxMSBAQAogCXBlLT5wZV9yZWxwd3IgPSBNUyh2YWwsIEFSX1BIWV9S
QURBUl8xX1JFTFBXUl9USFJFU0gpOwogCWlmICh0ZW1wKQogCQlwZS0+cGVfcmVscHdyIHw9IEhB
TF9QSFlFUlJfUEFSQU1fRU5BQkxFOwotCXRlbXAgPSB2YWwgJiBBUl9QSFlfUkFEQVJfMV9SRUxT
VEVQX0NIRUNLOwogCXBlLT5wZV9yZWxzdGVwID0gTVModmFsLCBBUl9QSFlfUkFEQVJfMV9SRUxT
VEVQX1RIUkVTSCk7Ci0JaWYgKHRlbXApCi0JCXBlLT5wZV9lbmFibGVkID0gMTsKLQllbHNlCi0J
CXBlLT5wZV9lbmFibGVkID0gMDsKIAorCXBlLT5wZV9lbmFibGVkID0gISEKKwkgICAgKE9TX1JF
R19SRUFEKGFoLCBBUl9QSFlfUkFEQVJfMCkgJiBBUl9QSFlfUkFEQVJfMF9FTkEpOworCiAJcGUt
PnBlX21heGxlbiA9IE1TKHZhbCwgQVJfUEhZX1JBREFSXzFfTUFYTEVOKTsKIAlwZS0+cGVfZXh0
Y2hhbm5lbCA9ICEhIChPU19SRUdfUkVBRChhaCwgQVJfUEhZX1JBREFSX0VYVCkgJgogCSAgICBB
Ul9QSFlfUkFEQVJfRVhUX0VOQSk7CkBAIC03NjcsOSArNzY1LDE1IEBACiAKIAkvKkVuYWJsZSBG
RlQgZGF0YSovCiAJdmFsIHw9IEFSX1BIWV9SQURBUl8wX0ZGVF9FTkE7CisJT1NfUkVHX1dSSVRF
KGFoLCBBUl9QSFlfUkFEQVJfMCwgdmFsKTsKIAotCU9TX1JFR19XUklURShhaCwgQVJfUEhZX1JB
REFSXzAsIHZhbCB8IEFSX1BIWV9SQURBUl8wX0VOQSk7CisJLyogSW1wbGljaXRseSBlbmFibGUg
Ki8KKwlpZiAocGUtPnBlX2VuYWJsZWQgPT0gMSkKKwkJT1NfUkVHX1NFVF9CSVQoYWgsIEFSX1BI
WV9SQURBUl8wLCBBUl9QSFlfUkFEQVJfMF9FTkEpOworCWVsc2UgaWYgKHBlLT5wZV9lbmFibGVk
ID09IDApCisJCU9TX1JFR19DTFJfQklUKGFoLCBBUl9QSFlfUkFEQVJfMCwgQVJfUEhZX1JBREFS
XzBfRU5BKTsKIAorCS8qIFhYWCBpcyB0aGlzIGFyb3VuZCB0aGUgY29ycmVjdCB3YXk/ISAqLwog
CWlmIChwZS0+cGVfdXNlZmlyMTI4ID09IDEpCiAJCU9TX1JFR19DTFJfQklUKGFoLCBBUl9QSFlf
UkFEQVJfMSwgQVJfUEhZX1JBREFSXzFfVVNFX0ZJUjEyOCk7CiAJZWxzZSBpZiAocGUtPnBlX3Vz
ZWZpcjEyOCA9PSAwKQpJbmRleDogc3lzL2Rldi9hdGgvaWZfYXRoaW9jdGwuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBzeXMvZGV2L2F0aC9pZl9hdGhpb2N0bC5oCShyZXZpc2lvbiAyMzA4NTUpCisrKyBzeXMv
ZGV2L2F0aC9pZl9hdGhpb2N0bC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODgsMTAgKzE4OCw3MCBA
QAogCSgxIDw8IElFRUU4MDIxMV9SQURJT1RBUF9EQk1fQU5UU0lHTkFMKQl8IFwKIAkoMSA8PCBJ
RUVFODAyMTFfUkFESU9UQVBfREJNX0FOVE5PSVNFKQl8IFwKIAkoMSA8PCBJRUVFODAyMTFfUkFE
SU9UQVBfWENIQU5ORUwpCXwgXAorCSgxIDw8IElFRUU4MDIxMV9SQURJT1RBUF9WRU5ET1JFWFQp
CXwgXAorCSgxIDw8IElFRUU4MDIxMV9SQURJT1RBUF9FWFQpCQl8IFwKIAkwKQogCisvKgorICog
VGhpcyBpcyBoaWdoZXIgdGhhbiB0aGUgdmVuZG9yIGJpdG1hcCB1c2VkIGluc2lkZQorICogdGhl
IEF0aGVyb3MgcmVmZXJlbmNlIGNvZGViYXNlLgorICovCisKKy8qIEJpdCA4ICovCisjZGVmaW5l
CUFUSF9SQURJT1RBUF9WRU5ET1JfSEVBREVSCTgKKworCisvKgorICogVXNpbmcgZm91ciBjaGFp
bnMgbWFrZXMgYWxsIHRoZSBmaWVsZHMgaW4gdGhlCisgKiBwZXItY2hhaW4gaW5mbyBoZWFkZXIg
YmUgNC1ieXRlIGFsaWduZWQuCisgKi8KKyNkZWZpbmUJQVRIX1JBRElPVEFQX01BWF9DSEFJTlMJ
CTQKKworLyoKKyAqIFRoZSB2ZW5kb3IgcmFkaW90YXAgaGVhZGVyIGRhdGEgbmVlZHMgdG8gYmU6
CisgKgorICogKyBBbGlnbmVkIHRvIGEgNCBieXRlIGFkZHJlc3MKKyAqICsgLi4gc28gYWxsIGlu
dGVybmFsIGZpZWxkcyBhcmUgNCBieXRlcyBhbGlnbmVkOworICogKyAuLiBhbmQgbm8gNjQgYml0
IGZpZWxkcyBhcmUgYWxsb3dlZC4KKyAqCisgKiBTbyBwYWRkaW5nIGlzIHJlcXVpcmVkIHRvIGVu
c3VyZSB0aGlzIGlzIHRoZSBjYXNlLgorICoKKyAqIE5vdGUgdGhhdCBiZWNhdXNlIG9mIHRoZSBs
YWNrIG9mIGFsaWdubWVudCB3aXRoIHRoZQorICogdmVuZG9yIGhlYWRlciAoNiBieXRlcyksIHRo
ZSBmaXJzdCBmaWVsZCBtdXN0IGJlCisgKiB0d28gYnl0ZXMgc28gaXQgY2FuIGJlIGFjY2Vzc2Vk
IGJ5IGFsaWdubWVudC1zdHJpY3QKKyAqIHBsYXRmb3JtIChlZyBNSVBTLikKKyAqLworc3RydWN0
IGF0aF9yYWRpb3RhcF92ZW5kb3JfaGRyIHsJCS8qIDMwIGJ5dGVzICovCisJdV9pbnQ4X3QJdmhf
dmVyc2lvbjsJCS8qIDEgKi8KKwl1X2ludDhfdAl2aF9yeF9jaGFpbm1hc2s7CS8qIDEgKi8KKwor
CS8qIEF0IHRoaXMgcG9pbnQgaXQgc2hvdWxkIGJlIDQgYnl0ZSBhbGlnbmVkICovCisJdV9pbnQz
Ml90CWV2bVtBVEhfUkFESU9UQVBfTUFYX0NIQUlOU107CS8qIDQgKiA0ID0gMTYgKi8KKworCXVf
aW50OF90CXJzc2lfY3RsW0FUSF9SQURJT1RBUF9NQVhfQ0hBSU5TXTsJLyogNCAqLworCXVfaW50
OF90CXJzc2lfZXh0W0FUSF9SQURJT1RBUF9NQVhfQ0hBSU5TXTsJLyogNCAqLworCisJdV9pbnQ4
X3QJdmhfcGh5ZXJyX2NvZGU7CS8qIFBoeSBlcnJvciBjb2RlLCBvciAweGZmICovCisJdV9pbnQ4
X3QJdmhfcnNfc3RhdHVzOwkvKiBSWCBzdGF0dXMgKi8KKwl1X2ludDhfdAl2aF9yc3NpOwkvKiBS
YXcgUlNTSSAqLworCXVfaW50OF90CXZoX3BhZDFbMV07CS8qIFBhZCB0byA0IGJ5dGUgYm91bmRh
cnkgKi8KK30gX19wYWNrZWQ7CisKIHN0cnVjdCBhdGhfcnhfcmFkaW90YXBfaGVhZGVyIHsKLQlz
dHJ1Y3QgaWVlZTgwMjExX3JhZGlvdGFwX2hlYWRlciB3cl9paGRyOworCXN0cnVjdCBpZWVlODAy
MTFfcmFkaW90YXBfaGVhZGVyIHdyX2loZHI7CS8qIDggKi8KKwkvKiBWZW5kb3IgZXh0ZW5zaW9u
IGhlYWRlciBiaXRtYXAgKi8KKwl1X2ludDMyX3QJd3JfZXh0X2JpdG1hcDsJCS8qIDQgKi8KKwor
CS8qCisJICogVGhpcyBwYWRkaW5nIGlzIG5lZWRlZCBiZWNhdXNlOgorCSAqICsgdGhlIHJhZGlv
dGFwIGhlYWRlciBpcyA4IGJ5dGVzOworCSAqICsgdGhlIGV4dGVuc2lvbiBiaXRtYXAgaXMgNCBi
eXRlczsKKwkgKiArIHRoZSB0c2YgaXMgOCBieXRlcywgc28gaXQgbXVzdCBzdGFydCBvbiBhbiA4
IGJ5dGUKKwkgKiAgIGJvdW5kYXJ5LgorCSAqLworCXVfaW50MzJfdAl3cl9wYWQxOworCisJLyog
Tm9ybWFsIHJhZGlvdGFwIGZpZWxkcyAqLwogCXVfaW50NjRfdAl3cl90c2Y7CiAJdV9pbnQ4X3QJ
d3JfZmxhZ3M7CiAJdV9pbnQ4X3QJd3JfcmF0ZTsKQEAgLTIwMyw2ICsyNjMsMjQgQEAKIAl1X2lu
dDE2X3QJd3JfY2hhbl9mcmVxOwogCXVfaW50OF90CXdyX2NoYW5faWVlZTsKIAlpbnQ4X3QJCXdy
X2NoYW5fbWF4cG93OworCisJLyoKKwkgKiBWZW5kb3IgaGVhZGVyIHNlY3Rpb24sIGFzIHJlcXVp
cmVkIGJ5IHRoZQorCSAqIHByZXNlbmNlIG9mIHRoZSB2ZW5kb3IgZXh0ZW5zaW9uIGJpdCBhbmQg
Yml0bWFwCisJICogZW50cnkuCisJICoKKwkgKiBYWFggVGhpcyBtdXN0IGJlIGFsaWduZWQgdG8g
YSA0IGJ5dGUgYWRkcmVzcz8KKwkgKiBYWFggb3IgOCBieXRlIGFkZHJlc3M/CisJICovCisJc3Ry
dWN0IGllZWU4MDIxMV9yYWRpb3RhcF92ZW5kb3JfaGVhZGVyCXdyX3ZoOwkvKiA2IGJ5dGVzICov
CisKKwkvKgorCSAqIEJlY2F1c2Ugb2YgdGhlIGxhY2sgb2YgYWxpZ25tZW50IGVuZm9yY2VkIGJ5
IHRoZSBhYm92ZQorCSAqIGhlYWRlciwgdGhpcyB2ZW5kb3Igc2VjdGlvbiB3b24ndCBiZSBhbGln
bmVkIGluIGFueQorCSAqIHVzZWZ1bCB3YXkuICBTbywgdGhpcyB3aWxsIGluY2x1ZGUgYSB0d28t
Ynl0ZSB2ZXJzaW9uCisJICogdmFsdWUgd2hpY2ggd2lsbCBmb3JjZSB0aGUgc3RydWN0dXJlIHRv
IGJlIDQtYnl0ZSBhbGlnbmVkLgorCSAqLworCXN0cnVjdCBhdGhfcmFkaW90YXBfdmVuZG9yX2hk
cgl3cl92OwogfSBfX3BhY2tlZDsKIAogI2RlZmluZSBBVEhfVFhfUkFESU9UQVBfUFJFU0VOVCAo
CQlcCkluZGV4OiBzeXMvZGV2L2F0aC9hdGhfZGZzL251bGwvZGZzX251bGwuYwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBzeXMvZGV2L2F0aC9hdGhfZGZzL251bGwvZGZzX251bGwuYwkocmV2aXNpb24gMjMxMDk5
KQorKysgc3lzL2Rldi9hdGgvYXRoX2Rmcy9udWxsL2Rmc19udWxsLmMJKHdvcmtpbmcgY29weSkK
QEAgLTEyMCw3ICsxMjAsNyBAQAogaW50CiBhdGhfZGZzX3JhZGFyX2VuYWJsZShzdHJ1Y3QgYXRo
X3NvZnRjICpzYywgc3RydWN0IGllZWU4MDIxMV9jaGFubmVsICpjaGFuKQogewotI2lmIDAKKyNp
ZiAxCiAJSEFMX1BIWUVSUl9QQVJBTSBwZTsKIAogCS8qIENoZWNrIGlmIHRoZSBjdXJyZW50IGNo
YW5uZWwgaXMgcmFkYXItZW5hYmxlZCAqLwpJbmRleDogc3lzL2Rldi9hdGgvaWZfYXRoLmMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gc3lzL2Rldi9hdGgvaWZfYXRoLmMJKHJldmlzaW9uIDIzMDg1NSkKKysrIHN5
cy9kZXYvYXRoL2lmX2F0aC5jCSh3b3JraW5nIGNvcHkpCkBAIC03NjYsMTAgKzc2NiwxNCBAQAog
CWljLT5pY19hZGRiYV9zdG9wID0gYXRoX2FkZGJhX3N0b3A7CiAJaWMtPmljX2Jhcl9yZXNwb25z
ZSA9IGF0aF9iYXJfcmVzcG9uc2U7CiAKLQlpZWVlODAyMTFfcmFkaW90YXBfYXR0YWNoKGljLAot
CSAgICAmc2MtPnNjX3R4X3RoLnd0X2loZHIsIHNpemVvZihzYy0+c2NfdHhfdGgpLAorCS8qCisJ
ICogVGhlcmUncyBvbmUgdmVuZG9yIGJpdG1hcCBlbnRyeSBpbiB0aGUgUlggcmFkaW90YXAKKwkg
KiBoZWFkZXI7IG1ha2Ugc3VyZSB0aGF0J3MgdGFrZW4gaW50byBhY2NvdW50LgorCSAqLworCWll
ZWU4MDIxMV9yYWRpb3RhcF9hdHRhY2h2KGljLAorCSAgICAmc2MtPnNjX3R4X3RoLnd0X2loZHIs
IHNpemVvZihzYy0+c2NfdHhfdGgpLCAwLAogCQlBVEhfVFhfUkFESU9UQVBfUFJFU0VOVCwKLQkg
ICAgJnNjLT5zY19yeF90aC53cl9paGRyLCBzaXplb2Yoc2MtPnNjX3J4X3RoKSwKKwkgICAgJnNj
LT5zY19yeF90aC53cl9paGRyLCBzaXplb2Yoc2MtPnNjX3J4X3RoKSwgMSwKIAkJQVRIX1JYX1JB
RElPVEFQX1BSRVNFTlQpOwogCiAJLyoKQEAgLTM4ODQsNiArMzg4OCw1MyBAQAogfQogCiBzdGF0
aWMgdm9pZAorYXRoX3J4X3RhcF92ZW5kb3Ioc3RydWN0IGlmbmV0ICppZnAsIHN0cnVjdCBtYnVm
ICptLAorICAgIGNvbnN0IHN0cnVjdCBhdGhfcnhfc3RhdHVzICpycywgdV9pbnQ2NF90IHRzZiwg
aW50MTZfdCBuZikKK3sKKwlzdHJ1Y3QgYXRoX3NvZnRjICpzYyA9IGlmcC0+aWZfc29mdGM7CisK
KwkvKiBGaWxsIGluIHRoZSBleHRlbnNpb24gYml0bWFwICovCisJc2MtPnNjX3J4X3RoLndyX2V4
dF9iaXRtYXAgPSBodG9sZTMyKDEgPDwgQVRIX1JBRElPVEFQX1ZFTkRPUl9IRUFERVIpOworCisJ
LyogRmlsbCBpbiB0aGUgdmVuZG9yIGhlYWRlciAqLworCXNjLT5zY19yeF90aC53cl92aC52aF9v
dWlbMF0gPSAweDdmOworCXNjLT5zY19yeF90aC53cl92aC52aF9vdWlbMV0gPSAweDAzOworCXNj
LT5zY19yeF90aC53cl92aC52aF9vdWlbMl0gPSAweDAwOworCisJLyogWFhYIHdoYXQgc2hvdWxk
IHRoaXMgYmU/ICovCisJc2MtPnNjX3J4X3RoLndyX3ZoLnZoX3N1Yl9ucyA9IDA7CisJc2MtPnNj
X3J4X3RoLndyX3ZoLnZoX3NraXBfbGVuID0KKwkgICAgaHRvbGUxNihzaXplb2Yoc3RydWN0IGF0
aF9yYWRpb3RhcF92ZW5kb3JfaGRyKSk7CisKKwkvKiBHZW5lcmFsIHZlcnNpb24gaW5mbyAqLwor
CXNjLT5zY19yeF90aC53cl92LnZoX3ZlcnNpb24gPSAxOworCisJc2MtPnNjX3J4X3RoLndyX3Yu
dmhfcnhfY2hhaW5tYXNrID0gc2MtPnNjX3J4Y2hhaW5tYXNrOworCisJLyogcnNzaSAqLworCXNj
LT5zY19yeF90aC53cl92LnJzc2lfY3RsWzBdID0gcnMtPnJzX3Jzc2lfY3RsWzBdOworCXNjLT5z
Y19yeF90aC53cl92LnJzc2lfY3RsWzFdID0gcnMtPnJzX3Jzc2lfY3RsWzFdOworCXNjLT5zY19y
eF90aC53cl92LnJzc2lfY3RsWzJdID0gcnMtPnJzX3Jzc2lfY3RsWzJdOworCXNjLT5zY19yeF90
aC53cl92LnJzc2lfZXh0WzBdID0gcnMtPnJzX3Jzc2lfZXh0WzBdOworCXNjLT5zY19yeF90aC53
cl92LnJzc2lfZXh0WzFdID0gcnMtPnJzX3Jzc2lfZXh0WzFdOworCXNjLT5zY19yeF90aC53cl92
LnJzc2lfZXh0WzJdID0gcnMtPnJzX3Jzc2lfZXh0WzJdOworCisJLyogZXZtICovCisJc2MtPnNj
X3J4X3RoLndyX3YuZXZtWzBdID0gcnMtPnJzX2V2bTA7CisJc2MtPnNjX3J4X3RoLndyX3YuZXZt
WzFdID0gcnMtPnJzX2V2bTE7CisJc2MtPnNjX3J4X3RoLndyX3YuZXZtWzJdID0gcnMtPnJzX2V2
bTI7CisJLyogWFhYIFRPRE86IGV4dGVuZCB0aGlzIHRvIGluY2x1ZGUgMy1zdHJlYW0gRVZNICov
CisKKwkvKiBwaHllcnIgaW5mbyAqLworCWlmIChycy0+cnNfc3RhdHVzICYgSEFMX1JYRVJSX1BI
WSkKKwkJc2MtPnNjX3J4X3RoLndyX3YudmhfcGh5ZXJyX2NvZGUgPSBycy0+cnNfcGh5ZXJyOwor
CWVsc2UKKwkJc2MtPnNjX3J4X3RoLndyX3YudmhfcGh5ZXJyX2NvZGUgPSAweGZmOworCXNjLT5z
Y19yeF90aC53cl92LnZoX3JzX3N0YXR1cyA9IHJzLT5yc19zdGF0dXM7CisJc2MtPnNjX3J4X3Ro
LndyX3YudmhfcnNzaSA9IHJzLT5yc19yc3NpOworfQorCitzdGF0aWMgdm9pZAogYXRoX3J4X3Rh
cChzdHJ1Y3QgaWZuZXQgKmlmcCwgc3RydWN0IG1idWYgKm0sCiAJY29uc3Qgc3RydWN0IGF0aF9y
eF9zdGF0dXMgKnJzLCB1X2ludDY0X3QgdHNmLCBpbnQxNl90IG5mKQogewpAQCAtMzkxNSw3ICsz
OTY2LDcgQEAKIAkJCXNjLT5zY19yeF90aC53cl9mbGFncyB8PSBJRUVFODAyMTFfUkFESU9UQVBf
Rl9TSE9SVEdJOwogCX0KICNlbmRpZgotCXNjLT5zY19yeF90aC53cl90c2YgPSBodG9sZTY0KGF0
aF9leHRlbmRfdHNmKHNjLCBycy0+cnNfdHN0YW1wLCB0c2YpKTsKKwlzYy0+c2NfcnhfdGgud3Jf
dHNmID0gdHNmOwogCWlmIChycy0+cnNfc3RhdHVzICYgSEFMX1JYRVJSX0NSQykKIAkJc2MtPnNj
X3J4X3RoLndyX2ZsYWdzIHw9IElFRUU4MDIxMV9SQURJT1RBUF9GX0JBREZDUzsKIAkvKiBYWFgg
cHJvcGFnYXRlIG90aGVyIGVycm9yIGZsYWdzIGZyb20gZGVzY3JpcHRvciAqLwpAQCAtNDE1Niw2
ICs0MjA3LDcgQEAKIAkJCQltLT5tX3BrdGhkci5sZW4gPSBtLT5tX2xlbiA9IGxlbjsKIAkJCQli
Zi0+YmZfbSA9IE5VTEw7CiAJCQkJYXRoX3J4X3RhcChpZnAsIG0sIHJzLCByc3RhbXAsIG5mKTsK
KwkJCQlhdGhfcnhfdGFwX3ZlbmRvcihpZnAsIG0sIHJzLCByc3RhbXAsIG5mKTsKIAkJCQlpZWVl
ODAyMTFfcmFkaW90YXBfcnhfYWxsKGljLCBtKTsKIAkJCQltX2ZyZWVtKG0pOwogCQkJfQpAQCAt
NDI1MSw4ICs0MzAzLDEwIEBACiAJCSAqIG1hdGVyaWFsIHJlcXVpcmVkIGJ5IGllZWU4MDIxMV9p
bnB1dC4gIE5vdGUgdGhhdAogCQkgKiBub2lzZSBzZXR0aW5nIGlzIGZpbGxlZCBpbiBhYm92ZS4K
IAkJICovCi0JCWlmIChpZWVlODAyMTFfcmFkaW90YXBfYWN0aXZlKGljKSkKKwkJaWYgKGllZWU4
MDIxMV9yYWRpb3RhcF9hY3RpdmUoaWMpKSB7CiAJCQlhdGhfcnhfdGFwKGlmcCwgbSwgcnMsIHJz
dGFtcCwgbmYpOworCQkJYXRoX3J4X3RhcF92ZW5kb3IoaWZwLCBtLCBycywgcnN0YW1wLCBuZik7
CisJCX0KIAogCQkvKgogCQkgKiBGcm9tIHRoaXMgcG9pbnQgb24gd2UgYXNzdW1lIHRoZSBmcmFt
ZSBpcyBhdCBsZWFzdAo=
--f46d0444813b92008104b896eed1--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmonmk=0maQcJd8iZscZvRxi%2BZcZiwWQyZ1r1Ju4QyhgKXw>