code: def parse(self, packet):
          
          self._lenfmt = ((packet[0] & 0x40) >> 6)
          self.tag = packet[0]
          if self._lenfmt == 0:
              self.llen = (packet[0] & 0x03)
          del packet[0]
  
          if (self._lenfmt == 0 and self.llen > 0) or self._lenfmt == 1:
              self.length = packet
  
          else:
              # indeterminate packet length
              self.length = len(packet)
docs: There are two formats for headers
  
          old style
          ---------
  
          Old style headers can be 1, 2, 3, or 6 octets long and are composed of a Tag and a Length.
          If the header length is 1 octet (length_type == 3), then there is no Length field.
  
          new style
          ---------
  
          New style headers can be 2, 3, or 6 octets long and are also composed of a Tag and a Length.
  
  
          Packet Tag
          ----------
  
          The packet tag is the first byte, comprising the following fields:
  
          +-------------+----------+---------------+---+---+---+---+----------+----------+
          | byte        | 1                                                              |
          +-------------+----------+---------------+---+---+---+---+----------+----------+
          | bit         | 7        | 6             | 5 | 4 | 3 | 2 | 1        | 0        |
          +-------------+----------+---------------+---+---+---+---+----------+----------+
          | old-style   | always 1 | packet format | packet tag    | length type         |
          | description |          | 0 = old-style |               | 0 = 1 octet         |
          |             |          | 1 = new-style |               | 1 = 2 octets        |
          |             |          |               |               | 2 = 5 octets        |
          |             |          |               |               | 3 = no length field |
          +-------------+          +               +---------------+---------------------+
          | new-style   |          |               | packet tag                          |
          | description |          |               |                                     |
          +-------------+----------+---------------+-------------------------------------+
  
          :param packet: raw packet bytes