add recv_data_packet() and fix bugs for DV