From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Anders K. Pedersen | Cohaesio" Subject: [PATCH v2 nf-next 3/5] netfilter: nft: rt nexthop for IPv4 family Date: Wed, 19 Oct 2016 18:39:25 +0000 Message-ID: <1476902365.1161.21.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]:60182 "EHLO mail.cohaesio.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S943410AbcJSSjc (ORCPT ); Wed, 19 Oct 2016 14:39:32 -0400 In-Reply-To: <1476902043.1161.14.camel@cohaesio.com> Content-Language: en-US Content-ID: <9D20299B464BA34BBF07DC01C341867F@surftown.com> Sender: netfilter-devel-owner@vger.kernel.org List-ID: RnJvbTogQW5kZXJzIEsuIFBlZGVyc2VuIDxha3BAY29oYWVzaW8uY29tPg0KDQpBZGQgbmZ0YWJs ZXMgSVB2NCBmYW1pbHkgc3VwcG9ydCBmb3IgYW4gInJ0IGlwIG5leHRob3AiIGV4cHJlc3Npb24N CmFsbG93aW5nIHVzYWdlIG9mIHRoZSByb3V0aW5nIG5leHRob3AgKGkuZS4gdGhlIGRpcmVjdGx5 IGNvbm5lY3RlZCBJUA0KYWRkcmVzcyB0aGF0IGFuIG91dGdvaW5nIHBhY2tldCBpcyBzZW50IHRv KSBmb3IgbWF0Y2hpbmcgb3IgYWNjb3VudGluZywgZWcuDQoNCiAjIG5mdCBhZGQgcnVsZSBmaWx0 ZXIgcG9zdHJvdXRpbmcgXA0KCWlwIGRhZGRyIDE5Mi4xNjguMS4wLzI0IHJ0IGlwIG5leHRob3Ag IT0gMTkyLjE2OC4wLjEgZHJvcA0KDQpUaGlzIHdpbGwgZHJvcCBhbnkgdHJhZmZpYyB0byAxOTIu MTY4LjEuMC8yNCB0aGF0IGlzIG5vdCByb3V0ZWQgdmlhDQoxOTIuMTY4LjAuMS4NCg0KICMgbmZ0 IGFkZCBydWxlIGZpbHRlciBwb3N0cm91dGluZyBcDQoJZmxvdyB0YWJsZSBhY2N0IHsgcnQgaXAg bmV4dGhvcCB0aW1lb3V0IDYwMHMgY291bnRlciB9DQoNClRoaXMgcnVsZSBjb3VudHMgb3V0Z29p bmcgdHJhZmZpYyBwZXIgbmV4dGhvcC4gTm90ZSB0aGF0IHRoZSB0aW1lb3V0DQpyZWxlYXNlcyBh biBlbnRyeSBpZiBubyB0cmFmZmljIGlzIHNlZW4gZm9yIHRoaXMgbmV4dGhvcCB3aXRoaW4gMTAg bWludXRlcy4NCg0KU2lnbmVkLW9mZi1ieTogQW5kZXJzIEsuIFBlZGVyc2VuIDxha3BAY29oYWVz aW8uY29tPg0KLS0tDQp2Mg0KLSByZW1vdmUgbmZ0X3J0X2lwdjRfc2VsZWN0X29wcw0KDQogbmV0 L2lwdjQvbmV0ZmlsdGVyL0tjb25maWcgICAgICAgICAgICAgICB8ICAgNCArDQogbmV0L2lwdjQv bmV0ZmlsdGVyL01ha2VmaWxlICAgICAgICAgICAgICB8ICAgMSArDQogbmV0L2lwdjQvbmV0Zmls dGVyL25mdF9ydF9pcHY0LmMgICAgICAgICB8IDEwOSArKysrKysrKysrKysrKysrKysrKysrKysN CiAzIGZpbGVzIGNoYW5nZWQsIDExNCBpbnNlcnRpb25zKCspDQoNCmRpZmYgLS1naXQgYS9uZXQv aXB2NC9uZXRmaWx0ZXIvS2NvbmZpZyBiL25ldC9pcHY0L25ldGZpbHRlci9LY29uZmlnDQppbmRl eCBkNjEzMzA5Li5jNWVjYjc4IDEwMDY0NA0KLS0tIGEvbmV0L2lwdjQvbmV0ZmlsdGVyL0tjb25m aWcNCisrKyBiL25ldC9pcHY0L25ldGZpbHRlci9LY29uZmlnDQpAQCAtNDIsNiArNDIsMTAgQEAg Y29uZmlnIE5GVF9DSEFJTl9ST1VURV9JUFY0DQogCSAgZmllbGRzIHN1Y2ggYXMgdGhlIHNvdXJj ZSwgZGVzdGluYXRpb24sIHR5cGUgb2Ygc2VydmljZSBhbmQNCiAJICB0aGUgcGFja2V0IG1hcmsu DQogDQorY29uZmlnIE5GVF9SVF9JUFY0DQorCWRlZmF1bHQgTkZUX1JUDQorCXRyaXN0YXRlDQor DQogY29uZmlnIE5GVF9SRUpFQ1RfSVBWNA0KIAlzZWxlY3QgTkZfUkVKRUNUX0lQVjQNCiAJZGVm YXVsdCBORlRfUkVKRUNUDQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvbmV0ZmlsdGVyL01ha2VmaWxl IGIvbmV0L2lwdjQvbmV0ZmlsdGVyL01ha2VmaWxlDQppbmRleCA4NTMzMjhmLi43M2ZhZTU1IDEw MDY0NA0KLS0tIGEvbmV0L2lwdjQvbmV0ZmlsdGVyL01ha2VmaWxlDQorKysgYi9uZXQvaXB2NC9u ZXRmaWx0ZXIvTWFrZWZpbGUNCkBAIC0zMyw2ICszMyw3IEBAIG9iai0kKENPTkZJR19ORl9OQVRf UFJPVE9fR1JFKSArPSBuZl9uYXRfcHJvdG9fZ3JlLm8NCiBvYmotJChDT05GSUdfTkZfVEFCTEVT X0lQVjQpICs9IG5mX3RhYmxlc19pcHY0Lm8NCiBvYmotJChDT05GSUdfTkZUX0NIQUlOX1JPVVRF X0lQVjQpICs9IG5mdF9jaGFpbl9yb3V0ZV9pcHY0Lm8NCiBvYmotJChDT05GSUdfTkZUX0NIQUlO X05BVF9JUFY0KSArPSBuZnRfY2hhaW5fbmF0X2lwdjQubw0KK29iai0kKENPTkZJR19ORlRfUlRf SVBWNCkgKz0gbmZ0X3J0X2lwdjQubw0KIG9iai0kKENPTkZJR19ORlRfUkVKRUNUX0lQVjQpICs9 IG5mdF9yZWplY3RfaXB2NC5vDQogb2JqLSQoQ09ORklHX05GVF9NQVNRX0lQVjQpICs9IG5mdF9t YXNxX2lwdjQubw0KIG9iai0kKENPTkZJR19ORlRfUkVESVJfSVBWNCkgKz0gbmZ0X3JlZGlyX2lw djQubw0KZGlmZiAtLWdpdCBhL25ldC9pcHY0L25ldGZpbHRlci9uZnRfcnRfaXB2NC5jIGIvbmV0 L2lwdjQvbmV0ZmlsdGVyL25mdF9ydF9pcHY0LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRl eCAwMDAwMDAwLi43NDczZTg0DQotLS0gL2Rldi9udWxsDQorKysgYi9uZXQvaXB2NC9uZXRmaWx0 ZXIvbmZ0X3J0X2lwdjQuYw0KQEAgLTAsMCArMSwxMDkgQEANCisvKg0KKyAqIENvcHlyaWdodCAo YykgMjAxNiBBbmRlcnMgSy4gUGVkZXJzZW4gPGFrcEBjb2hhZXNpby5jb20+DQorICoNCisgKiBU aGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k L29yIG1vZGlmeQ0KKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzDQorICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24uDQorICoNCisgKi8NCisNCisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+ DQorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4NCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+DQor I2luY2x1ZGUgPGxpbnV4L25ldGxpbmsuaD4NCisjaW5jbHVkZSA8bGludXgvbmV0ZmlsdGVyLmg+ DQorI2luY2x1ZGUgPGxpbnV4L25ldGZpbHRlci9uZl90YWJsZXMuaD4NCisjaW5jbHVkZSA8bmV0 L3JvdXRlLmg+DQorI2luY2x1ZGUgPG5ldC9uZXRmaWx0ZXIvbmZfdGFibGVzLmg+DQorI2luY2x1 ZGUgPG5ldC9uZXRmaWx0ZXIvbmZ0X3J0Lmg+DQorDQorc3RhdGljIHZvaWQgbmZ0X3J0X2lwdjRf Z2V0X2V2YWwoY29uc3Qgc3RydWN0IG5mdF9leHByICpleHByLA0KKwkJCQkgc3RydWN0IG5mdF9y ZWdzICpyZWdzLA0KKwkJCQkgY29uc3Qgc3RydWN0IG5mdF9wa3RpbmZvICpwa3QpDQorew0KKwlj b25zdCBzdHJ1Y3QgbmZ0X3J0ICpwcml2ID0gbmZ0X2V4cHJfcHJpdihleHByKTsNCisJY29uc3Qg c3RydWN0IHNrX2J1ZmYgKnNrYiA9IHBrdC0+c2tiOw0KKwl1MzIgKmRlc3QgPSAmcmVncy0+ZGF0 YVtwcml2LT5kcmVnXTsNCisNCisJc3dpdGNoIChwcml2LT5rZXkpIHsNCisJY2FzZSBORlRfUlRf TkVYVEhPUDogew0KKwkJY29uc3Qgc3RydWN0IHJ0YWJsZSAqcnQgPSBza2JfcnRhYmxlKHNrYik7 DQorDQorCQlpZiAoIXJ0KQ0KKwkJCWdvdG8gZXJyOw0KKwkJKmRlc3QgPSBydF9uZXh0aG9wKHJ0 LCBpcF9oZHIoc2tiKS0+ZGFkZHIpOw0KKwkJYnJlYWs7DQorCX0NCisJZGVmYXVsdDoNCisJCXJl dHVybiBuZnRfcnRfZ2V0X2V2YWwoZXhwciwgcmVncywgcGt0KTsNCisJfQ0KKw0KKwlyZXR1cm47 DQorZXJyOg0KKwlyZWdzLT52ZXJkaWN0LmNvZGUgPSBORlRfQlJFQUs7DQorfQ0KKw0KK3N0YXRp YyBpbnQgbmZ0X3J0X2lwdjRfZ2V0X2luaXQoY29uc3Qgc3RydWN0IG5mdF9jdHggKmN0eCwNCisJ CQkJY29uc3Qgc3RydWN0IG5mdF9leHByICpleHByLA0KKwkJCQljb25zdCBzdHJ1Y3QgbmxhdHRy ICogY29uc3QgdGJbXSkNCit7DQorCXN0cnVjdCBuZnRfcnQgKnByaXYgPSBuZnRfZXhwcl9wcml2 KGV4cHIpOw0KKwl1bnNpZ25lZCBpbnQgbGVuOw0KKw0KKwlpZiAodGJbTkZUQV9SVF9LRVldID09 IE5VTEwgfHwNCisJICAgIHRiW05GVEFfUlRfRFJFR10gPT0gTlVMTCB8fA0KKwkgICAgdGJbTkZU QV9SVF9GQU1JTFldID09IE5VTEwpDQorCQlyZXR1cm4gLUVJTlZBTDsNCisNCisJcHJpdi0+a2V5 ID0gbnRvaGwobmxhX2dldF9iZTMyKHRiW05GVEFfUlRfS0VZXSkpOw0KKwlzd2l0Y2ggKHByaXYt PmtleSkgew0KKwljYXNlIE5GVF9SVF9ORVhUSE9QOg0KKwkJbGVuID0gc2l6ZW9mKHUzMik7DQor CQlicmVhazsNCisJZGVmYXVsdDoNCisJCXJldHVybiBuZnRfcnRfZ2V0X2luaXQoY3R4LCBleHBy LCB0Yik7DQorCX0NCisNCisJcHJpdi0+ZmFtaWx5ID0gbnRvaGwobmxhX2dldF9iZTMyKHRiW05G VEFfUlRfRkFNSUxZXSkpOw0KKwlpZiAocHJpdi0+ZmFtaWx5ICE9IE5GUFJPVE9fSVBWNCkNCisJ CXJldHVybiAtRUlOVkFMOw0KKw0KKwlwcml2LT5kcmVnID0gbmZ0X3BhcnNlX3JlZ2lzdGVyKHRi W05GVEFfUlRfRFJFR10pOw0KKwlyZXR1cm4gbmZ0X3ZhbGlkYXRlX3JlZ2lzdGVyX3N0b3JlKGN0 eCwgcHJpdi0+ZHJlZywgTlVMTCwNCisJCQkJCSAgIE5GVF9EQVRBX1ZBTFVFLCBsZW4pOw0KK30N CisNCitzdGF0aWMgc3RydWN0IG5mdF9leHByX3R5cGUgbmZ0X3J0X2lwdjRfdHlwZTsNCitzdGF0 aWMgY29uc3Qgc3RydWN0IG5mdF9leHByX29wcyBuZnRfcnRfaXB2NF9nZXRfb3BzID0gew0KKwku dHlwZQkJPSAmbmZ0X3J0X2lwdjRfdHlwZSwNCisJLnNpemUJCT0gTkZUX0VYUFJfU0laRShzaXpl b2Yoc3RydWN0IG5mdF9ydCkpLA0KKwkuZXZhbAkJPSBuZnRfcnRfaXB2NF9nZXRfZXZhbCwNCisJ LmluaXQJCT0gbmZ0X3J0X2lwdjRfZ2V0X2luaXQsDQorCS5kdW1wCQk9IG5mdF9ydF9nZXRfZHVt cCwNCit9Ow0KKw0KK3N0YXRpYyBzdHJ1Y3QgbmZ0X2V4cHJfdHlwZSBuZnRfcnRfaXB2NF90eXBl IF9fcmVhZF9tb3N0bHkgPSB7DQorCS5mYW1pbHkgICAgICAgICA9IE5GUFJPVE9fSVBWNCwNCisJ Lm5hbWUgICAgICAgICAgID0gInJ0IiwNCisJLm9wcwkJPSAmbmZ0X3J0X2lwdjRfZ2V0X29wcywN CisJLnBvbGljeSAgICAgICAgID0gbmZ0X3J0X3BvbGljeSwNCisJLm1heGF0dHIgICAgICAgID0g TkZUQV9SVF9NQVgsDQorCS5vd25lciAgICAgICAgICA9IFRISVNfTU9EVUxFLA0KK307DQorDQor c3RhdGljIGludCBfX2luaXQgbmZ0X3J0X2lwdjRfbW9kdWxlX2luaXQodm9pZCkNCit7DQorCXJl dHVybiBuZnRfcmVnaXN0ZXJfZXhwcigmbmZ0X3J0X2lwdjRfdHlwZSk7DQorfQ0KKw0KK3N0YXRp YyB2b2lkIF9fZXhpdCBuZnRfcnRfaXB2NF9tb2R1bGVfZXhpdCh2b2lkKQ0KK3sNCisJbmZ0X3Vu cmVnaXN0ZXJfZXhwcigmbmZ0X3J0X2lwdjRfdHlwZSk7DQorfQ0KKw0KK21vZHVsZV9pbml0KG5m dF9ydF9pcHY0X21vZHVsZV9pbml0KTsNCittb2R1bGVfZXhpdChuZnRfcnRfaXB2NF9tb2R1bGVf ZXhpdCk7DQorDQorTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOw0KK01PRFVMRV9BVVRIT1IoIkFuZGVy cyBLLiBQZWRlcnNlbiA8YWtwQGNvaGFlc2lvLmNvbT4iKTsNCitNT0RVTEVfQUxJQVNfTkZUX0FG X0VYUFIoQUZfSU5FVCwgInJ0Iik7DQo=