commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] [gnuradio] 01/04: fec: Adds MTU parameter to async and


From: git
Subject: [Commit-gnuradio] [gnuradio] 01/04: fec: Adds MTU parameter to async and tagged stream blocks.
Date: Fri, 25 Sep 2015 15:38:52 +0000 (UTC)

This is an automated email from the git hooks/post-receive script.

trondeau pushed a commit to branch master
in repository gnuradio.

commit cbd70793b710abe4e92e960f23c3286f7270dd65
Author: Tom Rondeau <address@hidden>
Date:   Thu Sep 24 21:59:36 2015 -0400

    fec: Adds MTU parameter to async and tagged stream blocks.
    
    The maximum transmission unit (MTU, in bytes) sets up the encoders and
    decoders with enough internal buffer space to accommodate frames of
    varying sizes up to the MTU. Proections placed to make sure incoming
    tagged streams and PDUs don't exceed this.
    
    This also fixes a bug in the tagged stream encoder and decoder blocks
    to properly use calculate_output_stream_length.
---
 gr-fec/examples/fecapi_async_decoders.grc    |   79 +-
 gr-fec/examples/fecapi_async_encoders.grc    |   32 +-
 gr-fec/examples/fecapi_tagged_decoders.grc   | 1941 ++++++++++++++------------
 gr-fec/grc/fec_async_decoder.xml             |    9 +-
 gr-fec/grc/fec_async_encoder.xml             |    9 +-
 gr-fec/grc/fec_extended_tagged_decoder.xml   |    9 +-
 gr-fec/grc/fec_extended_tagged_encoder.xml   |    9 +-
 gr-fec/grc/fec_tagged_decoder.xml            |    9 +-
 gr-fec/grc/fec_tagged_encoder.xml            |    9 +-
 gr-fec/include/gnuradio/fec/async_decoder.h  |    6 +-
 gr-fec/include/gnuradio/fec/async_encoder.h  |    6 +-
 gr-fec/include/gnuradio/fec/tagged_decoder.h |    6 +-
 gr-fec/include/gnuradio/fec/tagged_encoder.h |    6 +-
 gr-fec/lib/async_decoder_impl.cc             |   44 +-
 gr-fec/lib/async_decoder_impl.h              |    4 +-
 gr-fec/lib/async_encoder_impl.cc             |   21 +-
 gr-fec/lib/async_encoder_impl.h              |    4 +-
 gr-fec/lib/tagged_decoder_impl.cc            |   21 +-
 gr-fec/lib/tagged_decoder_impl.h             |    4 +-
 gr-fec/lib/tagged_encoder_impl.cc            |   20 +-
 gr-fec/lib/tagged_encoder_impl.h             |    4 +-
 gr-fec/python/fec/extended_tagged_decoder.py |    5 +-
 gr-fec/python/fec/extended_tagged_encoder.py |    4 +-
 23 files changed, 1276 insertions(+), 985 deletions(-)

diff --git a/gr-fec/examples/fecapi_async_decoders.grc 
b/gr-fec/examples/fecapi_async_decoders.grc
index 985d996..e4df315 100644
--- a/gr-fec/examples/fecapi_async_decoders.grc
+++ b/gr-fec/examples/fecapi_async_decoders.grc
@@ -1,5 +1,5 @@
 <?xml version='1.0' encoding='utf-8'?>
-<?grc format='1' created='3.7.8rc1'?>
+<?grc format='1' created='3.7.9'?>
 <flow_graph>
   <timestamp>Tue May 20 15:23:14 2014</timestamp>
   <block>
@@ -105,7 +105,7 @@
     </param>
     <param>
       <key>framebits</key>
-      <value>8000</value>
+      <value>MTU*8</value>
     </param>
     <param>
       <key>_coordinate</key>
@@ -164,7 +164,7 @@
     </param>
     <param>
       <key>framebits</key>
-      <value>8000</value>
+      <value>MTU*8</value>
     </param>
     <param>
       <key>_coordinate</key>
@@ -207,7 +207,7 @@
     </param>
     <param>
       <key>framebits</key>
-      <value>8000</value>
+      <value>MTU*8</value>
     </param>
     <param>
       <key>_coordinate</key>
@@ -266,7 +266,7 @@
     </param>
     <param>
       <key>framebits</key>
-      <value>8000</value>
+      <value>MTU*8</value>
     </param>
     <param>
       <key>_coordinate</key>
@@ -321,7 +321,7 @@
     </param>
     <param>
       <key>framebits</key>
-      <value>8000</value>
+      <value>MTU*8</value>
     </param>
     <param>
       <key>_coordinate</key>
@@ -368,7 +368,7 @@
     </param>
     <param>
       <key>framebits</key>
-      <value>8000</value>
+      <value>MTU*8</value>
     </param>
     <param>
       <key>_coordinate</key>
@@ -407,7 +407,7 @@
     </param>
     <param>
       <key>framebits</key>
-      <value>8000</value>
+      <value>MTU*8</value>
     </param>
     <param>
       <key>_coordinate</key>
@@ -566,6 +566,49 @@
     </param>
   </block>
   <block>
+    <key>parameter</key>
+    <param>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(568, 11)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>MTU</value>
+    </param>
+    <param>
+      <key>label</key>
+      <value>MTU</value>
+    </param>
+    <param>
+      <key>short_id</key>
+      <value></value>
+    </param>
+    <param>
+      <key>type</key>
+      <value>intx</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>1500</value>
+    </param>
+  </block>
+  <block>
     <key>analog_random_source_x</key>
     <param>
       <key>alias</key>
@@ -644,7 +687,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(865, 308)</value>
+      <value>(872, 307)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -816,7 +859,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(411, 239)</value>
+      <value>(368, 235)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -863,7 +906,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(860, 224)</value>
+      <value>(872, 235)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1024,7 +1067,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(364, 143)</value>
+      <value>(344, 147)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1279,7 +1322,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(852, 142)</value>
+      <value>(864, 139)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1290,6 +1333,10 @@
       <value>fec_async_decoder_0</value>
     </param>
     <param>
+      <key>mtu</key>
+      <value>MTU</value>
+    </param>
+    <param>
       <key>maxoutbuf</key>
       <value>0</value>
     </param>
@@ -1330,7 +1377,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(600, 143)</value>
+      <value>(552, 139)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1341,6 +1388,10 @@
       <value>fec_async_encoder_0</value>
     </param>
     <param>
+      <key>mtu</key>
+      <value>MTU</value>
+    </param>
+    <param>
       <key>maxoutbuf</key>
       <value>0</value>
     </param>
diff --git a/gr-fec/examples/fecapi_async_encoders.grc 
b/gr-fec/examples/fecapi_async_encoders.grc
index d0cef07..c78f937 100644
--- a/gr-fec/examples/fecapi_async_encoders.grc
+++ b/gr-fec/examples/fecapi_async_encoders.grc
@@ -1,5 +1,5 @@
 <?xml version='1.0' encoding='utf-8'?>
-<?grc format='1' created='3.7.8rc1'?>
+<?grc format='1' created='3.7.9'?>
 <flow_graph>
   <timestamp>Mon May 19 16:19:57 2014</timestamp>
   <block>
@@ -168,7 +168,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(378, 490)</value>
+      <value>(376, 547)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -262,7 +262,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(575, 490)</value>
+      <value>(576, 547)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -344,7 +344,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(575, 570)</value>
+      <value>(576, 627)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -550,7 +550,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1034, 297)</value>
+      <value>(1024, 291)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -597,7 +597,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(950, 400)</value>
+      <value>(936, 403)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -675,7 +675,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(577, 297)</value>
+      <value>(584, 291)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -734,7 +734,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(804, 273)</value>
+      <value>(808, 283)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -793,7 +793,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(331, 376)</value>
+      <value>(328, 395)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1060,7 +1060,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(349, 296)</value>
+      <value>(344, 283)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1071,6 +1071,10 @@
       <value>fec_async_encoder_0</value>
     </param>
     <param>
+      <key>mtu</key>
+      <value>1500</value>
+    </param>
+    <param>
       <key>maxoutbuf</key>
       <value>0</value>
     </param>
@@ -1080,7 +1084,7 @@
     </param>
     <param>
       <key>packed</key>
-      <value>False</value>
+      <value>True</value>
     </param>
     <param>
       <key>rev_pack</key>
@@ -1115,7 +1119,7 @@
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(553, 384)</value>
+      <value>(560, 387)</value>
     </param>
     <param>
       <key>_rotation</key>
@@ -1292,7 +1296,7 @@
     </param>
     <param>
       <key>label1</key>
-      <value></value>
+      <value>Async Encoder</value>
     </param>
     <param>
       <key>marker1</key>
@@ -1340,7 +1344,7 @@
     </param>
     <param>
       <key>label2</key>
-      <value></value>
+      <value>Tagged Encoder</value>
     </param>
     <param>
       <key>marker2</key>
diff --git a/gr-fec/examples/fecapi_tagged_decoders.grc 
b/gr-fec/examples/fecapi_tagged_decoders.grc
index 8bae5bd..27cda3a 100644
--- a/gr-fec/examples/fecapi_tagged_decoders.grc
+++ b/gr-fec/examples/fecapi_tagged_decoders.grc
@@ -1,22 +1,27 @@
-<?xml version='1.0' encoding='ASCII'?>
+<?xml version='1.0' encoding='utf-8'?>
+<?grc format='1' created='3.7.9'?>
 <flow_graph>
   <timestamp>Tue May 20 15:45:42 2014</timestamp>
   <block>
     <key>options</key>
     <param>
-      <key>id</key>
-      <value>fecapi_tagged_decoders</value>
+      <key>author</key>
+      <value></value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
-      <key>title</key>
-      <value></value>
+      <key>window_size</key>
+      <value>3000,2000</value>
     </param>
     <param>
-      <key>author</key>
+      <key>category</key>
+      <value>Custom</value>
+    </param>
+    <param>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
@@ -24,16 +29,32 @@
       <value></value>
     </param>
     <param>
-      <key>window_size</key>
-      <value>3000,2000</value>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>_coordinate</key>
+      <value>(10, 10)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
     </param>
     <param>
       <key>generate_options</key>
       <value>qt_gui</value>
     </param>
     <param>
-      <key>category</key>
-      <value>Custom</value>
+      <key>id</key>
+      <value>fecapi_tagged_decoders</value>
+    </param>
+    <param>
+      <key>max_nouts</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>realtime_scheduling</key>
+      <value></value>
     </param>
     <param>
       <key>run_options</key>
@@ -44,1365 +65,1510 @@
       <value>True</value>
     </param>
     <param>
-      <key>max_nouts</key>
-      <value>0</value>
+      <key>thread_safe_setters</key>
+      <value></value>
     </param>
     <param>
-      <key>realtime_scheduling</key>
+      <key>title</key>
       <value></value>
     </param>
+  </block>
+  <block>
+    <key>variable_cc_decoder_def</key>
+    <param>
+      <key>padding</key>
+      <value>True</value>
+    </param>
     <param>
-      <key>alias</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>_coordinate</key>
-      <value>(10, 10)</value>
+      <key>k</key>
+      <value>k</value>
     </param>
     <param>
-      <key>_rotation</key>
-      <value>0</value>
+      <key>dim1</key>
+      <value>1</value>
     </param>
-  </block>
-  <block>
-    <key>variable</key>
     <param>
-      <key>id</key>
-      <value>polys</value>
+      <key>dim2</key>
+      <value>4</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>value</key>
-      <value>[109, 79]</value>
+      <key>state_end</key>
+      <value>-1</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>framebits</key>
+      <value>MTU*8</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(72, 584)</value>
+      <value>(168, 715)</value>
     </param>
     <param>
       <key>_rotation</key>
       <value>0</value>
     </param>
-  </block>
-  <block>
-    <key>variable</key>
     <param>
       <key>id</key>
-      <value>rate</value>
+      <value>dec_cc</value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <key>value</key>
+      <value>"ok"</value>
     </param>
     <param>
-      <key>value</key>
-      <value>2</value>
+      <key>ndim</key>
+      <value>1</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>polys</key>
+      <value>polys</value>
     </param>
     <param>
