<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><a href="https://github.com/shemminger/iproute2/blob/master/netem/README.distribution">https://github.com/shemminger/iproute2/blob/master/netem/README.distribution</a><div><br></div><div><br></div><div><div>Hi, Kindly I need to create tables of distribution other than those already provided (Gaussian, Pareto or Experimental).</div><div>I analyzed the maketable.c but I can not understand how this table is obtained.</div><div><br></div><div>Could someone help me order?</div><div><br></div><div>Is there an easier way to create even through matlab and then apply it to netem?</div><div><br></div><div>If I make a certain number of pings and in it for the delays, by the experimental method to get a table as a reference guide and everything works!</div></div><div><br></div><div><table class="highlight tab-size js-file-line-container" data-tab-size="8" style="box-sizing: border-box; border-collapse: collapse; border-spacing: 0px; tab-size: 8; color: rgb(51, 51, 51); font-family: Helvetica, arial, nimbussansl, liberationsans, freesans, clean, sans-serif, 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 13px; line-height: 14.5600004196167px; widows: 1; background-color: rgb(255, 255, 255); position: static; z-index: auto;"><tbody style="box-sizing: border-box;"><tr style="box-sizing: border-box;"><td id="L23" class="blob-num js-line-number" data-line-number="23" style="box-sizing: border-box; padding: 0px 10px; width: 50.4000015258789px; min-width: 50px; white-space: nowrap; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 12px; line-height: 18px; color: rgba(0, 0, 0, 0.298039); vertical-align: top; text-align: right; border-style: solid; border-color: rgb(238, 238, 238); border-width: 0px 1px 0px 0px; cursor: pointer; -webkit-user-select: none;"></td><td id="LC23" class="blob-code blob-code-inner js-file-line" style="box-sizing: border-box; padding: 0px 10px; position: relative; vertical-align: top; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 12px; white-space: pre; overflow: visible; word-wrap: normal;"><table class="highlight tab-size js-file-line-container" data-tab-size="8" style="box-sizing: border-box; border-collapse: collapse; border-spacing: 0px; tab-size: 8; color: rgb(51, 51, 51); font-family: Helvetica, arial, nimbussansl, liberationsans, freesans, clean, sans-serif, 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 13px; line-height: 14.5600004196167px; position: static; z-index: auto;"><tbody style="box-sizing: border-box;"><tr style="box-sizing: border-box;"><td id="LC22" class="blob-code blob-code-inner js-file-line" style="box-sizing: border-box; padding: 0px 10px; position: relative; vertical-align: top; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 12px; white-space: pre; overflow: visible; word-wrap: normal;"><div><br></div></td></tr></tbody></table></td></tr></tbody></table><div><div>F is monotonically increasing, so has an inverse function G, with range</div><div>0 to 1. &nbsp;Here, G(t) = the x such that P(X &lt;= x) = t. &nbsp;(In general, G may</div><div>have singularities if X has point masses, i.e., points x such that</div><div>P(X = x) &gt; 0.)</div><div><br></div><div>Now we create a tabular representation of G as follows: &nbsp;Choose some table</div><div>size N, and for the ith entry, put in G(i/N). &nbsp;Let's call this table T.</div><div><br></div><div>The claim now is, I can create a (discrete) random variable Y whose</div><div>distribution has the same approximate "shape" as X, simply by letting</div><div>Y = T(U), where U is a discrete uniform random variable with range 1 to N.</div><div>To see this, it's enough to show that Y's cumulative distribution function,</div><div>(let's call it H), is a discrete approximation to F. &nbsp;But</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>H(x) = P(Y &lt;= x)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span> &nbsp; &nbsp; = (# of entries in T &lt;= x) / N &nbsp; -- as Y chosen uniformly from T</div><div><span class="Apple-tab-span" style="white-space:pre">        </span> &nbsp; &nbsp; = i/N, where i is the largest integer such that G(i/N) &lt;= x</div><div><span class="Apple-tab-span" style="white-space:pre">        </span> &nbsp; &nbsp; = i/N, where i is the largest integer such that i/N &lt;= F(x)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span> &nbsp; &nbsp; <span class="Apple-tab-span" style="white-space:pre">                </span>-- since G and F are inverse functions (and F is</div><div><span class="Apple-tab-span" style="white-space:pre">        </span> &nbsp; &nbsp; <span class="Apple-tab-span" style="white-space:pre">                </span> &nbsp; increasing)</div><div><span class="Apple-tab-span" style="white-space:pre">        </span> &nbsp; &nbsp; = floor(N*F(x))/N</div><div><br></div><div>as desired.</div></div></div><div><br></div><div>for example?</div><div><br></div><div><br></div><div>and</div><div><br></div><div><div>1. maketable does the steps 2-4 above, and then generates the appropriate</div><div>header file. &nbsp;So if you have your own time distribution, you can generate</div><div>the header simply by:</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>maketable &lt; time.values &gt; header.h</div></div><div><br></div><div><br></div><div>for what is this?</div><div><br></div><div>Thanks</div><div><br></div><div><br></div><div><br></div></body></html>