From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andy Zhou Subject: [RFC: add openvswitch actions using BPF 5/9] bpf: add the first BPF program. Date: Wed, 4 Feb 2015 14:49:19 -0800 Message-ID: <1423090163-19902-6-git-send-email-azhou@nicira.com> References: <1423090163-19902-1-git-send-email-azhou@nicira.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: netdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: dev-yBygre7rU0SM8Zsap4Y0gw@public.gmane.org Return-path: In-Reply-To: <1423090163-19902-1-git-send-email-azhou-l0M0P4e3n4LQT0dZR+AlfA@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 QWRkZWQgYSBCUEYgaW1wbGVtZW50YXRpb24gb2Ygb3V0cHV0IGFjdGlvbi4gVGhlIGludGVudGlv biBpcyB0byBoYXZlCmFsbCBPVlMgcmVsYXRlZCBCUEYgcHJvZ3JhbXMgbGl2ZSB1bmRlciB0aGUg J2JwZicgZm9sZGVyLgoKU2lnbmVkLW9mZi1ieTogQW5keSBaaG91IDxhemhvdUBuaWNpcmEuY29t PgotLS0KIE1ha2VmaWxlLmFtICAgICAgICAgICB8ICAxICsKIGJwZi9hdXRvbWFrZS5tayAgICAg ICB8IDI3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKwogYnBmL2JwZi1zaGFyZWQuaCAgICAg IHwgMTIgKysrKysrKysrKysrCiBicGYvb3ZzLWFjdGlvbnMuYyAgICAgfCAxMyArKysrKysrKysr KysrCiBicGYvb3ZzLWJwZi1oZWxwZXJzLmggfCAzNSArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCA4OCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9k ZSAxMDA2NDQgYnBmL2F1dG9tYWtlLm1rCiBjcmVhdGUgbW9kZSAxMDA2NDQgYnBmL2JwZi1zaGFy ZWQuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGJwZi9vdnMtYWN0aW9ucy5jCiBjcmVhdGUgbW9kZSAx MDA2NDQgYnBmL292cy1icGYtaGVscGVycy5oCgpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUuYW0gYi9N YWtlZmlsZS5hbQppbmRleCBlZThmZTAzLi5kY2U5MDU2IDEwMDY0NAotLS0gYS9NYWtlZmlsZS5h bQorKysgYi9NYWtlZmlsZS5hbQpAQCAtMzU0LDYgKzM1NCw3IEBAIGRpc3QtZG9jczoKIAogaW5j bHVkZSBtNC9hdXRvbWFrZS5tawogaW5jbHVkZSBsaWIvYXV0b21ha2UubWsKK2luY2x1ZGUgYnBm L2F1dG9tYWtlLm1rCiBpbmNsdWRlIG9mcHJvdG8vYXV0b21ha2UubWsKIGluY2x1ZGUgdXRpbGl0 aWVzL2F1dG9tYWtlLm1rCiBpbmNsdWRlIHRlc3RzL2F1dG9tYWtlLm1rCmRpZmYgLS1naXQgYS9i cGYvYXV0b21ha2UubWsgYi9icGYvYXV0b21ha2UubWsKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uMjBmYzc3NgotLS0gL2Rldi9udWxsCisrKyBiL2JwZi9hdXRvbWFrZS5tawpA QCAtMCwwICsxLDI3IEBACisjIENvcHlyaWdodCAoQykgMjAxNSBOaWNpcmEsIEluYy4KKyMKKyMg Q29weWluZyBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoaXMgZmlsZSwgd2l0aCBvciB3aXRob3V0IG1v ZGlmaWNhdGlvbiwKKyMgYXJlIHBlcm1pdHRlZCBpbiBhbnkgbWVkaXVtIHdpdGhvdXQgcm95YWx0 eSBwcm92aWRlZCB0aGUgY29weXJpZ2h0CisjIG5vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHBy ZXNlcnZlZC4gIFRoaXMgZmlsZSBpcyBvZmZlcmVkIGFzLWlzLAorIyB3aXRob3V0IHdhcnJhbnR5 IG9mIGFueSBraW5kLgorCitpZiBMSU5VWAorc2Jpbl9QUk9HUkFNUyArPSBicGYvb3ZzLWFjdGlv bnMuYnBmCisKKworRVhUUkFfRElTVCArPSAkKHNyY2RpcikvYnBmL292cy1icGYtaGVscGVycy5o IFwKKwkgICAgICAkKHNyY2RpcikvYnBmL2JwZi1zaGFyZWQuaCBcCisJICAgICAgJChzcmNkaXIp L2JwZi9vdnMtYWN0aW9ucy5jCisKK0RFUF9GSUxFUyAgPSAkKHNyY2RpcikvYnBmL292cy1icGYt aGVscGVycy5oIFwKKwkgICAgICQoc3JjZGlyKS9icGYvYnBmLXNoYXJlZC5oIFwKKyAgICAgICAg ICAgICAkKHNyY2RpcikvZGF0YXBhdGgvbGludXgvY29tcGF0L2luY2x1ZGUvbGludXgvb3BlbnZz d2l0Y2guaAorCitCUEZfSU5DTFVERVM9LUkuIC1JJChzcmNkaXIpL2RhdGFwYXRoL2xpbnV4L2Nv bXBhdC9pbmNsdWRlIC1JL3Vzci9pbmNsdWRlCisKK2JwZi9vdnMtYWN0aW9ucy5icGY6ICQoc3Jj ZGlyKS9icGYvb3ZzLWFjdGlvbnMuYyAkKERFUF9GSUxFUykKKwkkKEFNX1ZfR0VOKWNsYW5nIC1E SEFWRV9DT05GSUdfSCAkKEJQRl9JTkNMVURFUykgJChOT1NURElOQ19GTEFHUykgXAorCQkkKEFN X0NGTEFHUykgJChFWFRSQV9DRkxBR1MpIC1Xbm8tdW51c2VkLXZhbHVlIC1Xbm8tcG9pbnRlci1z aWduIFwKKwkJLU8yIC1lbWl0LWxsdm0gLWMgJDwgLW8gLXwgJChMTEMpIC1maWxldHlwZT1vYmog LW8gJEAKKworZW5kaWYKZGlmZiAtLWdpdCBhL2JwZi9icGYtc2hhcmVkLmggYi9icGYvYnBmLXNo YXJlZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3MTBjM2MKLS0tIC9k ZXYvbnVsbAorKysgYi9icGYvYnBmLXNoYXJlZC5oCkBAIC0wLDAgKzEsMTIgQEAKKworLyogU2hh cmVkIGRhdGEgc3RydWN0dXJlcyBiZXR3ZWVuIGJwZiBhbmQgQyBwcm9ncmFtcy4gKi8KKworLyog YSBoZWxwZXIgc3RydWN0dXJlIHVzZWQgYnkgZUJQRiBDIHByb2dyYW0KKyAqIHRvIGRlc2NyaWJl IG1hcCBhdHRyaWJ1dGVzIHRvIGVsZl9icGYgbG9hZGVyCisgKi8KK3N0cnVjdCBicGZfbWFwX2Rl ZiB7CisJdW5zaWduZWQgaW50IHR5cGU7CisJdW5zaWduZWQgaW50IGtleV9zaXplOworCXVuc2ln bmVkIGludCB2YWx1ZV9zaXplOworCXVuc2lnbmVkIGludCBtYXhfZW50cmllczsKK307CmRpZmYg LS1naXQgYS9icGYvb3ZzLWFjdGlvbnMuYyBiL2JwZi9vdnMtYWN0aW9ucy5jCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1YTBhNzEKLS0tIC9kZXYvbnVsbAorKysgYi9icGYv b3ZzLWFjdGlvbnMuYwpAQCAtMCwwICsxLDEzIEBACisjaW5jbHVkZSA8Y29uZmlnLmg+CisjaW5j bHVkZSAib3ZzLWJwZi1oZWxwZXJzLmgiCisKK2ludCBvdXRwdXRfYWN0aW9uKHN0cnVjdCBvdnNf YnBmX2FjdGlvbl9jdHh0ICpjdHh0KTsKKworU0VDKCJvdnMvb3V0cHV0IikKK2ludAorb3V0cHV0 X2FjdGlvbihzdHJ1Y3Qgb3ZzX2JwZl9hY3Rpb25fY3R4dCAqY3R4dCkKK3sKKwlyZXR1cm4gb3Zz X2JwZl9oZWxwZXJfb3V0cHV0KGN0eHQtPnNrYiwgY3R4dC0+YXJnMCk7Cit9CisKK2NoYXIgX2xp Y2Vuc2VbXSBTRUMoImxpY2Vuc2UiKSA9ICJHUEwiOwpkaWZmIC0tZ2l0IGEvYnBmL292cy1icGYt aGVscGVycy5oIGIvYnBmL292cy1icGYtaGVscGVycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmJhMTAwODQKLS0tIC9kZXYvbnVsbAorKysgYi9icGYvb3ZzLWJwZi1oZWxw ZXJzLmgKQEAgLTAsMCArMSwzNSBAQAorI2lmbmRlZiBfX09WU19CUEZfSEVMUEVSU19ICisjZGVm aW5lIF9fT1ZTX0JQRl9IRUxQRVJTX0gKKworI2luY2x1ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUg PGxpbnV4L29wZW52c3dpdGNoLmg+CitzdHJ1Y3Qgc2tfYnVmZjsKKworLyogaGVscGVyIG1hY3Jv IHRvIHBsYWNlIHByb2dyYW1zLCBtYXBzLCBsaWNlbnNlIGluCisgKiBkaWZmZXJlbnQgc2VjdGlv bnMgaW4gZWxmX2JwZiBmaWxlLiBTZWN0aW9uIG5hbWVzCisgKiBhcmUgaW50ZXJwcmV0ZWQgYnkg ZWxmX2JwZiBsb2FkZXIKKyAqLworI2RlZmluZSBTRUMoTkFNRSkgX19hdHRyaWJ1dGVfXygoc2Vj dGlvbihOQU1FKSwgdXNlZCkpCisKKy8qIGhlbHBlciBmdW5jdGlvbnMgY2FsbGVkIGZyb20gZUJQ RiBwcm9ncmFtcyB3cml0dGVuIGluIEMgKi8KK3N0YXRpYyB2b2lkICooKmJwZl9tYXBfbG9va3Vw X2VsZW0pKHZvaWQgKm1hcCwgdm9pZCAqa2V5KSA9CisJKHZvaWQgKikgT1ZTX0JQRl9GVU5DX21h cF9sb29rdXBfZWxlbTsKK3N0YXRpYyBpbnQgKCpicGZfbWFwX3VwZGF0ZV9lbGVtKSh2b2lkICpt YXAsIHZvaWQgKmtleSwgdm9pZCAqdmFsdWUsCisJCQkJICB1bnNpZ25lZCBsb25nIGxvbmcgZmxh Z3MpID0KKwkodm9pZCAqKSBPVlNfQlBGX0ZVTkNfbWFwX3VwZGF0ZV9lbGVtOworc3RhdGljIGlu dCAoKmJwZl9tYXBfZGVsZXRlX2VsZW0pKHZvaWQgKm1hcCwgdm9pZCAqa2V5KSA9CisJKHZvaWQg KikgT1ZTX0JQRl9GVU5DX21hcF9kZWxldGVfZWxlbTsKK3N0YXRpYyBpbnQgKCpvdnNfYnBmX2hl bHBlcl9vdXRwdXQpKHN0cnVjdCBza19idWZmICpza2IsIHVpbnQzMl90IG91dF9wb3J0KSA9CisJ KHZvaWQgKikgT1ZTX0JQRl9GVU5DX291dHB1dDsKKworLyogbGx2bSBidWlsdGluIGZ1bmN0aW9u cyB0aGF0IGVCUEYgQyBwcm9ncmFtIG1heSB1c2UgdG8KKyAqIGVtaXQgQlBGX0xEX0FCUyBhbmQg QlBGX0xEX0lORCBpbnN0cnVjdGlvbnMKKyAqLwordW5zaWduZWQgbG9uZyBsb25nIGxvYWRfYnl0 ZSh2b2lkICpza2IsCisJCQkgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBvZmYpIGFzbSgibGx2bS5i cGYubG9hZC5ieXRlIik7Cit1bnNpZ25lZCBsb25nIGxvbmcgbG9hZF9oYWxmKHZvaWQgKnNrYiwK KwkJCSAgICAgdW5zaWduZWQgbG9uZyBsb25nIG9mZikgYXNtKCJsbHZtLmJwZi5sb2FkLmhhbGYi KTsKK3Vuc2lnbmVkIGxvbmcgbG9uZyBsb2FkX3dvcmQodm9pZCAqc2tiLAorCQkJICAgICB1bnNp Z25lZCBsb25nIGxvbmcgb2ZmKSBhc20oImxsdm0uYnBmLmxvYWQud29yZCIpOworCisjZW5kaWYK LS0gCjEuOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpkZXYgbWFpbGluZyBsaXN0CmRldkBvcGVudnN3aXRjaC5vcmcKaHR0cDovL29wZW52c3dpdGNo Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Rldgo=