Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 11 Jan 2012 05:40:58 +0100
From:      Monthadar Al Jaberi <monthadar@gmail.com>
To:        freebsd-wireless@freebsd.org
Subject:   11s mesh path setup problem
Message-ID:  <CA%2BsBSoJWXD5S-zvxHR_=iwh26G0bd00trR=E-jCUBD03uMrU%2BQ@mail.gmail.com>

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

Hi,

Current hwmp cant handle to setup a path between 4 nodes in a line
topology (among other things it cant handle)

Below you will find a small patch to correct this with some debug
output cleanup and comments.

After the patch, you should be able to e.g. ping from node 4 to node 1
and get a ping reply back, he is what the output from ifconfig list
mesh should look like on all 4 nodes after one ping packet.

Node1# ifconfig wlan1 list mesh
DEST    NEXT HOP  HOPS METRIC LIFETIME   MSEQ FLAGS
Node2    Node2         1         17018     5000          0         V
Node3    Node2         2         34036     5000          0         V
Node4    Node2         3         34036     5000          3         V

Node2# ifconfig wlan1 list mesh
DEST    NEXT HOP  HOPS METRIC LIFETIME   MSEQ FLAGS
Node1    Node1         1   17018     5000      3    V
Node3    Node3         1   17018     5000      0    V
Node4    Node3         2   17018     5000      3    V

Node3# ifconfig wlan1 list mesh
DEST    NEXT HOP  HOPS METRIC LIFETIME   MSEQ FLAGS
Node2    Node2         1         0            5000          0          V
Node4    Node4         1         0            5000          3          V
Node1    Node2         2         34036     5000          3          V

Node4# ifconfig wlan1 list mesh
DEST    NEXT HOP  HOPS METRIC LIFETIME   MSEQ FLAGS
Node3    Node3         1         0            5000          0          V
Node1    Node3         3         51054     5000          3          V

If anyone could try it that would be nice, either on real hardware as
I did above, or in a simulated environment
(https://github.com/monthadar/FreeBSD-IEEE80211s-simulator/wiki) :)

and please do test other scenarios :)

patch is attached.

-- 
Monthadar Al Jaberi

--14dae9340cc7f5f09404b6393c41
Content-Type: text/x-patch; charset=US-ASCII;
	name="patch_11s_4_nodes_in_line.patch"
Content-Disposition: attachment; filename="patch_11s_4_nodes_in_line.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gx9v1nv70

