Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 8 Feb 2010 21:09:49 +0530
From:      Balaji G <balajig81@gmail.com>
To:        freebsd-net@freebsd.org
Cc:        Qing Li <qingli@freebsd.org>, "Li, Qing" <qing.li@bluecoat.com>
Subject:   [PATCH] net:: ECMP Phase 1 Fixes for FreeBSD 7.2
Message-ID:  <6dd1343e1002080739m38f4deffr604c71e5036389a4@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
--00504502ad118ad7e3047f189c33
Content-Type: text/plain; charset=UTF-8

Hi Everybody

Please find attached the patch files which contains the backported code for
ECMP for FreeBSD 7.2. I have back ported the code from 8.0. I have done some
basic testing with these patches rolled in. These are the phase 1 fixes and
i would continue to work on this and back port few other stuff too. It would
be great if someone could roll in this to 7.2, test it and give me their
valuable feedback.

This is my first Patch for FreeBSD community and i am really excited about
this and look forward to it.

Thanks for your time.

Cheers,
  - Balaji

--00504502ad118ad7e3047f189c33
Content-Type: text/x-patch; charset=US-ASCII; name="ecmp_patch1.patch"
Content-Disposition: attachment; filename="ecmp_patch1.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_g5ffexhn0

ZGlmZiAtdSAtciAvaG9tZS9iYWxhamkvQ29kZXMvRnJlZUJTRC83LjIuMC83LjIuMF91bm1vZGlm
aWVkLzcuMi4wL3N5cy9uZXQvcmFkaXguYyBuZXQvcmFkaXguYwotLS0gL2hvbWUvYmFsYWppL0Nv
ZGVzL0ZyZWVCU0QvNy4yLjAvNy4yLjBfdW5tb2RpZmllZC83LjIuMC9zeXMvbmV0L3JhZGl4LmMJ
MjAxMC0wMi0wNCAyMjo0MDoyOS4wMDAwMDAwMDAgKzA1MzAKKysrIG5ldC9yYWRpeC5jCTIwMTAt
MDItMDcgMTY6MDY6NTYuMDUzNjg3MzExICswNTMwCkBAIC00OCw2ICs0OCwxMCBAQAogI2luY2x1
ZGUgPG5ldC9yYWRpeC5oPgogI2VuZGlmCiAKKy8qIEVDTVAgQ2hhbmdlcyBCZWdpbiAqLworI2lu
Y2x1ZGUgPG5ldC9yYWRpeF9tcGF0aC5oPgorLyogRUNNUCBDaGFuZ2VzIEVuZCAqLworCiBzdGF0
aWMgaW50CXJuX3dhbGt0cmVlX2Zyb20oc3RydWN0IHJhZGl4X25vZGVfaGVhZCAqaCwgdm9pZCAq
YSwgdm9pZCAqbSwKIAkJICAgIHdhbGt0cmVlX2ZfdCAqZiwgdm9pZCAqdyk7CiBzdGF0aWMgaW50
IHJuX3dhbGt0cmVlKHN0cnVjdCByYWRpeF9ub2RlX2hlYWQgKiwgd2Fsa3RyZWVfZl90ICosIHZv
aWQgKik7CkBAIC02MzAsNiArNjM0LDIyIEBACiAJc2F2ZWRfdHQgPSB0dCA9IHJuX2luc2VydCh2
LCBoZWFkLCAma2V5ZHVwbGljYXRlZCwgdHJlZW5vZGVzKTsKIAlpZiAoa2V5ZHVwbGljYXRlZCkg
ewogCQlmb3IgKHQgPSB0dDsgdHQ7IHQgPSB0dCwgdHQgPSB0dC0+cm5fZHVwZWRrZXkpIHsKKwor
LyogRUNNUCBDaGFuZ2VzIEJlZ2luICovCisJCQkvKiBwZXJtaXQgbXVsdGlwYXRoLCBpZiBlbmFi
bGVkIGZvciB0aGUgZmFtaWx5ICovCisJCQlpZiAocm5fbXBhdGhfY2FwYWJsZShoZWFkKSAmJiBu
ZXRtYXNrID09IHR0LT5ybl9tYXNrKSB7CisJCQkJLyoKKwkJCQkgKiBnbyBkb3duIHRvIHRoZSBl
bmQgb2YgbXVsdGlwYXRocywgc28gdGhhdAorCQkJCSAqIG5ldyBlbnRyeSBnb2VzIGludG8gdGhl
IGVuZCBvZiBybl9kdXBlZGtleQorCQkJCSAqIGNoYWluLgorCQkJCSAqLworCQkJCWRvIHsKKwkJ
CQkJdCA9IHR0OworCQkJCQl0dCA9IHR0LT5ybl9kdXBlZGtleTsKKwkJCQl9IHdoaWxlICh0dCAm
JiB0LT5ybl9tYXNrID09IHR0LT5ybl9tYXNrKTsKKwkJCQlicmVhazsKKwkJCX0KKy8qIEVDTVAg
Q2hhbmdlcyBFbmQgKi8KIAkJCWlmICh0dC0+cm5fbWFzayA9PSBuZXRtYXNrKQogCQkJCXJldHVy
biAoMCk7CiAJCQlpZiAobmV0bWFzayA9PSAwIHx8CmRpZmYgLXUgLXIgL2hvbWUvYmFsYWppL0Nv
ZGVzL0ZyZWVCU0QvNy4yLjAvNy4yLjBfdW5tb2RpZmllZC83LjIuMC9zeXMvbmV0L3JhZGl4X21w
YXRoLmMgbmV0L3JhZGl4X21wYXRoLmMKLS0tIC9ob21lL2JhbGFqaS9Db2Rlcy9GcmVlQlNELzcu
Mi4wLzcuMi4wX3VubW9kaWZpZWQvNy4yLjAvc3lzL25ldC9yYWRpeF9tcGF0aC5jCTIwMTAtMDIt
MDUgMDg6MzA6NTIuMDAwMDAwMDAwICswNTMwCisrKyBuZXQvcmFkaXhfbXBhdGguYwkyMDEwLTAy
LTA2IDE4OjAyOjMxLjUwNzk0MzY3OSArMDUzMApAQCAtNTQsNyArNTQsNyBAQAogLyoKICAqIGdp
dmUgc29tZSBqaXR0ZXIgdG8gaGFzaCwgdG8gYXZvaWQgc3luY2hyb25pemF0aW9uIGJldHdlZW4g
cm91dGVycwogICovCi1zdGF0aWMgdWludDMyX3QgaGFzaGppdHRlcjsKKy8qIHN0YXRpYyB1aW50
MzJfdCBoYXNoaml0dGVyOyAqLwogCiBpbnQKIHJuX21wYXRoX2NhcGFibGUoc3RydWN0IHJhZGl4
X25vZGVfaGVhZCAqcm5oKQpAQCAtMzIwLDggKzMyMCw5IEBACiAjZW5kaWYKIAogZXh0ZXJuIGlu
dAlpbjZfaW5pdGhlYWQodm9pZCAqKmhlYWQsIGludCBvZmYpOwotZXh0ZXJuIGludAlpbl9pbml0
aGVhZCh2b2lkICoqaGVhZCwgaW50IG9mZik7CitleHRlcm4gaW50CWluX2ludGhlYWQodm9pZCAq
KmhlYWQsIGludCBvZmYpOwogCisjaWYgMAogI2lmZGVmIElORVQKIGludAogcm40X21wYXRoX2lu
aXRoZWFkKHZvaWQgKipoZWFkLCBpbnQgb2ZmKQpAQCAtMzUyLDUgKzM1Myw2IEBACiAJfSBlbHNl
CiAJCXJldHVybiAwOwogfQorI2VuZGlmCiAKICNlbmRpZgpPbmx5IGluIG5ldDogcmFkaXhfbXBh
dGguaApkaWZmIC11IC1yIC9ob21lL2JhbGFqaS9Db2Rlcy9GcmVlQlNELzcuMi4wLzcuMi4wX3Vu
bW9kaWZpZWQvNy4yLjAvc3lzL25ldC9yb3V0ZS5jIG5ldC9yb3V0ZS5jCi0tLSAvaG9tZS9iYWxh
amkvQ29kZXMvRnJlZUJTRC83LjIuMC83LjIuMF91bm1vZGlmaWVkLzcuMi4wL3N5cy9uZXQvcm91
dGUuYwkyMDEwLTAyLTA0IDIyOjQwOjI5LjAwMDAwMDAwMCArMDUzMAorKysgbmV0L3JvdXRlLmMJ
MjAxMC0wMi0wNyAxNjowNTo0NC40NDI5MzU1OTcgKzA1MzAKQEAgLTg4Niw2ICs4ODYsMTEzIEBA
CiAJcmV0dXJuIChydHJlcXVlc3QxX2ZpYihyZXEsIGluZm8sIHJldF9ucnQsIDApKTsKIH0KIAor
LyogRUNNUCBDaGFuZ2VzIEJlZ2luICovCitzdGF0aWMgaW50Citybl9tcGF0aF91cGRhdGUoaW50
IHJlcSwgc3RydWN0IHJ0X2FkZHJpbmZvICppbmZvLAorICAgIHN0cnVjdCByYWRpeF9ub2RlX2hl
YWQgKnJuaCwgc3RydWN0IHJ0ZW50cnkgKipyZXRfbnJ0KQoreworCS8qCisJICogaWYgd2UgZ290
IG11bHRpcGF0aCByb3V0ZXMsIHdlIHJlcXVpcmUgdXNlcnMgdG8gc3BlY2lmeQorCSAqIGEgbWF0
Y2hpbmcgUlRBWF9HQVRFV0FZLgorCSAqLworCXN0cnVjdCBydGVudHJ5ICpydCwgKnJ0byA9IE5V
TEw7CisJcmVnaXN0ZXIgc3RydWN0IHJhZGl4X25vZGUgKnJuOworCWludCBlcnJvciA9IDA7CisK
KwlybiA9IHJuaC0+cm5oX21hdGNoYWRkcihkc3QsIHJuaCk7CisJaWYgKHJuID09IE5VTEwpCisJ
CXJldHVybiAoRVNSQ0gpOworCXJ0byA9IHJ0ID0gUk5UT1JUKHJuKTsKKwlydCA9IHJ0X21wYXRo
X21hdGNoZ2F0ZShydCwgZ2F0ZXdheSk7CisJaWYgKHJ0ID09IE5VTEwpCisJCXJldHVybiAoRVNS
Q0gpOworCS8qCisJICogdGhpcyBpcyB0aGUgZmlyc3QgZW50cnkgaW4gdGhlIGNoYWluCisJICov
CisJaWYgKHJ0byA9PSBydCkgeworCQlybiA9IHJuX21wYXRoX25leHQoKHN0cnVjdCByYWRpeF9u
b2RlICopcnQpOworCQkvKgorCQkgKiB0aGVyZSBpcyBhbm90aGVyIGVudHJ5LCBub3cgaXQncyBh
Y3RpdmUKKwkJICovCisJCWlmIChybikgeworCQkJcnRvID0gUk5UT1JUKHJuKTsKKwkJCVJUX0xP
Q0socnRvKTsKKwkJCXJ0by0+cnRfZmxhZ3MgfD0gUlRGX1VQOworCQkJUlRfVU5MT0NLKHJ0byk7
CisJCX0gZWxzZSBpZiAocnQtPnJ0X2ZsYWdzICYgUlRGX0dBVEVXQVkpIHsKKwkJCS8qCisJCQkg
KiBGb3IgZ2F0ZXdheSByb3V0ZXMsIHdlIG5lZWQgdG8gCisJCQkgKiBtYWtlIHN1cmUgdGhhdCB3
ZSB3ZSBhcmUgZGVsZXRpbmcKKwkJCSAqIHRoZSBjb3JyZWN0IGdhdGV3YXkuIAorCQkJICogcnRf
bXBhdGhfbWF0Y2hnYXRlKCkgZG9lcyBub3QgCisJCQkgKiBjaGVjayB0aGUgY2FzZSB3aGVuIHRo
ZXJlIGlzIG9ubHkKKwkJCSAqIG9uZSByb3V0ZSBpbiB0aGUgY2hhaW4uICAKKwkJCSAqLworCQkJ
aWYgKGdhdGV3YXkgJiYKKwkJCSAgICAocnQtPnJ0X2dhdGV3YXktPnNhX2xlbiAhPSBnYXRld2F5
LT5zYV9sZW4gfHwKKwkJCQltZW1jbXAocnQtPnJ0X2dhdGV3YXksIGdhdGV3YXksIGdhdGV3YXkt
PnNhX2xlbikpKQorCQkJCWVycm9yID0gRVNSQ0g7CisJCQllbHNlIHsKKwkJCQkvKgorCQkJCSAq
IHJlbW92ZSBmcm9tIHRyZWUgYmVmb3JlIHJldHVybmluZyBpdAorCQkJCSAqIHRvIHRoZSBjYWxs
ZXIKKwkJCQkgKi8KKwkJCQlybiA9IHJuaC0+cm5oX2RlbGFkZHIoZHN0LCBuZXRtYXNrLCBybmgp
OworCQkJCUtBU1NFUlQocnQgPT0gUk5UT1JUKHJuKSwgKCJyYWRpeCBub2RlIGRpc2FwcGVhcmVk
IikpOworCQkJCWdvdG8gZ3dkZWxldGU7CisJCQl9CisJCQkKKwkJfQorCQkvKgorCQkgKiB1c2Ug
dGhlIG5vcm1hbCBkZWxldGUgY29kZSB0byByZW1vdmUKKwkJICogdGhlIGZpcnN0IGVudHJ5CisJ
CSAqLworCQlpZiAocmVxICE9IFJUTV9ERUxFVEUpIAorCQkJZ290byBub25kZWxldGU7CisKKwkJ
ZXJyb3IgPSBFTk9FTlQ7CisJCWdvdG8gZG9uZTsKKwl9CisJCQorCS8qCisJICogaWYgdGhlIGVu
dHJ5IGlzIDJuZCBhbmQgb24gdXAKKwkgKi8KKwlpZiAoKHJlcSA9PSBSVE1fREVMRVRFKSAmJiAh
cnRfbXBhdGhfZGVsZHVwKHJ0bywgcnQpKQorCQlwYW5pYyAoInJ0cmVxdWVzdDE6IHJ0X21wYXRo
X2RlbGR1cCIpOworZ3dkZWxldGU6CisJUlRfTE9DSyhydCk7CisJUlRfQUREUkVGKHJ0KTsKKwlp
ZiAocmVxID09IFJUTV9ERUxFVEUpIHsKKwkJcnQtPnJ0X2ZsYWdzICY9IH5SVEZfVVA7CisJCS8q
CisJCSAqIE9uZSBtb3JlIHJ0ZW50cnkgZmxvYXRpbmcgYXJvdW5kIHRoYXQgaXMgbm90CisJCSAq
IGxpbmtlZCB0byB0aGUgcm91dGluZyB0YWJsZS4gcnR0cmFzaCB3aWxsIGJlIGRlY3JlbWVudGVk
CisJCSAqIHdoZW4gUlRGUkVFKHJ0KSBpcyBldmVudHVhbGx5IGNhbGxlZC4KKwkJICovCisJCXJ0
dHJhc2grKzsKKwl9CisJCitub25kZWxldGU6CisJaWYgKHJlcSAhPSBSVE1fREVMRVRFKQorCQlw
YW5pYygidW5yZWNvZ25pemVkIHJlcXVlc3QgJWQiLCByZXEpOworCQorCisJLyoKKwkgKiBJZiB0
aGUgY2FsbGVyIHdhbnRzIGl0LCB0aGVuIGl0IGNhbiBoYXZlIGl0LAorCSAqIGJ1dCBpdCdzIHVw
IHRvIGl0IHRvIGZyZWUgdGhlIHJ0ZW50cnkgYXMgd2Ugd29uJ3QgYmUKKwkgKiBkb2luZyBpdC4K
KwkgKi8KKwlpZiAocmV0X25ydCkgeworCQkqcmV0X25ydCA9IHJ0OworCQlSVF9VTkxPQ0socnQp
OworCX0gZWxzZQorCQlSVEZSRUVfTE9DS0VEKHJ0KTsKK2RvbmU6CisJcmV0dXJuIChlcnJvcik7
Cit9CisvKiBFQ01QIENoYW5nZXMgRW5kICovCisKKwogaW50CiBydHJlcXVlc3QxX2ZpYihpbnQg
cmVxLCBzdHJ1Y3QgcnRfYWRkcmluZm8gKmluZm8sIHN0cnVjdCBydGVudHJ5ICoqcmV0X25ydCwK
IAkJCQl1X2ludCBmaWJudW0pCkBAIC05MjMsNiArMTAzMCwxOSBAQAogCX0KIAlzd2l0Y2ggKHJl
cSkgewogCWNhc2UgUlRNX0RFTEVURToKKworLyogRUNNUCBDaGFuZ2VzIEJlZ2luICovCisJCWlm
IChybl9tcGF0aF9jYXBhYmxlKHJuaCkpIHsKKwkJCWVycm9yID0gcm5fbXBhdGhfdXBkYXRlKHJl
cSwgaW5mbywgcm5oLCByZXRfbnJ0KTsKKwkJCS8qCisJCQkgKiAiYmFkIiBob2xkcyB0cnVlIGZv
ciB0aGUgc3VjY2VzcyBjYXNlCisJCQkgKiBhcyB3ZWxsCisJCQkgKi8KKwkJCWlmIChlcnJvciAh
PSBFTk9FTlQpCisJCQkJZ290byBiYWQ7CisJCX0KKy8qIEVDTVAgQ2hhbmdlcyBFbmQgKi8KKwog
CQkvKgogCQkgKiBSZW1vdmUgdGhlIGl0ZW0gZnJvbSB0aGUgdHJlZSBhbmQgcmV0dXJuIGl0Lgog
CQkgKiBDb21wbGFpbiBpZiBpdCBpcyBub3QgdGhlcmUgYW5kIGRvIG5vIG1vcmUgcHJvY2Vzc2lu
Zy4KQEAgLTEwNDYsNiArMTE2NiwyMCBAQAogCQlydC0+cnRfaWZhID0gaWZhOwogCQlydC0+cnRf
aWZwID0gaWZhLT5pZmFfaWZwOwogCisJLyogRUNNUCBDaGFuZ2VzIEJlZ2luICovCisJCS8qIGRv
IG5vdCBwZXJtaXQgZXhhY3RseSB0aGUgc2FtZSBkc3QvbWFzay9ndyBwYWlyICovCisJCWlmIChy
bl9tcGF0aF9jYXBhYmxlKHJuaCkgJiYKKwkJCXJ0X21wYXRoX2NvbmZsaWN0KHJuaCwgcnQsIG5l
dG1hc2spKSB7CisJCQlpZiAocnQtPnJ0X2lmYSkgeworCQkJCUlGQUZSRUUocnQtPnJ0X2lmYSk7
CisJCQl9CisJCQlGcmVlKHJ0X2tleShydCkpOworCQkJUlRfTE9DS19ERVNUUk9ZKHJ0KTsKKwkJ
CXVtYV96ZnJlZShydHpvbmUsIHJ0KTsKKwkJCXNlbmRlcnIoRUVYSVNUKTsKKwkJfQorCS8qIEVD
TVAgQ2hhbmdlcyAgRW5kICovCisKIAkJLyogWFhYIG10dSBtYW5pcHVsYXRpb24gd2lsbCBiZSBk
b25lIGluIHJuaF9hZGRhZGRyIC0tIGl0b2p1biAqLwogCQlybiA9IHJuaC0+cm5oX2FkZGFkZHIo
bmRzdCwgbmV0bWFzaywgcm5oLCBydC0+cnRfbm9kZXMpOwogCQlpZiAocm4gPT0gTlVMTCkgewpA
QCAtMTQ1Niw2ICsxNTkwLDI5IEBACiAJCQkJLyogdGhpcyB0YWJsZSBkb2Vzbid0IGV4aXN0IGJ1
dCBvdGhlcnMgbWlnaHQgKi8KIAkJCQljb250aW51ZTsKIAkJCVJBRElYX05PREVfSEVBRF9MT0NL
KHJuaCk7CisvKiBFQ01QIENoYW5nZXMgQmVnaW4gKi8KKwkJCWlmIChybl9tcGF0aF9jYXBhYmxl
KHJuaCkpIHsKKworCQkJCXJuID0gcm5oLT5ybmhfbWF0Y2hhZGRyKGRzdCwgcm5oKTsKKwkJCQlp
ZiAocm4gPT0gTlVMTCkgCisJCQkJCWVycm9yID0gRVNSQ0g7CisJCQkJZWxzZSB7CisJCQkJCXJ0
ID0gUk5UT1JUKHJuKTsKKwkJCQkJLyoKKwkJCQkJICogZm9yIGludGVyZmFjZSByb3V0ZSB0aGUK
KwkJCQkJICogcnQtPnJ0X2dhdGV3YXkgaXMgc29ja2FkZHJfaW50ZgorCQkJCQkgKiBmb3IgY2xv
bmluZyBBUlAgZW50cmllcywgc28KKwkJCQkJICogcnRfbXBhdGhfbWF0Y2hnYXRlIG11c3QgdXNl
IHRoZQorCQkJCQkgKiBpbnRlcmZhY2UgYWRkcmVzcworCQkJCQkgKi8KKwkJCQkJcnQgPSBydF9t
cGF0aF9tYXRjaGdhdGUocnQsCisJCQkJCSAgICBpZmEtPmlmYV9hZGRyKTsKKwkJCQkJaWYgKCFy
dCkgCisJCQkJCQllcnJvciA9IEVTUkNIOworCQkJCX0KKwkJCX0KKwkJCWVsc2UKKy8qIEVDTVAg
Q2hhbmdlcyBFbmQgKi8KIAkJCXJuID0gcm5oLT5ybmhfbG9va3VwKGRzdCwgbmV0bWFzaywgcm5o
KTsKIAkJCWVycm9yID0gKHJuID09IE5VTEwgfHwKIAkJCSAgICAocm4tPnJuX2ZsYWdzICYgUk5G
X1JPT1QpIHx8CkBAIC0xNDgyLDYgKzE2MzksMjIgQEAKIAkJCSAqIG5vdGlmeSBhbnkgbGlzdGVu
aW5nIHJvdXRpbmcgYWdlbnRzIG9mIHRoZSBjaGFuZ2UKIAkJCSAqLwogCQkJUlRfTE9DSyhydCk7
CisvKiBFQ01QIENoYW5nZXMgQmVnaW4gKi8KKwkJCS8qCisJCQkgKiBpbiBjYXNlIGFkZHJlc3Mg
YWxpYXMgZmluZHMgdGhlIGZpcnN0IGFkZHJlc3MKKwkJCSAqIGUuZy4gaWZjb25maWcgYmdlMCAx
OTIuMTAzLjU0LjI0Ni8yNAorCQkJICogZS5nLiBpZmNvbmZpZyBiZ2UwIDE5Mi4xMDMuNTQuMjQ3
LzI0CisJCQkgKiB0aGUgYWRkcmVzcyBzZXQgaW4gdGhlIHJvdXRlIGlzIDE5Mi4xMDMuNTQuMjQ2
CisJCQkgKiBzbyB3ZSBuZWVkIHRvIHJlcGxhY2UgaXQgd2l0aCAxOTIuMTAzLjU0LjI0NworCQkJ
ICovCisJCQlpZiAobWVtY21wKHJ0LT5ydF9pZmEtPmlmYV9hZGRyLAorCQkJICAgIGlmYS0+aWZh
X2FkZHIsIGlmYS0+aWZhX2FkZHItPnNhX2xlbikpIHsKKwkJCQlJRkFGUkVFKHJ0LT5ydF9pZmEp
OworCQkJCUlGQVJFRihpZmEpOworCQkJCXJ0LT5ydF9pZnAgPSBpZmEtPmlmYV9pZnA7CisJCQkJ
cnQtPnJ0X2lmYSA9IGlmYTsKKwkJCX0KKy8qIEVDTVAgQ2hhbmdlcyBFbmQgKi8KIAkJCXJ0X25l
d2FkZHJtc2coY21kLCBpZmEsIGVycm9yLCBydCk7CiAJCQlpZiAoY21kID09IFJUTV9ERUxFVEUp
IHsKIAkJCQkvKgpkaWZmIC11IC1yIC9ob21lL2JhbGFqaS9Db2Rlcy9GcmVlQlNELzcuMi4wLzcu
Mi4wX3VubW9kaWZpZWQvNy4yLjAvc3lzL25ldC9yb3V0ZS5oIG5ldC9yb3V0ZS5oCi0tLSAvaG9t
ZS9iYWxhamkvQ29kZXMvRnJlZUJTRC83LjIuMC83LjIuMF91bm1vZGlmaWVkLzcuMi4wL3N5cy9u
ZXQvcm91dGUuaAkyMDEwLTAyLTA0IDIyOjQwOjI5LjAwMDAwMDAwMCArMDUzMAorKysgbmV0L3Jv
dXRlLmgJMjAxMC0wMi0wNiAxNzoxOToxMC42NzI5NDYwMDQgKzA1MzAKQEAgLTU4LDYgKzU4LDkg
QEAKIAl1X2xvbmcJcm14X210dTsJLyogTVRVIGZvciB0aGlzIHBhdGggKi8KIAl1X2xvbmcJcm14
X2V4cGlyZTsJLyogbGlmZXRpbWUgZm9yIHJvdXRlLCBlLmcuIHJlZGlyZWN0ICovCiAJdV9sb25n
CXJteF9wa3NlbnQ7CS8qIHBhY2tldHMgc2VudCB1c2luZyB0aGlzIHJvdXRlICovCisvKiBFQ01Q
IENoYW5nZXMgQmVnaW4gKi8KKwl1X2xvbmcgIHJteF93ZWlnaHQ7IAorLyogRUNNUCBDaGFuZ2Vz
IEVuZCAgKi8KIH07CiAKIHN0cnVjdCBydF9tZXRyaWNzIHsKQEAgLTEwMSw2ICsxMDQsMTEgQEAK
ICNpZm5kZWYgUk5GX05PUk1BTAogI2luY2x1ZGUgPG5ldC9yYWRpeC5oPgogI2VuZGlmCisKKy8q
IEVDTVAgQ2hhbmdlcyBCZWdpbiAqLworI2luY2x1ZGUgPG5ldC9yYWRpeF9tcGF0aC5oPgorLyog
RUNNUCBDaGFuZ2VzIEVuZCAgKi8KKwogc3RydWN0IHJ0ZW50cnkgewogCXN0cnVjdAlyYWRpeF9u
b2RlIHJ0X25vZGVzWzJdOwkvKiB0cmVlIGdsdWUsIGFuZCBvdGhlciB2YWx1ZXMgKi8KIAkvKgpk
aWZmIC11IC1yIC9ob21lL2JhbGFqaS9Db2Rlcy9GcmVlQlNELzcuMi4wLzcuMi4wX3VubW9kaWZp
ZWQvNy4yLjAvc3lzL25ldC9ydHNvY2suYyBuZXQvcnRzb2NrLmMKLS0tIC9ob21lL2JhbGFqaS9D
b2Rlcy9GcmVlQlNELzcuMi4wLzcuMi4wX3VubW9kaWZpZWQvNy4yLjAvc3lzL25ldC9ydHNvY2su
YwkyMDEwLTAyLTA0IDIyOjQwOjI5LjAwMDAwMDAwMCArMDUzMAorKysgbmV0L3J0c29jay5jCTIw
MTAtMDItMDYgMTY6MzQ6NDMuNzAwNzEzMTUyICswNTMwCkBAIC01MzYsNiArNTM2LDI3IEBACiAJ
CQlSQURJWF9OT0RFX0hFQURfVU5MT0NLKHJuaCk7CiAJCQlzZW5kZXJyKEVTUkNIKTsKIAkJfQor
CisvKiBFQ01QIENoYW5nZXMgQmVnaW4gKi8KKwkJLyoKKwkJICogZm9yIFJUTV9DSEFOR0UvTE9D
SywgaWYgd2UgZ290IG11bHRpcGF0aCByb3V0ZXMsCisJCSAqIHdlIHJlcXVpcmUgdXNlcnMgdG8g
c3BlY2lmeSBhIG1hdGNoaW5nIFJUQVhfR0FURVdBWS4KKwkJICoKKwkJICogZm9yIFJUTV9HRVQs
IGdhdGUgaXMgb3B0aW9uYWwgZXZlbiB3aXRoIG11bHRpcGF0aC4KKwkJICogaWYgZ2F0ZSA9PSBO
VUxMIHRoZSBmaXJzdCBtYXRjaCBpcyByZXR1cm5lZC4KKwkJICogKG5vIG5lZWQgdG8gY2FsbCBy
dF9tcGF0aF9tYXRjaGdhdGUgaWYgZ2F0ZSA9PSBOVUxMKQorCQkgKi8KKwkJaWYgKHJuX21wYXRo
X2NhcGFibGUocm5oKSAmJgorCQkgICAgKHJ0bS0+cnRtX3R5cGUgIT0gUlRNX0dFVCB8fCBpbmZv
LnJ0aV9pbmZvW1JUQVhfR0FURVdBWV0pKSB7CisJCQlydCA9IHJ0X21wYXRoX21hdGNoZ2F0ZShy
dCwgaW5mby5ydGlfaW5mb1tSVEFYX0dBVEVXQVldKTsKKwkJCWlmICghcnQpIHsKKwkJCQlSQURJ
WF9OT0RFX0hFQURfVU5MT0NLKHJuaCk7CisJCQkJc2VuZGVycihFU1JDSCk7CisJCQl9CisJCX0K
KworLyogRUNNUCBDaGFuZ2VzIEVuZCAqLworCiAJCVJUX0xPQ0socnQpOwogCQlSVF9BRERSRUYo
cnQpOwogCQlSQURJWF9OT0RFX0hFQURfVU5MT0NLKHJuaCk7Cg==
--00504502ad118ad7e3047f189c33
Content-Type: text/x-patch; charset=US-ASCII; name="ecmp_patch2.patch"
Content-Disposition: attachment; filename="ecmp_patch2.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_g5fffgku1

