def __init__(self, data, verbose=False):
    super(WartsTraceBox, self).__init__(TRACEBOXTYPE, verbose)
    self.data = data
    self.flagdata = data
    self.pkts = []
    self.flag_defines = [
     ('listid', unpack_uint32_t),
     ('cycleid', unpack_uint32_t),
     ('userid', unpack_uint32_t),
     ('srcaddr', self.unpack_address),
     ('dstaddr', self.unpack_address),
     ('sport', unpack_uint16_t),
     ('dport', unpack_uint16_t),
     ('start', read_timeval),
     ('result', unpack_uint16_t),
     ('rtt', unpack_uint8_t),
     ('qtype', unpack_uint8_t),
     ('udp', unpack_uint8_t),
     ('printmode', unpack_uint8_t),
     ('pktc16', unpack_uint16_t),
     ('pktc', unpack_uint32_t),
    ]
    flag_bytes = self.read_flags()
    if self.verbose:
      print "TB Params:", self.flags
    offset = flag_bytes
    for i in range(self.flags['pktc']):
      pkt = WartsTraceBoxPkt(data[offset:], self.referenced_address, self.verbose)
      self.pkts.append(pkt.flags)
      offset+=pkt.flag_bytes 
      if self.verbose: print "Pkt %d: %s" % (i+1, pkt.flags)