-      <key>_coordinate</key>
-      <value>(97, 520)</value>
+      <key>rate</key>
+      <value>rate</value>
     </param>
     <param>
-      <key>_rotation</key>
+      <key>state_start</key>
       <value>0</value>
     </param>
+    <param>
+      <key>mode</key>
+      <value>fec.CC_TERMINATED</value>
+    </param>
   </block>
   <block>
-    <key>variable</key>
+    <key>variable_dummy_decoder_def</key>
     <param>
-      <key>id</key>
-      <value>samp_rate</value>
+      <key>comment</key>
+      <value></value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <key>dim1</key>
+      <value>1</value>
     </param>
     <param>
-      <key>value</key>
-      <value>50000</value>
+      <key>dim2</key>
+      <value>1</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>framebits</key>
+      <value>MTU*8</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(12, 73)</value>
+      <value>(560, 635)</value>
     </param>
     <param>
       <key>_rotation</key>
       <value>0</value>
     </param>
-  </block>
-  <block>
-    <key>variable</key>
     <param>
       <key>id</key>
-      <value>length_tag</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <value>dec_dummy</value>
     </param>
     <param>
       <key>value</key>
-      <value>"packet_len"</value>
+      <value>"ok"</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>ndim</key>
+      <value>1</value>
     </param>
+  </block>
+  <block>
+    <key>variable_repetition_decoder_def</key>
     <param>
-      <key>_coordinate</key>
-      <value>(101, 73)</value>
+      <key>comment</key>
+      <value></value>
     </param>
     <param>
-      <key>_rotation</key>
-      <value>0</value>
+      <key>dim1</key>
+      <value>1</value>
     </param>
-  </block>
-  <block>
-    <key>variable</key>
     <param>
-      <key>id</key>
-      <value>k</value>
+      <key>dim2</key>
+      <value>1</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>value</key>
-      <value>7</value>
-    </param>
-    <param>
-      <key>alias</key>
-      <value></value>
+      <key>framebits</key>
+      <value>MTU*8</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(30, 520)</value>
+      <value>(360, 659)</value>
     </param>
     <param>
       <key>_rotation</key>
       <value>0</value>
     </param>
-  </block>
-  <block>
-    <key>variable</key>
     <param>
       <key>id</key>
-      <value>rep</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <value>dec_rep</value>
     </param>
     <param>
       <key>value</key>
-      <value>3</value>
+      <value>"ok"</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>ndim</key>
+      <value>1</value>
     </param>
     <param>
-      <key>_coordinate</key>
-      <value>(365, 759)</value>
+      <key>rep</key>
+      <value>rep</value>
     </param>
     <param>
-      <key>_rotation</key>
-      <value>0</value>
+      <key>prob</key>
+      <value>0.5</value>
     </param>
   </block>
   <block>
-    <key>parameter</key>
-    <param>
-      <key>id</key>
-      <value>puncpat</value>
-    </param>
+    <key>variable_cc_encoder_def</key>
     <param>
-      <key>_enabled</key>
+      <key>padding</key>
       <value>True</value>
     </param>
     <param>
-      <key>label</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>value</key>
-      <value>'11'</value>
+      <key>k</key>
+      <value>k</value>
     </param>
     <param>
-      <key>type</key>
-      <value>string</value>
+      <key>dim1</key>
+      <value>1</value>
     </param>
     <param>
-      <key>short_id</key>
-      <value></value>
+      <key>dim2</key>
+      <value>1</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>framebits</key>
+      <value>MTU*8</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(211, 11)</value>
+      <value>(168, 547)</value>
     </param>
     <param>
       <key>_rotation</key>
       <value>0</value>
     </param>
-  </block>
-  <block>
-    <key>parameter</key>
     <param>
       <key>id</key>
-      <value>MTU</value>
+      <value>enc_cc</value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <key>ndim</key>
+      <value>0</value>
     </param>
     <param>
-      <key>label</key>
-      <value>MTU</value>
+      <key>polys</key>
+      <value>polys</value>
     </param>
     <param>
-      <key>value</key>
-      <value>1000</value>
+      <key>rate</key>
+      <value>rate</value>
     </param>
     <param>
-      <key>type</key>
-      <value>intx</value>
+      <key>state_start</key>
+      <value>0</value>
     </param>
     <param>
-      <key>short_id</key>
-      <value></value>
+      <key>mode</key>
+      <value>fec.CC_TERMINATED</value>
     </param>
+  </block>
+  <block>
+    <key>variable_dummy_encoder_def</key>
     <param>
-      <key>alias</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>_coordinate</key>
-      <value>(291, 11)</value>
+      <key>dim1</key>
+      <value>1</value>
     </param>
     <param>
-      <key>_rotation</key>
-      <value>0</value>
-    </param>
-  </block>
-  <block>
-    <key>parameter</key>
-    <param>
-      <key>id</key>
-      <value>frame_size</value>
+      <key>dim2</key>
+      <value>1</value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>label</key>
-      <value>Frame Size</value>
+      <key>framebits</key>
+      <value>MTU*8</value>
     </param>
     <param>
-      <key>value</key>
-      <value>30</value>
+      <key>_coordinate</key>
+      <value>(560, 547)</value>
     </param>
     <param>
-      <key>type</key>
-      <value>intx</value>
+      <key>_rotation</key>
+      <value>0</value>
     </param>
     <param>
-      <key>short_id</key>
-      <value></value>
+      <key>id</key>
+      <value>enc_dummy</value>
     </param>
     <param>
-      <key>alias</key>
+      <key>ndim</key>
+      <value>1</value>
+    </param>
+  </block>
+  <block>
+    <key>variable_repetition_encoder_def</key>
+    <param>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
+      <key>dim1</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>dim2</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
+      <key>framebits</key>
+      <value>MTU*8</value>
+    </param>
+    <param>
       <key>_coordinate</key>
-      <value>(371, 11)</value>
+      <value>(360, 547)</value>
     </param>
     <param>
       <key>_rotation</key>
       <value>0</value>
     </param>
-  </block>
-  <block>
-    <key>blocks_ctrlport_monitor_performance</key>
     <param>
       <key>id</key>
-      <value>blocks_ctrlport_monitor_performance_0</value>
+      <value>enc_rep</value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>False</value>
+      <key>ndim</key>
+      <value>1</value>
     </param>
     <param>
-      <key>en</key>
-      <value>True</value>
+      <key>rep</key>
+      <value>rep</value>
     </param>
+  </block>
+  <block>
+    <key>variable</key>
     <param>
-      <key>alias</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
       <key>_coordinate</key>
-      <value>(487, 12)</value>
+      <value>(32, 547)</value>
     </param>
     <param>
       <key>_rotation</key>
       <value>0</value>
     </param>
+    <param>
+      <key>id</key>
+      <value>k</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>7</value>
+    </param>
   </block>
   <block>
-    <key>analog_random_source_x</key>
+    <key>variable</key>
     <param>
-      <key>id</key>
-      <value>analog_random_source_x_0</value>
+      <key>comment</key>
+      <value></value>
     </param>
     <param>
       <key>_enabled</key>
-      <value>False</value>
+      <value>True</value>
     </param>
     <param>
-      <key>type</key>
-      <value>byte</value>
+      <key>_coordinate</key>
+      <value>(101, 73)</value>
     </param>
     <param>
-      <key>min</key>
+      <key>_rotation</key>
       <value>0</value>
     </param>
     <param>
-      <key>max</key>
-      <value>256</value>
-    </param>
-    <param>
-      <key>num_samps</key>
-      <value>1000</value>
+      <key>id</key>
+      <value>length_tag</value>
     </param>
     <param>
-      <key>repeat</key>
-      <value>True</value>
+      <key>value</key>
+      <value>"packet_len"</value>
     </param>
+  </block>
+  <block>
+    <key>variable</key>
     <param>
-      <key>alias</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>affinity</key>
-      <value></value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>minoutbuf</key>
-      <value>0</value>
+      <key>_coordinate</key>
+      <value>(72, 611)</value>
     </param>
     <param>
-      <key>maxoutbuf</key>
+      <key>_rotation</key>
       <value>0</value>
     </param>
     <param>
-      <key>_coordinate</key>
-      <value>(12, 142)</value>
+      <key>id</key>
+      <value>polys</value>
     </param>
     <param>
-      <key>_rotation</key>
-      <value>0</value>
+      <key>value</key>
+      <value>[109, 79]</value>
     </param>
   </block>
   <block>
-    <key>blocks_vector_source_x</key>
+    <key>variable</key>
     <param>
-      <key>id</key>
-      <value>blocks_vector_source_x_0_1_0</value>
+      <key>comment</key>
+      <value></value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>type</key>
-      <value>byte</value>
-    </param>
-    <param>
-      <key>vector</key>
-      <value>4*[0, 0, 1, 0, 3, 0, 7, 0, 15, 0, 31, 0, 63, 0, 127]</value>
+      <key>_coordinate</key>
+      <value>(96, 547)</value>
     </param>
     <param>
-      <key>tags</key>
-      <value>[]</value>
+      <key>_rotation</key>
+      <value>0</value>
     </param>
     <param>
-      <key>repeat</key>
-      <value>True</value>
+      <key>id</key>
+      <value>rate</value>
     </param>
     <param>
-      <key>vlen</key>
-      <value>1</value>
+      <key>value</key>
+      <value>2</value>
     </param>
+  </block>
+  <block>
+    <key>variable</key>
     <param>
-      <key>alias</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>affinity</key>
-      <value></value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>minoutbuf</key>
-      <value>0</value>
+      <key>_coordinate</key>
+      <value>(368, 787)</value>
     </param>
     <param>
-      <key>maxoutbuf</key>
+      <key>_rotation</key>
       <value>0</value>
     </param>
     <param>
-      <key>_coordinate</key>
-      <value>(149, 152)</value>
+      <key>id</key>
+      <value>rep</value>
     </param>
     <param>
-      <key>_rotation</key>
-      <value>0</value>
+      <key>value</key>
+      <value>3</value>
     </param>
   </block>
   <block>
-    <key>blocks_throttle</key>
+    <key>variable</key>
     <param>
-      <key>id</key>
-      <value>blocks_throttle_0</value>
+      <key>comment</key>
+      <value></value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>type</key>
-      <value>byte</value>
+      <key>_coordinate</key>
+      <value>(12, 73)</value>
     </param>
     <param>
-      <key>samples_per_second</key>
-      <value>samp_rate</value>
+      <key>_rotation</key>
+      <value>0</value>
     </param>
     <param>
-      <key>vlen</key>
-      <value>1</value>
+      <key>id</key>
+      <value>samp_rate</value>
     </param>
     <param>
-      <key>ignoretag</key>
-      <value>True</value>
+      <key>value</key>
+      <value>50000</value>
     </param>
+  </block>
+  <block>
+    <key>parameter</key>
     <param>
       <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>affinity</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(365, 168)</value>
+      <value>(291, 11)</value>
     </param>
     <param>
       <key>_rotation</key>
       <value>0</value>
     </param>
-  </block>
-  <block>
-    <key>blocks_stream_to_tagged_stream</key>
     <param>
       <key>id</key>
-      <value>blocks_stream_to_tagged_stream_0_0_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <value>MTU</value>
     </param>
     <param>
-      <key>type</key>
-      <value>byte</value>
+      <key>label</key>
+      <value>MTU</value>
     </param>
     <param>
-      <key>vlen</key>
-      <value>1</value>
+      <key>short_id</key>
+      <value></value>
     </param>
     <param>
-      <key>packet_len</key>
-      <value>frame_size</value>
+      <key>type</key>
+      <value>intx</value>
     </param>
     <param>
-      <key>len_tag_key</key>
-      <value>length_tag</value>
+      <key>value</key>
+      <value>1500</value>
     </param>
+  </block>
+  <block>
+    <key>analog_random_source_x</key>
     <param>
       <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>affinity</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>minoutbuf</key>
-      <value>0</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
+      <key>_enabled</key>
+      <value>False</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(551, 160)</value>
+      <value>(12, 142)</value>
     </param>
     <param>
       <key>_rotation</key>
       <value>0</value>
     </param>
-  </block>
-  <block>
-    <key>variable_dummy_decoder_def</key>
     <param>
       <key>id</key>
