From ae4a6b57ca01f791663b4c82018eff8e8ef69886 Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Mon, 22 May 2017 16:12:41 -0400 Subject: [PATCH] pimd: Create macro to get appropriate pim instance Signed-off-by: Donald Sharp --- pimd/pim_cmd.c | 3 +-- pimd/pim_cmd.h | 9 +++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c index 059bd4e6f4..5a0737fcfe 100644 --- a/pimd/pim_cmd.c +++ b/pimd/pim_cmd.c @@ -4524,8 +4524,7 @@ DEFUN (ip_pim_rp, "ip address of RP\n" "Group Address range to cover\n") { - VTY_DECLVAR_CONTEXT(vrf, vrf); - struct pim_instance *pim = vrf->info; + PIM_DECLVAR_CONTEXT(vrf, pim); int idx_ipv4 = 3; if (argc == (idx_ipv4 + 1)) diff --git a/pimd/pim_cmd.h b/pimd/pim_cmd.h index 64751d8682..8867514876 100644 --- a/pimd/pim_cmd.h +++ b/pimd/pim_cmd.h @@ -66,4 +66,13 @@ void pim_cmd_init(void); +/* + * Special Macro to allow us to get the correct pim_instance; + */ +#define PIM_DECLVAR_CONTEXT(A, B) \ + struct vrf *A = VTY_GET_CONTEXT(vrf); \ + struct pim_instance *B = \ + (vrf) ? vrf->info : pim_get_pim_instance(VRF_DEFAULT); \ + vrf = (vrf) ? vrf : pim->vrf; + #endif /* PIM_CMD_H */ -- 2.39.5