def ipv6_reassembly(frame):
    """Make data for IPv6 reassembly.

    Args:
        frame (pcapkit.protocols.pcap.frame.Frame): PCAP frame.

    Returns:
        Tuple[bool, Dict[str, Any]]: A tuple of data for IPv6 reassembly.

        * If the ``frame`` can be used for IPv6 reassembly. A frame can be reassembled
          if it contains IPv6 layer (:class:`pcapkit.protocols.internet.ipv6.IPv6`) and
          IPv6 Fragment header (:rfc:`2460#section-4.5`,
          :class:`pcapkit.protocols.internet.ipv6_frag.IPv6_Frag`).
        * If the ``frame`` can be reassembled, then the :obj:`dict` mapping of data for IPv6
          reassembly (:term:`ipv6.packet`) will be returned; otherwise, returns :data:`None`.

    See Also:
        :class:`~pcapkit.reassembly.ipv6.IPv6Reassembly`

    """
    if 'IPv6' in frame:
        ipv6 = frame['IPv6'].info
        if 'frag' not in ipv6:      # dismiss not fragmented frame
            return False, None
        data = dict(
            bufid=(
                ipv6.src,                                       # source IP address
                ipv6.dst,                                       # destination IP address
                ipv6.label,                                     # label
                ipv6.ipv6_frag.next.name,                       # next header field in IPv6 Fragment Header
            ),
            num=frame.info.number,                              # original packet range number
            fo=ipv6.ipv6_frag.offset,                           # fragment offset
            ihl=ipv6.hdr_len,                                   # header length, only headers before IPv6-Frag
            mf=ipv6.ipv6_frag.mf,                               # more fragment flag
            tl=ipv6.hdr_len + ipv6.raw_len,                     # total length, header includes
            header=bytearray(ipv6.fragment.header),             # raw bytearray type header before IPv6-Frag
            payload=bytearray(ipv6.fragment.payload or b''),    # raw bytearray type payload after IPv6-Frag
        )
        return True, data
    return False, None