-      <value>dec_dummy</value>
+      <value>analog_random_source_x_0</value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>value</key>
-      <value>"ok"</value>
+      <key>max</key>
+      <value>256</value>
     </param>
     <param>
-      <key>ndim</key>
-      <value>1</value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>dim1</key>
-      <value>1</value>
+      <key>min</key>
+      <value>0</value>
     </param>
     <param>
-      <key>dim2</key>
-      <value>1</value>
+      <key>num_samps</key>
+      <value>1000</value>
     </param>
     <param>
-      <key>framebits</key>
-      <value>MTU*8</value>
+      <key>type</key>
+      <value>byte</value>
+    </param>
+    <param>
+      <key>repeat</key>
+      <value>True</value>
     </param>
+  </block>
+  <block>
+    <key>blocks_char_to_float</key>
     <param>
       <key>alias</key>
       <value></value>
     </param>
     <param>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
+    </param>
+    <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
       <key>_coordinate</key>
-      <value>(561, 614)</value>
+      <value>(816, 371)</value>
     </param>
     <param>
       <key>_rotation</key>
       <value>0</value>
     </param>
-  </block>
-  <block>
-    <key>variable_dummy_encoder_def</key>
     <param>
       <key>id</key>
-      <value>enc_dummy</value>
+      <value>blocks_char_to_float_1</value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>value</key>
-      <value>"ok"</value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>ndim</key>
+      <key>scale</key>
       <value>1</value>
     </param>
     <param>
-      <key>dim1</key>
+      <key>vlen</key>
       <value>1</value>
     </param>
+  </block>
+  <block>
+    <key>blocks_char_to_float</key>
     <param>
-      <key>dim2</key>
-      <value>1</value>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
-      <key>framebits</key>
-      <value>MTU*8</value>
+      <key>comment</key>
+      <value></value>
     </param>
     <param>
-      <key>alias</key>
+      <key>affinity</key>
       <value></value>
     </param>
     <param>
+      <key>_enabled</key>
+      <value>True</value>
+    </param>
+    <param>
       <key>_coordinate</key>
-      <value>(561, 519)</value>
+      <value>(1256, 371)</value>
     </param>
     <param>
       <key>_rotation</key>
       <value>0</value>
     </param>
-  </block>
-  <block>
-    <key>fec_extended_tagged_decoder</key>
     <param>
       <key>id</key>
-      <value>fec_extended_tagged_decoder_0_1</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>value</key>
-      <value>fec_extended_decoder</value>
+      <value>blocks_char_to_float_1_0</value>
     </param>
     <param>
-      <key>decoder_list</key>
-      <value>dec_cc</value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>ann</key>
-      <value>None</value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>puncpat</key>
-      <value>puncpat</value>
+      <key>scale</key>
+      <value>1</value>
     </param>
     <param>
-      <key>lentagname</key>
-      <value>length_tag</value>
+      <key>vlen</key>
+      <value>1</value>
     </param>
+  </block>
+  <block>
+    <key>blocks_char_to_float</key>
     <param>
       <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>affinity</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>minoutbuf</key>
-      <value>0</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(991, 440)</value>
+      <value>(1256, 483)</value>
     </param>
     <param>
       <key>_rotation</key>
       <value>0</value>
     </param>
-  </block>
-  <block>
-    <key>blocks_char_to_float</key>
     <param>
       <key>id</key>
       <value>blocks_char_to_float_1_0_0</value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>vlen</key>
-      <value>1</value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
       <key>scale</key>
       <value>1</value>
     </param>
     <param>
+      <key>vlen</key>
+      <value>1</value>
+    </param>
+  </block>
+  <block>
+    <key>blocks_char_to_float</key>
+    <param>
       <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>affinity</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>minoutbuf</key>
-      <value>0</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1257, 464)</value>
+      <value>(1256, 259)</value>
     </param>
     <param>
       <key>_rotation</key>
       <value>0</value>
     </param>
-  </block>
-  <block>
-    <key>blocks_char_to_float</key>
     <param>
       <key>id</key>
-      <value>blocks_char_to_float_1_0</value>
+      <value>blocks_char_to_float_1_0_1</value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>vlen</key>
-      <value>1</value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
       <key>scale</key>
       <value>1</value>
     </param>
     <param>
+      <key>vlen</key>
+      <value>1</value>
+    </param>
+  </block>
+  <block>
+    <key>blocks_char_to_float</key>
+    <param>
       <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>affinity</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>minoutbuf</key>
-      <value>0</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1256, 363)</value>
+      <value>(816, 467)</value>
     </param>
     <param>
       <key>_rotation</key>
       <value>0</value>
     </param>
-  </block>
-  <block>
-    <key>blocks_char_to_float</key>
     <param>
       <key>id</key>
       <value>blocks_char_to_float_1_1</value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>vlen</key>
-      <value>1</value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
       <key>scale</key>
       <value>1</value>
     </param>
     <param>
+      <key>vlen</key>
+      <value>1</value>
+    </param>
+  </block>
+  <block>
+    <key>blocks_char_to_float</key>
+    <param>
       <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>affinity</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>minoutbuf</key>
-      <value>0</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(813, 443)</value>
+      <value>(816, 275)</value>
     </param>
     <param>
       <key>_rotation</key>
       <value>0</value>
     </param>
-  </block>
-  <block>
-    <key>blocks_char_to_float</key>
     <param>
       <key>id</key>
-      <value>blocks_char_to_float_1</value>
+      <value>blocks_char_to_float_1_2</value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>vlen</key>
-      <value>1</value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
       <key>scale</key>
       <value>1</value>
     </param>
     <param>
+      <key>vlen</key>
+      <value>1</value>
+    </param>
+  </block>
+  <block>
+    <key>blocks_ctrlport_monitor_performance</key>
+    <param>
       <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>affinity</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>minoutbuf</key>
-      <value>0</value>
+      <key>_enabled</key>
+      <value>False</value>
     </param>
     <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
+      <key>en</key>
+      <value>True</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(811, 363)</value>
+      <value>(487, 12)</value>
     </param>
     <param>
       <key>_rotation</key>
       <value>0</value>
     </param>
-  </block>
-  <block>
-    <key>fec_extended_tagged_decoder</key>
     <param>
       <key>id</key>
-      <value>fec_extended_tagged_decoder_0</value>
+      <value>blocks_ctrlport_monitor_performance_0</value>
     </param>
+  </block>
+  <block>
+    <key>blocks_repack_bits_bb</key>
     <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <key>k</key>
+      <value>8</value>
     </param>
     <param>
-      <key>value</key>
-      <value>fec_extended_decoder</value>
+      <key>l</key>
+      <value>1</value>
     </param>
     <param>
-      <key>decoder_list</key>
-      <value>dec_dummy</value>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
-      <key>ann</key>
-      <value>None</value>
+      <key>comment</key>
+      <value></value>
     </param>
     <param>
-      <key>puncpat</key>
-      <value>puncpat</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>lentagname</key>
-      <value>length_tag</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>endianness</key>
+      <value>gr.GR_LSB_FIRST</value>
     </param>
     <param>
-      <key>affinity</key>
-      <value></value>
+      <key>_coordinate</key>
+      <value>(64, 276)</value>
     </param>
     <param>
-      <key>minoutbuf</key>
+      <key>_rotation</key>
       <value>0</value>
     </param>
     <param>
+      <key>id</key>
+      <value>blocks_repack_bits_bb_0</value>
+    </param>
+    <param>
+      <key>len_tag_key</key>
+      <value>packet_len</value>
+    </param>
+    <param>
       <key>maxoutbuf</key>
       <value>0</value>
     </param>
     <param>
-      <key>_coordinate</key>
-      <value>(990, 238)</value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>_rotation</key>
-      <value>0</value>
+      <key>align_output</key>
+      <value>False</value>
     </param>
   </block>
   <block>
-    <key>qtgui_time_sink_x</key>
+    <key>blocks_stream_to_tagged_stream</key>
     <param>
-      <key>id</key>
-      <value>qtgui_time_sink_x_1</value>
+      <key>alias</key>
+      <value></value>
+    </param>
+    <param>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
       <key>_enabled</key>
       <value>True</value>
     </param>
     <param>
-      <key>type</key>
-      <value>float</value>
+      <key>_coordinate</key>
+      <value>(551, 160)</value>
     </param>
     <param>
-      <key>name</key>
-      <value></value>
+      <key>_rotation</key>
+      <value>0</value>
     </param>
     <param>
-      <key>size</key>
-      <value>2048</value>
+      <key>id</key>
+      <value>blocks_stream_to_tagged_stream_0_0_0</value>
     </param>
     <param>
-      <key>srate</key>
-      <value>samp_rate</value>
+      <key>len_tag_key</key>
+      <value>length_tag</value>
     </param>
     <param>
-      <key>autoscale</key>
-      <value>False</value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>ymin</key>
-      <value>-0.5</value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>ymax</key>
-      <value>1.5</value>
+      <key>packet_len</key>
+      <value>frame_size</value>
     </param>
     <param>
-      <key>nconnections</key>
-      <value>3</value>
+      <key>type</key>
+      <value>byte</value>
     </param>
     <param>
-      <key>update_time</key>
-      <value>0.01</value>
+      <key>vlen</key>
+      <value>1</value>
     </param>
+  </block>
+  <block>
+    <key>blocks_throttle</key>
     <param>
-      <key>entags</key>
-      <value>True</value>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
-      <key>gui_hint</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>tr_mode</key>
-      <value>qtgui.TRIG_MODE_NORM</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>tr_slope</key>
-      <value>qtgui.TRIG_SLOPE_POS</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>tr_level</key>
-      <value>0.1</value>
+      <key>_coordinate</key>
+      <value>(365, 168)</value>
     </param>
     <param>
-      <key>tr_delay</key>
+      <key>_rotation</key>
       <value>0</value>
     </param>
     <param>
-      <key>tr_chan</key>
-      <value>0</value>
+      <key>id</key>
+      <value>blocks_throttle_0</value>
     </param>
     <param>
-      <key>tr_tag</key>
-      <value>""</value>
+      <key>ignoretag</key>
+      <value>True</value>
     </param>
     <param>
-      <key>label1</key>
-      <value>None</value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>width1</key>
-      <value>1</value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>color1</key>
-      <value>"blue"</value>
+      <key>samples_per_second</key>
+      <value>samp_rate</value>
     </param>
     <param>
-      <key>style1</key>
+      <key>type</key>
+      <value>byte</value>
+    </param>
+    <param>
+      <key>vlen</key>
       <value>1</value>
     </param>
+  </block>
+  <block>
+    <key>blocks_vector_source_x</key>
     <param>
-      <key>marker1</key>
-      <value>-1</value>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
-      <key>alpha1</key>
-      <value>1.0</value>
+      <key>comment</key>
+      <value></value>
     </param>
     <param>
-      <key>label2</key>
-      <value>Rep (Rate=3)</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>width2</key>
-      <value>1</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>color2</key>
-      <value>"red"</value>
+      <key>_coordinate</key>
+      <value>(149, 152)</value>
     </param>
     <param>
-      <key>style2</key>
-      <value>1</value>
+      <key>_rotation</key>
+      <value>0</value>
     </param>
     <param>
-      <key>marker2</key>
-      <value>-1</value>
+      <key>id</key>
+      <value>blocks_vector_source_x_0_1_0</value>
     </param>
     <param>
-      <key>alpha2</key>
-      <value>1.0</value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>label3</key>
-      <value>CC (K=7, Rate=2)</value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>width3</key>
-      <value>1</value>
+      <key>type</key>
+      <value>byte</value>
     </param>
     <param>
-      <key>color3</key>
-      <value>"green"</value>
+      <key>repeat</key>
+      <value>True</value>
     </param>
     <param>
-      <key>style3</key>
+      <key>tags</key>
+      <value>[]</value>
+    </param>
+    <param>
+      <key>vlen</key>
       <value>1</value>
     </param>
     <param>
-      <key>marker3</key>
-      <value>-1</value>
+      <key>vector</key>
+      <value>4*[0, 0, 1, 0, 3, 0, 7, 0, 15, 0, 31, 0, 63, 0, 127]</value>
     </param>
