diff --git a/napalm/nxos/nxos.py b/napalm/nxos/nxos.py index b975029ef..fee5893c0 100644 --- a/napalm/nxos/nxos.py +++ b/napalm/nxos/nxos.py @@ -369,14 +369,18 @@ def ping( if source != "": command += " source {}".format(source) elif source_interface != "": - command += " source {}".format(source_interface) - - if vrf != "": - command += " vrf {}".format(vrf) + command += " source-interface {}".format(source_interface) + + # source_interface and vrf are mutually exclusive, but since they + # provide the same behavior, no need to raise an exception--just + # prefer source_interface. + if not source_interface: + if vrf != "": + command += " vrf {}".format(vrf) output = self._send_command(command, raw_text=True) assert isinstance(output, str) - if "connect:" in output: + if "connect:" in output.lower() or "invalid" in output.lower(): ping_dict["error"] = output elif "PING" in output: ping_dict["success"] = {