From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jarno Rajahalme Subject: [PATCH net-next v3 5/8] openvswitch: Find existing conntrack entry after upcall. Date: Wed, 25 Nov 2015 16:08:18 -0800 Message-ID: <1448496501-109561-6-git-send-email-jarno@ovn.org> References: <1448496501-109561-1-git-send-email-jarno@ovn.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: dev-yBygre7rU0TnMu66kgdUjQ@public.gmane.org, netfilter-devel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Return-path: In-Reply-To: <1448496501-109561-1-git-send-email-jarno-LZ6Gd1LRuIk@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces-yBygre7rU0TnMu66kgdUjQ@public.gmane.org Sender: "dev" List-Id: netdev.vger.kernel.org QWRkIGEgbmV3IGZ1bmN0aW9uIG92c19jdF9maW5kX2V4aXN0aW5nKCkgdG8gZmluZCBhbiBleGlz dGluZwpjb25udHJhY2sgZW50cnkgZm9yIHdoaWNoIHRoaXMgcGFja2V0IHdhcyBhbHJlYWR5IGFw cGxpZWQgdG8uICBUaGlzIGlzCm9ubHkgdG8gYmUgY2FsbGVkIHdoZW4gdGhlcmUgaXMgZXZpZGVu Y2UgdGhhdCB0aGUgcGFja2V0IHdhcyBhbHJlYWR5CnRyYWNrZWQgYW5kIGNvbW1pdHRlZCwgYnV0 IHdlIGxvc3QgdGhlIGN0IHJlZmVyZW5jZSBkdWUgdG8gYW4KdXNlcnNwYWNlIHVwY2FsbC4KCm92 c19jdF9maW5kX2V4aXN0aW5nKCkgaXMgY2FsbGVkIGZyb20gc2tiX25mY3RfY2FjaGVkKCksIHdo aWNoIGNhbiBub3cKaGlkZSB0aGUgZmFjdCB0aGF0IHRoZSBjdCByZWZlcmVuY2UgbWF5IGhhdmUg YmVlbiBsb3N0IGR1ZSB0byBhbgp1cGNhbGwuICBUaGlzIGFsbG93cyBvdnNfY3RfY29tbWl0KCkg dG8gYmUgc2ltcGxpZmllZC4KClRoaXMgcGF0Y2ggaXMgbmVlZGVkIGJ5IGxhdGVyICJvcGVudnN3 aXRjaDogSW50ZXJmYWNlIHdpdGggTkFUIiBwYXRjaCwKYXMgd2UgbmVlZCB0byBiZSBhYmxlIHRv IHBhc3MgdGhlIHBhY2tldCB0aHJvdWdoIE5BVCB1c2luZyB0aGUKb3JpZ2luYWwgY3QgcmVmZXJl bmNlIGFsc28gYWZ0ZXIgdGhlIHJlZmVyZW5jZSBpcyBsb3N0IGFmdGVyIGFuCnVwY2FsbC4KClNp Z25lZC1vZmYtYnk6IEphcm5vIFJhamFoYWxtZSA8amFybm9Ab3ZuLm9yZz4KLS0tCiBuZXQvb3Bl bnZzd2l0Y2gvY29ubnRyYWNrLmMgfCA5NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4MiBpbnNlcnRpb25zKCspLCAxMyBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvb3BlbnZzd2l0Y2gvY29ubnRyYWNrLmMgYi9uZXQv b3BlbnZzd2l0Y2gvY29ubnRyYWNrLmMKaW5kZXggMTBmNGE2ZS4uMGMzNzFkMCAxMDA2NDQKLS0t IGEvbmV0L29wZW52c3dpdGNoL2Nvbm50cmFjay5jCisrKyBiL25ldC9vcGVudnN3aXRjaC9jb25u dHJhY2suYwpAQCAtMzU5LDE2ICszNTksODcgQEAgb3ZzX2N0X2V4cGVjdF9maW5kKHN0cnVjdCBu ZXQgKm5ldCwgY29uc3Qgc3RydWN0IG5mX2Nvbm50cmFja196b25lICp6b25lLAogCXJldHVybiBf X25mX2N0X2V4cGVjdF9maW5kKG5ldCwgem9uZSwgJnR1cGxlKTsKIH0KIAorLyogRmluZCBhbiBl eGlzdGluZyBjb25udHJhY2sgZW50cnkgZm9yIHdoaWNoIHRoaXMgcGFja2V0IHdhcyBhbHJlYWR5 IGFwcGxpZWQKKyAqIHRvLiAgVGhpcyBpcyBvbmx5IGNhbGxlZCB3aGVuIHRoZXJlIGlzIGV2aWRl bmNlIHRoYXQgdGhlIHBhY2tldCB3YXMgYWxyZWFkeQorICogdHJhY2tlZCBhbmQgY29tbWl0ZWQs IGJ1dCB3ZSBsb3N0IHRoZSBjdCByZWZlcmVuY2UgZHVlIHRvIGFuIHVzZXJzcGFjZQorICogdXBj YWxsLiBUaGlzIG1lYW5zIHRoYXQgb24gZW50cnkgc2tiLT5uZmN0IGlzIE5VTEwuCisgKiBPbiBz dWNjZXNzLCByZXR1cm5zIGNvbm50cmFjayBwdHIsIHNldHMgc2tiLT5uZmN0IGFuZCBjdGluZm8u CisgKiBNdXN0IGJlIGNhbGxlZCByY3VfcmVhZF9sb2NrKCllZC4gKi8KK3N0YXRpYyBzdHJ1Y3Qg bmZfY29ubiAqCitvdnNfY3RfZmluZF9leGlzdGluZyhzdHJ1Y3QgbmV0ICpuZXQsIGNvbnN0IHN0 cnVjdCBuZl9jb25udHJhY2tfem9uZSAqem9uZSwKKwkJICAgICB1X2ludDhfdCBsM251bSwgc3Ry dWN0IHNrX2J1ZmYgKnNrYiwKKwkJICAgICBlbnVtIGlwX2Nvbm50cmFja19pbmZvICpjdGluZm8p Cit7CisJc3RydWN0IG5mX2Nvbm50cmFja19sM3Byb3RvICpsM3Byb3RvOworCXN0cnVjdCBuZl9j b25udHJhY2tfbDRwcm90byAqbDRwcm90bzsKKwlzdHJ1Y3QgbmZfY29ubnRyYWNrX3R1cGxlIHR1 cGxlOworCXN0cnVjdCBuZl9jb25udHJhY2tfdHVwbGVfaGFzaCAqaDsKKwlzdHJ1Y3QgbmZfY29u biAqY3Q7CisJdW5zaWduZWQgaW50IGRhdGFvZmY7CisJdV9pbnQ4X3QgcHJvdG9udW07CisKKwlC VUdfT04oc2tiLT5uZmN0ICE9IE5VTEwpOworCisJbDNwcm90byA9IF9fbmZfY3RfbDNwcm90b19m aW5kKGwzbnVtKTsKKwlpZiAoIWwzcHJvdG8pIHsKKwkJcHJfZGVidWcoIm92c19jdF9maW5kX2V4 aXN0aW5nOiBDYW4ndCBnZXQgbDNwcm90b1xuIik7CisJCXJldHVybiBOVUxMOworCX0KKwlpZiAo bDNwcm90by0+Z2V0X2w0cHJvdG8oc2tiLCBza2JfbmV0d29ya19vZmZzZXQoc2tiKSwgJmRhdGFv ZmYsCisJCQkJICZwcm90b251bSkgPD0gMCkgeworCQlwcl9kZWJ1Zygib3ZzX2N0X2ZpbmRfZXhp c3Rpbmc6IENhbid0IGdldCBwcm90b251bVxuIik7CisJCXJldHVybiBOVUxMOworCX0KKwlsNHBy b3RvID0gX19uZl9jdF9sNHByb3RvX2ZpbmQobDNudW0sIHByb3RvbnVtKTsKKwlpZiAoIWw0cHJv dG8pIHsKKwkJcHJfZGVidWcoIm92c19jdF9maW5kX2V4aXN0aW5nOiBDYW4ndCBnZXQgbDRwcm90 b1xuIik7CisJCXJldHVybiBOVUxMOworCX0KKwlpZiAoIW5mX2N0X2dldF90dXBsZShza2IsIHNr Yl9uZXR3b3JrX29mZnNldChza2IpLCBkYXRhb2ZmLCBsM251bSwKKwkJCSAgICAgcHJvdG9udW0s IG5ldCwgJnR1cGxlLCBsM3Byb3RvLCBsNHByb3RvKSkgeworCQlwcl9kZWJ1Zygib3ZzX2N0X2Zp bmRfZXhpc3Rpbmc6IENhbid0IGdldCB0dXBsZVxuIik7CisJCXJldHVybiBOVUxMOworCX0KKwor CS8qIGxvb2sgZm9yIHR1cGxlIG1hdGNoICovCisJaCA9IG5mX2Nvbm50cmFja19maW5kX2dldChu ZXQsIHpvbmUsICZ0dXBsZSk7CisJaWYgKCFoKQorCQlyZXR1cm4gTlVMTDsgICAvKiBOb3QgZm91 bmQuICovCisKKwljdCA9IG5mX2N0X3R1cGxlaGFzaF90b19jdHJhY2soaCk7CisKKwkqY3RpbmZv ID0gbmZfY3RfZ2V0X2luZm8oaCk7CisJaWYgKCpjdGluZm8gPT0gSVBfQ1RfTkVXKSB7CisJCS8q IFRoaXMgc2hvdWxkIG5vdCBoYXBwZW4uICovCisJCVdBUk5fT05DRSgxLCAib3ZzX2N0X2ZpbmRf ZXhpc3Rpbmc6IG5ldyBwYWNrZXQgZm9yICVwXG4iLCBjdCk7CisJfQorCXNrYi0+bmZjdCA9ICZj dC0+Y3RfZ2VuZXJhbDsKKwlza2ItPm5mY3RpbmZvID0gKmN0aW5mbzsKKwlyZXR1cm4gY3Q7Cit9 CisKIC8qIERldGVybWluZSB3aGV0aGVyIHNrYi0+bmZjdCBpcyBlcXVhbCB0byB0aGUgcmVzdWx0 IG9mIGNvbm50cmFjayBsb29rdXAuICovCi1zdGF0aWMgYm9vbCBza2JfbmZjdF9jYWNoZWQoY29u c3Qgc3RydWN0IG5ldCAqbmV0LCBjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAotCQkJICAgIGNv bnN0IHN0cnVjdCBvdnNfY29ubnRyYWNrX2luZm8gKmluZm8pCitzdGF0aWMgYm9vbCBza2JfbmZj dF9jYWNoZWQoc3RydWN0IG5ldCAqbmV0LAorCQkJICAgIGNvbnN0IHN0cnVjdCBzd19mbG93X2tl eSAqa2V5LAorCQkJICAgIGNvbnN0IHN0cnVjdCBvdnNfY29ubnRyYWNrX2luZm8gKmluZm8sCisJ CQkgICAgc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKIAllbnVtIGlwX2Nvbm50cmFja19pbmZvIGN0 aW5mbzsKIAlzdHJ1Y3QgbmZfY29ubiAqY3Q7CiAKIAljdCA9IG5mX2N0X2dldChza2IsICZjdGlu Zm8pOworCS8qIElmIG5vIGN0LCBjaGVjayBpZiB3ZSBoYXZlIGV2aWRlbmNlIHRoYXQgYW4gZXhp c3RpbmcgY29ubnRyYWNrIGVudHJ5CisJICogbWlnaHQgYmUgZm91bmQgZm9yIHRoaXMgc2tiLiAg VGhpcyBoYXBwZW5zIHdoZW4gd2UgbG9zZSBhIHNrYi0+bmZjdAorCSAqIGR1ZSB0byBhbiB1cGNh bGwuICBJZiB0aGUgY29ubmVjdGlvbiB3YXMgbm90IGNvbmZpcm1lZCwgaXQgaXMgbm90CisJICog Y2FjaGVkIGFuZCBuZWVkcyB0byBiZSBydW4gdGhyb3VnaCBjb25udHJhY2sgYWdhaW4uICovCisJ aWYgKCFjdCAmJiBrZXktPmN0LnN0YXRlICYgT1ZTX0NTX0ZfVFJBQ0tFRAorCSAgICAmJiAhKGtl eS0+Y3Quc3RhdGUgJiBPVlNfQ1NfRl9JTlZBTElEKQorCSAgICAmJiBrZXktPmN0LnpvbmUgPT0g aW5mby0+em9uZS5pZCkKKwkJY3QgPSBvdnNfY3RfZmluZF9leGlzdGluZyhuZXQsICZpbmZvLT56 b25lLCBpbmZvLT5mYW1pbHksIHNrYiwKKwkJCQkJICAmY3RpbmZvKTsKIAlpZiAoIWN0KQogCQly ZXR1cm4gZmFsc2U7CisKIAlpZiAoIW5ldF9lcShuZXQsIHJlYWRfcG5ldCgmY3QtPmN0X25ldCkp KQogCQlyZXR1cm4gZmFsc2U7CiAJaWYgKCFuZl9jdF96b25lX2VxdWFsX2FueShpbmZvLT5jdCwg bmZfY3Rfem9uZShjdCkpKQpAQCAtMzk3LDcgKzQ2OCw3IEBAIHN0YXRpYyBpbnQgX19vdnNfY3Rf bG9va3VwKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXksCiAJICogYWN0 dWFsbHkgcnVuIHRoZSBwYWNrZXQgdGhyb3VnaCBjb25udHJhY2sgdHdpY2UgdW5sZXNzIGl0J3Mg Zm9yIGEKIAkgKiBkaWZmZXJlbnQgem9uZS4KIAkgKi8KLQlpZiAoIXNrYl9uZmN0X2NhY2hlZChu ZXQsIHNrYiwgaW5mbykpIHsKKwlpZiAoIXNrYl9uZmN0X2NhY2hlZChuZXQsIGtleSwgaW5mbywg c2tiKSkgewogCQlzdHJ1Y3QgbmZfY29ubiAqdG1wbCA9IGluZm8tPmN0OwogCiAJCS8qIEFzc29j aWF0ZSBza2Igd2l0aCBzcGVjaWZpZWQgem9uZS4gKi8KQEAgLTQzMSw2ICs1MDIsMTMgQEAgc3Rh dGljIGludCBvdnNfY3RfbG9va3VwKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHN3X2Zsb3dfa2V5 ICprZXksCiB7CiAJc3RydWN0IG5mX2Nvbm50cmFja19leHBlY3QgKmV4cDsKIAorCS8qIElmIHdl IHBhc3MgYW4gZXhwZWN0ZWQgcGFja2V0IHRocm91Z2ggbmZfY29ubnRyYWNrX2luKCkgdGhlCisJ ICogZXhwZWN0aWF0aW9uIHdpbGwgYmUgcmVtb3ZlZCwgYnV0IHRoZSBwYWNrZXQgY291bGQgc3Rp bGwgYmUgbG9zdCBpbgorCSAqIHVwY2FsbCBwcm9jZXNzaW5nLiAgVG8gcHJldmVudCB0aGlzIGZy b20gaGFwcGVuaW5nIHdlIHBlcmZvcm0gYW4KKwkgKiBleHBsaWNpdCBleHBlY3RhdGlvbiBsb29r dXAuICBFeHBlY3RlZCBjb25uZWN0aW9ucyBhcmUgYWx3YXlzIG5ldywKKwkgKiBhbmQgd2lsbCBi ZSBwYXNzZWQgdGhyb3VnaCBjb25udHJhY2sgb25seSB3aGVuIHRoZXkgYXJlIGNvbW1pdHRlZCwK KwkgKiBhcyBpdCBpcyBPSyB0byByZW1vdmUgdGhlIGV4cGVjdGF0aW9uIGF0IHRoYXQgdGltZS4K KwkgKi8KIAlleHAgPSBvdnNfY3RfZXhwZWN0X2ZpbmQobmV0LCAmaW5mby0+em9uZSwgaW5mby0+ ZmFtaWx5LCBza2IpOwogCWlmIChleHApIHsKIAkJdTggc3RhdGU7CkBAIC00NTMsMjEgKzUzMSwx MiBAQCBzdGF0aWMgaW50IG92c19jdF9jb21taXQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc3df Zmxvd19rZXkgKmtleSwKIAkJCSBjb25zdCBzdHJ1Y3Qgb3ZzX2Nvbm50cmFja19pbmZvICppbmZv LAogCQkJIHN0cnVjdCBza19idWZmICpza2IpCiB7Ci0JdTggc3RhdGU7CiAJaW50IGVycjsKIAot CXN0YXRlID0ga2V5LT5jdC5zdGF0ZTsKLQlpZiAoa2V5LT5jdC56b25lID09IGluZm8tPnpvbmUu aWQgJiYKLQkgICAgKChzdGF0ZSAmIE9WU19DU19GX1RSQUNLRUQpICYmICEoc3RhdGUgJiBPVlNf Q1NfRl9ORVcpKSkgewotCQkvKiBQcmV2aW91cyBsb29rdXAgaGFzIHNob3duIHRoYXQgdGhpcyBj b25uZWN0aW9uIGlzIGFscmVhZHkKLQkJICogdHJhY2tlZCBhbmQgY29tbWl0dGVkLiBTa2lwIGNv bW1pdHRpbmcuCi0JCSAqLwotCQlyZXR1cm4gMDsKLQl9Ci0KIAllcnIgPSBfX292c19jdF9sb29r dXAobmV0LCBrZXksIGluZm8sIHNrYik7CiAJaWYgKGVycikKIAkJcmV0dXJuIGVycjsKKwkvKiBU aGlzIGlzIGEgbm8tb3AgaWYgdGhlIGNvbm5lY3Rpb24gaGFzIGFscmVhZHkgYmVlbiBjb25maXJt ZWQuICovCiAJaWYgKG5mX2Nvbm50cmFja19jb25maXJtKHNrYikgIT0gTkZfQUNDRVBUKQogCQly ZXR1cm4gLUVJTlZBTDsKIAotLSAKMi4xLjQKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmRldiBtYWlsaW5nIGxpc3QKZGV2QG9wZW52c3dpdGNoLm9yZwpo dHRwOi8vb3BlbnZzd2l0Y2gub3JnL21haWxtYW4vbGlzdGluZm8vZGV2Cg==