title: Building scapy packets with PacketFields shorter than 8 bits
body: <p>I'm trying to add a new protocol with scapy, and I'm running into difficulties building packets that store other BitEnumField "packets" that are under one byte of length. I was wondering if there is a workaround to make it work (without bundling packets into full byte fields). Here is the example:</p>
  
  <pre><code>from scapy.packet import Packet
  from scapy.fields import *    
  
  class Status(Packet):
      name = '4 bit status'
  
      fields_desc = [
          BitEnumField('a', 0, 1, {0:'Disabled', 1:'Enabled'}),
          BitEnumField('b', 0, 1, {0:'Disabled', 1:'Active'}),
          BitEnumField('c', 0, 1, {0:'Disabled', 1:'Active'}),
          BitEnumField('d', 0, 1, {0:'Disabled', 1:'Active'}),
          ]
  
      #this is added for debug purposes only
      def post_build(self, pkt,pay):
          print "pkt:", pkt, "type:", type(pkt)
          return pkt+pay
  </code></pre>
  
  <p>Now I can understand why <code>Status().show2()</code> fails with <code>pkt</code> being only 4 bits long. but this one dies too (I guess because each packet is formed independently):</p>
  
  <pre><code>class TotalStatus(Packet):
      name = "8 bit status"
  
      fields_desc = [
          PacketField('axis0', Status(), Status),
          PacketField('axis1', Status(), Status),
          ]
  </code></pre>
  
  <p><code>TotalStatus().show2()</code> gives you lengthy traceback that ends in <code>self.post_build()</code> unable to cat <code>pkt</code> tuple and the rest of payload, which is empty string. I.e.:<code>&gt;&gt;&gt; TypeError: can only concatenate tuple (not "str") to tuple</code></p>
  
  <p>Is there any way to avoid bundling of bit fields into full bytes?</p>