From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Anders K. Pedersen | Cohaesio" Subject: [PATCH v2 nf-next 2/5] netfilter: nft: basic routing expression Date: Wed, 19 Oct 2016 18:38:14 +0000 Message-ID: <1476902293.1161.19.camel@cohaesio.com> References: <1476902043.1161.14.camel@cohaesio.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 To: "netfilter-devel@vger.kernel.org" , "pablo@netfilter.org" Return-path: Received: from bender.cohaesio.com ([212.97.128.130]:60069 "EHLO mail.cohaesio.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1759043AbcJSSiR (ORCPT ); Wed, 19 Oct 2016 14:38:17 -0400 In-Reply-To: <1476902043.1161.14.camel@cohaesio.com> Content-Language: en-US Content-ID: <37074EE49995C9479A8A9B8E0BBD86DB@surftown.com> Sender: netfilter-devel-owner@vger.kernel.org List-ID: RnJvbTogQW5kZXJzIEsuIFBlZGVyc2VuIDxha3BAY29oYWVzaW8uY29tPg0KDQpJbnRyb2R1Y2Ug YmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIG5mdGFibGVzIHJ0IGV4cHJlc3Npb24gZm9yIHJvdXRp bmcNCnJlbGF0ZWQgZGF0YS4gSW5pdGlhbGx5ICJydCBjbGFzc2lkIiBpcyBpbXBsZW1lbnRlZCBp ZGVudGljYWwgdG8gIm1ldGENCnJ0Y2xhc3NpZCIsIHNpbmNlIGl0IGlzIG1vcmUgbG9naWNhbCB0 byBoYXZlIHRoaXMgbWF0Y2ggaW4gdGhlIHJvdXRpbmcNCmV4cHJlc3Npb24gZ29pbmcgZm9yd2Fy ZC4NCg0KU2lnbmVkLW9mZi1ieTogQW5kZXJzIEsuIFBlZGVyc2VuIDxha3BAY29oYWVzaW8uY29t Pg0KLS0tDQp2Mg0KLSByZW1vdmUgbmZ0X3J0X3NlbGVjdF9vcHMNCg0KIGluY2x1ZGUvbmV0L25l dGZpbHRlci9uZnRfcnQuaCAgICAgICAgICAgfCAgMjMgKysrKysNCiBuZXQvbmV0ZmlsdGVyL0tj b25maWcgICAgICAgICAgICAgICAgICAgIHwgICA2ICsrDQogbmV0L25ldGZpbHRlci9NYWtlZmls ZSAgICAgICAgICAgICAgICAgICB8ICAgMSArDQogbmV0L25ldGZpbHRlci9uZnRfcnQuYyAgICAg ICAgICAgICAgICAgICB8IDEzNyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KIDQgZmls ZXMgY2hhbmdlZCwgMTY3IGluc2VydGlvbnMoKykNCg0KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0 L25ldGZpbHRlci9uZnRfcnQuaCBiL2luY2x1ZGUvbmV0L25ldGZpbHRlci9uZnRfcnQuaA0KbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLmUzMmU5ZTYNCi0tLSAvZGV2L251bGwN CisrKyBiL2luY2x1ZGUvbmV0L25ldGZpbHRlci9uZnRfcnQuaA0KQEAgLTAsMCArMSwyMyBAQA0K KyNpZm5kZWYgX05GVF9SVF9IXw0KKyNkZWZpbmUgX05GVF9SVF9IXw0KKw0KK3N0cnVjdCBuZnRf cnQgew0KKwllbnVtIG5mdF9ydF9rZXlzCWtleTo4Ow0KKwllbnVtIG5mdF9yZWdpc3RlcnMJZHJl Zzo4Ow0KKwl1OAkJCWZhbWlseTsNCit9Ow0KKw0KK2V4dGVybiBjb25zdCBzdHJ1Y3QgbmxhX3Bv bGljeSBuZnRfcnRfcG9saWN5W107DQorDQoraW50IG5mdF9ydF9nZXRfaW5pdChjb25zdCBzdHJ1 Y3QgbmZ0X2N0eCAqY3R4LA0KKwkJICAgIGNvbnN0IHN0cnVjdCBuZnRfZXhwciAqZXhwciwNCisJ CSAgICBjb25zdCBzdHJ1Y3QgbmxhdHRyICogY29uc3QgdGJbXSk7DQorDQoraW50IG5mdF9ydF9n ZXRfZHVtcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLA0KKwkJICAgIGNvbnN0IHN0cnVjdCBuZnRfZXhw ciAqZXhwcik7DQorDQordm9pZCBuZnRfcnRfZ2V0X2V2YWwoY29uc3Qgc3RydWN0IG5mdF9leHBy ICpleHByLA0KKwkJICAgICBzdHJ1Y3QgbmZ0X3JlZ3MgKnJlZ3MsDQorCQkgICAgIGNvbnN0IHN0 cnVjdCBuZnRfcGt0aW5mbyAqcGt0KTsNCisNCisjZW5kaWYNCmRpZmYgLS1naXQgYS9uZXQvbmV0 ZmlsdGVyL0tjb25maWcgYi9uZXQvbmV0ZmlsdGVyL0tjb25maWcNCmluZGV4IGU4ZDU2ZDkuLjQw ZDZlMGYgMTAwNjQ0DQotLS0gYS9uZXQvbmV0ZmlsdGVyL0tjb25maWcNCisrKyBiL25ldC9uZXRm aWx0ZXIvS2NvbmZpZw0KQEAgLTQ3NCw2ICs0NzQsMTIgQEAgY29uZmlnIE5GVF9NRVRBDQogCSAg VGhpcyBvcHRpb24gYWRkcyB0aGUgIm1ldGEiIGV4cHJlc3Npb24gdGhhdCB5b3UgY2FuIHVzZSB0 byBtYXRjaCBhbmQNCiAJICB0byBzZXQgcGFja2V0IG1ldGFpbmZvcm1hdGlvbiBzdWNoIGFzIHRo ZSBwYWNrZXQgbWFyay4NCiANCitjb25maWcgTkZUX1JUDQorCXRyaXN0YXRlICJOZXRmaWx0ZXIg bmZfdGFibGVzIHJvdXRpbmcgbW9kdWxlIg0KKwloZWxwDQorCSAgVGhpcyBvcHRpb24gYWRkcyB0 aGUgInJ0IiBleHByZXNzaW9uIHRoYXQgeW91IGNhbiB1c2UgdG8gbWF0Y2gNCisJICBwYWNrZXQg cm91dGluZyBpbmZvcm1hdGlvbiBzdWNoIGFzIHRoZSBwYWNrZXQgbmV4dGhvcC4NCisNCiBjb25m aWcgTkZUX05VTUdFTg0KIAl0cmlzdGF0ZSAiTmV0ZmlsdGVyIG5mX3RhYmxlcyBudW1iZXIgZ2Vu ZXJhdG9yIG1vZHVsZSINCiAJaGVscA0KZGlmZiAtLWdpdCBhL25ldC9uZXRmaWx0ZXIvTWFrZWZp bGUgYi9uZXQvbmV0ZmlsdGVyL01ha2VmaWxlDQppbmRleCBjMjNjM2M4Li5mM2EwYzU5IDEwMDY0 NA0KLS0tIGEvbmV0L25ldGZpbHRlci9NYWtlZmlsZQ0KKysrIGIvbmV0L25ldGZpbHRlci9NYWtl ZmlsZQ0KQEAgLTgxLDYgKzgxLDcgQEAgb2JqLSQoQ09ORklHX05GX1RBQkxFU19ORVRERVYpCSs9 IG5mX3RhYmxlc19uZXRkZXYubw0KIG9iai0kKENPTkZJR19ORlRfQ09NUEFUKQkrPSBuZnRfY29t cGF0Lm8NCiBvYmotJChDT05GSUdfTkZUX0VYVEhEUikJKz0gbmZ0X2V4dGhkci5vDQogb2JqLSQo Q09ORklHX05GVF9NRVRBKQkJKz0gbmZ0X21ldGEubw0KK29iai0kKENPTkZJR19ORlRfUlQpCQkr PSBuZnRfcnQubw0KIG9iai0kKENPTkZJR19ORlRfTlVNR0VOKQkrPSBuZnRfbnVtZ2VuLm8NCiBv YmotJChDT05GSUdfTkZUX0NUKQkJKz0gbmZ0X2N0Lm8NCiBvYmotJChDT05GSUdfTkZUX0xJTUlU KQkJKz0gbmZ0X2xpbWl0Lm8NCmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL25mdF9ydC5jIGIv bmV0L25ldGZpbHRlci9uZnRfcnQuYw0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAw MDAuLjc3NWMyODMNCi0tLSAvZGV2L251bGwNCisrKyBiL25ldC9uZXRmaWx0ZXIvbmZ0X3J0LmMN CkBAIC0wLDAgKzEsMTM3IEBADQorLyoNCisgKiBDb3B5cmlnaHQgKGMpIDIwMTYgQW5kZXJzIEsu IFBlZGVyc2VuIDxha3BAY29oYWVzaW8uY29tPg0KKyAqDQorICogVGhpcyBwcm9ncmFtIGlzIGZy ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCisgKiBp dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNp b24gMiBhcw0KKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLg0K KyAqLw0KKw0KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4NCisjaW5jbHVkZSA8bGludXgvaW5p dC5oPg0KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4NCisjaW5jbHVkZSA8bGludXgvbmV0bGlu ay5oPg0KKyNpbmNsdWRlIDxsaW51eC9uZXRmaWx0ZXIuaD4NCisjaW5jbHVkZSA8bGludXgvbmV0 ZmlsdGVyL25mX3RhYmxlcy5oPg0KKyNpbmNsdWRlIDxuZXQvZHN0Lmg+DQorI2luY2x1ZGUgPG5l dC9uZXRmaWx0ZXIvbmZfdGFibGVzLmg+DQorI2luY2x1ZGUgPG5ldC9uZXRmaWx0ZXIvbmZfdGFi bGVzX2NvcmUuaD4NCisjaW5jbHVkZSA8bmV0L25ldGZpbHRlci9uZnRfcnQuaD4NCisNCit2b2lk IG5mdF9ydF9nZXRfZXZhbChjb25zdCBzdHJ1Y3QgbmZ0X2V4cHIgKmV4cHIsDQorCQkgICAgIHN0 cnVjdCBuZnRfcmVncyAqcmVncywNCisJCSAgICAgY29uc3Qgc3RydWN0IG5mdF9wa3RpbmZvICpw a3QpDQorew0KKwljb25zdCBzdHJ1Y3QgbmZ0X3J0ICpwcml2ID0gbmZ0X2V4cHJfcHJpdihleHBy KTsNCisJY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiA9IHBrdC0+c2tiOw0KKwl1MzIgKmRlc3Qg PSAmcmVncy0+ZGF0YVtwcml2LT5kcmVnXTsNCisNCisJc3dpdGNoIChwcml2LT5rZXkpIHsNCisj aWZkZWYgQ09ORklHX0lQX1JPVVRFX0NMQVNTSUQNCisJY2FzZSBORlRfUlRfQ0xBU1NJRDogew0K KwkJY29uc3Qgc3RydWN0IGRzdF9lbnRyeSAqZHN0ID0gc2tiX2RzdChza2IpOw0KKw0KKwkJaWYg KGRzdCA9PSBOVUxMKQ0KKwkJCWdvdG8gZXJyOw0KKwkJKmRlc3QgPSBkc3QtPnRjbGFzc2lkOw0K KwkJYnJlYWs7DQorCX0NCisjZW5kaWYNCisJZGVmYXVsdDoNCisJCVdBUk5fT04oMSk7DQorCQln b3RvIGVycjsNCisJfQ0KKwlyZXR1cm47DQorDQorZXJyOg0KKwlyZWdzLT52ZXJkaWN0LmNvZGUg PSBORlRfQlJFQUs7DQorfQ0KK0VYUE9SVF9TWU1CT0xfR1BMKG5mdF9ydF9nZXRfZXZhbCk7DQor DQorY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgbmZ0X3J0X3BvbGljeVtORlRBX1JUX01BWCArIDFd ID0gew0KKwlbTkZUQV9SVF9EUkVHXQkJPSB7IC50eXBlID0gTkxBX1UzMiB9LA0KKwlbTkZUQV9S VF9LRVldCQk9IHsgLnR5cGUgPSBOTEFfVTMyIH0sDQorCVtORlRBX1JUX0ZBTUlMWV0JPSB7IC50 eXBlID0gTkxBX1UzMiB9LA0KK307DQorRVhQT1JUX1NZTUJPTF9HUEwobmZ0X3J0X3BvbGljeSk7 DQorDQoraW50IG5mdF9ydF9nZXRfaW5pdChjb25zdCBzdHJ1Y3QgbmZ0X2N0eCAqY3R4LA0KKwkJ ICAgIGNvbnN0IHN0cnVjdCBuZnRfZXhwciAqZXhwciwNCisJCSAgICBjb25zdCBzdHJ1Y3Qgbmxh dHRyICogY29uc3QgdGJbXSkNCit7DQorCXN0cnVjdCBuZnRfcnQgKnByaXYgPSBuZnRfZXhwcl9w cml2KGV4cHIpOw0KKwl1bnNpZ25lZCBpbnQgbGVuOw0KKw0KKwlpZiAodGJbTkZUQV9SVF9LRVld ID09IE5VTEwgfHwNCisJICAgIHRiW05GVEFfUlRfRFJFR10gPT0gTlVMTCB8fA0KKwkgICAgdGJb TkZUQV9SVF9GQU1JTFldID09IE5VTEwpDQorCQlyZXR1cm4gLUVJTlZBTDsNCisNCisJcHJpdi0+ a2V5ID0gbnRvaGwobmxhX2dldF9iZTMyKHRiW05GVEFfUlRfS0VZXSkpOw0KKwlzd2l0Y2ggKHBy aXYtPmtleSkgew0KKyNpZmRlZiBDT05GSUdfSVBfUk9VVEVfQ0xBU1NJRA0KKwljYXNlIE5GVF9S VF9DTEFTU0lEOg0KKwkJbGVuID0gc2l6ZW9mKHUzMik7DQorCQlicmVhazsNCisjZW5kaWYNCisJ ZGVmYXVsdDoNCisJCXJldHVybiAtRU9QTk9UU1VQUDsNCisJfQ0KKw0KKwlwcml2LT5mYW1pbHkg PSBudG9obChubGFfZ2V0X2JlMzIodGJbTkZUQV9SVF9GQU1JTFldKSk7DQorCXByaXYtPmRyZWcg PSBuZnRfcGFyc2VfcmVnaXN0ZXIodGJbTkZUQV9SVF9EUkVHXSk7DQorCXJldHVybiBuZnRfdmFs aWRhdGVfcmVnaXN0ZXJfc3RvcmUoY3R4LCBwcml2LT5kcmVnLCBOVUxMLA0KKwkJCQkJICAgTkZU X0RBVEFfVkFMVUUsIGxlbik7DQorfQ0KK0VYUE9SVF9TWU1CT0xfR1BMKG5mdF9ydF9nZXRfaW5p dCk7DQorDQoraW50IG5mdF9ydF9nZXRfZHVtcChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLA0KKwkJICAg IGNvbnN0IHN0cnVjdCBuZnRfZXhwciAqZXhwcikNCit7DQorCWNvbnN0IHN0cnVjdCBuZnRfcnQg KnByaXYgPSBuZnRfZXhwcl9wcml2KGV4cHIpOw0KKw0KKwlpZiAobmxhX3B1dF9iZTMyKHNrYiwg TkZUQV9SVF9LRVksIGh0b25sKHByaXYtPmtleSkpKQ0KKwkJZ290byBubGFfcHV0X2ZhaWx1cmU7 DQorCWlmIChuZnRfZHVtcF9yZWdpc3Rlcihza2IsIE5GVEFfUlRfRFJFRywgcHJpdi0+ZHJlZykp DQorCQlnb3RvIG5sYV9wdXRfZmFpbHVyZTsNCisJaWYgKG5sYV9wdXRfYmUzMihza2IsIE5GVEFf UlRfRkFNSUxZLCBodG9ubChwcml2LT5mYW1pbHkpKSkNCisJCWdvdG8gbmxhX3B1dF9mYWlsdXJl Ow0KKwlyZXR1cm4gMDsNCisNCitubGFfcHV0X2ZhaWx1cmU6DQorCXJldHVybiAtMTsNCit9DQor RVhQT1JUX1NZTUJPTF9HUEwobmZ0X3J0X2dldF9kdW1wKTsNCisNCitzdGF0aWMgc3RydWN0IG5m dF9leHByX3R5cGUgbmZ0X3J0X3R5cGU7DQorc3RhdGljIGNvbnN0IHN0cnVjdCBuZnRfZXhwcl9v cHMgbmZ0X3J0X2dldF9vcHMgPSB7DQorCS50eXBlCQk9ICZuZnRfcnRfdHlwZSwNCisJLnNpemUJ CT0gTkZUX0VYUFJfU0laRShzaXplb2Yoc3RydWN0IG5mdF9ydCkpLA0KKwkuZXZhbAkJPSBuZnRf cnRfZ2V0X2V2YWwsDQorCS5pbml0CQk9IG5mdF9ydF9nZXRfaW5pdCwNCisJLmR1bXAJCT0gbmZ0 X3J0X2dldF9kdW1wLA0KK307DQorDQorc3RhdGljIHN0cnVjdCBuZnRfZXhwcl90eXBlIG5mdF9y dF90eXBlIF9fcmVhZF9tb3N0bHkgPSB7DQorCS5uYW1lCQk9ICJydCIsDQorCS5vcHMJCT0gJm5m dF9ydF9nZXRfb3BzLA0KKwkucG9saWN5CQk9IG5mdF9ydF9wb2xpY3ksDQorCS5tYXhhdHRyCT0g TkZUQV9SVF9NQVgsDQorCS5vd25lcgkJPSBUSElTX01PRFVMRSwNCit9Ow0KKw0KK3N0YXRpYyBp bnQgX19pbml0IG5mdF9ydF9tb2R1bGVfaW5pdCh2b2lkKQ0KK3sNCisJcmV0dXJuIG5mdF9yZWdp c3Rlcl9leHByKCZuZnRfcnRfdHlwZSk7DQorfQ0KKw0KK3N0YXRpYyB2b2lkIF9fZXhpdCBuZnRf cnRfbW9kdWxlX2V4aXQodm9pZCkNCit7DQorCW5mdF91bnJlZ2lzdGVyX2V4cHIoJm5mdF9ydF90 eXBlKTsNCit9DQorDQorbW9kdWxlX2luaXQobmZ0X3J0X21vZHVsZV9pbml0KTsNCittb2R1bGVf ZXhpdChuZnRfcnRfbW9kdWxlX2V4aXQpOw0KKw0KK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsNCitN T0RVTEVfQVVUSE9SKCJBbmRlcnMgSy4gUGVkZXJzZW4gPGFrcEBjb2hhZXNpby5jb20+Iik7DQor TU9EVUxFX0FMSUFTX05GVF9FWFBSKCJydCIpOw0K