<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _parse_ND_at_response(self, packet_info):
 """ If the given packet is a successful AT response for an ND command, parse the parameter field. """

        if packet_info['id'] == 'at_response' and \
                packet_info['command'].lower() == b'nd' and \
                packet_info['status'] == b'\x00':
            result = {}

            # Parse each field directly
            result['source_addr'] = packet_info['parameter'][0:2]
            result['source_addr_long'] = packet_info['parameter'][2:10]

            # Parse the null-terminated node identifier field
            null_terminator_index = 10
            while packet_info['parameter'][null_terminator_index:
                                           null_terminator_index+1] != b'\x00':
                null_terminator_index += 1

            # Parse each field thereafter directly
            result['node_identifier'] = \
                packet_info['parameter'][10:null_terminator_index]
            result['parent_address'] = \
                packet_info['parameter'][null_terminator_index+1:
                                         null_terminator_index+3]
            result['device_type'] = \
                packet_info['parameter'][null_terminator_index+3:
                                         null_terminator_index+4]
            result['status'] = \
                packet_info['parameter'][null_terminator_index+4:
                                         null_terminator_index+5]
            result['profile_id'] = \
                packet_info['parameter'][null_terminator_index+5:
                                         null_terminator_index+7]
            result['manufacturer'] = \
                packet_info['parameter'][null_terminator_index+7:
                                         null_terminator_index+9]

            # Simple check to ensure a good parse
            if null_terminator_index+9 != len(packet_info['parameter']):
                raise ValueError("Improper ND response length: expected {0}, "
                                 "read {1} bytes".format(
                                     len(packet_info['parameter']),
                                     null_terminator_index+9)
                                 )

            return result
        else:
            return packet_info['parameter']