Date: Wed, 02 Apr 2014 20:48:18 +0900 From: Midori Kato <katoon@sfc.wide.ad.jp> To: net@freebsd.org, "Eggert, Lars" <lars@netapp.com> Subject: ECN marking implenetation for dummynet Message-ID: <533BF902.7010506@sfc.wide.ad.jp>
next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --------------050400010400020600020602 Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit Hi FreeBSD developers, I'm Midori Kato. I was working with Lars Eggert about DCTCP. I would like to share our patch for an ECN marking mechanism on dummynet, which I used for DCTCP testing. My implementation allows to set ECN with RED as an AQM scheme. The following command is an example: $ ipfw pipe 9999 config red 1/10/10/0.0 ecn Our implementation includes both DCTCP and RFC 3168 ECN marking methodology. If you are interested in our ECN implemention, I'm very happy to receive your review! (I have already submitted my patch to Luigi and hope he will merge ours in near future.) Regards, -- Midori --------------050400010400020600020602 Content-Type: text/plain; charset=UTF-8; name="dctcpecn-dummy.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="dctcpecn-dummy.patch" ZGlmZiAtLWdpdCBhL3NiaW4vaXBmdy9kdW1teW5ldC5jIGIvc2Jpbi9pcGZ3L2R1bW15bmV0 LmMKaW5kZXggMjhkYzJjNy4uY2I2Mjg1MyAxMDA2NDQKLS0tIGEvc2Jpbi9pcGZ3L2R1bW15 bmV0LmMKKysrIGIvc2Jpbi9pcGZ3L2R1bW15bmV0LmMKQEAgLTU2LDYgKzU2LDcgQEAgc3Rh dGljIHN0cnVjdCBfc194IGR1bW15bmV0X3BhcmFtc1tdID0gewogCXsgInNjaGVkX21hc2si LAkJVE9LX1NDSEVEX01BU0sgfSwKIAl7ICJmbG93X21hc2siLAkJVE9LX0ZMT1dfTUFTSyB9 LAogCXsgImRyb3B0YWlsIiwJCVRPS19EUk9QVEFJTCB9LAorCXsgImVjbiIsCQlUT0tfRUNO IH0sCiAJeyAicmVkIiwJCVRPS19SRUQgfSwKIAl7ICJncmVkIiwJCVRPS19HUkVEIH0sCiAJ eyAiYnciLAkJCVRPS19CVyB9LApAQCAtMjM5LDcgKzI0MCw3IEBAIHByaW50X2Zsb3dzZXRf cGFybXMoc3RydWN0IGRuX2ZzICpmcywgY2hhciAqcHJlZml4KQogCWVsc2UKIAkJcGxyWzBd ID0gJ1wwJzsKIAotCWlmIChmcy0+ZmxhZ3MgJiBETl9JU19SRUQpCS8qIFJFRCBwYXJhbWV0 ZXJzICovCisJaWYgKGZzLT5mbGFncyAmIEROX0lTX1JFRCkgewkvKiBSRUQgcGFyYW1ldGVy cyAqLwogCQlzcHJpbnRmKHJlZCwKIAkJICAgICJcblx0ICVjUkVEIHdfcSAlZiBtaW5fdGgg JWQgbWF4X3RoICVkIG1heF9wICVmIiwKIAkJICAgIChmcy0+ZmxhZ3MgJiBETl9JU19HRU5U TEVfUkVEKSA/ICdHJyA6ICcgJywKQEAgLTI0Nyw3ICsyNDgsOSBAQCBwcmludF9mbG93c2V0 X3Bhcm1zKHN0cnVjdCBkbl9mcyAqZnMsIGNoYXIgKnByZWZpeCkKIAkJICAgIGZzLT5taW5f dGgsCiAJCSAgICBmcy0+bWF4X3RoLAogCQkgICAgMS4wICogZnMtPm1heF9wIC8gKGRvdWJs ZSkoMSA8PCBTQ0FMRV9SRUQpKTsKLQllbHNlCisJCWlmIChmcy0+ZmxhZ3MgJiBETl9JU19F Q04pCisJCQlzdHJuY2F0KHJlZCwgIiAoZWNuKSIsIDYpOworCX0gZWxzZQogCQlzcHJpbnRm KHJlZCwgImRyb3B0YWlsIik7CiAKIAlpZiAocHJlZml4WzBdKSB7CkBAIC0xMDQ2LDEzICsx MDQ5LDE3IEBAIGVuZF9tYXNrOgogCQkJfQogCQkJaWYgKChlbmQgPSBzdHJzZXAoJmF2WzBd LCAiLyIpKSkgewogCQkJICAgIGRvdWJsZSBtYXhfcCA9IHN0cnRvZChlbmQsIE5VTEwpOwot CQkJICAgIGlmIChtYXhfcCA+IDEgfHwgbWF4X3AgPD0gMCkKLQkJCQllcnJ4KEVYX0RBVEFF UlIsICIwIDwgbWF4X3AgPD0gMSIpOworCQkJICAgIGlmIChtYXhfcCA+IDEgfHwgbWF4X3Ag PCAwKQorCQkJCWVycngoRVhfREFUQUVSUiwgIjAgPD0gbWF4X3AgPD0gMSIpOwogCQkJICAg IGZzLT5tYXhfcCA9IChpbnQpKG1heF9wICogKDEgPDwgU0NBTEVfUkVEKSk7CiAJCQl9CiAJ CQlhYy0tOyBhdisrOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBUT0tfRUNOOgorCQkJZnMtPmZs YWdzIHw9IEROX0lTX0VDTjsKKwkJCWJyZWFrOworCiAJCWNhc2UgVE9LX0RST1BUQUlMOgog CQkJTkVFRChmcywgImRyb3B0YWlsIGlzIG9ubHkgZm9yIGZsb3dzZXRzIik7CiAJCQlmcy0+ ZmxhZ3MgJj0gfihETl9JU19SRUR8RE5fSVNfR0VOVExFX1JFRCk7CkBAIC0xMTc1LDEzICsx MTgyLDIwIEBAIGVuZF9tYXNrOgogCQkJZXJyeChFWF9EQVRBRVJSLCAiMiA8PSBxdWV1ZSBz aXplIDw9ICVsZCIsIGxpbWl0KTsKIAkgICAgfQogCisJICAgIGlmICgoZnMtPmZsYWdzICYg RE5fSVNfRUNOKSAmJiAhKGZzLT5mbGFncyAmIEROX0lTX1JFRCkpCisJCWVycngoRVhfVVNB R0UsICJlbmFibGUgcmVkL2dyZWQgZm9yIEVDTiIpOworCiAJICAgIGlmIChmcy0+ZmxhZ3Mg JiBETl9JU19SRUQpIHsKIAkJc2l6ZV90IGxlbjsKIAkJaW50IGxvb2t1cF9kZXB0aCwgYXZn X3BrdF9zaXplOwogCi0JCWlmIChmcy0+bWluX3RoID49IGZzLT5tYXhfdGgpCisJCWlmICgh KGZzLT5mbGFncyAmIEROX0lTX0VDTikgJiYgKGZzLT5taW5fdGggPj0gZnMtPm1heF90aCkp CiAJCSAgICBlcnJ4KEVYX0RBVEFFUlIsICJtaW5fdGggJWQgbXVzdCBiZSA8IHRoYW4gbWF4 X3RoICVkIiwKIAkJCWZzLT5taW5fdGgsIGZzLT5tYXhfdGgpOworCQllbHNlIGlmICgoZnMt PmZsYWdzICYgRE5fSVNfRUNOKSAmJiAoZnMtPm1pbl90aCA+IGZzLT5tYXhfdGgpKQorCQkg ICAgZXJyeChFWF9EQVRBRVJSLCAibWluX3RoICVkIG11c3QgYmUgPTwgdGhhbiBtYXhfdGgg JWQiLAorCQkJZnMtPm1pbl90aCwgZnMtPm1heF90aCk7CisKIAkJaWYgKGZzLT5tYXhfdGgg PT0gMCkKIAkJICAgIGVycngoRVhfREFUQUVSUiwgIm1heF90aCBtdXN0IGJlID4gMCIpOwog CmRpZmYgLS1naXQgYS9zYmluL2lwZncvaXBmdzIuaCBiL3NiaW4vaXBmdy9pcGZ3Mi5oCmlu ZGV4IGQ1OTI5MzAuLmI1MDM2MWYgMTAwNjQ0Ci0tLSBhL3NiaW4vaXBmdy9pcGZ3Mi5oCisr KyBiL3NiaW4vaXBmdy9pcGZ3Mi5oCkBAIC0xNjUsNiArMTY1LDcgQEAgZW51bSB0b2tlbnMg ewogCVRPS19CVVJTVCwKIAlUT0tfUkVELAogCVRPS19HUkVELAorCVRPS19FQ04sCiAJVE9L X0RST1BUQUlMLAogCVRPS19QUk9UTywKIAkvKiBkdW1teW5ldCB0b2tlbnMgKi8KZGlmZiAt LWdpdCBhL3N5cy9uZXRpbmV0L2lwX2R1bW15bmV0LmggYi9zeXMvbmV0aW5ldC9pcF9kdW1t eW5ldC5oCmluZGV4IDFjMDkxOTcuLjBiMzdlNzEgMTAwNjQ0Ci0tLSBhL3N5cy9uZXRpbmV0 L2lwX2R1bW15bmV0LmgKKysrIGIvc3lzL25ldGluZXQvaXBfZHVtbXluZXQuaApAQCAtMTAy LDYgKzEwMiw3IEBAIGVudW0gewkvKiB1c2VyIGZsYWdzICovCiAJRE5fUUhUX0hBU0gJPSAw eDAwMDQsCS8qIHFodCBpcyBhIGhhc2ggdGFibGUgKi8KIAlETl9RU0laRV9CWVRFUwk9IDB4 MDAwOCwJLyogcXVldWUgc2l6ZSBpcyBpbiBieXRlcyAqLwogCUROX0hBU19QUk9GSUxFCT0g MHgwMDEwLAkvKiBhIGxpbmsgaGFzIGEgcHJvZmlsZSAqLworCUROX0lTX0VDTgk9IDB4MDA4 MCwKIAlETl9JU19SRUQJPSAweDAwMjAsCiAJRE5fSVNfR0VOVExFX1JFRD0gMHgwMDQwLAog CUROX1BJUEVfQ01ECT0gMHgxMDAwLAkvKiBwaXBlIGNvbmZpZy4uLiAqLwpkaWZmIC0tZ2l0 IGEvc3lzL25ldHBmaWwvaXBmdy9pcF9kbl9nbHVlLmMgYi9zeXMvbmV0cGZpbC9pcGZ3L2lw X2RuX2dsdWUuYwppbmRleCA3ZDdlNjk1Li4wOTU3NThmIDEwMDY0NAotLS0gYS9zeXMvbmV0 cGZpbC9pcGZ3L2lwX2RuX2dsdWUuYworKysgYi9zeXMvbmV0cGZpbC9pcGZ3L2lwX2RuX2ds dWUuYwpAQCAtODMsNiArODMsNyBAQCBzdHJ1Y3QgZG5fZmxvd19zZXQgewogI2RlZmluZSBE Tk9MRF9RU0laRV9JU19CWVRFUyAgIDB4MDAwOCAgLyogcXVldWUgc2l6ZSBpcyBtZWFzdXJl ZCBpbiBieXRlcyAqLwogI2RlZmluZSBETk9MRF9OT0VSUk9SICAgICAgMHgwMDEwICAvKiBk byBub3QgcmVwb3J0IEVOT0JVRlMgb24gZHJvcHMgICovCiAjZGVmaW5lIEROT0xEX0hBU19Q Uk9GSUxFICAgICAgMHgwMDIwICAvKiB0aGUgcGlwZSBoYXMgYSBkZWxheSBwcm9maWxlLiAq LworI2RlZmluZSBETk9MRF9JU19FQ04gICAgICAgMHgwMDQwCiAjZGVmaW5lIEROT0xEX0lT X1BJUEUgICAgICAweDQwMDAKICNkZWZpbmUgRE5PTERfSVNfUVVFVUUgICAgIDB4ODAwMAog CkBAIC0zMzgsNiArMzM5LDggQEAgY29udmVydGZsYWdzMm5ldyhpbnQgc3JjKQogCQlkc3Qg fD0gRE5fSVNfUkVEOwogCWlmIChzcmMgJiBETk9MRF9JU19HRU5UTEVfUkVEKQogCQlkc3Qg fD0gRE5fSVNfR0VOVExFX1JFRDsKKwlpZiAoc3JjICYgRE5PTERfSVNfRUNOKQorCQlkc3Qg fD0gRE5fSVNfRUNOOwogCWlmIChzcmMgJiBETk9MRF9IQVNfUFJPRklMRSkKIAkJZHN0IHw9 IEROX0hBU19QUk9GSUxFOwogCmRpZmYgLS1naXQgYS9zeXMvbmV0cGZpbC9pcGZ3L2lwX2Ru X2lvLmMgYi9zeXMvbmV0cGZpbC9pcGZ3L2lwX2RuX2lvLmMKaW5kZXggOWE0YjQ4Ni4uNDQ2 MjUzYiAxMDA2NDQKLS0tIGEvc3lzL25ldHBmaWwvaXBmdy9pcF9kbl9pby5jCisrKyBiL3N5 cy9uZXRwZmlsL2lwZncvaXBfZG5faW8uYwpAQCAtMzAyLDYgKzMwMiw3IEBAIHJlZF9kcm9w cyAoc3RydWN0IGRuX3F1ZXVlICpxLCBpbnQgbGVuKQogCSAqLwogCiAJc3RydWN0IGRuX2Zz ayAqZnMgPSBxLT5mczsKKwlzdHJ1Y3QgZG5fZnMgKmYgPSAmKHEtPmZzLT5mcyk7CiAJaW50 NjRfdCBwX2IgPSAwOwogCiAJLyogUXVldWUgaW4gYnl0ZXMgb3IgcGFja2V0cz8gKi8KQEAg LTMzNyw2ICszMzgsOCBAQCByZWRfZHJvcHMgKHN0cnVjdCBkbl9xdWV1ZSAqcSwgaW50IGxl bikKIAkJcmV0dXJuICgwKTsJLyogYWNjZXB0IHBhY2tldCAqLwogCX0KIAlpZiAocS0+YXZn ID49IGZzLT5tYXhfdGgpIHsJLyogYXZlcmFnZSBxdWV1ZSA+PSAgbWF4IHRocmVzaG9sZCAq LworCQlpZiAoZnMtPmZzLmZsYWdzICYgRE5fSVNfRUNOKQorCQkJcmV0dXJuICgxKTsKIAkJ aWYgKGZzLT5mcy5mbGFncyAmIEROX0lTX0dFTlRMRV9SRUQpIHsKIAkJCS8qCiAJCQkgKiBB Y2NvcmRpbmcgdG8gR2VudGxlLVJFRCwgaWYgYXZnIGlzIGdyZWF0ZXIgdGhhbgpAQCAtMzUy LDYgKzM1NSw4IEBAIHJlZF9kcm9wcyAoc3RydWN0IGRuX3F1ZXVlICpxLCBpbnQgbGVuKQog CQkJcmV0dXJuICgxKTsKIAkJfQogCX0gZWxzZSBpZiAocS0+YXZnID4gZnMtPm1pbl90aCkg eworCQlpZiAoZnMtPmZzLmZsYWdzICYgRE5fSVNfRUNOKQorCQkJcmV0dXJuICgxKTsKIAkJ LyoKIAkJICogV2UgY29tcHV0ZSBwX2IgdXNpbmcgdGhlIGxpbmVhciBkcm9wcGluZyBmdW5j dGlvbgogCQkgKgkgcF9iID0gY18xICogYXZnIC0gY18yCkBAIC0zODQsNiArMzg5LDcxIEBA IHJlZF9kcm9wcyAoc3RydWN0IGRuX3F1ZXVlICpxLCBpbnQgbGVuKQogfQogCiAvKgorICog RUNOIFByb2Nlc3NpbmcKKyAqIFRoZSBwYXJ0IG9mIHRoaXMgZnVuY3Rpb24gaXMgYWRvcHRl ZCBmcm9tIGFsdHEKKyAqLworc3RhdGljIGludAorZWNuX21hcmsoc3RydWN0IG1idWYqIG0p Cit7CisJc3RydWN0IGlwICppcDsKKwlpcCA9IG10b2QobSwgc3RydWN0IGlwICopOworCisJ c3dpdGNoIChpcC0+aXBfdikgeworCWNhc2UgSVBWRVJTSU9OOgorCXsKKwkJdV9pbnQ4X3Qg b3RvczsKKwkJaW50IHN1bTsKKworCQlpZiAoKGlwLT5pcF90b3MgJiBJUFRPU19FQ05fTUFT SykgPT0gSVBUT1NfRUNOX05PVEVDVCkKKwkJCXJldHVybiAoMCk7CS8qIG5vdC1FQ1QgKi8K KwkJaWYgKChpcC0+aXBfdG9zICYgSVBUT1NfRUNOX01BU0spID09IElQVE9TX0VDTl9DRSkK KwkJCXJldHVybiAoMSk7CS8qIGFscmVhZHkgbWFya2VkICovCisKKwkJLyoKKwkJICogZWNu LWNhcGFibGUgYnV0IG5vdCBtYXJrZWQsCisJCSAqIG1hcmsgQ0UgYW5kIHVwZGF0ZSBjaGVj a3N1bQorCQkgKi8KKwkJb3RvcyA9IGlwLT5pcF90b3M7CisJCWlwLT5pcF90b3MgfD0gSVBU T1NfRUNOX0NFOworCQkvKgorCQkgKiB1cGRhdGUgY2hlY2tzdW0gKGZyb20gUkZDMTYyNCkK KwkJICoJICAgSEMnID0gfih+SEMgKyB+bSArIG0nKQorCQkgKi8KKwkJc3VtID0gfm50b2hz KGlwLT5pcF9zdW0pICYgMHhmZmZmOworCQlzdW0gKz0gKH5vdG9zICYgMHhmZmZmKSArIGlw LT5pcF90b3M7CisJCXN1bSA9IChzdW0gPj4gMTYpICsgKHN1bSAmIDB4ZmZmZik7CisJCXN1 bSArPSAoc3VtID4+IDE2KTsgIC8qIGFkZCBjYXJyeSAqLworCQlpcC0+aXBfc3VtID0gaHRv bnMofnN1bSAmIDB4ZmZmZik7CisJCXJldHVybiAoMSk7CisJfQorI2lmZGVmIElORVQ2CisJ Y2FzZSAoSVBWNl9WRVJTSU9OID4+IDQpOgorCXsKKwkJc3RydWN0IGlwNl9oZHIgKmlwNiA9 IG10b2QobSwgc3RydWN0IGlwNl9oZHIgKik7CisJCXVfaW50MzJfdCBmbG93bGFiZWw7CisK KwkJZmxvd2xhYmVsID0gbnRvaGwoaXA2LT5pcDZfZmxvdyk7CisJCWlmICgoZmxvd2xhYmVs ID4+IDI4KSAhPSA2KQorCQkJcmV0dXJuICgwKTsJLyogdmVyc2lvbiBtaXNtYXRjaCEgKi8K KwkJaWYgKChmbG93bGFiZWwgJiAoSVBUT1NfRUNOX01BU0sgPDwgMjApKSA9PQorCQkgICAg KElQVE9TX0VDTl9OT1RFQ1QgPDwgMjApKQorCQkJcmV0dXJuICgwKTsJLyogbm90LUVDVCAq LworCQlpZiAoKGZsb3dsYWJlbCAmIChJUFRPU19FQ05fTUFTSyA8PCAyMCkpID09CisJCSAg ICAoSVBUT1NfRUNOX0NFIDw8IDIwKSkKKwkJCXJldHVybiAoMSk7CS8qIGFscmVhZHkgbWFy a2VkICovCisJCS8qCisJCSAqIGVjbi1jYXBhYmxlIGJ1dCBub3QgbWFya2VkLCBtYXJrIENF CisJCSAqLworCQlmbG93bGFiZWwgfD0gKElQVE9TX0VDTl9DRSA8PCAyMCk7CisJCWlwNi0+ aXA2X2Zsb3cgPSBodG9ubChmbG93bGFiZWwpOworCQlyZXR1cm4gKDEpOworCX0KKyNlbmRp ZgorCX0KKwlyZXR1cm4gKDApOworfQorCisvKgogICogRW5xdWV1ZSBhIHBhY2tldCBpbiBx LCBzdWJqZWN0IHRvIHNwYWNlIGFuZCBxdWV1ZSBtYW5hZ2VtZW50IHBvbGljeQogICogKHdo b3NlIHBhcmFtZXRlcnMgYXJlIGluIHEtPmZzKS4KICAqIFVwZGF0ZSBzdGF0cyBmb3IgdGhl IHF1ZXVlIGFuZCB0aGUgc2NoZWR1bGVyLgpAQCAtNDE0LDggKzQ4NCwxMyBAQCBkbl9lbnF1 ZXVlKHN0cnVjdCBkbl9xdWV1ZSAqcSwgc3RydWN0IG1idWYqIG0sIGludCBkcm9wKQogCQln b3RvIGRyb3A7CiAJaWYgKGYtPnBsciAmJiByYW5kb20oKSA8IGYtPnBscikKIAkJZ290byBk cm9wOwotCWlmIChmLT5mbGFncyAmIEROX0lTX1JFRCAmJiByZWRfZHJvcHMocSwgbS0+bV9w a3RoZHIubGVuKSkKLQkJZ290byBkcm9wOworCWlmIChmLT5mbGFncyAmIEROX0lTX1JFRCAm JiByZWRfZHJvcHMocSwgbS0+bV9wa3RoZHIubGVuKSkgeworCQlpZiAoZi0+ZmxhZ3MgJiBE Tl9JU19FQ04pIHsKKwkJCWlmICghZWNuX21hcmsobSkpCisJCQkJZ290byBkcm9wOworCQl9 IGVsc2UKKwkJCWdvdG8gZHJvcDsKKwl9CiAJaWYgKGYtPmZsYWdzICYgRE5fUVNJWkVfQllU RVMpIHsKIAkJaWYgKHEtPm5pLmxlbl9ieXRlcyA+IGYtPnFzaXplKQogCQkJZ290byBkcm9w OwpkaWZmIC0tZ2l0IGEvc3lzL25ldHBmaWwvaXBmdy9pcF9kdW1teW5ldC5jIGIvc3lzL25l dHBmaWwvaXBmdy9pcF9kdW1teW5ldC5jCmluZGV4IDRkZTIxNTYuLmFjY2JiMDcgMTAwNjQ0 Ci0tLSBhL3N5cy9uZXRwZmlsL2lwZncvaXBfZHVtbXluZXQuYworKysgYi9zeXMvbmV0cGZp bC9pcGZ3L2lwX2R1bW15bmV0LmMKQEAgLTEwNzAsNyArMTA3MCw3IEBAIGNvbmZpZ19yZWQo c3RydWN0IGRuX2ZzayAqZnMpCiAJZnMtPm1pbl90aCA9IFNDQUxFKGZzLT5mcy5taW5fdGgp OwogCWZzLT5tYXhfdGggPSBTQ0FMRShmcy0+ZnMubWF4X3RoKTsKIAotCWZzLT5jXzEgPSBm cy0+bWF4X3AgLyAoZnMtPmZzLm1heF90aCAtIGZzLT5mcy5taW5fdGgpOworCWZzLT5jXzEg PSBmcy0+bWF4X3AgLyBtYXgoZnMtPmZzLm1heF90aCAtIGZzLT5mcy5taW5fdGgsIDEpOwog CWZzLT5jXzIgPSBTQ0FMRV9NVUwoZnMtPmNfMSwgU0NBTEUoZnMtPmZzLm1pbl90aCkpOwog CiAJaWYgKGZzLT5mcy5mbGFncyAmIEROX0lTX0dFTlRMRV9SRUQpIHsK --------------050400010400020600020602--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?533BF902.7010506>