--- 1/draft-ietf-tsvwg-rlc-fec-scheme-13.txt 2019-05-28 00:13:10.740052621 -0700 +++ 2/draft-ietf-tsvwg-rlc-fec-scheme-14.txt 2019-05-28 00:13:10.820054643 -0700 @@ -1,19 +1,19 @@ TSVWG V. Roca Internet-Draft B. Teibi Intended status: Standards Track INRIA -Expires: September 6, 2019 March 5, 2019 +Expires: November 28, 2019 May 27, 2019 Sliding Window Random Linear Code (RLC) Forward Erasure Correction (FEC) Schemes for FECFRAME - draft-ietf-tsvwg-rlc-fec-scheme-13 + draft-ietf-tsvwg-rlc-fec-scheme-14 Abstract This document describes two fully-specified Forward Erasure Correction (FEC) Schemes for Sliding Window Random Linear Codes (RLC), one for RLC over the Galois Field (A.K.A. Finite Field) GF(2), a second one for RLC over the Galois Field GF(2^^8), each time with the possibility of controlling the code density. They can protect arbitrary media streams along the lines defined by FECFRAME extended to sliding window FEC codes, as defined in [fecframe-ext]. @@ -32,21 +32,21 @@ Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." - This Internet-Draft will expire on September 6, 2019. + This Internet-Draft will expire on November 28, 2019. Copyright Notice Copyright (c) 2019 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents @@ -509,23 +509,27 @@ function). Similarly, each time a new pseudo-random integer between 0 and 255 inclusive (8-bit pseudo-random integer) is needed, the following function is used: uint32_t tinymt32_rand256 (tinymt32_t * s); These two functions keep respectively the 4 or 8 less significant bits of the 32-bit pseudo-random number generated by the - tinymt32_generate_uint32() function of [tinymt32]. Test results - discussed in Appendix B show that this simple technique, applied to - this PRNG, is in line with the RLC FEC Schemes needs. + tinymt32_generate_uint32() function of [tinymt32]. This is done by + computing the result of a binary AND between the + tinymt32_generate_uint32() output and respectively the 0xF or 0xFF + constants, using 32-bit unsigned integer operations. Figure 2 shows + a possible implementation. Test results discussed in Appendix B show + that this simple technique, applied to this PRNG, is in line with the + RLC FEC Schemes needs. /** * This function outputs a pseudo-random integer in [0 .. 15] range. * * @param s pointer to tinymt internal state. * @return unsigned integer between 0 and 15 inclusive. */ uint32_t tinymt32_rand16(tinymt32_t *s) { @@ -1459,21 +1463,21 @@ Figure 12: tinymt32_rand16(): occurrence statistics across 200 tests, each of them consisting in 200 sequences of 1 pseudo-random number each, with non overlapping PRNG seeds in sequence starting from 0. Figure 12 shows across all 200 tests, for each of the 16 possible pseudo-random number values, the minimum (resp. maximum) number of times it appeared in a test, as well as the average number of occurrences across the 200 tests. Although the distribution is not perfect, there is no major bias. On the opposite, in the same - conditions, the Park Miller linear congruential PRNG of [RFC5170] + conditions, the Park-Miller linear congruential PRNG of [RFC5170] with a result scaled down to 4-bit values, using seeds in sequence starting from 1, returns systematically 0 as the first value during some time, then after a certain repair key value threshold, it systematically returns 1, etc. Evaluation of tinymt32_rand256(): The same approach is used here. Results (not shown) are similar: occurrences vary between 7,810,3368 (i.e., 0.3905%) and 7,814,7952 (i.e., 0.3907%). Here also we see a convergence to the theoretical uniform distribution where each of the 256 possible values would appear exactly 1 / 256 * 100 = 0.390625% of