docs: def _unpack_sdp_into_packet(packet, bytestring):
      """Unpack the SDP header from a bytestring into a packet.
  
      Parameters
      ----------
      packet : :py:class:`.SDPPacket`
          Packet into which to store the unpacked header.
      bytestring : bytes
          Bytes from which to unpack the header data.
      """
      # Extract the header and the data from the packet
      packet.data = bytestring[10:]  # Everything but the header
  
      # Unpack the header
      (flags, packet.tag, dest_cpu_port, src_cpu_port,
       packet.dest_y, packet.dest_x,
       packet.src_y, packet.src_x) = struct.unpack_from('<2x8B', bytestring)
      packet.reply_expected = flags == FLAG_REPLY
  
      # Neaten up the combined VCPU and port fields
      packet.dest_cpu = dest_cpu_port & 0x1f
      packet.dest_port = (dest_cpu_port >> 5)  # & 0x07
      packet.src_cpu = src_cpu_port & 0x1f
      packet.src_port = (src_cpu_port >> 5)