def i_req():
            if not (pn.outbound or pn.inbound):
                # Don't request an ack for an unwanted connection
                return False

            if not pn.stillAlive():
                # Try to revitalize this connection
                return True

            if (ping_now and
                hasattr(pn.sendPing_dcall, 'ping_is_shortable') and
                dcall_timeleft(pn.sendPing_dcall) <= 1.0
                ):
                # We've got a REQ to send out in a very short time, so
                # send it out early with this packet we're sending already.
                return True

            return False