From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Taht Subject: Re: OpenWRT wrong adjustment of fq_codel defaults (Was: fq_codel_drop vs a udp flood) Date: Fri, 6 May 2016 12:43:03 -0700 Message-ID: References: <1462125592.5535.194.camel@edumazet-glaptop3.roam.corp.google.com> <865DA393-262D-40B6-A9D3-1B978CD5F6C6@gmail.com> <1462128385.5535.200.camel@edumazet-glaptop3.roam.corp.google.com> <1462136140.5535.219.camel@edumazet-glaptop3.roam.corp.google.com> <1462201620.5535.250.camel@edumazet-glaptop3.roam.corp.google.com> <1462205669.5535.254.camel@edumazet-glaptop3.roam.corp.google.com> <1462464776.13075.18.camel@edumazet-glaptop3.roam.corp.google.com> <1462476207.13075.20.camel@edumazet-glaptop3.roam.corp.google.com> <20160506114243.4eb4f95e@redhat.com> <20160506144740.210901f5@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: make-wifi-fast@lists.bufferbloat.net, =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= , ath10k , "netdev@vger.kernel.org" , "codel@lists.bufferbloat.net" , Jonathan Morton , OpenWrt Development List , Felix Fietkau To: Roman Yeryomin Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: codel-bounces@lists.bufferbloat.net Sender: "Codel" List-Id: netdev.vger.kernel.org T24gRnJpLCBNYXkgNiwgMjAxNiBhdCAxMTo1NiBBTSwgUm9tYW4gWWVyeW9taW4gPGxlcm9pLmxp c3RzQGdtYWlsLmNvbT4gd3JvdGU6Cj4gT24gNiBNYXkgMjAxNiBhdCAyMTo0MywgUm9tYW4gWWVy eW9taW4gPGxlcm9pLmxpc3RzQGdtYWlsLmNvbT4gd3JvdGU6Cj4+IE9uIDYgTWF5IDIwMTYgYXQg MTU6NDcsIEplc3BlciBEYW5nYWFyZCBCcm91ZXIgPGJyb3VlckByZWRoYXQuY29tPiB3cm90ZToK Pj4+Cj4+PiBJJ3ZlIGNyZWF0ZWQgYSBPcGVuV1JUIHRpY2tldFsxXSBvbiB0aGlzIGlzc3VlLCBh cyBpdCBzZWVtcyB0aGF0IHNvbWVvbmVbMl0KPj4+IGNsb3NlZCBGZWxpeCdlcyBPcGVuV1JUIGVt YWlsIGFjY291bnQgKGJhZCBjaG9pY2UhIGVtYWlscyBib3VuY2luZykuCj4+PiBTb3VuZHMgbGlr ZSBPcGVuV1JUIGFuZCB0aGUgTEVERSBodHRwczovL3d3dy5sZWRlLXByb2plY3Qub3JnLyBwcm9q ZWN0Cj4+PiBpcyBpbiBzb21lIGtpbmQgb2YgY29uZmxpY3QuCj4+Pgo+Pj4gT3BlbldSVCB0aWNr ZXQgWzFdIGh0dHBzOi8vZGV2Lm9wZW53cnQub3JnL3RpY2tldC8yMjM0OQo+Pj4KPj4+IFsyXSBo dHRwOi8vdGhyZWFkLmdtYW5lLm9yZy9nbWFuZS5jb21wLmVtYmVkZGVkLm9wZW53cnQuZGV2ZWwv NDAyOTgvZm9jdXM9NDAzMzUKPj4KPj4gT0ssIHNvLCBhZnRlciBwb3J0aW5nIHRoZSBwYXRjaCB0 byA0LjEgb3BlbndydCBrZXJuZWwgYW5kIHBsYXlpbmcgYQo+PiBiaXQgd2l0aCBmcV9jb2RlbCBs aW1pdHMgSSB3YXMgYWJsZSB0byBnZXQgNDIwTWJwcyBVRFAgbGlrZSB0aGlzOgo+PiB0YyBxZGlz YyByZXBsYWNlIGRldiB3bGFuMCBwYXJlbnQgOjEgZnFfY29kZWwgZmxvd3MgMTYgbGltaXQgMjU2 Cj4KPiBGb3Jnb3QgdG8gbWVudGlvbiwgSSd2ZSByZWR1Y2VkIGRyb3BfYmF0Y2hfc2l6ZSBkb3du IHRvIDMyCgowKSBOb3QgY2xlYXIgdG8gbWUgaWYgdGhhdCdzIHRoZSByaWdodCBsaW5lLCB0aGVy ZSBhcmUgNCB3aWZpIHF1ZXVlcywKYW5kIHRoZSB0aGlyZCBvbmUKaXMgdGhlIEJFIHF1ZXVlLiBU aGF0IGlzIHRvbyBsb3cgYSBsaW1pdCwgYWxzbywgZm9yIG5vcm1hbCB1c2UuIEFuZDoKZm9yIHRo ZSBwdXJwb3NlIG9mIHRoaXMgcGFydGljdWxhciBVRFAgdGVzdCwgZmxvd3MgMTYgaXMgb2ssIGJ1 dCBub3QKaWRlYWwuCgoxKSBXaGF0J3MgdGhlIHRjcCBudW1iZXIgKHdpdGggYSBzaW11bHRhbmVv dXMgcGluZykgd2l0aCB0aGlzIGxhdGVzdCBwYXRjaHNldD8KKEkgY2FyZSBhYm91dCB0Y3AgcGVy Zm9ybWFuY2UgYSBsb3QgbW9yZSB0aGFuIHVkcCBmbG9vZHMgLSBzdXJ2aXZpbmcgYQp1ZHAgZmxv b2QgeWVzLCBwZXJmb3JtYW5jZSwgbm8pCgpiZWZvcmUvYWZ0ZXI/Cgp0YyAtcyBxZGlzYyBzaG93 IGRldiB3bGFuMCBkdXJpbmcvYWZ0ZXIgcmVzdWx0cz8KCklGIHlvdSBhcmUgZG9pbmcgYnVpbGRz IGZvciB0aGUgYXJjaGVyIGM3djIsIEkgY2FuIGpvaW4gaW4gb24gdGhpcy4uLiAoPykKCkkgZGlk IGRvIGEgdGVzdCBvZiB0aGUgYXRoMTBrICJiZWZvcmUiLCBmcV9jb2RlbCAqbmV2ZXIgZW5nYWdl ZCosIGFuZAp0Y3AgaW5kdWNlZCBsYXRlbmNpZXMgdW5kZXIgbG9hZCwgZSBhdCAxMDBtYml0LCBj cmFja2VkIDYwMG1zLCB3aGlsZQpzdGF5aW5nIGZsYXQgKDIwbXMpIGF0IDEwMG1iaXQuIChub3Qg dGhlIHNhbWUgcGF0Y2hlcyB5b3UgYXJlIHRlc3RpbmcpCm9uIHg4Ni4gSSBoYXZlIGdvdCB0Y3Ag MzAwTWJpdCBvdXQgb2YgYW4gb3N4IGJveCwgc2ltaWxhciBsYXRlbmN5LApoYXZlIHlldCB0byBn ZXQgYW55dGhpbmcgbW9yZSBvbiBhbnl0aGluZyBJIGN1cnJlbnRseSBoYXZlCmJlZm9yZS9hZnRl ciBwYXRjaHNldHMuCgpJJ2xsIGdvIGFkZCBmbG9vZGluZyB0byB0aGUgdGVzdHMsIEkganVzdCBm aW5pc2hlZCBhIHNlcmllcyBjb21wYXJpbmcKdHdvIGRpZmZlcmVudCBzcGVlZCBzdGF0aW9ucyBh bmQgbGlmZSB3YXMgZ29vZCBvbiB0aGF0LgoKImJlZm9yZSIgLSBmcV9jb2RlbCBuZXZlciBlbmdh Z2VzLCB3ZSBzZWUgc2Vjb25kcyBvZiBsYXRlbmN5IHVuZGVyIGxvYWQuCgpyb290QGFwdTI6fiMg dGMgLXMgcWRpc2Mgc2hvdyBkZXYgd2xwNHMwCnFkaXNjIG1xIDA6IHJvb3QKIFNlbnQgODU3MDU2 Mzg5MyBieXRlcyA2MzI2OTgzIHBrdCAoZHJvcHBlZCAwLCBvdmVybGltaXRzIDAgcmVxdWV1ZXMg MCkKIGJhY2tsb2cgMGIgMHAgcmVxdWV1ZXMgMApxZGlzYyBmcV9jb2RlbCAwOiBwYXJlbnQgOjEg bGltaXQgMTAyNDBwIGZsb3dzIDEwMjQgcXVhbnR1bSAxNTE0CnRhcmdldCA1LjBtcyBpbnRlcnZh bCAxMDAuMG1zIGVjbgogU2VudCAyMjYyIGJ5dGVzIDE3IHBrdCAoZHJvcHBlZCAwLCBvdmVybGlt aXRzIDAgcmVxdWV1ZXMgMCkKIGJhY2tsb2cgMGIgMHAgcmVxdWV1ZXMgMAogIG1heHBhY2tldCAw IGRyb3Bfb3ZlcmxpbWl0IDAgbmV3X2Zsb3dfY291bnQgMCBlY25fbWFyayAwCiAgbmV3X2Zsb3dz X2xlbiAwIG9sZF9mbG93c19sZW4gMApxZGlzYyBmcV9jb2RlbCAwOiBwYXJlbnQgOjIgbGltaXQg MTAyNDBwIGZsb3dzIDEwMjQgcXVhbnR1bSAxNTE0CnRhcmdldCA1LjBtcyBpbnRlcnZhbCAxMDAu MG1zIGVjbgogU2VudCAyMjA0ODY1NjkgYnl0ZXMgMTUyMDU4IHBrdCAoZHJvcHBlZCAwLCBvdmVy bGltaXRzIDAgcmVxdWV1ZXMgMCkKIGJhY2tsb2cgMGIgMHAgcmVxdWV1ZXMgMAogIG1heHBhY2tl dCAxODE2OCBkcm9wX292ZXJsaW1pdCAwIG5ld19mbG93X2NvdW50IDEgZWNuX21hcmsgMAogIG5l d19mbG93c19sZW4gMCBvbGRfZmxvd3NfbGVuIDEKcWRpc2MgZnFfY29kZWwgMDogcGFyZW50IDoz IGxpbWl0IDEwMjQwcCBmbG93cyAxMDI0IHF1YW50dW0gMTUxNAp0YXJnZXQgNS4wbXMgaW50ZXJ2 YWwgMTAwLjBtcyBlY24KIFNlbnQgODM0MDU0NjUwOSBieXRlcyA2MTYzNDMxIHBrdCAoZHJvcHBl ZCAwLCBvdmVybGltaXRzIDAgcmVxdWV1ZXMgMCkKIGJhY2tsb2cgMGIgMHAgcmVxdWV1ZXMgMAog IG1heHBhY2tldCA2ODEzMCBkcm9wX292ZXJsaW1pdCAwIG5ld19mbG93X2NvdW50IDEyMDA1MCBl Y25fbWFyayAwCiAgbmV3X2Zsb3dzX2xlbiAxIG9sZF9mbG93c19sZW4gMwpxZGlzYyBmcV9jb2Rl bCAwOiBwYXJlbnQgOjQgbGltaXQgMTAyNDBwIGZsb3dzIDEwMjQgcXVhbnR1bSAxNTE0CnRhcmdl dCA1LjBtcyBpbnRlcnZhbCAxMDAuMG1zIGVjbgogU2VudCA5NTI4NTUzIGJ5dGVzIDExNDc3IHBr dCAoZHJvcHBlZCAwLCBvdmVybGltaXRzIDAgcmVxdWV1ZXMgMCkKIGJhY2tsb2cgMGIgMHAgcmVx dWV1ZXMgMAogIG1heHBhY2tldCA2NiBkcm9wX292ZXJsaW1pdCAwIG5ld19mbG93X2NvdW50IDEg ZWNuX21hcmsgMAogIG5ld19mbG93c19sZW4gMSBvbGRfZmxvd3NfbGVuIDAKICBgYGAKCgo+PiBU aGlzIGlzIGNlcnRhaW5seSBiZXR0ZXIgdGhhbiAzME1icHMgYnV0IHN0aWxsIG1vcmUgdGhhbiB0 d28gdGltZXMKPj4gbGVzcyB0aGFuIGJlZm9yZSAoOTAwKS4KClRoZSBudW1iZXIgdGhhdCBJIHN0 aWxsIGFtIG5vdCBzdXJlIHdlIGdvdCBpcyB0aGF0IHlvdSB3ZXJlIHNlbmRpbmcKOTAwbWJpdCB1 ZHAgYW5kIHJlY2lldmluZyA5MDBtYml0IG9uIHRoZSBwcmlvciB0ZXN0cz8KCj4+IFRDUCBhbHNv IGltcHJvdmVkIGEgbGl0dGxlICg1NTAgdG8gfjU5MCkuCgpUaGUgbGltaXQgaXMgcHJvYmFibHkg YSBiaXQgbG93LCBhbHNvLiAgWW91IG1pZ2h0IHdhbnQgdG8gdHJ5IHRhcmdldAoyMG1zIGFzIHdl bGwuCgo+Pgo+PiBGZWxpeCwgb3RoZXJzLCBkbyB5b3Ugd2FudCB0byBzZWUgdGhlIHBvcnRlZCBw YXRjaCwgbWF5YmUgSSBkaWQgc29tZXRoaW5nIHdyb25nPwo+PiBEb2Vzbid0IGxvb2sgbGlrZSBp dCB3aWxsIHNhdmUgYXRoMTBrIGZyb20gcGVyZm9ybWFuY2UgcmVncmVzc2lvbi4KCndoYXQgd2Fz IHRjcCAiYmVmb3JlIj8gKEknbSBzb3JyeSwgc3VjaCBhIGxvbmcgdGhyZWFkKQoKPj4KPj4+Cj4+ PiBPbiBGcmksIDYgTWF5IDIwMTYgMTE6NDI6NDMgKzAyMDAKPj4+IEplc3BlciBEYW5nYWFyZCBC cm91ZXIgPGJyb3VlckByZWRoYXQuY29tPiB3cm90ZToKPj4+Cj4+Pj4gSGkgRmVsaXgsCj4+Pj4K Pj4+PiBUaGlzIGlzIGFuIGltcG9ydGFudCBmaXggZm9yIE9wZW5XUlQsIHBsZWFzZSByZWFkIQo+ Pj4+Cj4+Pj4gT3BlbldSVCBjaGFuZ2VkIHRoZSBkZWZhdWx0IGZxX2NvZGVsIHNjaC0+bGltaXQg ZnJvbSAxMDI0MCB0byAxMDI0LAo+Pj4+IHdpdGhvdXQgYWxzbyBhZGp1c3RpbmcgcS0+Zmxvd3Nf Y250LiAgRXJpYyBleHBsYWlucyBiZWxvdyB0aGF0IHlvdSBtdXN0Cj4+Pj4gYWxzbyBhZGp1c3Qg dGhlIGJ1Y2tldHMgKHEtPmZsb3dzX2NudCkgZm9yIHRoaXMgbm90IHRvIGJyZWFrLiAoSnVzdAo+ Pj4+IGFkanVzdCBpdCB0byAxMjgpCj4+Pj4KPj4+PiBQcm9ibGVtYXRpYyBPcGVuV1JUIGNvbW1p dCBpbiBxdWVzdGlvbjoKPj4+PiAgaHR0cDovL2dpdC5vcGVud3J0Lm9yZy8/cD1vcGVud3J0Lmdp dDthPXBhdGNoO2g9MTJjZDY1NzgwODRlCj4+Pj4gIDEyY2Q2NTc4MDg0ZSAoImtlcm5lbDogcmV2 ZXJ0IGZxX2NvZGVsIHF1YW50dW0gb3ZlcnJpZGUgdG8gcHJldmVudCBpdCBmcm9tIGNhdXNpbmcg dG9vIG11Y2ggY3B1IGxvYWQgd2l0aCBoaWdoZXIgc3BlZWQgKCMyMTMyNikiKQo+Pj4+Cj4+Pj4K Pj4+PiBJIGFsc28gaGlnaGx5IHJlY29tbWVuZCB5b3UgY2hlcnJ5LXBpY2sgdGhpcyB2ZXJ5IHJl Y2VudCBjb21taXQ6Cj4+Pj4gIG5ldC1uZXh0OiA5ZDE4NTYyYTIyNzggKCJmcV9jb2RlbDogYWRk IGJhdGNoIGFiaWxpdHkgdG8gZnFfY29kZWxfZHJvcCgpIikKPj4+PiAgaHR0cHM6Ly9naXQua2Vy bmVsLm9yZy9kYXZlbS9uZXQtbmV4dC9jLzlkMTg1NjJhMjI3Cj4+Pj4KPj4+PiBUaGlzIHNob3Vs ZCBmaXggdmVyeSBoaWdoIENQVSB1c2FnZSBpbi1jYXNlIGZxX2NvZGVsIGdvZXMgaW50byBkcm9w IG1vZGUuCj4+Pj4gVGhlIHByb2JsZW0gaXMgdGhhdCBkcm9wIG1vZGUgd2FzIGNvbnNpZGVyZWQg cmFyZSwgYW5kIGltcGxlbWVudGF0aW9uCj4+Pj4gd2lzZSBpdCB3YXMgY2hvc2VuIHRvIGJlIG1v cmUgZXhwZW5zaXZlICh0byBzYXZlIGN5Y2xlcyBvbiBub3JtYWwgbW9kZSkuCj4+Pj4gVW5mb3J0 dW5hdGVseSBpcyBpdCBlYXN5IHRvIHRyaWdnZXIgd2l0aCBhbiBVRFAgZmxvb2QuIERyb3AgbW9k ZSBpcwo+Pj4+IGVzcGVjaWFsbHkgZXhwZW5zaXZlIGZvciBzbWFsbGVyIGRldmljZXMsIGFzIGl0 IHNjYW5zIGEgNEsgYmlnIGFycmF5LAo+Pj4+IHRodXMgNjQgY2FjaGUgbWlzc2VzIGZvciBzbWFs bCBkZXZpY2VzIQo+Pj4+Cj4+Pj4gVGhlIGZpeCBpcyB0byBhbGxvdyBkcm9wLW1vZGUgdG8gYnVs ay1kcm9wIG1vcmUgcGFja2V0cyB3aGVuIGVudGVyaW5nCj4+Pj4gZHJvcC1tb2RlIChkZWZhdWx0 IDY0IGJ1bGsgZHJvcCkuICBUaGF0IHdheSB3ZSBkb24ndCBzdWRkZW5seQo+Pj4+IGV4cGVyaWVu Y2UgYSBzaWduaWZpY2FudGx5IGhpZ2hlciBwcm9jZXNzaW5nIGNvc3QgcGVyIHBhY2tldCwgYnV0 Cj4+Pj4gaW5zdGVhZCBjYW4gYW1vcnRpemUgdGhpcy4KPj4+Pgo+Pj4+IFRvIEVyaWMsIHNob3Vs ZCB3ZSByZWNvbW1lbmQgT3BlbldSVCB0byBhZGp1c3QgZGVmYXVsdCAobWF4KSA2NCBidWxrCj4+ Pj4gZHJvcCwgZ2l2ZW4gd2UgYWxzbyByZWNvbW1lbmQgYnVja2V0IHNpemUgdG8gYmUgMTI4ID8g KHRodXMgdGhlIGFtb3VudAo+Pj4+IG9mIG1lbW9yeSB0byBzY2FuIGlzIGxlc3MsIGJ1dCB0aGVp ciBDUFUgaXMgYWxzbyBtdWNoIHNtYWxsZXIpLgo+Pj4+Cj4+Pj4gLS1KZXNwZXIKPj4+Pgo+Pj4+ Cj4+Pj4gT24gVGh1LCAwNSBNYXkgMjAxNiAxMjoyMzoyNyAtMDcwMCBFcmljIER1bWF6ZXQgPGVy aWMuZHVtYXpldEBnbWFpbC5jb20+IHdyb3RlOgo+Pj4+Cj4+Pj4gPiBPbiBUaHUsIDIwMTYtMDUt MDUgYXQgMTk6MjUgKzAzMDAsIFJvbWFuIFllcnlvbWluIHdyb3RlOgo+Pj4+ID4gPiBPbiA1IE1h eSAyMDE2IGF0IDE5OjEyLCBFcmljIER1bWF6ZXQgPGVyaWMuZHVtYXpldEBnbWFpbC5jb20+IHdy b3RlOgo+Pj4+ID4gPiA+IE9uIFRodSwgMjAxNi0wNS0wNSBhdCAxNzo1MyArMDMwMCwgUm9tYW4g WWVyeW9taW4gd3JvdGU6Cj4+Pj4gPiA+ID4KPj4+PiA+ID4gPj4KPj4+PiA+ID4gPj4gcWRpc2Mg ZnFfY29kZWwgMDogZGV2IGV0aDAgcm9vdCByZWZjbnQgMiBsaW1pdCAxMDI0cCBmbG93cyAxMDI0 Cj4+Pj4gPiA+ID4+IHF1YW50dW0gMTUxNCB0YXJnZXQgNS4wbXMgaW50ZXJ2YWwgMTAwLjBtcyBl Y24KPj4+PiA+ID4gPj4gIFNlbnQgMTIzMDYgYnl0ZXMgMTI4IHBrdCAoZHJvcHBlZCAwLCBvdmVy bGltaXRzIDAgcmVxdWV1ZXMgMCkKPj4+PiA+ID4gPj4gIGJhY2tsb2cgMGIgMHAgcmVxdWV1ZXMg MAo+Pj4+ID4gPiA+PiAgIG1heHBhY2tldCAwIGRyb3Bfb3ZlcmxpbWl0IDAgbmV3X2Zsb3dfY291 bnQgMCBlY25fbWFyayAwCj4+Pj4gPiA+ID4+ICAgbmV3X2Zsb3dzX2xlbiAwIG9sZF9mbG93c19s ZW4gMAo+Pj4+ID4gPiA+Cj4+Pj4gPiA+ID4KPj4+PiA+ID4gPiBMaW1pdCBvZiAxMDI0IHBhY2tl dHMgYW5kIDEwMjQgZmxvd3MgaXMgbm90IHdpc2UgSSB0aGluay4KPj4+PiA+ID4gPgo+Pj4+ID4g PiA+IChJZiBhbGwgYnVja2V0cyBhcmUgaW4gdXNlLCBlYWNoIGJ1Y2tldCBoYXMgYSB2aXJ0dWFs IHF1ZXVlIG9mIDEgcGFja2V0LAo+Pj4+ID4gPiA+IHdoaWNoIGlzIGFsbW9zdCB0aGUgc2FtZSB0 aGFuIGhhdmluZyBubyBxdWV1ZSBhdCBhbGwpCj4+Pj4gPiA+ID4KPj4+PiA+ID4gPiBJIHN1Z2dl c3QgdG8gaGF2ZSBhdCBsZWFzdCA4IHBhY2tldHMgcGVyIGJ1Y2tldCwgdG8gbGV0IENvZGVsIGhh dmUgYQo+Pj4+ID4gPiA+IGNoYW5jZSB0byB0cmlnZ2VyLgo+Pj4+ID4gPiA+Cj4+Pj4gPiA+ID4g U28geW91IGNvdWxkIGVpdGhlciByZWR1Y2UgbnVtYmVyIG9mIGJ1Y2tldHMgdG8gMTI4IChpZiBt ZW1vcnkgaXMKPj4+PiA+ID4gPiB0aWdodCksIG9yIGluY3JlYXNlIGxpbWl0IHRvIDgxOTIuCj4+ Pj4gPiA+Cj4+Pj4gPiA+IFdpbGwgdHJ5LCBidXQgd2hhdCBJJ3ZlIHBvc3RlZCBpcyBkZWZhdWx0 LCBJIGRpZG4ndCBjaGFuZ2UvY29uZmlndXJlIHRoYXQuCj4+Pj4gPgo+Pj4+ID4gZnFfY29kZWwg aGFzIGEgZGVmYXVsdCBvZiAxMDI0MCBwYWNrZXRzIGFuZCAxMDI0IGJ1Y2tldHMuCj4+Pj4gPgo+ Pj4+ID4gaHR0cDovL2x4ci5mcmVlLWVsZWN0cm9ucy5jb20vc291cmNlL25ldC9zY2hlZC9zY2hf ZnFfY29kZWwuYyNMNDEzCj4+Pj4gPgo+Pj4+ID4gSWYgc29tZW9uZSBjaGFuZ2VkIHRoYXQgaW4g dGhlIGxpbnV4IHZhcmlhbnQgeW91IHVzZSwgaGUgcHJvYmFibHkgc2hvdWxkCj4+Pj4gPiBleHBs YWluIHRoZSByYXRpb25hbGUuCj4+Pgo+Pj4gLS0KPj4+IEJlc3QgcmVnYXJkcywKPj4+ICAgSmVz cGVyIERhbmdhYXJkIEJyb3Vlcgo+Pj4gICBNU2MuQ1MsIFByaW5jaXBhbCBLZXJuZWwgRW5naW5l ZXIgYXQgUmVkIEhhdAo+Pj4gICBBdXRob3Igb2YgaHR0cDovL3d3dy5pcHR2LWFuYWx5emVyLm9y Zwo+Pj4gICBMaW5rZWRJbjogaHR0cDovL3d3dy5saW5rZWRpbi5jb20vaW4vYnJvdWVyCgoKCi0t IApEYXZlIFTDpGh0CkxldCdzIGdvIG1ha2UgaG9tZSByb3V0ZXJzIGFuZCB3aWZpIGZhc3RlciEg V2l0aCBiZXR0ZXIgc29mdHdhcmUhCmh0dHA6Ly9ibG9nLmNlcm93cnQub3JnCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkNvZGVsIG1haWxpbmcgbGlzdApD b2RlbEBsaXN0cy5idWZmZXJibG9hdC5uZXQKaHR0cHM6Ly9saXN0cy5idWZmZXJibG9hdC5uZXQv bGlzdGluZm8vY29kZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-oi0-x22b.google.com ([2607:f8b0:4003:c06::22b]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1aylem-0005iV-J4 for ath10k@lists.infradead.org; Fri, 06 May 2016 19:43:26 +0000 Received: by mail-oi0-x22b.google.com with SMTP id x201so150746829oif.3 for ; Fri, 06 May 2016 12:43:03 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: <1462125592.5535.194.camel@edumazet-glaptop3.roam.corp.google.com> <865DA393-262D-40B6-A9D3-1B978CD5F6C6@gmail.com> <1462128385.5535.200.camel@edumazet-glaptop3.roam.corp.google.com> <1462136140.5535.219.camel@edumazet-glaptop3.roam.corp.google.com> <1462201620.5535.250.camel@edumazet-glaptop3.roam.corp.google.com> <1462205669.5535.254.camel@edumazet-glaptop3.roam.corp.google.com> <1462464776.13075.18.camel@edumazet-glaptop3.roam.corp.google.com> <1462476207.13075.20.camel@edumazet-glaptop3.roam.corp.google.com> <20160506114243.4eb4f95e@redhat.com> <20160506144740.210901f5@redhat.com> Date: Fri, 6 May 2016 12:43:03 -0700 Message-ID: Subject: Re: OpenWRT wrong adjustment of fq_codel defaults (Was: [Codel] fq_codel_drop vs a udp flood) From: Dave Taht List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "ath10k" Errors-To: ath10k-bounces+kvalo=adurom.com@lists.infradead.org To: Roman Yeryomin Cc: make-wifi-fast@lists.bufferbloat.net, =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= , ath10k , "netdev@vger.kernel.org" , "codel@lists.bufferbloat.net" , Jesper Dangaard Brouer , Jonathan Morton , OpenWrt Development List , Felix Fietkau T24gRnJpLCBNYXkgNiwgMjAxNiBhdCAxMTo1NiBBTSwgUm9tYW4gWWVyeW9taW4gPGxlcm9pLmxp c3RzQGdtYWlsLmNvbT4gd3JvdGU6Cj4gT24gNiBNYXkgMjAxNiBhdCAyMTo0MywgUm9tYW4gWWVy eW9taW4gPGxlcm9pLmxpc3RzQGdtYWlsLmNvbT4gd3JvdGU6Cj4+IE9uIDYgTWF5IDIwMTYgYXQg MTU6NDcsIEplc3BlciBEYW5nYWFyZCBCcm91ZXIgPGJyb3VlckByZWRoYXQuY29tPiB3cm90ZToK Pj4+Cj4+PiBJJ3ZlIGNyZWF0ZWQgYSBPcGVuV1JUIHRpY2tldFsxXSBvbiB0aGlzIGlzc3VlLCBh cyBpdCBzZWVtcyB0aGF0IHNvbWVvbmVbMl0KPj4+IGNsb3NlZCBGZWxpeCdlcyBPcGVuV1JUIGVt YWlsIGFjY291bnQgKGJhZCBjaG9pY2UhIGVtYWlscyBib3VuY2luZykuCj4+PiBTb3VuZHMgbGlr ZSBPcGVuV1JUIGFuZCB0aGUgTEVERSBodHRwczovL3d3dy5sZWRlLXByb2plY3Qub3JnLyBwcm9q ZWN0Cj4+PiBpcyBpbiBzb21lIGtpbmQgb2YgY29uZmxpY3QuCj4+Pgo+Pj4gT3BlbldSVCB0aWNr ZXQgWzFdIGh0dHBzOi8vZGV2Lm9wZW53cnQub3JnL3RpY2tldC8yMjM0OQo+Pj4KPj4+IFsyXSBo dHRwOi8vdGhyZWFkLmdtYW5lLm9yZy9nbWFuZS5jb21wLmVtYmVkZGVkLm9wZW53cnQuZGV2ZWwv NDAyOTgvZm9jdXM9NDAzMzUKPj4KPj4gT0ssIHNvLCBhZnRlciBwb3J0aW5nIHRoZSBwYXRjaCB0 byA0LjEgb3BlbndydCBrZXJuZWwgYW5kIHBsYXlpbmcgYQo+PiBiaXQgd2l0aCBmcV9jb2RlbCBs aW1pdHMgSSB3YXMgYWJsZSB0byBnZXQgNDIwTWJwcyBVRFAgbGlrZSB0aGlzOgo+PiB0YyBxZGlz YyByZXBsYWNlIGRldiB3bGFuMCBwYXJlbnQgOjEgZnFfY29kZWwgZmxvd3MgMTYgbGltaXQgMjU2 Cj4KPiBGb3Jnb3QgdG8gbWVudGlvbiwgSSd2ZSByZWR1Y2VkIGRyb3BfYmF0Y2hfc2l6ZSBkb3du IHRvIDMyCgowKSBOb3QgY2xlYXIgdG8gbWUgaWYgdGhhdCdzIHRoZSByaWdodCBsaW5lLCB0aGVy ZSBhcmUgNCB3aWZpIHF1ZXVlcywKYW5kIHRoZSB0aGlyZCBvbmUKaXMgdGhlIEJFIHF1ZXVlLiBU aGF0IGlzIHRvbyBsb3cgYSBsaW1pdCwgYWxzbywgZm9yIG5vcm1hbCB1c2UuIEFuZDoKZm9yIHRo ZSBwdXJwb3NlIG9mIHRoaXMgcGFydGljdWxhciBVRFAgdGVzdCwgZmxvd3MgMTYgaXMgb2ssIGJ1 dCBub3QKaWRlYWwuCgoxKSBXaGF0J3MgdGhlIHRjcCBudW1iZXIgKHdpdGggYSBzaW11bHRhbmVv dXMgcGluZykgd2l0aCB0aGlzIGxhdGVzdCBwYXRjaHNldD8KKEkgY2FyZSBhYm91dCB0Y3AgcGVy Zm9ybWFuY2UgYSBsb3QgbW9yZSB0aGFuIHVkcCBmbG9vZHMgLSBzdXJ2aXZpbmcgYQp1ZHAgZmxv b2QgeWVzLCBwZXJmb3JtYW5jZSwgbm8pCgpiZWZvcmUvYWZ0ZXI/Cgp0YyAtcyBxZGlzYyBzaG93 IGRldiB3bGFuMCBkdXJpbmcvYWZ0ZXIgcmVzdWx0cz8KCklGIHlvdSBhcmUgZG9pbmcgYnVpbGRz IGZvciB0aGUgYXJjaGVyIGM3djIsIEkgY2FuIGpvaW4gaW4gb24gdGhpcy4uLiAoPykKCkkgZGlk IGRvIGEgdGVzdCBvZiB0aGUgYXRoMTBrICJiZWZvcmUiLCBmcV9jb2RlbCAqbmV2ZXIgZW5nYWdl ZCosIGFuZAp0Y3AgaW5kdWNlZCBsYXRlbmNpZXMgdW5kZXIgbG9hZCwgZSBhdCAxMDBtYml0LCBj cmFja2VkIDYwMG1zLCB3aGlsZQpzdGF5aW5nIGZsYXQgKDIwbXMpIGF0IDEwMG1iaXQuIChub3Qg dGhlIHNhbWUgcGF0Y2hlcyB5b3UgYXJlIHRlc3RpbmcpCm9uIHg4Ni4gSSBoYXZlIGdvdCB0Y3Ag MzAwTWJpdCBvdXQgb2YgYW4gb3N4IGJveCwgc2ltaWxhciBsYXRlbmN5LApoYXZlIHlldCB0byBn ZXQgYW55dGhpbmcgbW9yZSBvbiBhbnl0aGluZyBJIGN1cnJlbnRseSBoYXZlCmJlZm9yZS9hZnRl ciBwYXRjaHNldHMuCgpJJ2xsIGdvIGFkZCBmbG9vZGluZyB0byB0aGUgdGVzdHMsIEkganVzdCBm aW5pc2hlZCBhIHNlcmllcyBjb21wYXJpbmcKdHdvIGRpZmZlcmVudCBzcGVlZCBzdGF0aW9ucyBh bmQgbGlmZSB3YXMgZ29vZCBvbiB0aGF0LgoKImJlZm9yZSIgLSBmcV9jb2RlbCBuZXZlciBlbmdh Z2VzLCB3ZSBzZWUgc2Vjb25kcyBvZiBsYXRlbmN5IHVuZGVyIGxvYWQuCgpyb290QGFwdTI6fiMg dGMgLXMgcWRpc2Mgc2hvdyBkZXYgd2xwNHMwCnFkaXNjIG1xIDA6IHJvb3QKIFNlbnQgODU3MDU2 Mzg5MyBieXRlcyA2MzI2OTgzIHBrdCAoZHJvcHBlZCAwLCBvdmVybGltaXRzIDAgcmVxdWV1ZXMg MCkKIGJhY2tsb2cgMGIgMHAgcmVxdWV1ZXMgMApxZGlzYyBmcV9jb2RlbCAwOiBwYXJlbnQgOjEg bGltaXQgMTAyNDBwIGZsb3dzIDEwMjQgcXVhbnR1bSAxNTE0CnRhcmdldCA1LjBtcyBpbnRlcnZh bCAxMDAuMG1zIGVjbgogU2VudCAyMjYyIGJ5dGVzIDE3IHBrdCAoZHJvcHBlZCAwLCBvdmVybGlt aXRzIDAgcmVxdWV1ZXMgMCkKIGJhY2tsb2cgMGIgMHAgcmVxdWV1ZXMgMAogIG1heHBhY2tldCAw IGRyb3Bfb3ZlcmxpbWl0IDAgbmV3X2Zsb3dfY291bnQgMCBlY25fbWFyayAwCiAgbmV3X2Zsb3dz X2xlbiAwIG9sZF9mbG93c19sZW4gMApxZGlzYyBmcV9jb2RlbCAwOiBwYXJlbnQgOjIgbGltaXQg MTAyNDBwIGZsb3dzIDEwMjQgcXVhbnR1bSAxNTE0CnRhcmdldCA1LjBtcyBpbnRlcnZhbCAxMDAu MG1zIGVjbgogU2VudCAyMjA0ODY1NjkgYnl0ZXMgMTUyMDU4IHBrdCAoZHJvcHBlZCAwLCBvdmVy bGltaXRzIDAgcmVxdWV1ZXMgMCkKIGJhY2tsb2cgMGIgMHAgcmVxdWV1ZXMgMAogIG1heHBhY2tl dCAxODE2OCBkcm9wX292ZXJsaW1pdCAwIG5ld19mbG93X2NvdW50IDEgZWNuX21hcmsgMAogIG5l d19mbG93c19sZW4gMCBvbGRfZmxvd3NfbGVuIDEKcWRpc2MgZnFfY29kZWwgMDogcGFyZW50IDoz IGxpbWl0IDEwMjQwcCBmbG93cyAxMDI0IHF1YW50dW0gMTUxNAp0YXJnZXQgNS4wbXMgaW50ZXJ2 YWwgMTAwLjBtcyBlY24KIFNlbnQgODM0MDU0NjUwOSBieXRlcyA2MTYzNDMxIHBrdCAoZHJvcHBl ZCAwLCBvdmVybGltaXRzIDAgcmVxdWV1ZXMgMCkKIGJhY2tsb2cgMGIgMHAgcmVxdWV1ZXMgMAog IG1heHBhY2tldCA2ODEzMCBkcm9wX292ZXJsaW1pdCAwIG5ld19mbG93X2NvdW50IDEyMDA1MCBl Y25fbWFyayAwCiAgbmV3X2Zsb3dzX2xlbiAxIG9sZF9mbG93c19sZW4gMwpxZGlzYyBmcV9jb2Rl bCAwOiBwYXJlbnQgOjQgbGltaXQgMTAyNDBwIGZsb3dzIDEwMjQgcXVhbnR1bSAxNTE0CnRhcmdl dCA1LjBtcyBpbnRlcnZhbCAxMDAuMG1zIGVjbgogU2VudCA5NTI4NTUzIGJ5dGVzIDExNDc3IHBr dCAoZHJvcHBlZCAwLCBvdmVybGltaXRzIDAgcmVxdWV1ZXMgMCkKIGJhY2tsb2cgMGIgMHAgcmVx dWV1ZXMgMAogIG1heHBhY2tldCA2NiBkcm9wX292ZXJsaW1pdCAwIG5ld19mbG93X2NvdW50IDEg ZWNuX21hcmsgMAogIG5ld19mbG93c19sZW4gMSBvbGRfZmxvd3NfbGVuIDAKICBgYGAKCgo+PiBU aGlzIGlzIGNlcnRhaW5seSBiZXR0ZXIgdGhhbiAzME1icHMgYnV0IHN0aWxsIG1vcmUgdGhhbiB0 d28gdGltZXMKPj4gbGVzcyB0aGFuIGJlZm9yZSAoOTAwKS4KClRoZSBudW1iZXIgdGhhdCBJIHN0 aWxsIGFtIG5vdCBzdXJlIHdlIGdvdCBpcyB0aGF0IHlvdSB3ZXJlIHNlbmRpbmcKOTAwbWJpdCB1 ZHAgYW5kIHJlY2lldmluZyA5MDBtYml0IG9uIHRoZSBwcmlvciB0ZXN0cz8KCj4+IFRDUCBhbHNv IGltcHJvdmVkIGEgbGl0dGxlICg1NTAgdG8gfjU5MCkuCgpUaGUgbGltaXQgaXMgcHJvYmFibHkg YSBiaXQgbG93LCBhbHNvLiAgWW91IG1pZ2h0IHdhbnQgdG8gdHJ5IHRhcmdldAoyMG1zIGFzIHdl bGwuCgo+Pgo+PiBGZWxpeCwgb3RoZXJzLCBkbyB5b3Ugd2FudCB0byBzZWUgdGhlIHBvcnRlZCBw YXRjaCwgbWF5YmUgSSBkaWQgc29tZXRoaW5nIHdyb25nPwo+PiBEb2Vzbid0IGxvb2sgbGlrZSBp dCB3aWxsIHNhdmUgYXRoMTBrIGZyb20gcGVyZm9ybWFuY2UgcmVncmVzc2lvbi4KCndoYXQgd2Fz IHRjcCAiYmVmb3JlIj8gKEknbSBzb3JyeSwgc3VjaCBhIGxvbmcgdGhyZWFkKQoKPj4KPj4+Cj4+ PiBPbiBGcmksIDYgTWF5IDIwMTYgMTE6NDI6NDMgKzAyMDAKPj4+IEplc3BlciBEYW5nYWFyZCBC cm91ZXIgPGJyb3VlckByZWRoYXQuY29tPiB3cm90ZToKPj4+Cj4+Pj4gSGkgRmVsaXgsCj4+Pj4K Pj4+PiBUaGlzIGlzIGFuIGltcG9ydGFudCBmaXggZm9yIE9wZW5XUlQsIHBsZWFzZSByZWFkIQo+ Pj4+Cj4+Pj4gT3BlbldSVCBjaGFuZ2VkIHRoZSBkZWZhdWx0IGZxX2NvZGVsIHNjaC0+bGltaXQg ZnJvbSAxMDI0MCB0byAxMDI0LAo+Pj4+IHdpdGhvdXQgYWxzbyBhZGp1c3RpbmcgcS0+Zmxvd3Nf Y250LiAgRXJpYyBleHBsYWlucyBiZWxvdyB0aGF0IHlvdSBtdXN0Cj4+Pj4gYWxzbyBhZGp1c3Qg dGhlIGJ1Y2tldHMgKHEtPmZsb3dzX2NudCkgZm9yIHRoaXMgbm90IHRvIGJyZWFrLiAoSnVzdAo+ Pj4+IGFkanVzdCBpdCB0byAxMjgpCj4+Pj4KPj4+PiBQcm9ibGVtYXRpYyBPcGVuV1JUIGNvbW1p dCBpbiBxdWVzdGlvbjoKPj4+PiAgaHR0cDovL2dpdC5vcGVud3J0Lm9yZy8/cD1vcGVud3J0Lmdp dDthPXBhdGNoO2g9MTJjZDY1NzgwODRlCj4+Pj4gIDEyY2Q2NTc4MDg0ZSAoImtlcm5lbDogcmV2 ZXJ0IGZxX2NvZGVsIHF1YW50dW0gb3ZlcnJpZGUgdG8gcHJldmVudCBpdCBmcm9tIGNhdXNpbmcg dG9vIG11Y2ggY3B1IGxvYWQgd2l0aCBoaWdoZXIgc3BlZWQgKCMyMTMyNikiKQo+Pj4+Cj4+Pj4K Pj4+PiBJIGFsc28gaGlnaGx5IHJlY29tbWVuZCB5b3UgY2hlcnJ5LXBpY2sgdGhpcyB2ZXJ5IHJl Y2VudCBjb21taXQ6Cj4+Pj4gIG5ldC1uZXh0OiA5ZDE4NTYyYTIyNzggKCJmcV9jb2RlbDogYWRk IGJhdGNoIGFiaWxpdHkgdG8gZnFfY29kZWxfZHJvcCgpIikKPj4+PiAgaHR0cHM6Ly9naXQua2Vy bmVsLm9yZy9kYXZlbS9uZXQtbmV4dC9jLzlkMTg1NjJhMjI3Cj4+Pj4KPj4+PiBUaGlzIHNob3Vs ZCBmaXggdmVyeSBoaWdoIENQVSB1c2FnZSBpbi1jYXNlIGZxX2NvZGVsIGdvZXMgaW50byBkcm9w IG1vZGUuCj4+Pj4gVGhlIHByb2JsZW0gaXMgdGhhdCBkcm9wIG1vZGUgd2FzIGNvbnNpZGVyZWQg cmFyZSwgYW5kIGltcGxlbWVudGF0aW9uCj4+Pj4gd2lzZSBpdCB3YXMgY2hvc2VuIHRvIGJlIG1v cmUgZXhwZW5zaXZlICh0byBzYXZlIGN5Y2xlcyBvbiBub3JtYWwgbW9kZSkuCj4+Pj4gVW5mb3J0 dW5hdGVseSBpcyBpdCBlYXN5IHRvIHRyaWdnZXIgd2l0aCBhbiBVRFAgZmxvb2QuIERyb3AgbW9k ZSBpcwo+Pj4+IGVzcGVjaWFsbHkgZXhwZW5zaXZlIGZvciBzbWFsbGVyIGRldmljZXMsIGFzIGl0 IHNjYW5zIGEgNEsgYmlnIGFycmF5LAo+Pj4+IHRodXMgNjQgY2FjaGUgbWlzc2VzIGZvciBzbWFs bCBkZXZpY2VzIQo+Pj4+Cj4+Pj4gVGhlIGZpeCBpcyB0byBhbGxvdyBkcm9wLW1vZGUgdG8gYnVs ay1kcm9wIG1vcmUgcGFja2V0cyB3aGVuIGVudGVyaW5nCj4+Pj4gZHJvcC1tb2RlIChkZWZhdWx0 IDY0IGJ1bGsgZHJvcCkuICBUaGF0IHdheSB3ZSBkb24ndCBzdWRkZW5seQo+Pj4+IGV4cGVyaWVu Y2UgYSBzaWduaWZpY2FudGx5IGhpZ2hlciBwcm9jZXNzaW5nIGNvc3QgcGVyIHBhY2tldCwgYnV0 Cj4+Pj4gaW5zdGVhZCBjYW4gYW1vcnRpemUgdGhpcy4KPj4+Pgo+Pj4+IFRvIEVyaWMsIHNob3Vs ZCB3ZSByZWNvbW1lbmQgT3BlbldSVCB0byBhZGp1c3QgZGVmYXVsdCAobWF4KSA2NCBidWxrCj4+ Pj4gZHJvcCwgZ2l2ZW4gd2UgYWxzbyByZWNvbW1lbmQgYnVja2V0IHNpemUgdG8gYmUgMTI4ID8g KHRodXMgdGhlIGFtb3VudAo+Pj4+IG9mIG1lbW9yeSB0byBzY2FuIGlzIGxlc3MsIGJ1dCB0aGVp ciBDUFUgaXMgYWxzbyBtdWNoIHNtYWxsZXIpLgo+Pj4+Cj4+Pj4gLS1KZXNwZXIKPj4+Pgo+Pj4+ Cj4+Pj4gT24gVGh1LCAwNSBNYXkgMjAxNiAxMjoyMzoyNyAtMDcwMCBFcmljIER1bWF6ZXQgPGVy aWMuZHVtYXpldEBnbWFpbC5jb20+IHdyb3RlOgo+Pj4+Cj4+Pj4gPiBPbiBUaHUsIDIwMTYtMDUt MDUgYXQgMTk6MjUgKzAzMDAsIFJvbWFuIFllcnlvbWluIHdyb3RlOgo+Pj4+ID4gPiBPbiA1IE1h eSAyMDE2IGF0IDE5OjEyLCBFcmljIER1bWF6ZXQgPGVyaWMuZHVtYXpldEBnbWFpbC5jb20+IHdy b3RlOgo+Pj4+ID4gPiA+IE9uIFRodSwgMjAxNi0wNS0wNSBhdCAxNzo1MyArMDMwMCwgUm9tYW4g WWVyeW9taW4gd3JvdGU6Cj4+Pj4gPiA+ID4KPj4+PiA+ID4gPj4KPj4+PiA+ID4gPj4gcWRpc2Mg ZnFfY29kZWwgMDogZGV2IGV0aDAgcm9vdCByZWZjbnQgMiBsaW1pdCAxMDI0cCBmbG93cyAxMDI0 Cj4+Pj4gPiA+ID4+IHF1YW50dW0gMTUxNCB0YXJnZXQgNS4wbXMgaW50ZXJ2YWwgMTAwLjBtcyBl Y24KPj4+PiA+ID4gPj4gIFNlbnQgMTIzMDYgYnl0ZXMgMTI4IHBrdCAoZHJvcHBlZCAwLCBvdmVy bGltaXRzIDAgcmVxdWV1ZXMgMCkKPj4+PiA+ID4gPj4gIGJhY2tsb2cgMGIgMHAgcmVxdWV1ZXMg MAo+Pj4+ID4gPiA+PiAgIG1heHBhY2tldCAwIGRyb3Bfb3ZlcmxpbWl0IDAgbmV3X2Zsb3dfY291 bnQgMCBlY25fbWFyayAwCj4+Pj4gPiA+ID4+ICAgbmV3X2Zsb3dzX2xlbiAwIG9sZF9mbG93c19s ZW4gMAo+Pj4+ID4gPiA+Cj4+Pj4gPiA+ID4KPj4+PiA+ID4gPiBMaW1pdCBvZiAxMDI0IHBhY2tl dHMgYW5kIDEwMjQgZmxvd3MgaXMgbm90IHdpc2UgSSB0aGluay4KPj4+PiA+ID4gPgo+Pj4+ID4g PiA+IChJZiBhbGwgYnVja2V0cyBhcmUgaW4gdXNlLCBlYWNoIGJ1Y2tldCBoYXMgYSB2aXJ0dWFs IHF1ZXVlIG9mIDEgcGFja2V0LAo+Pj4+ID4gPiA+IHdoaWNoIGlzIGFsbW9zdCB0aGUgc2FtZSB0 aGFuIGhhdmluZyBubyBxdWV1ZSBhdCBhbGwpCj4+Pj4gPiA+ID4KPj4+PiA+ID4gPiBJIHN1Z2dl c3QgdG8gaGF2ZSBhdCBsZWFzdCA4IHBhY2tldHMgcGVyIGJ1Y2tldCwgdG8gbGV0IENvZGVsIGhh dmUgYQo+Pj4+ID4gPiA+IGNoYW5jZSB0byB0cmlnZ2VyLgo+Pj4+ID4gPiA+Cj4+Pj4gPiA+ID4g U28geW91IGNvdWxkIGVpdGhlciByZWR1Y2UgbnVtYmVyIG9mIGJ1Y2tldHMgdG8gMTI4IChpZiBt ZW1vcnkgaXMKPj4+PiA+ID4gPiB0aWdodCksIG9yIGluY3JlYXNlIGxpbWl0IHRvIDgxOTIuCj4+ Pj4gPiA+Cj4+Pj4gPiA+IFdpbGwgdHJ5LCBidXQgd2hhdCBJJ3ZlIHBvc3RlZCBpcyBkZWZhdWx0 LCBJIGRpZG4ndCBjaGFuZ2UvY29uZmlndXJlIHRoYXQuCj4+Pj4gPgo+Pj4+ID4gZnFfY29kZWwg aGFzIGEgZGVmYXVsdCBvZiAxMDI0MCBwYWNrZXRzIGFuZCAxMDI0IGJ1Y2tldHMuCj4+Pj4gPgo+ Pj4+ID4gaHR0cDovL2x4ci5mcmVlLWVsZWN0cm9ucy5jb20vc291cmNlL25ldC9zY2hlZC9zY2hf ZnFfY29kZWwuYyNMNDEzCj4+Pj4gPgo+Pj4+ID4gSWYgc29tZW9uZSBjaGFuZ2VkIHRoYXQgaW4g dGhlIGxpbnV4IHZhcmlhbnQgeW91IHVzZSwgaGUgcHJvYmFibHkgc2hvdWxkCj4+Pj4gPiBleHBs YWluIHRoZSByYXRpb25hbGUuCj4+Pgo+Pj4gLS0KPj4+IEJlc3QgcmVnYXJkcywKPj4+ICAgSmVz cGVyIERhbmdhYXJkIEJyb3Vlcgo+Pj4gICBNU2MuQ1MsIFByaW5jaXBhbCBLZXJuZWwgRW5naW5l ZXIgYXQgUmVkIEhhdAo+Pj4gICBBdXRob3Igb2YgaHR0cDovL3d3dy5pcHR2LWFuYWx5emVyLm9y Zwo+Pj4gICBMaW5rZWRJbjogaHR0cDovL3d3dy5saW5rZWRpbi5jb20vaW4vYnJvdWVyCgoKCi0t IApEYXZlIFTDpGh0CkxldCdzIGdvIG1ha2UgaG9tZSByb3V0ZXJzIGFuZCB3aWZpIGZhc3RlciEg V2l0aCBiZXR0ZXIgc29mdHdhcmUhCmh0dHA6Ly9ibG9nLmNlcm93cnQub3JnCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphdGgxMGsgbWFpbGluZyBsaXN0 CmF0aDEwa0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8vYXRoMTBrCg==