Module Name:    src
Committed By:   yamaguchi
Date:           Tue Jun  1 05:08:46 UTC 2021

Modified Files:
        src/sys/net: if_spppsubr.c

Log Message:
Added SPPP_LOG() for refactoring around log


To generate a diff of this commit:
cvs rdiff -u -r1.253 -r1.254 src/sys/net/if_spppsubr.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/net/if_spppsubr.c
diff -u src/sys/net/if_spppsubr.c:1.253 src/sys/net/if_spppsubr.c:1.254
--- src/sys/net/if_spppsubr.c:1.253	Tue Jun  1 05:04:06 2021
+++ src/sys/net/if_spppsubr.c	Tue Jun  1 05:08:46 2021
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_spppsubr.c,v 1.253 2021/06/01 05:04:06 yamaguchi Exp $	 */
+/*	$NetBSD: if_spppsubr.c,v 1.254 2021/06/01 05:08:46 yamaguchi Exp $	 */
 
 /*
  * Synchronous PPP/Cisco link level subroutines.
@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_spppsubr.c,v 1.253 2021/06/01 05:04:06 yamaguchi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_spppsubr.c,v 1.254 2021/06/01 05:08:46 yamaguchi Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_inet.h"
@@ -319,6 +319,17 @@ static unsigned int sppp_keepalive_cnt =
 #define SPPP_DOWNGRADE(_sp)	rw_downgrade(&(_sp)->pp_lock)
 #define SPPP_WQ_SET(_wk, _func, _arg)	\
 	sppp_wq_set((_wk), (_func), __UNCONST((_arg)))
+#define SPPP_LOG(_sp, _lvl, _fmt, _args...)	do {		\
+	if (__predict_true((_sp) != NULL)) {			\
+		log((_lvl), "%s: ", (_sp)->pp_if.if_xname);	\
+	}							\
+	addlog((_fmt), ##_args);				\
+} while (0)
+#define SPPP_DLOG(_sp, _fmt, _args...)	do {	\
+	if (!sppp_debug_enabled(_sp))			\
+		break;					\
+	SPPP_LOG(_sp, LOG_DEBUG, _fmt, ##_args);	\
+} while (0)
 
 #ifdef INET
 #ifndef SPPPSUBR_MPSAFE
@@ -339,10 +350,8 @@ static u_short interactive_ports[8] = {
 #endif
 
 /* almost every function needs these */
-#define STDDCL							\
-	struct ifnet *ifp = &sp->pp_if;				\
-	int debug = ifp->if_flags & IFF_DEBUG
 
+static bool sppp_debug_enabled(struct sppp *sp);
 static int sppp_output(struct ifnet *, struct mbuf *,
 		       const struct sockaddr *, const struct rtentry *);
 
@@ -580,13 +589,28 @@ sppp_authproto2proto(u_int authproto)
 	return PPP_NOPROTO;
 }
 
+static inline bool
+sppp_debug_enabled(struct sppp *sp)
+{
+
+	if (__predict_false(sp == NULL))
+		return false;
+
+	if ((sp->pp_if.if_flags & IFF_DEBUG) == 0)
+		return false;
+
+	return true;
+}
+
 static void
 sppp_change_phase(struct sppp *sp, int phase)
 {
-	STDDCL;
+	struct ifnet *ifp;
 
 	KASSERT(SPPP_WLOCKED(sp));
 
+	ifp = &sp->pp_if;
+
 	if (sp->pp_phase == phase)
 		return;
 
@@ -597,11 +621,8 @@ sppp_change_phase(struct sppp *sp, int p
 	else
 		if_link_state_change(ifp, LINK_STATE_DOWN);
 
-	if (debug)
-	{
-		log(LOG_INFO, "%s: phase %s\n", ifp->if_xname,
-			sppp_phase_name(sp->pp_phase));
-	}
+	SPPP_DLOG(sp, "phase %s\n",
+	    sppp_phase_name(sp->pp_phase));
 }
 
 /*
@@ -619,7 +640,6 @@ sppp_input(struct ifnet *ifp, struct mbu
 	struct ifqueue *inq = NULL;
 	uint16_t protocol;
 	struct sppp *sp = (struct sppp *)ifp;
-	int debug = ifp->if_flags & IFF_DEBUG;
 	int isr = 0;
 
 	SPPP_LOCK(sp, RW_READER);
@@ -633,10 +653,8 @@ sppp_input(struct ifnet *ifp, struct mbu
 
 	if (m->m_pkthdr.len <= PPP_HEADER_LEN) {
 		/* Too small packet, drop it. */
-		if (debug)
-			log(LOG_DEBUG,
-			    "%s: input packet is too small, %d bytes\n",
-			    ifp->if_xname, m->m_pkthdr.len);
+		SPPP_DLOG(sp, "input packet is too small, "
+		    "%d bytes\n", m->m_pkthdr.len);
 		goto drop;
 	}
 
@@ -658,21 +676,15 @@ sppp_input(struct ifnet *ifp, struct mbu
 		case CISCO_MULTICAST:
 		case CISCO_UNICAST:
 			/* Don't check the control field here (RFC 1547). */
-			if (debug)
-				log(LOG_DEBUG,
-				    "%s: Cisco packet in PPP mode "
-				    "<addr=0x%x ctrl=0x%x proto=0x%x>\n",
-				    ifp->if_xname,
-				    h->address, h->control, ntohs(h->protocol));
+			SPPP_DLOG(sp, "Cisco packet in PPP mode "
+			    "<addr=0x%x ctrl=0x%x proto=0x%x>\n",
+			    h->address, h->control, ntohs(h->protocol));
 			goto drop;
 		default:        /* Invalid PPP packet. */
 		  invalid:
-			if (debug)
-				log(LOG_DEBUG,
-				    "%s: invalid input packet "
-				    "<addr=0x%x ctrl=0x%x proto=0x%x>\n",
-				    ifp->if_xname,
-				    h->address, h->control, ntohs(h->protocol));
+			SPPP_DLOG(sp, "invalid input packet "
+			    "<addr=0x%x ctrl=0x%x proto=0x%x>\n",
+			    h->address, h->control, ntohs(h->protocol));
 			goto drop;
 		}
 		protocol = ntohs(h->protocol);
