[PATCH] IPv6 dnat/snat support
"Tseng, Kuo-Lang" <[email protected]> Wed, 6 Feb 2008 16:14:43 -0800
| Newsgroups | gmane.linux.network.bridge.ebtables.devel |
|---|---|
| Message-ID | <3F25FE8C477E9E4FB3D42C2FF937C08A82039A@orsmsx423.amr.corp.intel.com> |
This is a multi-part message in MIME format. ------_=_NextPart_001_01C8691E.71E7C7B2 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Two patches are attached. They add port based DNAT/SNAT feature for changing the dest or src MAC address in MAC header of IPv6 packets. (I couldn't get access to the ebtables cvs web interface, seems the interface is down, so the patches were generated based on the original ebtables-v2.0.8-2 and 2.6.18 netfilter.) Example dnat Usage:=20 1. Port based: ebtables -t nat -A PREROUTING --in-interface eth0 --protocol IPV6 --ip6-protocol "6" --ip6-destination-port 22 -j dnat --to-destination 00:13:20:F5:F1:28 --log-ip6 2. IP protocol-based: ebtables -t nat -A PREROUTING --in-interface eth0 --protocol IPV6 --ip6-protocol 58 -j dnat --to-destination 00:13:20:F5:F1:28 3. IPv6: ebtables -t nat -A PREROUTING --in-interface eth0 --protocol IPV6 -j dnat --to-destination 00:13:20:F5:F1:28 Similar usage can be applied for snat.=20 Thanks Kuo >-----Original Message----- >From: Bart De Schuymer [mailto:[email protected]] >Sent: Friday, January 25, 2008 3:23 PM >To: Tseng, Kuo-Lang >Cc: [email protected] >Subject: Re: [Ebtables-devel] IPv6 support in ebtables > >Op vr, 25-01-2008 te 14:27 -0800, schreef Tseng, Kuo-Lang: >> >From: ebtables-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org >> [mailto:ebtables-devel- >> >[email protected]] On Behalf Of Tseng, Kuo-Lang >> >Sent: Wednesday, January 23, 2008 4:11 PM >> >Hi, >> > >> >I would like to find out if there is any IPv6 support in ebtables for >> >replacing MAC address of the Ethernet header based on TCP or UDP port >> id >> >in IPv6 packets. I would appreciate it if there is anyone on this list >> >who knows of any prior work in ebtables to support IPv6. >> > >> >One such example usage I am looking for is: TCP Port based DNAT >> > >> >Current IPv4 Support: >> >-p IPv4 -i peth0 --ip-proto 6 --ip-dport 22 -j dnat --to-dst >> >0:13:20:f5:f1:1f --dnat-target ACCEPT >> > >> >Similar support for IPv6 packets I would like to use: >> >-p IPv6 -i peth0 --ip-proto 6 --ip-dport 22 -j dnat --to-dst >> >0:13:20:f5:f1:1f --dnat-target ACCEPT >> > >> >> I looked at version v2.0.8-2 of ebtables user space code and bridge >> netfilter kernel code from 2.6 and realized that v6 support is not >> there. >> >> Does anyone know if anyone is working (or planning) on adding this >> support? >> >> If not, I'd like to add this minimum support into ebtables for dnat on >> IPv6 packets and is it fine for me to send a patch for review? > >That's fine. I'm not sure what you mean, but dnat on the IPv6 addresses >of course doesn't belong in ebtables. > >cheers, >Bart > ------_=_NextPart_001_01C8691E.71E7C7B2 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" ZGlmZiAtcnVOcCBlYnRhYmxlcy12Mi4wLjgtMi5vcmlnL2V4dGVuc2lvbnMvZWJ0X2lwNi5jIGVi dGFibGVzLXYyLjAuOC0yLmlwdjYvZXh0ZW5zaW9ucy9lYnRfaXA2LmMKLS0tIGVidGFibGVzLXYy LjAuOC0yLm9yaWcvZXh0ZW5zaW9ucy9lYnRfaXA2LmMJMTk2OS0xMi0zMSAxNjowMDowMC4wMDAw MDAwMDAgLTA4MDAKKysrIGVidGFibGVzLXYyLjAuOC0yLmlwdjYvZXh0ZW5zaW9ucy9lYnRfaXA2 LmMJMjAwOC0wMi0wNiAxNTowMzoyMi4wMDAwMDAwMDAgLTA4MDAKQEAgLTAsMCArMSwyNjMgQEAK Ky8qIGVidF9pcDYKKyAqIAorICogQXV0aG9yczoKKyAqIEt1by1MYW5nIFRzZW5nIDxrdW8tbGFu Zy50c2VuZ0BpbnRlbC5jb20+CisgKiBNYW5vaGFyIENhc3RlbGlubyA8bWFub2hhci5jYXN0ZWxp bm9AaW50ZWwuY29tPgorICoKKyAqIFN1bW1hcnk6CisgKiBUaGlzIGlzIGp1c3QgYSBtb2RpZmlj YXRpb24gb2YgdGhlIElQdjQgY29kZSB3cml0dGVuIGJ5IAorICogQmFydCBEZSBTY2h1eW1lciA8 YmRzY2h1eW1AcGFuZG9yYS5iZT4KKyAqIHdpdGggdGhlIGNoYW5nZXMgcmVxdWlyZWQgdG8gc3Vw cG9ydCBJUHY2CisgKgorICovCisKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxp Yi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUg PG5ldGRiLmg+CisjaW5jbHVkZSAiLi4vaW5jbHVkZS9lYnRhYmxlc191LmgiCisjaW5jbHVkZSA8 bGludXgvbmV0ZmlsdGVyX2JyaWRnZS9lYnRfaXA2Lmg+CisKKyNkZWZpbmUgSVBfU09VUkNFICcx JworI2RlZmluZSBJUF9ERVNUICAgJzInCisjZGVmaW5lIElQX1RDTEFTUyAnMycKKyNkZWZpbmUg SVBfUFJPVE8gICc0JworI2RlZmluZSBJUF9TUE9SVCAgJzUnCisjZGVmaW5lIElQX0RQT1JUICAn NicKKworc3RhdGljIHN0cnVjdCBvcHRpb24gb3B0c1tdID0KK3sKKwl7ICJpcDYtcHJvdG9jb2wi ICAgICAgICAgLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgSVBfUFJPVE8gIH0sCisJeyAiaXA2LXBy b3RvIiAgICAgICAgICAgICwgcmVxdWlyZWRfYXJndW1lbnQsIDAsIElQX1BST1RPICB9LAorCXsg ImlwNi1zb3VyY2UtcG9ydCIgICAgICAsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCBJUF9TUE9SVCAg fSwKKwl7ICJpcDYtc3BvcnQiICAgICAgICAgICAgLCByZXF1aXJlZF9hcmd1bWVudCwgMCwgSVBf U1BPUlQgIH0sCisJeyAiaXA2LWRlc3RpbmF0aW9uLXBvcnQiICwgcmVxdWlyZWRfYXJndW1lbnQs IDAsIElQX0RQT1JUICB9LAorCXsgImlwNi1kcG9ydCIgICAgICAgICAgICAsIHJlcXVpcmVkX2Fy Z3VtZW50LCAwLCBJUF9EUE9SVCAgfSwKKwl7IDAgfQorfTsKKworLyogdHJhbnNmb3JtIGEgcHJv dG9jb2wgYW5kIHNlcnZpY2UgbmFtZSBpbnRvIGEgcG9ydCBudW1iZXIgKi8KK3N0YXRpYyB1aW50 MTZfdCBwYXJzZV9wb3J0KGNvbnN0IGNoYXIgKnByb3RvY29sLCBjb25zdCBjaGFyICpuYW1lKQor eworCXN0cnVjdCBzZXJ2ZW50ICpzZXJ2aWNlOworCWNoYXIgKmVuZDsKKwlpbnQgcG9ydDsKKwor CXBvcnQgPSBzdHJ0b2wobmFtZSwgJmVuZCwgMTApOworCWlmICgqZW5kICE9ICdcMCcpIHsKKwkJ aWYgKHByb3RvY29sICYmIAorCQkgICAgKHNlcnZpY2UgPSBnZXRzZXJ2YnluYW1lKG5hbWUsIHBy b3RvY29sKSkgIT0gTlVMTCkKKwkJCXJldHVybiBudG9ocyhzZXJ2aWNlLT5zX3BvcnQpOworCX0K KwllbHNlIGlmIChwb3J0ID49IDAgfHwgcG9ydCA8PSAweEZGRkYpIHsKKwkJcmV0dXJuIHBvcnQ7 CisJfQorCWVidF9wcmludF9lcnJvcigiUHJvYmxlbSB3aXRoIHNwZWNpZmllZCAlcyBwb3J0ICcl cyciLCAKKwkJCXByb3RvY29sP3Byb3RvY29sOiIiLCBuYW1lKTsKKwlyZXR1cm4gMDsKK30KKwor c3RhdGljIHZvaWQKK3BhcnNlX3BvcnRfcmFuZ2UoY29uc3QgY2hhciAqcHJvdG9jb2wsIGNvbnN0 IGNoYXIgKnBvcnRzdHJpbmcsIHVpbnQxNl90ICpwb3J0cykKK3sKKwljaGFyICpidWZmZXI7CisJ Y2hhciAqY3A7CisJCisJYnVmZmVyID0gc3RyZHVwKHBvcnRzdHJpbmcpOworCWlmICgoY3AgPSBz dHJjaHIoYnVmZmVyLCAnOicpKSA9PSBOVUxMKQorCQlwb3J0c1swXSA9IHBvcnRzWzFdID0gcGFy c2VfcG9ydChwcm90b2NvbCwgYnVmZmVyKTsKKwllbHNlIHsKKwkJKmNwID0gJ1wwJzsKKwkJY3Ar KzsKKwkJcG9ydHNbMF0gPSBidWZmZXJbMF0gPyBwYXJzZV9wb3J0KHByb3RvY29sLCBidWZmZXIp IDogMDsKKwkJaWYgKGVidF9lcnJvcm1zZ1swXSAhPSAnXDAnKQorCQkJcmV0dXJuOworCQlwb3J0 c1sxXSA9IGNwWzBdID8gcGFyc2VfcG9ydChwcm90b2NvbCwgY3ApIDogMHhGRkZGOworCQlpZiAo ZWJ0X2Vycm9ybXNnWzBdICE9ICdcMCcpCisJCQlyZXR1cm47CisJCQorCQlpZiAocG9ydHNbMF0g PiBwb3J0c1sxXSkKKwkJCWVidF9wcmludF9lcnJvcigiSW52YWxpZCBwb3J0cmFuZ2UgKG1pbiA+ IG1heCkiKTsKKwl9CisJZnJlZShidWZmZXIpOworfQorCitzdGF0aWMgdm9pZCBwcmludF9wb3J0 X3JhbmdlKHVpbnQxNl90ICpwb3J0cykKK3sKKwlpZiAocG9ydHNbMF0gPT0gcG9ydHNbMV0pCisJ CXByaW50ZigiJWQgIiwgcG9ydHNbMF0pOworCWVsc2UKKwkJcHJpbnRmKCIlZDolZCAiLCBwb3J0 c1swXSwgcG9ydHNbMV0pOworfQorCitzdGF0aWMgdm9pZCBwcmludF9oZWxwKCkKK3sKKwlwcmlu dGYoCisiaXA2IG9wdGlvbnM6XG4iCisiLS1pcDYtcHJvdG8gIFshXSBwcm90b2NvbCAgICAgIDog aXB2NiBwcm90b2NvbCBzcGVjaWZpY2F0aW9uXG4iCisiLS1pcDYtc3BvcnQgIFshXSBwb3J0Wzpw b3J0XSAgIDogdGNwL3VkcCBzb3VyY2UgcG9ydCBvciBwb3J0IHJhbmdlXG4iCisiLS1pcDYtZHBv cnQgIFshXSBwb3J0Wzpwb3J0XSAgIDogdGNwL3VkcCBkZXN0aW5hdGlvbiBwb3J0IG9yIHBvcnQg cmFuZ2VcbiIpOworfQorCitzdGF0aWMgdm9pZCBpbml0KHN0cnVjdCBlYnRfZW50cnlfbWF0Y2gg Km1hdGNoKQoreworCXN0cnVjdCBlYnRfaXA2X2luZm8gKmlwaW5mbyA9IChzdHJ1Y3QgZWJ0X2lw Nl9pbmZvICopbWF0Y2gtPmRhdGE7CisKKwlpcGluZm8tPmludmZsYWdzID0gMDsKKwlpcGluZm8t PmJpdG1hc2sgPSAwOworfQorCisjZGVmaW5lIE9QVF9TT1VSQ0UgMHgwMQorI2RlZmluZSBPUFRf REVTVCAgIDB4MDIKKyNkZWZpbmUgT1BUX1RDTEFTUyAweDA0CisjZGVmaW5lIE9QVF9QUk9UTyAg MHgwOAorI2RlZmluZSBPUFRfU1BPUlQgIDB4MTAKKyNkZWZpbmUgT1BUX0RQT1JUICAweDIwCitz dGF0aWMgaW50IHBhcnNlKGludCBjLCBjaGFyICoqYXJndiwgaW50IGFyZ2MsIGNvbnN0IHN0cnVj dCBlYnRfdV9lbnRyeSAqZW50cnksCisgICB1bnNpZ25lZCBpbnQgKmZsYWdzLCBzdHJ1Y3QgZWJ0 X2VudHJ5X21hdGNoICoqbWF0Y2gpCit7CisJc3RydWN0IGVidF9pcDZfaW5mbyAqaXBpbmZvID0g KHN0cnVjdCBlYnRfaXA2X2luZm8gKikoKm1hdGNoKS0+ZGF0YTsKKwljaGFyICplbmQ7CisJbG9u ZyBpbnQgaTsKKworCXN3aXRjaCAoYykgeworCWNhc2UgSVBfU1BPUlQ6CisJY2FzZSBJUF9EUE9S VDoKKwkJaWYgKGMgPT0gSVBfU1BPUlQpIHsKKwkJCWVidF9jaGVja19vcHRpb24yKGZsYWdzLCBP UFRfU1BPUlQpOworCQkJaXBpbmZvLT5iaXRtYXNrIHw9IEVCVF9JUDZfU1BPUlQ7CisJCQlpZiAo ZWJ0X2NoZWNrX2ludmVyc2UyKG9wdGFyZykpCisJCQkJaXBpbmZvLT5pbnZmbGFncyB8PSBFQlRf SVA2X1NQT1JUOworCQl9IGVsc2UgeworCQkJZWJ0X2NoZWNrX29wdGlvbjIoZmxhZ3MsIE9QVF9E UE9SVCk7CisJCQlpcGluZm8tPmJpdG1hc2sgfD0gRUJUX0lQNl9EUE9SVDsKKwkJCWlmIChlYnRf Y2hlY2tfaW52ZXJzZTIob3B0YXJnKSkKKwkJCQlpcGluZm8tPmludmZsYWdzIHw9IEVCVF9JUDZf RFBPUlQ7CisJCX0KKwkJaWYgKGMgPT0gSVBfU1BPUlQpCisJCQlwYXJzZV9wb3J0X3JhbmdlKE5V TEwsIG9wdGFyZywgaXBpbmZvLT5zcG9ydCk7CisJCWVsc2UKKwkJCXBhcnNlX3BvcnRfcmFuZ2Uo TlVMTCwgb3B0YXJnLCBpcGluZm8tPmRwb3J0KTsKKwkJYnJlYWs7CisKKwljYXNlIElQX1BST1RP OgorCQllYnRfY2hlY2tfb3B0aW9uMihmbGFncywgT1BUX1BST1RPKTsKKwkJaWYgKGVidF9jaGVj a19pbnZlcnNlMihvcHRhcmcpKQorCQkJaXBpbmZvLT5pbnZmbGFncyB8PSBFQlRfSVA2X1BST1RP OworCQlpID0gc3RydG91bChvcHRhcmcsICZlbmQsIDEwKTsKKwkJaWYgKCplbmQgIT0gJ1wwJykg eworCQkJc3RydWN0IHByb3RvZW50ICpwZTsKKworCQkJcGUgPSBnZXRwcm90b2J5bmFtZShvcHRh cmcpOworCQkJaWYgKHBlID09IE5VTEwpCisJCQkJZWJ0X3ByaW50X2Vycm9yKCJVbmtub3duIHNw ZWNpZmllZCBJUCBwcm90b2NvbCAtICVzIiwgYXJndltvcHRpbmQgLSAxXSk7CisJCQlpcGluZm8t PnByb3RvY29sID0gcGUtPnBfcHJvdG87CisJCX0gZWxzZSB7CisJCQlpcGluZm8tPnByb3RvY29s ID0gKHVuc2lnbmVkIGNoYXIpIGk7CisJCX0KKwkJaXBpbmZvLT5iaXRtYXNrIHw9IEVCVF9JUDZf UFJPVE87CisJCWJyZWFrOworCWRlZmF1bHQ6CisJCXJldHVybiAwOworCX0KKwlyZXR1cm4gMTsK K30KKworc3RhdGljIHZvaWQgZmluYWxfY2hlY2soY29uc3Qgc3RydWN0IGVidF91X2VudHJ5ICpl bnRyeSwKKyAgIGNvbnN0IHN0cnVjdCBlYnRfZW50cnlfbWF0Y2ggKm1hdGNoLCBjb25zdCBjaGFy ICpuYW1lLAorICAgdW5zaWduZWQgaW50IGhvb2ttYXNrLCB1bnNpZ25lZCBpbnQgdGltZSkKK3sK KwlzdHJ1Y3QgZWJ0X2lwNl9pbmZvICppcGluZm8gPSAoc3RydWN0IGVidF9pcDZfaW5mbyAqKW1h dGNoLT5kYXRhOworCisJaWYgKGVudHJ5LT5ldGhwcm90byAhPSBFVEhfUF9JUFY2IHx8IGVudHJ5 LT5pbnZmbGFncyAmIEVCVF9JUFJPVE8pIHsKKwkJZWJ0X3ByaW50X2Vycm9yKCJGb3IgSVB2NiBm aWx0ZXJpbmcgdGhlIHByb3RvY29sIG11c3QgYmUgIgorCQkgICAgICAgICAgICAic3BlY2lmaWVk IGFzIElQdjYiKTsKKwl9IGVsc2UgaWYgKGlwaW5mby0+Yml0bWFzayAmIChFQlRfSVA2X1NQT1JU fEVCVF9JUDZfRFBPUlQpICYmCisJCSghKGlwaW5mby0+Yml0bWFzayAmIEVCVF9JUDZfUFJPVE8p IHx8CisJCWlwaW5mby0+aW52ZmxhZ3MgJiBFQlRfSVA2X1BST1RPIHx8CisJCShpcGluZm8tPnBy b3RvY29sIT1JUFBST1RPX1RDUCAmJgorCQkgaXBpbmZvLT5wcm90b2NvbCE9SVBQUk9UT19VRFAg JiYKKwkJIGlwaW5mby0+cHJvdG9jb2whPUlQUFJPVE9fU0NUUCAmJgorCQkgaXBpbmZvLT5wcm90 b2NvbCE9SVBQUk9UT19EQ0NQKSkpCisJCWVidF9wcmludF9lcnJvcigiRm9yIHBvcnQgZmlsdGVy aW5nIHRoZSBJUCBwcm90b2NvbCBtdXN0IGJlICIKKwkJCQkiZWl0aGVyIDYgKHRjcCksIDE3ICh1 ZHApLCAzMyAoZGNjcCkgb3IgIgorCQkJCSIxMzIgKHNjdHApIik7Cit9CisKK3N0YXRpYyB2b2lk IHByaW50KGNvbnN0IHN0cnVjdCBlYnRfdV9lbnRyeSAqZW50cnksCisgICBjb25zdCBzdHJ1Y3Qg ZWJ0X2VudHJ5X21hdGNoICptYXRjaCkKK3sKKwlzdHJ1Y3QgZWJ0X2lwNl9pbmZvICppcGluZm8g PSAoc3RydWN0IGVidF9pcDZfaW5mbyAqKW1hdGNoLT5kYXRhOworCisJaWYgKGlwaW5mby0+Yml0 bWFzayAmIEVCVF9JUDZfUFJPVE8pIHsKKwkJc3RydWN0IHByb3RvZW50ICpwZTsKKworCQlwcmlu dGYoIi0taXA2LXByb3RvICIpOworCQlpZiAoaXBpbmZvLT5pbnZmbGFncyAmIEVCVF9JUDZfUFJP VE8pCisJCQlwcmludGYoIiEgIik7CisJCXBlID0gZ2V0cHJvdG9ieW51bWJlcihpcGluZm8tPnBy b3RvY29sKTsKKwkJaWYgKHBlID09IE5VTEwpIHsKKwkJCXByaW50ZigiJWQgIiwgaXBpbmZvLT5w cm90b2NvbCk7CisJCX0gZWxzZSB7CisJCQlwcmludGYoIiVzICIsIHBlLT5wX25hbWUpOworCQl9 CisJfQorCWlmIChpcGluZm8tPmJpdG1hc2sgJiBFQlRfSVA2X1NQT1JUKSB7CisJCXByaW50Zigi LS1pcDYtc3BvcnQgIik7CisJCWlmIChpcGluZm8tPmludmZsYWdzICYgRUJUX0lQNl9TUE9SVCkK KwkJCXByaW50ZigiISAiKTsKKwkJcHJpbnRfcG9ydF9yYW5nZShpcGluZm8tPnNwb3J0KTsKKwl9 CisJaWYgKGlwaW5mby0+Yml0bWFzayAmIEVCVF9JUDZfRFBPUlQpIHsKKwkJcHJpbnRmKCItLWlw Ni1kcG9ydCAiKTsKKwkJaWYgKGlwaW5mby0+aW52ZmxhZ3MgJiBFQlRfSVA2X0RQT1JUKQorCQkJ cHJpbnRmKCIhICIpOworCQlwcmludF9wb3J0X3JhbmdlKGlwaW5mby0+ZHBvcnQpOworCX0KK30K Kworc3RhdGljIGludCBjb21wYXJlKGNvbnN0IHN0cnVjdCBlYnRfZW50cnlfbWF0Y2ggKm0xLAor ICAgY29uc3Qgc3RydWN0IGVidF9lbnRyeV9tYXRjaCAqbTIpCit7CisJc3RydWN0IGVidF9pcDZf aW5mbyAqaXBpbmZvMSA9IChzdHJ1Y3QgZWJ0X2lwNl9pbmZvICopbTEtPmRhdGE7CisJc3RydWN0 IGVidF9pcDZfaW5mbyAqaXBpbmZvMiA9IChzdHJ1Y3QgZWJ0X2lwNl9pbmZvICopbTItPmRhdGE7 CisKKwlpZiAoaXBpbmZvMS0+Yml0bWFzayAhPSBpcGluZm8yLT5iaXRtYXNrKQorCQlyZXR1cm4g MDsKKwlpZiAoaXBpbmZvMS0+aW52ZmxhZ3MgIT0gaXBpbmZvMi0+aW52ZmxhZ3MpCisJCXJldHVy biAwOworCWlmIChpcGluZm8xLT5iaXRtYXNrICYgRUJUX0lQNl9QUk9UTykgeworCQlpZiAoaXBp bmZvMS0+cHJvdG9jb2wgIT0gaXBpbmZvMi0+cHJvdG9jb2wpCisJCQlyZXR1cm4gMDsKKwl9CisJ aWYgKGlwaW5mbzEtPmJpdG1hc2sgJiBFQlRfSVA2X1NQT1JUKSB7CisJCWlmIChpcGluZm8xLT5z cG9ydFswXSAhPSBpcGluZm8yLT5zcG9ydFswXSB8fAorCQkgICBpcGluZm8xLT5zcG9ydFsxXSAh PSBpcGluZm8yLT5zcG9ydFsxXSkKKwkJCXJldHVybiAwOworCX0KKwlpZiAoaXBpbmZvMS0+Yml0 bWFzayAmIEVCVF9JUDZfRFBPUlQpIHsKKwkJaWYgKGlwaW5mbzEtPmRwb3J0WzBdICE9IGlwaW5m bzItPmRwb3J0WzBdIHx8CisJCSAgIGlwaW5mbzEtPmRwb3J0WzFdICE9IGlwaW5mbzItPmRwb3J0 WzFdKQorCQkJcmV0dXJuIDA7CisJfQorCXJldHVybiAxOworfQorCitzdGF0aWMgc3RydWN0IGVi dF91X21hdGNoIGlwNl9tYXRjaCA9Cit7CisJLm5hbWUJCT0gRUJUX0lQNl9NQVRDSCwKKwkuc2l6 ZQkJPSBzaXplb2Yoc3RydWN0IGVidF9pcDZfaW5mbyksCisJLmhlbHAJCT0gcHJpbnRfaGVscCwK KwkuaW5pdAkJPSBpbml0LAorCS5wYXJzZQkJPSBwYXJzZSwKKwkuZmluYWxfY2hlY2sJPSBmaW5h bF9jaGVjaywKKwkucHJpbnQJCT0gcHJpbnQsCisJLmNvbXBhcmUJPSBjb21wYXJlLAorCS5leHRy YV9vcHMJPSBvcHRzLAorfTsKKwordm9pZCBfaW5pdCh2b2lkKQoreworCWVidF9yZWdpc3Rlcl9t YXRjaCgmaXA2X21hdGNoKTsKK30KZGlmZiAtcnVOcCBlYnRhYmxlcy12Mi4wLjgtMi5vcmlnL2V4 dGVuc2lvbnMvZWJ0X2xvZy5jIGVidGFibGVzLXYyLjAuOC0yLmlwdjYvZXh0ZW5zaW9ucy9lYnRf bG9nLmMKLS0tIGVidGFibGVzLXYyLjAuOC0yLm9yaWcvZXh0ZW5zaW9ucy9lYnRfbG9nLmMJMjAw Ny0wOS0yMSAxMDoyNzoyMC4wMDAwMDAwMDAgLTA3MDAKKysrIGVidGFibGVzLXYyLjAuOC0yLmlw djYvZXh0ZW5zaW9ucy9lYnRfbG9nLmMJMjAwOC0wMS0zMCAxNzoyMjo1Ni4wMDAwMDAwMDAgLTA4 MDAKQEAgLTYwLDYgKzYwLDcgQEAgc3RhdGljIGludCBuYW1lX3RvX2xvZ2xldmVsKGNoYXIqIGFy ZykKICNkZWZpbmUgTE9HX0FSUCAgICAnMycKICNkZWZpbmUgTE9HX0lQICAgICAnNCcKICNkZWZp bmUgTE9HX0xPRyAgICAnNScKKyNkZWZpbmUgTE9HX0lQNiAgICAnNicKIHN0YXRpYyBzdHJ1Y3Qg b3B0aW9uIG9wdHNbXSA9CiB7CiAJeyAibG9nLXByZWZpeCIsIHJlcXVpcmVkX2FyZ3VtZW50LCAw LCBMT0dfUFJFRklYIH0sCkBAIC02Nyw2ICs2OCw3IEBAIHN0YXRpYyBzdHJ1Y3Qgb3B0aW9uIG9w dHNbXSA9CiAJeyAibG9nLWFycCIgICAsIG5vX2FyZ3VtZW50ICAgICAgLCAwLCBMT0dfQVJQICAg IH0sCiAJeyAibG9nLWlwIiAgICAsIG5vX2FyZ3VtZW50ICAgICAgLCAwLCBMT0dfSVAgICAgIH0s CiAJeyAibG9nIiAgICAgICAsIG5vX2FyZ3VtZW50ICAgICAgLCAwLCBMT0dfTE9HICAgIH0sCisJ eyAibG9nLWlwNiIgICAsIG5vX2FyZ3VtZW50ICAgICAgLCAwLCBMT0dfSVA2ICAgIH0sCiAJeyAw IH0KIH07CiAKQEAgLTgxLDYgKzgzLDcgQEAgc3RhdGljIHZvaWQgcHJpbnRfaGVscCgpCiAiLS1s b2ctcHJlZml4IHByZWZpeCA6IG1heC4gJWQgY2hhcnMuXG4iCiAiLS1sb2ctaXAgICAgICAgICAg ICA6IHB1dCBpcCBpbmZvLiBpbiB0aGUgbG9nIGZvciBpcCBwYWNrZXRzXG4iCiAiLS1sb2ctYXJw ICAgICAgICAgICA6IHB1dCAocilhcnAgaW5mby4gaW4gdGhlIGxvZyBmb3IgKHIpYXJwIHBhY2tl dHNcbiIKKyItLWxvZy1pcDYgICAgICAgICAgIDogcHV0IGlwNiBpbmZvLiBpbiB0aGUgbG9nIGZv ciBpcDYgcGFja2V0c1xuIgogCSwgRUJUX0xPR19QUkVGSVhfU0laRSAtIDEpOwogCXByaW50Zigi bGV2ZWxzOlxuIik7CiAJZm9yIChpID0gMDsgaSA8IDg7IGkrKykKQEAgLTEwMiw2ICsxMDUsNyBA QCBzdGF0aWMgdm9pZCBpbml0KHN0cnVjdCBlYnRfZW50cnlfd2F0Y2hlCiAjZGVmaW5lIE9QVF9B UlAgICAgMHgwNAogI2RlZmluZSBPUFRfSVAgICAgIDB4MDgKICNkZWZpbmUgT1BUX0xPRyAgICAw eDEwCisjZGVmaW5lIE9QVF9JUDYgICAgMHgyMAogc3RhdGljIGludCBwYXJzZShpbnQgYywgY2hh ciAqKmFyZ3YsIGludCBhcmdjLCBjb25zdCBzdHJ1Y3QgZWJ0X3VfZW50cnkgKmVudHJ5LAogICAg dW5zaWduZWQgaW50ICpmbGFncywgc3RydWN0IGVidF9lbnRyeV93YXRjaGVyICoqd2F0Y2hlcikK IHsKQEAgLTE1MSw2ICsxNTUsMTMgQEAgc3RhdGljIGludCBwYXJzZShpbnQgYywgY2hhciAqKmFy Z3YsIGludAogCQlpZiAoZWJ0X2NoZWNrX2ludmVyc2Uob3B0YXJnKSkKIAkJCWVidF9wcmludF9l cnJvcjIoIlVuZXhwZWN0ZWQgYCEnIGFmdGVyIC0tbG9nIik7CiAJCWJyZWFrOworCisJY2FzZSBM T0dfSVA2OgorCQllYnRfY2hlY2tfb3B0aW9uMihmbGFncywgT1BUX0lQNik7CisJCWlmIChlYnRf Y2hlY2tfaW52ZXJzZShvcHRhcmcpKQorCQkJZWJ0X3ByaW50X2Vycm9yMigiVW5leHBlY3RlZCBg IScgYWZ0ZXIgLS1sb2ctaXA2Iik7CisJCWxvZ2luZm8tPmJpdG1hc2sgfD0gRUJUX0xPR19JUDY7 CisJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCXJldHVybiAwOwogCX0KQEAgLTE3NSw2ICsxODYsOCBA QCBzdGF0aWMgdm9pZCBwcmludChjb25zdCBzdHJ1Y3QgZWJ0X3VfZW50CiAJCXByaW50ZigiIC0t bG9nLWlwIik7CiAJaWYgKGxvZ2luZm8tPmJpdG1hc2sgJiBFQlRfTE9HX0FSUCkKIAkJcHJpbnRm KCIgLS1sb2ctYXJwIik7CisJaWYgKGxvZ2luZm8tPmJpdG1hc2sgJiBFQlRfTE9HX0lQNikKKwkJ cHJpbnRmKCIgLS1sb2ctaXA2Iik7CiAJcHJpbnRmKCIgIik7CiB9CiAKZGlmZiAtcnVOcCBlYnRh Ymxlcy12Mi4wLjgtMi5vcmlnL2V4dGVuc2lvbnMvTWFrZWZpbGUgZWJ0YWJsZXMtdjIuMC44LTIu aXB2Ni9leHRlbnNpb25zL01ha2VmaWxlCi0tLSBlYnRhYmxlcy12Mi4wLjgtMi5vcmlnL2V4dGVu c2lvbnMvTWFrZWZpbGUJMjAwNy0wOS0yMSAxMDoyNzoyMC4wMDAwMDAwMDAgLTA3MDAKKysrIGVi dGFibGVzLXYyLjAuOC0yLmlwdjYvZXh0ZW5zaW9ucy9NYWtlZmlsZQkyMDA4LTAxLTExIDE5OjQx OjQ3LjAwMDAwMDAwMCAtMDgwMApAQCAtMSw2ICsxLDYgQEAKICMhIC91c3IvYmluL21ha2UKIAot RVhUX0ZVTkMrPTgwMl8zIG5hdCBhcnAgYXJwcmVwbHkgaXAgc3RhbmRhcmQgbG9nIHJlZGlyZWN0 IHZsYW4gbWFya19tIG1hcmsgXAorRVhUX0ZVTkMrPTgwMl8zIG5hdCBhcnAgYXJwcmVwbHkgaXAg aXA2IHN0YW5kYXJkIGxvZyByZWRpcmVjdCB2bGFuIG1hcmtfbSBtYXJrIFwKICAgICAgICAgICBw a3R0eXBlIHN0cCBhbW9uZyBsaW1pdCB1bG9nCiBFWFRfVEFCTEVTKz1maWx0ZXIgbmF0IGJyb3V0 ZQogRVhUX09CSlMrPSQoZm9yZWFjaCBULCQoRVhUX0ZVTkMpLCBleHRlbnNpb25zL2VidF8kKFQp Lm8pCmRpZmYgLXJ1TnAgZWJ0YWJsZXMtdjIuMC44LTIub3JpZy9pbmNsdWRlL2xpbnV4L25ldGZp bHRlcl9icmlkZ2UvZWJ0X2lwNi5oIGVidGFibGVzLXYyLjAuOC0yLmlwdjYvaW5jbHVkZS9saW51 eC9uZXRmaWx0ZXJfYnJpZGdlL2VidF9pcDYuaAotLS0gZWJ0YWJsZXMtdjIuMC44LTIub3JpZy9p bmNsdWRlL2xpbnV4L25ldGZpbHRlcl9icmlkZ2UvZWJ0X2lwNi5oCTE5NjktMTItMzEgMTY6MDA6 MDAuMDAwMDAwMDAwIC0wODAwCisrKyBlYnRhYmxlcy12Mi4wLjgtMi5pcHY2L2luY2x1ZGUvbGlu dXgvbmV0ZmlsdGVyX2JyaWRnZS9lYnRfaXA2LmgJMjAwOC0wMi0wMSAxNzo1Mzo1NC4wMDAwMDAw MDAgLTA4MDAKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqICBlYnRfaXA2CisgKgorICoJQXV0aG9y czoKKyAqIEt1by1MYW5nIFRzZW5nIDxrdW8tbGFuZy50c2VuZ0BpbnRlbC5jb20+CisgKiBNYW5v aGFyIENhc3RlbGlubyA8bWFub2hhci5yLmNhc3RlbGlub0BpbnRlbC5jb20+CisgKgorICogIEph biAxMSwgMjAwOAorICoKKyAqLworCisjaWZuZGVmIF9fTElOVVhfQlJJREdFX0VCVF9JUDZfSAor I2RlZmluZSBfX0xJTlVYX0JSSURHRV9FQlRfSVA2X0gKKworI2RlZmluZSBFQlRfSVA2X1NPVVJD RSAweDAxIC8qIE5vdCBzdXBwb3J0ZWQgY3VycmVudGx5ICovCisjZGVmaW5lIEVCVF9JUDZfREVT VCAweDAyICAgLyogTm90IHN1cHBvcnRlZCBjdXJyZW50bHkgKi8KKyNkZWZpbmUgRUJUX0lQNl9U Q0xBU1MgMHgwNCAvKiBOb3Qgc3VwcG9ydGVkIGN1cnJlbnRseSAqLworI2RlZmluZSBFQlRfSVA2 X1BST1RPIDB4MDgKKyNkZWZpbmUgRUJUX0lQNl9TUE9SVCAweDEwCisjZGVmaW5lIEVCVF9JUDZf RFBPUlQgMHgyMAorI2RlZmluZSBFQlRfSVA2X01BU0sgKEVCVF9JUDZfU09VUkNFIHwgRUJUX0lQ Nl9ERVNUIHwgRUJUX0lQNl9UQ0xBU1MgfFwKKyBFQlRfSVA2X1BST1RPIHwgRUJUX0lQNl9TUE9S VCB8IEVCVF9JUDZfRFBPUlQgKQorI2RlZmluZSBFQlRfSVA2X01BVENIICJpcDYiCisKKy8qIHRo ZSBzYW1lIHZhbHVlcyBhcmUgdXNlZCBmb3IgdGhlIGludmZsYWdzICovCitzdHJ1Y3QgZWJ0X2lw Nl9pbmZvCit7CisJdWludDhfdCAgcHJvdG9jb2w7CisJdWludDhfdCAgYml0bWFzazsKKwl1aW50 OF90ICBpbnZmbGFnczsKKwl1aW50MTZfdCBzcG9ydFsyXTsKKwl1aW50MTZfdCBkcG9ydFsyXTsK K307CisKKyNlbmRpZgpkaWZmIC1ydU5wIGVidGFibGVzLXYyLjAuOC0yLm9yaWcvaW5jbHVkZS9s aW51eC9uZXRmaWx0ZXJfYnJpZGdlL2VidF9sb2cuaCBlYnRhYmxlcy12Mi4wLjgtMi5pcHY2L2lu Y2x1ZGUvbGludXgvbmV0ZmlsdGVyX2JyaWRnZS9lYnRfbG9nLmgKLS0tIGVidGFibGVzLXYyLjAu OC0yLm9yaWcvaW5jbHVkZS9saW51eC9uZXRmaWx0ZXJfYnJpZGdlL2VidF9sb2cuaAkyMDA3LTA5 LTIxIDEwOjI3OjIwLjAwMDAwMDAwMCAtMDcwMAorKysgZWJ0YWJsZXMtdjIuMC44LTIuaXB2Ni9p bmNsdWRlL2xpbnV4L25ldGZpbHRlcl9icmlkZ2UvZWJ0X2xvZy5oCTIwMDgtMDEtMjEgMTg6MzQ6 MDkuMDAwMDAwMDAwIC0wODAwCkBAIC00LDcgKzQsOCBAQAogI2RlZmluZSBFQlRfTE9HX0lQIDB4 MDEgLyogaWYgdGhlIGZyYW1lIGlzIG1hZGUgYnkgaXAsIGxvZyB0aGUgaXAgaW5mb3JtYXRpb24g Ki8KICNkZWZpbmUgRUJUX0xPR19BUlAgMHgwMgogI2RlZmluZSBFQlRfTE9HX05GTE9HIDB4MDQK LSNkZWZpbmUgRUJUX0xPR19NQVNLIChFQlRfTE9HX0lQIHwgRUJUX0xPR19BUlApCisjZGVmaW5l IEVCVF9MT0dfSVA2IDB4MDgKKyNkZWZpbmUgRUJUX0xPR19NQVNLIChFQlRfTE9HX0lQIHwgRUJU X0xPR19BUlAgfCBFQlRfTE9HX0lQNikKICNkZWZpbmUgRUJUX0xPR19QUkVGSVhfU0laRSAzMAog I2RlZmluZSBFQlRfTE9HX1dBVENIRVIgImxvZyIKIAo= ------_=_NextPart_001_01C8691E.71E7C7B2 Content-Type: application/octet-stream; name="netfilter-ipv6.patch" Content-Transfer-Encoding: base64 Content-Description: netfilter-ipv6.patch Content-Disposition: attachment; filename="netfilter-ipv6.patch" ZGlmZiAtcnVOcCBuZXRmaWx0ZXIub3JpZy9lYnRfaXA2LmMgbmV0ZmlsdGVyLmlwdjYvZWJ0X2lw Ni5jCi0tLSBuZXRmaWx0ZXIub3JpZy9lYnRfaXA2LmMJMTk2OS0xMi0zMSAxNjowMDowMC4wMDAw MDAwMDAgLTA4MDAKKysrIG5ldGZpbHRlci5pcHY2L2VidF9pcDYuYwkyMDA4LTAyLTA2IDE1OjU5 OjIxLjAwMDAwMDAwMCAtMDgwMApAQCAtMCwwICsxLDEyMiBAQAorLyoKKyAqICBlYnRfaXA2Cisg KgorICoJQXV0aG9yczoKKyAqCU1hbm9oYXIgQ2FzdGVsaW5vIDxtYW5vaGFyLnIuY2FzdGVsaW5v QGludGVsLmNvbT4KKyAqCUt1by1MYW5nIFRzZW5nIDxrdW8tbGFuZy50c2VuZ0BpbnRlbC5jb20+ CisgKgorICogU3VtbWFyeToKKyAqIFRoaXMgaXMganVzdCBhIG1vZGlmaWNhdGlvbiBvZiB0aGUg SVB2NCBjb2RlIHdyaXR0ZW4gYnkgCisgKiBCYXJ0IERlIFNjaHV5bWVyIDxiZHNjaHV5bUBwYW5k b3JhLmJlPgorICogd2l0aCB0aGUgY2hhbmdlcyByZXF1aXJlZCB0byBzdXBwb3J0IElQdjYKKyAq CisgKiAgSmFuLCAyMDA4CisgKi8KKworI2luY2x1ZGUgPGxpbnV4L25ldGZpbHRlcl9icmlkZ2Uv ZWJ0YWJsZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9uZXRmaWx0ZXJfYnJpZGdlL2VidF9pcDYuaD4K KyNpbmNsdWRlIDxsaW51eC9pcHY2Lmg+CisjaW5jbHVkZSA8bmV0L2lwdjYuaD4KKyNpbmNsdWRl IDxsaW51eC9pbi5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorCitzdHJ1Y3QgdGNwdWRw aGRyIHsKKwl1aW50MTZfdCBzcmM7CisJdWludDE2X3QgZHN0OworfTsKKworc3RhdGljIGludCBl YnRfZmlsdGVyX2lwNihjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgbmV0 X2RldmljZSAqaW4sCisgICBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqb3V0LCBjb25zdCB2b2lk ICpkYXRhLAorICAgdW5zaWduZWQgaW50IGRhdGFsZW4pCit7CisJc3RydWN0IGVidF9pcDZfaW5m byAqaW5mbyA9IChzdHJ1Y3QgZWJ0X2lwNl9pbmZvICopZGF0YTsKKwlzdHJ1Y3QgaXB2NmhkciBf aXA2aCwgKmloNjsKKworCWloNiA9IHNrYl9oZWFkZXJfcG9pbnRlcihza2IsIDAsIHNpemVvZihf aXA2aCksICZfaXA2aCk7CisJaWYgKGloNiA9PSBOVUxMKQorCQlyZXR1cm4gRUJUX05PTUFUQ0g7 CisJaWYgKGluZm8tPmJpdG1hc2sgJiBFQlRfSVA2X1BST1RPKSB7CisJCXN0cnVjdCB0Y3B1ZHBo ZHIgX3BoZHIsICpwcHRyOworCQl1aW50OF90ICpuZXh0aGRycCA9ICZpaDYtPm5leHRoZHI7CisJ CWludCBvZmZzZXRfcGg7CisKKwkJb2Zmc2V0X3BoID0gaXB2Nl9za2lwX2V4dGhkcihza2IsIHNp emVvZihfaXA2aCksIG5leHRoZHJwKTsKKwkJaWYgKG9mZnNldF9waCA9PSAtMSkKKwkJCXJldHVy biBFQlRfTk9NQVRDSDsKKwkJaWYgKEZXSU5WKGluZm8tPnByb3RvY29sICE9ICpuZXh0aGRycCwg RUJUX0lQNl9QUk9UTykpCisJCQlyZXR1cm4gRUJUX05PTUFUQ0g7CisKKwkJaWYgKCEoaW5mby0+ Yml0bWFzayAmIEVCVF9JUDZfRFBPUlQpICYmCisJCQkhKGluZm8tPmJpdG1hc2sgJiBFQlRfSVA2 X1NQT1JUKSkKKwkJCXJldHVybiBFQlRfTUFUQ0g7CisJCXBwdHIgPSBza2JfaGVhZGVyX3BvaW50 ZXIoc2tiLCBvZmZzZXRfcGgsIHNpemVvZihfcGhkciksICZfcGhkcik7CisJCWlmIChwcHRyID09 IE5VTEwpCisJCQlyZXR1cm4gRUJUX05PTUFUQ0g7CisJCWlmIChpbmZvLT5iaXRtYXNrICYgRUJU X0lQNl9EUE9SVCkgeworCQkJdTMyIGRzdCA9IG50b2hzKHBwdHItPmRzdCk7CisJCQlpZiAoRldJ TlYoZHN0IDwgaW5mby0+ZHBvcnRbMF0gfHwKKwkJCSAgICAgICAgICBkc3QgPiBpbmZvLT5kcG9y dFsxXSwKKwkJCSAgICAgICAgICBFQlRfSVA2X0RQT1JUKSkKKwkJCQlyZXR1cm4gRUJUX05PTUFU Q0g7CisJCX0KKwkJaWYgKGluZm8tPmJpdG1hc2sgJiBFQlRfSVA2X1NQT1JUKSB7CisJCQl1MzIg c3JjID0gbnRvaHMocHB0ci0+c3JjKTsKKwkJCWlmIChGV0lOVihzcmMgPCBpbmZvLT5zcG9ydFsw XSB8fAorCQkJICAgICAgICAgIHNyYyA+IGluZm8tPnNwb3J0WzFdLAorCQkJICAgICAgICAgIEVC VF9JUDZfU1BPUlQpKQorCQkJcmV0dXJuIEVCVF9OT01BVENIOworCQl9CisJCXJldHVybiBFQlRf TUFUQ0g7CisJfQorCXJldHVybiBFQlRfTUFUQ0g7Cit9CisKK3N0YXRpYyBpbnQgZWJ0X2lwNl9j aGVjayhjb25zdCBjaGFyICp0YWJsZW5hbWUsIHVuc2lnbmVkIGludCBob29rbWFzaywKKyAgIGNv bnN0IHN0cnVjdCBlYnRfZW50cnkgKmUsIHZvaWQgKmRhdGEsIHVuc2lnbmVkIGludCBkYXRhbGVu KQoreworCXN0cnVjdCBlYnRfaXA2X2luZm8gKmluZm8gPSAoc3RydWN0IGVidF9pcDZfaW5mbyAq KWRhdGE7CisKKwlpZiAoZGF0YWxlbiAhPSBFQlRfQUxJR04oc2l6ZW9mKHN0cnVjdCBlYnRfaXA2 X2luZm8pKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisJaWYgKGUtPmV0aHByb3RvICE9IGh0b25zKEVU SF9QX0lQVjYpIHx8CisJICAgZS0+aW52ZmxhZ3MgJiBFQlRfSVBST1RPKQorCQlyZXR1cm4gLUVJ TlZBTDsKKwlpZiAoaW5mby0+Yml0bWFzayAmIH5FQlRfSVA2X01BU0sgfHwgaW5mby0+aW52Zmxh Z3MgJiB+RUJUX0lQNl9NQVNLKQorCQlyZXR1cm4gLUVJTlZBTDsKKwlpZiAoaW5mby0+Yml0bWFz ayAmIChFQlRfSVA2X0RQT1JUIHwgRUJUX0lQNl9TUE9SVCkpIHsKKwkJaWYgKGluZm8tPmludmZs YWdzICYgRUJUX0lQNl9QUk9UTykKKwkJCXJldHVybiAtRUlOVkFMOworCQlpZiAoaW5mby0+cHJv dG9jb2wgIT0gSVBQUk9UT19UQ1AgJiYKKwkJICAgIGluZm8tPnByb3RvY29sICE9IElQUFJPVE9f VURQICYmCisJCSAgICBpbmZvLT5wcm90b2NvbCAhPSBJUFBST1RPX1NDVFAgJiYKKwkJICAgIGlu Zm8tPnByb3RvY29sICE9IElQUFJPVE9fRENDUCkKKwkJCSByZXR1cm4gLUVJTlZBTDsKKwl9CisJ aWYgKGluZm8tPmJpdG1hc2sgJiBFQlRfSVA2X0RQT1JUICYmIGluZm8tPmRwb3J0WzBdID4gaW5m by0+ZHBvcnRbMV0pCisJCXJldHVybiAtRUlOVkFMOworCWlmIChpbmZvLT5iaXRtYXNrICYgRUJU X0lQNl9TUE9SVCAmJiBpbmZvLT5zcG9ydFswXSA+IGluZm8tPnNwb3J0WzFdKQorCQlyZXR1cm4g LUVJTlZBTDsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBlYnRfbWF0Y2ggZmlsdGVy X2lwNiA9Cit7CisJLm5hbWUJCT0gRUJUX0lQNl9NQVRDSCwKKwkubWF0Y2gJCT0gZWJ0X2ZpbHRl cl9pcDYsCisJLmNoZWNrCQk9IGVidF9pcDZfY2hlY2ssCisJLm1lCQk9IFRISVNfTU9EVUxFLAor fTsKKworc3RhdGljIGludCBfX2luaXQgZWJ0X2lwNl9pbml0KHZvaWQpCit7CisJcmV0dXJuIGVi dF9yZWdpc3Rlcl9tYXRjaCgmZmlsdGVyX2lwNik7Cit9CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBl YnRfaXA2X2Zpbmkodm9pZCkKK3sKKwllYnRfdW5yZWdpc3Rlcl9tYXRjaCgmZmlsdGVyX2lwNik7 Cit9CisKK21vZHVsZV9pbml0KGVidF9pcDZfaW5pdCk7Cittb2R1bGVfZXhpdChlYnRfaXA2X2Zp bmkpOworTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwpkaWZmIC1ydU5wIG5ldGZpbHRlci5vcmlnL2Vi dF9sb2cuYyBuZXRmaWx0ZXIuaXB2Ni9lYnRfbG9nLmMKLS0tIG5ldGZpbHRlci5vcmlnL2VidF9s b2cuYwkyMDA4LTAyLTA2IDE1OjU3OjUwLjAwMDAwMDAwMCAtMDgwMAorKysgbmV0ZmlsdGVyLmlw djYvZWJ0X2xvZy5jCTIwMDgtMDItMDYgMTU6NTk6MjEuMDAwMDAwMDAwIC0wODAwCkBAIC0xOCw2 ICsxOCw4IEBACiAjaW5jbHVkZSA8bGludXgvaW4uaD4KICNpbmNsdWRlIDxsaW51eC9pZl9hcnAu aD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgorI2luY2x1ZGUgPGxpbnV4L2lwdjYuaD4K KyNpbmNsdWRlIDxsaW51eC9pbjYuaD4KIAogc3RhdGljIERFRklORV9TUElOTE9DSyhlYnRfbG9n X2xvY2spOwogCkBAIC0xMTIsNiArMTE0LDQzIEBAIGVidF9sb2dfcGFja2V0KHVuc2lnbmVkIGlu dCBwZiwgdW5zaWduZWQKIAkJZ290byBvdXQ7CiAJfQogCisJaWYgKChiaXRtYXNrICYgRUJUX0xP R19JUDYpICYmIGV0aF9oZHIoc2tiKS0+aF9wcm90byA9PQorCSAgIGh0b25zKEVUSF9QX0lQVjYp KXsKKwkJc3RydWN0IGlwdjZoZHIgX2lwaCwgKmloOworCQl1aW50OF90ICpuZXh0aGRycDsKKwkJ aW50IG9mZnNldF9waDsKKworCQlpaCA9IHNrYl9oZWFkZXJfcG9pbnRlcihza2IsIDAsIHNpemVv ZihfaXBoKSwgJl9pcGgpOworCQlpZiAoaWggPT0gTlVMTCkgeworCQkJcHJpbnRrKCIgSU5DT01Q TEVURSBJUHY2IGhlYWRlciIpOworCQkJZ290byBvdXQ7CisJCX0KKwkJcHJpbnRrKCIgSVB2NiBT UkM9JXg6JXg6JXg6JXg6JXg6JXg6JXg6JXggIgorCQkgICAgICAgIklQdjYgRFNUPSV4OiV4OiV4 OiV4OiV4OiV4OiV4OiV4LCBJUHY2ICIKKwkJICAgICAgICJwcmlvcml0eT0weCUwMVgsIE5leHQg SGVhZGVyPSVkIiwgTklQNihpaC0+c2FkZHIpLAorCQkgICAgICAgTklQNihpaC0+ZGFkZHIpLCBp aC0+cHJpb3JpdHksIGloLT5uZXh0aGRyKTsKKwkJbmV4dGhkcnAgPSAmaWgtPm5leHRoZHI7CisJ CW9mZnNldF9waCA9IGlwdjZfc2tpcF9leHRoZHIoc2tiLCBzaXplb2YoX2lwaCksIG5leHRoZHJw KTsKKwkJaWYgKG9mZnNldF9waCA9PSAtMSkKKwkJCWdvdG8gb3V0OworCQlpZiAoKm5leHRoZHJw ID09IElQUFJPVE9fVENQIHx8CisJCSAgICAqbmV4dGhkcnAgPT0gSVBQUk9UT19VRFAgfHwKKwkJ ICAgICpuZXh0aGRycCA9PSBJUFBST1RPX1NDVFAgfHwKKwkJICAgICpuZXh0aGRycCA9PSBJUFBS T1RPX0RDQ1ApIHsKKwkJCXN0cnVjdCB0Y3B1ZHBoZHIgX3BvcnRzLCAqcHB0cjsKKworCQkJcHB0 ciA9IHNrYl9oZWFkZXJfcG9pbnRlcihza2IsIG9mZnNldF9waCwgCisJCQkJCQkgIHNpemVvZihf cG9ydHMpLCAmX3BvcnRzKTsKKwkJCWlmIChwcHRyID09IE5VTEwpIHsKKwkJCQlwcmludGsoIiBJ TkNPTVBMRVRFIFRDUC9VRFAgaGVhZGVyIik7CisJCQkJZ290byBvdXQ7CisJCQl9CisJCQlwcmlu dGsoIiBTUFQ9JXUgRFBUPSV1IiwgbnRvaHMocHB0ci0+c3JjKSwKKwkJCSAgIG50b2hzKHBwdHIt PmRzdCkpOworCQl9CisJCWdvdG8gb3V0OworCX0KKwogCWlmICgoYml0bWFzayAmIEVCVF9MT0df QVJQKSAmJgogCSAgICAoKGV0aF9oZHIoc2tiKS0+aF9wcm90byA9PSBodG9ucyhFVEhfUF9BUlAp KSB8fAogCSAgICAgKGV0aF9oZHIoc2tiKS0+aF9wcm90byA9PSBodG9ucyhFVEhfUF9SQVJQKSkp KSB7CmRpZmYgLXJ1TnAgbmV0ZmlsdGVyLm9yaWcvS2NvbmZpZyBuZXRmaWx0ZXIuaXB2Ni9LY29u ZmlnCi0tLSBuZXRmaWx0ZXIub3JpZy9LY29uZmlnCTIwMDgtMDItMDYgMTU6NTc6NTAuMDAwMDAw MDAwIC0wODAwCisrKyBuZXRmaWx0ZXIuaXB2Ni9LY29uZmlnCTIwMDgtMDItMDYgMTU6NTk6MjEu MDAwMDAwMDAwIC0wODAwCkBAIC04Myw2ICs4MywxNSBAQCBjb25maWcgQlJJREdFX0VCVF9JUAog CiAJICBUbyBjb21waWxlIGl0IGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLiAgSWYgdW5zdXJl LCBzYXkgTi4KIAorY29uZmlnIEJSSURHRV9FQlRfSVA2CisJdHJpc3RhdGUgImVidDogSVA2IGZp bHRlciBzdXBwb3J0IgorCWRlcGVuZHMgb24gQlJJREdFX05GX0VCVEFCTEVTCisJaGVscAorCSAg VGhpcyBvcHRpb24gYWRkcyB0aGUgSVA2IG1hdGNoLCB3aGljaCBhbGxvd3MgYmFzaWMgSVBWNiBo ZWFkZXIgZmllbGQKKwkgIGZpbHRlcmluZy4KKworCSAgVG8gY29tcGlsZSBpdCBhcyBhIG1vZHVs ZSwgY2hvb3NlIE0gaGVyZS4gIElmIHVuc3VyZSwgc2F5IE4uCisKIGNvbmZpZyBCUklER0VfRUJU X0xJTUlUCiAJdHJpc3RhdGUgImVidDogbGltaXQgbWF0Y2ggc3VwcG9ydCIKIAlkZXBlbmRzIG9u IEJSSURHRV9ORl9FQlRBQkxFUwpkaWZmIC1ydU5wIG5ldGZpbHRlci5vcmlnL01ha2VmaWxlIG5l dGZpbHRlci5pcHY2L01ha2VmaWxlCi0tLSBuZXRmaWx0ZXIub3JpZy9NYWtlZmlsZQkyMDA4LTAy LTA2IDE1OjU3OjUwLjAwMDAwMDAwMCAtMDgwMAorKysgbmV0ZmlsdGVyLmlwdjYvTWFrZWZpbGUJ MjAwOC0wMi0wNiAxNTo1OToyMS4wMDAwMDAwMDAgLTA4MDAKQEAgLTE0LDYgKzE0LDcgQEAgb2Jq LSQoQ09ORklHX0JSSURHRV9FQlRfODAyXzMpICs9IGVidF84MAogb2JqLSQoQ09ORklHX0JSSURH RV9FQlRfQU1PTkcpICs9IGVidF9hbW9uZy5vCiBvYmotJChDT05GSUdfQlJJREdFX0VCVF9BUlAp ICs9IGVidF9hcnAubwogb2JqLSQoQ09ORklHX0JSSURHRV9FQlRfSVApICs9IGVidF9pcC5vCitv YmotJChDT05GSUdfQlJJREdFX0VCVF9JUDYpICs9IGVidF9pcDYubwogb2JqLSQoQ09ORklHX0JS SURHRV9FQlRfTElNSVQpICs9IGVidF9saW1pdC5vCiBvYmotJChDT05GSUdfQlJJREdFX0VCVF9N QVJLKSArPSBlYnRfbWFya19tLm8KIG9iai0kKENPTkZJR19CUklER0VfRUJUX1BLVFRZUEUpICs9 IGVidF9wa3R0eXBlLm8K ------_=_NextPart_001_01C8691E.71E7C7B2 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_01C8691E.71E7C7B2 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_01C8691E.71E7C7B2--