def pack(self): packed = [] packed.append(struct.pack("!H", self.type)) packed.append(struct.pack("!H", 0)) # placeholder for len at index 1 packed.append(struct.pack("!L", self.experimenter)) packed.append(struct.pack("!L", self.subtype)) packed.append(util.pack_checksum_128(self.checksum)) length = sum([len(x) for x in packed]) packed[1] = struct.pack("!H", length) return ''.join(packed)