ZGlmZiAtdSAtciAvaG9tZS9iYWxhamkvQ29kZXMvRnJlZUJTRC83LjIuMC83LjIuMF91bm1vZGlm
aWVkLzcuMi4wL3N5cy9uZXRpbmV0L2luX3JteC5jIG5ldGluZXQvaW5fcm14LmMKLS0tIC9ob21l
L2JhbGFqaS9Db2Rlcy9GcmVlQlNELzcuMi4wLzcuMi4wX3VubW9kaWZpZWQvNy4yLjAvc3lzL25l
dGluZXQvaW5fcm14LmMJMjAxMC0wMi0wNCAyMjozNTowNy4wMDAwMDAwMDAgKzA1MzAKKysrIG5l
dGluZXQvaW5fcm14LmMJMjAxMC0wMi0wNyAxMjo1Njo1Ni45MzQ5NjgyNDQgKzA1MzAKQEAgLTM2
OSw2ICszNjksOSBAQAogCXJuaC0+cm5oX2FkZGFkZHIgPSBpbl9hZGRyb3V0ZTsKIAlybmgtPnJu
aF9tYXRjaGFkZHIgPSBpbl9tYXRyb3V0ZTsKIAlybmgtPnJuaF9jbG9zZSA9IGluX2Nsc3JvdXRl
OworCS8qIEVDTVAgQ2hhbmdlcyBCZWdpbiAqLworCXJuaC0+cm5oX211bHRpcGF0aCA9IDE7CisJ
LyogRUNNUCBDaGFuZ2VzIEVuZCAqLwogCWlmIChfaW5fcnRfd2FzX2hlcmUgPT0gMCApIHsKIAkJ
Y2FsbG91dF9pbml0KCZydHFfdGltZXIsIENBTExPVVRfTVBTQUZFKTsKIAkJaW5fcnRxdGltbyhy
bmgpOwkvKiBraWNrIG9mZiB0aW1lb3V0IGZpcnN0IHRpbWUgKi8K
--00504502ad118ad7e3047f189c33--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6dd1343e1002080739m38f4deffr604c71e5036389a4>