summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/command.c3
-rw-r--r--lib/command.h1
-rw-r--r--lib/nexthop_group.c34
-rw-r--r--lib/nexthop_group.h2
-rw-r--r--lib/subdir.am2
-rw-r--r--vtysh/vtysh.c1
6 files changed, 43 insertions, 0 deletions
diff --git a/lib/command.c b/lib/command.c
index 6d04ad83c..5697c1d81 100644
--- a/lib/command.c
+++ b/lib/command.c
@@ -65,6 +65,7 @@ const char *node_names[] = {
"logical-router", // LOGICALROUTER_NODE,
"vrf", // VRF_NODE,
"interface", // INTERFACE_NODE,
+ "nexthop-group", // NH_GROUP_NODE,
"zebra", // ZEBRA_NODE,
"table", // TABLE_NODE,
"rip", // RIP_NODE,
@@ -1294,6 +1295,7 @@ void cmd_exit(struct vty *vty)
case PW_NODE:
case LOGICALROUTER_NODE:
case VRF_NODE:
+ case NH_GROUP_NODE:
case ZEBRA_NODE:
case BGP_NODE:
case RIP_NODE:
@@ -1379,6 +1381,7 @@ DEFUN (config_end,
case PW_NODE:
case LOGICALROUTER_NODE:
case VRF_NODE:
+ case NH_GROUP_NODE:
case ZEBRA_NODE:
case RIP_NODE:
case RIPNG_NODE:
diff --git a/lib/command.h b/lib/command.h
index 56e70abf6..0febf903a 100644
--- a/lib/command.h
+++ b/lib/command.h
@@ -88,6 +88,7 @@ enum node_type {
LOGICALROUTER_NODE, /* Logical-Router node. */
VRF_NODE, /* VRF mode node. */
INTERFACE_NODE, /* Interface mode node. */
+ NH_GROUP_NODE, /* Nexthop-Group mode node. */
ZEBRA_NODE, /* zebra connection node. */
TABLE_NODE, /* rtm_table selection node. */
RIP_NODE, /* RIP protocol mode node. */
diff --git a/lib/nexthop_group.c b/lib/nexthop_group.c
index 8bdc58540..e7f10487d 100644
--- a/lib/nexthop_group.c
+++ b/lib/nexthop_group.c
@@ -21,6 +21,12 @@
#include <nexthop.h>
#include <nexthop_group.h>
+#include <vty.h>
+#include <command.h>
+
+#ifndef VTYSH_EXTRACT_PL
+#include "lib/nexthop_group_clippy.c"
+#endif
/* Add nexthop to the end of a nexthop list. */
void nexthop_add(struct nexthop **target, struct nexthop *nexthop)
@@ -64,3 +70,31 @@ void copy_nexthops(struct nexthop **tnh, struct nexthop *nh,
nexthop);
}
}
+
+DEFPY (nexthop_group,
+ nexthop_group_cmd,
+ "nexthop-group NAME",
+ "Enter into the nexthop-group submode\n"
+ "Specify the NAME of the nexthop-group\n")
+{
+ return CMD_SUCCESS;
+}
+
+struct cmd_node nexthop_group_node = {
+ NH_GROUP_NODE,
+ "%s(config-nh-group)# ",
+ 1
+};
+
+static int nexthop_group_write(struct vty *vty)
+{
+ vty_out(vty, "!\n");
+
+ return 1;
+}
+
+void nexthop_group_init(void)
+{
+ install_node(&nexthop_group_node, nexthop_group_write);
+ install_element(CONFIG_NODE, &nexthop_group_cmd);
+}
diff --git a/lib/nexthop_group.h b/lib/nexthop_group.h
index 26900959c..561fe9642 100644
--- a/lib/nexthop_group.h
+++ b/lib/nexthop_group.h
@@ -33,6 +33,8 @@ struct nexthop_group {
struct nexthop *nexthop;
};
+void nexthop_group_init(void);
+
void nexthop_add(struct nexthop **target, struct nexthop *nexthop);
void copy_nexthops(struct nexthop **tnh, struct nexthop *nh,
struct nexthop *rparent);
diff --git a/lib/subdir.am b/lib/subdir.am
index 5001b3cec..7d85b7a24 100644
--- a/lib/subdir.am
+++ b/lib/subdir.am
@@ -82,6 +82,8 @@ lib_libfrr_la_SOURCES = \
lib/plist_clippy.c: $(CLIPPY_DEPS)
lib/plist.lo: lib/plist_clippy.c
+lib/nexthop_group_clippy.c: $(CLIPPY_DEPS)
+lib/nexthop_group.lo: lib/nexthop_group_clippy.c
pkginclude_HEADERS += \
lib/bfd.h \
diff --git a/vtysh/vtysh.c b/vtysh/vtysh.c
index 5f87d4c7f..7dfe7753c 100644
--- a/vtysh/vtysh.c
+++ b/vtysh/vtysh.c
@@ -1499,6 +1499,7 @@ static int vtysh_exit(struct vty *vty)
case PW_NODE:
case LOGICALROUTER_NODE:
case VRF_NODE:
+ case NH_GROUP_NODE:
case ZEBRA_NODE:
case BGP_NODE:
case RIP_NODE: