summaryrefslogtreecommitdiffstats
path: root/3rdparty/openpgm-svn-r1085/pgm/fec-block.txt
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/openpgm-svn-r1085/pgm/fec-block.txt')
-rw-r--r--3rdparty/openpgm-svn-r1085/pgm/fec-block.txt66
1 files changed, 66 insertions, 0 deletions
diff --git a/3rdparty/openpgm-svn-r1085/pgm/fec-block.txt b/3rdparty/openpgm-svn-r1085/pgm/fec-block.txt
new file mode 100644
index 0000000..8278fb6
--- /dev/null
+++ b/3rdparty/openpgm-svn-r1085/pgm/fec-block.txt
@@ -0,0 +1,66 @@
+from rfc5052
+------------
+
+
+step one:
+
+ Input:
+
+ B -- Maximum Source Block Length, i.e., the maximum number of source
+ symbols per source block
+
+ L -- Transfer Length in octets
+
+ E -- Encoding Symbol Length in octets
+
+ Output:
+
+ T -- the number of source symbols in the object.
+
+ N -- the number of source blocks into which the object shall be
+ partitioned.
+
+ Algorithm:
+
+ 1. The number of source symbols in the transport object is computed
+ as T = ceil[L/E].
+
+ 2. The transport object shall be partitioned into N = ceil[T/B]
+ source blocks.
+
+
+B = maximum TPDU - IP header ( - UDP header ) - PGM header
+L = APDU length (pgm_transport_send length parameter).
+E = 1 (fixed).
+
+T = ceil( L / E ) = ceil( L / 1 ) = L
+N = ceil( T / B ) = ceil( L / B )
+
+step two:
+
+ Input:
+
+ T -- the number of source symbols in the object.
+
+ N -- the number of source blocks into which the object is
+ partitioned.
+
+ Output:
+
+ I -- the number of larger source blocks.
+
+ A_large -- the length of each of the larger source blocks in
+ symbols.
+
+ A_small -- the length of each of the smaller source blocks in
+ symbols.
+
+ Algorithm:
+
+ 1. A_large = ceil[T/N]
+
+ 2. A_small = floor[T/N]
+
+ 3. I = T - A_small * N
+
+