summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/netinet/sctp.h1
-rw-r--r--sys/netinet/sctp_input.c3
-rw-r--r--sys/netinet/sctp_output.c24
3 files changed, 19 insertions, 9 deletions
diff --git a/sys/netinet/sctp.h b/sys/netinet/sctp.h
index 6374bce..b367f19 100644
--- a/sys/netinet/sctp.h
+++ b/sys/netinet/sctp.h
@@ -513,5 +513,6 @@ __attribute__((packed));
#define SCTP_LOG_SACK_ARRIVALS_ENABLE 0x00200000
#define SCTP_LTRACE_CHUNK_ENABLE 0x00400000
#define SCTP_LTRACE_ERROR_ENABLE 0x00800000
+#define SCTP_LAST_PACKET_TRACING 0x01000000
#endif /* !_NETINET_SCTP_H_ */
diff --git a/sys/netinet/sctp_input.c b/sys/netinet/sctp_input.c
index 42303ab..0dc56f7 100644
--- a/sys/netinet/sctp_input.c
+++ b/sys/netinet/sctp_input.c
@@ -4715,7 +4715,8 @@ sctp_input(i_pak, off)
}
#endif
#ifdef SCTP_PACKET_LOGGING
- sctp_packet_log(m, mlen);
+ if (sctp_logging_level & SCTP_LAST_PACKET_TRACING)
+ sctp_packet_log(m, mlen);
#endif
/*
* Must take out the iphlen, since mlen expects this (only effect lb
diff --git a/sys/netinet/sctp_output.c b/sys/netinet/sctp_output.c
index 430f853..77beb1f 100644
--- a/sys/netinet/sctp_output.c
+++ b/sys/netinet/sctp_output.c
@@ -3455,7 +3455,8 @@ sctp_lowlevel_chunk_output(struct sctp_inpcb *inp,
return (ENOMEM);
}
#ifdef SCTP_PACKET_LOGGING
- sctp_packet_log(m, packet_length);
+ if (sctp_logging_level & SCTP_LAST_PACKET_TRACING)
+ sctp_packet_log(m, packet_length);
#endif
SCTP_ATTACH_CHAIN(o_pak, m, packet_length);
@@ -3673,7 +3674,8 @@ sctp_lowlevel_chunk_output(struct sctp_inpcb *inp,
return (ENOMEM);
}
#ifdef SCTP_PACKET_LOGGING
- sctp_packet_log(m, packet_length);
+ if (sctp_logging_level & SCTP_LAST_PACKET_TRACING)
+ sctp_packet_log(m, packet_length);
#endif
SCTP_ATTACH_CHAIN(o_pak, m, packet_length);
@@ -9347,7 +9349,8 @@ sctp_send_shutdown_complete2(struct mbuf *m, int iphlen, struct sctphdr *sh,
/* set IPv4 length */
iph_out->ip_len = mlen;
#ifdef SCTP_PACKET_LOGGING
- sctp_packet_log(mout, mlen);
+ if (sctp_logging_level & SCTP_LAST_PACKET_TRACING)
+ sctp_packet_log(mout, mlen);
#endif
SCTP_ATTACH_CHAIN(o_pak, mout, mlen);
@@ -9366,7 +9369,8 @@ sctp_send_shutdown_complete2(struct mbuf *m, int iphlen, struct sctphdr *sh,
bzero(&ro, sizeof(ro));
mlen = SCTP_BUF_LEN(mout);
#ifdef SCTP_PACKET_LOGGING
- sctp_packet_log(mout, mlen);
+ if (sctp_logging_level & SCTP_LAST_PACKET_TRACING)
+ sctp_packet_log(mout, mlen);
#endif
SCTP_ATTACH_CHAIN(o_pak, mout, mlen);
SCTP_IP6_OUTPUT(ret, o_pak, &ro, &ifp, stcb, vrf_id);
@@ -10227,7 +10231,8 @@ sctp_send_abort(struct mbuf *m, int iphlen, struct sctphdr *sh, uint32_t vtag,
iph_out->ip_len = len;
/* out it goes */
#ifdef SCTP_PACKET_LOGGING
- sctp_packet_log(mout, len);
+ if (sctp_logging_level & SCTP_LAST_PACKET_TRACING)
+ sctp_packet_log(mout, len);
#endif
SCTP_ATTACH_CHAIN(o_pak, mout, len);
SCTP_IP_OUTPUT(ret, o_pak, &ro, stcb, vrf_id);
@@ -10247,7 +10252,8 @@ sctp_send_abort(struct mbuf *m, int iphlen, struct sctphdr *sh, uint32_t vtag,
SCTPDBG_PKT(SCTP_DEBUG_OUTPUT2, (struct ip *)ip6_out, &abm->sh);
ip6_out->ip6_plen = len - sizeof(*ip6_out);
#ifdef SCTP_PACKET_LOGGING
- sctp_packet_log(mout, len);
+ if (sctp_logging_level & SCTP_LAST_PACKET_TRACING)
+ sctp_packet_log(mout, len);
#endif
SCTP_ATTACH_CHAIN(o_pak, mout, len);
SCTP_IP6_OUTPUT(ret, o_pak, &ro, &ifp, stcb, vrf_id);
@@ -10351,7 +10357,8 @@ sctp_send_operr_to(struct mbuf *m, int iphlen, struct mbuf *scm, uint32_t vtag,
out->ip_dst = iph->ip_src;
out->ip_len = len;
#ifdef SCTP_PACKET_LOGGING
- sctp_packet_log(mout, len);
+ if (sctp_logging_level & SCTP_LAST_PACKET_TRACING)
+ sctp_packet_log(mout, len);
#endif
SCTP_ATTACH_CHAIN(o_pak, mout, len);
@@ -10399,7 +10406,8 @@ sctp_send_operr_to(struct mbuf *m, int iphlen, struct mbuf *scm, uint32_t vtag,
SCTPDBG_ADDR(SCTP_DEBUG_OUTPUT2, (struct sockaddr *)&fsa6);
#ifdef SCTP_PACKET_LOGGING
- sctp_packet_log(mout, len);
+ if (sctp_logging_level & SCTP_LAST_PACKET_TRACING)
+ sctp_packet_log(mout, len);
#endif
SCTP_ATTACH_CHAIN(o_pak, mout, len);
SCTP_IP6_OUTPUT(ret, o_pak, &ro, &ifp, stcb, vrf_id);
OpenPOWER on IntegriCloud