From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Anders K. Pedersen | Cohaesio" Subject: [PATCH v2 nf-next 5/5] netfilter: nft: rt nexthop for inet family Date: Wed, 19 Oct 2016 18:41:44 +0000 Message-ID: <1476902504.1161.24.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]:60871 "EHLO mail.cohaesio.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S943606AbcJSSlr (ORCPT ); Wed, 19 Oct 2016 14:41:47 -0400 In-Reply-To: <1476902043.1161.14.camel@cohaesio.com> Content-Language: en-US Content-ID: Sender: netfilter-devel-owner@vger.kernel.org List-ID: RnJvbTogQW5kZXJzIEsuIFBlZGVyc2VuIDxha3BAY29oYWVzaW8uY29tPg0KDQpBZGQgbmZ0YWJs ZXMgaW5ldCBmYW1pbHkgc3VwcG9ydCBmb3IgYW4gcnQgbmV4dGhvcCBleHByZXNzaW9uIGFsbG93 aW5nDQp1c2FnZSBvZiB0aGUgcm91dGluZyBuZXh0aG9wIChpLmUuIHRoZSBkaXJlY3RseSBjb25u ZWN0ZWQgSVAgYWRkcmVzcyB0aGF0DQphbiBvdXRnb2luZyBwYWNrZXQgaXMgc2VudCB0bykgZm9y IG1hdGNoaW5nIG9yIGFjY291bnRpbmcsIGVnLg0KDQogIyBuZnQgYWRkIHJ1bGUgaW5ldCBmaWx0 ZXIgcG9zdHJvdXRpbmcgXA0KCWV0aGVyIHR5cGUgaXA2IFwNCglpcDYgZGFkZHIgZmQwMTo6LzE2 IHJ0IGlwNiBuZXh0aG9wICE9IGZkMDA6OjEgZHJvcA0KDQpUaGlzIHdpbGwgZHJvcCBhbnkgdHJh ZmZpYyB0byBmZDAxOjovMTYgdGhhdCBpcyBub3Qgcm91dGVkIHZpYSBmZDAwOjoxLg0KTm90ZSB0 aGF0ICJldGhlciB0eXBlIiBtdXN0IGJlIHNwZWNpZmllZCBleHBsaWNpdGx5LCB3aGVuIHJ0IG5l eHRob3AgaXMNCnVzZWQgZnJvbSBpbmV0IGZhbWlseSB0YWJsZXMuDQoNCiAjIG5mdCBhZGQgcnVs ZSBpbmV0IGZpbHRlciBwb3N0cm91dGluZyBcDQoJZXRoZXIgdHlwZSBpcCBcDQoJZmxvdyB0YWJs ZSBhY2N0IHsgcnQgaXAgbmV4dGhvcCB0aW1lb3V0IDYwMHMgY291bnRlciB9DQogIyBuZnQgYWRk IHJ1bGUgaW5ldCBmaWx0ZXIgcG9zdHJvdXRpbmcgXA0KCWV0aGVyIHR5cGUgaXA2IFwNCglmbG93 IHRhYmxlIGFjY3QgeyBydCBpcDYgbmV4dGhvcDYgdGltZW91dCA2MDBzIGNvdW50ZXIgfQ0KDQpU aGVzZSBydWxlcyBjb3VudCBvdXRnb2luZyB0cmFmZmljIHBlciBuZXh0aG9wLiBOb3RlIHRoYXQg dGhlIHRpbWVvdXQNCnJlbGVhc2VzIGFuIGVudHJ5IGlmIG5vIHRyYWZmaWMgaXMgc2VlbiBmb3Ig dGhpcyBuZXh0aG9wIHdpdGhpbiAxMCBtaW51dGVzLg0KDQpTaWduZWQtb2ZmLWJ5OiBBbmRlcnMg Sy4gUGVkZXJzZW4gPGFrcEBjb2hhZXNpby5jb20+DQotLS0NCnYyDQotIHJlbW92ZSBuZnRfcnRf aW5ldF9zZWxlY3Rfb3BzDQoNCiBuZXQvbmV0ZmlsdGVyL0tjb25maWcgICAgICAgICAgICAgICAg ICAgIHwgICA1ICsrDQogbmV0L25ldGZpbHRlci9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICB8 ICAgMSArDQogbmV0L25ldGZpbHRlci9uZnRfcnRfaW5ldC5jICAgICAgICAgICAgICB8IDE0MiAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQogMyBmaWxlcyBjaGFuZ2VkLCAxNDggaW5z ZXJ0aW9ucygrKQ0KDQpkaWZmIC0tZ2l0IGEvbmV0L25ldGZpbHRlci9LY29uZmlnIGIvbmV0L25l dGZpbHRlci9LY29uZmlnDQppbmRleCBlOGQ1NmQ5Li40MGQ2ZTBmIDEwMDY0NA0KLS0tIGEvbmV0 L25ldGZpbHRlci9LY29uZmlnDQorKysgYi9uZXQvbmV0ZmlsdGVyL0tjb25maWcNCkBAIC00ODAs NiArNDgwLDExIEBAIGNvbmZpZyBORlRfTUVUQQ0KIAkgIFRoaXMgb3B0aW9uIGFkZHMgdGhlICJy dCIgZXhwcmVzc2lvbiB0aGF0IHlvdSBjYW4gdXNlIHRvIG1hdGNoDQogCSAgcGFja2V0IHJvdXRp bmcgaW5mb3JtYXRpb24gc3VjaCBhcyB0aGUgcGFja2V0IG5leHRob3AuDQogDQorY29uZmlnIE5G VF9SVF9JTkVUDQorCWRlcGVuZHMgb24gTkZfVEFCTEVTX0lORVQNCisJZGVmYXVsdCBORlRfUlQN CisJdHJpc3RhdGUNCisNCiBjb25maWcgTkZUX05VTUdFTg0KIAl0cmlzdGF0ZSAiTmV0ZmlsdGVy IG5mX3RhYmxlcyBudW1iZXIgZ2VuZXJhdG9yIG1vZHVsZSINCiAJaGVscA0KZGlmZiAtLWdpdCBh L25ldC9uZXRmaWx0ZXIvTWFrZWZpbGUgYi9uZXQvbmV0ZmlsdGVyL01ha2VmaWxlDQppbmRleCBj MjNjM2M4Li5mM2EwYzU5IDEwMDY0NA0KLS0tIGEvbmV0L25ldGZpbHRlci9NYWtlZmlsZQ0KKysr IGIvbmV0L25ldGZpbHRlci9NYWtlZmlsZQ0KQEAgLTgyLDYgKzgyLDcgQEAgb2JqLSQoQ09ORklH X05GX1RBQkxFU19ORVRERVYpCSs9IG5mX3RhYmxlc19uZXRkZXYubw0KIG9iai0kKENPTkZJR19O RlRfRVhUSERSKQkrPSBuZnRfZXh0aGRyLm8NCiBvYmotJChDT05GSUdfTkZUX01FVEEpCQkrPSBu ZnRfbWV0YS5vDQogb2JqLSQoQ09ORklHX05GVF9SVCkJCSs9IG5mdF9ydC5vDQorb2JqLSQoQ09O RklHX05GVF9SVF9JTkVUKQkrPSBuZnRfcnRfaW5ldC5vDQogb2JqLSQoQ09ORklHX05GVF9OVU1H RU4pCSs9IG5mdF9udW1nZW4ubw0KIG9iai0kKENPTkZJR19ORlRfQ1QpCQkrPSBuZnRfY3Qubw0K IG9iai0kKENPTkZJR19ORlRfTElNSVQpCQkrPSBuZnRfbGltaXQubw0KZGlmZiAtLWdpdCBhL25l dC9uZXRmaWx0ZXIvbmZ0X3J0X2luZXQuYyBiL25ldC9uZXRmaWx0ZXIvbmZ0X3J0X2luZXQuYw0K bmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLmM4ZjJkNmENCi0tLSAvZGV2L251 bGwNCisrKyBiL25ldC9uZXRmaWx0ZXIvbmZ0X3J0X2luZXQuYw0KQEAgLTAsMCArMSwxNDIgQEAN CisvKg0KKyAqIENvcHlyaWdodCAoYykgMjAxNiBBbmRlcnMgSy4gUGVkZXJzZW4gPGFrcEBjb2hh ZXNpby5jb20+DQorICoNCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KKyAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzDQorICogcHVibGlz aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uDQorICoNCisgKi8NCisNCisjaW5j bHVkZSA8bGludXgva2VybmVsLmg+DQorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4NCisjaW5jbHVk ZSA8bGludXgvbW9kdWxlLmg+DQorI2luY2x1ZGUgPGxpbnV4L25ldGxpbmsuaD4NCisjaW5jbHVk ZSA8bGludXgvbmV0ZmlsdGVyLmg+DQorI2luY2x1ZGUgPGxpbnV4L25ldGZpbHRlci9uZl90YWJs ZXMuaD4NCisjaW5jbHVkZSA8bmV0L2lwNl9yb3V0ZS5oPg0KKyNpbmNsdWRlIDxuZXQvcm91dGUu aD4NCisjaW5jbHVkZSA8bmV0L25ldGZpbHRlci9uZl90YWJsZXMuaD4NCisjaW5jbHVkZSA8bmV0 L25ldGZpbHRlci9uZnRfcnQuaD4NCisNCitzdGF0aWMgdm9pZCBuZnRfcnRfaW5ldF9nZXRfZXZh bChjb25zdCBzdHJ1Y3QgbmZ0X2V4cHIgKmV4cHIsDQorCQkJCSBzdHJ1Y3QgbmZ0X3JlZ3MgKnJl Z3MsDQorCQkJCSBjb25zdCBzdHJ1Y3QgbmZ0X3BrdGluZm8gKnBrdCkNCit7DQorCWNvbnN0IHN0 cnVjdCBuZnRfcnQgKnByaXYgPSBuZnRfZXhwcl9wcml2KGV4cHIpOw0KKwljb25zdCBzdHJ1Y3Qg c2tfYnVmZiAqc2tiID0gcGt0LT5za2I7DQorCXUzMiAqZGVzdCA9ICZyZWdzLT5kYXRhW3ByaXYt PmRyZWddOw0KKw0KKwlpZiAodW5saWtlbHkocGt0LT5wZiAhPSBwcml2LT5mYW1pbHkpKSB7DQor CQlXQVJOX09OQ0UoMSwgIkFkZHJlc3MgZmFtaWxpZXMgZG8gbm90IG1hdGNoXG4iKTsNCisJCWdv dG8gZXJyOw0KKwl9DQorDQorCXN3aXRjaCAocGt0LT5wZikgew0KKwljYXNlIE5GUFJPVE9fSVBW NDoNCisJCXN3aXRjaCAocHJpdi0+a2V5KSB7DQorCQljYXNlIE5GVF9SVF9ORVhUSE9QOiB7DQor CQkJY29uc3Qgc3RydWN0IHJ0YWJsZSAqcnQgPSBza2JfcnRhYmxlKHNrYik7DQorDQorCQkJaWYg KCFydCkNCisJCQkJZ290byBlcnI7DQorCQkJKmRlc3QgPSBydF9uZXh0aG9wKHJ0LCBpcF9oZHIo c2tiKS0+ZGFkZHIpOw0KKwkJCWJyZWFrOw0KKwkJfQ0KKwkJZGVmYXVsdDoNCisJCQlnb3RvIG91 dDsNCisJCX0NCisJCWJyZWFrOw0KKwljYXNlIE5GUFJPVE9fSVBWNjoNCisJCXN3aXRjaCAocHJp di0+a2V5KSB7DQorCQljYXNlIE5GVF9SVF9ORVhUSE9QOiB7DQorCQkJc3RydWN0IHJ0Nl9pbmZv ICpydCA9DQorCQkJCQkoc3RydWN0IHJ0Nl9pbmZvICopc2tiX2RzdChza2IpOw0KKw0KKwkJCWlm ICghcnQpDQorCQkJCWdvdG8gZXJyOw0KKwkJCW1lbWNweShkZXN0LCBydDZfbmV4dGhvcChydCwg JmlwdjZfaGRyKHNrYiktPmRhZGRyKSwNCisJCQkgICAgICAgc2l6ZW9mKHN0cnVjdCBpbjZfYWRk cikpOw0KKwkJCWJyZWFrOw0KKwkJfQ0KKwkJZGVmYXVsdDoNCisJCQlnb3RvIG91dDsNCisJCX0N CisJCWJyZWFrOw0KKwl9DQorDQorCXJldHVybjsNCitvdXQ6DQorCXJldHVybiBuZnRfcnRfZ2V0 X2V2YWwoZXhwciwgcmVncywgcGt0KTsNCitlcnI6DQorCXJlZ3MtPnZlcmRpY3QuY29kZSA9IE5G VF9CUkVBSzsNCit9DQorDQorc3RhdGljIGludCBuZnRfcnRfaW5ldF9nZXRfaW5pdChjb25zdCBz dHJ1Y3QgbmZ0X2N0eCAqY3R4LA0KKwkJCQljb25zdCBzdHJ1Y3QgbmZ0X2V4cHIgKmV4cHIsDQor CQkJCWNvbnN0IHN0cnVjdCBubGF0dHIgKiBjb25zdCB0YltdKQ0KK3sNCisJc3RydWN0IG5mdF9y dCAqcHJpdiA9IG5mdF9leHByX3ByaXYoZXhwcik7DQorCXVuc2lnbmVkIGludCBsZW47DQorDQor CWlmICh0YltORlRBX1JUX0tFWV0gPT0gTlVMTCB8fA0KKwkgICAgdGJbTkZUQV9SVF9EUkVHXSA9 PSBOVUxMIHx8DQorCSAgICB0YltORlRBX1JUX0ZBTUlMWV0gPT0gTlVMTCkNCisJCXJldHVybiAt RUlOVkFMOw0KKw0KKwlwcml2LT5rZXkgPSBudG9obChubGFfZ2V0X2JlMzIodGJbTkZUQV9SVF9L RVldKSk7DQorCXByaXYtPmZhbWlseSA9IG50b2hsKG5sYV9nZXRfYmUzMih0YltORlRBX1JUX0ZB TUlMWV0pKTsNCisJc3dpdGNoIChwcml2LT5rZXkpIHsNCisJY2FzZSBORlRfUlRfTkVYVEhPUDoN CisJCXN3aXRjaCAocHJpdi0+ZmFtaWx5KSB7DQorCQljYXNlIE5GUFJPVE9fSVBWNDoNCisJCQls ZW4gPSBzaXplb2YodTMyKTsNCisJCQlicmVhazsNCisJCWNhc2UgTkZQUk9UT19JUFY2Og0KKwkJ CWxlbiA9IHNpemVvZihzdHJ1Y3QgaW42X2FkZHIpOw0KKwkJCWJyZWFrOw0KKwkJfQ0KKwkJbGVu ID0gc2l6ZW9mKHUzMik7DQorCQlicmVhazsNCisJZGVmYXVsdDoNCisJCXJldHVybiBuZnRfcnRf Z2V0X2luaXQoY3R4LCBleHByLCB0Yik7DQorCX0NCisNCisJcHJpdi0+ZHJlZyA9IG5mdF9wYXJz ZV9yZWdpc3Rlcih0YltORlRBX1JUX0RSRUddKTsNCisJcmV0dXJuIG5mdF92YWxpZGF0ZV9yZWdp c3Rlcl9zdG9yZShjdHgsIHByaXYtPmRyZWcsIE5VTEwsDQorCQkJCQkgICBORlRfREFUQV9WQUxV RSwgbGVuKTsNCit9DQorDQorc3RhdGljIHN0cnVjdCBuZnRfZXhwcl90eXBlIG5mdF9ydF9pbmV0 X3R5cGU7DQorc3RhdGljIGNvbnN0IHN0cnVjdCBuZnRfZXhwcl9vcHMgbmZ0X3J0X2luZXRfZ2V0 X29wcyA9IHsNCisJLnR5cGUJCT0gJm5mdF9ydF9pbmV0X3R5cGUsDQorCS5zaXplCQk9IE5GVF9F WFBSX1NJWkUoc2l6ZW9mKHN0cnVjdCBuZnRfcnQpKSwNCisJLmV2YWwJCT0gbmZ0X3J0X2luZXRf Z2V0X2V2YWwsDQorCS5pbml0CQk9IG5mdF9ydF9pbmV0X2dldF9pbml0LA0KKwkuZHVtcAkJPSBu ZnRfcnRfZ2V0X2R1bXAsDQorfTsNCisNCitzdGF0aWMgc3RydWN0IG5mdF9leHByX3R5cGUgbmZ0 X3J0X2luZXRfdHlwZSBfX3JlYWRfbW9zdGx5ID0gew0KKwkuZmFtaWx5ICAgICAgICAgPSBORlBS T1RPX0lORVQsDQorCS5uYW1lICAgICAgICAgICA9ICJydCIsDQorCS5vcHMJCT0gJm5mdF9ydF9p bmV0X2dldF9vcHMsDQorCS5wb2xpY3kgICAgICAgICA9IG5mdF9ydF9wb2xpY3ksDQorCS5tYXhh dHRyICAgICAgICA9IE5GVEFfUlRfTUFYLA0KKwkub3duZXIgICAgICAgICAgPSBUSElTX01PRFVM RSwNCit9Ow0KKw0KK3N0YXRpYyBpbnQgX19pbml0IG5mdF9ydF9pbmV0X21vZHVsZV9pbml0KHZv aWQpDQorew0KKwlyZXR1cm4gbmZ0X3JlZ2lzdGVyX2V4cHIoJm5mdF9ydF9pbmV0X3R5cGUpOw0K K30NCisNCitzdGF0aWMgdm9pZCBfX2V4aXQgbmZ0X3J0X2luZXRfbW9kdWxlX2V4aXQodm9pZCkN Cit7DQorCW5mdF91bnJlZ2lzdGVyX2V4cHIoJm5mdF9ydF9pbmV0X3R5cGUpOw0KK30NCisNCitt b2R1bGVfaW5pdChuZnRfcnRfaW5ldF9tb2R1bGVfaW5pdCk7DQorbW9kdWxlX2V4aXQobmZ0X3J0 X2luZXRfbW9kdWxlX2V4aXQpOw0KKw0KK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsNCitNT0RVTEVf QVVUSE9SKCJBbmRlcnMgSy4gUGVkZXJzZW4gPGFrcEBjb2hhZXNpby5jb20+Iik7DQorTU9EVUxF X0FMSUFTX05GVF9BRl9FWFBSKDEsICJydCIpOw0K