@@ -692,11 +704,8 @@ sppp_input(struct ifnet *ifp, struct mbu
 		if_statinc(ifp, if_noproto);
 		goto drop;
 	default:
-		if (debug) {
-			log(LOG_DEBUG,
-			    "%s: invalid input protocol "
-			    "<proto=0x%x>\n", ifp->if_xname, protocol);
-		}
+		SPPP_DLOG(sp, "invalid input protocol "
+		    "<proto=0x%x>\n", protocol);
 		goto reject_protocol;
 	case PPP_LCP:
 		SPPP_UNLOCK(sp);
@@ -720,9 +729,8 @@ sppp_input(struct ifnet *ifp, struct mbu
 #ifdef INET
 	case PPP_IPCP:
 		if (!ISSET(sp->pp_ncpflags, SPPP_NCP_IPCP)) {
-			log(LOG_INFO, "%s: reject IPCP packet "
-			    "because IPCP is disabled\n",
-			    ifp->if_xname);
+			SPPP_LOG(sp, LOG_INFO, "reject IPCP packet "
+			    "because IPCP is disabled\n");
 			goto reject_protocol;
 		}
 		SPPP_UNLOCK(sp);
@@ -743,9 +751,8 @@ sppp_input(struct ifnet *ifp, struct mbu
 #ifdef INET6
 	case PPP_IPV6CP:
 		if (!ISSET(sp->pp_ncpflags, SPPP_NCP_IPV6CP)) {
-			log(LOG_INFO, "%s: reject IPv6CP packet "
-			    "because IPv6CP is disabled\n",
-			    ifp->if_xname);
+			SPPP_LOG(sp, LOG_INFO, "reject IPv6CP packet "
+			    "because IPv6CP is disabled\n");
 			goto reject_protocol;
 		}
 		SPPP_UNLOCK(sp);
@@ -786,10 +793,7 @@ sppp_input(struct ifnet *ifp, struct mbu
 		/* Queue overflow. */
 		IF_DROP(inq);
 		IFQ_UNLOCK(inq);
-		if (debug)
-			log(LOG_DEBUG, "%s: protocol queue overflow\n",
-				ifp->if_xname);
-
+		SPPP_DLOG(sp,"protocol queue overflow\n");
 		SPPP_LOCK(sp, RW_READER);
 		goto drop;
 	}
@@ -932,9 +936,7 @@ sppp_output(struct ifnet *ifp, struct mb
 		 */
 		M_PREPEND(m, PPP_HEADER_LEN, M_DONTWAIT);
 		if (! m) {
-			if (ifp->if_flags & IFF_DEBUG)
-				log(LOG_DEBUG, "%s: no memory for transmit header\n",
-					ifp->if_xname);
+			SPPP_DLOG(sp, "no memory for transmit header\n");
 			if_statinc(ifp, if_oerrors);
 			SPPP_UNLOCK(sp);
 			splx(s);
@@ -1015,9 +1017,7 @@ sppp_output(struct ifnet *ifp, struct mb
 	if (sp->pp_flags & PP_NOFRAMING) {
 		M_PREPEND(m, 2, M_DONTWAIT);
 		if (m == NULL) {
-			if (ifp->if_flags & IFF_DEBUG)
-				log(LOG_DEBUG, "%s: no memory for transmit header\n",
-					ifp->if_xname);
+			SPPP_DLOG(sp, "no memory for transmit header\n");
 			if_statinc(ifp, if_oerrors);
 			SPPP_UNLOCK(sp);
 			splx(s);
@@ -1309,14 +1309,9 @@ sppp_ioctl(struct ifnet *ifp, u_long cmd
 			sp->pp_saved_mtu = ifp->if_mtu;
 			ifp->if_mtu = sp->lcp.their_mru;
 
-			if (ifp->if_flags & IFF_DEBUG) {
-				log(LOG_DEBUG,
-				    "%s: setting MTU "
-				    "from %"PRIu64" bytes "
-				    "to %"PRIu64" bytes\n",
-				    ifp->if_xname, sp->pp_saved_mtu,
-				    ifp->if_mtu);
-			}
+			SPPP_DLOG(sp, "setting MTU "
+			    "from %"PRIu64" bytes to %"PRIu64" bytes\n",
+			    sp->pp_saved_mtu, ifp->if_mtu);
 		}
 		SPPP_UNLOCK(sp);
 		break;
@@ -1397,13 +1392,14 @@ static void
 sppp_cp_send(struct sppp *sp, u_short proto, u_char type,
 	     u_char ident, u_short len, void *data)
 {
-	STDDCL;
+	struct ifnet *ifp;
 	struct lcp_header *lh;
 	struct mbuf *m;
 	size_t pkthdrlen;
 
 	KASSERT(SPPP_WLOCKED(sp));
 
+	ifp = &sp->pp_if;
 	pkthdrlen = (sp->pp_flags & PP_NOFRAMING) ? 2 : PPP_HEADER_LEN;
 
 	if (len > MHLEN - pkthdrlen - LCP_HEADER_LEN)
@@ -1432,16 +1428,15 @@ sppp_cp_send(struct sppp *sp, u_short pr
 	if (len)
 		memcpy(lh + 1, data, len);
 
-	if (debug) {
+	if (sppp_debug_enabled(sp)) {
 		char pbuf[SPPP_PROTO_NAMELEN];
 		char tbuf[SPPP_CPTYPE_NAMELEN];
 		const char *pname, *cpname;
 
 		pname = sppp_proto_name(pbuf, sizeof(pbuf), proto);
 		cpname = sppp_cp_type_name(tbuf, sizeof(tbuf), lh->type);
-		log(LOG_DEBUG, "%s: %s output <%s id=0x%x len=%d",
-		    ifp->if_xname, pname, cpname,
-		    lh->ident, ntohs(lh->len));
+		SPPP_LOG(sp, LOG_DEBUG, "%s output <%s id=0x%x len=%d",
+		    pname, cpname, lh->ident, ntohs(lh->len));
 		if (len)
 			sppp_print_bytes((u_char *)(lh + 1), len);
 		addlog(">\n");
@@ -1576,7 +1571,7 @@ sppp_cp_fini(const struct cp *cp, struct
 static void
 sppp_cp_input(const struct cp *cp, struct sppp *sp, struct mbuf *m)
 {
-	STDDCL;
+	struct ifnet *ifp;
 	struct lcp_header *h;
 	struct sppp_cp *scp;
 	int printlen, len = m->m_pkthdr.len;
@@ -1584,26 +1579,25 @@ sppp_cp_input(const struct cp *cp, struc
 	uint32_t u32;
 	char tbuf[SPPP_CPTYPE_NAMELEN];
 	const char *cpname;
+	bool debug;
 
 	SPPP_LOCK(sp, RW_WRITER);
 
+	ifp = &sp->pp_if;
+	debug = sppp_debug_enabled(sp);
 	scp = &sp->scp[cp->protoidx];
 
 	if (len < 4) {
-		if (debug)
-			log(LOG_DEBUG,
-			    "%s: %s invalid packet length: %d bytes\n",
-			    ifp->if_xname, cp->name, len);
+		SPPP_DLOG(sp, "%s invalid packet length: %d bytes\n",
+		    cp->name, len);
 		goto out;
 	}
 	h = mtod(m, struct lcp_header *);
 	if (debug) {
 		printlen = ntohs(h->len);
 		cpname = sppp_cp_type_name(tbuf, sizeof(tbuf), h->type);
-		log(LOG_DEBUG,
-		    "%s: %s input(%s): <%s id=0x%x len=%d",
-		    ifp->if_xname, cp->name,
-		    sppp_state_name(scp->state),
+		SPPP_LOG(sp, LOG_DEBUG, "%s input(%s): <%s id=0x%x len=%d",
+		    cp->name, sppp_state_name(scp->state),
 		    cpname, h->ident, printlen);
 		if (len < printlen)
 			printlen = len;
@@ -1617,10 +1611,8 @@ sppp_cp_input(const struct cp *cp, struc
 	switch (h->type) {
 	case CONF_REQ:
 		if (len < 4) {
-			if (debug)
-				addlog("%s: %s invalid conf-req length %d\n",
-				       ifp->if_xname, cp->name,
-				       len);
+			SPPP_DLOG(sp,"%s invalid conf-req length %d\n",
+			    cp->name, len);
 			if_statinc(ifp, if_ierrors);
 			break;
 		}
@@ -1636,10 +1628,8 @@ sppp_cp_input(const struct cp *cp, struc
 		break;
 	case CONF_ACK:
 		if (h->ident != scp->confid) {
-			if (debug)
-				addlog("%s: %s id mismatch 0x%x != 0x%x\n",
-				       ifp->if_xname, cp->name,
-				       h->ident, scp->confid);
+			SPPP_DLOG(sp, "%s id mismatch 0x%x != 0x%x\n",
+			    cp->name, h->ident, scp->confid);
 			if_statinc(ifp, if_ierrors);
 			break;
 		}
@@ -1648,10 +1638,8 @@ sppp_cp_input(const struct cp *cp, struc
 	case CONF_NAK:
 	case CONF_REJ:
 		if (h->ident != scp->confid) {
-			if (debug)
-				addlog("%s: %s id mismatch 0x%x != 0x%x\n",
-				       ifp->if_xname, cp->name,
-				       h->ident, scp->confid);
+			SPPP_DLOG(sp, "%s id mismatch 0x%x != 0x%x\n",
+			    cp->name, h->ident, scp->confid);
 			if_statinc(ifp, if_ierrors);
 			break;
 		}
@@ -1670,12 +1658,10 @@ sppp_cp_input(const struct cp *cp, struc
 	case TERM_ACK:
 		if (h->ident != scp->confid &&
 		    h->ident != scp->seq) {
-			if (debug)
-				addlog("%s: %s id mismatch "
-				    "0x%x != 0x%x and 0x%x != %0lx\n",
-				    ifp->if_xname, cp->name,
-				    h->ident, scp->confid,
-				    h->ident, scp->seq);
+			SPPP_DLOG(sp, "%s id mismatch "
+			    "0x%x != 0x%x and 0x%x != %0lx\n",
+			    cp->name, h->ident, scp->confid,
+			    h->ident, scp->seq);
 			if_statinc(ifp, if_ierrors);
 			break;
 		}
@@ -1685,10 +1671,8 @@ sppp_cp_input(const struct cp *cp, struc
 	case CODE_REJ:
 		/* XXX catastrophic rejects (RXJ-) aren't handled yet. */
 		cpname = sppp_cp_type_name(tbuf, sizeof(tbuf), h->type);
-		log(LOG_INFO,
-		    "%s: %s: ignoring RXJ (%s) for code ?, "
-		    "danger will robinson\n",
-		    ifp->if_xname, cp->name, cpname);
+		SPPP_LOG(sp, LOG_INFO, "%s: ignoring RXJ (%s) for code ?, "
+		    "danger will robinson\n", cp->name, cpname);
 		sppp_wq_add(sp->wq_cp, &scp->work_rxj);
 		break;
 	case PROTO_REJ:
@@ -1712,9 +1696,9 @@ sppp_cp_input(const struct cp *cp, struc
 
 		if (debug) {
 			cpname = sppp_cp_type_name(tbuf, sizeof(tbuf), h->type);
-			log(LOG_INFO,
-			    "%s: %s: RXJ%c (%s) for proto 0x%x (%s/%s)\n",
-			    ifp->if_xname, cp->name, catastrophic ? '-' : '+',
+			SPPP_LOG(sp, LOG_INFO,
+			    "%s: RXJ%c (%s) for proto 0x%x (%s/%s)\n",
+			    cp->name, catastrophic ? '-' : '+',
 			    cpname, proto, upper ? upper->name : "unknown",
 			    upper ? sppp_state_name(sp->scp[upper->protoidx].state) : "?");
 		}
@@ -1742,23 +1726,19 @@ sppp_cp_input(const struct cp *cp, struc
 		if (cp->proto != PPP_LCP)
 			goto illegal;
 		if (scp->state != STATE_OPENED) {
-			if (debug)
-				addlog("%s: lcp echo req but lcp closed\n",
-				       ifp->if_xname);
+			SPPP_DLOG(sp, "lcp echo req but lcp closed\n");
 			if_statinc(ifp, if_ierrors);
 			break;
 		}
 		if (len < 8) {
-			if (debug)
-				addlog("%s: invalid lcp echo request "
-				       "packet length: %d bytes\n",
-				       ifp->if_xname, len);
+			SPPP_DLOG(sp, "invalid lcp echo request "
+			       "packet length: %d bytes\n", len);
 			break;
 		}
 		memcpy(&u32, h + 1, sizeof u32);
 		if (ntohl(u32) == sp->lcp.magic) {
 			/* Line loopback mode detected. */
-			printf("%s: loopback\n", ifp->if_xname);
+			SPPP_DLOG(sp, "loopback\n");
 
 			if (sp->pp_flags & PP_LOOPBACK_IFDOWN) {
 				sp->pp_flags |= PP_LOOPBACK;
@@ -1775,9 +1755,7 @@ sppp_cp_input(const struct cp *cp, struc
 		}
 		u32 = htonl(sp->lcp.magic);
 		memcpy(h + 1, &u32, sizeof u32);
-		if (debug)
-			addlog("%s: got lcp echo req, sending echo rep\n",
-			       ifp->if_xname);
+		SPPP_DLOG(sp, "got lcp echo req, sending echo rep\n");
 		sppp_cp_send(sp, PPP_LCP, ECHO_REPLY, h->ident, len - 4,
 		    h + 1);
 		break;
@@ -1789,15 +1767,11 @@ sppp_cp_input(const struct cp *cp, struc
 			break;
 		}
 		if (len < 8) {
-			if (debug)
-				addlog("%s: lcp invalid echo reply "
-				       "packet length: %d bytes\n",
-				       ifp->if_xname, len);
+			SPPP_DLOG(sp, "lcp invalid echo reply "
+			    "packet length: %d bytes\n", len);
 			break;
 		}
-		if (debug)
-			addlog("%s: lcp got echo rep\n",
-			       ifp->if_xname);
+		SPPP_DLOG(sp, "lcp got echo rep\n");
 		memcpy(&u32, h + 1, sizeof u32);
 		if (ntohl(u32) != sp->lcp.magic)
 			sp->pp_alivecnt = 0;
@@ -1805,9 +1779,8 @@ sppp_cp_input(const struct cp *cp, struc
 	default:
 		/* Unknown packet type -- send Code-Reject packet. */
 	  illegal:
-		if (debug)
-			addlog("%s: %s send code-rej for 0x%x\n",
-			       ifp->if_xname, cp->name, h->type);
+		SPPP_DLOG(sp, "%s send code-rej for 0x%x\n",
+		    cp->name, h->type);
 		sppp_cp_send(sp, cp->proto, CODE_REJ,
 		    ++scp->seq, m->m_pkthdr.len, h);
 		if_statinc(ifp, if_ierrors);
@@ -1827,7 +1800,6 @@ static void
 sppp_up_event(struct sppp *sp, void *xcp)
 {
 	const struct cp *cp = xcp;
-	STDDCL;
 
 	KASSERT(SPPP_WLOCKED(sp));
 	KASSERT(!cpu_softintr_p());
@@ -1836,10 +1808,8 @@ sppp_up_event(struct sppp *sp, void *xcp
 	    sppp_auth_role(cp, sp) == SPPP_AUTH_NOROLE)
 		return;
 
-	if (debug)
-		log(LOG_DEBUG, "%s: %s up(%s)\n",
-		    ifp->if_xname, cp->name,
-		    sppp_state_name(sp->scp[cp->protoidx].state));
+	SPPP_DLOG(sp, "%s up(%s)\n", cp->name,
+	    sppp_state_name(sp->scp[cp->protoidx].state));
 
 	switch (sp->scp[cp->protoidx].state) {
 	case STATE_INITIAL:
@@ -1851,9 +1821,9 @@ sppp_up_event(struct sppp *sp, void *xcp
 		sppp_cp_change_state(cp, sp, STATE_REQ_SENT);
 		break;
 	default:
-		printf("%s: %s illegal up in state %s\n",
-		       ifp->if_xname, cp->name,
-		       sppp_state_name(sp->scp[cp->protoidx].state));
+		SPPP_LOG(sp, LOG_DEBUG,
+		    "%s illegal up in state %s\n", cp->name,
+		    sppp_state_name(sp->scp[cp->protoidx].state));
 	}
 }
 
@@ -1861,7 +1831,6 @@ static void
 sppp_down_event(struct sppp *sp, void *xcp)
 {
 	const struct cp *cp = xcp;
-	STDDCL;
 
 	KASSERT(SPPP_WLOCKED(sp));
 	KASSERT(!cpu_softintr_p());
@@ -1870,10 +1839,8 @@ sppp_down_event(struct sppp *sp, void *x
 	    sppp_auth_role(cp, sp) == SPPP_AUTH_NOROLE)
 		return;
 
-	if (debug)
-		log(LOG_DEBUG, "%s: %s down(%s)\n",
-		    ifp->if_xname, cp->name,
-		    sppp_state_name(sp->scp[cp->protoidx].state));
+	SPPP_DLOG(sp, "%s down(%s)\n", cp->name,
+	    sppp_state_name(sp->scp[cp->protoidx].state));
 
 	switch (sp->scp[cp->protoidx].state) {
 	case STATE_CLOSED:
@@ -1901,9 +1868,9 @@ sppp_down_event(struct sppp *sp, void *x
 		if (cp->proto == PPP_LCP)
 			break;
 
-		printf("%s: %s illegal down in state %s\n",
-		       ifp->if_xname, cp->name,
-		       sppp_state_name(sp->scp[cp->protoidx].state));
+		SPPP_LOG(sp, LOG_DEBUG,
+		    "%s illegal down in state %s\n", cp->name,
+		    sppp_state_name(sp->scp[cp->protoidx].state));
 	}
 }
 
@@ -1911,7 +1878,6 @@ static void
 sppp_open_event(struct sppp *sp, void *xcp)
 {
 	const struct cp *cp = xcp;
-	STDDCL;
 
 	KASSERT(SPPP_WLOCKED(sp));
 	KASSERT(!cpu_softintr_p());
@@ -1920,10 +1886,8 @@ sppp_open_event(struct sppp *sp, void *x
 	    sppp_auth_role(cp, sp) == SPPP_AUTH_NOROLE)
 		return;
 
-	if (debug)
-		log(LOG_DEBUG, "%s: %s open(%s)\n",
-		    ifp->if_xname, cp->name,
-		    sppp_state_name(sp->scp[cp->protoidx].state));
+	SPPP_DLOG(sp, "%s open(%s)\n", cp->name,
+	    sppp_state_name(sp->scp[cp->protoidx].state));
 
 	switch (sp->scp[cp->protoidx].state) {
 	case STATE_INITIAL:
@@ -1954,7 +1918,6 @@ static void
 sppp_close_event(struct sppp *sp, void *xcp)
 {
 	const struct cp *cp = xcp;
-	STDDCL;
 
 	KASSERT(SPPP_WLOCKED(sp));
 	KASSERT(!cpu_softintr_p());
@@ -1963,10 +1926,8 @@ sppp_close_event(struct sppp *sp, void *
 	    sppp_auth_role(cp, sp) == SPPP_AUTH_NOROLE)
 		return;
 
-	if (debug)
-		log(LOG_DEBUG, "%s: %s close(%s)\n",
-		    ifp->if_xname, cp->name,
-		    sppp_state_name(sp->scp[cp->protoidx].state));
+	SPPP_DLOG(sp, "%s close(%s)\n", cp->name,
+	    sppp_state_name(sp->scp[cp->protoidx].state));
 
 	switch (sp->scp[cp->protoidx].state) {
 	case STATE_INITIAL:
@@ -2004,18 +1965,15 @@ sppp_to_event(struct sppp *sp, void *xcp
 {
 	const struct cp *cp = xcp;
 	int s;
-	STDDCL;
 
 	KASSERT(SPPP_WLOCKED(sp));
 	KASSERT(!cpu_softintr_p());
 
 	s = splnet();
 
-	if (debug)
-		log(LOG_DEBUG, "%s: %s TO(%s) rst_counter = %d\n",
-		    ifp->if_xname, cp->name,
-		    sppp_state_name(sp->scp[cp->protoidx].state),
-		    sp->scp[cp->protoidx].rst_counter);
+	SPPP_DLOG(sp, "%s TO(%s) rst_counter = %d\n", cp->name,
+	    sppp_state_name(sp->scp[cp->protoidx].state),
+	    sp->scp[cp->protoidx].rst_counter);
 
 	if (--sp->scp[cp->protoidx].rst_counter < 0)
 		/* TO- event */
@@ -2064,9 +2022,11 @@ static void
 sppp_rcr_update_state(const struct cp *cp, struct sppp *sp,
     enum cp_rcr_type type, uint8_t ident, size_t msglen, void *msg)
 {
-	STDDCL;
+	struct ifnet *ifp;
 	u_char ctype;
 
+	ifp = &sp->pp_if;
+
 	if (type == CP_RCR_ERR) {
 		/* parse error, shut down */
 		sppp_wq_add(sp->wq_cp, &sp->scp[IDX_LCP].work_close);
@@ -2094,10 +2054,7 @@ sppp_rcr_update_state(const struct cp *c
 			break;
 		case STATE_ACK_RCVD:
 			sppp_cp_change_state(cp, sp, STATE_OPENED);
-			if (debug)
-				log(LOG_DEBUG, "%s: %s tlu\n",
-				    ifp->if_xname,
-				    cp->name);
+			SPPP_DLOG(sp, "%s tlu\n", cp->name);
 			cp->tlu(sp);
 			cp->screply(cp, sp, ctype, ident, msglen, msg);
 			break;
@@ -2111,8 +2068,8 @@ sppp_rcr_update_state(const struct cp *c
 			}
 			break;
 		default:
-			printf("%s: %s illegal RCR+ in state %s\n",
-			    ifp->if_xname, cp->name,
+			SPPP_LOG(sp, LOG_DEBUG,
+			    "%s illegal RCR+ in state %s\n", cp->name,
 			    sppp_state_name(sp->scp[cp->protoidx].state));
 			if_statinc(ifp, if_ierrors);
 		}
@@ -2152,8 +2109,8 @@ sppp_rcr_update_state(const struct cp *c
 			}
 			break;
 		default:
-			printf("%s: %s illegal RCR- in state %s\n",
-			    ifp->if_xname, cp->name,
+			SPPP_LOG(sp, LOG_DEBUG,
+			    "%s illegal RCR- in state %s\n", cp->name,
 			    sppp_state_name(sp->scp[cp->protoidx].state));
 			if_statinc(ifp, if_ierrors);
 		}
@@ -2212,11 +2169,13 @@ sppp_rcr_event(struct sppp *sp, void *xc
 static void
 sppp_rca_event(struct sppp *sp, void *xcp)
 {
+	struct ifnet *ifp;
 	const struct cp *cp = xcp;
-	STDDCL;
 
 	KASSERT(!cpu_softintr_p());
 
+	ifp = &sp->pp_if;
+
 	switch (sp->scp[cp->protoidx].state) {
 	case STATE_CLOSED:
 	case STATE_STOPPED:
@@ -2242,15 +2201,13 @@ sppp_rca_event(struct sppp *sp, void *xc
 	case STATE_ACK_SENT:
 		sppp_cp_change_state(cp, sp, STATE_OPENED);
 		sp->scp[cp->protoidx].rst_counter = sp->lcp.max_configure;
-		if (debug)
-			log(LOG_DEBUG, "%s: %s tlu\n",
-			       ifp->if_xname, cp->name);
+		SPPP_DLOG(sp, "%s tlu\n", cp->name);
 		(cp->tlu)(sp);
 		break;
 	default:
-		printf("%s: %s illegal RCA in state %s\n",
-		       ifp->if_xname, cp->name,
-		       sppp_state_name(sp->scp[cp->protoidx].state));
+		SPPP_LOG(sp, LOG_DEBUG,
+		    "%s illegal RCA in state %s\n", cp->name,
+		    sppp_state_name(sp->scp[cp->protoidx].state));
 		if_statinc(ifp, if_ierrors);
 	}
 }
@@ -2314,9 +2271,8 @@ sppp_rcn_event(struct sppp *sp, void *xc
 	case STATE_STOPPING:
 		break;
 	default:
-		printf("%s: %s illegal RCN in state %s\n",
-		       ifp->if_xname, cp->name,
-		       sppp_state_name(scp->state));
+		SPPP_LOG(sp, LOG_DEBUG, "%s illegal RCN in state %s\n",
+		    cp->name, sppp_state_name(scp->state));
 		if_statinc(ifp, if_ierrors);
 	}
 }
@@ -2324,11 +2280,13 @@ sppp_rcn_event(struct sppp *sp, void *xc
 static void
 sppp_rtr_event(struct sppp *sp, void *xcp)
 {
+	struct ifnet *ifp;
 	const struct cp *cp = xcp;
-	STDDCL;
 
 	KASSERT(!cpu_softintr_p());
 
+	ifp = &sp->pp_if;
+
 	switch (sp->scp[cp->protoidx].state) {
 	case STATE_ACK_RCVD:
 	case STATE_ACK_SENT:
@@ -2346,17 +2304,15 @@ sppp_rtr_event(struct sppp *sp, void *xc
 		sppp_cp_change_state(cp, sp, STATE_STOPPING);
 		break;
 	default:
-		printf("%s: %s illegal RTR in state %s\n",
-		       ifp->if_xname, cp->name,
-		       sppp_state_name(sp->scp[cp->protoidx].state));
+		SPPP_LOG(sp, LOG_DEBUG, "%s illegal RTR in state %s\n",
+		    cp->name,
+		    sppp_state_name(sp->scp[cp->protoidx].state));
 		if_statinc(ifp, if_ierrors);
 		return;
 	}
 
 	/* Send Terminate-Ack packet. */
-	if (debug)
-		log(LOG_DEBUG, "%s: %s send terminate-ack\n",
-		    ifp->if_xname, cp->name);
+	SPPP_DLOG(sp, "%s send terminate-ack\n", cp->name);
 	if ((cp->flags & CP_AUTH) == 0) {
 		sppp_cp_send(sp, cp->proto, TERM_ACK,
 		    sp->scp[cp->protoidx].rseq, 0, 0);
@@ -2394,9 +2350,8 @@ sppp_rta_event(struct sppp *sp, void *xc
 		sppp_cp_change_state(cp, sp, STATE_ACK_RCVD);
 		break;
 	default:
-		printf("%s: %s illegal RTA in state %s\n",
-		       ifp->if_xname, cp->name,
-		       sppp_state_name(sp->scp[cp->protoidx].state));
+		SPPP_LOG(sp, LOG_DEBUG, "%s illegal RTA in state %s\n",
+		    cp->name,  sppp_state_name(sp->scp[cp->protoidx].state));
 		if_statinc(ifp, if_ierrors);
 	}
 }
@@ -2423,9 +2378,8 @@ sppp_rxj_event(struct sppp *sp, void *xc
 		sppp_cp_change_state(cp, sp, STATE_REQ_SENT);
 		break;
 	default:
-		printf("%s: %s illegal RXJ- in state %s\n",
-		       ifp->if_xname, cp->name,
-		       sppp_state_name(sp->scp[cp->protoidx].state));
+		SPPP_LOG(sp, LOG_DEBUG, "%s illegal RXJ- in state %s\n",
+		    cp->name,  sppp_state_name(sp->scp[cp->protoidx].state));
 		if_statinc(ifp, if_ierrors);
 	}
 }
@@ -2495,11 +2449,12 @@ sppp_lcp_init(struct sppp *sp)
 static void
 sppp_lcp_up(struct sppp *sp, void *xcp)
 {
+	struct ifnet *ifp;
 	const struct cp *cp = xcp;
 	int pidx;
-	STDDCL;
 
 	KASSERT(SPPP_WLOCKED(sp));
+	ifp = &sp->pp_if;
 
 	pidx = cp->protoidx;
 	/* Initialize activity timestamp: opening a connection is an activity */
@@ -2511,17 +2466,14 @@ sppp_lcp_up(struct sppp *sp, void *xcp)
 	 * call.  Activate the interface.
 	 */
 	if ((ifp->if_flags & (IFF_AUTO | IFF_PASSIVE)) != 0) {
-		if (debug)
-			log(LOG_DEBUG,
-			    "%s: Up event", ifp->if_xname);
 		ifp->if_flags |= IFF_RUNNING;
 		if (sp->scp[pidx].state == STATE_INITIAL) {
-			if (debug)
-				addlog("(incoming call)\n");
+			SPPP_DLOG(sp, "Up event (incoming call)\n");
 			sp->pp_flags |= PP_CALLIN;
 			sppp_wq_add(sp->wq_cp, &sp->scp[pidx].work_open);
-		} else if (debug)
-			addlog("\n");
+		} else {
+			SPPP_DLOG(sp, "Up event\n");
+		}
 	}
 
 	sppp_up_event(sp, xcp);
@@ -2531,12 +2483,13 @@ static void
 sppp_lcp_down(struct sppp *sp, void *xcp)
 {
 	const struct cp *cp = xcp;
+	struct ifnet *ifp;
 	int pidx;
-	STDDCL;
 
 	KASSERT(SPPP_WLOCKED(sp));
 	KASSERT(!cpu_softintr_p());
 
+	ifp = &sp->pp_if;
 	pidx = cp->protoidx;
 	sppp_down_event(sp, xcp);
 
@@ -2550,17 +2503,12 @@ sppp_lcp_down(struct sppp *sp, void *xcp
 		sp->lcp.tlf_sent = false;
 	}
 
-	if (debug) {
-		log(LOG_DEBUG,
-		    "%s: Down event (carrier loss)\n",
-		    ifp->if_xname);
-	}
+	SPPP_DLOG(sp, "Down event (carrier loss)\n");
 
 	if ((ifp->if_flags & (IFF_AUTO | IFF_PASSIVE)) == 0) {
 		if (sp->lcp.reestablish)
 			sppp_wq_add(sp->wq_cp, &sp->scp[IDX_LCP].work_open);
 	} else {
-
 		sp->pp_flags &= ~PP_CALLIN;
 		if (sp->scp[pidx].state != STATE_INITIAL)
 			sppp_wq_add(sp->wq_cp, &sp->scp[pidx].work_close);
@@ -2613,16 +2561,18 @@ static enum cp_rcr_type
 sppp_lcp_confreq(struct sppp *sp, struct lcp_header *h, int origlen,
     uint8_t **msgbuf, size_t *buflen, size_t *msglen)
 {
-	STDDCL;
 	u_char *buf, *r, *p, l, blen;
 	enum cp_rcr_type type;
 	int len, rlen;
 	uint32_t nmagic;
 	u_short authproto;
 	char lbuf[SPPP_LCPOPT_NAMELEN];
+	bool debug;
 
 	KASSERT(SPPP_WLOCKED(sp));
 
+	debug = sppp_debug_enabled(sp);
+
 	if (origlen < sizeof(*h))
 		return CP_RCR_DROP;
 
@@ -2640,8 +2590,7 @@ sppp_lcp_confreq(struct sppp *sp, struct
 		return CP_RCR_DROP;
 
 	if (debug)
-		log(LOG_DEBUG, "%s: lcp parse opts:",
-		    ifp->if_xname);
+		SPPP_LOG(sp, LOG_DEBUG, "lcp parse opts:");
 
 	/* pass 1: check for things that need to be rejected */
 	p = (void *)(h + 1);
@@ -2658,8 +2607,12 @@ sppp_lcp_confreq(struct sppp *sp, struct
 			 * Malicious option - drop immediately.
 			 * XXX Maybe we should just RXJ it?
 			 */
-			addlog("%s: received malicious LCP option 0x%02x, "
-			    "length 0x%02x, (len: 0x%02x) dropping.\n", ifp->if_xname,
+			if (debug)
+				addlog("\n");
+
+			SPPP_LOG(sp, LOG_DEBUG,
+			    "received malicious LCP option 0x%02x, "
+			    "length 0x%02x, (len: 0x%02x) dropping.\n",
 			    p[0], l, len);
 			type = CP_RCR_ERR;
 			goto end;
@@ -2772,8 +2725,7 @@ sppp_lcp_confreq(struct sppp *sp, struct
 	 * thus require to be nak'ed.
 	 */
 	if (debug)
-		log(LOG_DEBUG, "%s: lcp parse opt values: ",
-		    ifp->if_xname);
+		SPPP_LOG(sp, LOG_DEBUG, "lcp parse opt values:");
 
 	p = (void *)(h + 1);
 	r = buf;
@@ -2799,8 +2751,7 @@ sppp_lcp_confreq(struct sppp *sp, struct
 			 * Local and remote magics equal -- loopback?
 			 */
 			if (sp->pp_loopcnt >= LOOPALIVECNT*5) {
-				printf ("%s: loopback\n",
-					ifp->if_xname);
+				SPPP_DLOG(sp, "loopback\n");
 				sp->pp_loopcnt = 0;
 
 				if (sp->pp_flags & PP_LOOPBACK_IFDOWN) {
@@ -2979,19 +2930,20 @@ end:
 static void
 sppp_lcp_confrej(struct sppp *sp, struct lcp_header *h, int len)
 {
-	STDDCL;
 	u_char *p, l;
+	bool debug;
 
 	KASSERT(SPPP_WLOCKED(sp));
 
+	debug = sppp_debug_enabled(sp);
+
 	if (len <= sizeof(*h))
 		return;
 
 	len -= sizeof(*h);
 
 	if (debug)
-		log(LOG_DEBUG, "%s: lcp rej opts:",
-		    ifp->if_xname);
+		SPPP_LOG(sp, LOG_DEBUG, "lcp rej opts:");
 
 	p = (void *)(h + 1);
 	for (; len > 1 && (l = p[1]) != 0; len -= l, p += l) {
@@ -3001,8 +2953,11 @@ sppp_lcp_confrej(struct sppp *sp, struct
 			 * Malicious option - drop immediately.
 			 * XXX Maybe we should just RXJ it?
 			 */
-			addlog("%s: received malicious LCP option, "
-			    "dropping.\n", ifp->if_xname);
+			if (debug)
+				addlog("\n");
+
+			SPPP_LOG(sp, LOG_DEBUG,
+			    "received malicious LCP option, dropping.\n");
 			goto end;
 		}
 		if (debug) {
@@ -3022,10 +2977,11 @@ sppp_lcp_confrej(struct sppp *sp, struct
 			 * peer rejects this lower rate, fallback to the
 			 * default.
 			 */
-			if (debug) {
-				addlog("%s: warning: peer rejected our MRU of "
+			if (!debug) {
+				SPPP_LOG(sp, LOG_INFO,
+				    "peer rejected our MRU of "
 				    "%ld bytes. Defaulting to %d bytes\n",
-				    ifp->if_xname, sp->lcp.mru, PP_MTU);
+				    sp->lcp.mru, PP_MTU);
 			}
 			CLR(sp->lcp.opts, SPPP_LCP_OPT_MRU);
 			sp->lcp.mru = PP_MTU;
@@ -3038,9 +2994,10 @@ sppp_lcp_confrej(struct sppp *sp, struct
 			 */
 			if ((sp->pp_flags & PP_CALLIN) == 0 &&
 			    (sp->hisauth.flags & SPPP_AUTHFLAG_NOCALLOUT) != 0) {
-				if (debug)
+				if (debug) {
 					addlog(" [don't insist on auth "
 					       "for callout]");
+				}
 				CLR(sp->lcp.opts, SPPP_LCP_OPT_AUTH_PROTO);
 				break;
 			}
@@ -3063,19 +3020,20 @@ end:
 static void
 sppp_lcp_confnak(struct sppp *sp, struct lcp_header *h, int len)
 {
-	STDDCL;
 	u_char *p, l;
 	uint32_t magic;
+	bool debug;
 
 	KASSERT(SPPP_WLOCKED(sp));
 
 	if (len <= sizeof(*h))
 		return;
+
+	debug = sppp_debug_enabled(sp);
 	len -= sizeof(*h);
 
 	if (debug)
-		log(LOG_DEBUG, "%s: lcp nak opts:",
-		    ifp->if_xname);
+		SPPP_LOG(sp, LOG_DEBUG, "lcp nak opts:");
 
 	p = (void *)(h + 1);
 	for (; len > 1 && (l = p[1]) != 0; len -= l, p += l) {
@@ -3085,8 +3043,11 @@ sppp_lcp_confnak(struct sppp *sp, struct
 			 * Malicious option - drop immediately.
 			 * XXX Maybe we should just RXJ it?
 			 */
-			addlog("%s: received malicious LCP option, "
-			    "dropping.\n", ifp->if_xname);
+			if (debug)
+				addlog("\n");
+
+			SPPP_LOG(sp, LOG_DEBUG,
+			    "received malicious LCP option, dropping.\n");
 			goto end;
 		}
 		if (debug) {
@@ -3152,12 +3113,14 @@ end:
 static void
 sppp_lcp_tlu(struct sppp *sp)
 {
-	STDDCL;
+	struct ifnet *ifp;
 	int i;
 	bool going_up;
 
 	KASSERT(SPPP_WLOCKED(sp));
 
+	ifp = &sp->pp_if;
+
 	/* unlock for IFNET_LOCK and if_up() */
 	SPPP_UNLOCK(sp);
 
@@ -3175,9 +3138,9 @@ sppp_lcp_tlu(struct sppp *sp)
 
 	if (going_up) {
 		if ((sp->pp_flags & PP_LOOPBACK) == 0) {
-			log(LOG_DEBUG, "%s: interface is going up, "
-			    "but no loopback packet is deteted\n",
-			    ifp->if_xname);
+			SPPP_LOG(sp, LOG_DEBUG,
+			    "interface is going up, "
+			    "but no loopback packet is deteted\n");
 		}
 		sp->pp_flags &= ~PP_LOOPBACK;
 	}
@@ -3185,14 +3148,9 @@ sppp_lcp_tlu(struct sppp *sp)
 	if (ifp->if_mtu > sp->lcp.their_mru) {
 		sp->pp_saved_mtu = ifp->if_mtu;
 		ifp->if_mtu = sp->lcp.their_mru;
-		if (debug) {
-			log(LOG_DEBUG,
-			    "%s: setting MTU "
-			    "from %"PRIu64" bytes "
-			    "to %"PRIu64" bytes\n",
-			    ifp->if_xname, sp->pp_saved_mtu,
-			    ifp->if_mtu);
-		}
+		SPPP_DLOG(sp, "setting MTU "
+		    "from %"PRIu64" bytes to %"PRIu64" bytes\n",
+		    sp->pp_saved_mtu, ifp->if_mtu);
 	}
 	IFNET_UNLOCK(ifp);
 
@@ -3231,7 +3189,7 @@ sppp_lcp_tlu(struct sppp *sp)
 static void
 sppp_lcp_tld(struct sppp *sp)
 {
-	STDDCL;
+	struct ifnet *ifp;
 	int i, pi, phase;
 
 	KASSERT(SPPP_WLOCKED(sp));
@@ -3241,18 +3199,15 @@ sppp_lcp_tld(struct sppp *sp)
 	sppp_change_phase(sp, SPPP_PHASE_TERMINATE);
 
 	if (sp->pp_saved_mtu > 0) {
+		ifp = &sp->pp_if;
+
 		SPPP_UNLOCK(sp);
 		IFNET_LOCK(ifp);
 		SPPP_LOCK(sp, RW_WRITER);
 
-		if (debug) {
-			log(LOG_DEBUG,
-			    "%s: setting MTU "
-			    "from %"PRIu64" bytes "
-			    "to %"PRIu64" bytes\n",
-			    ifp->if_xname, ifp->if_mtu,
-			    sp->pp_saved_mtu);
-		}
+		SPPP_DLOG(sp, "setting MTU "
+		    "from %"PRIu64" bytes to %"PRIu64" bytes\n",
+		    ifp->if_mtu, sp->pp_saved_mtu);
 
 		ifp->if_mtu = sp->pp_saved_mtu;
 		sp->pp_saved_mtu = 0;
@@ -3398,9 +3353,8 @@ sppp_lcp_check_and_close(struct sppp *sp
 
 	if (sp->pp_max_auth_fail != 0 &&
 	    sp->pp_auth_failures >= sp->pp_max_auth_fail) {
-		printf("%s: authentication failed %d times, "
-		    "not retrying again\n",
-		sp->pp_if.if_xname, sp->pp_auth_failures);
+		SPPP_LOG(sp, LOG_INFO, "authentication failed %d times, "
+		    "not retrying again\n", sp->pp_auth_failures);
 
 		sppp_wq_add(sp->wq_cp, &sp->work_ifdown);
 		sp->pp_if.if_flags &= ~IFF_RUNNING;
@@ -3432,7 +3386,6 @@ sppp_ipcp_init(struct sppp *sp)
 static void
 sppp_ipcp_open(struct sppp *sp, void *xcp)
 {
-	STDDCL;
 	uint32_t myaddr, hisaddr;
 
 	KASSERT(SPPP_WLOCKED(sp));
@@ -3461,9 +3414,7 @@ sppp_ipcp_open(struct sppp *sp, void *xc
 	 */
 	if (hisaddr == 0) {
 		/* XXX this message should go away */
-		if (debug)
-			log(LOG_DEBUG, "%s: ipcp_open(): no IP interface\n",
-			    ifp->if_xname);
+		SPPP_DLOG(sp, "ipcp_open(): no IP interface\n");
 		return;
 	}
 
@@ -3530,12 +3481,12 @@ sppp_ipcp_confreq(struct sppp *sp, struc
 {
 	u_char *buf, *r, *p, l, blen;
 	enum cp_rcr_type type;
-	struct ifnet *ifp = &sp->pp_if;
-	int rlen, len, debug = ifp->if_flags & IFF_DEBUG;
+	int rlen, len;
 	uint32_t hisaddr, desiredaddr;
 	char ipbuf[SPPP_IPCPOPT_NAMELEN];
 	char dqbuf[SPPP_DOTQUAD_BUFLEN];
 	const char *dq;
+	bool debug;
 
 	KASSERT(SPPP_WLOCKED(sp));
 
@@ -3545,6 +3496,8 @@ sppp_ipcp_confreq(struct sppp *sp, struc
 	if (origlen < 0)
 		return CP_RCR_DROP;
 
+	debug = sppp_debug_enabled(sp);
+
 	/*
 	 * Make sure to allocate a buf that can at least hold a
 	 * conf-nak with an `address' option.  We might need it below.
@@ -3557,8 +3510,7 @@ sppp_ipcp_confreq(struct sppp *sp, struc
 
 	/* pass 1: see if we can recognize them */
 	if (debug)
-		log(LOG_DEBUG, "%s: ipcp parse opts:",
-		    ifp->if_xname);
+		SPPP_LOG(sp, LOG_DEBUG, "ipcp parse opts:");
 	p = (void *)(h + 1);
 	r = buf;
 	rlen = 0;
@@ -3570,8 +3522,11 @@ sppp_ipcp_confreq(struct sppp *sp, struc
 		/* Sanity check option length */
 		if (l > len) {
 			/* XXX should we just RXJ? */
-			addlog("%s: malicious IPCP option received, dropping\n",
-			    ifp->if_xname);
+			if (debug)
+				addlog("\n");
+
+			SPPP_LOG(sp, LOG_DEBUG,
+			    " malicious IPCP option received, dropping\n");
 			type = CP_RCR_ERR;
 			goto end;
 		}
@@ -3633,8 +3588,7 @@ sppp_ipcp_confreq(struct sppp *sp, struc
 		hisaddr = 0;
 #endif
 	if (debug)
-		log(LOG_DEBUG, "%s: ipcp parse opt values: ",
-		       ifp->if_xname);
+		SPPP_LOG(sp, LOG_DEBUG, "ipcp parse opt values:");
 	p = (void *)(h + 1);
 	r = buf;
 	rlen = 0;
@@ -3762,8 +3716,7 @@ static void
 sppp_ipcp_confrej(struct sppp *sp, struct lcp_header *h, int len)
 {
 	u_char *p, l;
-	struct ifnet *ifp = &sp->pp_if;
-	int debug = ifp->if_flags & IFF_DEBUG;
+	bool debug;
 
 	KASSERT(SPPP_WLOCKED(sp));
 
@@ -3771,10 +3724,10 @@ sppp_ipcp_confrej(struct sppp *sp, struc
 		return;
 
 	len -= sizeof(*h);
+	debug = sppp_debug_enabled(sp);
 
 	if (debug)
-		log(LOG_DEBUG, "%s: ipcp rej opts:",
-		    ifp->if_xname);
+		SPPP_LOG(sp, LOG_DEBUG, "ipcp rej opts:");
 
 	p = (void *)(h + 1);
 	for (; len > 1; len -= l, p += l) {
@@ -3785,8 +3738,10 @@ sppp_ipcp_confrej(struct sppp *sp, struc
 		/* Sanity check option length */
 		if (l > len) {
 			/* XXX should we just RXJ? */
-			addlog("%s: malicious IPCP option received, dropping\n",
-			    ifp->if_xname);
+			if (debug)
+				addlog("\n");
+			SPPP_LOG(sp, LOG_DEBUG,
+			    "malicious IPCP option received, dropping\n");
 			goto end;
 		}
 		if (debug) {
@@ -3801,9 +3756,8 @@ sppp_ipcp_confrej(struct sppp *sp, struc
 			 * bad.  XXX  Should we better give up here?
 			 */
 			if (!debug) {
-				log(LOG_ERR, "%s: "
-				    "IPCP address option rejected\n",
-				    ifp->if_xname);
+				SPPP_LOG(sp, LOG_ERR,
+				    "IPCP address option rejected\n");
 			}
 			CLR(sp->ipcp.opts, SPPP_IPCP_OPT_ADDRESS);
 			break;
@@ -3843,9 +3797,10 @@ sppp_ipcp_confnak(struct sppp *sp, struc
 
 	len -= sizeof(*h);
 
+	debug = sppp_debug_enabled(sp);
+
 	if (debug)
-		log(LOG_DEBUG, "%s: ipcp nak opts:",
-		    ifp->if_xname);
+		SPPP_LOG(sp, LOG_DEBUG, "ipcp nak opts:");
 
 	p = (void *)(h + 1);
 	for (; len > 1; len -= l, p += l) {
@@ -3856,8 +3811,10 @@ sppp_ipcp_confnak(struct sppp *sp, struc
 		/* Sanity check option length */
 		if (l > len) {
 			/* XXX should we just RXJ? */
-			addlog("%s: malicious IPCP option received, dropping\n",
-			    ifp->if_xname);
+			if (debug)
+				addlog("\n");
+			SPPP_LOG(sp, LOG_DEBUG,
+			    "malicious IPCP option received, dropping\n");
 			return;
 		}
 		if (debug) {
@@ -3943,8 +3900,8 @@ sppp_ipcp_tlu(struct sppp *sp)
 	ifp = &sp->pp_if;
 	if ((sp->ipcp.flags & IPCP_MYADDR_DYN) &&
 	    ((sp->ipcp.flags & IPCP_MYADDR_SEEN) == 0)) {
-		log(LOG_WARNING, "%s: no IP address, closing IPCP\n",
-		    ifp->if_xname);
+		SPPP_LOG(sp, LOG_WARNING,
+		    "no IP address, closing IPCP\n");
 		sppp_wq_add(sp->wq_cp,
 		    &sp->scp[IDX_IPCP].work_close);
 	} else {
@@ -4053,7 +4010,6 @@ sppp_ipv6cp_init(struct sppp *sp)
 static void
 sppp_ipv6cp_open(struct sppp *sp, void *xcp)
 {
-	STDDCL;
 	struct in6_addr myaddr, hisaddr;
 
 	KASSERT(SPPP_WLOCKED(sp));
@@ -4079,9 +4035,7 @@ sppp_ipv6cp_open(struct sppp *sp, void *
 	 */
 	if (IN6_IS_ADDR_UNSPECIFIED(&myaddr)) {
 		/* XXX this message should go away */
-		if (debug)
-			log(LOG_DEBUG, "%s: ipv6cp_open(): no IPv6 interface\n",
-			    ifp->if_xname);
+		SPPP_DLOG(sp, "ipv6cp_open(): no IPv6 interface\n");
 		return;
 	}
 
@@ -4101,8 +4055,7 @@ sppp_ipv6cp_confreq(struct sppp *sp, str
     uint8_t **msgbuf, size_t *buflen, size_t *msglen)
 {
 	u_char *buf, *r, *p, l, blen;
-	struct ifnet *ifp = &sp->pp_if;
-	int rlen, len, debug = ifp->if_flags & IFF_DEBUG;
+	int rlen, len;
 	struct in6_addr myaddr, desiredaddr, suggestaddr;
 	enum cp_rcr_type type;
 	int ifidcount;
@@ -4111,9 +4064,11 @@ sppp_ipv6cp_confreq(struct sppp *sp, str
 	char tbuf[SPPP_CPTYPE_NAMELEN];
 	char ipv6buf[SPPP_IPV6CPOPT_NAMELEN];
 	const char *cpname;
+	bool debug;
 
 	KASSERT(SPPP_WLOCKED(sp));
 
+	debug = sppp_debug_enabled(sp);
 	type = CP_RCR_NONE;
 	origlen -= sizeof(*h);
 
@@ -4132,8 +4087,7 @@ sppp_ipv6cp_confreq(struct sppp *sp, str
 
 	/* pass 1: see if we can recognize them */
 	if (debug)
-		log(LOG_DEBUG, "%s: ipv6cp parse opts:",
-		    ifp->if_xname);
+		SPPP_LOG(sp, LOG_DEBUG, "ipv6cp parse opts:");
 	p = (void *)(h + 1);
 	r = buf;
 	rlen = 0;
@@ -4146,8 +4100,11 @@ sppp_ipv6cp_confreq(struct sppp *sp, str
 		/* Sanity check option length */
 		if (l > len) {
 			/* XXX just RXJ? */
-			addlog("%s: received malicious IPCPv6 option, "
-			    "dropping\n", ifp->if_xname);
+			if (debug)
+				addlog("\n");
+			SPPP_LOG(sp, LOG_DEBUG,
+			    "received malicious IPCPv6 option, "
+			    "dropping\n");
 			type = CP_RCR_ERR;
 			goto end;
 		}
@@ -4203,8 +4160,7 @@ sppp_ipv6cp_confreq(struct sppp *sp, str
 	/* pass 2: parse option values */
 	sppp_get_ip6_addrs(sp, &myaddr, 0, 0);
 	if (debug)
-		log(LOG_DEBUG, "%s: ipv6cp parse opt values: ",
-		       ifp->if_xname);
+		SPPP_LOG(sp, LOG_DEBUG, "ipv6cp parse opt values:");
 	p = (void *)(h + 1);
 	r = buf;
 	rlen = 0;
@@ -4332,8 +4288,7 @@ static void
 sppp_ipv6cp_confrej(struct sppp *sp, struct lcp_header *h, int len)
 {
 	u_char *p, l;
-	struct ifnet *ifp = &sp->pp_if;
-	int debug = ifp->if_flags & IFF_DEBUG;
+	bool debug;
 
 	KASSERT(SPPP_WLOCKED(sp));
 
@@ -4341,10 +4296,10 @@ sppp_ipv6cp_confrej(struct sppp *sp, str
 		return;
 
 	len -= sizeof(*h);
+	debug = sppp_debug_enabled(sp);
 
 	if (debug)
-		log(LOG_DEBUG, "%s: ipv6cp rej opts:",
-		    ifp->if_xname);
+		SPPP_LOG(sp, LOG_DEBUG, "ipv6cp rej opts:");
 
 	p = (void *)(h + 1);
 	for (; len > 1; len -= l, p += l) {
@@ -4354,8 +4309,11 @@ sppp_ipv6cp_confrej(struct sppp *sp, str
 
 		if (l > len) {
 			/* XXX just RXJ? */
-			addlog("%s: received malicious IPCPv6 option, "
-			    "dropping\n", ifp->if_xname);
+			if (debug)
+				addlog("\n");
+			SPPP_LOG(sp, LOG_DEBUG,
+			    "received malicious IPCPv6 option, "
+			    "dropping\n");
 			goto end;
 		}
 		if (debug) {
@@ -4392,10 +4350,9 @@ static void
 sppp_ipv6cp_confnak(struct sppp *sp, struct lcp_header *h, int len)
 {
 	u_char *p, l;
-	struct ifnet *ifp = &sp->pp_if;
-	int debug = ifp->if_flags & IFF_DEBUG;
 	struct in6_addr suggestaddr;
 	char ip6buf[INET6_ADDRSTRLEN];
+	bool debug;
 
 	KASSERT(SPPP_WLOCKED(sp));
 
@@ -4403,10 +4360,10 @@ sppp_ipv6cp_confnak(struct sppp *sp, str
 		return;
 
 	len -= sizeof(*h);
+	debug = sppp_debug_enabled(sp);
 
 	if (debug)
-		log(LOG_DEBUG, "%s: ipv6cp nak opts:",
-		    ifp->if_xname);
+		SPPP_LOG(sp, LOG_DEBUG, "ipv6cp nak opts:");
 
 	p = (void *)(h + 1);
 	for (; len > 1; len -= l, p += l) {
@@ -4416,8 +4373,11 @@ sppp_ipv6cp_confnak(struct sppp *sp, str
 
 		if (l > len) {
 			/* XXX just RXJ? */
-			addlog("%s: received malicious IPCPv6 option, "
-			    "dropping\n", ifp->if_xname);
+			if (debug)
+				addlog("\n");
+			SPPP_LOG(sp, LOG_DEBUG,
+			    "received malicious IPCPv6 option, "
+			    "dropping\n");
 			goto end;
 		}
 		if (debug) {
@@ -4639,7 +4599,7 @@ sppp_ipv6cp_scr(struct sppp *sp)
 void
 sppp_chap_input(struct sppp *sp, struct mbuf *m)
 {
-	STDDCL;
+	struct ifnet *ifp;
 	struct lcp_header *h;
 	int len, x;
 	u_char *value, *name, digest[sizeof(sp->chap.challenge)];
@@ -4647,13 +4607,14 @@ sppp_chap_input(struct sppp *sp, struct 
 	MD5_CTX ctx;
 	char abuf[SPPP_AUTHTYPE_NAMELEN];
 	const char *authname;
+	bool debug;
 
+	ifp = &sp->pp_if;
+	debug = sppp_debug_enabled(sp);
 	len = m->m_pkthdr.len;
 	if (len < 4) {
-		if (debug)
-			log(LOG_DEBUG,
-			    "%s: chap invalid packet length: %d bytes\n",
-			    ifp->if_xname, len);
+		SPPP_DLOG(sp, "chap invalid packet length: "
+		    "%d bytes\n", len);
 		return;
 	}
 	h = mtod(m, struct lcp_header *);
@@ -4668,8 +4629,8 @@ sppp_chap_input(struct sppp *sp, struct 
 		if (sp->myauth.secret == NULL || sp->myauth.name == NULL) {
 			/* can't do anything useful */
 			sp->pp_auth_failures++;
-			printf("%s: chap input without my name and my secret being set\n",
-				ifp->if_xname);
+			SPPP_DLOG(sp, "chap input "
+			    "without my name and my secret being set\n");
 			break;
 		}
 		value = 1 + (u_char *)(h + 1);
@@ -4680,11 +4641,10 @@ sppp_chap_input(struct sppp *sp, struct 
 			if (debug) {
 				authname = sppp_auth_type_name(abuf,
 				    sizeof(abuf), PPP_CHAP, h->type);
-				log(LOG_DEBUG,
-				    "%s: chap corrupted challenge "
+				SPPP_LOG(sp, LOG_DEBUG,
+				    "chap corrupted challenge "
 				    "<%s id=0x%x len=%d",
-				    ifp->if_xname, authname,
-				    h->ident, ntohs(h->len));
+				    authname, h->ident, ntohs(h->len));
 				if (len > 4)
 					sppp_print_bytes((u_char *)(h + 1),
 					    len - 4);
@@ -4696,10 +4656,9 @@ sppp_chap_input(struct sppp *sp, struct 
 		if (debug) {
 			authname = sppp_auth_type_name(abuf,
 			    sizeof(abuf), PPP_CHAP, h->type);
-			log(LOG_DEBUG,
-			    "%s: chap input <%s id=0x%x len=%d name=",
-			    ifp->if_xname, authname, h->ident,
-			    ntohs(h->len));
+			SPPP_LOG(sp, LOG_DEBUG,
+			    "chap input <%s id=0x%x len=%d name=",
+			    authname, h->ident, ntohs(h->len));
 			sppp_print_string((char *) name, name_len);
 			addlog(" value-size=%d value=", value_len);
 			sppp_print_bytes(value, value_len);
@@ -4720,8 +4679,7 @@ sppp_chap_input(struct sppp *sp, struct 
 
 	case CHAP_SUCCESS:
 		if (debug) {
-			log(LOG_DEBUG, "%s: chap success",
-			    ifp->if_xname);
+			SPPP_LOG(sp, LOG_DEBUG, "chap success");
 			if (len > 4) {
 				addlog(": ");
 				sppp_print_string((char *)(h + 1), len - 4);
@@ -4730,21 +4688,16 @@ sppp_chap_input(struct sppp *sp, struct 
 		}
 
 		if (h->ident != sp->scp[IDX_CHAP].rconfid) {
-			if (debug) {
-				log(LOG_DEBUG, "%s: %s id mismatch 0x%x != 0x%x\n",
-				       ifp->if_xname, chap.name,
-				       h->ident, sp->scp[IDX_CHAP].rconfid);
-			}
+			SPPP_DLOG(sp, "%s id mismatch 0x%x != 0x%x\n",
+			    chap.name, h->ident,
+			    sp->scp[IDX_CHAP].rconfid);
 			if_statinc(ifp, if_ierrors);
 			break;
 		}
 
 		if (sp->chap.digest_len == 0) {
-			if (debug) {
-				log(LOG_DEBUG,
-				    "%s: receive CHAP success without challenge\n",
-				    ifp->if_xname);
-			}
+			SPPP_DLOG(sp, "receive CHAP success"
+			    " without challenge\n");
 			if_statinc(ifp, if_ierrors);
 			break;
 		}
@@ -4769,21 +4722,15 @@ sppp_chap_input(struct sppp *sp, struct 
 
 	case CHAP_FAILURE:
 		if (h->ident != sp->scp[IDX_CHAP].rconfid) {
-			if (debug) {
-				log(LOG_DEBUG, "%s: %s id mismatch 0x%x != 0x%x\n",
-				       ifp->if_xname, chap.name,
-				       h->ident, sp->scp[IDX_CHAP].rconfid);
-			}
+			SPPP_DLOG(sp, "%s id mismatch 0x%x != 0x%x\n",
+			    chap.name, h->ident, sp->scp[IDX_CHAP].rconfid);
 			if_statinc(ifp, if_ierrors);
 			break;
 		}
 
 		if (sp->chap.digest_len == 0) {
-			if (debug) {
-				log(LOG_DEBUG,
-				    "%s: receive CHAP failure without challenge\n",
-				    ifp->if_xname);
-			}
+			SPPP_DLOG(sp, "receive CHAP failure "
+			    "without challenge\n");
 			if_statinc(ifp, if_ierrors);
 			break;
 		}
@@ -4791,17 +4738,14 @@ sppp_chap_input(struct sppp *sp, struct 
 		x = splnet();
 		sp->pp_auth_failures++;
 		splx(x);
+		SPPP_LOG(sp, LOG_INFO, "chap failure");
 		if (debug) {
-			log(LOG_INFO, "%s: chap failure",
-			    ifp->if_xname);
 			if (len > 4) {
 				addlog(": ");
 				sppp_print_string((char *)(h + 1), len - 4);
 			}
-			addlog("\n");
-		} else
-			log(LOG_INFO, "%s: chap failure\n",
-			    ifp->if_xname);
+		}
+		addlog("\n");
 
 		memset(sp->chap.digest, 0, sizeof(sp->chap.digest));
 		sp->chap.digest_len = 0;
@@ -4815,10 +4759,9 @@ sppp_chap_input(struct sppp *sp, struct 
 	case CHAP_RESPONSE:
 		if (sp->hisauth.name == NULL || sp->hisauth.secret == NULL) {
 			/* can't do anything useful */
-			printf("%s: chap response"
-			    " without his name and his secret being set\n",
-			    ifp->if_xname);
-		    break;
+			SPPP_DLOG(sp, "chap response "
+			    "without his name and his secret being set\n");
+			break;
 		}
 		value = 1 + (u_char *)(h + 1);
 		value_len = value[-1];
@@ -4828,11 +4771,10 @@ sppp_chap_input(struct sppp *sp, struct 
 			if (debug) {
 				authname = sppp_auth_type_name(abuf,
 				    sizeof(abuf), PPP_CHAP, h->type);
-				log(LOG_DEBUG,
-				    "%s: chap corrupted response "
+				SPPP_LOG(sp, LOG_DEBUG,
+				    "chap corrupted response "
 				    "<%s id=0x%x len=%d",
-				    ifp->if_xname, authname,
-				    h->ident, ntohs(h->len));
+				    authname, h->ident, ntohs(h->len));
 				if (len > 4)
 					sppp_print_bytes((u_char *)(h + 1),
 					    len - 4);
@@ -4841,12 +4783,9 @@ sppp_chap_input(struct sppp *sp, struct 
 			break;
 		}
 		if (h->ident != sp->scp[IDX_CHAP].confid) {
-			if (debug)
-				log(LOG_DEBUG,
-				    "%s: chap dropping response for old ID "
-				    "(got %d, expected %d)\n",
-				    ifp->if_xname,
-				    h->ident, sp->scp[IDX_CHAP].confid);
+			SPPP_DLOG(sp, "chap dropping response for old ID "
+			    "(got %d, expected %d)\n",
+			    h->ident, sp->scp[IDX_CHAP].confid);
 			break;
 		} else {
 			sp->scp[IDX_CHAP].rconfid = h->ident;
@@ -4855,8 +4794,8 @@ sppp_chap_input(struct sppp *sp, struct 
 		if (sp->hisauth.name != NULL &&
 		    (name_len != sp->hisauth.name_len
 		    || memcmp(name, sp->hisauth.name, name_len) != 0)) {
-			log(LOG_INFO, "%s: chap response, his name ",
-			    ifp->if_xname);
+			SPPP_LOG(sp, LOG_INFO,
+			    "chap response, his name ");
 			sppp_print_string(name, name_len);
 			addlog(" != expected ");
 			sppp_print_string(sp->hisauth.name,
@@ -4872,9 +4811,8 @@ sppp_chap_input(struct sppp *sp, struct 
 		if (debug) {
 			authname = sppp_auth_type_name(abuf,
 			    sizeof(abuf), PPP_CHAP, h->type);
-			log(LOG_DEBUG, "%s: chap input(%s) "
+			SPPP_LOG(sp, LOG_DEBUG, "chap input(%s) "
 			    "<%s id=0x%x len=%d name=",
-			    ifp->if_xname,
 			    sppp_state_name(sp->scp[IDX_CHAP].state),
 			    authname, h->ident, ntohs(h->len));
 			sppp_print_string((char *)name, name_len);
@@ -4897,12 +4835,12 @@ sppp_chap_input(struct sppp *sp, struct 
 				sp->scp[IDX_CHAP].rcr_type = CP_RCR_NAK;
 			}
 		} else {
-			if (debug)
-				log(LOG_DEBUG,
-				    "%s: chap bad hash value length: "
+			if (debug) {
+				SPPP_LOG(sp, LOG_DEBUG,
+				    "chap bad hash value length: "
 				    "%d bytes, should be %zu\n",
-				    ifp->if_xname, value_len,
-				    sizeof(sp->chap.challenge));
+				    value_len, sizeof(sp->chap.challenge));
+			}
 
 			sp->scp[IDX_CHAP].rcr_type = CP_RCR_NAK;
 		}
@@ -4920,9 +4858,8 @@ sppp_chap_input(struct sppp *sp, struct 
 	default:
 		/* Unknown CHAP packet type -- ignore. */
 		if (debug) {
-			log(LOG_DEBUG, "%s: chap unknown input(%s) "
+			SPPP_LOG(sp, LOG_DEBUG, "chap unknown input(%s) "
 			    "<0x%x id=0x%xh len=%d",
-			    ifp->if_xname,
 			    sppp_state_name(sp->scp[IDX_CHAP].state),
 			    h->type, h->ident, ntohs(h->len));
 			if (len > 4)
@@ -4964,7 +4901,6 @@ sppp_chap_open(struct sppp *sp, void *xc
 static void
 sppp_chap_tlu(struct sppp *sp)
 {
-	STDDCL;
 	int i, x;
 
 	KASSERT(SPPP_WLOCKED(sp));
@@ -4975,7 +4911,7 @@ sppp_chap_tlu(struct sppp *sp)
 	sp->pp_auth_failures = 0;
 	splx(x);
 
-	log(LOG_DEBUG, "%s: chap %s", ifp->if_xname,
+	SPPP_LOG(sp, LOG_DEBUG, "chap %s",
 	    sp->pp_phase == SPPP_PHASE_NETWORK ? "reconfirmed" : "tlu");
 
 	/*
@@ -4993,7 +4929,7 @@ sppp_chap_tlu(struct sppp *sp)
 		i = 300 + ((unsigned)(cprng_fast32() & 0xff00) >> 7);
 		callout_schedule(&sp->scp[IDX_CHAP].ch, i * hz);
 
-		if (debug) {
+		if (sppp_debug_enabled(sp)) {
 			addlog(", next rechallenge in %d seconds", i);
 		}
 	}
@@ -5094,13 +5030,17 @@ sppp_chap_rcv_challenge_event(struct spp
 static void
 sppp_pap_input(struct sppp *sp, struct mbuf *m)
 {
-	STDDCL;
+	struct ifnet *ifp;
 	struct lcp_header *h;
 	int len, x;
 	char *name, *secret;
 	int name_len, secret_len;
 	char abuf[SPPP_AUTHTYPE_NAMELEN];
 	const char *authname;
+	bool debug;
+
+	ifp = &sp->pp_if;
+	debug = sppp_debug_enabled(sp);
 
 	/*
 	 * Malicious input might leave this uninitialized, so
@@ -5110,10 +5050,8 @@ sppp_pap_input(struct sppp *sp, struct m
 
 	len = m->m_pkthdr.len;
 	if (len < 5) {
-		if (debug)
-			log(LOG_DEBUG,
-			    "%s: pap invalid packet length: %d bytes\n",
-			    ifp->if_xname, len);
+		SPPP_DLOG(sp, "pap invalid packet length: "
+		    "%d bytes\n", len);
 		return;
 	}
 	h = mtod(m, struct lcp_header *);
@@ -5127,9 +5065,8 @@ sppp_pap_input(struct sppp *sp, struct m
 	case PAP_REQ:
 		if (sp->hisauth.name == NULL || sp->hisauth.secret == NULL) {
 			/* can't do anything useful */
-			printf("%s: pap request"
-			    " without his name and his secret being set\n",
-			    ifp->if_xname);
+			SPPP_DLOG(sp, "pap request"
+			    " without his name and his secret being set\n");
 			break;
 		}
 		name = 1 + (u_char *)(h + 1);
@@ -5140,10 +5077,9 @@ sppp_pap_input(struct sppp *sp, struct m
 			if (debug) {
 				authname = sppp_auth_type_name(abuf,
 				    sizeof(abuf), PPP_PAP, h->type);
-				log(LOG_DEBUG, "%s: pap corrupted input "
+				SPPP_LOG(sp, LOG_DEBUG, "pap corrupted input "
 				    "<%s id=0x%x len=%d",
-				    ifp->if_xname, authname,
-				    h->ident, ntohs(h->len));
+				    authname, h->ident, ntohs(h->len));
 				if (len > 4)
 					sppp_print_bytes((u_char *)(h + 1),
 					    len - 4);
@@ -5154,9 +5090,8 @@ sppp_pap_input(struct sppp *sp, struct m
 		if (debug) {
 			authname = sppp_auth_type_name(abuf,
 			    sizeof(abuf), PPP_PAP, h->type);
-			log(LOG_DEBUG, "%s: pap input(%s) "
+			SPPP_LOG(sp, LOG_DEBUG, "pap input(%s) "
 			    "<%s id=0x%x len=%d name=",
-			    ifp->if_xname,
 			    sppp_state_name(sp->scp[IDX_PAP].state),
 			    authname, h->ident, ntohs(h->len));
 			sppp_print_string((char *)name, name_len);
@@ -5188,8 +5123,7 @@ sppp_pap_input(struct sppp *sp, struct m
 	/* ack and nak are his authproto */
 	case PAP_ACK:
 		if (debug) {
-			log(LOG_DEBUG, "%s: pap success",
-			    ifp->if_xname);
+			SPPP_LOG(sp, LOG_DEBUG, "pap success");
 			name = 1 + (u_char *)(h + 1);
 			name_len = name[-1];
 			if (len > 5 && name_len < len+4) {
@@ -5200,11 +5134,8 @@ sppp_pap_input(struct sppp *sp, struct m
 		}
 
 		if (h->ident != sp->scp[IDX_PAP].confid) {
-			if (debug) {
-				log(LOG_DEBUG, "%s: %s id mismatch 0x%x != 0x%x\n",
-				       ifp->if_xname, pap.name,
-				       h->ident, sp->scp[IDX_PAP].rconfid);
-			}
+			SPPP_DLOG(sp, "%s id mismatch 0x%x != 0x%x\n",
+			    pap.name, h->ident, sp->scp[IDX_PAP].rconfid);
 			if_statinc(ifp, if_ierrors);
 			break;
 		}
@@ -5225,8 +5156,7 @@ sppp_pap_input(struct sppp *sp, struct m
 
 	case PAP_NAK:
 		if (debug) {
-			log(LOG_INFO, "%s: pap failure",
-			    ifp->if_xname);
+			SPPP_LOG(sp, LOG_INFO, "pap failure");
 			name = 1 + (u_char *)(h + 1);
 			name_len = name[-1];
 			if (len > 5 && name_len < len+4) {
@@ -5234,16 +5164,13 @@ sppp_pap_input(struct sppp *sp, struct m
 				sppp_print_string(name, name_len);
 			}
 			addlog("\n");
-		} else
-			log(LOG_INFO, "%s: pap failure\n",
-			    ifp->if_xname);
+		} else {
+			SPPP_LOG(sp, LOG_INFO, "pap failure\n");
+		}
 
 		if (h->ident != sp->scp[IDX_PAP].confid) {
-			if (debug) {
-				log(LOG_DEBUG, "%s: %s id mismatch 0x%x != 0x%x\n",
-				       ifp->if_xname, pap.name,
-				       h->ident, sp->scp[IDX_PAP].rconfid);
-			}
+			SPPP_DLOG(sp, "%s id mismatch 0x%x != 0x%x\n",
+			    pap.name, h->ident, sp->scp[IDX_PAP].rconfid);
 			if_statinc(ifp, if_ierrors);
 			break;
 		}
@@ -5258,9 +5185,8 @@ sppp_pap_input(struct sppp *sp, struct m
 	default:
 		/* Unknown PAP packet type -- ignore. */
 		if (debug) {
-			log(LOG_DEBUG, "%s: pap corrupted input "
+			SPPP_LOG(sp, LOG_DEBUG, "pap corrupted input "
 			    "<0x%x id=0x%x len=%d",
-			    ifp->if_xname,
 			    h->type, h->ident, ntohs(h->len));
 			if (len > 4)
 				sppp_print_bytes((u_char *)(h + 1), len - 4);
@@ -5283,15 +5209,11 @@ sppp_pap_init(struct sppp *sp)
 static void
 sppp_pap_tlu(struct sppp *sp)
 {
-	STDDCL;
 	int x;
 
-	sp->scp[IDX_PAP].rst_counter = sp->lcp.max_configure;
-
-	if (debug)
-		log(LOG_DEBUG, "%s: %s tlu\n",
-		    ifp->if_xname, pap.name);
+	SPPP_DLOG(sp, "%s tlu\n", pap.name);
 
+	sp->scp[IDX_PAP].rst_counter = sp->lcp.max_configure;
 	x = splnet();
 	sp->pp_auth_failures = 0;
 	splx(x);
@@ -5309,10 +5231,11 @@ sppp_pap_scr(struct sppp *sp)
 
 	if (ISSET(sppp_auth_role(&pap, sp), SPPP_AUTH_PEER) &&
 	    sp->scp[IDX_PAP].state != STATE_ACK_RCVD) {
-		if (sp->myauth.secret == NULL || sp->myauth.name == NULL) {
-			log(LOG_DEBUG, "%s: couldn't send PAP_REQ "
-			    "because of no name or no secret\n",
-			    sp->pp_if.if_xname);
+		if (sp->myauth.secret == NULL ||
+		    sp->myauth.name == NULL) {
+			SPPP_LOG(sp, LOG_DEBUG,
+			    "couldn't send PAP_REQ "
+			    "because of no name or no secret\n");
 		} else {
 			sp->scp[IDX_PAP].confid = ++sp->scp[IDX_PAP].seq;
 			pwdlen = sp->myauth.secret_len;
@@ -5348,7 +5271,7 @@ sppp_auth_send(const struct cp *cp, stru
                unsigned int type, unsigned int id,
 	       ...)
 {
-	STDDCL;
+	struct ifnet *ifp;
 	struct lcp_header *lh;
 	struct mbuf *m;
 	u_char *p;
@@ -5360,6 +5283,8 @@ sppp_auth_send(const struct cp *cp, stru
 
 	KASSERT(SPPP_WLOCKED(sp));
 
+	ifp = &sp->pp_if;
+
 	MGETHDR(m, M_DONTWAIT, MT_DATA);
 	if (! m)
 		return;
@@ -5404,14 +5329,14 @@ sppp_auth_send(const struct cp *cp, stru
 	m->m_pkthdr.len = m->m_len = pkthdrlen + LCP_HEADER_LEN + len;
 	lh->len = htons(LCP_HEADER_LEN + len);
 
-	if (debug) {
+	if (sppp_debug_enabled(sp)) {
 		char abuf[SPPP_AUTHTYPE_NAMELEN];
 		const char *authname;
 
 		authname = sppp_auth_type_name(abuf,
 		    sizeof(abuf), cp->proto, lh->type);
-		log(LOG_DEBUG, "%s: %s output <%s id=0x%x len=%d",
-		    ifp->if_xname, cp->name, authname,
+		SPPP_LOG(sp, LOG_DEBUG, "%s output <%s id=0x%x len=%d",
+		    cp->name, authname,
 		    lh->ident, ntohs(lh->len));
 		if (len)
 			sppp_print_bytes((u_char *)(lh + 1), len);
@@ -5458,7 +5383,6 @@ sppp_auth_to_event(struct sppp *sp, void
 	const struct cp *cp = xcp;
 	bool override;
 	int state;
-	STDDCL;
 
 	KASSERT(SPPP_WLOCKED(sp));
 	KASSERT(!cpu_softintr_p());
@@ -5488,11 +5412,9 @@ sppp_auth_to_event(struct sppp *sp, void
 	}
 
 	if (override) {
-		if (debug)
-			log(LOG_DEBUG, "%s: %s TO(%s) rst_counter = %d\n",
-			    ifp->if_xname, cp->name,
-			    sppp_state_name(state),
-			    sp->scp[cp->protoidx].rst_counter);
+		SPPP_DLOG(sp, "%s TO(%s) rst_counter = %d\n",
+		    cp->name, sppp_state_name(state),
+		    sp->scp[cp->protoidx].rst_counter);
 		sp->scp[cp->protoidx].rst_counter--;
 	} else {
 		sppp_to_event(sp, xcp);
@@ -5557,9 +5479,7 @@ sppp_keepalive(void *dummy)
 		    && (sp->pp_phase == SPPP_PHASE_NETWORK)) {
 		    /* idle timeout is enabled for this interface */
 		    if ((now-sp->pp_last_activity) >= sp->pp_idle_timeout) {
-		    	if (ifp->if_flags & IFF_DEBUG)
-			    printf("%s: no activity for %lu seconds\n",
-				sp->pp_if.if_xname,
+			SPPP_DLOG(sp, "no activity for %lu seconds\n",
 				(unsigned long)(now-sp->pp_last_activity));
 			sppp_wq_add(sp->wq_cp, &sp->scp[IDX_LCP].work_close);
 			SPPP_UNLOCK(sp);
@@ -5605,8 +5525,8 @@ sppp_keepalive(void *dummy)
 			if (sp->pp_flags & PP_KEEPALIVE_IFDOWN)
 				sppp_wq_add(sp->wq_cp, &sp->work_ifdown);
 
-			printf("%s: LCP keepalive timed out, going to restart the connection\n",
-				ifp->if_xname);
+			SPPP_LOG(sp, LOG_INFO,"LCP keepalive timed out, "
+			    "going to restart the connection\n");
 			sp->pp_alivecnt = 0;
 
 			/* we are down, close all open protocols */
@@ -5693,13 +5613,16 @@ sppp_get_ip_addrs(struct sppp *sp, uint3
 static void
 sppp_set_ip_addrs(struct sppp *sp)
 {
-	STDDCL;
+	struct ifnet *ifp;
 	struct ifaddr *ifa;
 	struct sockaddr_in *si, *dest;
 	uint32_t myaddr = 0, hisaddr = 0;
 	int s;
 
 	KASSERT(SPPP_WLOCKED(sp));
+
+	ifp = &sp->pp_if;
+
 	SPPP_UNLOCK(sp);
 	IFNET_LOCK(ifp);
 	SPPP_LOCK(sp, RW_WRITER);
@@ -5748,12 +5671,10 @@ sppp_set_ip_addrs(struct sppp *sp)
 
 		in_addrhash_insert(ifatoia(ifa));
 
-		if (debug && error)
-		{
-			log(LOG_DEBUG, "%s: %s: in_ifinit failed, error=%d\n",
-			    ifp->if_xname, __func__, error);
-		}
-		if (!error) {
+		if (error) {
+			SPPP_DLOG(sp, "%s: in_ifinit failed, error=%d\n",
+			    __func__, error);
+		} else {
 			pfil_run_addrhooks(if_pfil, SIOCAIFADDR, ifa);
 		}
 	}
@@ -5769,12 +5690,15 @@ sppp_set_ip_addrs(struct sppp *sp)
 static void
 sppp_clear_ip_addrs(struct sppp *sp)
 {
-	STDDCL;
+	struct ifnet *ifp;
 	struct ifaddr *ifa;
 	struct sockaddr_in *si, *dest;
 	int s;
 
 	KASSERT(SPPP_WLOCKED(sp));
+
+	ifp = &sp->pp_if;
+
 	SPPP_UNLOCK(sp);
 	IFNET_LOCK(ifp);
 	SPPP_LOCK(sp, RW_WRITER);
@@ -5811,12 +5735,10 @@ sppp_clear_ip_addrs(struct sppp *sp)
 
 		in_addrhash_insert(ifatoia(ifa));
 
-		if (debug && error)
-		{
-			log(LOG_DEBUG, "%s: %s: in_ifinit failed, error=%d\n",
-			    ifp->if_xname, __func__, error);
-		}
-		if (!error) {
+		if (error) {
+			SPPP_DLOG(sp, "%s: in_ifinit failed, error=%d\n",
+			    __func__, error);
+		} else {
 			pfil_run_addrhooks(if_pfil, SIOCAIFADDR, ifa);
 		}
 	}
@@ -5898,13 +5820,16 @@ sppp_gen_ip6_addr(struct sppp *sp, struc
 static void
 sppp_set_ip6_addr(struct sppp *sp, const struct in6_addr *src)
 {
-	STDDCL;
+	struct ifnet *ifp;
 	struct ifaddr *ifa;
 	struct sockaddr_in6 *sin6;
 	int s;
 	struct psref psref;
 
 	KASSERT(SPPP_WLOCKED(sp));
+
+	ifp = &sp->pp_if;
+
 	SPPP_UNLOCK(sp);
 	IFNET_LOCK(ifp);
 	SPPP_LOCK(sp, RW_WRITER);
@@ -5936,12 +5861,10 @@ sppp_set_ip6_addr(struct sppp *sp, const
 
 		memcpy(&new_sin6.sin6_addr, src, sizeof(new_sin6.sin6_addr));
 		error = in6_ifinit(ifp, ifatoia6(ifa), &new_sin6, 1);
-		if (debug && error)
-		{
-			log(LOG_DEBUG, "%s: %s: in6_ifinit failed, error=%d\n",
-			    ifp->if_xname, __func__, error);
-		}
-		if (!error) {
+		if (error) {
+			SPPP_DLOG(sp, "%s: in6_ifinit failed, error=%d\n",
+			    __func__, error);
+		} else {
 			pfil_run_addrhooks(if_pfil, SIOCAIFADDR_IN6, ifa);
 		}
 		ifa_release(ifa, &psref);
@@ -6593,10 +6516,8 @@ sppp_tls(const struct cp *cp, struct spp
 static void
 sppp_tlf(const struct cp *cp, struct sppp *sp)
 {
-	STDDCL;
 
-	if (debug)
-		log(LOG_DEBUG, "%s: %s tlf\n", ifp->if_xname, cp->name);
+	SPPP_DLOG(sp, "%s tlf\n", cp->name);
 
 	/* notify lcp that is lower layer */
 	sp->lcp.protos &= ~(1 << cp->protoidx);
@@ -6618,7 +6539,6 @@ static void
 sppp_screply(const struct cp *cp, struct sppp *sp, u_char type,
     uint8_t ident, size_t msglen, void *msg)
 {
-	STDDCL;
 
 	if (msglen == 0)
 		return;
@@ -6632,12 +6552,12 @@ sppp_screply(const struct cp *cp, struct
 		return;
 	}
 
-	if (debug) {
+	if (sppp_debug_enabled(sp)) {
 		char tbuf[SPPP_CPTYPE_NAMELEN];
 		const char *cpname;
 
 		cpname = sppp_cp_type_name(tbuf, sizeof(tbuf), type);
-		log(LOG_DEBUG, "%s: send %s\n", ifp->if_xname, cpname);
+		SPPP_LOG(sp, LOG_DEBUG, "send %s\n", cpname);
 	}
 
 	sppp_cp_send(sp, cp->proto, type, ident, msglen, msg);

Reply via email to