diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c
index 3364454..55545c1 100644
--- a/pimd/pim_cmd.c
+++ b/pimd/pim_cmd.c
@@ -3169,7 +3169,7 @@
   pim_ifp = ifp->info;
 
   if (!pim_ifp) {
-    vty_out(vty, "Pim no enabled on this interface%s", VTY_NEWLINE);
+    vty_out(vty, "Pim not enabled on this interface%s", VTY_NEWLINE);
     return CMD_WARNING;
   }
 
@@ -3445,6 +3445,70 @@
    return CMD_SUCCESS;
 }
 
+DEFUN (interface_ip_pim_hello,
+       interface_ip_pim_hello_cmd,
+       "ip pim hello <1-180>",
+       IP_STR
+       PIM_STR
+       IFACE_PIM_HELLO_STR
+       IFACE_PIM_HELLO_TIME_STR)
+{
+  struct interface *ifp;
+  struct pim_interface *pim_ifp;
+
+  ifp = vty->index;
+  pim_ifp = ifp->info;
+
+  if (!pim_ifp) {
+    vty_out(vty, "Pim not enabled on this interface%s", VTY_NEWLINE);
+    return CMD_WARNING;
+  }
+
+  pim_ifp->pim_hello_period = strtol(argv[0], NULL, 10);
+
+  if (argc == 2)
+    pim_ifp->pim_default_holdtime = strtol(argv[1], NULL, 10);
+
+  return CMD_SUCCESS;
+}
+
+ALIAS (interface_ip_pim_hello,
+       interface_ip_pim_hello_hold_cmd,
+       "ip pim hello <1-180> <1-180>",
+       IP_STR
+       PIM_STR
+       IFACE_PIM_HELLO_STR
+       IFACE_PIM_HELLO_TIME_STR
+       IFACE_PIM_HELLO_HOLD_STR)
+
+
+DEFUN (interface_no_ip_pim_hello,
+       interface_no_ip_pim_hello_cmd,
+       "no ip pim hello {<1-180> <1-180>}",
+       NO_STR
+       IP_STR
+       PIM_STR
+       IFACE_PIM_HELLO_STR
+       IFACE_PIM_HELLO_TIME_STR
+       IFACE_PIM_HELLO_HOLD_STR)
+{
+  struct interface *ifp;
+  struct pim_interface *pim_ifp;
+
+  ifp = vty->index;
+  pim_ifp = ifp->info;
+
+  if (!pim_ifp) {
+    vty_out(vty, "Pim not enabled on this interface%s", VTY_NEWLINE);
+    return CMD_WARNING;
+  }
+
+  pim_ifp->pim_hello_period     = PIM_DEFAULT_HELLO_PERIOD;
+  pim_ifp->pim_default_holdtime = -1;
+
+  return CMD_SUCCESS;
+}
+
 DEFUN (debug_igmp,
        debug_igmp_cmd,
        "debug igmp",
@@ -4746,6 +4810,9 @@
   install_element (INTERFACE_NODE, &interface_no_ip_pim_ssm_cmd);
   install_element (INTERFACE_NODE, &interface_ip_pim_drprio_cmd);
   install_element (INTERFACE_NODE, &interface_no_ip_pim_drprio_cmd);
+  install_element (INTERFACE_NODE, &interface_ip_pim_hello_cmd);
+  install_element (INTERFACE_NODE, &interface_ip_pim_hello_hold_cmd);
+  install_element (INTERFACE_NODE, &interface_no_ip_pim_hello_cmd);
 
   // Static mroutes NEB
   install_element (INTERFACE_NODE, &interface_ip_mroute_cmd);
diff --git a/pimd/pim_cmd.h b/pimd/pim_cmd.h
index 25e2444..a1cb581 100644
--- a/pimd/pim_cmd.h
+++ b/pimd/pim_cmd.h
@@ -30,6 +30,9 @@
 #define CONF_SSMPINGD_STR                      "Enable ssmpingd operation\n"
 #define SHOW_SSMPINGD_STR                      "ssmpingd operation\n"
 #define IFACE_PIM_STR                          "Enable PIM SSM operation\n"
+#define IFACE_PIM_HELLO_STR                    "Hello Interval\n"
+#define IFACE_PIM_HELLO_TIME_STR               "Time in seconds for Hello Interval\n"
+#define IFACE_PIM_HELLO_HOLD_STR               "Time in seconds for Hold Interval\n"
 #define IFACE_IGMP_STR                         "Enable IGMP operation\n"
 #define IFACE_IGMP_QUERY_INTERVAL_STR          "IGMP host query interval\n"
 #define IFACE_IGMP_QUERY_MAX_RESPONSE_TIME_STR      "IGMP max query response value (seconds)\n"
diff --git a/pimd/pim_vty.c b/pimd/pim_vty.c
index e31e2d6..512c0e6 100644
--- a/pimd/pim_vty.c
+++ b/pimd/pim_vty.c
@@ -142,6 +142,14 @@
 	++writes;
       }
 
+      /* IF ip pim hello */
+      if (pim_ifp->pim_hello_period != PIM_DEFAULT_HELLO_PERIOD) {
+	vty_out(vty, " ip pim hello %d", pim_ifp->pim_hello_period);
+	if (pim_ifp->pim_default_holdtime != -1)
+	  vty_out(vty, " %d", pim_ifp->pim_default_holdtime);
+	vty_out(vty, "%s", VTY_NEWLINE);
+      }
+
       /* IF ip igmp */
       if (PIM_IF_TEST_IGMP(pim_ifp->options)) {
 	vty_out(vty, " ip igmp%s", VTY_NEWLINE);
