<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def set_bfd_ip(self, name, vrid, value=None, disable=False, default=False, run=True):
 """Set the bfd_ip property of the vrrp Args: name (string):
 The interface to configure. vrid (integer):
 The vrid number for the vrrp to be managed. value (string):
 The bfd ip address to be set. disable (boolean):
 Unset bfd ip if True. default (boolean):
 Set bfd ip to default if True. run (boolean):
 Set to True to execute the command, False to return a string with the formatted command. Returns: If run is True, returns True if the command executed successfully, error if failure. If run is False, returns the formatted command string which can be passed to the node """

        if not default and not disable:
            if not re.match(r'^\d+\.\d+\.\d+\.\d+$', str(value)):
                raise ValueError("vrrp property 'bfd_ip' must be "
                                 "a properly formatted IP address")
        cmd = self.command_builder('vrrp %d bfd ip' % vrid, value=value,
                                   default=default, disable=disable)

        # Run the command if requested
        if run:
            result = self.configure_interface(name, cmd)
            # And verify the command succeeded
            if result is False:
                return self.error
            return result

        # Otherwise return the formatted command
        return cmd