summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pimd/pim_hello.c115
-rw-r--r--pimd/pim_pim.c18
-rw-r--r--pimd/pim_tlv.c36
3 files changed, 89 insertions, 80 deletions
diff --git a/pimd/pim_hello.c b/pimd/pim_hello.c
index 12857831..bfc128b9 100644
--- a/pimd/pim_hello.c
+++ b/pimd/pim_hello.c
@@ -160,7 +160,8 @@ int pim_hello_recv(struct interface *ifp,
uint32_t hello_option_generation_id = 0;
struct list *hello_option_addr_list = 0;
- on_trace(__PRETTY_FUNCTION__, ifp, src_addr);
+ if (PIM_DEBUG_PIM_HELLO)
+ on_trace(__PRETTY_FUNCTION__, ifp, src_addr);
pim_ifp = ifp->info;
zassert(pim_ifp);
@@ -180,12 +181,14 @@ int pim_hello_recv(struct interface *ifp,
int remain = tlv_pastend - tlv_curr;
if (remain < PIM_TLV_MIN_SIZE) {
- char src_str[100];
- pim_inet4_dump("<src?>", src_addr, src_str, sizeof(src_str));
- zlog_warn("%s: short PIM hello TLV size=%d < min=%d from %s on interface %s",
- __PRETTY_FUNCTION__,
- remain, PIM_TLV_MIN_SIZE,
- src_str, ifp->name);
+ if (PIM_DEBUG_PIM_HELLO) {
+ char src_str[100];
+ pim_inet4_dump("<src?>", src_addr, src_str, sizeof(src_str));
+ zlog_debug("%s: short PIM hello TLV size=%d < min=%d from %s on interface %s",
+ __PRETTY_FUNCTION__,
+ remain, PIM_TLV_MIN_SIZE,
+ src_str, ifp->name);
+ }
FREE_ADDR_LIST_THEN_RETURN(-1);
}
@@ -195,16 +198,18 @@ int pim_hello_recv(struct interface *ifp,
tlv_curr += PIM_TLV_LENGTH_SIZE;
if ((tlv_curr + option_len) > tlv_pastend) {
- char src_str[100];
- pim_inet4_dump("<src?>", src_addr, src_str, sizeof(src_str));
- zlog_warn("%s: long PIM hello TLV type=%d length=%d > left=%td from %s on interface %s",
- __PRETTY_FUNCTION__,
- option_type, option_len, tlv_pastend - tlv_curr,
- src_str, ifp->name);
+ if (PIM_DEBUG_PIM_HELLO) {
+ char src_str[100];
+ pim_inet4_dump("<src?>", src_addr, src_str, sizeof(src_str));
+ zlog_debug("%s: long PIM hello TLV type=%d length=%d > left=%td from %s on interface %s",
+ __PRETTY_FUNCTION__,
+ option_type, option_len, tlv_pastend - tlv_curr,
+ src_str, ifp->name);
+ }
FREE_ADDR_LIST_THEN_RETURN(-2);
}
- if (PIM_DEBUG_PIM_TRACE || PIM_DEBUG_PIM_HELLO) {
+ if (PIM_DEBUG_PIM_HELLO) {
char src_str[100];
pim_inet4_dump("<src?>", src_addr, src_str, sizeof(src_str));
zlog_debug("%s: parse left_size=%d: PIM hello TLV type=%d length=%d from %s on %s",
@@ -262,7 +267,7 @@ int pim_hello_recv(struct interface *ifp,
}
break;
case PIM_MSG_OPTION_TYPE_DM_STATE_REFRESH:
- if (PIM_DEBUG_PIM_TRACE || PIM_DEBUG_PIM_HELLO) {
+ if (PIM_DEBUG_PIM_HELLO) {
char src_str[100];
pim_inet4_dump("<src?>", src_addr, src_str, sizeof(src_str));
zlog_debug("%s: ignoring PIM hello dense-mode state refresh TLV option type=%d length=%d from %s on interface %s",
@@ -272,13 +277,13 @@ int pim_hello_recv(struct interface *ifp,
}
break;
default:
- {
+ if (PIM_DEBUG_PIM_HELLO) {
char src_str[100];
pim_inet4_dump("<src?>", src_addr, src_str, sizeof(src_str));
- zlog_warn("%s: ignoring unknown PIM hello TLV type=%d length=%d from %s on interface %s",
- __PRETTY_FUNCTION__,
- option_type, option_len,
- src_str, ifp->name);
+ zlog_debug("%s: ignoring unknown PIM hello TLV type=%d length=%d from %s on interface %s",
+ __PRETTY_FUNCTION__,
+ option_type, option_len,
+ src_str, ifp->name);
}
}
@@ -289,7 +294,7 @@ int pim_hello_recv(struct interface *ifp,
Check received PIM hello options
*/
- if (PIM_DEBUG_PIM_TRACE) {
+ if (PIM_DEBUG_PIM_HELLO) {
tlv_trace_uint16(__PRETTY_FUNCTION__, "holdtime",
ifp->name, src_addr,
PIM_OPTION_IS_SET(hello_options, PIM_OPTION_MASK_HOLDTIME),
@@ -321,11 +326,13 @@ int pim_hello_recv(struct interface *ifp,
}
if (!PIM_OPTION_IS_SET(hello_options, PIM_OPTION_MASK_HOLDTIME)) {
- char src_str[100];
- pim_inet4_dump("<src?>", src_addr, src_str, sizeof(src_str));
- zlog_warn("%s: PIM hello missing holdtime from %s on interface %s",
- __PRETTY_FUNCTION__,
- src_str, ifp->name);
+ if (PIM_DEBUG_PIM_HELLO) {
+ char src_str[100];
+ pim_inet4_dump("<src?>", src_addr, src_str, sizeof(src_str));
+ zlog_debug("%s: PIM hello missing holdtime from %s on interface %s",
+ __PRETTY_FUNCTION__,
+ src_str, ifp->name);
+ }
}
/*
@@ -345,11 +352,13 @@ int pim_hello_recv(struct interface *ifp,
hello_option_generation_id,
hello_option_addr_list);
if (!neigh) {
- char src_str[100];
- pim_inet4_dump("<src?>", src_addr, src_str, sizeof(src_str));
- zlog_warn("%s: failure creating PIM neighbor %s on interface %s",
- __PRETTY_FUNCTION__,
- src_str, ifp->name);
+ if (PIM_DEBUG_PIM_HELLO) {
+ char src_str[100];
+ pim_inet4_dump("<src?>", src_addr, src_str, sizeof(src_str));
+ zlog_warn("%s: failure creating PIM neighbor %s on interface %s",
+ __PRETTY_FUNCTION__,
+ src_str, ifp->name);
+ }
FREE_ADDR_LIST_THEN_RETURN(-8);
}
@@ -372,7 +381,7 @@ int pim_hello_recv(struct interface *ifp,
/* GenID mismatch, then replace neighbor */
- if (PIM_DEBUG_PIM_TRACE) {
+ if (PIM_DEBUG_PIM_HELLO) {
char src_str[100];
pim_inet4_dump("<src?>", src_addr, src_str, sizeof(src_str));
zlog_debug("%s: GenId mismatch new=%08x old=%08x: replacing neighbor %s on %s",
@@ -394,11 +403,13 @@ int pim_hello_recv(struct interface *ifp,
hello_option_generation_id,
hello_option_addr_list);
if (!neigh) {
- char src_str[100];
- pim_inet4_dump("<src?>", src_addr, src_str, sizeof(src_str));
- zlog_warn("%s: failure re-creating PIM neighbor %s on interface %s",
- __PRETTY_FUNCTION__,
- src_str, ifp->name);
+ if (PIM_DEBUG_PIM_HELLO) {
+ char src_str[100];
+ pim_inet4_dump("<src?>", src_addr, src_str, sizeof(src_str));
+ zlog_debug("%s: failure re-creating PIM neighbor %s on interface %s",
+ __PRETTY_FUNCTION__,
+ src_str, ifp->name);
+ }
FREE_ADDR_LIST_THEN_RETURN(-9);
}
/* actual addr list is saved under neighbor */
@@ -445,8 +456,10 @@ int pim_hello_build_tlv(const char *ifname,
PIM_MSG_OPTION_TYPE_HOLDTIME,
holdtime);
if (!curr) {
- zlog_warn("%s: could not set PIM hello Holdtime option for interface %s",
- __PRETTY_FUNCTION__, ifname);
+ if (PIM_DEBUG_PIM_HELLO) {
+ zlog_debug("%s: could not set PIM hello Holdtime option for interface %s",
+ __PRETTY_FUNCTION__, ifname);
+ }
return -1;
}
@@ -457,8 +470,10 @@ int pim_hello_build_tlv(const char *ifname,
propagation_delay,
override_interval);
if (!tmp) {
- zlog_warn("%s: could not set PIM LAN Prune Delay option for interface %s",
- __PRETTY_FUNCTION__, ifname);
+ if (PIM_DEBUG_PIM_HELLO) {
+ zlog_debug("%s: could not set PIM LAN Prune Delay option for interface %s",
+ __PRETTY_FUNCTION__, ifname);
+ }
return -1;
}
if (can_disable_join_suppression) {
@@ -472,8 +487,10 @@ int pim_hello_build_tlv(const char *ifname,
PIM_MSG_OPTION_TYPE_DR_PRIORITY,
dr_priority);
if (!curr) {
- zlog_warn("%s: could not set PIM hello DR Priority option for interface %s",
- __PRETTY_FUNCTION__, ifname);
+ if (PIM_DEBUG_PIM_HELLO) {
+ zlog_debug("%s: could not set PIM hello DR Priority option for interface %s",
+ __PRETTY_FUNCTION__, ifname);
+ }
return -2;
}
@@ -483,8 +500,10 @@ int pim_hello_build_tlv(const char *ifname,
PIM_MSG_OPTION_TYPE_GENERATION_ID,
generation_id);
if (!curr) {
- zlog_warn("%s: could not set PIM hello Generation ID option for interface %s",
- __PRETTY_FUNCTION__, ifname);
+ if (PIM_DEBUG_PIM_HELLO) {
+ zlog_debug("%s: could not set PIM hello Generation ID option for interface %s",
+ __PRETTY_FUNCTION__, ifname);
+ }
return -3;
}
@@ -494,8 +513,10 @@ int pim_hello_build_tlv(const char *ifname,
pastend,
ifconnected);
if (!curr) {
- zlog_warn("%s: could not set PIM hello Secondary Address List option for interface %s",
- __PRETTY_FUNCTION__, ifname);
+ if (PIM_DEBUG_PIM_HELLO) {
+ zlog_debug("%s: could not set PIM hello Secondary Address List option for interface %s",
+ __PRETTY_FUNCTION__, ifname);
+ }
return -4;
}
}
diff --git a/pimd/pim_pim.c b/pimd/pim_pim.c
index 66fc59be..a04a0afc 100644
--- a/pimd/pim_pim.c
+++ b/pimd/pim_pim.c
@@ -521,7 +521,7 @@ static int hello_send(struct interface *ifp,
pim_ifp = ifp->info;
- if (PIM_DEBUG_PIM_PACKETS || PIM_DEBUG_PIM_HELLO) {
+ if (PIM_DEBUG_PIM_HELLO) {
char dst_str[100];
pim_inet4_dump("<dst?>", qpim_all_pim_routers_addr, dst_str, sizeof(dst_str));
zlog_debug("%s: to %s on %s: holdt=%u prop_d=%u overr_i=%u dis_join_supp=%d dr_prio=%u gen_id=%08x addrs=%d",
@@ -561,8 +561,10 @@ static int hello_send(struct interface *ifp,
pim_msg,
pim_msg_size,
ifp->name)) {
- zlog_warn("%s: could not send PIM message on interface %s",
- __PRETTY_FUNCTION__, ifp->name);
+ if (PIM_DEBUG_PIM_HELLO) {
+ zlog_debug("%s: could not send PIM message on interface %s",
+ __PRETTY_FUNCTION__, ifp->name);
+ }
return -2;
}
@@ -581,8 +583,10 @@ static int pim_hello_send(struct interface *ifp,
if (hello_send(ifp, holdtime)) {
++pim_ifp->pim_ifstat_hello_sendfail;
- zlog_warn("Could not send PIM hello on interface %s",
- ifp->name);
+ if (PIM_DEBUG_PIM_HELLO) {
+ zlog_warn("Could not send PIM hello on interface %s",
+ ifp->name);
+ }
return -1;
}
@@ -599,7 +603,7 @@ static void hello_resched(struct interface *ifp)
pim_ifp = ifp->info;
zassert(pim_ifp);
- if (PIM_DEBUG_PIM_TRACE) {
+ if (PIM_DEBUG_PIM_HELLO) {
zlog_debug("Rescheduling %d sec hello on interface %s",
pim_ifp->pim_hello_period, ifp->name);
}
@@ -699,7 +703,7 @@ void pim_hello_restart_triggered(struct interface *ifp)
random_msec = random() % (triggered_hello_delay_msec + 1);
- if (PIM_DEBUG_PIM_EVENTS) {
+ if (PIM_DEBUG_PIM_HELLO) {
zlog_debug("Scheduling %d msec triggered hello on interface %s",
random_msec, ifp->name);
}
diff --git a/pimd/pim_tlv.c b/pimd/pim_tlv.c
index 95ee5ab0..ed4dbba2 100644
--- a/pimd/pim_tlv.c
+++ b/pimd/pim_tlv.c
@@ -38,12 +38,8 @@ uint8_t *pim_tlv_append_uint16(uint8_t *buf,
{
uint16_t option_len = 2;
- if ((buf + PIM_TLV_OPTION_SIZE(option_len)) > buf_pastend) {
- zlog_warn("%s: buffer overflow: left=%zd needed=%d",
- __PRETTY_FUNCTION__,
- buf_pastend - buf, PIM_TLV_OPTION_SIZE(option_len));
- return 0;
- }
+ if ((buf + PIM_TLV_OPTION_SIZE(option_len)) > buf_pastend)
+ return NULL;
*(uint16_t *) buf = htons(option_type);
buf += 2;
@@ -63,12 +59,8 @@ uint8_t *pim_tlv_append_2uint16(uint8_t *buf,
{
uint16_t option_len = 4;
- if ((buf + PIM_TLV_OPTION_SIZE(option_len)) > buf_pastend) {
- zlog_warn("%s: buffer overflow: left=%zd needed=%d",
- __PRETTY_FUNCTION__,
- buf_pastend - buf, PIM_TLV_OPTION_SIZE(option_len));
- return 0;
- }
+ if ((buf + PIM_TLV_OPTION_SIZE(option_len)) > buf_pastend)
+ return NULL;
*(uint16_t *) buf = htons(option_type);
buf += 2;
@@ -89,12 +81,8 @@ uint8_t *pim_tlv_append_uint32(uint8_t *buf,
{
uint16_t option_len = 4;
- if ((buf + PIM_TLV_OPTION_SIZE(option_len)) > buf_pastend) {
- zlog_warn("%s: buffer overflow: left=%zd needed=%d",
- __PRETTY_FUNCTION__,
- buf_pastend - buf, PIM_TLV_OPTION_SIZE(option_len));
- return 0;
- }
+ if ((buf + PIM_TLV_OPTION_SIZE(option_len)) > buf_pastend)
+ return NULL;
*(uint16_t *) buf = htons(option_type);
buf += 2;
@@ -136,12 +124,8 @@ uint8_t *pim_tlv_append_addrlist_ucast(uint8_t *buf,
if (p->family != AF_INET)
continue;
- if ((curr + ucast_ipv4_encoding_len) > buf_pastend) {
- zlog_warn("%s: buffer overflow: left=%zd needed=%zu",
- __PRETTY_FUNCTION__,
- buf_pastend - curr, ucast_ipv4_encoding_len);
+ if ((curr + ucast_ipv4_encoding_len) > buf_pastend)
return 0;
- }
/* Write encoded unicast IPv4 address */
*(uint8_t *) curr = PIM_MSG_ADDRESS_FAMILY_IPV4; /* notice: AF_INET != PIM_MSG_ADDRESS_FAMILY_IPV4 */
@@ -155,9 +139,9 @@ uint8_t *pim_tlv_append_addrlist_ucast(uint8_t *buf,
}
if (PIM_DEBUG_PIM_TRACE) {
- zlog_warn("%s: number of encoded secondary unicast IPv4 addresses: %zu",
- __PRETTY_FUNCTION__,
- option_len / ucast_ipv4_encoding_len);
+ zlog_debug("%s: number of encoded secondary unicast IPv4 addresses: %zu",
+ __PRETTY_FUNCTION__,
+ option_len / ucast_ipv4_encoding_len);
}
if (option_len < 1) {