diff --git a/ospf6d/ospf6_interface.c b/ospf6d/ospf6_interface.c
index 9aa6908..7d54dd5 100644
--- a/ospf6d/ospf6_interface.c
+++ b/ospf6d/ospf6_interface.c
@@ -1907,6 +1907,66 @@
   install_element (OSPF6_NODE, &no_auto_cost_reference_bandwidth_cmd);
 }
 
+/* Clear the specified interface structure */
+static void
+ospf6_interface_clear (struct vty *vty, struct interface *ifp)
+{
+  struct ospf6_interface *oi;
+
+  if (!if_is_operative (ifp))
+    return;
+
+  if (ifp->info == NULL)
+    return;
+
+  oi = (struct ospf6_interface *) ifp->info;
+
+  if (IS_OSPF6_DEBUG_INTERFACE)
+    zlog_debug ("Interface %s: clear by reset", ifp->name);
+
+  /* Reset the interface */
+  thread_add_event (master, interface_down, oi, 0);
+  thread_add_event (master, interface_up, oi, 0);
+}
+
+/* Clear interface */
+DEFUN (clear_ipv6_ospf6_interface,
+       clear_ipv6_ospf6_interface_cmd,
+       "clear ipv6 ospf6 interface [IFNAME]",
+       CLEAR_STR
+       IP6_STR
+       OSPF6_STR
+       INTERFACE_STR
+       IFNAME_STR
+       )
+{
+  struct interface *ifp;
+  struct listnode *node;
+
+  if (argc == 0) /* Clear all the ospfv3 interfaces. */
+    {
+      for (ALL_LIST_ELEMENTS_RO (iflist, node, ifp))
+        ospf6_interface_clear (vty, ifp);
+    }
+  else /* Interface name is specified. */
+    {
+      if ((ifp = if_lookup_by_name (argv[0])) == NULL)
+        {
+          vty_out (vty, "No such Interface: %s%s", argv[0], VNL);
+          return CMD_WARNING;
+        }
+      ospf6_interface_clear (vty, ifp);
+    }
+
+  return CMD_SUCCESS;
+}
+
+void
+install_element_ospf6_clear_interface (void)
+{
+  install_element (ENABLE_NODE, &clear_ipv6_ospf6_interface_cmd);
+}
+
 DEFUN (debug_ospf6_interface,
        debug_ospf6_interface_cmd,
        "debug ospf6 interface",
diff --git a/ospf6d/ospf6_interface.h b/ospf6d/ospf6_interface.h
index 95a377f..220a475 100644
--- a/ospf6d/ospf6_interface.h
+++ b/ospf6d/ospf6_interface.h
@@ -166,6 +166,8 @@
 
 extern void ospf6_interface_init (void);
 
+extern void install_element_ospf6_clear_interface (void);
+
 extern int config_write_ospf6_debug_interface (struct vty *vty);
 extern void install_element_ospf6_debug_interface (void);
 
diff --git a/ospf6d/ospf6d.c b/ospf6d/ospf6d.c
index fa84d0a..f9b0322 100644
--- a/ospf6d/ospf6d.c
+++ b/ospf6d/ospf6d.c
@@ -1790,6 +1790,8 @@
   install_element_ospf6_debug_abr ();
   install_element_ospf6_debug_flood ();
 
+  install_element_ospf6_clear_interface ();
+
   install_element (VIEW_NODE, &show_version_ospf6_cmd);
 
   install_element (VIEW_NODE, &show_ipv6_ospf6_border_routers_cmd);
