net: rmnet_data: Optimize the UL aggregation skip logic
Optimize for the IPv6 normal ping case instead of the fragmentation scenario. Also, check for IPv6 explicitly rather than directly disecting the packet. CRs-Fixed: 2131879 Change-Id: Idee5c7d52972d06aee6ac6d71ebd5d1c3c875f9f Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
This commit is contained in:
parent
fc9ce0e0a1
commit
b7500cc99f
1 changed files with 4 additions and 4 deletions
|
|
@ -753,18 +753,18 @@ int rmnet_ul_aggregation_skip(struct sk_buff *skb, int offset)
|
|||
|
||||
if (ip4h->protocol == IPPROTO_ICMP)
|
||||
is_icmp = 1;
|
||||
} else {
|
||||
} else if ((skb->data[offset]) >> 4 == 0x06) {
|
||||
struct ipv6hdr *ip6h = (struct ipv6hdr *)(packet_start);
|
||||
|
||||
if (ip6h->nexthdr == NEXTHDR_FRAGMENT) {
|
||||
if (ip6h->nexthdr == IPPROTO_ICMPV6) {
|
||||
is_icmp = 1;
|
||||
} else if (ip6h->nexthdr == NEXTHDR_FRAGMENT) {
|
||||
struct frag_hdr *frag;
|
||||
|
||||
frag = (struct frag_hdr *)(packet_start
|
||||
+ sizeof(struct ipv6hdr));
|
||||
if (frag->nexthdr == IPPROTO_ICMPV6)
|
||||
is_icmp = 1;
|
||||
} else if (ip6h->nexthdr == IPPROTO_ICMPV6) {
|
||||
is_icmp = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue