def submit(self, buf, *, bufid):
        """Submit reassembled payload.

        Positional arguments:
            * buf -- dict, buffer dict of reassembled packets

        Keyword arguments:
            * bufid -- tuple, buffer identifier

        Returns:
            * list -- reassembled packets

        """
        datagram = []           # reassembled datagram
        HDL = buf.pop('hdl')    # hole descriptor list (remove from dict)

        # check through every buffer with ACK
        for (ack, buffer) in buf.items():
            # if this buffer is not implemented
            # go through every hole and extract received payload
            if len(HDL) > 2 and self._strflg:
                data = []
                start = stop = 0
                for hole in HDL:
                    stop = hole.first
                    byte = buffer['raw'][start:stop]
                    start = hole.last
                    if byte:    # strip empty payload
                        data.append(byte)
                byte = buffer['raw'][start:]
                if byte:    # strip empty payload
                    data.append(byte)
                if data:    # strip empty buffer
                    packet = Info(
                        NotImplemented=True,
                        id=Info(
                            src=(bufid[0], bufid[2]),
                            dst=(bufid[1], bufid[3]),
                            ack=ack,
                        ),
                        index=tuple(buffer['ind']),
                        payload=tuple(data) or None,
                        packets=tuple(analyse(io.BytesIO(frag), len(frag)) for frag in data),
                    )
                    datagram.append(packet)
            # if this buffer is implemented
            # export payload data & convert into bytes
            else:
                data = buffer['raw']
                if data:    # strip empty buffer
                    packet = Info(
                        NotImplemented=False,
                        id=Info(
                            src=(bufid[0], bufid[2]),
                            dst=(bufid[1], bufid[3]),
                            ack=ack,
                        ),
                        index=tuple(buffer['ind']),
                        payload=bytes(data) or None,
                        packets=(analyse(io.BytesIO(data), len(data)),),
                    )
                    datagram.append(packet)
        return datagram
Submit reassembled payload.

        Positional arguments:
            * buf -- dict, buffer dict of reassembled packets

        Keyword arguments:
            * bufid -- tuple, buffer identifier

        Returns:
            * list -- reassembled packets