ZGlmZiAtLWdpdCBhL3N5cy9uZXQvaWZfZXRoZXJzdWJyLmMgYi9zeXMvbmV0L2lmX2V0aGVyc3Vi
ci5jCmluZGV4IDFkMTZhZTYuLmZjODZjOTQgMTAwNjQ0Ci0tLSBhL3N5cy9uZXQvaWZfZXRoZXJz
dWJyLmMKKysrIGIvc3lzL25ldC9pZl9ldGhlcnN1YnIuYwpAQCAtOTY4LDkgKzk2OCwxMyBAQCBk
aXNjYXJkOgogY2hhciAqCiBldGhlcl9zcHJpbnRmKGNvbnN0IHVfY2hhciAqYXApCiB7Ci0Jc3Rh
dGljIGNoYXIgZXRoZXJidWZbMThdOwotCXNucHJpbnRmKGV0aGVyYnVmLCBzaXplb2YgKGV0aGVy
YnVmKSwgIiU2RCIsIGFwLCAiOiIpOwotCXJldHVybiAoZXRoZXJidWYpOworCXN0YXRpYyBjaGFy
IGV0aGVyYnVmWzZdWzE4XTsKKwlzdGF0aWMgaW50IGkgPSAwOworCWNoYXIgKmJ1ZjsKKwlzbnBy
aW50ZihldGhlcmJ1ZltpXSwgc2l6ZW9mIChldGhlcmJ1ZlswXSksICIlNkQiLCBhcCwgIjoiKTsK
KwlidWYgPSBldGhlcmJ1ZltpXTsKKwlpID0gKGkrMSklMjsKKwlyZXR1cm4gKGJ1Zik7CiB9CiAK
IC8qCmRpZmYgLS1naXQgYS9zeXMvbmV0ODAyMTEvaWVlZTgwMjExX2h3bXAuYyBiL3N5cy9uZXQ4
MDIxMS9pZWVlODAyMTFfaHdtcC5jCmluZGV4IDc4NzI5ZmMuLjdjOTkzNTEgMTAwNjQ0Ci0tLSBh
L3N5cy9uZXQ4MDIxMS9pZWVlODAyMTFfaHdtcC5jCisrKyBiL3N5cy9uZXQ4MDIxMS9pZWVlODAy
MTFfaHdtcC5jCkBAIC0xMzksOSArMTM5LDEzIEBAIHN0YXRpYyBjb25zdCB1aW50OF90CWJyb2Fk
Y2FzdGFkZHJbSUVFRTgwMjExX0FERFJfTEVOXSA9CiB0eXBlZGVmIHVpbnQzMl90IGllZWU4MDIx
MV9od21wX3NlcTsKICNkZWZpbmUJSFdNUF9TRVFfTFQoYSwgYikJKChpbnQzMl90KSgoYSktKGIp
KSA8IDApCiAjZGVmaW5lCUhXTVBfU0VRX0xFUShhLCBiKQkoKGludDMyX3QpKChhKS0oYikpIDw9
IDApCisjZGVmaW5lCUhXTVBfU0VRX0VRKGEsIGIpCSgoaW50MzJfdCkoKGEpLShiKSkgPT0gMCkK
ICNkZWZpbmUJSFdNUF9TRVFfR1QoYSwgYikJKChpbnQzMl90KSgoYSktKGIpKSA+IDApCiAjZGVm
aW5lCUhXTVBfU0VRX0dFUShhLCBiKQkoKGludDMyX3QpKChhKS0oYikpID49IDApCiAKKy8qIFRo
ZSBsb25nZXIgb25lIG9mIHRoZSBsaWZldGltZSBzaG91bGQgYmUgc3RvcmVkIGFzIG5ldyBsaWZl
dGltZSAqLworI2RlZmluZSBNRVNIX1JPVVRFX0xJRkVUSU1FX01BWChhLCBiKQkoYSA+IGIgPyBh
IDogYikKKwogLyoKICAqIFByaXZhdGUgZXh0ZW5zaW9uIG9mIGllZWU4MDIxMV9tZXNoX3JvdXRl
LgogICovCkBAIC02NzYsOCArNjgwLDEwIEBAIGh3bXBfcmVjdl9wcmVxKHN0cnVjdCBpZWVlODAy
MTF2YXAgKnZhcCwgc3RydWN0IGllZWU4MDIxMV9ub2RlICpuaSwKIHsKIAlzdHJ1Y3QgaWVlZTgw
MjExX21lc2hfc3RhdGUgKm1zID0gdmFwLT5pdl9tZXNoOwogCXN0cnVjdCBpZWVlODAyMTFfbWVz
aF9yb3V0ZSAqcnQgPSBOVUxMOwotCXN0cnVjdCBpZWVlODAyMTFfbWVzaF9yb3V0ZSAqcnRvcmln
ID0gTlVMTDsKLQlzdHJ1Y3QgaWVlZTgwMjExX2h3bXBfcm91dGUgKmhyb3JpZzsKKwlzdHJ1Y3Qg
aWVlZTgwMjExX21lc2hfcm91dGUgKnJ0b3JpZyA9IE5VTEw7IC8vIE9yaWdpbmF0b3Igcm91dGUK
KwlzdHJ1Y3QgaWVlZTgwMjExX21lc2hfcm91dGUgKnJ0dGFyZyA9IE5VTEw7IC8vIFRhcmdldCBy
b3V0ZQorCXN0cnVjdCBpZWVlODAyMTFfaHdtcF9yb3V0ZSAqaHJvcmlnID0gTlVMTDsKKwlzdHJ1
Y3QgaWVlZTgwMjExX2h3bXBfcm91dGUgKmhydGFyZyA9IE5VTEw7CiAJc3RydWN0IGllZWU4MDIx
MV9od21wX3N0YXRlICpocyA9IHZhcC0+aXZfaHdtcDsKIAlzdHJ1Y3QgaWVlZTgwMjExX21lc2hw
cmVwX2llIHByZXA7CiAKQEAgLTY5Miw0NiArNjk4LDgzIEBAIGh3bXBfcmVjdl9wcmVxKHN0cnVj
dCBpZWVlODAyMTF2YXAgKnZhcCwgc3RydWN0IGllZWU4MDIxMV9ub2RlICpuaSwKIAkJcmV0dXJu
OwogCiAJSUVFRTgwMjExX05PVEUodmFwLCBJRUVFODAyMTFfTVNHX0hXTVAsIG5pLAotCSAgICAi
cmVjZWl2ZWQgUFJFUSwgc291cmNlICVzIiwgZXRoZXJfc3ByaW50ZihwcmVxLT5wcmVxX29yaWdh
ZGRyKSk7CisJICAgICJyZWNlaXZlZCBQUkVRLCBvcmlnaW5hdG9yICVzLCB0YXJnZXQgJXMiLCBl
dGhlcl9zcHJpbnRmKHByZXEtPnByZXFfb3JpZ2FkZHIpLCBldGhlcl9zcHJpbnRmKFBSRVFfVEFE
RFIoMCkpKTsKIAogCS8qCi0JICogQWNjZXB0YW5jZSBjcml0ZXJpYTogaWYgdGhlIFBSRVEgaXMg
bm90IGZvciB1cyBhbmQKLQkgKiBmb3J3YXJkaW5nIGlzIGRpc2FibGVkLCBkaXNjYXJkIHRoaXMg
UFJFUS4KKwkgKiBBY2NlcHRhbmNlIGNyaXRlcmlhOiBpZiB0aGUgUFJFUSBpcyBub3QgZm9yIHVz
IG9yIG5vdCBicm9hZGNhc3QKKwkgKiBBTkQgZm9yd2FyZGluZyBpcyBkaXNhYmxlZCwgZGlzY2Fy
ZCB0aGlzIFBSRVEuCiAJICovCi0JaWYgKCFJRUVFODAyMTFfQUREUl9FUSh2YXAtPml2X215YWRk
ciwgUFJFUV9UQUREUigwKSkgJiYKKwlpZiAoKCFJRUVFODAyMTFfQUREUl9FUSh2YXAtPml2X215
YWRkciwgUFJFUV9UQUREUigwKSkgfHwgLyogbmVlZCB0byBjaGVjayBQUk9YWSAqLworCQkhSUVF
RTgwMjExX0lTX01VTFRJQ0FTVChQUkVRX1RBRERSKDApKSkgJiYKIAkgICAgIShtcy0+bXNfZmxh
Z3MgJiBJRUVFODAyMTFfTUVTSEZMQUdTX0ZXRCkpIHsKIAkJSUVFRTgwMjExX0RJU0NBUkRfTUFD
KHZhcCwgSUVFRTgwMjExX01TR19IV01QLAogCQkgICAgcHJlcS0+cHJlcV9vcmlnYWRkciwgTlVM
TCwgIiVzIiwgIm5vdCBhY2NlcHRpbmcgUFJFUSIpOwogCQlyZXR1cm47CiAJfQorCS8qCisJICog
QWNjZXB0YW5jZSBjcml0ZXJpYTogaWYgdW5pY2FzdCBhZGRyZXNzZWQgCisJICogQU5EIG5vIHZh
bGlkIGZvcndhcmRpbmcgZm9yIFRhcmdldCBvZiBQUkVRLCBkaXNjYXJkIHRoaXMgUFJFUS4KKwkg
Ki8KKwlydHRhcmcgPSBpZWVlODAyMTFfbWVzaF9ydF9maW5kKHZhcCwgUFJFUV9UQUREUigwKSk7
CisJaWYocnR0YXJnICE9IE5VTEwpCisJCWhydGFyZyA9IElFRUU4MDIxMV9NRVNIX1JPVVRFX1BS
SVYocnR0YXJnLCBzdHJ1Y3QgaWVlZTgwMjExX2h3bXBfcm91dGUpOworCWlmKChwcmVxLT5wcmVx
X2ZsYWdzICYgSUVFRTgwMjExX01FU0hQUkVRX0ZMQUdTX0FNKSA9PSAwICYmIC8qIGFkZHJlc3Mg
bW9kZTogdWNhc3QgKi8KKwkJcnR0YXJnID09IE5VTEwgJiYKKwkJIUlFRUU4MDIxMV9BRERSX0VR
KHZhcC0+aXZfbXlhZGRyLCBQUkVRX1RBRERSKDApKSkgeworCQlJRUVFODAyMTFfRElTQ0FSRF9N
QUModmFwLCBJRUVFODAyMTFfTVNHX0hXTVAsCisJCSAgICBwcmVxLT5wcmVxX29yaWdhZGRyLCBO
VUxMLCAidW5pY2FzdCBhZGRyZXNzZWQgUFJFUSBvZiB1bmtub3duIHRhcmdldCAlcyIsCisJCQkJ
ICAgICAgZXRoZXJfc3ByaW50ZihQUkVRX1RBRERSKDApKSk7CisJCXJldHVybjsKKwl9CisJCisJ
LyogUFJFUSBBQ0NFUFRFRCAqLworCiAJcnRvcmlnID0gaWVlZTgwMjExX21lc2hfcnRfZmluZCh2
YXAsIHByZXEtPnByZXFfb3JpZ2FkZHIpOwotCWlmIChydG9yaWcgPT0gTlVMTCkKKwlpZiAocnRv
cmlnID09IE5VTEwpewogCQlydG9yaWcgPSBpZWVlODAyMTFfbWVzaF9ydF9hZGQodmFwLCBwcmVx
LT5wcmVxX29yaWdhZGRyKTsKKwkJSUVFRTgwMjExX05PVEUodmFwLCBJRUVFODAyMTFfTVNHX0hX
TVAsIG5pLAorCQkJImFkZGluZyBvcmlnaW5hdG9yICVzIiwgZXRoZXJfc3ByaW50ZihwcmVxLT5w
cmVxX29yaWdhZGRyKSk7CisJfQogCWlmIChydG9yaWcgPT0gTlVMTCkgewogCQkvKiBYWFggc3Rh
dCAqLwogCQlyZXR1cm47CiAJfQogCWhyb3JpZyA9IElFRUU4MDIxMV9NRVNIX1JPVVRFX1BSSVYo
cnRvcmlnLCBzdHJ1Y3QgaWVlZTgwMjExX2h3bXBfcm91dGUpOwotCS8qCi0JICogU2VxdWVuY2Ug
bnVtYmVyIHZhbGlkYXRpb24uCisKKwkvKiBEYXRhIGNyZWF0aW9uIGFuZCB1cGRhdGUgb2YgZm9y
d2FyZGluZyBpbmZvcm1hdGlvbgorCSAqIGFjY29yZGluZyB0byBUYWJsZSAxMUMtOCBmb3Igb3Jp
Z2luYXRvciBtZXNoIFNUQS4KIAkgKi8KLQlpZiAoSFdNUF9TRVFfTEVRKHByZXEtPnByZXFfaWQs
IGhyb3JpZy0+aHJfcHJlcWlkKSAmJgotCSAgICBIV01QX1NFUV9MRVEocHJlcS0+cHJlcV9vcmln
c2VxLCBocm9yaWctPmhyX3NlcSkpIHsKKwlpZihIV01QX1NFUV9HVChwcmVxLT5wcmVxX29yaWdz
ZXEsIGhyb3JpZy0+aHJfc2VxKSB8fAorCQkoSFdNUF9TRVFfRVEocHJlcS0+cHJlcV9vcmlnc2Vx
LCBocm9yaWctPmhyX3NlcSkgJiYgcHJlcS0+cHJlcV9tZXRyaWMgPCBydG9yaWctPnJ0X21ldHJp
YykpeworCQlocm9yaWctPmhyX3NlcSA9IHByZXEtPnByZXFfb3JpZ3NlcTsKKwkJSUVFRTgwMjEx
X0FERFJfQ09QWShydG9yaWctPnJ0X25leHRob3AsIHdoLT5pX2FkZHIyKTsKKwkJcnRvcmlnLT5y
dF9tZXRyaWMgPSBwcmVxLT5wcmVxX21ldHJpYyArCisJCQltcy0+bXNfcG1ldHJpYy0+bXBtX21l
dHJpYyhuaSk7CisJCXJ0b3JpZy0+cnRfbmhvcHMgID0gcHJlcS0+cHJlcV9ob3Bjb3VudCArIDE7
CisJCXJ0b3JpZy0+cnRfbGlmZXRpbWUgID0gTUVTSF9ST1VURV9MSUZFVElNRV9NQVgocHJlcS0+
cHJlcV9saWZldGltZSwgcnRvcmlnLT5ydF9saWZldGltZSk7CisJCXJ0b3JpZy0+cnRfZmxhZ3Mg
fD0gSUVFRTgwMjExX01FU0hSVF9GTEFHU19WQUxJRDsgLyogcGF0aCB0byBvcmlnIGlzIHZhbGlk
IG5vdyAqLworCX1lbHNlIGlmKGhydGFyZyAhPSBOVUxMICYmIAorCQlIV01QX1NFUV9FUShocnRh
cmctPmhyX3NlcSwgUFJFUV9UU0VRKDApKSAmJgorCQkocnRvcmlnLT5ydF9mbGFncyAmIElFRUU4
MDIxMV9NRVNIUlRfRkxBR1NfVkFMSUQpID09IDApewogCQlJRUVFODAyMTFfTk9URSh2YXAsIElF
RUU4MDIxMV9NU0dfSFdNUCwgbmksCi0JCSAgICAiZGlzY2FyZCBQUkVRIGZyb20gJXMsIG9sZCBz
ZXEgbm8gJXUgPD0gJXUiLAotCQkgICAgZXRoZXJfc3ByaW50ZihwcmVxLT5wcmVxX29yaWdhZGRy
KSwKLQkJICAgIHByZXEtPnByZXFfb3JpZ3NlcSwgaHJvcmlnLT5ocl9zZXEpOworCQkJInJlY2Vp
dmVkIFBSRVEsIG9yaWdpbmF0b3IgJXMiLCAidW5rbm93biIpOworCX1lbHNleworCQlJRUVFODAy
MTFfRElTQ0FSRF9NQUModmFwLCBJRUVFODAyMTFfTVNHX0hXTVAsCisJCSAgICBwcmVxLT5wcmVx
X29yaWdhZGRyLCBOVUxMLCAiJXMsIGxhc3Qgc2VlbiBvcmlnLnNlcSAlZCwgcHJlcSBvcmlnLnNl
cSAlZCIsICJkaXNjYXJkaW5nIFBSRVEiLCBocm9yaWctPmhyX3NlcSwgcHJlcS0+cHJlcV9vcmln
c2VxKTsKIAkJcmV0dXJuOwogCX0KLQlocm9yaWctPmhyX3ByZXFpZCA9IHByZXEtPnByZXFfaWQ7
Ci0JaHJvcmlnLT5ocl9zZXEgPSBwcmVxLT5wcmVxX29yaWdzZXE7CisJCisJLyogCisJICogRm9y
d2FyZGluZyBpbmZvcm1hdGlvbiBmb3IgdHJhbnNtaXR0ZXIgbWVzaCBTVEEgCisJICogW09QVElP
TkFMOiBpZiBtZXRyaWMgaW1wcm92ZWRdCisJICovCiAKIAkvKgogCSAqIENoZWNrIGlmIHRoZSBQ
UkVRIGlzIGFkZHJlc3NlZCB0byB1cy4KIAkgKi8KIAlpZiAoSUVFRTgwMjExX0FERFJfRVEodmFw
LT5pdl9teWFkZHIsIFBSRVFfVEFERFIoMCkpKSB7CiAJCUlFRUU4MDIxMV9OT1RFKHZhcCwgSUVF
RTgwMjExX01TR19IV01QLCBuaSwKLQkJICAgICJyZXBseSB0byAlcyIsIGV0aGVyX3NwcmludGYo
cHJlcS0+cHJlcV9vcmlnYWRkcikpOworCQkgICAgInJlcGx5IFBSRVAsIG9yaWdpbmF0b3IgJXMi
LCBldGhlcl9zcHJpbnRmKHByZXEtPnByZXFfb3JpZ2FkZHIpKTsKIAkJLyoKIAkJICogQnVpbGQg
YW5kIHNlbmQgYSBQUkVQIGZyYW1lLgogCQkgKi8KQEAgLTgxOSwxMSArODYyLDEzIEBAIGh3bXBf
cmVjdl9wcmVxKHN0cnVjdCBpZWVlODAyMTF2YXAgKnZhcCwgc3RydWN0IGllZWU4MDIxMV9ub2Rl
ICpuaSwKIAkJCWlmIChwcmVxLT5wcmVxX3R0bCA+IDEgJiYKIAkJCSAgICBwcmVxLT5wcmVxX2hv
cGNvdW50IDwgaHMtPmhzX21heGhvcHMpIHsKIAkJCQlJRUVFODAyMTFfTk9URSh2YXAsIElFRUU4
MDIxMV9NU0dfSFdNUCwgbmksCi0JCQkJICAgICJmb3J3YXJkIFBSRVEgZnJvbSAlcyIsCi0JCQkJ
ICAgIGV0aGVyX3NwcmludGYocHJlcS0+cHJlcV9vcmlnYWRkcikpOworCQkJCSAgICAiZm9yd2Fy
ZCBQUkVRLCBvcmlnaW5hdG9yICVzLCB0byAlcyIsCisJCQkJICAgIGV0aGVyX3NwcmludGYocHJl
cS0+cHJlcV9vcmlnYWRkciksIGV0aGVyX3NwcmludGYocnQtPnJ0X25leHRob3ApKTsKIAkJCQkv
KgogCQkJCSAqIFByb3BhZ2F0ZSB0aGUgb3JpZ2luYWwgUFJFUS4KKwkJCQkgKiBQUkVRIGlzIHVu
aWNhc3Qgbm93IHRvIHJ0LT5ydF9uZXh0aG9wCiAJCQkJICovCisJCQkJcHByZXEucHJlcV9mbGFn
cyAmPSB+SUVFRTgwMjExX01FU0hQUkVRX0ZMQUdTX0FNOwogCQkJCXBwcmVxLnByZXFfaG9wY291
bnQgKz0gMTsKIAkJCQlwcHJlcS5wcmVxX3R0bCAtPSAxOwogCQkJCXBwcmVxLnByZXFfbWV0cmlj
ICs9CkBAIC04MzcsNyArODgyLDcgQEAgaHdtcF9yZWN2X3ByZXEoc3RydWN0IGllZWU4MDIxMXZh
cCAqdmFwLCBzdHJ1Y3QgaWVlZTgwMjExX25vZGUgKm5pLAogCQkJCXBwcmVxLnByZXFfdGFyZ2V0
c1swXS50YXJnZXRfZmxhZ3MgJj0KIAkJCQkgICAgfklFRUU4MDIxMV9NRVNIUFJFUV9URkxBR1Nf
UkY7CiAJCQkJaHdtcF9zZW5kX3ByZXEobmksIHZhcC0+aXZfbXlhZGRyLAotCQkJCSAgICBicm9h
ZGNhc3RhZGRyLCAmcHByZXEpOworCQkJCSAgICBydC0+cnRfbmV4dGhvcCwgJnBwcmVxKTsKIAkJ
CX0KIAkJCS8qCiAJCQkgKiBDaGVjayBpZiB3ZSBjYW4gc2VuZCBhbiBpbnRlcm1lZGlhdGUgUGF0
aCBSZXBseSwKQEAgLTg3MCwyNiArOTE1LDExIEBAIGh3bXBfcmVjdl9wcmVxKHN0cnVjdCBpZWVl
ODAyMTF2YXAgKnZhcCwgc3RydWN0IGllZWU4MDIxMV9ub2RlICpuaSwKIAkJICovCiAJCX0gZWxz
ZSBpZiAocHJlcS0+cHJlcV90dGwgPiAxICYmCiAJCSAgICBwcmVxLT5wcmVxX2hvcGNvdW50IDwg
aHMtPmhzX21heGhvcHMpIHsKLQkJCWlmIChydCA9PSBOVUxMKSB7Ci0JCQkJcnQgPSBpZWVlODAy
MTFfbWVzaF9ydF9hZGQodmFwLCBQUkVRX1RBRERSKDApKTsKLQkJCQlpZiAocnQgPT0gTlVMTCkg
ewotCQkJCQlJRUVFODAyMTFfTk9URSh2YXAsIElFRUU4MDIxMV9NU0dfSFdNUCwKLQkJCQkJICAg
IG5pLCAidW5hYmxlIHRvIGFkZCBQUkVRIHBhdGggdG8gJXMiLAotCQkJCQkgICAgZXRoZXJfc3By
aW50ZihQUkVRX1RBRERSKDApKSk7Ci0JCQkJCXZhcC0+aXZfc3RhdHMuaXNfbWVzaF9ydGFkZGZh
aWxlZCsrOwotCQkJCQlyZXR1cm47Ci0JCQkJfQotCQkJfQotCQkJcnQtPnJ0X21ldHJpYyA9IHBy
ZXEtPnByZXFfbWV0cmljOwotCQkJcnQtPnJ0X2xpZmV0aW1lID0gcHJlcS0+cHJlcV9saWZldGlt
ZTsKLQkJCWhyb3JpZyA9IElFRUU4MDIxMV9NRVNIX1JPVVRFX1BSSVYocnQsCi0JCQkgICAgc3Ry
dWN0IGllZWU4MDIxMV9od21wX3JvdXRlKTsKLQkJCWhyb3JpZy0+aHJfc2VxID0gcHJlcS0+cHJl
cV9vcmlnc2VxOwotCQkJaHJvcmlnLT5ocl9wcmVxaWQgPSBwcmVxLT5wcmVxX2lkOwotCiAJCQlJ
RUVFODAyMTFfTk9URSh2YXAsIElFRUU4MDIxMV9NU0dfSFdNUCwgbmksCi0JCQkgICAgImZvcndh
cmQgUFJFUSBmcm9tICVzIiwKLQkJCSAgICBldGhlcl9zcHJpbnRmKHByZXEtPnByZXFfb3JpZ2Fk
ZHIpKTsKKwkJCSAgICAiYnJvYWRjYXN0IFBSRVEsIG9yaWdpbmF0b3IgJXMsIHRhcmdldCAlcyIs
CisJCQkgICAgZXRoZXJfc3ByaW50ZihwcmVxLT5wcmVxX29yaWdhZGRyKSwKKwkJCQkgICAgICAg
ZXRoZXJfc3ByaW50ZihQUkVRX1RBRERSKDApKSk7CisJCQlwcHJlcS5wcmVxX2ZsYWdzIHw9IElF
RUU4MDIxMV9NRVNIUFJFUV9GTEFHU19BTTsKIAkJCXBwcmVxLnByZXFfaG9wY291bnQgKz0gMTsK
IAkJCXBwcmVxLnByZXFfdHRsIC09IDE7CiAJCQlwcHJlcS5wcmVxX21ldHJpYyArPSBtcy0+bXNf
cG1ldHJpYy0+bXBtX21ldHJpYyhuaSk7CkBAIC05NTYsMTIgKzk4NiwxNCBAQCBod21wX3JlY3Zf
cHJlcChzdHJ1Y3QgaWVlZTgwMjExdmFwICp2YXAsIHN0cnVjdCBpZWVlODAyMTFfbm9kZSAqbmks
CiAJCXJldHVybjsKIAogCUlFRUU4MDIxMV9OT1RFKHZhcCwgSUVFRTgwMjExX01TR19IV01QLCBu
aSwKLQkgICAgInJlY2VpdmVkIFBSRVAgZnJvbSAlcyIsIGV0aGVyX3NwcmludGYocHJlcC0+cHJl
cF90YXJnZXRhZGRyKSk7CisJICAgICJyZWNlaXZlZCBQUkVQLCBvcmlnaW5hdG9yICVzLCB0YXJn
ZXQgJXMiLCBldGhlcl9zcHJpbnRmKHByZXAtPnByZXBfb3JpZ2FkZHIpLCBldGhlcl9zcHJpbnRm
KHByZXAtPnByZXBfdGFyZ2V0YWRkcikpOwogCiAJcnQgPSBpZWVlODAyMTFfbWVzaF9ydF9maW5k
KHZhcCwgcHJlcC0+cHJlcF90YXJnZXRhZGRyKTsKIAlpZiAocnQgPT0gTlVMTCkgewogCQkvKgot
CQkgKiBJZiB3ZSBoYXZlIG5vIGVudHJ5IHRoaXMgY291bGQgYmUgYSByZXBseSB0byBhIHJvb3Qg
UFJFUS4KKwkJICogSWYgd2UgaGF2ZSBubyBlbnRyeSB0aGlzIGNvdWxkIGJlIGEgcmVwbHkgdG8g
YSByb290IFBSRVEuIAorCQkgKiBYWFg6IG5vdCB0cnVlIGFueW1vcmUgY2F1c2Ugd2UgZG9udCBj
cmVhdGUgZW50cnkgZm9yIHRhcmdldCB3aGVuCisJCSAqIHByb3BhZ2F0aW5nIFBSRVFzIGxpa2Ug
dGhlIG9sZCBjb2RlIGRpZC4KIAkJICovCiAJCWlmIChocy0+aHNfcm9vdG1vZGUgIT0gSUVFRTgw
MjExX0hXTVBfUk9PVE1PREVfRElTQUJMRUQpIHsKIAkJCXJ0ID0gaWVlZTgwMjExX21lc2hfcnRf
YWRkKHZhcCwgcHJlcC0+cHJlcF90YXJnZXRhZGRyKTsKQEAgLTk4OSwxMyArMTAyMSwyMyBAQCBo
d21wX3JlY3ZfcHJlcChzdHJ1Y3QgaWVlZTgwMjExdmFwICp2YXAsIHN0cnVjdCBpZWVlODAyMTFf
bm9kZSAqbmksCiAJICogU2VxdWVuY2UgbnVtYmVyIHZhbGlkYXRpb24uCiAJICovCiAJaHIgPSBJ
RUVFODAyMTFfTUVTSF9ST1VURV9QUklWKHJ0LCBzdHJ1Y3QgaWVlZTgwMjExX2h3bXBfcm91dGUp
OwotCWlmIChIV01QX1NFUV9MRVEocHJlcC0+cHJlcF90YXJnZXRzZXEsIGhyLT5ocl9zZXEpKSB7
CisJaWYoKHJ0LT5ydF9mbGFncyAmIElFRUU4MDIxMV9NRVNIUlRfRkxBR1NfVkFMSUQpKXsgLy8g
QWNjZXB0IGlmIHJvdXRlIGlzIG5vdCB2YWxpZAorCSAgaWYgKEhXTVBfU0VRX0xUKHByZXAtPnBy
ZXBfdGFyZ2V0c2VxLCBoci0+aHJfc2VxKSkgewogCQlJRUVFODAyMTFfTk9URSh2YXAsIElFRUU4
MDIxMV9NU0dfSFdNUCwgbmksCi0JCSAgICAiZGlzY2FyZCBQUkVQIGZyb20gJXMsIG9sZCBzZXEg
bm8gJXUgPD0gJXUiLAorCQkgICAgImRpc2NhcmQgUFJFUCBmcm9tICVzLCBvbGQgc2VxIG5vICV1
IDwgJXUiLAogCQkgICAgZXRoZXJfc3ByaW50ZihwcmVwLT5wcmVwX3RhcmdldGFkZHIpLAogCQkg
ICAgcHJlcC0+cHJlcF90YXJnZXRzZXEsIGhyLT5ocl9zZXEpOwogCQlyZXR1cm47CisJICB9ZWxz
ZSBpZihIV01QX1NFUV9MRVEocHJlcC0+cHJlcF90YXJnZXRzZXEsIGhyLT5ocl9zZXEpICYmIC8v
SWYgc2FtZSBzZXFubyBjb21wYXJlIG1ldHJpYworCQlwcmVwLT5wcmVwX21ldHJpYyA+IHJ0LT5y
dF9tZXRyaWMpIHsKKwkJSUVFRTgwMjExX05PVEUodmFwLCBJRUVFODAyMTFfTVNHX0hXTVAsIG5p
LAorCQkgICAgImRpc2NhcmQgUFJFUCBmcm9tICVzLCBuZXcgbWV0cmljICV1ID4gJXUiLAorCQkg
ICAgZXRoZXJfc3ByaW50ZihwcmVwLT5wcmVwX3RhcmdldGFkZHIpLAorCQkgICAgcHJlcC0+cHJl
cF9tZXRyaWMsIHJ0LT5ydF9tZXRyaWMpOworCQlyZXR1cm47CisJICB9CiAJfQorCQogCWhyLT5o
cl9zZXEgPSBwcmVwLT5wcmVwX3RhcmdldHNlcTsKIAkvKgogCSAqIElmIGl0J3MgTk9UIGZvciB1
cywgcHJvcGFnYXRlIHRoZSBQUkVQLgpAQCAtMTAxMiw3ICsxMDU0LDYgQEAgaHdtcF9yZWN2X3By
ZXAoc3RydWN0IGllZWU4MDIxMXZhcCAqdmFwLCBzdHJ1Y3QgaWVlZTgwMjExX25vZGUgKm5pLAog
CQlwcHJlcC5wcmVwX2hvcGNvdW50ICs9IDE7CiAJCXBwcmVwLnByZXBfdHRsIC09IDE7CiAJCXBw
cmVwLnByZXBfbWV0cmljICs9IG1zLT5tc19wbWV0cmljLT5tcG1fbWV0cmljKG5pKTsKLQkJSUVF
RTgwMjExX0FERFJfQ09QWShwcHJlcC5wcmVwX3RhcmdldGFkZHIsIHZhcC0+aXZfbXlhZGRyKTsK
IAkJaHdtcF9zZW5kX3ByZXAobmksIHZhcC0+aXZfbXlhZGRyLCBicm9hZGNhc3RhZGRyLCAmcHBy
ZXApOwogCX0KIAlociA9IElFRUU4MDIxMV9NRVNIX1JPVVRFX1BSSVYocnQsIHN0cnVjdCBpZWVl
ODAyMTFfaHdtcF9yb3V0ZSk7CkBAIC0xMDIyLDcgKzEwNjMsNyBAQCBod21wX3JlY3ZfcHJlcChz
dHJ1Y3QgaWVlZTgwMjExdmFwICp2YXAsIHN0cnVjdCBpZWVlODAyMTFfbm9kZSAqbmksCiAJCSAg
ICAiZGlzY2FyZCBQUkVQIGZvciAlcywgcm91dGUgaXMgbWFya2VkIFBST1hZIiwKIAkJICAgIGV0
aGVyX3NwcmludGYocHJlcC0+cHJlcF90YXJnZXRhZGRyKSk7CiAJCXZhcC0+aXZfc3RhdHMuaXNf
aHdtcF9wcm94eSsrOwotCX0gZWxzZSBpZiAocHJlcC0+cHJlcF9vcmlnc2VxID09IGhyLT5ocl9v
cmlnc2VxKSB7CisJfSBlbHNlIGlmIChoci0+aHJfb3JpZ3NlcSA9PSAwIHx8IHByZXAtPnByZXBf
b3JpZ3NlcSA9PSBoci0+aHJfb3JpZ3NlcSkgeyAvL2ZpcnN0IHBhdGggZGlzY292ZXJ5IGFsd2F5
cyBmYWlsIQogCQkvKgogCQkgKiBDaGVjayBpZiB3ZSBhbHJlYWR5IGhhdmUgYSBwYXRoIHRvIHRo
aXMgbm9kZS4KIAkJICogSWYgd2UgZG8sIGNoZWNrIGlmIHRoaXMgcGF0aCByZXBseSBjb250YWlu
cyBhCkBAIC0xMDMxLDE1ICsxMDcyLDE2IEBAIGh3bXBfcmVjdl9wcmVwKHN0cnVjdCBpZWVlODAy
MTF2YXAgKnZhcCwgc3RydWN0IGllZWU4MDIxMV9ub2RlICpuaSwKIAkJaWYgKChydC0+cnRfZmxh
Z3MgJiBJRUVFODAyMTFfTUVTSFJUX0ZMQUdTX1ZBTElEKSA9PSAwIHx8CiAJCSAgICAocHJlcC0+
cHJlcF9ob3Bjb3VudCA8IHJ0LT5ydF9uaG9wcyB8fAogCQkgICAgIHByZXAtPnByZXBfbWV0cmlj
IDwgcnQtPnJ0X21ldHJpYykpIHsKKwkJCWhyLT5ocl9vcmlnc2VxID0gcHJlcC0+cHJlcF9vcmln
c2VxOwogCQkJSUVFRTgwMjExX05PVEUodmFwLCBJRUVFODAyMTFfTVNHX0hXTVAsIG5pLAogCQkJ
ICAgICIlcyBwYXRoIHRvICVzLCBob3Bjb3VudCAlZDolZCBtZXRyaWMgJWQ6JWQiLAogCQkJICAg
IHJ0LT5ydF9mbGFncyAmIElFRUU4MDIxMV9NRVNIUlRfRkxBR1NfVkFMSUQgPwogCQkJCSJwcmVm
ZXIiIDogInVwZGF0ZSIsCi0JCQkgICAgZXRoZXJfc3ByaW50ZihwcmVwLT5wcmVwX29yaWdhZGRy
KSwKLQkJCSAgICBydC0+cnRfbmhvcHMsIHByZXAtPnByZXBfaG9wY291bnQsCisJCQkgICAgZXRo
ZXJfc3ByaW50ZihwcmVwLT5wcmVwX3RhcmdldGFkZHIpLAorCQkJICAgIHJ0LT5ydF9uaG9wcywg
cHJlcC0+cHJlcF9ob3Bjb3VudCArIDEsCiAJCQkgICAgcnQtPnJ0X21ldHJpYywgcHJlcC0+cHJl
cF9tZXRyaWMpOwogCQkJSUVFRTgwMjExX0FERFJfQ09QWShydC0+cnRfbmV4dGhvcCwgd2gtPmlf
YWRkcjIpOwotCQkJcnQtPnJ0X25ob3BzID0gcHJlcC0+cHJlcF9ob3Bjb3VudDsKKwkJCXJ0LT5y
dF9uaG9wcyA9IHByZXAtPnByZXBfaG9wY291bnQgKyAxOwogCQkJcnQtPnJ0X2xpZmV0aW1lID0g
cHJlcC0+cHJlcF9saWZldGltZTsKIAkJCXJ0LT5ydF9tZXRyaWMgPSBwcmVwLT5wcmVwX21ldHJp
YzsKIAkJCXJ0LT5ydF9mbGFncyB8PSBJRUVFODAyMTFfTUVTSFJUX0ZMQUdTX1ZBTElEOwpAQCAt
MTA1Miw5ICsxMDk0LDkgQEAgaHdtcF9yZWN2X3ByZXAoc3RydWN0IGllZWU4MDIxMXZhcCAqdmFw
LCBzdHJ1Y3QgaWVlZTgwMjExX25vZGUgKm5pLAogCQl9CiAJfSBlbHNlIHsKIAkJSUVFRTgwMjEx
X05PVEUodmFwLCBJRUVFODAyMTFfTVNHX0hXTVAsIG5pLAotCQkgICAgImRpc2NhcmQgUFJFUCBm
b3IgJXMsIHdyb25nIHNlcW5vICV1ICE9ICV1IiwKKwkJICAgICJkaXNjYXJkIFBSRVAgZm9yICVz
LCB3cm9uZyBvcmlnIHNlcW5vICV1ICE9ICV1IiwKIAkJICAgIGV0aGVyX3NwcmludGYocHJlcC0+
cHJlcF90YXJnZXRhZGRyKSwgcHJlcC0+cHJlcF9vcmlnc2VxLAotCQkgICAgaHItPmhyX3NlcSk7
CisJCSAgICBoci0+aHJfb3JpZ3NlcSk7CiAJCXZhcC0+aXZfc3RhdHMuaXNfaHdtcF93cm9uZ3Nl
cSsrOwogCX0gCiAJLyoKQEAgLTEzMjMsMTMgKzEzNjUsMTMgQEAgaHdtcF9kaXNjb3ZlcihzdHJ1
Y3QgaWVlZTgwMjExdmFwICp2YXAsCiAJCQkvKiBYWFggY2hlY2sgcHJlcSByZXRyaWVzICovCiAJ
CQlzZW5kcHJlcSA9IDE7CiAJCQlJRUVFODAyMTFfTk9URV9NQUModmFwLCBJRUVFODAyMTFfTVNH
X0hXTVAsIGRlc3QsCi0JCQkgICAgInN0YXJ0IHBhdGggZGlzY292ZXJ5IChzcmMgJXMpIiwKKwkJ
CSAgICAic3RhcnQgcGF0aCBkaXNjb3ZlcnkgKHNyYyAlcyksIHRhcmdldCBzZXEgJXUiLAogCQkJ
ICAgIG0gPT0gTlVMTCA/ICI8bm9uZT4iIDogZXRoZXJfc3ByaW50ZigKLQkJCQltdG9kKG0sIHN0
cnVjdCBldGhlcl9oZWFkZXIgKiktPmV0aGVyX3Nob3N0KSk7CisJCQkJbXRvZChtLCBzdHJ1Y3Qg
ZXRoZXJfaGVhZGVyICopLT5ldGhlcl9zaG9zdCksIGhyLT5ocl9zZXEpOwogCQkJLyoKIAkJCSAq
IFRyeSB0byBkaXNjb3ZlciB0aGUgcGF0aCBmb3IgdGhpcyBub2RlLgogCQkJICovCi0JCQlwcmVx
LnByZXFfZmxhZ3MgPSAwOworCQkJcHJlcS5wcmVxX2ZsYWdzID0gSUVFRTgwMjExX01FU0hQUkVR
X0ZMQUdTX0FNOyAvKiBHcm91cCBhZGRyZXNzZWQgUFJFUSBDYXNlIEEgKi8KIAkJCXByZXEucHJl
cV9ob3Bjb3VudCA9IDA7CiAJCQlwcmVxLnByZXFfdHRsID0gbXMtPm1zX3R0bDsKIAkJCXByZXEu
cHJlcV9pZCA9ICsraHMtPmhzX3ByZXFpZDsKQEAgLTEzNDUsNyArMTM4Nyw3IEBAIGh3bXBfZGlz
Y292ZXIoc3RydWN0IGllZWU4MDIxMXZhcCAqdmFwLAogCQkJaWYgKGllZWU4MDIxMV9od21wX3Jl
cGx5Zm9yd2FyZCkKIAkJCQlQUkVRX1RGTEFHUygwKSB8PSBJRUVFODAyMTFfTUVTSFBSRVFfVEZM
QUdTX1JGOwogCQkJUFJFUV9URkxBR1MoMCkgfD0gSUVFRTgwMjExX01FU0hQUkVRX1RGTEFHU19V
U047Ci0JCQlQUkVRX1RTRVEoMCkgPSAwOworCQkJUFJFUV9UU0VRKDApID0gaHItPmhyX3NlcTsK
IAkJCS8qIFhYWCBjaGVjayByZXR1cm4gdmFsdWUgKi8KIAkJCWh3bXBfc2VuZF9wcmVxKHZhcC0+
aXZfYnNzLCB2YXAtPml2X215YWRkciwKIAkJCSAgICBicm9hZGNhc3RhZGRyLCAmcHJlcSk7Cg==
--14dae9340cc7f5f09404b6393c41--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CA%2BsBSoJWXD5S-zvxHR_=iwh26G0bd00trR=E-jCUBD03uMrU%2BQ>