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:
parent
1aecbf1861
commit
12923365eb
@ -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);
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user