+  </block>
+  <block>
+    <key>digital_map_bb</key>
     <param>
-      <key>alpha3</key>
-      <value>1.0</value>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
-      <key>label4</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>width4</key>
-      <value>1</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>color4</key>
-      <value>"black"</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>style4</key>
-      <value>1</value>
+      <key>_coordinate</key>
+      <value>(672, 371)</value>
     </param>
     <param>
-      <key>marker4</key>
-      <value>-1</value>
+      <key>_rotation</key>
+      <value>0</value>
     </param>
     <param>
-      <key>alpha4</key>
-      <value>1.0</value>
+      <key>id</key>
+      <value>digital_map_bb_0</value>
     </param>
     <param>
-      <key>label5</key>
+      <key>map</key>
+      <value>[-1, 1]</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>digital_map_bb</key>
+    <param>
+      <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>width5</key>
-      <value>1</value>
+      <key>comment</key>
+      <value></value>
     </param>
     <param>
-      <key>color5</key>
-      <value>"cyan"</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>style5</key>
-      <value>1</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>marker5</key>
-      <value>-1</value>
+      <key>_coordinate</key>
+      <value>(672, 467)</value>
     </param>
     <param>
-      <key>alpha5</key>
-      <value>1.0</value>
+      <key>_rotation</key>
+      <value>0</value>
     </param>
     <param>
-      <key>label6</key>
-      <value></value>
+      <key>id</key>
+      <value>digital_map_bb_0_0</value>
     </param>
     <param>
-      <key>width6</key>
-      <value>1</value>
+      <key>map</key>
+      <value>[-1, 1]</value>
     </param>
     <param>
-      <key>color6</key>
-      <value>"magenta"</value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>style6</key>
-      <value>1</value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
+  </block>
+  <block>
+    <key>digital_map_bb</key>
     <param>
-      <key>marker6</key>
-      <value>-1</value>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
-      <key>alpha6</key>
-      <value>1.0</value>
+      <key>comment</key>
+      <value></value>
     </param>
     <param>
-      <key>label7</key>
+      <key>affinity</key>
       <value></value>
     </param>
     <param>
-      <key>width7</key>
-      <value>1</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>color7</key>
-      <value>"yellow"</value>
+      <key>_coordinate</key>
+      <value>(672, 275)</value>
+    </param>
+    <param>
+      <key>_rotation</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>id</key>
+      <value>digital_map_bb_0_1</value>
+    </param>
+    <param>
+      <key>map</key>
+      <value>[-1, 1]</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+  </block>
+  <block>
+    <key>fec_extended_tagged_decoder</key>
+    <param>
+      <key>ann</key>
+      <value>None</value>
+    </param>
+    <param>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
-      <key>style7</key>
-      <value>1</value>
+      <key>comment</key>
+      <value></value>
     </param>
     <param>
-      <key>marker7</key>
-      <value>-1</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>alpha7</key>
-      <value>1.0</value>
+      <key>decoder_list</key>
+      <value>dec_dummy</value>
     </param>
     <param>
-      <key>label8</key>
-      <value></value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>width8</key>
-      <value>1</value>
+      <key>_coordinate</key>
+      <value>(992, 227)</value>
     </param>
     <param>
-      <key>color8</key>
-      <value>"dark red"</value>
+      <key>_rotation</key>
+      <value>0</value>
     </param>
     <param>
-      <key>style8</key>
-      <value>1</value>
+      <key>id</key>
+      <value>fec_extended_tagged_decoder_0</value>
     </param>
     <param>
-      <key>marker8</key>
-      <value>-1</value>
+      <key>lentagname</key>
+      <value>length_tag</value>
     </param>
     <param>
-      <key>alpha8</key>
-      <value>1.0</value>
+      <key>mtu</key>
+      <value>MTU</value>
     </param>
     <param>
-      <key>label9</key>
-      <value></value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>width9</key>
-      <value>1</value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>color9</key>
-      <value>"dark green"</value>
+      <key>puncpat</key>
+      <value>puncpat</value>
     </param>
     <param>
-      <key>style9</key>
-      <value>1</value>
+      <key>value</key>
+      <value>fec_extended_decoder</value>
     </param>
+  </block>
+  <block>
+    <key>fec_extended_tagged_decoder</key>
     <param>
-      <key>marker9</key>
-      <value>-1</value>
+      <key>ann</key>
+      <value>None</value>
     </param>
     <param>
-      <key>alpha9</key>
-      <value>1.0</value>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
-      <key>label10</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>width10</key>
-      <value>1</value>
+      <key>affinity</key>
+      <value></value>
     </param>
     <param>
-      <key>color10</key>
-      <value>"blue"</value>
+      <key>decoder_list</key>
+      <value>dec_rep</value>
     </param>
     <param>
-      <key>style10</key>
-      <value>1</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>marker10</key>
-      <value>-1</value>
+      <key>_coordinate</key>
+      <value>(992, 339)</value>
     </param>
     <param>
-      <key>alpha10</key>
-      <value>1.0</value>
+      <key>_rotation</key>
+      <value>0</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>id</key>
+      <value>fec_extended_tagged_decoder_0_0</value>
     </param>
     <param>
-      <key>affinity</key>
-      <value></value>
+      <key>lentagname</key>
+      <value>length_tag</value>
     </param>
     <param>
-      <key>_coordinate</key>
-      <value>(1465, 333)</value>
+      <key>mtu</key>
+      <value>MTU</value>
     </param>
     <param>
-      <key>_rotation</key>
+      <key>maxoutbuf</key>
       <value>0</value>
     </param>
-  </block>
-  <block>
-    <key>blocks_char_to_float</key>
     <param>
-      <key>id</key>
-      <value>blocks_char_to_float_1_0_1</value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <key>puncpat</key>
+      <value>puncpat</value>
     </param>
     <param>
-      <key>vlen</key>
-      <value>1</value>
+      <key>value</key>
+      <value>fec_extended_decoder</value>
     </param>
+  </block>
+  <block>
+    <key>fec_extended_tagged_decoder</key>
     <param>
-      <key>scale</key>
-      <value>1</value>
+      <key>ann</key>
+      <value>None</value>
     </param>
     <param>
       <key>alias</key>
       <value></value>
     </param>
     <param>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
       <key>affinity</key>
       <value></value>
     </param>
     <param>
-      <key>minoutbuf</key>
-      <value>0</value>
+      <key>decoder_list</key>
+      <value>dec_cc</value>
     </param>
     <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(1258, 262)</value>
+      <value>(992, 451)</value>
     </param>
     <param>
       <key>_rotation</key>
       <value>0</value>
     </param>
-  </block>
-  <block>
-    <key>blocks_char_to_float</key>
     <param>
       <key>id</key>
-      <value>blocks_char_to_float_1_2</value>
+      <value>fec_extended_tagged_decoder_0_1</value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <key>lentagname</key>
+      <value>length_tag</value>
     </param>
     <param>
-      <key>vlen</key>
-      <value>1</value>
+      <key>mtu</key>
+      <value>MTU</value>
     </param>
     <param>
-      <key>scale</key>
-      <value>1</value>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>puncpat</key>
+      <value>puncpat</value>
+    </param>
+    <param>
+      <key>value</key>
+      <value>fec_extended_decoder</value>
     </param>
+  </block>
+  <block>
+    <key>fec_extended_tagged_encoder</key>
     <param>
       <key>alias</key>
       <value></value>
     </param>
     <param>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
       <key>affinity</key>
       <value></value>
     </param>
     <param>
-      <key>minoutbuf</key>
-      <value>0</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
+      <key>encoder_list</key>
+      <value>enc_dummy</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(810, 284)</value>
+      <value>(328, 251)</value>
     </param>
     <param>
       <key>_rotation</key>
       <value>0</value>
     </param>
-  </block>
-  <block>
-    <key>fec_extended_tagged_decoder</key>
     <param>
       <key>id</key>
-      <value>fec_extended_tagged_decoder_0_0</value>
+      <value>fec_extended_tagged_encoder_0</value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <key>lentagname</key>
+      <value>length_tag</value>
     </param>
     <param>
-      <key>value</key>
-      <value>fec_extended_decoder</value>
+      <key>mtu</key>
+      <value>MTU</value>
     </param>
     <param>
-      <key>decoder_list</key>
-      <value>dec_rep</value>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>ann</key>
-      <value>None</value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
       <key>puncpat</key>
       <value>puncpat</value>
     </param>
+  </block>
+  <block>
+    <key>fec_extended_tagged_encoder</key>
     <param>
-      <key>lentagname</key>
-      <value>length_tag</value>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
-      <key>alias</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
@@ -1410,600 +1576,573 @@
       <value></value>
     </param>
     <param>
-      <key>minoutbuf</key>
-      <value>0</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
+      <key>encoder_list</key>
+      <value>enc_rep</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(991, 339)</value>
+      <value>(328, 347)</value>
     </param>
     <param>
       <key>_rotation</key>
       <value>0</value>
     </param>
-  </block>
-  <block>
-    <key>digital_map_bb</key>
     <param>
       <key>id</key>
-      <value>digital_map_bb_0_1</value>
+      <value>fec_extended_tagged_encoder_0_0</value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <key>lentagname</key>
+      <value>length_tag</value>
     </param>
     <param>
-      <key>map</key>
-      <value>[-1, 1]</value>
+      <key>mtu</key>
+      <value>MTU</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>minoutbuf</key>
+      <value>0</value>
+    </param>
+    <param>
+      <key>puncpat</key>
+      <value>puncpat</value>
     </param>
+  </block>
+  <block>
+    <key>fec_extended_tagged_encoder</key>
     <param>
       <key>alias</key>
       <value></value>
     </param>
     <param>
+      <key>comment</key>
+      <value></value>
+    </param>
+    <param>
       <key>affinity</key>
       <value></value>
     </param>
     <param>
-      <key>minoutbuf</key>
-      <value>0</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
+      <key>encoder_list</key>
+      <value>enc_cc</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(673, 284)</value>
+      <value>(328, 443)</value>
     </param>
     <param>
       <key>_rotation</key>
       <value>0</value>
     </param>
-  </block>
-  <block>
-    <key>fec_extended_tagged_encoder</key>
     <param>
       <key>id</key>
-      <value>fec_extended_tagged_encoder_0</value>
+      <value>fec_extended_tagged_encoder_0_1</value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <key>lentagname</key>
+      <value>length_tag</value>
+    </param>
+    <param>
+      <key>mtu</key>
+      <value>MTU</value>
+    </param>
+    <param>
+      <key>maxoutbuf</key>
+      <value>0</value>
     </param>
     <param>
-      <key>encoder_list</key>
-      <value>enc_dummy</value>
+      <key>minoutbuf</key>
+      <value>0</value>
     </param>
     <param>
       <key>puncpat</key>
       <value>puncpat</value>
     </param>
-    <param>
-      <key>lentagname</key>
-      <value>length_tag</value>
-    </param>
+  </block>
+  <block>
+    <key>parameter</key>
     <param>
       <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>affinity</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(332, 268)</value>
+      <value>(371, 11)</value>
     </param>
     <param>
       <key>_rotation</key>
       <value>0</value>
     </param>
-  </block>
-  <block>
-    <key>blocks_repack_bits_bb</key>
     <param>
       <key>id</key>
-      <value>blocks_repack_bits_bb_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <value>frame_size</value>
     </param>
     <param>
-      <key>k</key>
-      <value>8</value>
+      <key>label</key>
+      <value>Frame Size</value>
     </param>
     <param>
-      <key>l</key>
-      <value>1</value>
+      <key>short_id</key>
+      <value></value>
     </param>
     <param>
-      <key>len_tag_key</key>
-      <value>packet_len</value>
+      <key>type</key>
+      <value>intx</value>
     </param>
     <param>
-      <key>align_output</key>
-      <value>False</value>
+      <key>value</key>
+      <value>30</value>
     </param>
+  </block>
+  <block>
+    <key>parameter</key>
     <param>
       <key>alias</key>
       <value></value>
     </param>
     <param>
-      <key>affinity</key>
+      <key>comment</key>
       <value></value>
     </param>
     <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(64, 276)</value>
