From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jarno Rajahalme Subject: [PATCH nf-next v7 4/7] openvswitch: Find existing conntrack entry after upcall. Date: Fri, 5 Feb 2016 17:41:02 -0800 Message-ID: <1454722865-59558-5-git-send-email-jarno@ovn.org> References: <1454722865-59558-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, netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: netfilter-devel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Return-path: In-Reply-To: <1454722865-59558-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 bnZzd2l0Y2gvY29ubnRyYWNrLmMgfCAxMTEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5OCBpbnNlcnRpb25zKCspLCAxMyBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvb3BlbnZzd2l0Y2gvY29ubnRyYWNrLmMgYi9uZXQv b3BlbnZzd2l0Y2gvY29ubnRyYWNrLmMKaW5kZXggNTFkZjRlYi4uYzQ5ZTE3MSAxMDA2NDQKLS0t IGEvbmV0L29wZW52c3dpdGNoL2Nvbm50cmFjay5jCisrKyBiL25ldC9vcGVudnN3aXRjaC9jb25u dHJhY2suYwpAQCAtMzQ5LDE2ICszNDksMTAzIEBAIG92c19jdF9leHBlY3RfZmluZChzdHJ1Y3Qg bmV0ICpuZXQsIGNvbnN0IHN0cnVjdCBuZl9jb25udHJhY2tfem9uZSAqem9uZSwKIAlyZXR1cm4g X19uZl9jdF9leHBlY3RfZmluZChuZXQsIHpvbmUsICZ0dXBsZSk7CiB9CiAKKy8qIFRoaXMgcmVw bGljYXRlcyBsb2dpYyBmcm9tIG5mX2Nvbm50cmFja19jb3JlLmMgdGhhdCBpcyBub3QgZXhwb3J0 ZWQuICovCitzdGF0aWMgZW51bSBpcF9jb25udHJhY2tfaW5mbworb3ZzX2N0X2dldF9pbmZvKGNv bnN0IHN0cnVjdCBuZl9jb25udHJhY2tfdHVwbGVfaGFzaCAqaCkKK3sKKwljb25zdCBzdHJ1Y3Qg bmZfY29ubiAqY3QgPSBuZl9jdF90dXBsZWhhc2hfdG9fY3RyYWNrKGgpOworCisJaWYgKE5GX0NU X0RJUkVDVElPTihoKSA9PSBJUF9DVF9ESVJfUkVQTFkpCisJCXJldHVybiBJUF9DVF9FU1RBQkxJ U0hFRF9SRVBMWTsKKwkvKiBPbmNlIHdlJ3ZlIGhhZCB0d28gd2F5IGNvbW1zLCBhbHdheXMgRVNU QUJMSVNIRUQuICovCisJaWYgKHRlc3RfYml0KElQU19TRUVOX1JFUExZX0JJVCwgJmN0LT5zdGF0 dXMpKQorCQlyZXR1cm4gSVBfQ1RfRVNUQUJMSVNIRUQ7CisJaWYgKHRlc3RfYml0KElQU19FWFBF Q1RFRF9CSVQsICZjdC0+c3RhdHVzKSkKKwkJcmV0dXJuIElQX0NUX1JFTEFURUQ7CisJcmV0dXJu IElQX0NUX05FVzsKK30KKworLyogRmluZCBhbiBleGlzdGluZyBjb25udHJhY2sgZW50cnkgZm9y IHdoaWNoIHRoaXMgcGFja2V0IHdhcyBhbHJlYWR5IGFwcGxpZWQKKyAqIHRvLiAgVGhpcyBpcyBv bmx5IGNhbGxlZCB3aGVuIHRoZXJlIGlzIGV2aWRlbmNlIHRoYXQgdGhlIHBhY2tldCB3YXMgYWxy ZWFkeQorICogdHJhY2tlZCBhbmQgY29tbWl0ZWQsIGJ1dCB3ZSBsb3N0IHRoZSBjdCByZWZlcmVu Y2UgZHVlIHRvIGFuIHVzZXJzcGFjZQorICogdXBjYWxsLiBUaGlzIG1lYW5zIHRoYXQgb24gZW50 cnkgc2tiLT5uZmN0IGlzIE5VTEwuCisgKiBPbiBzdWNjZXNzLCByZXR1cm5zIGNvbm50cmFjayBw dHIsIHNldHMgc2tiLT5uZmN0IGFuZCBjdGluZm8uCisgKiBNdXN0IGJlIGNhbGxlZCByY3VfcmVh ZF9sb2NrKCllZC4gKi8KK3N0YXRpYyBzdHJ1Y3QgbmZfY29ubiAqCitvdnNfY3RfZmluZF9leGlz dGluZyhzdHJ1Y3QgbmV0ICpuZXQsIGNvbnN0IHN0cnVjdCBuZl9jb25udHJhY2tfem9uZSAqem9u ZSwKKwkJICAgICB1X2ludDhfdCBsM251bSwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKKwkJICAgICBl bnVtIGlwX2Nvbm50cmFja19pbmZvICpjdGluZm8pCit7CisJc3RydWN0IG5mX2Nvbm50cmFja19s M3Byb3RvICpsM3Byb3RvOworCXN0cnVjdCBuZl9jb25udHJhY2tfbDRwcm90byAqbDRwcm90bzsK KwlzdHJ1Y3QgbmZfY29ubnRyYWNrX3R1cGxlIHR1cGxlOworCXN0cnVjdCBuZl9jb25udHJhY2tf dHVwbGVfaGFzaCAqaDsKKwlzdHJ1Y3QgbmZfY29ubiAqY3Q7CisJdW5zaWduZWQgaW50IGRhdGFv ZmY7CisJdV9pbnQ4X3QgcHJvdG9udW07CisKKwlCVUdfT04oc2tiLT5uZmN0ICE9IE5VTEwpOwor CisJbDNwcm90byA9IF9fbmZfY3RfbDNwcm90b19maW5kKGwzbnVtKTsKKwlpZiAoIWwzcHJvdG8p IHsKKwkJcHJfZGVidWcoIm92c19jdF9maW5kX2V4aXN0aW5nOiBDYW4ndCBnZXQgbDNwcm90b1xu Iik7CisJCXJldHVybiBOVUxMOworCX0KKwlpZiAobDNwcm90by0+Z2V0X2w0cHJvdG8oc2tiLCBz a2JfbmV0d29ya19vZmZzZXQoc2tiKSwgJmRhdGFvZmYsCisJCQkJICZwcm90b251bSkgPD0gMCkg eworCQlwcl9kZWJ1Zygib3ZzX2N0X2ZpbmRfZXhpc3Rpbmc6IENhbid0IGdldCBwcm90b251bVxu Iik7CisJCXJldHVybiBOVUxMOworCX0KKwlsNHByb3RvID0gX19uZl9jdF9sNHByb3RvX2ZpbmQo bDNudW0sIHByb3RvbnVtKTsKKwlpZiAoIWw0cHJvdG8pIHsKKwkJcHJfZGVidWcoIm92c19jdF9m aW5kX2V4aXN0aW5nOiBDYW4ndCBnZXQgbDRwcm90b1xuIik7CisJCXJldHVybiBOVUxMOworCX0K KwlpZiAoIW5mX2N0X2dldF90dXBsZShza2IsIHNrYl9uZXR3b3JrX29mZnNldChza2IpLCBkYXRh b2ZmLCBsM251bSwKKwkJCSAgICAgcHJvdG9udW0sIG5ldCwgJnR1cGxlLCBsM3Byb3RvLCBsNHBy b3RvKSkgeworCQlwcl9kZWJ1Zygib3ZzX2N0X2ZpbmRfZXhpc3Rpbmc6IENhbid0IGdldCB0dXBs ZVxuIik7CisJCXJldHVybiBOVUxMOworCX0KKworCS8qIGxvb2sgZm9yIHR1cGxlIG1hdGNoICov CisJaCA9IG5mX2Nvbm50cmFja19maW5kX2dldChuZXQsIHpvbmUsICZ0dXBsZSk7CisJaWYgKCFo KQorCQlyZXR1cm4gTlVMTDsgICAvKiBOb3QgZm91bmQuICovCisKKwljdCA9IG5mX2N0X3R1cGxl aGFzaF90b19jdHJhY2soaCk7CisKKwkqY3RpbmZvID0gb3ZzX2N0X2dldF9pbmZvKGgpOworCWlm ICgqY3RpbmZvID09IElQX0NUX05FVykgeworCQkvKiBUaGlzIHNob3VsZCBub3QgaGFwcGVuLiAq LworCQlXQVJOX09OQ0UoMSwgIm92c19jdF9maW5kX2V4aXN0aW5nOiBuZXcgcGFja2V0IGZvciAl cFxuIiwgY3QpOworCX0KKwlza2ItPm5mY3QgPSAmY3QtPmN0X2dlbmVyYWw7CisJc2tiLT5uZmN0 aW5mbyA9ICpjdGluZm87CisJcmV0dXJuIGN0OworfQorCiAvKiBEZXRlcm1pbmUgd2hldGhlciBz a2ItPm5mY3QgaXMgZXF1YWwgdG8gdGhlIHJlc3VsdCBvZiBjb25udHJhY2sgbG9va3VwLiAqLwot c3RhdGljIGJvb2wgc2tiX25mY3RfY2FjaGVkKGNvbnN0IHN0cnVjdCBuZXQgKm5ldCwgY29uc3Qg c3RydWN0IHNrX2J1ZmYgKnNrYiwKLQkJCSAgICBjb25zdCBzdHJ1Y3Qgb3ZzX2Nvbm50cmFja19p bmZvICppbmZvKQorc3RhdGljIGJvb2wgc2tiX25mY3RfY2FjaGVkKHN0cnVjdCBuZXQgKm5ldCwK KwkJCSAgICBjb25zdCBzdHJ1Y3Qgc3dfZmxvd19rZXkgKmtleSwKKwkJCSAgICBjb25zdCBzdHJ1 Y3Qgb3ZzX2Nvbm50cmFja19pbmZvICppbmZvLAorCQkJICAgIHN0cnVjdCBza19idWZmICpza2Ip CiB7CiAJZW51bSBpcF9jb25udHJhY2tfaW5mbyBjdGluZm87CiAJc3RydWN0IG5mX2Nvbm4gKmN0 OwogCiAJY3QgPSBuZl9jdF9nZXQoc2tiLCAmY3RpbmZvKTsKKwkvKiBJZiBubyBjdCwgY2hlY2sg aWYgd2UgaGF2ZSBldmlkZW5jZSB0aGF0IGFuIGV4aXN0aW5nIGNvbm50cmFjayBlbnRyeQorCSAq IG1pZ2h0IGJlIGZvdW5kIGZvciB0aGlzIHNrYi4gIFRoaXMgaGFwcGVucyB3aGVuIHdlIGxvc2Ug YSBza2ItPm5mY3QKKwkgKiBkdWUgdG8gYW4gdXBjYWxsLiAgSWYgdGhlIGNvbm5lY3Rpb24gd2Fz IG5vdCBjb25maXJtZWQsIGl0IGlzIG5vdAorCSAqIGNhY2hlZCBhbmQgbmVlZHMgdG8gYmUgcnVu IHRocm91Z2ggY29ubnRyYWNrIGFnYWluLiAqLworCWlmICghY3QgJiYga2V5LT5jdC5zdGF0ZSAm IE9WU19DU19GX1RSQUNLRUQKKwkgICAgJiYgIShrZXktPmN0LnN0YXRlICYgT1ZTX0NTX0ZfSU5W QUxJRCkKKwkgICAgJiYga2V5LT5jdC56b25lID09IGluZm8tPnpvbmUuaWQpCisJCWN0ID0gb3Zz X2N0X2ZpbmRfZXhpc3RpbmcobmV0LCAmaW5mby0+em9uZSwgaW5mby0+ZmFtaWx5LCBza2IsCisJ CQkJCSAgJmN0aW5mbyk7CiAJaWYgKCFjdCkKIAkJcmV0dXJuIGZhbHNlOworCiAJaWYgKCFuZXRf ZXEobmV0LCByZWFkX3BuZXQoJmN0LT5jdF9uZXQpKSkKIAkJcmV0dXJuIGZhbHNlOwogCWlmICgh bmZfY3Rfem9uZV9lcXVhbF9hbnkoaW5mby0+Y3QsIG5mX2N0X3pvbmUoY3QpKSkKQEAgLTM4Nyw3 ICs0NzQsNyBAQCBzdGF0aWMgaW50IF9fb3ZzX2N0X2xvb2t1cChzdHJ1Y3QgbmV0ICpuZXQsIHN0 cnVjdCBzd19mbG93X2tleSAqa2V5LAogCSAqIGFjdHVhbGx5IHJ1biB0aGUgcGFja2V0IHRocm91 Z2ggY29ubnRyYWNrIHR3aWNlIHVubGVzcyBpdCdzIGZvciBhCiAJICogZGlmZmVyZW50IHpvbmUu CiAJICovCi0JaWYgKCFza2JfbmZjdF9jYWNoZWQobmV0LCBza2IsIGluZm8pKSB7CisJaWYgKCFz a2JfbmZjdF9jYWNoZWQobmV0LCBrZXksIGluZm8sIHNrYikpIHsKIAkJc3RydWN0IG5mX2Nvbm4g KnRtcGwgPSBpbmZvLT5jdDsKIAogCQkvKiBBc3NvY2lhdGUgc2tiIHdpdGggc3BlY2lmaWVkIHpv bmUuICovCkBAIC00MjEsNiArNTA4LDEzIEBAIHN0YXRpYyBpbnQgb3ZzX2N0X2xvb2t1cChzdHJ1 Y3QgbmV0ICpuZXQsIHN0cnVjdCBzd19mbG93X2tleSAqa2V5LAogewogCXN0cnVjdCBuZl9jb25u dHJhY2tfZXhwZWN0ICpleHA7CiAKKwkvKiBJZiB3ZSBwYXNzIGFuIGV4cGVjdGVkIHBhY2tldCB0 aHJvdWdoIG5mX2Nvbm50cmFja19pbigpIHRoZQorCSAqIGV4cGVjdGlhdGlvbiB3aWxsIGJlIHJl bW92ZWQsIGJ1dCB0aGUgcGFja2V0IGNvdWxkIHN0aWxsIGJlIGxvc3QgaW4KKwkgKiB1cGNhbGwg cHJvY2Vzc2luZy4gIFRvIHByZXZlbnQgdGhpcyBmcm9tIGhhcHBlbmluZyB3ZSBwZXJmb3JtIGFu CisJICogZXhwbGljaXQgZXhwZWN0YXRpb24gbG9va3VwLiAgRXhwZWN0ZWQgY29ubmVjdGlvbnMg YXJlIGFsd2F5cyBuZXcsCisJICogYW5kIHdpbGwgYmUgcGFzc2VkIHRocm91Z2ggY29ubnRyYWNr IG9ubHkgd2hlbiB0aGV5IGFyZSBjb21taXR0ZWQsCisJICogYXMgaXQgaXMgT0sgdG8gcmVtb3Zl IHRoZSBleHBlY3RhdGlvbiBhdCB0aGF0IHRpbWUuCisJICovCiAJZXhwID0gb3ZzX2N0X2V4cGVj dF9maW5kKG5ldCwgJmluZm8tPnpvbmUsIGluZm8tPmZhbWlseSwgc2tiKTsKIAlpZiAoZXhwKSB7 CiAJCXU4IHN0YXRlOwpAQCAtNDQzLDIxICs1MzcsMTIgQEAgc3RhdGljIGludCBvdnNfY3RfY29t bWl0KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHN3X2Zsb3dfa2V5ICprZXksCiAJCQkgY29uc3Qg c3RydWN0IG92c19jb25udHJhY2tfaW5mbyAqaW5mbywKIAkJCSBzdHJ1Y3Qgc2tfYnVmZiAqc2ti KQogewotCXU4IHN0YXRlOwogCWludCBlcnI7CiAKLQlzdGF0ZSA9IGtleS0+Y3Quc3RhdGU7Ci0J aWYgKGtleS0+Y3Quem9uZSA9PSBpbmZvLT56b25lLmlkICYmCi0JICAgICgoc3RhdGUgJiBPVlNf Q1NfRl9UUkFDS0VEKSAmJiAhKHN0YXRlICYgT1ZTX0NTX0ZfTkVXKSkpIHsKLQkJLyogUHJldmlv dXMgbG9va3VwIGhhcyBzaG93biB0aGF0IHRoaXMgY29ubmVjdGlvbiBpcyBhbHJlYWR5Ci0JCSAq IHRyYWNrZWQgYW5kIGNvbW1pdHRlZC4gU2tpcCBjb21taXR0aW5nLgotCQkgKi8KLQkJcmV0dXJu IDA7Ci0JfQotCiAJZXJyID0gX19vdnNfY3RfbG9va3VwKG5ldCwga2V5LCBpbmZvLCBza2IpOwog CWlmIChlcnIpCiAJCXJldHVybiBlcnI7CisJLyogVGhpcyBpcyBhIG5vLW9wIGlmIHRoZSBjb25u ZWN0aW9uIGhhcyBhbHJlYWR5IGJlZW4gY29uZmlybWVkLiAqLwogCWlmIChuZl9jb25udHJhY2tf Y29uZmlybShza2IpICE9IE5GX0FDQ0VQVCkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKLS0gCjIuMS40 CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkZXYgbWFp bGluZyBsaXN0CmRldkBvcGVudnN3aXRjaC5vcmcKaHR0cDovL29wZW52c3dpdGNoLm9yZy9tYWls bWFuL2xpc3RpbmZvL2Rldgo=