Re: [PATCH] IPv6 dnat/snat support

"Tseng, Kuo-Lang" <[email protected]> Fri, 8 Feb 2008 16:01:47 -0800
Newsgroups gmane.linux.network.bridge.ebtables.devel
Message-ID <3F25FE8C477E9E4FB3D42C2FF937C08A85D069@orsmsx423.amr.corp.intel.com>
This is a multi-part message in MIME format.

------_=_NextPart_001_01C86AAE.F8098900
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Bart De Schuymer wrote on Friday, February 08, 2008 10:21 AM:

> Hi Kuo,
>=20
> Thanks for your patch. The patch looks ok. Tiny comment: the header
> diffs belong in the kernel patch and the userspace patch lacks a man
> page update.
> Seems like we'll need a merge of the two kernel patches and extra
> userspace code.
>=20
> I was gonna give my say about posting to netfilter-devel only, without
> userspace code, but I guess I'm better off restraining myself from
> doing that.
>=20
> cheers,
> Bart

Thanks. I have attached an updated userspace patch that includes the
missing man page update and removed the header diffs.=20

I will post to the netfilter-devel for the kernel code.




------_=_NextPart_001_01C86AAE.F8098900
Content-Type: application/octet-stream;
	name="ebtables-ipv6.patch"
Content-Transfer-Encoding: base64
Content-Description: ebtables-ipv6.patch
Content-Disposition: attachment;
	filename="ebtables-ipv6.patch"