+      <value>(211, 11)</value>
     </param>
     <param>
       <key>_rotation</key>
       <value>0</value>
     </param>
-  </block>
-  <block>
-    <key>digital_map_bb</key>
     <param>
       <key>id</key>
-      <value>digital_map_bb_0</value>
-    </param>
-    <param>
-      <key>_enabled</key>
-      <value>True</value>
-    </param>
-    <param>
-      <key>map</key>
-      <value>[-1, 1]</value>
+      <value>puncpat</value>
     </param>
     <param>
-      <key>alias</key>
+      <key>label</key>
       <value></value>
     </param>
     <param>
-      <key>affinity</key>
+      <key>short_id</key>
       <value></value>
     </param>
     <param>
-      <key>minoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
-    </param>
-    <param>
-      <key>_coordinate</key>
-      <value>(674, 363)</value>
+      <key>type</key>
+      <value>string</value>
     </param>
     <param>
-      <key>_rotation</key>
-      <value>0</value>
+      <key>value</key>
+      <value>'11'</value>
     </param>
   </block>
   <block>
-    <key>digital_map_bb</key>
+    <key>qtgui_time_sink_x</key>
     <param>
-      <key>id</key>
-      <value>digital_map_bb_0_0</value>
+      <key>autoscale</key>
+      <value>False</value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <key>alias</key>
+      <value></value>
     </param>
     <param>
-      <key>map</key>
-      <value>[-1, 1]</value>
+      <key>comment</key>
+      <value></value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>ctrlpanel</key>
+      <value>False</value>
     </param>
     <param>
       <key>affinity</key>
       <value></value>
     </param>
     <param>
-      <key>minoutbuf</key>
-      <value>0</value>
+      <key>entags</key>
+      <value>True</value>
     </param>
     <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
+      <key>_enabled</key>
+      <value>True</value>
     </param>
     <param>
       <key>_coordinate</key>
-      <value>(674, 443)</value>
+      <value>(1456, 345)</value>
     </param>
     <param>
-      <key>_rotation</key>
-      <value>0</value>
+      <key>gui_hint</key>
+      <value></value>
     </param>
-  </block>
-  <block>
-    <key>fec_extended_tagged_encoder</key>
     <param>
-      <key>id</key>
-      <value>fec_extended_tagged_encoder_0_1</value>
+      <key>_rotation</key>
+      <value>0</value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <key>grid</key>
+      <value>False</value>
     </param>
     <param>
-      <key>encoder_list</key>
-      <value>enc_cc</value>
+      <key>id</key>
+      <value>qtgui_time_sink_x_1</value>
     </param>
     <param>
-      <key>puncpat</key>
-      <value>puncpat</value>
+      <key>legend</key>
+      <value>True</value>
     </param>
     <param>
-      <key>lentagname</key>
-      <value>length_tag</value>
+      <key>alpha1</key>
+      <value>1.0</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>color1</key>
+      <value>"blue"</value>
     </param>
     <param>
-      <key>affinity</key>
-      <value></value>
+      <key>label1</key>
+      <value>None</value>
     </param>
     <param>
-      <key>minoutbuf</key>
-      <value>0</value>
+      <key>marker1</key>
+      <value>-1</value>
     </param>
     <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
+      <key>style1</key>
+      <value>1</value>
     </param>
     <param>
-      <key>_coordinate</key>
-      <value>(332, 427)</value>
+      <key>width1</key>
+      <value>1</value>
     </param>
     <param>
-      <key>_rotation</key>
-      <value>0</value>
+      <key>alpha10</key>
+      <value>1.0</value>
     </param>
-  </block>
-  <block>
-    <key>fec_extended_tagged_encoder</key>
     <param>
-      <key>id</key>
-      <value>fec_extended_tagged_encoder_0_0</value>
+      <key>color10</key>
+      <value>"blue"</value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <key>label10</key>
+      <value></value>
     </param>
     <param>
-      <key>encoder_list</key>
-      <value>enc_rep</value>
+      <key>marker10</key>
+      <value>-1</value>
     </param>
     <param>
-      <key>puncpat</key>
-      <value>puncpat</value>
+      <key>style10</key>
+      <value>1</value>
     </param>
     <param>
-      <key>lentagname</key>
-      <value>length_tag</value>
+      <key>width10</key>
+      <value>1</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>alpha2</key>
+      <value>1.0</value>
     </param>
     <param>
-      <key>affinity</key>
-      <value></value>
+      <key>color2</key>
+      <value>"red"</value>
     </param>
     <param>
-      <key>minoutbuf</key>
-      <value>0</value>
+      <key>label2</key>
+      <value>Rep (Rate=3)</value>
     </param>
     <param>
-      <key>maxoutbuf</key>
-      <value>0</value>
+      <key>marker2</key>
+      <value>-1</value>
     </param>
     <param>
-      <key>_coordinate</key>
-      <value>(332, 347)</value>
+      <key>style2</key>
+      <value>1</value>
     </param>
     <param>
-      <key>_rotation</key>
-      <value>0</value>
+      <key>width2</key>
+      <value>1</value>
     </param>
-  </block>
-  <block>
-    <key>variable_repetition_encoder_def</key>
     <param>
-      <key>id</key>
-      <value>enc_rep</value>
+      <key>alpha3</key>
+      <value>1.0</value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <key>color3</key>
+      <value>"green"</value>
     </param>
     <param>
-      <key>value</key>
-      <value>"ok"</value>
+      <key>label3</key>
+      <value>CC (K=7, Rate=2)</value>
     </param>
     <param>
-      <key>ndim</key>
-      <value>1</value>
+      <key>marker3</key>
+      <value>-1</value>
     </param>
     <param>
-      <key>dim1</key>
+      <key>style3</key>
       <value>1</value>
     </param>
     <param>
-      <key>dim2</key>
+      <key>width3</key>
       <value>1</value>
     </param>
     <param>
-      <key>framebits</key>
-      <value>MTU*8</value>
+      <key>alpha4</key>
+      <value>1.0</value>
     </param>
     <param>
-      <key>rep</key>
-      <value>rep</value>
+      <key>color4</key>
+      <value>"black"</value>
     </param>
     <param>
-      <key>alias</key>
+      <key>label4</key>
       <value></value>
     </param>
     <param>
-      <key>_coordinate</key>
-      <value>(362, 519)</value>
+      <key>marker4</key>
+      <value>-1</value>
     </param>
     <param>
-      <key>_rotation</key>
-      <value>0</value>
+      <key>style4</key>
+      <value>1</value>
+    </param>
+    <param>
+      <key>width4</key>
+      <value>1</value>
     </param>
-  </block>
-  <block>
-    <key>variable_cc_encoder_def</key>
     <param>
-      <key>id</key>
-      <value>enc_cc</value>
+      <key>alpha5</key>
+      <value>1.0</value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <key>color5</key>
+      <value>"cyan"</value>
     </param>
     <param>
-      <key>value</key>
-      <value>"ok"</value>
+      <key>label5</key>
+      <value></value>
     </param>
     <param>
-      <key>ndim</key>
-      <value>0</value>
+      <key>marker5</key>
+      <value>-1</value>
     </param>
     <param>
-      <key>dim1</key>
+      <key>style5</key>
       <value>1</value>
     </param>
     <param>
-      <key>dim2</key>
+      <key>width5</key>
       <value>1</value>
     </param>
     <param>
-      <key>framebits</key>
-      <value>MTU*8</value>
+      <key>alpha6</key>
+      <value>1.0</value>
     </param>
     <param>
-      <key>k</key>
-      <value>k</value>
+      <key>color6</key>
+      <value>"magenta"</value>
     </param>
     <param>
-      <key>rate</key>
-      <value>rate</value>
+      <key>label6</key>
+      <value></value>
     </param>
     <param>
-      <key>polys</key>
-      <value>polys</value>
+      <key>marker6</key>
+      <value>-1</value>
     </param>
     <param>
-      <key>state_start</key>
-      <value>0</value>
+      <key>style6</key>
+      <value>1</value>
     </param>
     <param>
-      <key>mode</key>
-      <value>fec.CC_TERMINATED</value>
+      <key>width6</key>
+      <value>1</value>
     </param>
     <param>
-      <key>padding</key>
-      <value>True</value>
+      <key>alpha7</key>
+      <value>1.0</value>
     </param>
     <param>
-      <key>alias</key>
+      <key>color7</key>
+      <value>"yellow"</value>
+    </param>
+    <param>
+      <key>label7</key>
       <value></value>
     </param>
     <param>
-      <key>_coordinate</key>
-      <value>(166, 519)</value>
+      <key>marker7</key>
+      <value>-1</value>
     </param>
     <param>
-      <key>_rotation</key>
-      <value>0</value>
+      <key>style7</key>
+      <value>1</value>
     </param>
-  </block>
-  <block>
-    <key>variable_repetition_decoder_def</key>
     <param>
-      <key>id</key>
-      <value>dec_rep</value>
+      <key>width7</key>
+      <value>1</value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <key>alpha8</key>
+      <value>1.0</value>
     </param>
     <param>
-      <key>value</key>
-      <value>"ok"</value>
+      <key>color8</key>
+      <value>"dark red"</value>
     </param>
     <param>
-      <key>ndim</key>
-      <value>1</value>
+      <key>label8</key>
+      <value></value>
     </param>
     <param>
-      <key>dim1</key>
-      <value>1</value>
+      <key>marker8</key>
+      <value>-1</value>
     </param>
     <param>
-      <key>dim2</key>
+      <key>style8</key>
       <value>1</value>
     </param>
     <param>
-      <key>framebits</key>
-      <value>MTU*8</value>
+      <key>width8</key>
+      <value>1</value>
     </param>
     <param>
-      <key>rep</key>
-      <value>rep</value>
+      <key>alpha9</key>
+      <value>1.0</value>
     </param>
     <param>
-      <key>prob</key>
-      <value>0.5</value>
+      <key>color9</key>
+      <value>"dark green"</value>
     </param>
     <param>
-      <key>alias</key>
+      <key>label9</key>
       <value></value>
     </param>
     <param>
-      <key>_coordinate</key>
-      <value>(362, 631)</value>
+      <key>marker9</key>
+      <value>-1</value>
     </param>
     <param>
-      <key>_rotation</key>
-      <value>0</value>
+      <key>style9</key>
+      <value>1</value>
     </param>
-  </block>
-  <block>
-    <key>variable_cc_decoder_def</key>
     <param>
-      <key>id</key>
-      <value>dec_cc</value>
+      <key>width9</key>
+      <value>1</value>
     </param>
     <param>
-      <key>_enabled</key>
-      <value>True</value>
+      <key>name</key>
+      <value></value>
     </param>
     <param>
-      <key>value</key>
-      <value>"ok"</value>
+      <key>nconnections</key>
+      <value>3</value>
     </param>
     <param>
-      <key>ndim</key>
-      <value>1</value>
+      <key>size</key>
+      <value>2048</value>
     </param>
     <param>
-      <key>dim1</key>
-      <value>1</value>
+      <key>srate</key>
+      <value>samp_rate</value>
     </param>
     <param>
-      <key>dim2</key>
-      <value>4</value>
+      <key>tr_chan</key>
+      <value>0</value>
     </param>
     <param>
-      <key>framebits</key>
-      <value>MTU*8</value>
+      <key>tr_delay</key>
+      <value>0</value>
     </param>
     <param>
-      <key>k</key>
-      <value>k</value>
+      <key>tr_level</key>
+      <value>0.1</value>
     </param>
     <param>
-      <key>rate</key>
-      <value>rate</value>
+      <key>tr_mode</key>
+      <value>qtgui.TRIG_MODE_NORM</value>
     </param>
     <param>
-      <key>polys</key>
-      <value>polys</value>
+      <key>tr_slope</key>
+      <value>qtgui.TRIG_SLOPE_POS</value>
     </param>
     <param>
-      <key>state_start</key>
-      <value>0</value>
+      <key>tr_tag</key>
+      <value>""</value>
     </param>
     <param>
-      <key>state_end</key>
-      <value>-1</value>
+      <key>type</key>
+      <value>float</value>
     </param>
     <param>
-      <key>mode</key>
-      <value>fec.CC_TERMINATED</value>
+      <key>update_time</key>
+      <value>0.01</value>
     </param>
     <param>
