diff options
| author | Quentin Young <qlyoung@cumulusnetworks.com> | 2019-03-07 18:46:02 +0000 | 
|---|---|---|
| committer | Quentin Young <qlyoung@cumulusnetworks.com> | 2019-05-17 00:27:08 +0000 | 
| commit | 613b45b008bd473704b341ce4d8247ddceeba494 (patch) | |
| tree | 2cd53b18fffbd25cb8bb8a2e45e91dfcf15cc25a | |
| parent | bd0934fa6dd3ea847ab993ef985786f0b52d3b96 (diff) | |
vrrpd: clean up logging
* Always include address family when available
* Log advertisement decodes on one line
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
| -rw-r--r-- | vrrpd/vrrp.c | 273 | ||||
| -rw-r--r-- | vrrpd/vrrp.h | 3 | ||||
| -rw-r--r-- | vrrpd/vrrp_arp.c | 16 | ||||
| -rw-r--r-- | vrrpd/vrrp_ndisc.c | 8 | ||||
| -rw-r--r-- | vrrpd/vrrp_packet.c | 14 | 
5 files changed, 167 insertions, 147 deletions
diff --git a/vrrpd/vrrp.c b/vrrpd/vrrp.c index cdc9e38665..cba078a6c1 100644 --- a/vrrpd/vrrp.c +++ b/vrrpd/vrrp.c @@ -295,9 +295,9 @@ void vrrp_check_start(struct vrrp_vrouter *vr)  	if (start)  		vrrp_event(r, VRRP_EVENT_STARTUP);  	else if (whynot) -		zlog_warn(VRRP_LOGPFX VRRP_LOGPFX_VRID -			  "Refusing to start IPv4 Virtual Router: %s", -			  vr->vrid, whynot); +		zlog_warn(VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +			  "Refusing to start Virtual Router: %s", +			  vr->vrid, family2str(r->family), whynot);  	r = vr->v6;  	/* Must not already be started */ @@ -327,9 +327,9 @@ void vrrp_check_start(struct vrrp_vrouter *vr)  	if (start)  		vrrp_event(r, VRRP_EVENT_STARTUP);  	else if (whynot) -		zlog_warn(VRRP_LOGPFX VRRP_LOGPFX_VRID -			  "Refusing to start IPv6 Virtual Router: %s", -			  vr->vrid, whynot); +		zlog_warn(VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +			  "Refusing to start Virtual Router: %s", +			  vr->vrid, family2str(r->family), whynot);  }  void vrrp_set_priority(struct vrrp_vrouter *vr, uint8_t priority) @@ -376,9 +376,9 @@ int vrrp_add_ip(struct vrrp_router *r, struct ipaddr *ip)  		char ipbuf[INET6_ADDRSTRLEN];  		inet_ntop(r->family, &ip->ip, ipbuf, sizeof(ipbuf));  		zlog_err( -			VRRP_LOGPFX VRRP_LOGPFX_VRID +			VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM  			"This VRRP router is not the address owner of %s, but is the address owner of other addresses; this config is unsupported.", -			r->vr->vrid, ipbuf); +			r->vr->vrid, family2str(r->family), ipbuf);  		return -1;  	} @@ -511,15 +511,16 @@ static bool vrrp_attach_interface(struct vrrp_router *r)  	assert(!!selection == !!candidates);  	if (candidates == 0) -		zlog_warn(VRRP_LOGPFX VRRP_LOGPFX_VRID -			  "%s interface: None (no interface found w/ MAC %s)", +		zlog_warn(VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +			  "Interface: None (no interface found w/ MAC %s)",  			  r->vr->vrid, family2str(r->family), ethstr);  	else if (candidates > 1) -		zlog_warn(VRRP_LOGPFX VRRP_LOGPFX_VRID -			  "%s interface: Multiple interfaces found; using %s", +		zlog_warn(VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +			  "Interface: Multiple interfaces found; using %s",  			  r->vr->vrid, family2str(r->family), selection->name);  	else -		zlog_info(VRRP_LOGPFX VRRP_LOGPFX_VRID "%s interface: %s", +		zlog_info(VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +			  "Interface: %s",  			  r->vr->vrid, family2str(r->family), selection->name);  	r->mvl_ifp = selection; @@ -652,9 +653,10 @@ static void vrrp_send_advertisement(struct vrrp_router *r)  	XFREE(MTYPE_VRRP_PKT, pkt);  	if (sent < 0) { -		zlog_warn(VRRP_LOGPFX VRRP_LOGPFX_VRID +		zlog_warn(VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM  			  "Failed to send VRRP Advertisement: %s", -			  r->vr->vrid, safe_strerror(errno)); +			  r->vr->vrid, family2str(r->family), +			  safe_strerror(errno));  	} else {  		++r->stats.adver_tx_cnt;  	} @@ -698,15 +700,15 @@ static int vrrp_recv_advertisement(struct vrrp_router *r, struct ipaddr *src,  	char dumpbuf[BUFSIZ];  	vrrp_pkt_adver_dump(dumpbuf, sizeof(dumpbuf), pkt);  	DEBUGD(&vrrp_dbg_proto, -	       VRRP_LOGPFX VRRP_LOGPFX_VRID +	       VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM  	       "Received VRRP Advertisement from %s:\n%s", -	       r->vr->vrid, sipstr, dumpbuf); +	       r->vr->vrid, family2str(r->family), sipstr, dumpbuf);  	/* Check that VRID matches our configured VRID */  	if (pkt->hdr.vrid != r->vr->vrid) {  		DEBUGD(&vrrp_dbg_proto, -		       VRRP_LOGPFX VRRP_LOGPFX_VRID -		       "%s datagram invalid: Advertisement contains VRID %" PRIu8 +		       VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +		       "Datagram invalid: Advertisement contains VRID %" PRIu8  		       " which does not match our instance",  		       r->vr->vrid, family2str(r->family), pkt->hdr.vrid);  		return -1; @@ -715,8 +717,8 @@ static int vrrp_recv_advertisement(struct vrrp_router *r, struct ipaddr *src,  	/* Verify that we are not the IPvX address owner */  	if (r->is_owner) {  		DEBUGD(&vrrp_dbg_proto, -		       VRRP_LOGPFX VRRP_LOGPFX_VRID -		       "%s datagram invalid: Received advertisement but we are the address owner", +		       VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +		       "Datagram invalid: Received advertisement but we are the address owner",  		       r->vr->vrid, family2str(r->family));  		return -1;  	} @@ -726,8 +728,8 @@ static int vrrp_recv_advertisement(struct vrrp_router *r, struct ipaddr *src,  		      == MAX(r->vr->advertisement_interval / 100, 1));  	if (r->vr->version == 2 && !adveq) {  		DEBUGD(&vrrp_dbg_proto, -		       VRRP_LOGPFX VRRP_LOGPFX_VRID -		       "%s datagram invalid: Received advertisement with advertisement interval %" PRIu8 +		       VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +		       "Datagram invalid: Received advertisement with advertisement interval %" PRIu8  		       " unequal to our configured value %u",  		       r->vr->vrid, family2str(r->family),  		       pkt->hdr.v2.adver_int, @@ -739,8 +741,8 @@ static int vrrp_recv_advertisement(struct vrrp_router *r, struct ipaddr *src,  	/* Check that # IPs received matches our # configured IPs */  	if (pkt->hdr.naddr != r->addrs->count)  		DEBUGD(&vrrp_dbg_proto, -		       VRRP_LOGPFX VRRP_LOGPFX_VRID -		       "%s datagram has %" PRIu8 +		       VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +		       "Datagram has %" PRIu8  		       " addresses, but this VRRP instance has %u",  		       r->vr->vrid, family2str(r->family), pkt->hdr.naddr,  		       r->addrs->count); @@ -764,10 +766,11 @@ static int vrrp_recv_advertisement(struct vrrp_router *r, struct ipaddr *src,  			   || ((pkt->hdr.priority == r->priority)  			       && addrcmp > 0)) {  			zlog_info( -				VRRP_LOGPFX VRRP_LOGPFX_VRID +				VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM  				"Received advertisement from %s w/ priority %" PRIu8  				"; switching to Backup", -				r->vr->vrid, sipstr, pkt->hdr.priority); +				r->vr->vrid, family2str(r->family), sipstr, +				pkt->hdr.priority);  			THREAD_OFF(r->t_adver_timer);  			if (r->vr->version == 3) {  				r->master_adver_interval = @@ -783,11 +786,11 @@ static int vrrp_recv_advertisement(struct vrrp_router *r, struct ipaddr *src,  		} else {  			/* Discard advertisement */  			DEBUGD(&vrrp_dbg_proto, -			       VRRP_LOGPFX VRRP_LOGPFX_VRID +			       VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM  			       "Discarding advertisement from %s (%" PRIu8  			       " <= %" PRIu8 " & %s <= %s)", -			       r->vr->vrid, sipstr, pkt->hdr.priority, -			       r->priority, sipstr, dipstr); +			       r->vr->vrid, family2str(r->family), sipstr, +			       pkt->hdr.priority, r->priority, sipstr, dipstr);  		}  		break;  	case VRRP_STATE_BACKUP: @@ -812,17 +815,18 @@ static int vrrp_recv_advertisement(struct vrrp_router *r, struct ipaddr *src,  			   && pkt->hdr.priority < r->priority) {  			/* Discard advertisement */  			DEBUGD(&vrrp_dbg_proto, -			       VRRP_LOGPFX VRRP_LOGPFX_VRID +			       VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM  			       "Discarding advertisement from %s (%" PRIu8  			       " < %" PRIu8 " & preempt = true)", -			       r->vr->vrid, sipstr, pkt->hdr.priority, -			       r->priority); +			       r->vr->vrid, family2str(r->family), sipstr, +			       pkt->hdr.priority, r->priority);  		}  		break;  	case VRRP_STATE_INITIALIZE: -		zlog_err(VRRP_LOGPFX VRRP_LOGPFX_VRID +		zlog_err(VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM  			 "Received ADVERTISEMENT in state %s; this is a bug", -			 r->vr->vrid, vrrp_state_names[r->fsm.state]); +			 r->vr->vrid, family2str(r->family), +			 vrrp_state_names[r->fsm.state]);  		break;  	} @@ -869,7 +873,8 @@ static int vrrp_read(struct thread *thread)  	if (DEBUG_MODE_CHECK(&vrrp_dbg_pkt, DEBUG_MODE_ALL)) {  		DEBUGD(&vrrp_dbg_pkt, -		       VRRP_LOGPFX VRRP_LOGPFX_VRID "Received %s datagram: ", +		       VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +		       "Datagram rx: ",  		       r->vr->vrid, family2str(r->family));  		zlog_hexdump(r->ibuf, nbytes);  	} @@ -877,16 +882,13 @@ static int vrrp_read(struct thread *thread)  	pktsize = vrrp_pkt_parse_datagram(r->family, r->vr->version, &m, nbytes,  					  &src, &pkt, errbuf, sizeof(errbuf)); -	if (pktsize < 0) { +	if (pktsize < 0)  		DEBUGD(&vrrp_dbg_pkt, -		       VRRP_LOGPFX VRRP_LOGPFX_VRID "%s datagram invalid: %s", +		       VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +		       "Datagram invalid: %s",  		       r->vr->vrid, family2str(r->family), errbuf); -	} else { -		DEBUGD(&vrrp_dbg_pkt, -		       VRRP_LOGPFX VRRP_LOGPFX_VRID "Packet looks good", -		       r->vr->vrid); +	else  		vrrp_recv_advertisement(r, &src, pkt, pktsize); -	}  	resched = true; @@ -936,8 +938,8 @@ static int vrrp_bind_to_primary_connected(struct vrrp_router *r)  		}  	if (c == NULL) { -		zlog_err(VRRP_LOGPFX VRRP_LOGPFX_VRID -			 "Failed to find %s address to bind on %s", +		zlog_err(VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +			 "Failed to find address to bind on %s",  			 r->vr->vrid, family2str(r->family), ifp->name);  		return -1;  	} @@ -964,9 +966,9 @@ static int vrrp_bind_to_primary_connected(struct vrrp_router *r)  	sockopt_reuseaddr(r->sock_tx);  	if (bind(r->sock_tx, (const struct sockaddr *)&su, sizeof(su)) < 0) {  		zlog_err( -			VRRP_LOGPFX VRRP_LOGPFX_VRID +			VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM  			"Failed to bind Tx socket to primary IP address %s: %s", -			r->vr->vrid, +			r->vr->vrid, family2str(r->family),  			inet_ntop(r->family,  				  (const void *)&c->address->u.prefix, ipstr,  				  sizeof(ipstr)), @@ -974,9 +976,9 @@ static int vrrp_bind_to_primary_connected(struct vrrp_router *r)  		return -1;  	} else {  		DEBUGD(&vrrp_dbg_sock, -		       VRRP_LOGPFX VRRP_LOGPFX_VRID +		       VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM  		       "Bound Tx socket to primary IP address %s", -		       r->vr->vrid, +		       r->vr->vrid, family2str(r->family),  		       inet_ntop(r->family, (const void *)&c->address->u.prefix,  				 ipstr, sizeof(ipstr)));  	} @@ -1022,8 +1024,8 @@ static int vrrp_socket(struct vrrp_router *r)  	if (r->sock_rx < 0 || r->sock_tx < 0) {  		const char *rxtx = r->sock_rx < 0 ? "Rx" : "Tx"; -		zlog_warn(VRRP_LOGPFX VRRP_LOGPFX_VRID -			  "Can't create %s VRRP %s socket", +		zlog_warn(VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +			  "Can't create VRRP %s socket",  			  r->vr->vrid, family2str(r->family), rxtx);  		failed = true;  		goto done; @@ -1037,9 +1039,9 @@ static int vrrp_socket(struct vrrp_router *r)  				 sizeof(ttl));  		if (ret < 0) {  			zlog_warn( -				VRRP_LOGPFX VRRP_LOGPFX_VRID +				VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM  				"Failed to set outgoing multicast TTL count to 255; RFC 5798 compliant implementations will drop our packets", -				r->vr->vrid); +				r->vr->vrid, family2str(r->family));  		}  		/* Set Tx socket DSCP byte */ @@ -1057,16 +1059,17 @@ static int vrrp_socket(struct vrrp_router *r)  		}  		vrrp_privs.change(ZPRIVS_LOWER);  		if (ret) { -			zlog_warn(VRRP_LOGPFX VRRP_LOGPFX_VRID +			zlog_warn(VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM  				  "Failed to bind Rx socket to %s: %s", -				  r->vr->vrid, r->vr->ifp->name, -				  safe_strerror(errno)); +				  r->vr->vrid, family2str(r->family), +				  r->vr->ifp->name, safe_strerror(errno));  			failed = true;  			goto done;  		}  		DEBUGD(&vrrp_dbg_sock, -		       VRRP_LOGPFX VRRP_LOGPFX_VRID "Bound Rx socket to %s", -		       r->vr->vrid, r->vr->ifp->name); +		       VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +		       "Bound Rx socket to %s", +		       r->vr->vrid, family2str(r->family), r->vr->ifp->name);  		/* Bind Rx socket to v4 multicast address */  		struct sockaddr_in sa = {0}; @@ -1074,16 +1077,16 @@ static int vrrp_socket(struct vrrp_router *r)  		sa.sin_addr.s_addr = htonl(VRRP_MCASTV4_GROUP);  		if (bind(r->sock_rx, (struct sockaddr *)&sa, sizeof(sa))) {  			zlog_err( -				VRRP_LOGPFX VRRP_LOGPFX_VRID -				"Failed to bind Rx socket to VRRP %s multicast group: %s", +				VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +				"Failed to bind Rx socket to VRRP multicast group: %s",  				r->vr->vrid, family2str(r->family),  				safe_strerror(errno));  			failed = true;  			goto done;  		}  		DEBUGD(&vrrp_dbg_sock, -		       VRRP_LOGPFX VRRP_LOGPFX_VRID -		       "Bound Rx socket to VRRP %s multicast group", +		       VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +		       "Bound Rx socket to VRRP multicast group",  		       r->vr->vrid, family2str(r->family));  		/* Join Rx socket to VRRP IPv4 multicast group */ @@ -1100,8 +1103,8 @@ static int vrrp_socket(struct vrrp_router *r)  			goto done;  		}  		DEBUGD(&vrrp_dbg_sock, -		       VRRP_LOGPFX VRRP_LOGPFX_VRID -		       "Joined %s VRRP multicast group", +		       VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +		       "Joined VRRP multicast group",  		       r->vr->vrid, family2str(r->family));  		/* Set outgoing interface for advertisements */ @@ -1111,24 +1114,25 @@ static int vrrp_socket(struct vrrp_router *r)  				 (void *)&mreqn, sizeof(mreqn));  		if (ret < 0) {  			zlog_warn( -				VRRP_LOGPFX VRRP_LOGPFX_VRID +				VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM  				"Could not set %s as outgoing multicast interface", -				r->vr->vrid, r->mvl_ifp->name); +				r->vr->vrid, family2str(r->family), +				r->mvl_ifp->name);  			failed = true;  			goto done;  		}  		DEBUGD(&vrrp_dbg_sock, -		       VRRP_LOGPFX VRRP_LOGPFX_VRID +		       VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM  		       "Set %s as outgoing multicast interface", -		       r->vr->vrid, r->mvl_ifp->name); +		       r->vr->vrid, family2str(r->family), r->mvl_ifp->name);  	} else if (r->family == AF_INET6) {  		/* Always transmit IPv6 packets with hop limit set to 255 */  		ret = setsockopt_ipv6_multicast_hops(r->sock_tx, 255);  		if (ret < 0) {  			zlog_warn( -				VRRP_LOGPFX VRRP_LOGPFX_VRID +				VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM  				"Failed to set outgoing multicast hop count to 255; RFC 5798 compliant implementations will drop our packets", -				r->vr->vrid); +				r->vr->vrid, family2str(r->family));  		}  		/* Set Tx socket DSCP byte */ @@ -1137,9 +1141,9 @@ static int vrrp_socket(struct vrrp_router *r)  		/* Request hop limit delivery */  		setsockopt_ipv6_hoplimit(r->sock_rx, 1);  		if (ret < 0) { -			zlog_warn(VRRP_LOGPFX VRRP_LOGPFX_VRID +			zlog_warn(VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM  				  "Failed to request IPv6 Hop Limit delivery", -				  r->vr->vrid); +				  r->vr->vrid, family2str(r->family));  			failed = true;  			goto done;  		} @@ -1156,16 +1160,17 @@ static int vrrp_socket(struct vrrp_router *r)  		}  		vrrp_privs.change(ZPRIVS_LOWER);  		if (ret) { -			zlog_warn(VRRP_LOGPFX VRRP_LOGPFX_VRID +			zlog_warn(VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM  				  "Failed to bind Rx socket to %s: %s", -				  r->vr->vrid, r->vr->ifp->name, -				  safe_strerror(errno)); +				  r->vr->vrid, family2str(r->family), +				  r->vr->ifp->name, safe_strerror(errno));  			failed = true;  			goto done;  		}  		DEBUGD(&vrrp_dbg_sock, -		       VRRP_LOGPFX VRRP_LOGPFX_VRID "Bound Rx socket to %s", -		       r->vr->vrid, r->vr->ifp->name); +		       VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +		       "Bound Rx socket to %s", +		       r->vr->vrid, family2str(r->family), r->vr->ifp->name);  		/* Bind Rx socket to v6 multicast address */  		struct sockaddr_in6 sa = {0}; @@ -1173,16 +1178,16 @@ static int vrrp_socket(struct vrrp_router *r)  		inet_pton(AF_INET6, VRRP_MCASTV6_GROUP_STR, &sa.sin6_addr);  		if (bind(r->sock_rx, (struct sockaddr *)&sa, sizeof(sa))) {  			zlog_err( -				VRRP_LOGPFX VRRP_LOGPFX_VRID -				"Failed to bind Rx socket to VRRP %s multicast group: %s", +				VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +				"Failed to bind Rx socket to VRRP multicast group: %s",  				r->vr->vrid, family2str(r->family),  				safe_strerror(errno));  			failed = true;  			goto done;  		}  		DEBUGD(&vrrp_dbg_sock, -		       VRRP_LOGPFX VRRP_LOGPFX_VRID -		       "Bound Rx socket to VRRP %s multicast group", +		       VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +		       "Bound Rx socket to VRRP multicast group",  		       r->vr->vrid, family2str(r->family));  		/* Join VRRP IPv6 multicast group */ @@ -1193,15 +1198,15 @@ static int vrrp_socket(struct vrrp_router *r)  		ret = setsockopt(r->sock_rx, IPPROTO_IPV6, IPV6_JOIN_GROUP,  				 &mreq, sizeof(mreq));  		if (ret < 0) { -			zlog_warn(VRRP_LOGPFX VRRP_LOGPFX_VRID -				  "Failed to join VRRP %s multicast group", +			zlog_warn(VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +				  "Failed to join VRRP multicast group",  				  r->vr->vrid, family2str(r->family));  			failed = true;  			goto done;  		}  		DEBUGD(&vrrp_dbg_sock, -		       VRRP_LOGPFX VRRP_LOGPFX_VRID -		       "Joined %s VRRP multicast group", +		       VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +		       "Joined VRRP multicast group",  		       r->vr->vrid, family2str(r->family));  		/* Set outgoing interface for advertisements */ @@ -1209,16 +1214,17 @@ static int vrrp_socket(struct vrrp_router *r)  				 &r->mvl_ifp->ifindex, sizeof(ifindex_t));  		if (ret < 0) {  			zlog_warn( -				VRRP_LOGPFX VRRP_LOGPFX_VRID +				VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM  				"Could not set %s as outgoing multicast interface", -				r->vr->vrid, r->mvl_ifp->name); +				r->vr->vrid, family2str(r->family), +				r->mvl_ifp->name);  			failed = true;  			goto done;  		}  		DEBUGD(&vrrp_dbg_sock, -		       VRRP_LOGPFX VRRP_LOGPFX_VRID +		       VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM  		       "Set %s as outgoing multicast interface", -		       r->vr->vrid, r->mvl_ifp->name); +		       r->vr->vrid, family2str(r->family), r->mvl_ifp->name);  	}  	/* Bind Tx socket to link-local address */ @@ -1230,8 +1236,8 @@ static int vrrp_socket(struct vrrp_router *r)  done:  	ret = 0;  	if (failed) { -		zlog_warn(VRRP_LOGPFX VRRP_LOGPFX_VRID -			  "Failed to initialize VRRP %s router", +		zlog_warn(VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +			  "Failed to initialize VRRP router",  			  r->vr->vrid, family2str(r->family));  		if (r->sock_rx >= 0) {  			close(r->sock_rx); @@ -1280,22 +1286,22 @@ static void vrrp_change_state_master(struct vrrp_router *r)  			vrrp_ndisc_una_send_all(r);  	} else {  		DEBUGD(&vrrp_dbg_proto, -		       VRRP_LOGPFX VRRP_LOGPFX_VRID +		       VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM  		       "Delaying VRRP advertisement until interface is up", -		       r->vr->vrid); +		       r->vr->vrid, family2str(r->family));  		r->advert_pending = true;  		if (r->family == AF_INET) {  			DEBUGD(&vrrp_dbg_proto, -			       VRRP_LOGPFX VRRP_LOGPFX_VRID +			       VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM  			       "Delaying VRRP gratuitous ARPs until interface is up", -			       r->vr->vrid); +			       r->vr->vrid, family2str(r->family));  			r->garp_pending = true;  		} else if (r->family == AF_INET6) {  			DEBUGD(&vrrp_dbg_proto, -			       VRRP_LOGPFX VRRP_LOGPFX_VRID +			       VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM  			       "Delaying VRRP unsolicited neighbor advertisement until interface is up", -			       r->vr->vrid); +			       r->vr->vrid, family2str(r->family));  			r->ndisc_pending = true;  		}  	} @@ -1371,7 +1377,8 @@ static void vrrp_change_state(struct vrrp_router *r, int to)  	/* Call our handlers, then any subscribers */  	vrrp_change_state_handlers[to](r);  	hook_call(vrrp_change_state_hook, r, to); -	zlog_info(VRRP_LOGPFX VRRP_LOGPFX_VRID "%s -> %s", r->vr->vrid, +	zlog_info(VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM "%s -> %s", +		  r->vr->vrid, family2str(r->family),  		  vrrp_state_names[r->fsm.state], vrrp_state_names[to]);  	r->fsm.state = to; @@ -1386,7 +1393,9 @@ static int vrrp_adver_timer_expire(struct thread *thread)  	struct vrrp_router *r = thread->arg;  	DEBUGD(&vrrp_dbg_proto, -	       VRRP_LOGPFX VRRP_LOGPFX_VRID "Adver_Timer expired", r->vr->vrid); +	       VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +	       "Adver_Timer expired", +	       r->vr->vrid, family2str(r->family));  	if (r->fsm.state == VRRP_STATE_MASTER) {  		/* Send an ADVERTISEMENT */ @@ -1397,9 +1406,10 @@ static int vrrp_adver_timer_expire(struct thread *thread)  				      r->vr->advertisement_interval * 10,  				      &r->t_adver_timer);  	} else { -		zlog_err(VRRP_LOGPFX VRRP_LOGPFX_VRID +		zlog_err(VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM  			 "Adver_Timer expired in state '%s'; this is a bug", -			 r->vr->vrid, vrrp_state_names[r->fsm.state]); +			 r->vr->vrid, family2str(r->family), +			 vrrp_state_names[r->fsm.state]);  	}  	return 0; @@ -1412,8 +1422,9 @@ static int vrrp_master_down_timer_expire(struct thread *thread)  {  	struct vrrp_router *r = thread->arg; -	zlog_info(VRRP_LOGPFX VRRP_LOGPFX_VRID "Master_Down_Timer expired", -		  r->vr->vrid); +	zlog_info(VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +		  "Master_Down_Timer expired", +		  r->vr->vrid, family2str(r->family));  	thread_add_timer_msec(master, vrrp_adver_timer_expire, r,  			      r->vr->advertisement_interval * 10, @@ -1448,8 +1459,8 @@ static int vrrp_startup(struct vrrp_router *r)  	/* Must have a valid macvlan interface available */  	if (r->mvl_ifp == NULL && !vrrp_attach_interface(r)) { -		zlog_warn(VRRP_LOGPFX VRRP_LOGPFX_VRID -			  "No appropriate interface for %s VRRP found", +		zlog_warn(VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +			  "No appropriate interface found",  			  r->vr->vrid, family2str(r->family));  		return -1;  	} @@ -1482,9 +1493,10 @@ static int vrrp_startup(struct vrrp_router *r)  		vrrp_recalculate_timers(r);  		zlog_info( -			VRRP_LOGPFX VRRP_LOGPFX_VRID +			VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM  			"%s has priority set to 255 or owns primary Virtual Router IP %s; electing self as Master", -			r->vr->vrid, r->vr->ifp->name, ipbuf); +			r->vr->vrid, family2str(r->family), r->vr->ifp->name, +			ipbuf);  	}  	if (r->priority == VRRP_PRIO_MASTER) { @@ -1528,9 +1540,10 @@ static int vrrp_shutdown(struct vrrp_router *r)  		break;  	case VRRP_STATE_INITIALIZE:  		DEBUGD(&vrrp_dbg_proto, -		       VRRP_LOGPFX VRRP_LOGPFX_VRID +		       VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM  		       "Received '%s' event in '%s' state; ignoring", -		       r->vr->vrid, vrrp_event_names[VRRP_EVENT_SHUTDOWN], +		       r->vr->vrid, family2str(r->family), +		       vrrp_event_names[VRRP_EVENT_SHUTDOWN],  		       vrrp_state_names[VRRP_STATE_INITIALIZE]);  		break;  	} @@ -1577,8 +1590,8 @@ static int (*vrrp_event_handlers[])(struct vrrp_router *r) = {   */  int vrrp_event(struct vrrp_router *r, int event)  { -	zlog_info(VRRP_LOGPFX VRRP_LOGPFX_VRID "'%s' event", r->vr->vrid, -		  vrrp_event_names[event]); +	zlog_info(VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM "'%s' event", +		  r->vr->vrid, family2str(r->family), vrrp_event_names[event]);  	return vrrp_event_handlers[event](r);  } @@ -1603,8 +1616,8 @@ static void vrrp_autoconfig_autoaddrupdate(struct vrrp_router *r)  		return;  	DEBUGD(&vrrp_dbg_auto, -	       VRRP_LOGPFX VRRP_LOGPFX_VRID -	       "Setting %s Virtual IP list to match IPv4 addresses on %s", +	       VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +	       "Setting Virtual IP list to match IPv4 addresses on %s",  	       r->vr->vrid, family2str(r->family), r->mvl_ifp->name);  	for (ALL_LIST_ELEMENTS_RO(r->mvl_ifp->connected, ln, c)) {  		is_v6_ll = (c->address->family == AF_INET6 @@ -1613,8 +1626,9 @@ static void vrrp_autoconfig_autoaddrupdate(struct vrrp_router *r)  			inet_ntop(r->family, &c->address->u.prefix, ipbuf,  				  sizeof(ipbuf));  			DEBUGD(&vrrp_dbg_auto, -			       VRRP_LOGPFX VRRP_LOGPFX_VRID "Adding %s", -			       r->vr->vrid, ipbuf); +			       VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +			       "Adding %s", +			       r->vr->vrid, family2str(r->family), ipbuf);  			if (r->family == AF_INET)  				vrrp_add_ipv4(r->vr, c->address->u.prefix4);  			else @@ -1626,8 +1640,8 @@ static void vrrp_autoconfig_autoaddrupdate(struct vrrp_router *r)  	if (r->addrs->count == 0 && r->fsm.state != VRRP_STATE_INITIALIZE) {  		DEBUGD(&vrrp_dbg_auto, -		       VRRP_LOGPFX VRRP_LOGPFX_VRID -		       "%s Virtual IP list is empty; shutting down", +		       VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +		       "Virtual IP list is empty; shutting down",  		       r->vr->vrid, family2str(r->family));  		vrrp_event(r, VRRP_EVENT_SHUTDOWN);  	} @@ -1645,18 +1659,19 @@ vrrp_autoconfig_autocreate(struct interface *mvl_ifp)  		return NULL;  	uint8_t vrid = mvl_ifp->hw_addr[5]; +	uint8_t fam = mvl_ifp->hw_addr[4];  	DEBUGD(&vrrp_dbg_auto, -	       VRRP_LOGPFX VRRP_LOGPFX_VRID "Autoconfiguring VRRP on %s", vrid, -	       p->name); +	       VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +	       "Autoconfiguring VRRP on %s", +	       vrid, family2str(fam), p->name);  	vr = vrrp_vrouter_create(p, vrid, vrrp_autoconfig_version);  	if (!vr) { -		zlog_warn(VRRP_LOGPFX -			  "Failed to autoconfigure VRRP instance %" PRIu8 -			  " on %s", -			  vrid, p->name); +		zlog_warn(VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM +			  "Failed to autoconfigure VRRP on %s", +			  vrid, family2str(fam), p->name);  		return NULL;  	} @@ -1995,16 +2010,18 @@ void vrrp_if_up(struct interface *ifp)  			if (vr->v4->advert_pending) {  				DEBUGD(&vrrp_dbg_proto,  				       VRRP_LOGPFX VRRP_LOGPFX_VRID +					       VRRP_LOGPFX_FAM  				       "Interface up; sending pending advertisement", -				       vr->vrid); +				       vr->vrid, family2str(vr->v4->family));  				vrrp_send_advertisement(vr->v4);  				vr->v4->advert_pending = false;  			}  			if (vr->v4->garp_pending) {  				DEBUGD(&vrrp_dbg_proto,  				       VRRP_LOGPFX VRRP_LOGPFX_VRID +					       VRRP_LOGPFX_FAM  				       "Interface up; sending pending gratuitous ARP", -				       vr->vrid); +				       vr->vrid, family2str(vr->v4->family));  				vrrp_garp_send_all(vr->v4);  				vr->v4->garp_pending = false;  			} @@ -2013,16 +2030,18 @@ void vrrp_if_up(struct interface *ifp)  			if (vr->v6->advert_pending) {  				DEBUGD(&vrrp_dbg_proto,  				       VRRP_LOGPFX VRRP_LOGPFX_VRID +					       VRRP_LOGPFX_FAM  				       "Interface up; sending pending advertisement", -				       vr->vrid); +				       vr->vrid, family2str(vr->v6->family));  				vrrp_send_advertisement(vr->v6);  				vr->v6->advert_pending = false;  			}  			if (vr->v6->ndisc_pending) {  				DEBUGD(&vrrp_dbg_proto,  				       VRRP_LOGPFX VRRP_LOGPFX_VRID +					       VRRP_LOGPFX_FAM  				       "Interface up; sending pending Unsolicited Neighbor Advertisement", -				       vr->vrid); +				       vr->vrid, family2str(vr->v6->family));  				vrrp_ndisc_una_send_all(vr->v6);  				vr->v6->ndisc_pending = false;  			} diff --git a/vrrpd/vrrp.h b/vrrpd/vrrp.h index 99cebd5c8a..9513009e70 100644 --- a/vrrpd/vrrp.h +++ b/vrrpd/vrrp.h @@ -41,7 +41,8 @@  #define VRRP_MCASTV6_GROUP 0xff020000000000000000000000000012  #define IPPROTO_VRRP 112 -#define VRRP_LOGPFX_VRID "[VRID: %u] " +#define VRRP_LOGPFX_VRID "[VRID %u] " +#define VRRP_LOGPFX_FAM "[%s] "  /* Default defaults */  #define VRRP_DEFAULT_PRIORITY 100 diff --git a/vrrpd/vrrp_arp.c b/vrrpd/vrrp_arp.c index dd3c635beb..8e903e137f 100644 --- a/vrrpd/vrrp_arp.c +++ b/vrrpd/vrrp_arp.c @@ -123,9 +123,9 @@ void vrrp_garp_send(struct vrrp_router *r, struct in_addr *v4)  	/* If the interface doesn't support ARP, don't try sending */  	if (ifp->flags & IFF_NOARP) {  		zlog_warn( -			VRRP_LOGPFX VRRP_LOGPFX_VRID +			VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM  			"Unable to send gratuitous ARP on %s; has IFF_NOARP\n", -			r->vr->vrid, ifp->name); +			r->vr->vrid, family2str(r->family), ifp->name);  		return;  	} @@ -136,18 +136,18 @@ void vrrp_garp_send(struct vrrp_router *r, struct in_addr *v4)  	inet_ntop(AF_INET, v4, astr, sizeof(astr));  	DEBUGD(&vrrp_dbg_arp, -	       VRRP_LOGPFX VRRP_LOGPFX_VRID +	       VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM  	       "Sending gratuitous ARP on %s for %s", -	       r->vr->vrid, ifp->name, astr); +	       r->vr->vrid, family2str(r->family), ifp->name, astr);  	if (DEBUG_MODE_CHECK(&vrrp_dbg_arp, DEBUG_MODE_ALL))  		zlog_hexdump(garpbuf, garpbuf_len);  	sent_len = vrrp_send_garp(ifp, garpbuf, garpbuf_len);  	if (sent_len < 0) -		zlog_warn(VRRP_LOGPFX VRRP_LOGPFX_VRID +		zlog_warn(VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM  			  "Error sending gratuitous ARP on %s for %s", -			  r->vr->vrid, ifp->name, astr); +			  r->vr->vrid, family2str(r->family), ifp->name, astr);  	else  		++r->stats.garp_tx_cnt;  } @@ -161,9 +161,9 @@ void vrrp_garp_send_all(struct vrrp_router *r)  	/* If the interface doesn't support ARP, don't try sending */  	if (ifp->flags & IFF_NOARP) {  		zlog_warn( -			VRRP_LOGPFX VRRP_LOGPFX_VRID +			VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM  			"Unable to send gratuitous ARP on %s; has IFF_NOARP\n", -			r->vr->vrid, ifp->name); +			r->vr->vrid, family2str(r->family), ifp->name);  		return;  	} diff --git a/vrrpd/vrrp_ndisc.c b/vrrpd/vrrp_ndisc.c index 0f59b23007..a9b15a1d16 100644 --- a/vrrpd/vrrp_ndisc.c +++ b/vrrpd/vrrp_ndisc.c @@ -170,9 +170,9 @@ int vrrp_ndisc_una_send(struct vrrp_router *r, struct ipaddr *ip)  	ipaddr2str(ip, ipbuf, sizeof(ipbuf));  	DEBUGD(&vrrp_dbg_ndisc, -	       VRRP_LOGPFX VRRP_LOGPFX_VRID +	       VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM  	       "Sending unsolicited Neighbor Advertisement on %s for %s", -	       r->vr->vrid, ifp->name, ipbuf); +	       r->vr->vrid, family2str(r->family), ifp->name, ipbuf);  	if (DEBUG_MODE_CHECK(&vrrp_dbg_ndisc, DEBUG_MODE_ALL)  	    && DEBUG_MODE_CHECK(&vrrp_dbg_pkt, DEBUG_MODE_ALL)) @@ -183,9 +183,9 @@ int vrrp_ndisc_una_send(struct vrrp_router *r, struct ipaddr *ip)  	if (len < 0) {  		zlog_err( -			VRRP_LOGPFX VRRP_LOGPFX_VRID +			VRRP_LOGPFX VRRP_LOGPFX_VRID VRRP_LOGPFX_FAM  			"Error sending unsolicited Neighbor Advertisement on %s for %s", -			r->vr->vrid, ifp->name, ipbuf); +			r->vr->vrid, family2str(r->family), ifp->name, ipbuf);  		ret = -1;  	} else {  		++r->stats.una_tx_cnt; diff --git a/vrrpd/vrrp_packet.c b/vrrpd/vrrp_packet.c index 551e142e54..970c8d7d7e 100644 --- a/vrrpd/vrrp_packet.c +++ b/vrrpd/vrrp_packet.c @@ -156,22 +156,22 @@ size_t vrrp_pkt_adver_dump(char *buf, size_t buflen, struct vrrp_pkt *pkt)  	struct vrrp_hdr *hdr = &pkt->hdr;  	buf[0] = 0x00; -	snprintf(tmpbuf, sizeof(tmpbuf), "Version: %u\n", (hdr->vertype >> 4)); +	snprintf(tmpbuf, sizeof(tmpbuf), "version %u, ", (hdr->vertype >> 4));  	rs += strlcat(buf, tmpbuf, buflen); -	snprintf(tmpbuf, sizeof(tmpbuf), "Type: %u (%s)\n", +	snprintf(tmpbuf, sizeof(tmpbuf), "type %u (%s), ",  		 (hdr->vertype & 0x0F),  		 vrrp_packet_names[(hdr->vertype & 0x0F)]);  	rs += strlcat(buf, tmpbuf, buflen); -	snprintf(tmpbuf, sizeof(tmpbuf), "VRID: %u\n", hdr->vrid); +	snprintf(tmpbuf, sizeof(tmpbuf), "vrid %u, ", hdr->vrid);  	rs += strlcat(buf, tmpbuf, buflen); -	snprintf(tmpbuf, sizeof(tmpbuf), "Priority: %u\n", hdr->priority); +	snprintf(tmpbuf, sizeof(tmpbuf), "priority %u, ", hdr->priority);  	rs += strlcat(buf, tmpbuf, buflen); -	snprintf(tmpbuf, sizeof(tmpbuf), "Count IPvX: %u\n", hdr->naddr); +	snprintf(tmpbuf, sizeof(tmpbuf), "#%u addresses, ", hdr->naddr);  	rs += strlcat(buf, tmpbuf, buflen); -	snprintf(tmpbuf, sizeof(tmpbuf), "Max Adver Int: %u\n", +	snprintf(tmpbuf, sizeof(tmpbuf), "max adver int %u, ",  		 ntohs(hdr->v3.adver_int));  	rs += strlcat(buf, tmpbuf, buflen); -	snprintf(tmpbuf, sizeof(tmpbuf), "Checksum: %x\n", ntohs(hdr->chksum)); +	snprintf(tmpbuf, sizeof(tmpbuf), "checksum %x", ntohs(hdr->chksum));  	rs += strlcat(buf, tmpbuf, buflen);  	return rs;  | 