ZGlmZiAtcnVOcCBlYnRhYmxlcy12Mi4wLjgtMi5vcmlnL2VidGFibGVzLjggZWJ0YWJsZXMtdjIu
MC44LTIuaXB2Ni9lYnRhYmxlcy44Ci0tLSBlYnRhYmxlcy12Mi4wLjgtMi5vcmlnL2VidGFibGVz
LjgJMjAwNy0wOS0yMSAxMDoyNzoyMC4wMDAwMDAwMDAgLTA3MDAKKysrIGVidGFibGVzLXYyLjAu
OC0yLmlwdjYvZWJ0YWJsZXMuOAkyMDA4LTAyLTA4IDE1OjE3OjU3LjAwMDAwMDAwMCAtMDgwMApA
QCAtNjUyLDYgKzY1MiwzOSBAQCBJZgogVGhlIGZsYWcKIC5CIC0taXAtZHBvcnQKIGlzIGFuIGFs
aWFzIGZvciB0aGlzIG9wdGlvbi4KKy5TUyBpcDYKK1NwZWNpZnkgSVB2NiBmaWVsZHMuIFRoZSBw
cm90b2NvbCBtdXN0IGJlIHNwZWNpZmllZCBhcworLklSIElQdjYgLgorLlRQCisuQlIgIi0taXA2
LXByb3RvY29sICIgIlshXSBcZklwcm90b2NvbFxmUCIKK1RoZSBJUCBwcm90b2NvbC4KK1RoZSBm
bGFnCisuQiAtLWlwNi1wcm90bworaXMgYW4gYWxpYXMgZm9yIHRoaXMgb3B0aW9uLgorLlRQCisu
QlIgIi0taXA2LXNvdXJjZS1wb3J0ICIgIlshXSBcZklwb3J0MVxmUFs6XGZJcG9ydDJcZlBdIgor
VGhlIHNvdXJjZSBwb3J0IG9yIHBvcnQgcmFuZ2UgZm9yIHRoZSBJUCBwcm90b2NvbHMgNiAoVENQ
KSwgMTcKKyhVRFApLCAzMyAoRENDUCkgb3IgMTMyIChTQ1RQKS4gVGhlCisuQiAtLWlwNi1wcm90
b2NvbAorb3B0aW9uIG11c3QgYmUgc3BlY2lmaWVkIGFzCisuSVIgVENQICIsICIgVURQICIsICIg
RENDUCAiIG9yICIgU0NUUCAuCitJZgorLklSIHBvcnQxICIgaXMgb21pdHRlZCwgIiAwOnBvcnQy
ICIgaXMgdXNlZDsgaWYgIiBwb3J0MiAiIGlzIG9taXR0ZWQgYnV0IGEgY29sb24gaXMgc3BlY2lm
aWVkLCAiIHBvcnQxOjY1NTM1ICIgaXMgdXNlZC4iCitUaGUgZmxhZworLkIgLS1pcDYtc3BvcnQK
K2lzIGFuIGFsaWFzIGZvciB0aGlzIG9wdGlvbi4KKy5UUAorLkJSICItLWlwNi1kZXN0aW5hdGlv
bi1wb3J0ICIgIlshXSBcZklwb3J0MVxmUFs6XGZJcG9ydDJcZlBdIgorVGhlIGRlc3RpbmF0aW9u
IHBvcnQgb3IgcG9ydCByYW5nZSBmb3IgaXAgcHJvdG9jb2xzIDYgKFRDUCksIDE3CisoVURQKSwg
MzMgKERDQ1ApIG9yIDEzMiAoU0NUUCkuIFRoZQorLkIgLS1pcDYtcHJvdG9jb2wKK29wdGlvbiBt
dXN0IGJlIHNwZWNpZmllZCBhcworLklSIFRDUCAiLCAiIFVEUCAiLCAiIERDQ1AgIiBvciAiIFND
VFAgLgorSWYKKy5JUiBwb3J0MSAiIGlzIG9taXR0ZWQsICIgMDpwb3J0MiAiIGlzIHVzZWQ7IGlm
ICIgcG9ydDIgIiBpcyBvbWl0dGVkIGJ1dCBhIGNvbG9uIGlzIHNwZWNpZmllZCwgIiBwb3J0MTo2
NTUzNSAiIGlzIHVzZWQuIgorVGhlIGZsYWcKKy5CIC0taXA2LWRwb3J0CitpcyBhbiBhbGlhcyBm
b3IgdGhpcyBvcHRpb24uCiAuU1MgbGltaXQKIFRoaXMgbW9kdWxlIG1hdGNoZXMgYXQgYSBsaW1p
dGVkIHJhdGUgdXNpbmcgYSB0b2tlbiBidWNrZXQgZmlsdGVyLgogQSBydWxlIHVzaW5nIHRoaXMg
ZXh0ZW5zaW9uIHdpbGwgbWF0Y2ggdW50aWwgdGhpcyBsaW1pdCBpcyByZWFjaGVkLgpAQCAtODAw
LDYgKzgzMywxMSBAQCB0byBiZSBwcmludGVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpCiBX
aWxsIGxvZyB0aGUgaXAgaW5mb3JtYXRpb24gd2hlbiBhIGZyYW1lIG1hZGUgYnkgdGhlIGlwIHBy
b3RvY29sIG1hdGNoZXMgCiB0aGUgcnVsZS4gVGhlIGRlZmF1bHQgaXMgbm8gaXAgaW5mb3JtYXRp
b24gbG9nZ2luZy4KIC5UUAorLkIgLS1sb2ctaXA2IAorLmJyCitXaWxsIGxvZyB0aGUgaXB2NiBp
bmZvcm1hdGlvbiB3aGVuIGEgZnJhbWUgbWFkZSBieSB0aGUgaXB2NiBwcm90b2NvbCBtYXRjaGVz
IAordGhlIHJ1bGUuIFRoZSBkZWZhdWx0IGlzIG5vIGlwdjYgaW5mb3JtYXRpb24gbG9nZ2luZy4K
Ky5UUAogLkIgLS1sb2ctYXJwCiAuYnIKIFdpbGwgbG9nIHRoZSAocilhcnAgaW5mb3JtYXRpb24g
d2hlbiBhIGZyYW1lIG1hZGUgYnkgdGhlIChyKWFycCBwcm90b2NvbHMKZGlmZiAtcnVOcCBlYnRh
Ymxlcy12Mi4wLjgtMi5vcmlnL2V4dGVuc2lvbnMvZWJ0X2lwNi5jIGVidGFibGVzLXYyLjAuOC0y
LmlwdjYvZXh0ZW5zaW9ucy9lYnRfaXA2LmMKLS0tIGVidGFibGVzLXYyLjAuOC0yLm9yaWcvZXh0
ZW5zaW9ucy9lYnRfaXA2LmMJMTk2OS0xMi0zMSAxNjowMDowMC4wMDAwMDAwMDAgLTA4MDAKKysr
IGVidGFibGVzLXYyLjAuOC0yLmlwdjYvZXh0ZW5zaW9ucy9lYnRfaXA2LmMJMjAwOC0wMi0wNiAx
NTowMzoyMi4wMDAwMDAwMDAgLTA4MDAKQEAgLTAsMCArMSwyNjMgQEAKKy8qIGVidF9pcDYKKyAq
IAorICogQXV0aG9yczoKKyAqIEt1by1MYW5nIFRzZW5nIDxrdW8tbGFuZy50c2VuZ0BpbnRlbC5j
b20+CisgKiBNYW5vaGFyIENhc3RlbGlubyA8bWFub2hhci5jYXN0ZWxpbm9AaW50ZWwuY29tPgor
ICoKKyAqIFN1bW1hcnk6CisgKiBUaGlzIGlzIGp1c3QgYSBtb2RpZmljYXRpb24gb2YgdGhlIElQ
djQgY29kZSB3cml0dGVuIGJ5IAorICogQmFydCBEZSBTY2h1eW1lciA8YmRzY2h1eW1AcGFuZG9y
YS5iZT4KKyAqIHdpdGggdGhlIGNoYW5nZXMgcmVxdWlyZWQgdG8gc3VwcG9ydCBJUHY2CisgKgor
ICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUg
PHN0cmluZy5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUgPG5ldGRiLmg+CisjaW5j
bHVkZSAiLi4vaW5jbHVkZS9lYnRhYmxlc191LmgiCisjaW5jbHVkZSA8bGludXgvbmV0ZmlsdGVy
X2JyaWRnZS9lYnRfaXA2Lmg+CisKKyNkZWZpbmUgSVBfU09VUkNFICcxJworI2RlZmluZSBJUF9E
RVNUICAgJzInCisjZGVmaW5lIElQX1RDTEFTUyAnMycKKyNkZWZpbmUgSVBfUFJPVE8gICc0Jwor
I2RlZmluZSBJUF9TUE9SVCAgJzUnCisjZGVmaW5lIElQX0RQT1JUICAnNicKKworc3RhdGljIHN0
cnVjdCBvcHRpb24gb3B0c1tdID0KK3sKKwl7ICJpcDYtcHJvdG9jb2wiICAgICAgICAgLCByZXF1
aXJlZF9hcmd1bWVudCwgMCwgSVBfUFJPVE8gIH0sCisJeyAiaXA2LXByb3RvIiAgICAgICAgICAg
ICwgcmVxdWlyZWRfYXJndW1lbnQsIDAsIElQX1BST1RPICB9LAorCXsgImlwNi1zb3VyY2UtcG9y
dCIgICAgICAsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCBJUF9TUE9SVCAgfSwKKwl7ICJpcDYtc3Bv
cnQiICAgICAgICAgICAgLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgSVBfU1BPUlQgIH0sCisJeyAi
aXA2LWRlc3RpbmF0aW9uLXBvcnQiICwgcmVxdWlyZWRfYXJndW1lbnQsIDAsIElQX0RQT1JUICB9
LAorCXsgImlwNi1kcG9ydCIgICAgICAgICAgICAsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCBJUF9E
UE9SVCAgfSwKKwl7IDAgfQorfTsKKworLyogdHJhbnNmb3JtIGEgcHJvdG9jb2wgYW5kIHNlcnZp
Y2UgbmFtZSBpbnRvIGEgcG9ydCBudW1iZXIgKi8KK3N0YXRpYyB1aW50MTZfdCBwYXJzZV9wb3J0
KGNvbnN0IGNoYXIgKnByb3RvY29sLCBjb25zdCBjaGFyICpuYW1lKQoreworCXN0cnVjdCBzZXJ2
ZW50ICpzZXJ2aWNlOworCWNoYXIgKmVuZDsKKwlpbnQgcG9ydDsKKworCXBvcnQgPSBzdHJ0b2wo
bmFtZSwgJmVuZCwgMTApOworCWlmICgqZW5kICE9ICdcMCcpIHsKKwkJaWYgKHByb3RvY29sICYm
IAorCQkgICAgKHNlcnZpY2UgPSBnZXRzZXJ2YnluYW1lKG5hbWUsIHByb3RvY29sKSkgIT0gTlVM
TCkKKwkJCXJldHVybiBudG9ocyhzZXJ2aWNlLT5zX3BvcnQpOworCX0KKwllbHNlIGlmIChwb3J0
ID49IDAgfHwgcG9ydCA8PSAweEZGRkYpIHsKKwkJcmV0dXJuIHBvcnQ7CisJfQorCWVidF9wcmlu
dF9lcnJvcigiUHJvYmxlbSB3aXRoIHNwZWNpZmllZCAlcyBwb3J0ICclcyciLCAKKwkJCXByb3Rv
Y29sP3Byb3RvY29sOiIiLCBuYW1lKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQKK3Bh
cnNlX3BvcnRfcmFuZ2UoY29uc3QgY2hhciAqcHJvdG9jb2wsIGNvbnN0IGNoYXIgKnBvcnRzdHJp
bmcsIHVpbnQxNl90ICpwb3J0cykKK3sKKwljaGFyICpidWZmZXI7CisJY2hhciAqY3A7CisJCisJ
YnVmZmVyID0gc3RyZHVwKHBvcnRzdHJpbmcpOworCWlmICgoY3AgPSBzdHJjaHIoYnVmZmVyLCAn
OicpKSA9PSBOVUxMKQorCQlwb3J0c1swXSA9IHBvcnRzWzFdID0gcGFyc2VfcG9ydChwcm90b2Nv
bCwgYnVmZmVyKTsKKwllbHNlIHsKKwkJKmNwID0gJ1wwJzsKKwkJY3ArKzsKKwkJcG9ydHNbMF0g
PSBidWZmZXJbMF0gPyBwYXJzZV9wb3J0KHByb3RvY29sLCBidWZmZXIpIDogMDsKKwkJaWYgKGVi
dF9lcnJvcm1zZ1swXSAhPSAnXDAnKQorCQkJcmV0dXJuOworCQlwb3J0c1sxXSA9IGNwWzBdID8g
cGFyc2VfcG9ydChwcm90b2NvbCwgY3ApIDogMHhGRkZGOworCQlpZiAoZWJ0X2Vycm9ybXNnWzBd
ICE9ICdcMCcpCisJCQlyZXR1cm47CisJCQorCQlpZiAocG9ydHNbMF0gPiBwb3J0c1sxXSkKKwkJ
CWVidF9wcmludF9lcnJvcigiSW52YWxpZCBwb3J0cmFuZ2UgKG1pbiA+IG1heCkiKTsKKwl9CisJ
ZnJlZShidWZmZXIpOworfQorCitzdGF0aWMgdm9pZCBwcmludF9wb3J0X3JhbmdlKHVpbnQxNl90
ICpwb3J0cykKK3sKKwlpZiAocG9ydHNbMF0gPT0gcG9ydHNbMV0pCisJCXByaW50ZigiJWQgIiwg
cG9ydHNbMF0pOworCWVsc2UKKwkJcHJpbnRmKCIlZDolZCAiLCBwb3J0c1swXSwgcG9ydHNbMV0p
OworfQorCitzdGF0aWMgdm9pZCBwcmludF9oZWxwKCkKK3sKKwlwcmludGYoCisiaXA2IG9wdGlv
bnM6XG4iCisiLS1pcDYtcHJvdG8gIFshXSBwcm90b2NvbCAgICAgIDogaXB2NiBwcm90b2NvbCBz
cGVjaWZpY2F0aW9uXG4iCisiLS1pcDYtc3BvcnQgIFshXSBwb3J0Wzpwb3J0XSAgIDogdGNwL3Vk
cCBzb3VyY2UgcG9ydCBvciBwb3J0IHJhbmdlXG4iCisiLS1pcDYtZHBvcnQgIFshXSBwb3J0Wzpw
b3J0XSAgIDogdGNwL3VkcCBkZXN0aW5hdGlvbiBwb3J0IG9yIHBvcnQgcmFuZ2VcbiIpOworfQor
CitzdGF0aWMgdm9pZCBpbml0KHN0cnVjdCBlYnRfZW50cnlfbWF0Y2ggKm1hdGNoKQoreworCXN0
cnVjdCBlYnRfaXA2X2luZm8gKmlwaW5mbyA9IChzdHJ1Y3QgZWJ0X2lwNl9pbmZvICopbWF0Y2gt
PmRhdGE7CisKKwlpcGluZm8tPmludmZsYWdzID0gMDsKKwlpcGluZm8tPmJpdG1hc2sgPSAwOwor
fQorCisjZGVmaW5lIE9QVF9TT1VSQ0UgMHgwMQorI2RlZmluZSBPUFRfREVTVCAgIDB4MDIKKyNk
ZWZpbmUgT1BUX1RDTEFTUyAweDA0CisjZGVmaW5lIE9QVF9QUk9UTyAgMHgwOAorI2RlZmluZSBP
UFRfU1BPUlQgIDB4MTAKKyNkZWZpbmUgT1BUX0RQT1JUICAweDIwCitzdGF0aWMgaW50IHBhcnNl
KGludCBjLCBjaGFyICoqYXJndiwgaW50IGFyZ2MsIGNvbnN0IHN0cnVjdCBlYnRfdV9lbnRyeSAq
ZW50cnksCisgICB1bnNpZ25lZCBpbnQgKmZsYWdzLCBzdHJ1Y3QgZWJ0X2VudHJ5X21hdGNoICoq
bWF0Y2gpCit7CisJc3RydWN0IGVidF9pcDZfaW5mbyAqaXBpbmZvID0gKHN0cnVjdCBlYnRfaXA2
X2luZm8gKikoKm1hdGNoKS0+ZGF0YTsKKwljaGFyICplbmQ7CisJbG9uZyBpbnQgaTsKKworCXN3
aXRjaCAoYykgeworCWNhc2UgSVBfU1BPUlQ6CisJY2FzZSBJUF9EUE9SVDoKKwkJaWYgKGMgPT0g
SVBfU1BPUlQpIHsKKwkJCWVidF9jaGVja19vcHRpb24yKGZsYWdzLCBPUFRfU1BPUlQpOworCQkJ
aXBpbmZvLT5iaXRtYXNrIHw9IEVCVF9JUDZfU1BPUlQ7CisJCQlpZiAoZWJ0X2NoZWNrX2ludmVy
c2UyKG9wdGFyZykpCisJCQkJaXBpbmZvLT5pbnZmbGFncyB8PSBFQlRfSVA2X1NQT1JUOworCQl9
IGVsc2UgeworCQkJZWJ0X2NoZWNrX29wdGlvbjIoZmxhZ3MsIE9QVF9EUE9SVCk7CisJCQlpcGlu
Zm8tPmJpdG1hc2sgfD0gRUJUX0lQNl9EUE9SVDsKKwkJCWlmIChlYnRfY2hlY2tfaW52ZXJzZTIo
b3B0YXJnKSkKKwkJCQlpcGluZm8tPmludmZsYWdzIHw9IEVCVF9JUDZfRFBPUlQ7CisJCX0KKwkJ
aWYgKGMgPT0gSVBfU1BPUlQpCisJCQlwYXJzZV9wb3J0X3JhbmdlKE5VTEwsIG9wdGFyZywgaXBp
bmZvLT5zcG9ydCk7CisJCWVsc2UKKwkJCXBhcnNlX3BvcnRfcmFuZ2UoTlVMTCwgb3B0YXJnLCBp
cGluZm8tPmRwb3J0KTsKKwkJYnJlYWs7CisKKwljYXNlIElQX1BST1RPOgorCQllYnRfY2hlY2tf
b3B0aW9uMihmbGFncywgT1BUX1BST1RPKTsKKwkJaWYgKGVidF9jaGVja19pbnZlcnNlMihvcHRh
cmcpKQorCQkJaXBpbmZvLT5pbnZmbGFncyB8PSBFQlRfSVA2X1BST1RPOworCQlpID0gc3RydG91
bChvcHRhcmcsICZlbmQsIDEwKTsKKwkJaWYgKCplbmQgIT0gJ1wwJykgeworCQkJc3RydWN0IHBy
b3RvZW50ICpwZTsKKworCQkJcGUgPSBnZXRwcm90b2J5bmFtZShvcHRhcmcpOworCQkJaWYgKHBl
ID09IE5VTEwpCisJCQkJZWJ0X3ByaW50X2Vycm9yKCJVbmtub3duIHNwZWNpZmllZCBJUCBwcm90
b2NvbCAtICVzIiwgYXJndltvcHRpbmQgLSAxXSk7CisJCQlpcGluZm8tPnByb3RvY29sID0gcGUt
PnBfcHJvdG87CisJCX0gZWxzZSB7CisJCQlpcGluZm8tPnByb3RvY29sID0gKHVuc2lnbmVkIGNo
YXIpIGk7CisJCX0KKwkJaXBpbmZvLT5iaXRtYXNrIHw9IEVCVF9JUDZfUFJPVE87CisJCWJyZWFr
OworCWRlZmF1bHQ6CisJCXJldHVybiAwOworCX0KKwlyZXR1cm4gMTsKK30KKworc3RhdGljIHZv
aWQgZmluYWxfY2hlY2soY29uc3Qgc3RydWN0IGVidF91X2VudHJ5ICplbnRyeSwKKyAgIGNvbnN0
IHN0cnVjdCBlYnRfZW50cnlfbWF0Y2ggKm1hdGNoLCBjb25zdCBjaGFyICpuYW1lLAorICAgdW5z
aWduZWQgaW50IGhvb2ttYXNrLCB1bnNpZ25lZCBpbnQgdGltZSkKK3sKKwlzdHJ1Y3QgZWJ0X2lw
Nl9pbmZvICppcGluZm8gPSAoc3RydWN0IGVidF9pcDZfaW5mbyAqKW1hdGNoLT5kYXRhOworCisJ
aWYgKGVudHJ5LT5ldGhwcm90byAhPSBFVEhfUF9JUFY2IHx8IGVudHJ5LT5pbnZmbGFncyAmIEVC
VF9JUFJPVE8pIHsKKwkJZWJ0X3ByaW50X2Vycm9yKCJGb3IgSVB2NiBmaWx0ZXJpbmcgdGhlIHBy
b3RvY29sIG11c3QgYmUgIgorCQkgICAgICAgICAgICAic3BlY2lmaWVkIGFzIElQdjYiKTsKKwl9
IGVsc2UgaWYgKGlwaW5mby0+Yml0bWFzayAmIChFQlRfSVA2X1NQT1JUfEVCVF9JUDZfRFBPUlQp
ICYmCisJCSghKGlwaW5mby0+Yml0bWFzayAmIEVCVF9JUDZfUFJPVE8pIHx8CisJCWlwaW5mby0+
aW52ZmxhZ3MgJiBFQlRfSVA2X1BST1RPIHx8CisJCShpcGluZm8tPnByb3RvY29sIT1JUFBST1RP
X1RDUCAmJgorCQkgaXBpbmZvLT5wcm90b2NvbCE9SVBQUk9UT19VRFAgJiYKKwkJIGlwaW5mby0+
cHJvdG9jb2whPUlQUFJPVE9fU0NUUCAmJgorCQkgaXBpbmZvLT5wcm90b2NvbCE9SVBQUk9UT19E
Q0NQKSkpCisJCWVidF9wcmludF9lcnJvcigiRm9yIHBvcnQgZmlsdGVyaW5nIHRoZSBJUCBwcm90
b2NvbCBtdXN0IGJlICIKKwkJCQkiZWl0aGVyIDYgKHRjcCksIDE3ICh1ZHApLCAzMyAoZGNjcCkg
b3IgIgorCQkJCSIxMzIgKHNjdHApIik7Cit9CisKK3N0YXRpYyB2b2lkIHByaW50KGNvbnN0IHN0
cnVjdCBlYnRfdV9lbnRyeSAqZW50cnksCisgICBjb25zdCBzdHJ1Y3QgZWJ0X2VudHJ5X21hdGNo
ICptYXRjaCkKK3sKKwlzdHJ1Y3QgZWJ0X2lwNl9pbmZvICppcGluZm8gPSAoc3RydWN0IGVidF9p
cDZfaW5mbyAqKW1hdGNoLT5kYXRhOworCisJaWYgKGlwaW5mby0+Yml0bWFzayAmIEVCVF9JUDZf
UFJPVE8pIHsKKwkJc3RydWN0IHByb3RvZW50ICpwZTsKKworCQlwcmludGYoIi0taXA2LXByb3Rv
ICIpOworCQlpZiAoaXBpbmZvLT5pbnZmbGFncyAmIEVCVF9JUDZfUFJPVE8pCisJCQlwcmludGYo
IiEgIik7CisJCXBlID0gZ2V0cHJvdG9ieW51bWJlcihpcGluZm8tPnByb3RvY29sKTsKKwkJaWYg
KHBlID09IE5VTEwpIHsKKwkJCXByaW50ZigiJWQgIiwgaXBpbmZvLT5wcm90b2NvbCk7CisJCX0g
ZWxzZSB7CisJCQlwcmludGYoIiVzICIsIHBlLT5wX25hbWUpOworCQl9CisJfQorCWlmIChpcGlu
Zm8tPmJpdG1hc2sgJiBFQlRfSVA2X1NQT1JUKSB7CisJCXByaW50ZigiLS1pcDYtc3BvcnQgIik7
CisJCWlmIChpcGluZm8tPmludmZsYWdzICYgRUJUX0lQNl9TUE9SVCkKKwkJCXByaW50ZigiISAi
KTsKKwkJcHJpbnRfcG9ydF9yYW5nZShpcGluZm8tPnNwb3J0KTsKKwl9CisJaWYgKGlwaW5mby0+
Yml0bWFzayAmIEVCVF9JUDZfRFBPUlQpIHsKKwkJcHJpbnRmKCItLWlwNi1kcG9ydCAiKTsKKwkJ
aWYgKGlwaW5mby0+aW52ZmxhZ3MgJiBFQlRfSVA2X0RQT1JUKQorCQkJcHJpbnRmKCIhICIpOwor
CQlwcmludF9wb3J0X3JhbmdlKGlwaW5mby0+ZHBvcnQpOworCX0KK30KKworc3RhdGljIGludCBj
b21wYXJlKGNvbnN0IHN0cnVjdCBlYnRfZW50cnlfbWF0Y2ggKm0xLAorICAgY29uc3Qgc3RydWN0
IGVidF9lbnRyeV9tYXRjaCAqbTIpCit7CisJc3RydWN0IGVidF9pcDZfaW5mbyAqaXBpbmZvMSA9
IChzdHJ1Y3QgZWJ0X2lwNl9pbmZvICopbTEtPmRhdGE7CisJc3RydWN0IGVidF9pcDZfaW5mbyAq
aXBpbmZvMiA9IChzdHJ1Y3QgZWJ0X2lwNl9pbmZvICopbTItPmRhdGE7CisKKwlpZiAoaXBpbmZv
MS0+Yml0bWFzayAhPSBpcGluZm8yLT5iaXRtYXNrKQorCQlyZXR1cm4gMDsKKwlpZiAoaXBpbmZv
MS0+aW52ZmxhZ3MgIT0gaXBpbmZvMi0+aW52ZmxhZ3MpCisJCXJldHVybiAwOworCWlmIChpcGlu
Zm8xLT5iaXRtYXNrICYgRUJUX0lQNl9QUk9UTykgeworCQlpZiAoaXBpbmZvMS0+cHJvdG9jb2wg
IT0gaXBpbmZvMi0+cHJvdG9jb2wpCisJCQlyZXR1cm4gMDsKKwl9CisJaWYgKGlwaW5mbzEtPmJp
dG1hc2sgJiBFQlRfSVA2X1NQT1JUKSB7CisJCWlmIChpcGluZm8xLT5zcG9ydFswXSAhPSBpcGlu
Zm8yLT5zcG9ydFswXSB8fAorCQkgICBpcGluZm8xLT5zcG9ydFsxXSAhPSBpcGluZm8yLT5zcG9y
dFsxXSkKKwkJCXJldHVybiAwOworCX0KKwlpZiAoaXBpbmZvMS0+Yml0bWFzayAmIEVCVF9JUDZf
RFBPUlQpIHsKKwkJaWYgKGlwaW5mbzEtPmRwb3J0WzBdICE9IGlwaW5mbzItPmRwb3J0WzBdIHx8
CisJCSAgIGlwaW5mbzEtPmRwb3J0WzFdICE9IGlwaW5mbzItPmRwb3J0WzFdKQorCQkJcmV0dXJu
IDA7CisJfQorCXJldHVybiAxOworfQorCitzdGF0aWMgc3RydWN0IGVidF91X21hdGNoIGlwNl9t
YXRjaCA9Cit7CisJLm5hbWUJCT0gRUJUX0lQNl9NQVRDSCwKKwkuc2l6ZQkJPSBzaXplb2Yoc3Ry
dWN0IGVidF9pcDZfaW5mbyksCisJLmhlbHAJCT0gcHJpbnRfaGVscCwKKwkuaW5pdAkJPSBpbml0
LAorCS5wYXJzZQkJPSBwYXJzZSwKKwkuZmluYWxfY2hlY2sJPSBmaW5hbF9jaGVjaywKKwkucHJp
bnQJCT0gcHJpbnQsCisJLmNvbXBhcmUJPSBjb21wYXJlLAorCS5leHRyYV9vcHMJPSBvcHRzLAor
fTsKKwordm9pZCBfaW5pdCh2b2lkKQoreworCWVidF9yZWdpc3Rlcl9tYXRjaCgmaXA2X21hdGNo
KTsKK30KZGlmZiAtcnVOcCBlYnRhYmxlcy12Mi4wLjgtMi5vcmlnL2V4dGVuc2lvbnMvZWJ0X2xv
Zy5jIGVidGFibGVzLXYyLjAuOC0yLmlwdjYvZXh0ZW5zaW9ucy9lYnRfbG9nLmMKLS0tIGVidGFi
bGVzLXYyLjAuOC0yLm9yaWcvZXh0ZW5zaW9ucy9lYnRfbG9nLmMJMjAwNy0wOS0yMSAxMDoyNzoy
MC4wMDAwMDAwMDAgLTA3MDAKKysrIGVidGFibGVzLXYyLjAuOC0yLmlwdjYvZXh0ZW5zaW9ucy9l
YnRfbG9nLmMJMjAwOC0wMS0zMCAxNzoyMjo1Ni4wMDAwMDAwMDAgLTA4MDAKQEAgLTYwLDYgKzYw
LDcgQEAgc3RhdGljIGludCBuYW1lX3RvX2xvZ2xldmVsKGNoYXIqIGFyZykKICNkZWZpbmUgTE9H
X0FSUCAgICAnMycKICNkZWZpbmUgTE9HX0lQICAgICAnNCcKICNkZWZpbmUgTE9HX0xPRyAgICAn
NScKKyNkZWZpbmUgTE9HX0lQNiAgICAnNicKIHN0YXRpYyBzdHJ1Y3Qgb3B0aW9uIG9wdHNbXSA9
CiB7CiAJeyAibG9nLXByZWZpeCIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCBMT0dfUFJFRklYIH0s
CkBAIC02Nyw2ICs2OCw3IEBAIHN0YXRpYyBzdHJ1Y3Qgb3B0aW9uIG9wdHNbXSA9CiAJeyAibG9n
LWFycCIgICAsIG5vX2FyZ3VtZW50ICAgICAgLCAwLCBMT0dfQVJQICAgIH0sCiAJeyAibG9nLWlw
IiAgICAsIG5vX2FyZ3VtZW50ICAgICAgLCAwLCBMT0dfSVAgICAgIH0sCiAJeyAibG9nIiAgICAg
ICAsIG5vX2FyZ3VtZW50ICAgICAgLCAwLCBMT0dfTE9HICAgIH0sCisJeyAibG9nLWlwNiIgICAs
IG5vX2FyZ3VtZW50ICAgICAgLCAwLCBMT0dfSVA2ICAgIH0sCiAJeyAwIH0KIH07CiAKQEAgLTgx
LDYgKzgzLDcgQEAgc3RhdGljIHZvaWQgcHJpbnRfaGVscCgpCiAiLS1sb2ctcHJlZml4IHByZWZp
eCA6IG1heC4gJWQgY2hhcnMuXG4iCiAiLS1sb2ctaXAgICAgICAgICAgICA6IHB1dCBpcCBpbmZv
LiBpbiB0aGUgbG9nIGZvciBpcCBwYWNrZXRzXG4iCiAiLS1sb2ctYXJwICAgICAgICAgICA6IHB1
dCAocilhcnAgaW5mby4gaW4gdGhlIGxvZyBmb3IgKHIpYXJwIHBhY2tldHNcbiIKKyItLWxvZy1p
cDYgICAgICAgICAgIDogcHV0IGlwNiBpbmZvLiBpbiB0aGUgbG9nIGZvciBpcDYgcGFja2V0c1xu
IgogCSwgRUJUX0xPR19QUkVGSVhfU0laRSAtIDEpOwogCXByaW50ZigibGV2ZWxzOlxuIik7CiAJ
Zm9yIChpID0gMDsgaSA8IDg7IGkrKykKQEAgLTEwMiw2ICsxMDUsNyBAQCBzdGF0aWMgdm9pZCBp
bml0KHN0cnVjdCBlYnRfZW50cnlfd2F0Y2hlCiAjZGVmaW5lIE9QVF9BUlAgICAgMHgwNAogI2Rl
ZmluZSBPUFRfSVAgICAgIDB4MDgKICNkZWZpbmUgT1BUX0xPRyAgICAweDEwCisjZGVmaW5lIE9Q
VF9JUDYgICAgMHgyMAogc3RhdGljIGludCBwYXJzZShpbnQgYywgY2hhciAqKmFyZ3YsIGludCBh
cmdjLCBjb25zdCBzdHJ1Y3QgZWJ0X3VfZW50cnkgKmVudHJ5LAogICAgdW5zaWduZWQgaW50ICpm
bGFncywgc3RydWN0IGVidF9lbnRyeV93YXRjaGVyICoqd2F0Y2hlcikKIHsKQEAgLTE1MSw2ICsx
NTUsMTMgQEAgc3RhdGljIGludCBwYXJzZShpbnQgYywgY2hhciAqKmFyZ3YsIGludAogCQlpZiAo
ZWJ0X2NoZWNrX2ludmVyc2Uob3B0YXJnKSkKIAkJCWVidF9wcmludF9lcnJvcjIoIlVuZXhwZWN0
ZWQgYCEnIGFmdGVyIC0tbG9nIik7CiAJCWJyZWFrOworCisJY2FzZSBMT0dfSVA2OgorCQllYnRf
Y2hlY2tfb3B0aW9uMihmbGFncywgT1BUX0lQNik7CisJCWlmIChlYnRfY2hlY2tfaW52ZXJzZShv
cHRhcmcpKQorCQkJZWJ0X3ByaW50X2Vycm9yMigiVW5leHBlY3RlZCBgIScgYWZ0ZXIgLS1sb2ct
aXA2Iik7CisJCWxvZ2luZm8tPmJpdG1hc2sgfD0gRUJUX0xPR19JUDY7CisJCWJyZWFrOwogCWRl
ZmF1bHQ6CiAJCXJldHVybiAwOwogCX0KQEAgLTE3NSw2ICsxODYsOCBAQCBzdGF0aWMgdm9pZCBw
cmludChjb25zdCBzdHJ1Y3QgZWJ0X3VfZW50CiAJCXByaW50ZigiIC0tbG9nLWlwIik7CiAJaWYg
KGxvZ2luZm8tPmJpdG1hc2sgJiBFQlRfTE9HX0FSUCkKIAkJcHJpbnRmKCIgLS1sb2ctYXJwIik7
CisJaWYgKGxvZ2luZm8tPmJpdG1hc2sgJiBFQlRfTE9HX0lQNikKKwkJcHJpbnRmKCIgLS1sb2ct
aXA2Iik7CiAJcHJpbnRmKCIgIik7CiB9CiAKZGlmZiAtcnVOcCBlYnRhYmxlcy12Mi4wLjgtMi5v
cmlnL2V4dGVuc2lvbnMvTWFrZWZpbGUgZWJ0YWJsZXMtdjIuMC44LTIuaXB2Ni9leHRlbnNpb25z
L01ha2VmaWxlCi0tLSBlYnRhYmxlcy12Mi4wLjgtMi5vcmlnL2V4dGVuc2lvbnMvTWFrZWZpbGUJ
MjAwNy0wOS0yMSAxMDoyNzoyMC4wMDAwMDAwMDAgLTA3MDAKKysrIGVidGFibGVzLXYyLjAuOC0y
LmlwdjYvZXh0ZW5zaW9ucy9NYWtlZmlsZQkyMDA4LTAxLTExIDE5OjQxOjQ3LjAwMDAwMDAwMCAt
MDgwMApAQCAtMSw2ICsxLDYgQEAKICMhIC91c3IvYmluL21ha2UKIAotRVhUX0ZVTkMrPTgwMl8z
IG5hdCBhcnAgYXJwcmVwbHkgaXAgc3RhbmRhcmQgbG9nIHJlZGlyZWN0IHZsYW4gbWFya19tIG1h
cmsgXAorRVhUX0ZVTkMrPTgwMl8zIG5hdCBhcnAgYXJwcmVwbHkgaXAgaXA2IHN0YW5kYXJkIGxv
ZyByZWRpcmVjdCB2bGFuIG1hcmtfbSBtYXJrIFwKICAgICAgICAgICBwa3R0eXBlIHN0cCBhbW9u
ZyBsaW1pdCB1bG9nCiBFWFRfVEFCTEVTKz1maWx0ZXIgbmF0IGJyb3V0ZQogRVhUX09CSlMrPSQo
Zm9yZWFjaCBULCQoRVhUX0ZVTkMpLCBleHRlbnNpb25zL2VidF8kKFQpLm8pCg==

------_=_NextPart_001_01C86AAE.F8098900
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
------_=_NextPart_001_01C86AAE.F8098900
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Ebtables-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ebtables-devel

------_=_NextPart_001_01C86AAE.F8098900--