-      <key>padding</key>
-      <value>True</value>
+      <key>ylabel</key>
+      <value>Amplitude</value>
     </param>
     <param>
-      <key>alias</key>
-      <value></value>
+      <key>yunit</key>
+      <value>""</value>
     </param>
     <param>
-      <key>_coordinate</key>
-      <value>(166, 693)</value>
+      <key>ymax</key>
+      <value>1.5</value>
     </param>
     <param>
-      <key>_rotation</key>
-      <value>0</value>
+      <key>ymin</key>
+      <value>-0.5</value>
     </param>
   </block>
   <connection>
-    <source_block_id>blocks_vector_source_x_0_1_0</source_block_id>
-    <sink_block_id>blocks_throttle_0</sink_block_id>
-    <source_key>0</source_key>
-    <sink_key>0</sink_key>
-  </connection>
-  <connection>
     <source_block_id>analog_random_source_x_0</source_block_id>
     <sink_block_id>blocks_throttle_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>blocks_throttle_0</source_block_id>
-    <sink_block_id>blocks_stream_to_tagged_stream_0_0_0</sink_block_id>
+    <source_block_id>blocks_char_to_float_1</source_block_id>
+    <sink_block_id>fec_extended_tagged_decoder_0_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>blocks_stream_to_tagged_stream_0_0_0</source_block_id>
-    <sink_block_id>blocks_repack_bits_bb_0</sink_block_id>
+    <source_block_id>blocks_char_to_float_1_0</source_block_id>
+    <sink_block_id>qtgui_time_sink_x_1</sink_block_id>
     <source_key>0</source_key>
-    <sink_key>0</sink_key>
+    <sink_key>1</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_extended_tagged_decoder_0_1</source_block_id>
-    <sink_block_id>blocks_char_to_float_1_0_0</sink_block_id>
+    <source_block_id>blocks_char_to_float_1_0_0</source_block_id>
+    <sink_block_id>qtgui_time_sink_x_1</sink_block_id>
     <source_key>0</source_key>
-    <sink_key>0</sink_key>
+    <sink_key>2</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_extended_tagged_decoder_0_0</source_block_id>
-    <sink_block_id>blocks_char_to_float_1_0</sink_block_id>
+    <source_block_id>blocks_char_to_float_1_0_1</source_block_id>
+    <sink_block_id>qtgui_time_sink_x_1</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
@@ -2014,44 +2153,44 @@
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>blocks_char_to_float_1</source_block_id>
-    <sink_block_id>fec_extended_tagged_decoder_0_0</sink_block_id>
+    <source_block_id>blocks_char_to_float_1_2</source_block_id>
+    <sink_block_id>fec_extended_tagged_decoder_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>blocks_char_to_float_1_0_0</source_block_id>
-    <sink_block_id>qtgui_time_sink_x_1</sink_block_id>
+    <source_block_id>blocks_repack_bits_bb_0</source_block_id>
+    <sink_block_id>fec_extended_tagged_encoder_0</sink_block_id>
     <source_key>0</source_key>
-    <sink_key>2</sink_key>
+    <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>blocks_char_to_float_1_0</source_block_id>
-    <sink_block_id>qtgui_time_sink_x_1</sink_block_id>
+    <source_block_id>blocks_repack_bits_bb_0</source_block_id>
+    <sink_block_id>fec_extended_tagged_encoder_0_0</sink_block_id>
     <source_key>0</source_key>
-    <sink_key>1</sink_key>
+    <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>blocks_char_to_float_1_0_1</source_block_id>
-    <sink_block_id>qtgui_time_sink_x_1</sink_block_id>
+    <source_block_id>blocks_repack_bits_bb_0</source_block_id>
+    <sink_block_id>fec_extended_tagged_encoder_0_1</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_extended_tagged_decoder_0</source_block_id>
-    <sink_block_id>blocks_char_to_float_1_0_1</sink_block_id>
+    <source_block_id>blocks_stream_to_tagged_stream_0_0_0</source_block_id>
+    <sink_block_id>blocks_repack_bits_bb_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>blocks_char_to_float_1_2</source_block_id>
-    <sink_block_id>fec_extended_tagged_decoder_0</sink_block_id>
+    <source_block_id>blocks_throttle_0</source_block_id>
+    <sink_block_id>blocks_stream_to_tagged_stream_0_0_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>digital_map_bb_0_1</source_block_id>
-    <sink_block_id>blocks_char_to_float_1_2</sink_block_id>
+    <source_block_id>blocks_vector_source_x_0_1_0</source_block_id>
+    <sink_block_id>blocks_throttle_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
@@ -2068,26 +2207,32 @@
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>blocks_repack_bits_bb_0</source_block_id>
-    <sink_block_id>fec_extended_tagged_encoder_0</sink_block_id>
+    <source_block_id>digital_map_bb_0_1</source_block_id>
+    <sink_block_id>blocks_char_to_float_1_2</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>fec_extended_tagged_encoder_0</source_block_id>
-    <sink_block_id>digital_map_bb_0_1</sink_block_id>
+    <source_block_id>fec_extended_tagged_decoder_0</source_block_id>
+    <sink_block_id>blocks_char_to_float_1_0_1</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>blocks_repack_bits_bb_0</source_block_id>
-    <sink_block_id>fec_extended_tagged_encoder_0_0</sink_block_id>
+    <source_block_id>fec_extended_tagged_decoder_0_0</source_block_id>
+    <sink_block_id>blocks_char_to_float_1_0</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
   <connection>
-    <source_block_id>blocks_repack_bits_bb_0</source_block_id>
-    <sink_block_id>fec_extended_tagged_encoder_0_1</sink_block_id>
+    <source_block_id>fec_extended_tagged_decoder_0_1</source_block_id>
+    <sink_block_id>blocks_char_to_float_1_0_0</sink_block_id>
+    <source_key>0</source_key>
+    <sink_key>0</sink_key>
+  </connection>
+  <connection>
+    <source_block_id>fec_extended_tagged_encoder_0</source_block_id>
+    <sink_block_id>digital_map_bb_0_1</sink_block_id>
     <source_key>0</source_key>
     <sink_key>0</sink_key>
   </connection>
diff --git a/gr-fec/grc/fec_async_decoder.xml b/gr-fec/grc/fec_async_decoder.xml
index 30bf0d1..9b67d86 100644
--- a/gr-fec/grc/fec_async_decoder.xml
+++ b/gr-fec/grc/fec_async_decoder.xml
@@ -3,7 +3,7 @@
   <name>FEC Async Decoder</name>
   <key>fec_async_decoder</key>
   <import>from gnuradio import fec</import>
-  <make>fec.async_decoder($decoder, $packed, $rev_pack)</make>
+  <make>fec.async_decoder($decoder, $packed, $rev_pack, $mtu)</make>
 
   <param>
     <name>Decoder Obj.</name>
@@ -12,6 +12,13 @@
   </param>
 
   <param>
+    <name>MTU (bytes)</name>
+    <key>mtu</key>
+    <value>1500</value>
+    <type>int</type>
+  </param>
+
+  <param>
     <name>Packed</name>
     <key>packed</key>
     <value>False</value>
diff --git a/gr-fec/grc/fec_async_encoder.xml b/gr-fec/grc/fec_async_encoder.xml
index 55b1acd..68d516f 100644
--- a/gr-fec/grc/fec_async_encoder.xml
+++ b/gr-fec/grc/fec_async_encoder.xml
@@ -3,7 +3,7 @@
   <name>FEC Async Encoder</name>
   <key>fec_async_encoder</key>
   <import>from gnuradio import fec</import>
-  <make>fec.async_encoder($encoder, $packed, $rev_unpack, $rev_pack)</make>
+  <make>fec.async_encoder($encoder, $packed, $rev_unpack, $rev_pack, 
$mtu)</make>
 
   <param>
     <name>Encoder Obj.</name>
@@ -12,6 +12,13 @@
   </param>
 
   <param>
+    <name>MTU (bytes)</name>
+    <key>mtu</key>
+    <value>1500</value>
+    <type>int</type>
+  </param>
+
+  <param>
     <name>Packed</name>
     <key>packed</key>
     <value>False</value>
diff --git a/gr-fec/grc/fec_extended_tagged_decoder.xml 
b/gr-fec/grc/fec_extended_tagged_decoder.xml
index b198da2..59f34d4 100644
--- a/gr-fec/grc/fec_extended_tagged_decoder.xml
+++ b/gr-fec/grc/fec_extended_tagged_decoder.xml
@@ -3,7 +3,7 @@
   <name>FEC Extended Tagged Decoder</name>
   <key>fec_extended_tagged_decoder</key>
   <import>from gnuradio import fec</import>
-  <make>self.$(id) = $(id) = 
fec.extended_tagged_decoder(decoder_obj_list=$decoder_list, ann=$ann, 
puncpat=$puncpat, integration_period=10000, lentagname=$lentagname)</make>
+  <make>self.$(id) = $(id) = 
fec.extended_tagged_decoder(decoder_obj_list=$decoder_list, ann=$ann, 
puncpat=$puncpat, integration_period=10000, lentagname=$lentagname, 
mtu=$mtu)</make>
 
   <param>
     <name>fake val</name>
@@ -21,6 +21,13 @@
   </param>
 
   <param>
+    <name>MTU (bytes)</name>
+    <key>mtu</key>
+    <value>1500</value>
+    <type>int</type>
+  </param>
+
+  <param>
     <name>Annihilator</name>
     <key>ann</key>
     <value>None</value>
diff --git a/gr-fec/grc/fec_extended_tagged_encoder.xml 
b/gr-fec/grc/fec_extended_tagged_encoder.xml
index b525329..92df080 100644
--- a/gr-fec/grc/fec_extended_tagged_encoder.xml
+++ b/gr-fec/grc/fec_extended_tagged_encoder.xml
@@ -3,7 +3,7 @@
   <name>FEC Extended Tagged Encoder</name>
   <key>fec_extended_tagged_encoder</key>
   <import>from gnuradio import fec</import>
-  <make>fec.extended_tagged_encoder(encoder_obj_list=$encoder_list, 
puncpat=$puncpat, lentagname=$lentagname)</make>
+  <make>fec.extended_tagged_encoder(encoder_obj_list=$encoder_list, 
puncpat=$puncpat, lentagname=$lentagname, mtu=$mtu)</make>
 
   <param>
     <name>Encoder Objects</name>
@@ -13,6 +13,13 @@
   </param>
 
   <param>
+    <name>MTU (bytes)</name>
+    <key>mtu</key>
+    <value>1500</value>
+    <type>int</type>
+  </param>
+
+  <param>
     <name>Puncture Pattern</name>
     <key>puncpat</key>
     <value>'11'</value>
diff --git a/gr-fec/grc/fec_tagged_decoder.xml 
b/gr-fec/grc/fec_tagged_decoder.xml
index 9f8cf25..1ea20bd 100644
--- a/gr-fec/grc/fec_tagged_decoder.xml
+++ b/gr-fec/grc/fec_tagged_decoder.xml
@@ -3,7 +3,7 @@
   <name>FEC Tagged Decoder</name>
   <key>fec_tagged_decoder</key>
   <import>from gnuradio import fec</import>
-  <make>fec.tagged_decoder($decoder, $itype.size, $otype.size, 
$lentagname)</make>
+  <make>fec.tagged_decoder($decoder, $itype.size, $otype.size,  $lentagname, 
$mtu)</make>
 
   <param>
     <name>Constituent Decoder</name>
@@ -13,6 +13,13 @@
   </param>
 
   <param>
+    <name>MTU (bytes)</name>
+    <key>mtu</key>
+    <value>1500</value>
+    <type>int</type>
+  </param>
+
+  <param>
     <name>Input Type</name>
     <key>itype</key>
     <type>enum</type>
diff --git a/gr-fec/grc/fec_tagged_encoder.xml 
b/gr-fec/grc/fec_tagged_encoder.xml
index 300d186..30fa20e 100644
--- a/gr-fec/grc/fec_tagged_encoder.xml
+++ b/gr-fec/grc/fec_tagged_encoder.xml
@@ -3,7 +3,7 @@
   <name>FEC Tagged Encoder</name>
   <key>fec_tagged_encoder</key>
   <import>from gnuradio import fec</import>
