summaryrefslogtreecommitdiff
path: root/pimd/pim_nb_config.c
diff options
context:
space:
mode:
Diffstat (limited to 'pimd/pim_nb_config.c')
-rw-r--r--pimd/pim_nb_config.c53
1 files changed, 26 insertions, 27 deletions
diff --git a/pimd/pim_nb_config.c b/pimd/pim_nb_config.c
index 8a78489ae0..27cac0c1a7 100644
--- a/pimd/pim_nb_config.c
+++ b/pimd/pim_nb_config.c
@@ -46,9 +46,13 @@ int funcname(struct argtype *args) \
} \
MACRO_REQUIRE_SEMICOLON()
+#define yang_dnode_get_pimaddr yang_dnode_get_ipv6
+
#else /* PIM_IPV != 6 */
#define pim6_msdp_err(funcname, argtype) \
MACRO_REQUIRE_SEMICOLON()
+
+#define yang_dnode_get_pimaddr yang_dnode_get_ipv4
#endif /* PIM_IPV != 6 */
static void pim_if_membership_clear(struct interface *ifp)
@@ -173,8 +177,7 @@ static int pim_cmd_interface_delete(struct interface *ifp)
}
static int interface_pim_use_src_cmd_worker(struct interface *ifp,
- struct in_addr source_addr,
- char *errmsg, size_t errmsg_len)
+ pim_addr source_addr, char *errmsg, size_t errmsg_len)
{
int result;
int ret = NB_OK;
@@ -397,15 +400,10 @@ static void igmp_sock_query_interval_reconfig(struct gm_sock *igmp)
ifp = igmp->interface;
pim_ifp = ifp->info;
- if (PIM_DEBUG_IGMP_TRACE) {
- char ifaddr_str[INET_ADDRSTRLEN];
-
- pim_inet4_dump("<ifaddr?>", igmp->ifaddr, ifaddr_str,
- sizeof(ifaddr_str));
- zlog_debug("%s: Querier %s on %s reconfig query_interval=%d",
- __func__, ifaddr_str, ifp->name,
+ if (PIM_DEBUG_IGMP_TRACE)
+ zlog_debug("%s: Querier %pPAs on %s reconfig query_interval=%d",
+ __func__, &igmp->ifaddr, ifp->name,
pim_ifp->gm_default_query_interval);
- }
/*
* igmp_startup_mode_on() will reset QQI:
@@ -2016,7 +2014,7 @@ int lib_interface_pim_address_family_use_source_modify(
struct nb_cb_modify_args *args)
{
struct interface *ifp;
- struct ipaddr source_addr;
+ pim_addr source_addr;
int result;
const struct lyd_node *if_dnode;
@@ -2034,10 +2032,14 @@ int lib_interface_pim_address_family_use_source_modify(
break;
case NB_EV_APPLY:
ifp = nb_running_get_entry(args->dnode, NULL, true);
- yang_dnode_get_ip(&source_addr, args->dnode, NULL);
+#if PIM_IPV == 4
+ yang_dnode_get_ipv4(&source_addr, args->dnode, NULL);
+#else
+ yang_dnode_get_ipv6(&source_addr, args->dnode, NULL);
+#endif
result = interface_pim_use_src_cmd_worker(
- ifp, source_addr.ip._v4_addr,
+ ifp, source_addr,
args->errmsg, args->errmsg_len);
if (result != PIM_SUCCESS)
@@ -2053,7 +2055,6 @@ int lib_interface_pim_address_family_use_source_destroy(
struct nb_cb_destroy_args *args)
{
struct interface *ifp;
- struct in_addr source_addr = {INADDR_ANY};
int result;
const struct lyd_node *if_dnode;
@@ -2072,7 +2073,7 @@ int lib_interface_pim_address_family_use_source_destroy(
case NB_EV_APPLY:
ifp = nb_running_get_entry(args->dnode, NULL, true);
- result = interface_pim_use_src_cmd_worker(ifp, source_addr,
+ result = interface_pim_use_src_cmd_worker(ifp, PIMADDR_ANY,
args->errmsg,
args->errmsg_len);
@@ -2180,8 +2181,8 @@ int lib_interface_pim_address_family_mroute_destroy(
struct interface *iif;
struct interface *oif;
const char *oifname;
- struct ipaddr source_addr;
- struct ipaddr group_addr;
+ pim_addr source_addr;
+ pim_addr group_addr;
const struct lyd_node *if_dnode;
switch (args->event) {
@@ -2211,11 +2212,10 @@ int lib_interface_pim_address_family_mroute_destroy(
return NB_ERR_INCONSISTENCY;
}
- yang_dnode_get_ip(&source_addr, args->dnode, "./source-addr");
- yang_dnode_get_ip(&group_addr, args->dnode, "./group-addr");
+ yang_dnode_get_pimaddr(&source_addr, args->dnode, "./source-addr");
+ yang_dnode_get_pimaddr(&group_addr, args->dnode, "./group-addr");
- if (pim_static_del(pim, iif, oif, group_addr.ip._v4_addr,
- source_addr.ip._v4_addr)) {
+ if (pim_static_del(pim, iif, oif, group_addr, source_addr)) {
snprintf(args->errmsg, args->errmsg_len,
"Failed to remove static mroute");
return NB_ERR_INCONSISTENCY;
@@ -2238,8 +2238,8 @@ int lib_interface_pim_address_family_mroute_oif_modify(
struct interface *iif;
struct interface *oif;
const char *oifname;
- struct ipaddr source_addr;
- struct ipaddr group_addr;
+ pim_addr source_addr;
+ pim_addr group_addr;
const struct lyd_node *if_dnode;
switch (args->event) {
@@ -2288,11 +2288,10 @@ int lib_interface_pim_address_family_mroute_oif_modify(
return NB_ERR_INCONSISTENCY;
}
- yang_dnode_get_ip(&source_addr, args->dnode, "../source-addr");
- yang_dnode_get_ip(&group_addr, args->dnode, "../group-addr");
+ yang_dnode_get_pimaddr(&source_addr, args->dnode, "../source-addr");
+ yang_dnode_get_pimaddr(&group_addr, args->dnode, "../group-addr");
- if (pim_static_add(pim, iif, oif, group_addr.ip._v4_addr,
- source_addr.ip._v4_addr)) {
+ if (pim_static_add(pim, iif, oif, group_addr, source_addr)) {
snprintf(args->errmsg, args->errmsg_len,
"Failed to add static mroute");
return NB_ERR_INCONSISTENCY;