summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2017-03-02 10:33:23 -0500
committerDonald Sharp <sharpd@cumulusnetworks.com>2017-03-02 10:33:23 -0500
commitb8d16be2871f8ec86a8d3f8c8ed89bc44dd8ca4f (patch)
tree85c688bc0d15312a1e830d1063bf69127456e335
parent21419f593268d59409229dbcb13cdd59e4bda555 (diff)
pimd: Hide 'ip multicast-routing' command
Automatically turn on pim if the daemon is turned on. Hide the 'ip multicast-routing' command Disable the 'no ip multicast-routing' command Do not display the 'ip multicast-routing' command. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
-rw-r--r--pimd/pim_cmd.c93
-rw-r--r--pimd/pim_iface.c32
-rw-r--r--pimd/pim_mroute.c30
-rw-r--r--pimd/pim_vty.c5
-rw-r--r--pimd/pimd.c2
-rw-r--r--pimd/pimd.h3
6 files changed, 34 insertions, 131 deletions
diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c
index bca9701187..5dbf016c8a 100644
--- a/pimd/pim_cmd.c
+++ b/pimd/pim_cmd.c
@@ -2342,44 +2342,6 @@ static void mroute_del_all()
}
}
-static void static_mroute_add_all()
-{
- struct listnode *node;
- struct static_route *s_route;
-
- for (ALL_LIST_ELEMENTS_RO(qpim_static_route_list, node, s_route)) {
- if (pim_mroute_add(&s_route->c_oil, __PRETTY_FUNCTION__)) {
- /* just log warning */
- char source_str[INET_ADDRSTRLEN];
- char group_str[INET_ADDRSTRLEN];
- pim_inet4_dump("<source?>", s_route->c_oil.oil.mfcc_origin, source_str, sizeof(source_str));
- pim_inet4_dump("<group?>", s_route->c_oil.oil.mfcc_mcastgrp, group_str, sizeof(group_str));
- zlog_warn("%s %s: (S,G)=(%s,%s) failure writing MFC",
- __FILE__, __PRETTY_FUNCTION__,
- source_str, group_str);
- }
- }
-}
-
-static void static_mroute_del_all()
-{
- struct listnode *node;
- struct static_route *s_route;
-
- for (ALL_LIST_ELEMENTS_RO(qpim_static_route_list, node, s_route)) {
- if (pim_mroute_del(&s_route->c_oil, __PRETTY_FUNCTION__)) {
- /* just log warning */
- char source_str[INET_ADDRSTRLEN];
- char group_str[INET_ADDRSTRLEN];
- pim_inet4_dump("<source?>", s_route->c_oil.oil.mfcc_origin, source_str, sizeof(source_str));
- pim_inet4_dump("<group?>", s_route->c_oil.oil.mfcc_mcastgrp, group_str, sizeof(group_str));
- zlog_warn("%s %s: (S,G)=(%s,%s) failure clearing MFC",
- __FILE__, __PRETTY_FUNCTION__,
- source_str, group_str);
- }
- }
-}
-
DEFUN (clear_ip_mroute,
clear_ip_mroute_cmd,
"clear ip mroute",
@@ -2815,22 +2777,16 @@ DEFUN (show_ip_multicast,
{
time_t now = pim_time_monotonic_sec();
- if (PIM_MROUTE_IS_ENABLED) {
- char uptime[10];
+ char uptime[10];
- vty_out(vty, "Mroute socket descriptor: %d%s",
- qpim_mroute_socket_fd,
- VTY_NEWLINE);
+ vty_out(vty, "Mroute socket descriptor: %d%s",
+ qpim_mroute_socket_fd,
+ VTY_NEWLINE);
- pim_time_uptime(uptime, sizeof(uptime), now - qpim_mroute_socket_creation);
- vty_out(vty, "Mroute socket uptime: %s%s",
- uptime,
- VTY_NEWLINE);
- }
- else {
- vty_out(vty, "Multicast disabled%s",
- VTY_NEWLINE);
- }
+ pim_time_uptime(uptime, sizeof(uptime), now - qpim_mroute_socket_creation);
+ vty_out(vty, "Mroute socket uptime: %s%s",
+ uptime,
+ VTY_NEWLINE);
vty_out(vty, "%s", VTY_NEWLINE);
@@ -3570,31 +3526,24 @@ DEFUN (no_ip_pim_rp_prefix_list,
return pim_no_rp_cmd_worker (vty, argv[4]->arg, NULL, argv[6]->arg);
}
-DEFUN (ip_multicast_routing,
- ip_multicast_routing_cmd,
- "ip multicast-routing",
- IP_STR
- "Enable IP multicast forwarding\n")
+DEFUN_HIDDEN (ip_multicast_routing,
+ ip_multicast_routing_cmd,
+ "ip multicast-routing",
+ IP_STR
+ "Enable IP multicast forwarding\n")
{
- pim_mroute_socket_enable();
- pim_if_add_vif_all();
- mroute_add_all();
- static_mroute_add_all();
return CMD_SUCCESS;
}
-DEFUN (no_ip_multicast_routing,
- no_ip_multicast_routing_cmd,
- "no ip multicast-routing",
- NO_STR
- IP_STR
- "Global IP configuration subcommands\n"
- "Enable IP multicast forwarding\n")
+DEFUN_HIDDEN (no_ip_multicast_routing,
+ no_ip_multicast_routing_cmd,
+ "no ip multicast-routing",
+ NO_STR
+ IP_STR
+ "Global IP configuration subcommands\n"
+ "Enable IP multicast forwarding\n")
{
- mroute_del_all();
- static_mroute_del_all();
- pim_if_del_vif_all();
- pim_mroute_socket_disable();
+ vty_out (vty, "Command is Disabled and will be removed in a future version%s", VTY_NEWLINE);
return CMD_SUCCESS;
}
diff --git a/pimd/pim_iface.c b/pimd/pim_iface.c
index 8f7d40bb36..c545b56330 100644
--- a/pimd/pim_iface.c
+++ b/pimd/pim_iface.c
@@ -173,9 +173,7 @@ struct pim_interface *pim_if_new(struct interface *ifp, int igmp, int pim)
pim_sock_reset(ifp);
- if (PIM_MROUTE_IS_ENABLED) {
- pim_if_add_vif(ifp);
- }
+ pim_if_add_vif(ifp);
return pim_ifp;
}
@@ -197,9 +195,7 @@ void pim_if_delete(struct interface *ifp)
pim_neighbor_delete_all (ifp, "Interface removed from configuration");
- if (PIM_MROUTE_IS_ENABLED) {
- pim_if_del_vif(ifp);
- }
+ pim_if_del_vif(ifp);
list_delete(pim_ifp->igmp_socket_list);
list_delete(pim_ifp->pim_neighbor_list);
@@ -591,16 +587,14 @@ void pim_if_addr_add(struct connected *ifc)
}
} /* pim */
- if (PIM_MROUTE_IS_ENABLED) {
/*
PIM or IGMP is enabled on interface, and there is at least one
address assigned, then try to create a vif_index.
*/
- if (pim_ifp->mroute_vif_index < 0) {
- pim_if_add_vif(ifp);
- }
- pim_ifchannel_scan_forward_start (ifp);
+ if (pim_ifp->mroute_vif_index < 0) {
+ pim_if_add_vif(ifp);
}
+ pim_ifchannel_scan_forward_start (ifp);
}
static void pim_if_addr_del_igmp(struct connected *ifc)
@@ -730,16 +724,14 @@ void pim_if_addr_add_all(struct interface *ifp)
}
} /* pim */
}
- if (PIM_MROUTE_IS_ENABLED) {
- /*
- * PIM or IGMP is enabled on interface, and there is at least one
- * address assigned, then try to create a vif_index.
- */
- if (pim_ifp->mroute_vif_index < 0) {
- pim_if_add_vif(ifp);
- }
- pim_ifchannel_scan_forward_start (ifp);
+ /*
+ * PIM or IGMP is enabled on interface, and there is at least one
+ * address assigned, then try to create a vif_index.
+ */
+ if (pim_ifp->mroute_vif_index < 0) {
+ pim_if_add_vif(ifp);
}
+ pim_ifchannel_scan_forward_start (ifp);
pim_rp_setup();
pim_rp_check_on_if_add(pim_ifp);
diff --git a/pimd/pim_mroute.c b/pimd/pim_mroute.c
index ae5d0e9891..334e0ce06e 100644
--- a/pimd/pim_mroute.c
+++ b/pimd/pim_mroute.c
@@ -608,7 +608,6 @@ static int mroute_read(struct thread *t)
static void mroute_read_on()
{
zassert(!qpim_mroute_socket_reader);
- zassert(PIM_MROUTE_IS_ENABLED);
THREAD_READ_ON(master, qpim_mroute_socket_reader,
mroute_read, 0, qpim_mroute_socket_fd);
@@ -623,9 +622,6 @@ int pim_mroute_socket_enable()
{
int fd;
- if (PIM_MROUTE_IS_ENABLED)
- return -1;
-
if ( pimd_privs.change (ZPRIVS_RAISE) )
zlog_err ("pim_mroute_socket_enable: could not raise privs, %s",
safe_strerror (errno) );
@@ -659,9 +655,6 @@ int pim_mroute_socket_enable()
int pim_mroute_socket_disable()
{
- if (PIM_MROUTE_IS_DISABLED)
- return -1;
-
if (pim_mroute_set(qpim_mroute_socket_fd, 0)) {
zlog_warn("Could not disable mroute on socket fd=%d: errno=%d: %s",
qpim_mroute_socket_fd, errno, safe_strerror(errno));
@@ -691,12 +684,6 @@ int pim_mroute_add_vif(struct interface *ifp, struct in_addr ifaddr, unsigned ch
struct vifctl vc;
int err;
- if (PIM_MROUTE_IS_DISABLED) {
- zlog_warn("%s: global multicast is disabled",
- __PRETTY_FUNCTION__);
- return -1;
- }
-
memset(&vc, 0, sizeof(vc));
vc.vifc_vifi = pim_ifp->mroute_vif_index;
#ifdef VIFF_USE_IFINDEX
@@ -740,12 +727,6 @@ int pim_mroute_del_vif(int vif_index)
struct vifctl vc;
int err;
- if (PIM_MROUTE_IS_DISABLED) {
- zlog_warn("%s: global multicast is disabled",
- __PRETTY_FUNCTION__);
- return -1;
- }
-
if (PIM_DEBUG_MROUTE)
{
struct interface *ifp = pim_if_find_by_vif_index (vif_index);
@@ -777,11 +758,6 @@ int pim_mroute_add(struct channel_oil *c_oil, const char *name)
qpim_mroute_add_last = pim_time_monotonic_sec();
++qpim_mroute_add_events;
- if (PIM_MROUTE_IS_DISABLED) {
- zlog_warn("%s: global multicast is disabled",
- __PRETTY_FUNCTION__);
- return -1;
- }
/* Do not install route if incoming interface is undefined. */
if (c_oil->oil.mfcc_parent == MAXVIFS)
{
@@ -858,12 +834,6 @@ int pim_mroute_del (struct channel_oil *c_oil, const char *name)
qpim_mroute_del_last = pim_time_monotonic_sec();
++qpim_mroute_del_events;
- if (PIM_MROUTE_IS_DISABLED) {
- zlog_warn("%s: global multicast is disabled",
- __PRETTY_FUNCTION__);
- return -1;
- }
-
if (!c_oil->installed)
{
if (PIM_DEBUG_MROUTE)
diff --git a/pimd/pim_vty.c b/pimd/pim_vty.c
index 03ee7e92ec..5b6a79b95a 100644
--- a/pimd/pim_vty.c
+++ b/pimd/pim_vty.c
@@ -148,11 +148,6 @@ int pim_global_config_write(struct vty *vty)
writes += pim_msdp_config_write (vty);
- if (PIM_MROUTE_IS_ENABLED) {
- vty_out(vty, "ip multicast-routing%s", VTY_NEWLINE);
- ++writes;
- }
-
writes += pim_rp_config_write (vty);
if (qpim_register_suppress_time != PIM_REGISTER_SUPPRESSION_TIME_DEFAULT)
diff --git a/pimd/pimd.c b/pimd/pimd.c
index 2316cd08f5..aa863fd47f 100644
--- a/pimd/pimd.c
+++ b/pimd/pimd.c
@@ -124,7 +124,7 @@ void pim_init()
}
qpim_static_route_list->del = (void (*)(void *)) pim_static_route_free;
- qpim_mroute_socket_fd = -1; /* mark mroute as disabled */
+ pim_mroute_socket_enable();
qpim_inaddr_any.s_addr = PIM_NET_INADDR_ANY;
diff --git a/pimd/pimd.h b/pimd/pimd.h
index 0da8452ab5..0906016300 100644
--- a/pimd/pimd.h
+++ b/pimd/pimd.h
@@ -154,9 +154,6 @@ extern int qpim_packet_process;
#define PIM_JP_HOLDTIME (qpim_t_periodic * 7 / 2)
-#define PIM_MROUTE_IS_ENABLED (qpim_mroute_socket_fd >= 0)
-#define PIM_MROUTE_IS_DISABLED (qpim_mroute_socket_fd < 0)
-
/*
* Register-Stop Timer (RST(S,G))
* Default values