2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-11-27 20:13:57 +08:00

l2tp: don't log data frames

l2tp had logging to trace data frame receipt and transmission, including
code to dump packet contents.  This was originally intended to aid
debugging of core l2tp packet handling, but is of limited use now that
code is stable.

Signed-off-by: Tom Parkin <tparkin@katalix.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Tom Parkin 2020-08-22 15:59:01 +01:00 committed by David S. Miller
parent 1aecbf1861
commit 12923365eb
5 changed files with 6 additions and 101 deletions

View File

@ -660,7 +660,6 @@ void l2tp_recv_common(struct l2tp_session *session, struct sk_buff *skb,
int length) int length)
{ {
struct l2tp_tunnel *tunnel = session->tunnel; struct l2tp_tunnel *tunnel = session->tunnel;
u32 ns = 0, nr = 0;
int offset; int offset;
/* Parse and check optional cookie */ /* Parse and check optional cookie */
@ -686,32 +685,21 @@ void l2tp_recv_common(struct l2tp_session *session, struct sk_buff *skb,
L2TP_SKB_CB(skb)->has_seq = 0; L2TP_SKB_CB(skb)->has_seq = 0;
if (tunnel->version == L2TP_HDR_VER_2) { if (tunnel->version == L2TP_HDR_VER_2) {
if (hdrflags & L2TP_HDRFLAG_S) { if (hdrflags & L2TP_HDRFLAG_S) {
ns = ntohs(*(__be16 *)ptr);
ptr += 2;
nr = ntohs(*(__be16 *)ptr);
ptr += 2;
/* Store L2TP info in the skb */ /* Store L2TP info in the skb */
L2TP_SKB_CB(skb)->ns = ns; L2TP_SKB_CB(skb)->ns = ntohs(*(__be16 *)ptr);
L2TP_SKB_CB(skb)->has_seq = 1; L2TP_SKB_CB(skb)->has_seq = 1;
ptr += 2;
/* Skip past nr in the header */
ptr += 2;
l2tp_dbg(session, L2TP_MSG_SEQ,
"%s: recv data ns=%u, nr=%u, session nr=%u\n",
session->name, ns, nr, session->nr);
} }
} else if (session->l2specific_type == L2TP_L2SPECTYPE_DEFAULT) { } else if (session->l2specific_type == L2TP_L2SPECTYPE_DEFAULT) {
u32 l2h = ntohl(*(__be32 *)ptr); u32 l2h = ntohl(*(__be32 *)ptr);
if (l2h & 0x40000000) { if (l2h & 0x40000000) {
ns = l2h & 0x00ffffff;
/* Store L2TP info in the skb */ /* Store L2TP info in the skb */
L2TP_SKB_CB(skb)->ns = ns; L2TP_SKB_CB(skb)->ns = l2h & 0x00ffffff;
L2TP_SKB_CB(skb)->has_seq = 1; L2TP_SKB_CB(skb)->has_seq = 1;
l2tp_dbg(session, L2TP_MSG_SEQ,
"%s: recv data ns=%u, session nr=%u\n",
session->name, ns, session->nr);
} }
ptr += 4; ptr += 4;
} }
@ -853,16 +841,6 @@ static int l2tp_udp_recv_core(struct l2tp_tunnel *tunnel, struct sk_buff *skb)
goto error; goto error;
} }
/* Trace packet contents, if enabled */
if (tunnel->debug & L2TP_MSG_DATA) {
length = min(32u, skb->len);
if (!pskb_may_pull(skb, length))
goto error;
pr_debug("%s: recv\n", tunnel->name);
print_hex_dump_bytes("", DUMP_PREFIX_OFFSET, skb->data, length);
}
/* Point to L2TP header */ /* Point to L2TP header */
optr = skb->data; optr = skb->data;
ptr = skb->data; ptr = skb->data;
@ -883,12 +861,8 @@ static int l2tp_udp_recv_core(struct l2tp_tunnel *tunnel, struct sk_buff *skb)
length = skb->len; length = skb->len;
/* If type is control packet, it is handled by userspace. */ /* If type is control packet, it is handled by userspace. */
if (hdrflags & L2TP_HDRFLAG_T) { if (hdrflags & L2TP_HDRFLAG_T)
l2tp_dbg(tunnel, L2TP_MSG_DATA,
"%s: recv control packet, len=%d\n",
tunnel->name, length);
goto error; goto error;
}
/* Skip flags */ /* Skip flags */
ptr += 2; ptr += 2;
@ -953,9 +927,6 @@ int l2tp_udp_encap_recv(struct sock *sk, struct sk_buff *skb)
if (!tunnel) if (!tunnel)
goto pass_up; goto pass_up;
l2tp_dbg(tunnel, L2TP_MSG_DATA, "%s: received %d bytes\n",
tunnel->name, skb->len);
if (l2tp_udp_recv_core(tunnel, skb)) if (l2tp_udp_recv_core(tunnel, skb))
goto pass_up; goto pass_up;
@ -1049,23 +1020,6 @@ static void l2tp_xmit_core(struct l2tp_session *session, struct sk_buff *skb,
unsigned int len = skb->len; unsigned int len = skb->len;
int error; int error;
/* Debug */
if (session->send_seq)
l2tp_dbg(session, L2TP_MSG_DATA, "%s: send %zd bytes, ns=%u\n",
session->name, data_len, session->ns - 1);
else
l2tp_dbg(session, L2TP_MSG_DATA, "%s: send %zd bytes\n",
session->name, data_len);
if (session->debug & L2TP_MSG_DATA) {
int uhlen = (tunnel->encap == L2TP_ENCAPTYPE_UDP) ? sizeof(struct udphdr) : 0;
unsigned char *datap = skb->data + uhlen;
pr_debug("%s: xmit\n", session->name);
print_hex_dump_bytes("", DUMP_PREFIX_OFFSET,
datap, min_t(size_t, 32, len - uhlen));
}
/* Queue the packet to IP for output */ /* Queue the packet to IP for output */
skb->ignore_df = 1; skb->ignore_df = 1;
skb_dst_drop(skb); skb_dst_drop(skb);

View File

@ -128,17 +128,6 @@ static void l2tp_eth_dev_recv(struct l2tp_session *session, struct sk_buff *skb,
struct net_device *dev; struct net_device *dev;
struct l2tp_eth *priv; struct l2tp_eth *priv;
if (session->debug & L2TP_MSG_DATA) {
unsigned int length;
length = min(32u, skb->len);
if (!pskb_may_pull(skb, length))
goto error;
pr_debug("%s: eth recv\n", session->name);
print_hex_dump_bytes("", DUMP_PREFIX_OFFSET, skb->data, length);
}
if (!pskb_may_pull(skb, ETH_HLEN)) if (!pskb_may_pull(skb, ETH_HLEN))
goto error; goto error;

View File

@ -118,7 +118,6 @@ static int l2tp_ip_recv(struct sk_buff *skb)
struct l2tp_session *session; struct l2tp_session *session;
struct l2tp_tunnel *tunnel = NULL; struct l2tp_tunnel *tunnel = NULL;
struct iphdr *iph; struct iphdr *iph;
int length;
if (!pskb_may_pull(skb, 4)) if (!pskb_may_pull(skb, 4))
goto discard; goto discard;
@ -147,20 +146,6 @@ static int l2tp_ip_recv(struct sk_buff *skb)
if (!tunnel) if (!tunnel)
goto discard_sess; goto discard_sess;
/* Trace packet contents, if enabled */
if (tunnel->debug & L2TP_MSG_DATA) {
length = min(32u, skb->len);
if (!pskb_may_pull(skb, length))
goto discard_sess;
/* Point to L2TP header */
optr = skb->data;
ptr = skb->data;
ptr += 4;
pr_debug("%s: ip recv\n", tunnel->name);
print_hex_dump_bytes("", DUMP_PREFIX_OFFSET, ptr, length);
}
if (l2tp_v3_ensure_opt_in_linear(session, skb, &ptr, &optr)) if (l2tp_v3_ensure_opt_in_linear(session, skb, &ptr, &optr))
goto discard_sess; goto discard_sess;

View File

@ -131,7 +131,6 @@ static int l2tp_ip6_recv(struct sk_buff *skb)
struct l2tp_session *session; struct l2tp_session *session;
struct l2tp_tunnel *tunnel = NULL; struct l2tp_tunnel *tunnel = NULL;
struct ipv6hdr *iph; struct ipv6hdr *iph;
int length;
if (!pskb_may_pull(skb, 4)) if (!pskb_may_pull(skb, 4))
goto discard; goto discard;
@ -160,20 +159,6 @@ static int l2tp_ip6_recv(struct sk_buff *skb)
if (!tunnel) if (!tunnel)
goto discard_sess; goto discard_sess;
/* Trace packet contents, if enabled */
if (tunnel->debug & L2TP_MSG_DATA) {
length = min(32u, skb->len);
if (!pskb_may_pull(skb, length))
goto discard_sess;
/* Point to L2TP header */
optr = skb->data;
ptr = skb->data;
ptr += 4;
pr_debug("%s: ip recv\n", tunnel->name);
print_hex_dump_bytes("", DUMP_PREFIX_OFFSET, ptr, length);
}
if (l2tp_v3_ensure_opt_in_linear(session, skb, &ptr, &optr)) if (l2tp_v3_ensure_opt_in_linear(session, skb, &ptr, &optr))
goto discard_sess; goto discard_sess;

View File

@ -237,17 +237,9 @@ static void pppol2tp_recv(struct l2tp_session *session, struct sk_buff *skb, int
if (sk->sk_state & PPPOX_BOUND) { if (sk->sk_state & PPPOX_BOUND) {
struct pppox_sock *po; struct pppox_sock *po;
l2tp_dbg(session, L2TP_MSG_DATA,
"%s: recv %d byte data frame, passing to ppp\n",
session->name, data_len);
po = pppox_sk(sk); po = pppox_sk(sk);
ppp_input(&po->chan, skb); ppp_input(&po->chan, skb);
} else { } else {
l2tp_dbg(session, L2TP_MSG_DATA,
"%s: recv %d byte data frame, passing to L2TP socket\n",
session->name, data_len);
if (sock_queue_rcv_skb(sk, skb) < 0) { if (sock_queue_rcv_skb(sk, skb) < 0) {
atomic_long_inc(&session->stats.rx_errors); atomic_long_inc(&session->stats.rx_errors);
kfree_skb(skb); kfree_skb(skb);