Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/net Added SPPP_LOG() for refactoring around log
details: https://anonhg.NetBSD.org/src/rev/132ea8b34cb6
branches: trunk
changeset: 379453:132ea8b34cb6
user: yamaguchi <yamaguchi%NetBSD.org@localhost>
date: Tue Jun 01 05:08:46 2021 +0000
description:
Added SPPP_LOG() for refactoring around log
diffstat:
sys/net/if_spppsubr.c | 824 ++++++++++++++++++++++---------------------------
1 files changed, 372 insertions(+), 452 deletions(-)
diffs (truncated from 2058 to 300 lines):
diff -r 67dbbc4134f9 -r 132ea8b34cb6 sys/net/if_spppsubr.c
--- a/sys/net/if_spppsubr.c Tue Jun 01 05:04:06 2021 +0000
+++ b/sys/net/if_spppsubr.c Tue Jun 01 05:08:46 2021 +0000
@@ -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) {
Home |
Main Index |
Thread Index |
Old Index