Sfoglia il codice sorgente

core: Update udp trace template

Add ip_id field in UDP traces to assist in debug.

CRs-Fixed: 3179386
Change-Id: Iebc0e796dc79d0faa31ccccfa05869901b13ddba
Signed-off-by: Subash Abhinov Kasiviswanathan <[email protected]>
Subash Abhinov Kasiviswanathan 3 anni fa
parent
commit
ca0f1abee9
3 ha cambiato i file con 17 aggiunte e 10 eliminazioni
  1. 3 1
      core/rmnet_descriptor.c
  2. 11 8
      core/rmnet_trace.h
  3. 3 1
      core/rmnet_vnd.c

+ 3 - 1
core/rmnet_descriptor.c

@@ -1054,6 +1054,7 @@ skip_trace_print_tcp_rx:
 
 	if (trace_print_udp_rx_enabled()) {
 		char saddr[INET6_ADDRSTRLEN], daddr[INET6_ADDRSTRLEN];
+		u16 ip_id = 0;
 
 		if (!frag_desc->hdrs_valid && !frag_desc->trans_len)
 			goto skip_trace_print_udp_rx;
@@ -1067,6 +1068,7 @@ skip_trace_print_tcp_rx:
 
 			snprintf(saddr, INET6_ADDRSTRLEN, "%pI4", &ip_hdr(head_skb)->saddr);
 			snprintf(daddr, INET6_ADDRSTRLEN, "%pI4", &ip_hdr(head_skb)->daddr);
+			ip_id = ntohs(ip_hdr(head_skb)->id);
 		}
 
 		if (head_skb->protocol == htons(ETH_P_IPV6)) {
@@ -1077,7 +1079,7 @@ skip_trace_print_tcp_rx:
 			snprintf(daddr, INET6_ADDRSTRLEN, "%pI6", &ipv6_hdr(head_skb)->daddr);
 		}
 
-		trace_print_udp_rx(head_skb, saddr, daddr, udp_hdr(head_skb));
+		trace_print_udp_rx(head_skb, saddr, daddr, udp_hdr(head_skb), ip_id);
 
 		rmnet_descriptor_trace_pfn(head_skb);
 	}

+ 11 - 8
core/rmnet_trace.h

@@ -265,9 +265,9 @@ DEFINE_EVENT
 DECLARE_EVENT_CLASS(print_udp,
 
 	TP_PROTO(struct sk_buff *skb, const char *saddr, const char *daddr,
-		 struct udphdr *uh),
+		 struct udphdr *uh, u16 ip_id),
 
-	TP_ARGS(skb, saddr, daddr, uh),
+	TP_ARGS(skb, saddr, daddr, uh, ip_id),
 
 	TP_STRUCT__entry(
 		__field(void *, skbaddr)
@@ -276,6 +276,7 @@ DECLARE_EVENT_CLASS(print_udp,
 		__string(daddr, daddr)
 		__field(__be16, source)
 		__field(__be16, dest)
+		__field(__be16, ip_id)
 	),
 
 	TP_fast_assign(
@@ -285,30 +286,32 @@ DECLARE_EVENT_CLASS(print_udp,
 		__assign_str(daddr, daddr);
 		__entry->source = uh->source;
 		__entry->dest = uh->dest;
+		__entry->ip_id = ip_id;
 	),
 
-	TP_printk("UDP: skbaddr=%pK, len=%d source=%s %u dest=%s %u",
+	TP_printk("UDP: skbaddr=%pK, len=%d source=%s %u dest=%s %u ip_id=%u",
 		__entry->skbaddr, __entry->len,
 		__get_str(saddr), be16_to_cpu(__entry->source),
-		__get_str(daddr), be16_to_cpu(__entry->dest))
+		__get_str(daddr), be16_to_cpu(__entry->dest),
+		__entry->ip_id)
 );
 
 DEFINE_EVENT
 	(print_udp, print_udp_tx,
 
 	TP_PROTO(struct sk_buff *skb, const char *saddr, const char *daddr,
-		 struct udphdr *uh),
+		 struct udphdr *uh, u16 ip_id),
 
-	TP_ARGS(skb, saddr, daddr, uh)
+	TP_ARGS(skb, saddr, daddr, uh, ip_id)
 );
 
 DEFINE_EVENT
 	(print_udp, print_udp_rx,
 
 	TP_PROTO(struct sk_buff *skb, const char *saddr, const char *daddr,
-		 struct udphdr *uh),
+		 struct udphdr *uh, u16 ip_id),
 
-	TP_ARGS(skb, saddr, daddr, uh)
+	TP_ARGS(skb, saddr, daddr, uh, ip_id)
 );
 
 TRACE_EVENT(print_pfn,

+ 3 - 1
core/rmnet_vnd.c

@@ -355,6 +355,7 @@ skip_trace_print_icmp_tx:
 skip_trace_print_tcp_tx:
 	if (trace_print_udp_tx_enabled()) {
 		char saddr[INET6_ADDRSTRLEN], daddr[INET6_ADDRSTRLEN];
+		u16 ip_id = 0;
 
 		memset(saddr, 0, INET6_ADDRSTRLEN);
 		memset(daddr, 0, INET6_ADDRSTRLEN);
@@ -365,6 +366,7 @@ skip_trace_print_tcp_tx:
 
 			snprintf(saddr, INET6_ADDRSTRLEN, "%pI4", &ip_hdr(skb)->saddr);
 			snprintf(daddr, INET6_ADDRSTRLEN, "%pI4", &ip_hdr(skb)->daddr);
+			ip_id = ntohs(ip_hdr(skb)->id);
 		}
 
 		if (skb->protocol == htons(ETH_P_IPV6)) {
@@ -375,7 +377,7 @@ skip_trace_print_tcp_tx:
 			snprintf(daddr, INET6_ADDRSTRLEN, "%pI6", &ipv6_hdr(skb)->daddr);
 		}
 
-		trace_print_udp_tx(skb, saddr, daddr, udp_hdr(skb));
+		trace_print_udp_tx(skb, saddr, daddr, udp_hdr(skb), ip_id);
 	}
 
 skip_trace_print_udp_tx: