mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-14 14:17:20 +00:00
pimd: Add support for displaying ip mroute
When you enter a static mroute under an interface the 'show run' is not displaying this information. Add code to allow this. Ticket: CM-11257 Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com> Reviewed-by: Daniel Walton <dwalton@cumulusnetworks.com> Reviewed-by: Don Slice <dslice@cumulusnetworks.com>
This commit is contained in:
parent
54fec4d508
commit
f91f89bcd6
@ -20,6 +20,10 @@
|
|||||||
$QuaggaId: $Format:%an, %ai, %h$ $
|
$QuaggaId: $Format:%an, %ai, %h$ $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <zebra.h>
|
||||||
|
|
||||||
|
#include "vty.h"
|
||||||
|
|
||||||
#include "pim_static.h"
|
#include "pim_static.h"
|
||||||
#include "pim_time.h"
|
#include "pim_time.h"
|
||||||
#include "pim_str.h"
|
#include "pim_str.h"
|
||||||
@ -303,3 +307,32 @@ int pim_static_del(struct interface *iif, struct interface *oif, struct in_addr
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
pim_static_write_mroute (struct vty *vty, struct interface *ifp)
|
||||||
|
{
|
||||||
|
struct listnode *node;
|
||||||
|
struct static_route *sroute;
|
||||||
|
int count = 0;
|
||||||
|
char sbuf[100];
|
||||||
|
char gbuf[100];
|
||||||
|
|
||||||
|
for (ALL_LIST_ELEMENTS_RO (qpim_static_route_list, node, sroute))
|
||||||
|
{
|
||||||
|
pim_inet4_dump ("<ifaddr?>", sroute->group, gbuf, sizeof (gbuf));
|
||||||
|
pim_inet4_dump ("<ifaddr?>", sroute->source, sbuf, sizeof (sbuf));
|
||||||
|
if (sroute->iif == ifp->ifindex)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
for (i = 0; i < MAXVIFS; i++)
|
||||||
|
if (sroute->oif_ttls[i])
|
||||||
|
{
|
||||||
|
struct interface *oifp = if_lookup_by_index (i);
|
||||||
|
vty_out (vty, " ip mroute %s %s %s%s", oifp->name, gbuf, sbuf, VTY_NEWLINE);
|
||||||
|
count ++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
@ -43,5 +43,6 @@ void pim_static_route_free(struct static_route *s_route);
|
|||||||
|
|
||||||
int pim_static_add(struct interface *iif, struct interface *oif, struct in_addr group, struct in_addr source);
|
int pim_static_add(struct interface *iif, struct interface *oif, struct in_addr group, struct in_addr source);
|
||||||
int pim_static_del(struct interface *iif, struct interface *oif, struct in_addr group, struct in_addr source);
|
int pim_static_del(struct interface *iif, struct interface *oif, struct in_addr group, struct in_addr source);
|
||||||
|
int pim_static_write_mroute (struct vty *vty, struct interface *ifp);
|
||||||
|
|
||||||
#endif /* PIM_STATIC_H_ */
|
#endif /* PIM_STATIC_H_ */
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
#include "pim_str.h"
|
#include "pim_str.h"
|
||||||
#include "pim_ssmpingd.h"
|
#include "pim_ssmpingd.h"
|
||||||
#include "pim_pim.h"
|
#include "pim_pim.h"
|
||||||
|
#include "pim_static.h"
|
||||||
|
|
||||||
int pim_debug_config_write(struct vty *vty)
|
int pim_debug_config_write(struct vty *vty)
|
||||||
{
|
{
|
||||||
@ -200,6 +201,8 @@ int pim_interface_config_write(struct vty *vty)
|
|||||||
++writes;
|
++writes;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
writes += pim_static_write_mroute (vty, ifp);
|
||||||
}
|
}
|
||||||
vty_out(vty, "!%s", VTY_NEWLINE);
|
vty_out(vty, "!%s", VTY_NEWLINE);
|
||||||
++writes;
|
++writes;
|
||||||
|
Loading…
Reference in New Issue
Block a user