summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorpaul <paul>2003-05-23 06:58:44 +0000
committerpaul <paul>2003-05-23 06:58:44 +0000
commit68f43848fa0f8ac16c768bafb8891495dcf232ae (patch)
tree8121fe0ee7c19001dd3c37c798e8368681a59493 /lib
parent8d6b00e4f34dfb6f627b49713bf80b0745b50abc (diff)
From: Hasso Tepper <hasso@estpak.ee>
http://hasso.linux.ee/zebra/ht-no_interface-23052003.patch Add the 'no interface' command to all the daemons and vtysh.
Diffstat (limited to 'lib')
-rw-r--r--lib/if.c26
-rw-r--r--lib/if.h1
2 files changed, 27 insertions, 0 deletions
diff --git a/lib/if.c b/lib/if.c
index e1a18393..2ca8c94b 100644
--- a/lib/if.c
+++ b/lib/if.c
@@ -440,6 +440,32 @@ DEFUN (interface,
return CMD_SUCCESS;
}
+DEFUN_NOSH (no_interface,
+ no_interface_cmd,
+ "no interface IFNAME",
+ NO_STR
+ "Delete a pseudo interface's configuration\n"
+ "Interface's name\n")
+{
+ // deleting interface
+ struct interface *ifp;
+
+ ifp = if_lookup_by_name (argv[0]);
+
+ if (ifp == NULL)
+ return CMD_SUCCESS;
+
+ if (if_is_up(ifp)) {
+ vty_out (vty, "%% Only inactive interfaces can be deleted%s",
+ VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+
+ if_delete(ifp);
+
+ return CMD_SUCCESS;
+}
+
/* For debug purpose. */
DEFUN (show_address,
show_address_cmd,
diff --git a/lib/if.h b/lib/if.h
index 554126fd..9ffe74cf 100644
--- a/lib/if.h
+++ b/lib/if.h
@@ -220,6 +220,7 @@ extern list iflist;
extern struct cmd_element interface_desc_cmd;
extern struct cmd_element no_interface_desc_cmd;
extern struct cmd_element interface_cmd;
+extern struct cmd_element no_interface_cmd;
extern struct cmd_element interface_pseudo_cmd;
extern struct cmd_element no_interface_pseudo_cmd;