{"id":580,"date":"2018-10-26T22:17:05","date_gmt":"2018-10-26T22:17:05","guid":{"rendered":"http:\/\/feralpacket.org\/?p=580"},"modified":"2018-10-26T22:17:05","modified_gmt":"2018-10-26T22:17:05","slug":"qos-weighted-random-early-detection-wred-notes","status":"publish","type":"post","link":"https:\/\/feralpacket.org\/?p=580","title":{"rendered":"QoS Weighted Random Early Detection (WRED) Notes"},"content":{"rendered":"<p><span style=\"font-weight: bold;\">QoS Weighted Random Early Detection (WRED)<\/span><\/p>\n<p><span style=\"font-weight: bold;\">Congestion Avoidance<\/span><\/p>\n<p>\u00a0&#8211; Avoiding tail drop<\/p>\n<p>\u00a0&#8211; WRED<\/p>\n<p>\u00a0&#8211; Explicit Congestion Notification (ECN)<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/feralpacket.org\/wp-content\/uploads\/2018\/10\/104bfbb1bbb073d6ec31e19ec5716824.jpeg\" style=\"cursor: default;cursor: default;cursor: default;cursor: default;cursor: default;\" width=\"600\" height=\"\"\/><\/p>\n<p>To avoid tail drop, the incoming packet rate of the packets needs to be lowered<\/p>\n<p>\u00a0&#8211; Pick random TCP packets to drop<\/p>\n<p>\u00a0 \u00a0 \u00a0-&gt; TCP window of the sending and receiving endpoints will be reduced<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 -&gt; Lowers the sending rate<\/p>\n<p>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 -&gt; Congestion Window Size (CWND)<\/p>\n<p>\u00a0 \u00a0 \u00a0-&gt; Packets within the queue are dropped when the queue is almost full<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/feralpacket.org\/wp-content\/uploads\/2018\/10\/e337684f50317f1797be78b794303cca.jpeg\" style=\"cursor: default;cursor: default;cursor: default;cursor: default;cursor: default;\" width=\"600\" height=\"\"\/><\/p>\n<p>RED Activates when queue-depth reaches minimum threshold and it keeps dropping more packets until it reaches maximum threshold, at which point tail drops start<\/p>\n<p>The maximum percentage of packets dropped just maximum queue threshold is reached is called the Mark Probability Dnominator<\/p>\n<p>max percent = 1 \/ MPD<\/p>\n<p>WRED<\/p>\n<p>\u00a0&#8211; Per marking<\/p>\n<p>\u00a0 \u00a0 \u00a0-&gt; Minimum threshold<\/p>\n<p>\u00a0 \u00a0 \u00a0-&gt; Maximum threshold<\/p>\n<p>\u00a0 \u00a0 \u00a0-&gt; MPD<\/p>\n<p>Scenario<\/p>\n<p>\u00a0&#8211; Drop DSCP EF packets only when<\/p>\n<p>\u00a0 \u00a0 \u00a0-&gt; min threshold = 60<\/p>\n<p>\u00a0 \u00a0 \u00a0-&gt; max threshold = 64<\/p>\n<p>\u00a0 \u00a0 \u00a0-&gt; MPD = 50<\/p>\n<p>\u00a0&#8211; Drop AF11 packets only when<\/p>\n<p>\u00a0 \u00a0 \u00a0-&gt; min threshold = 50<\/p>\n<p>\u00a0 \u00a0 \u00a0-&gt; max threshold = 64<\/p>\n<p>\u00a0 \u00a0 \u00a0-&gt; MPD = 20<\/p>\n<p>\u00a0&#8211; Drop everything else when<\/p>\n<p>\u00a0 \u00a0 \u00a0-&gt; min threshold = 40<\/p>\n<p>\u00a0 \u00a0 \u00a0-&gt; max threshold = 64<\/p>\n<p>\u00a0 \u00a0 \u00a0-&gt; MPD = 10<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/feralpacket.org\/wp-content\/uploads\/2018\/10\/c7a57d807fa65bcdaa35454ef3f47310.jpeg\" style=\"cursor: default;cursor: default;cursor: default;cursor: default;cursor: default;\" width=\"600\" height=\"\"\/><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">policy-map POLICY1<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0class class-default<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 random-detect<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 random-detect { dscp-based | precedence-based }<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 random-detect { dscp | precednce } &lt;min&gt; &lt;max&gt; &lt;mpd&gt;<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">policy-map POLICY1<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0class class-default<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 random-detect<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 random-detect dscp-based<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 random-detect dscp ef 60 64 40<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 random-detect af11 50 64 20<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 random-detect default 40 64 10<\/span><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/feralpacket.org\/wp-content\/uploads\/2018\/10\/dd2a41870dca833931361d253260e552.jpeg\" style=\"cursor: default;cursor: default;cursor: default;cursor: default;cursor: default;\" width=\"600\" height=\"\"\/><\/p>\n<p><span style=\"font-weight: bold;\">Exponential Weighting Constant<\/span><\/p>\n<p>\u00a0&#8211; The average queue-depth is calculated by using an exponential weighting constant which by default is 9<\/p>\n<p>\u00a0 \u00a0 \u00a0-&gt; A higher value means slower changes to the average queue-depth<\/p>\n<p>\u00a0 \u00a0 \u00a0-&gt; A lower value means faster changes to the average queue-depth<\/p>\n<p>\u00a0 \u00a0 \u00a0-&gt; Per class-map<\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">policy-map POLICY1<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0class class-default<\/span><\/p>\n<p><span style=\"background-color:rgb(255, 250, 165);-evernote-highlight:true;\">\u00a0 random-detect exponential-weighting-constant &lt;value&gt;<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>QoS Weighted Random Early Detection (WRED)<\/p>\n","protected":false},"author":1,"featured_media":576,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[31,45],"class_list":["post-580","post","type-post","status-publish","format-standard","hentry","category-ccie","tag-published","tag-qos"],"_links":{"self":[{"href":"https:\/\/feralpacket.org\/index.php?rest_route=\/wp\/v2\/posts\/580","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/feralpacket.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/feralpacket.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/feralpacket.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/feralpacket.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=580"}],"version-history":[{"count":1,"href":"https:\/\/feralpacket.org\/index.php?rest_route=\/wp\/v2\/posts\/580\/revisions"}],"predecessor-version":[{"id":613,"href":"https:\/\/feralpacket.org\/index.php?rest_route=\/wp\/v2\/posts\/580\/revisions\/613"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/feralpacket.org\/index.php?rest_route=\/wp\/v2\/media\/576"}],"wp:attachment":[{"href":"https:\/\/feralpacket.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=580"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/feralpacket.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=580"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/feralpacket.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=580"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}