<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _find_fld_pkt_val(self, pkt, val):
 """Given a Packet instance `pkt` and the value `val` to be set, returns the Field subclass to be used, and the updated `val` if necessary. """

        fld = self._iterate_fields_cond(pkt, val, True)
        # Default ? (in this case, let's make sure it's up-do-date)
        dflts_pkt = pkt.default_fields
        if val == dflts_pkt[self.name] and self.name not in pkt.fields:
            dflts_pkt[self.name] = fld.default
            val = fld.default
        return fld, val