From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Anders K. Pedersen | Cohaesio" Subject: [PATCH nf-next 2/5] netfilter: nft: basic routing expression Date: Sun, 16 Oct 2016 13:42:59 +0000 Message-ID: <1476625378.1038.6.camel@cohaesio.com> References: <1476625229.1038.3.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]:35128 "EHLO mail.cohaesio.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753318AbcJPNnB (ORCPT ); Sun, 16 Oct 2016 09:43:01 -0400 In-Reply-To: <1476625229.1038.3.camel@cohaesio.com> Content-Language: en-US Content-ID: <466C0A477C01B742837C5C1C4A54C8BF@surftown.com> Sender: netfilter-devel-owner@vger.kernel.org List-ID: RnJvbTogQW5kZXJzIEsuIFBlZGVyc2VuIDxha3BAY29oYWVzaW8uY29tPg0KDQpJbnRyb2R1Y2Ug YmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIG5mdGFibGVzIHJ0IGV4cHJlc3Npb24gZm9yIHJvdXRp bmcNCnJlbGF0ZWQgZGF0YS4gSW5pdGlhbGx5ICJydCBjbGFzc2lkIiBpcyBpbXBsZW1lbnRlZCBp ZGVudGljYWwgdG8gIm1ldGENCnJ0Y2xhc3NpZCIsIHNpbmNlIGl0IGlzIG1vcmUgbG9naWNhbCB0 byBoYXZlIHRoaXMgbWF0Y2ggaW4gdGhlIHJvdXRpbmcNCmV4cHJlc3Npb24gZ29pbmcgZm9yd2Fy ZC4NCg0KU2lnbmVkLW9mZi1ieTogQW5kZXJzIEsuIFBlZGVyc2VuIDxha3BAY29oYWVzaW8uY29t Pg0KLS0tDQogaW5jbHVkZS9uZXQvbmV0ZmlsdGVyL25mdF9ydC5oICAgICAgICAgICB8ICAyMyAr KysrKw0KIG5ldC9uZXRmaWx0ZXIvS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgfCAgIDYgKysN CiBuZXQvbmV0ZmlsdGVyL01ha2VmaWxlICAgICAgICAgICAgICAgICAgIHwgICAxICsNCiBuZXQv bmV0ZmlsdGVyL25mdF9ydC5jICAgICAgICAgICAgICAgICAgIHwgMTQ1ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKw0KIDQgZmlsZXMgY2hhbmdlZCwgMTc1IGluc2VydGlvbnMoKykNCg0K ZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L25ldGZpbHRlci9uZnRfcnQuaCBiL2luY2x1ZGUvbmV0 L25ldGZpbHRlci9uZnRfcnQuaA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvaW5jbHVkZS9uZXQvbmV0 ZmlsdGVyL25mdF9ydC5oDQpAQCAtMCwwICsxLDIzIEBADQorI2lmbmRlZiBfTkZUX1JUX0hfDQor I2RlZmluZSBfTkZUX1JUX0hfDQorDQorc3RydWN0IG5mdF9ydCB7DQorCWVudW0gbmZ0X3J0X2tl eXMJa2V5Ojg7DQorCWVudW0gbmZ0X3JlZ2lzdGVycwlkcmVnOjg7DQorCXU4CQkJZmFtaWx5Ow0K K307DQorDQorZXh0ZXJuIGNvbnN0IHN0cnVjdCBubGFfcG9saWN5IG5mdF9ydF9wb2xpY3lbXTsN CisNCitpbnQgbmZ0X3J0X2dldF9pbml0KGNvbnN0IHN0cnVjdCBuZnRfY3R4ICpjdHgsDQorCQkg ICAgY29uc3Qgc3RydWN0IG5mdF9leHByICpleHByLA0KKwkJICAgIGNvbnN0IHN0cnVjdCBubGF0 dHIgKiBjb25zdCB0YltdKTsNCisNCitpbnQgbmZ0X3J0X2dldF9kdW1wKHN0cnVjdCBza19idWZm ICpza2IsDQorCQkgICAgY29uc3Qgc3RydWN0IG5mdF9leHByICpleHByKTsNCisNCit2b2lkIG5m dF9ydF9nZXRfZXZhbChjb25zdCBzdHJ1Y3QgbmZ0X2V4cHIgKmV4cHIsDQorCQkgICAgIHN0cnVj dCBuZnRfcmVncyAqcmVncywNCisJCSAgICAgY29uc3Qgc3RydWN0IG5mdF9wa3RpbmZvICpwa3Qp Ow0KKw0KKyNlbmRpZg0KZGlmZiAtLWdpdCBhL25ldC9uZXRmaWx0ZXIvS2NvbmZpZyBiL25ldC9u ZXRmaWx0ZXIvS2NvbmZpZw0KLS0tIGEvbmV0L25ldGZpbHRlci9LY29uZmlnDQorKysgYi9uZXQv bmV0ZmlsdGVyL0tjb25maWcNCkBAIC00NzQsNiArNDc0LDEyIEBAIGNvbmZpZyBORlRfTUVUQQ0K IAkgIFRoaXMgb3B0aW9uIGFkZHMgdGhlICJtZXRhIiBleHByZXNzaW9uIHRoYXQgeW91IGNhbiB1 c2UgdG8gbWF0Y2ggYW5kDQogCSAgdG8gc2V0IHBhY2tldCBtZXRhaW5mb3JtYXRpb24gc3VjaCBh cyB0aGUgcGFja2V0IG1hcmsuDQogDQorY29uZmlnIE5GVF9SVA0KKwl0cmlzdGF0ZSAiTmV0Zmls dGVyIG5mX3RhYmxlcyByb3V0aW5nIG1vZHVsZSINCisJaGVscA0KKwkgIFRoaXMgb3B0aW9uIGFk ZHMgdGhlICJydCIgZXhwcmVzc2lvbiB0aGF0IHlvdSBjYW4gdXNlIHRvIG1hdGNoDQorCSAgcGFj a2V0IHJvdXRpbmcgaW5mb3JtYXRpb24gc3VjaCBhcyB0aGUgcGFja2V0IG5leHRob3AuDQorDQog Y29uZmlnIE5GVF9OVU1HRU4NCiAJdHJpc3RhdGUgIk5ldGZpbHRlciBuZl90YWJsZXMgbnVtYmVy IGdlbmVyYXRvciBtb2R1bGUiDQogCWhlbHANCmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL01h a2VmaWxlIGIvbmV0L25ldGZpbHRlci9NYWtlZmlsZQ0KLS0tIGEvbmV0L25ldGZpbHRlci9NYWtl ZmlsZQ0KKysrIGIvbmV0L25ldGZpbHRlci9NYWtlZmlsZQ0KQEAgLTgxLDYgKzgxLDcgQEAgb2Jq LSQoQ09ORklHX05GX1RBQkxFU19ORVRERVYpCSs9IG5mX3RhYmxlc19uZXRkZXYubw0KIG9iai0k KENPTkZJR19ORlRfQ09NUEFUKQkrPSBuZnRfY29tcGF0Lm8NCiBvYmotJChDT05GSUdfTkZUX0VY VEhEUikJKz0gbmZ0X2V4dGhkci5vDQogb2JqLSQoQ09ORklHX05GVF9NRVRBKQkJKz0gbmZ0X21l dGEubw0KK29iai0kKENPTkZJR19ORlRfUlQpCQkrPSBuZnRfcnQubw0KIG9iai0kKENPTkZJR19O RlRfTlVNR0VOKQkrPSBuZnRfbnVtZ2VuLm8NCiBvYmotJChDT05GSUdfTkZUX0NUKQkJKz0gbmZ0 X2N0Lm8NCiBvYmotJChDT05GSUdfTkZUX0xJTUlUKQkJKz0gbmZ0X2xpbWl0Lm8NCmRpZmYgLS1n aXQgYS9uZXQvbmV0ZmlsdGVyL25mdF9ydC5jIGIvbmV0L25ldGZpbHRlci9uZnRfcnQuYw0KLS0t IC9kZXYvbnVsbA0KKysrIGIvbmV0L25ldGZpbHRlci9uZnRfcnQuYw0KQEAgLTAsMCArMSwxNDUg QEANCisvKg0KKyAqIENvcHlyaWdodCAoYykgMjAxNiBBbmRlcnMgSy4gUGVkZXJzZW4gPGFrcEBj b2hhZXNpby5jb20+DQorICoNCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KKyAqIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzDQorICogcHVi bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uDQorICovDQorDQorI2luY2x1 ZGUgPGxpbnV4L2tlcm5lbC5oPg0KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+DQorI2luY2x1ZGUg PGxpbnV4L21vZHVsZS5oPg0KKyNpbmNsdWRlIDxsaW51eC9uZXRsaW5rLmg+DQorI2luY2x1ZGUg PGxpbnV4L25ldGZpbHRlci5oPg0KKyNpbmNsdWRlIDxsaW51eC9uZXRmaWx0ZXIvbmZfdGFibGVz Lmg+DQorI2luY2x1ZGUgPG5ldC9kc3QuaD4NCisjaW5jbHVkZSA8bmV0L25ldGZpbHRlci9uZl90 YWJsZXMuaD4NCisjaW5jbHVkZSA8bmV0L25ldGZpbHRlci9uZl90YWJsZXNfY29yZS5oPg0KKyNp bmNsdWRlIDxuZXQvbmV0ZmlsdGVyL25mdF9ydC5oPg0KKw0KK3ZvaWQgbmZ0X3J0X2dldF9ldmFs KGNvbnN0IHN0cnVjdCBuZnRfZXhwciAqZXhwciwNCisJCSAgICAgc3RydWN0IG5mdF9yZWdzICpy ZWdzLA0KKwkJICAgICBjb25zdCBzdHJ1Y3QgbmZ0X3BrdGluZm8gKnBrdCkNCit7DQorCWNvbnN0 IHN0cnVjdCBuZnRfcnQgKnByaXYgPSBuZnRfZXhwcl9wcml2KGV4cHIpOw0KKwljb25zdCBzdHJ1 Y3Qgc2tfYnVmZiAqc2tiID0gcGt0LT5za2I7DQorCXUzMiAqZGVzdCA9ICZyZWdzLT5kYXRhW3By aXYtPmRyZWddOw0KKw0KKwlzd2l0Y2ggKHByaXYtPmtleSkgew0KKyNpZmRlZiBDT05GSUdfSVBf Uk9VVEVfQ0xBU1NJRA0KKwljYXNlIE5GVF9SVF9DTEFTU0lEOiB7DQorCQljb25zdCBzdHJ1Y3Qg ZHN0X2VudHJ5ICpkc3QgPSBza2JfZHN0KHNrYik7DQorDQorCQlpZiAoZHN0ID09IE5VTEwpDQor CQkJZ290byBlcnI7DQorCQkqZGVzdCA9IGRzdC0+dGNsYXNzaWQ7DQorCQlicmVhazsNCisJfQ0K KyNlbmRpZg0KKwlkZWZhdWx0Og0KKwkJV0FSTl9PTigxKTsNCisJCWdvdG8gZXJyOw0KKwl9DQor CXJldHVybjsNCisNCitlcnI6DQorCXJlZ3MtPnZlcmRpY3QuY29kZSA9IE5GVF9CUkVBSzsNCit9 DQorRVhQT1JUX1NZTUJPTF9HUEwobmZ0X3J0X2dldF9ldmFsKTsNCisNCitjb25zdCBzdHJ1Y3Qg bmxhX3BvbGljeSBuZnRfcnRfcG9saWN5W05GVEFfUlRfTUFYICsgMV0gPSB7DQorCVtORlRBX1JU X0RSRUddCQk9IHsgLnR5cGUgPSBOTEFfVTMyIH0sDQorCVtORlRBX1JUX0tFWV0JCT0geyAudHlw ZSA9IE5MQV9VMzIgfSwNCisJW05GVEFfUlRfRkFNSUxZXQk9IHsgLnR5cGUgPSBOTEFfVTMyIH0s DQorfTsNCitFWFBPUlRfU1lNQk9MX0dQTChuZnRfcnRfcG9saWN5KTsNCisNCitpbnQgbmZ0X3J0 X2dldF9pbml0KGNvbnN0IHN0cnVjdCBuZnRfY3R4ICpjdHgsDQorCQkgICAgY29uc3Qgc3RydWN0 IG5mdF9leHByICpleHByLA0KKwkJICAgIGNvbnN0IHN0cnVjdCBubGF0dHIgKiBjb25zdCB0Yltd KQ0KK3sNCisJc3RydWN0IG5mdF9ydCAqcHJpdiA9IG5mdF9leHByX3ByaXYoZXhwcik7DQorCXVu c2lnbmVkIGludCBsZW47DQorDQorCXByaXYtPmtleSA9IG50b2hsKG5sYV9nZXRfYmUzMih0YltO RlRBX1JUX0tFWV0pKTsNCisJc3dpdGNoIChwcml2LT5rZXkpIHsNCisjaWZkZWYgQ09ORklHX0lQ X1JPVVRFX0NMQVNTSUQNCisJY2FzZSBORlRfUlRfQ0xBU1NJRDoNCisJCWxlbiA9IHNpemVvZih1 MzIpOw0KKwkJYnJlYWs7DQorI2VuZGlmDQorCWRlZmF1bHQ6DQorCQlyZXR1cm4gLUVPUE5PVFNV UFA7DQorCX0NCisNCisJcHJpdi0+ZmFtaWx5ID0gbnRvaGwobmxhX2dldF9iZTMyKHRiW05GVEFf UlRfRkFNSUxZXSkpOw0KKwlwcml2LT5kcmVnID0gbmZ0X3BhcnNlX3JlZ2lzdGVyKHRiW05GVEFf UlRfRFJFR10pOw0KKwlyZXR1cm4gbmZ0X3ZhbGlkYXRlX3JlZ2lzdGVyX3N0b3JlKGN0eCwgcHJp di0+ZHJlZywgTlVMTCwNCisJCQkJCSAgIE5GVF9EQVRBX1ZBTFVFLCBsZW4pOw0KK30NCitFWFBP UlRfU1lNQk9MX0dQTChuZnRfcnRfZ2V0X2luaXQpOw0KKw0KK2ludCBuZnRfcnRfZ2V0X2R1bXAo c3RydWN0IHNrX2J1ZmYgKnNrYiwNCisJCSAgICBjb25zdCBzdHJ1Y3QgbmZ0X2V4cHIgKmV4cHIp DQorew0KKwljb25zdCBzdHJ1Y3QgbmZ0X3J0ICpwcml2ID0gbmZ0X2V4cHJfcHJpdihleHByKTsN CisNCisJaWYgKG5sYV9wdXRfYmUzMihza2IsIE5GVEFfUlRfS0VZLCBodG9ubChwcml2LT5rZXkp KSkNCisJCWdvdG8gbmxhX3B1dF9mYWlsdXJlOw0KKwlpZiAobmZ0X2R1bXBfcmVnaXN0ZXIoc2ti LCBORlRBX1JUX0RSRUcsIHByaXYtPmRyZWcpKQ0KKwkJZ290byBubGFfcHV0X2ZhaWx1cmU7DQor CWlmIChubGFfcHV0X2JlMzIoc2tiLCBORlRBX1JUX0ZBTUlMWSwgaHRvbmwocHJpdi0+ZmFtaWx5 KSkpDQorCQlnb3RvIG5sYV9wdXRfZmFpbHVyZTsNCisJcmV0dXJuIDA7DQorDQorbmxhX3B1dF9m YWlsdXJlOg0KKwlyZXR1cm4gLTE7DQorfQ0KK0VYUE9SVF9TWU1CT0xfR1BMKG5mdF9ydF9nZXRf ZHVtcCk7DQorDQorc3RhdGljIHN0cnVjdCBuZnRfZXhwcl90eXBlIG5mdF9ydF90eXBlOw0KK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgbmZ0X2V4cHJfb3BzIG5mdF9ydF9nZXRfb3BzID0gew0KKwkudHlw ZQkJPSAmbmZ0X3J0X3R5cGUsDQorCS5zaXplCQk9IE5GVF9FWFBSX1NJWkUoc2l6ZW9mKHN0cnVj dCBuZnRfcnQpKSwNCisJLmV2YWwJCT0gbmZ0X3J0X2dldF9ldmFsLA0KKwkuaW5pdAkJPSBuZnRf cnRfZ2V0X2luaXQsDQorCS5kdW1wCQk9IG5mdF9ydF9nZXRfZHVtcCwNCit9Ow0KKw0KK3N0YXRp YyBjb25zdCBzdHJ1Y3QgbmZ0X2V4cHJfb3BzICoNCituZnRfcnRfc2VsZWN0X29wcyhjb25zdCBz dHJ1Y3QgbmZ0X2N0eCAqY3R4LA0KKwkJICBjb25zdCBzdHJ1Y3QgbmxhdHRyICogY29uc3QgdGJb XSkNCit7DQorCWlmICh0YltORlRBX1JUX0tFWV0gPT0gTlVMTCkNCisJCXJldHVybiBFUlJfUFRS KC1FSU5WQUwpOw0KKw0KKwlpZiAodGJbTkZUQV9SVF9EUkVHXSkNCisJCXJldHVybiAmbmZ0X3J0 X2dldF9vcHM7DQorDQorCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOw0KK30NCisNCitzdGF0aWMg c3RydWN0IG5mdF9leHByX3R5cGUgbmZ0X3J0X3R5cGUgX19yZWFkX21vc3RseSA9IHsNCisJLm5h bWUJCT0gInJ0IiwNCisJLnNlbGVjdF9vcHMJPSAmbmZ0X3J0X3NlbGVjdF9vcHMsDQorCS5wb2xp Y3kJCT0gbmZ0X3J0X3BvbGljeSwNCisJLm1heGF0dHIJPSBORlRBX1JUX01BWCwNCisJLm93bmVy CQk9IFRISVNfTU9EVUxFLA0KK307DQorDQorc3RhdGljIGludCBfX2luaXQgbmZ0X3J0X21vZHVs ZV9pbml0KHZvaWQpDQorew0KKwlyZXR1cm4gbmZ0X3JlZ2lzdGVyX2V4cHIoJm5mdF9ydF90eXBl KTsNCit9DQorDQorc3RhdGljIHZvaWQgX19leGl0IG5mdF9ydF9tb2R1bGVfZXhpdCh2b2lkKQ0K K3sNCisJbmZ0X3VucmVnaXN0ZXJfZXhwcigmbmZ0X3J0X3R5cGUpOw0KK30NCisNCittb2R1bGVf aW5pdChuZnRfcnRfbW9kdWxlX2luaXQpOw0KK21vZHVsZV9leGl0KG5mdF9ydF9tb2R1bGVfZXhp dCk7DQorDQorTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOw0KK01PRFVMRV9BVVRIT1IoIkFuZGVycyBL LiBQZWRlcnNlbiA8YWtwQGNvaGFlc2lvLmNvbT4iKTsNCitNT0RVTEVfQUxJQVNfTkZUX0VYUFIo InJ0Iik7DQo=