-  <make>fec.tagged_encoder($encoder, $itype.size, $otype.size, 
$lentagname)</make>
+  <make>fec.tagged_encoder($encoder, $itype.size, $otype.size, $lentagname, 
$mtu)</make>
 
   <param>
     <name>Constituent Encoder</name>
@@ -13,6 +13,13 @@
   </param>
 
   <param>
+    <name>MTU (bytes)</name>
+    <key>mtu</key>
+    <value>1500</value>
+    <type>int</type>
+  </param>
+
+  <param>
     <name>Input Type</name>
     <key>itype</key>
     <type>enum</type>
diff --git a/gr-fec/include/gnuradio/fec/async_decoder.h 
b/gr-fec/include/gnuradio/fec/async_decoder.h
index 05eda2f..eda0915 100644
--- a/gr-fec/include/gnuradio/fec/async_decoder.h
+++ b/gr-fec/include/gnuradio/fec/async_decoder.h
@@ -87,9 +87,13 @@ namespace gr {
        * \param my_decoder An FECAPI decoder object child of the 
generic_decoder class.
        * \param packed Sets output to packed bytes if true; otherwise, 1 bit 
per byte.
        * \param rev_pack If packing bits, should they be reversed?
+       * \param mtu The Maxium Transmission Unit (MTU) of the output
+       *            frame that the block will be able to
+       *            process. Specified in bytes and defaults to 1500.
        */
       static sptr make(generic_decoder::sptr my_decoder,
-                       bool packed=false, bool rev_pack=true);
+                       bool packed=false, bool rev_pack=true,
+                       int mtu=1500);
 
       virtual int general_work(int noutput_items,
                                gr_vector_int& ninput_items,
diff --git a/gr-fec/include/gnuradio/fec/async_encoder.h 
b/gr-fec/include/gnuradio/fec/async_encoder.h
index 0d31bc4..ed68334 100644
--- a/gr-fec/include/gnuradio/fec/async_encoder.h
+++ b/gr-fec/include/gnuradio/fec/async_encoder.h
@@ -82,10 +82,14 @@ namespace gr {
        * \param packed True if working on packed bytes (like PDUs).
        * \param rev_unpack Reverse the unpacking order from input bytes to 
bits.
        * \param rev_pack Reverse the packing order from bits to output bytes.
+       * \param mtu The Maxium Transmission Unit (MTU) of the input
+       *            frame that the block will be able to
+       *            process. Specified in bytes and defaults to 1500.
        */
       static sptr make(generic_encoder::sptr my_encoder,
                        bool packed=false,
-                       bool rev_unpack=true, bool rev_pack=true);
+                       bool rev_unpack=true, bool rev_pack=true,
+                       int mtu=1500);
 
       virtual int general_work(int noutput_items,
                                gr_vector_int& ninput_items,
diff --git a/gr-fec/include/gnuradio/fec/tagged_decoder.h 
b/gr-fec/include/gnuradio/fec/tagged_decoder.h
index 4eba17a..7c8058c 100644
--- a/gr-fec/include/gnuradio/fec/tagged_decoder.h
+++ b/gr-fec/include/gnuradio/fec/tagged_decoder.h
@@ -76,11 +76,15 @@ namespace gr {
        * \param input_item_size The size of the input items (often the 
my_decoder object can tell us this).
        * \param output_item_size The size of the output items (often the 
my_decoder object can tell us this).
        * \param lengthtagname Key name of the tagged stream frame size.
+       * \param mtu The Maxium Transmission Unit (MTU) of the output
+       *            frame that the block will be able to
+       *            process. Specified in bytes and defaults to 1500.
        */
       static sptr make(generic_decoder::sptr my_decoder,
                        size_t input_item_size,
                        size_t output_item_size,
-                       const std::string &lengthtagname="packet_len");
+                       const std::string &lengthtagname="packet_len",
+                       int mtu=1500);
 
       virtual int work(int noutput_items,
                        gr_vector_int& ninput_items,
diff --git a/gr-fec/include/gnuradio/fec/tagged_encoder.h 
b/gr-fec/include/gnuradio/fec/tagged_encoder.h
index 86c2603..435584d 100644
--- a/gr-fec/include/gnuradio/fec/tagged_encoder.h
+++ b/gr-fec/include/gnuradio/fec/tagged_encoder.h
@@ -56,11 +56,15 @@ namespace gr {
        * \param input_item_size size of a block of data for the encoder.
        * \param output_item_size size of a block of data the encoder will 
produce.
        * \param lengthtagname Key name of the tagged stream frame size.
+       * \param mtu The Maxium Transmission Unit (MTU) of the input
+       *            frame that the block will be able to
+       *            process. Specified in bytes and defaults to 1500.
        */
       static sptr make(generic_encoder::sptr my_encoder,
                        size_t input_item_size,
                        size_t output_item_size,
-                       const std::string& lengthtagname="packet_len");
+                       const std::string& lengthtagname="packet_len",
+                       int mtu=1500);
 
       virtual int work(int noutput_items,
                        gr_vector_int& ninput_items,
diff --git a/gr-fec/lib/async_decoder_impl.cc b/gr-fec/lib/async_decoder_impl.cc
index b5ae04b..ed709e8 100644
--- a/gr-fec/lib/async_decoder_impl.cc
+++ b/gr-fec/lib/async_decoder_impl.cc
@@ -34,14 +34,16 @@ namespace gr {
 
     async_decoder::sptr
     async_decoder::make(generic_decoder::sptr my_decoder,
-                        bool packed, bool rev_pack)
+                        bool packed, bool rev_pack,
+                        int mtu)
     {
       return gnuradio::get_initial_sptr
-        (new async_decoder_impl(my_decoder, packed, rev_pack));
+        (new async_decoder_impl(my_decoder, packed, rev_pack, mtu));
     }
 
     async_decoder_impl::async_decoder_impl(generic_decoder::sptr my_decoder,
-                                           bool packed, bool rev_pack)
+                                           bool packed, bool rev_pack,
+                                           int mtu)
       : block("async_decoder",
               io_signature::make(0,0,0),
               io_signature::make(0,0,0)),
@@ -58,6 +60,7 @@ namespace gr {
 
       d_packed = packed;
       d_rev_pack = rev_pack;
+      d_mtu = mtu;
 
       message_port_register_in(d_in_port);
       message_port_register_out(d_out_port);
@@ -71,7 +74,7 @@ namespace gr {
       }
 
       // The maximum frame size is set by the initial frame size of the 
decoder.
-      d_max_bits_in = d_decoder->get_input_size();
+      d_max_bits_in = d_mtu*8 * 1.0/d_decoder->rate();
       d_tmp_f32 = (float*)volk_malloc(d_max_bits_in*sizeof(float),
                                       volk_get_alignment());
 
@@ -81,7 +84,7 @@ namespace gr {
       }
 
       if(d_packed) {
-        int max_bits_out = d_decoder->get_output_size();
+        int max_bits_out = d_mtu*8;
         d_bits_out = (uint8_t*)volk_malloc(max_bits_out*sizeof(uint8_t),
                                            volk_get_alignment());
       }
@@ -114,7 +117,7 @@ namespace gr {
       int diff = d_decoder->rate()*d_decoder->get_input_size() - 
d_decoder->get_output_size();
 
       size_t nbits_in = pmt::length(bits);
-      size_t nbits_out = 0;        
+      size_t nbits_out = 0;
       size_t nblocks = 1;
       bool variable_frame_size = d_decoder->set_frame_size(nbits_out);
 
@@ -127,14 +130,14 @@ namespace gr {
       // set up nbits_out
       if(variable_frame_size){
         nbits_out = nbits_in*d_decoder->rate() - diff;
-        } else {
-            nblocks = nbits_in / d_decoder->get_input_size();
-            nbits_out = nblocks * d_decoder->get_output_size();
-            if(nblocks * d_decoder->get_input_size() != nbits_in){
-                throw std::runtime_error("bad block multiple in!");
-            }
+      }
+      else {
+        nblocks = nbits_in / d_decoder->get_input_size();
+        nbits_out = nblocks * d_decoder->get_output_size();
+        if(nblocks * d_decoder->get_input_size() != nbits_in){
+          throw std::runtime_error("bad block multiple in!");
         }
-
+      }
 
       size_t o0(0);
       const float* f32in = pmt::f32vector_elements(bits, o0);
@@ -148,11 +151,11 @@ namespace gr {
 
         // grow d_tmp_f32 if needed
         if(nbits_in > d_max_bits_in){
-            d_max_bits_in = nbits_in;
-            volk_free(d_tmp_f32);
-            d_tmp_f32 = (float*)volk_malloc(d_max_bits_in*sizeof(float),
-                        volk_get_alignment());
-            }
+          d_max_bits_in = nbits_in;
+          volk_free(d_tmp_f32);
+          d_tmp_f32 = (float*)volk_malloc(d_max_bits_in*sizeof(float),
+                                          volk_get_alignment());
+        }
         memcpy(d_tmp_f32, f32in, nbits_in*sizeof(float));
       }
 
@@ -170,8 +173,9 @@ namespace gr {
       }
       else {
         for(size_t i=0; i<nblocks; i++){
-          
d_decoder->generic_work((void*)&d_tmp_f32[i*d_decoder->get_input_size()], 
(void*)&u8out[i*d_decoder->get_output_size()]);
-          }
+          
d_decoder->generic_work((void*)&d_tmp_f32[i*d_decoder->get_input_size()],
+                                  
(void*)&u8out[i*d_decoder->get_output_size()]);
+        }
       }
 
       meta = pmt::dict_add(meta, pmt::mp("iterations"), 
pmt::mp(d_decoder->get_iterations()) );
diff --git a/gr-fec/lib/async_decoder_impl.h b/gr-fec/lib/async_decoder_impl.h
index 53dc84f..abbe55e 100644
--- a/gr-fec/lib/async_decoder_impl.h
+++ b/gr-fec/lib/async_decoder_impl.h
@@ -43,6 +43,7 @@ namespace gr {
 
       bool d_packed;
       bool d_rev_pack;
+      int d_mtu;
 
       size_t d_max_bits_in;
       float *d_tmp_f32;
@@ -54,7 +55,8 @@ namespace gr {
 
     public:
       async_decoder_impl(generic_decoder::sptr my_decoder,
-                         bool packed=false, bool rev_pack=true);
+                         bool packed=false, bool rev_pack=true,
+                         int mtu=1500);
       ~async_decoder_impl();
 
       int general_work(int noutput_items,
diff --git a/gr-fec/lib/async_encoder_impl.cc b/gr-fec/lib/async_encoder_impl.cc
index b3396e7..346160b 100644
--- a/gr-fec/lib/async_encoder_impl.cc
+++ b/gr-fec/lib/async_encoder_impl.cc
@@ -34,14 +34,16 @@ namespace gr {
 
     async_encoder::sptr
     async_encoder::make(generic_encoder::sptr my_encoder,
-                        bool packed, bool rev_unpack, bool rev_pack)
+                        bool packed, bool rev_unpack, bool rev_pack,
+                        int mtu)
     {
       return gnuradio::get_initial_sptr
-        (new async_encoder_impl(my_encoder, packed, rev_unpack, rev_pack));
+        (new async_encoder_impl(my_encoder, packed, rev_unpack, rev_pack, 
mtu));
     }
 
     async_encoder_impl::async_encoder_impl(generic_encoder::sptr my_encoder,
-                                           bool packed, bool rev_unpack, bool 
rev_pack)
+                                           bool packed, bool rev_unpack, bool 
rev_pack,
+                                           int mtu)
       : block("async_encoder",
               io_signature::make(0,0,0),
               io_signature::make(0,0,0)),
@@ -55,6 +57,7 @@ namespace gr {
       d_packed = packed;
       d_rev_unpack = rev_unpack;
       d_rev_pack = rev_pack;
+      d_mtu = mtu;
 
       message_port_register_in(d_in_port);
       message_port_register_out(d_out_port);
@@ -64,7 +67,7 @@ namespace gr {
 
         d_unpack = new blocks::kernel::unpack_k_bits(8);
 
-        int max_bits_out = d_encoder->get_output_size();
+        int max_bits_out = d_encoder->rate() * d_mtu * 8;
         d_bits_out = (uint8_t*)volk_malloc(max_bits_out*sizeof(uint8_t),
                                            volk_get_alignment());
 
@@ -80,7 +83,7 @@ namespace gr {
 
         // encode_unpacked: Holds packed bits in when input conversion is 
packed
         // encode_packed: holds the output bits of the encoder to be packed
-        int max_bits_in = d_encoder->get_input_size();
+        int max_bits_in = d_mtu*8;
         d_bits_in = (uint8_t*)volk_malloc(max_bits_in*sizeof(uint8_t),
                                           volk_get_alignment());
       }
@@ -108,6 +111,10 @@ namespace gr {
 
       size_t o0 = 0;
       int nbits_in = pmt::length(bits);
+      if(nbits_in > (d_mtu*8)) {
+        throw std::runtime_error("async_encoder: received message larger than 
the MTU.");
+      }
+
       const uint8_t* bits_in = pmt::u8vector_elements(bits, o0);
 
       bool variable_framesize = d_encoder->set_frame_size(nbits_in);
@@ -153,6 +160,10 @@ namespace gr {
 
       size_t o0 = 0;
       int nbytes_in = pmt::length(bytes);
+      if(nbytes_in > d_mtu) {
+        throw std::runtime_error("async_encoder: received message larger than 
the MTU.");
+      }
+
       int nbits_in = 8*nbytes_in;
       const uint8_t* bytes_in = pmt::u8vector_elements(bytes, o0);
 
diff --git a/gr-fec/lib/async_encoder_impl.h b/gr-fec/lib/async_encoder_impl.h
index fe48177..2650543 100644
--- a/gr-fec/lib/async_encoder_impl.h
+++ b/gr-fec/lib/async_encoder_impl.h
@@ -46,6 +46,7 @@ namespace gr {
       bool d_packed;
       bool d_rev_unpack;
       bool d_rev_pack;
+      int d_mtu;
 
       uint8_t* d_bits_in;
       uint8_t* d_bits_out;
@@ -56,7 +57,8 @@ namespace gr {
     public:
       async_encoder_impl(generic_encoder::sptr my_encoder,
                          bool packed=false,
-                         bool rev_unpack=true, bool rev_pack=true);
+                         bool rev_unpack=true, bool rev_pack=true,
+                         int mtu=1500);
       ~async_encoder_impl();
 
       int general_work(int noutput_items,
diff --git a/gr-fec/lib/tagged_decoder_impl.cc 
b/gr-fec/lib/tagged_decoder_impl.cc
index 2841b5f..989a7a7 100644
--- a/gr-fec/lib/tagged_decoder_impl.cc
+++ b/gr-fec/lib/tagged_decoder_impl.cc
@@ -35,24 +35,29 @@ namespace gr {
     tagged_decoder::make(generic_decoder::sptr my_decoder,
                          size_t input_item_size,
                          size_t output_item_size,
-                         const std::string &lengthtagname)
+                         const std::string &lengthtagname,
+                         int mtu)
     {
       return gnuradio::get_initial_sptr
         ( new tagged_decoder_impl(my_decoder, input_item_size,
-                                  output_item_size, lengthtagname));
+                                  output_item_size, lengthtagname,
+                                  mtu));
     }
 
     tagged_decoder_impl::tagged_decoder_impl(generic_decoder::sptr my_decoder,
                                              size_t input_item_size,
                                              size_t output_item_size,
-                                             const std::string &lengthtagname)
+                                             const std::string &lengthtagname,
+                                             int mtu)
       : tagged_stream_block("fec_tagged_decoder",
                             io_signature::make(1, 1, input_item_size),
                             io_signature::make(1, 1, output_item_size),
                             lengthtagname),
-        d_input_item_size(input_item_size), 
d_output_item_size(output_item_size)
+      d_input_item_size(input_item_size), d_output_item_size(output_item_size),
+      d_mtu(mtu)
     {
       d_decoder = my_decoder;
+      d_decoder->set_frame_size(d_mtu*8);
 
       set_relative_rate(d_decoder->rate());
     }
@@ -60,6 +65,10 @@ namespace gr {
     int
     tagged_decoder_impl::calculate_output_stream_length(const gr_vector_int 
&ninput_items)
     {
+      if((ninput_items[0]*d_decoder->rate()) > (d_mtu*8)) {
+        throw std::runtime_error("tagged_encoder: received frame is larger 
than MTU.");
+      }
+      d_decoder->set_frame_size(round(ninput_items[0]*d_decoder->rate()));
       return d_decoder->get_output_size();
     }
 
@@ -76,10 +85,6 @@ namespace gr {
       const unsigned char *in = (unsigned char*)input_items[0];
       unsigned char *out = (unsigned char *)output_items[0];
 
-      d_decoder->set_frame_size(ninput_items[0]*d_decoder->rate());
-      if(noutput_items < d_decoder->get_output_size())
-        return 0;
-
       GR_LOG_DEBUG(d_debug_logger, boost::format("%1%, %2%, %3%")      \
                    % noutput_items % ninput_items[0] % 
d_decoder->get_output_size());
 
diff --git a/gr-fec/lib/tagged_decoder_impl.h b/gr-fec/lib/tagged_decoder_impl.h
index ec81a4f..08af956 100644
--- a/gr-fec/lib/tagged_decoder_impl.h
+++ b/gr-fec/lib/tagged_decoder_impl.h
@@ -34,12 +34,14 @@ namespace gr {
       generic_decoder::sptr d_decoder;
       size_t d_input_item_size;
       size_t d_output_item_size;
+      int d_mtu;
 
     public:
       tagged_decoder_impl(generic_decoder::sptr my_decoder,
                           size_t input_item_size,
                           size_t output_item_size,
-                          const std::string &lengthtagname="packet_len");
+                          const std::string &lengthtagname="packet_len",
+                          int mtu=1500);
       ~tagged_decoder_impl();
 
       int work(int noutput_items,
diff --git a/gr-fec/lib/tagged_encoder_impl.cc 
b/gr-fec/lib/tagged_encoder_impl.cc
index 8461a56..3870fc5 100644
--- a/gr-fec/lib/tagged_encoder_impl.cc
+++ b/gr-fec/lib/tagged_encoder_impl.cc
@@ -35,26 +35,30 @@ namespace gr {
     tagged_encoder::make(generic_encoder::sptr my_encoder,
                          size_t input_item_size,
                          size_t output_item_size,
-                         const std::string& lengthtagname)
+                         const std::string& lengthtagname,
+                         int mtu)
     {
       return gnuradio::get_initial_sptr
         (new tagged_encoder_impl(my_encoder, input_item_size,
                                  output_item_size,
-                                 lengthtagname));
+                                 lengthtagname, mtu));
     }
 
     tagged_encoder_impl::tagged_encoder_impl(generic_encoder::sptr my_encoder,
                                              size_t input_item_size,
                                              size_t output_item_size,
-                                             const std::string& lengthtagname)
+                                             const std::string& lengthtagname,
+                                             int mtu)
       : tagged_stream_block("fec_tagged_encoder",
                             io_signature::make(1, 1, input_item_size),
                             io_signature::make(1, 1, output_item_size),
                             lengthtagname),
-        d_input_item_size(input_item_size), 
d_output_item_size(output_item_size)
+      d_input_item_size(input_item_size), d_output_item_size(output_item_size),
+      d_mtu(mtu)
     {
       d_encoder = my_encoder;
 
+      d_encoder->set_frame_size(d_mtu*8);
       set_relative_rate(d_encoder->rate());
     }
 
@@ -65,6 +69,10 @@ namespace gr {
     int
     tagged_encoder_impl::calculate_output_stream_length(const gr_vector_int 
&ninput_items)
     {
+      if(ninput_items[0] > (d_mtu*8)) {
+        throw std::runtime_error("tagged_encoder: received frame is larger 
than MTU.");
+      }
+      d_encoder->set_frame_size(ninput_items[0]);
       return d_encoder->get_output_size();
     }
 
@@ -77,10 +85,6 @@ namespace gr {
       char *inbuffer  = (char*)input_items[0];
       char *outbuffer = (char*)output_items[0];
 
-      d_encoder->set_frame_size(ninput_items[0]);
-      if(noutput_items < d_encoder->get_output_size())
-        return 0;
-
       GR_LOG_DEBUG(d_debug_logger, boost::format("nout: %1%   nin: %2%   ret: 
%3%") \
                    % noutput_items % ninput_items[0] % 
d_encoder->get_output_size());
 
diff --git a/gr-fec/lib/tagged_encoder_impl.h b/gr-fec/lib/tagged_encoder_impl.h
index 55b3553..a119607 100644
--- a/gr-fec/lib/tagged_encoder_impl.h
+++ b/gr-fec/lib/tagged_encoder_impl.h
@@ -34,12 +34,14 @@ namespace gr {
       generic_encoder::sptr d_encoder;
       size_t d_input_item_size;
       size_t d_output_item_size;
+      int d_mtu;
 
     public:
       tagged_encoder_impl(generic_encoder::sptr my_encoder,
                           size_t input_item_size,
                           size_t output_item_size,
-                          const std::string &lengthtagname="packet_len");
+                          const std::string &lengthtagname="packet_len",
+                          int mtu=1500);
       ~tagged_encoder_impl();
 
       int work(int noutput_items,
diff --git a/gr-fec/python/fec/extended_tagged_decoder.py 
b/gr-fec/python/fec/extended_tagged_decoder.py
index 1865cbf..9713907 100644
--- a/gr-fec/python/fec/extended_tagged_decoder.py
+++ b/gr-fec/python/fec/extended_tagged_decoder.py
@@ -79,7 +79,8 @@ class extended_tagged_decoder(gr.hier_block2):
     }
 
     def __init__(self, decoder_obj_list, ann=None, puncpat='11',
-                 integration_period=10000, flush=None, rotator=None, 
lentagname=None):
+                 integration_period=10000, flush=None, rotator=None, 
lentagname=None,
+                 mtu=1500):
         gr.hier_block2.__init__(self, "extended_decoder",
                                 gr.io_signature(1, 1, gr.sizeof_float),
                                 gr.io_signature(1, 1, gr.sizeof_char))
@@ -163,7 +164,7 @@ class extended_tagged_decoder(gr.hier_block2):
                 self.blocks.append(fec.tagged_decoder(decoder_obj,
                                                       
fec.get_decoder_input_item_size(decoder_obj),
                                                       
fec.get_decoder_output_item_size(decoder_obj),
-                                                      lentagname))
+                                                      lentagname, mtu))
 
         if fec.get_decoder_output_conversion(decoder_obj) == "unpack":
             self.blocks.append(blocks.packed_to_unpacked_bb(1, 
gr.GR_MSB_FIRST));
diff --git a/gr-fec/python/fec/extended_tagged_encoder.py 
b/gr-fec/python/fec/extended_tagged_encoder.py
index 2f78b8e..d3cf1d8 100644
--- a/gr-fec/python/fec/extended_tagged_encoder.py
+++ b/gr-fec/python/fec/extended_tagged_encoder.py
@@ -26,7 +26,7 @@ import fec_swig as fec
 from bitflip import read_bitlist
 
 class extended_tagged_encoder(gr.hier_block2):
-    def __init__(self, encoder_obj_list, puncpat=None, lentagname=None):
+    def __init__(self, encoder_obj_list, puncpat=None, lentagname=None, 
mtu=1500):
         gr.hier_block2.__init__(self, "extended_tagged_encoder",
                                 gr.io_signature(1, 1, gr.sizeof_char),
                                 gr.io_signature(1, 1, gr.sizeof_char))
@@ -66,7 +66,7 @@ class extended_tagged_encoder(gr.hier_block2):
             self.blocks.append(fec.tagged_encoder(encoder_obj,
                                                   gr.sizeof_char,
                                                   gr.sizeof_char,
-                                                  lentagname))
+                                                  lentagname, mtu))
 
         if self.puncpat != '11':
             self.blocks.append(fec.puncture_bb(len(puncpat), 
read_bitlist(puncpat), 0))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]