diff --git a/perf/rmnet_perf_main.c b/perf/rmnet_perf_main.c index cbafeda337..9664af48e6 100644 --- a/perf/rmnet_perf_main.c +++ b/perf/rmnet_perf_main.c @@ -19,12 +19,13 @@ #include "rmnet_perf_tcp.h" #include "rmnet_perf_udp.h" MODULE_LICENSE("\x47\x50\x4c\x20\x76\x32");static char*verinfo[]={ -"\x34\x63\x39\x62\x35\x33\x33\x37","\x61\x33\x62\x61\x62\x64\x34\x30", -"\x37\x66\x30\x37\x38\x66\x39\x36","\x65\x35\x36\x63\x62\x35\x35\x64", -"\x65\x32\x31\x38\x66\x34\x35\x31","\x33\x39\x63\x62\x64\x37\x64\x35", -"\x37\x34\x31\x35\x39\x32\x31\x63","\x34\x64\x65\x34\x39\x64\x62\x35", -"\x62\x31\x63\x34\x34\x62\x34\x63"};module_param_array(verinfo,charp,NULL, -(0xcb7+5769-0x221c));MODULE_PARM_DESC(verinfo, +"\x35\x64\x63\x64\x64\x34\x63\x30","\x34\x63\x39\x62\x35\x33\x33\x37", +"\x61\x33\x62\x61\x62\x64\x34\x30","\x37\x66\x30\x37\x38\x66\x39\x36", +"\x65\x35\x36\x63\x62\x35\x35\x64","\x65\x32\x31\x38\x66\x34\x35\x31", +"\x33\x39\x63\x62\x64\x37\x64\x35","\x37\x34\x31\x35\x39\x32\x31\x63", +"\x34\x64\x65\x34\x39\x64\x62\x35","\x62\x31\x63\x34\x34\x62\x34\x63"}; +module_param_array(verinfo,charp,NULL,(0xcb7+5769-0x221c));MODULE_PARM_DESC( +verinfo, "\x56\x65\x72\x73\x69\x6f\x6e\x20\x6f\x66\x20\x74\x68\x65\x20\x64\x72\x69\x76\x65\x72" );static bool DATARMNETc03b668e4c=true;module_param_named(rmnet_perf_knob0, DATARMNETc03b668e4c,bool,(0xdb7+6665-0x261c));static bool DATARMNET21c7a3c377= diff --git a/perf/rmnet_perf_tcp.c b/perf/rmnet_perf_tcp.c index 5c70583794..75bee79d54 100644 --- a/perf/rmnet_perf_tcp.c +++ b/perf/rmnet_perf_tcp.c @@ -29,8 +29,8 @@ #define DATARMNET347bd5eb15 \ (const_ilog2(DATARMNET714c9c3081)) enum{DATARMNETe0e37fef7a,DATARMNETf354672897,DATARMNET9cc765a89e, -DATARMNETb03f9571a3,DATARMNET7797205f58,DATARMNETaa18c75b61,};struct -DATARMNET4b40fe9cd4{union{__be32 DATARMNETdfe430c2d6;struct in6_addr +DATARMNETb03f9571a3,DATARMNET53c8cfb28e,DATARMNET74f0a28fec,DATARMNETaa18c75b61, +};struct DATARMNET4b40fe9cd4{union{__be32 DATARMNETdfe430c2d6;struct in6_addr DATARMNET815cbb4bf5;};union{__be32 DATARMNET2cb607d686;struct in6_addr DATARMNETc3f31215b7;};union{struct{__be16 DATARMNET08e913477e;__be16 DATARMNETda7f7fa492;};u32 DATARMNET556bcfcf8f;};u8 DATARMNET0d956cc77a;};struct @@ -130,42 +130,45 @@ DATARMNET63b1a086d5)DATARMNET11a5f0fd38(DATARMNET63b1a086d5,DATARMNET543491eb0f, DATARMNETd147c14c0e);return DATARMNET63b1a086d5;}static void DATARMNET31a7673e56 (struct DATARMNETddbc1e5435*DATARMNET63b1a086d5,struct sk_buff* DATARMNET543491eb0f)__must_hold(RCU){struct sock*sk;if(DATARMNET543491eb0f->sk){ -sk=DATARMNET543491eb0f->sk;}else{struct rmnet_skb_cb*DATARMNET1ec4882bf7= -RMNET_SKB_CB(DATARMNET543491eb0f);DATARMNET32b91c8ae6(DATARMNETb03f9571a3); -DATARMNET63b1a086d5->DATARMNET55056146f6=true;DATARMNET1ec4882bf7->tethered=true -;return;}}static u32 DATARMNET62fb576113(struct sk_buff*DATARMNET543491eb0f){ -struct tcphdr*DATARMNET668416551c=tcp_hdr(DATARMNET543491eb0f);return -DATARMNET543491eb0f->len-((u8*)DATARMNET668416551c-DATARMNET543491eb0f->data)- -DATARMNET668416551c->doff*(0xd11+230-0xdf3);}static void DATARMNET55fda9e01e( -struct DATARMNETddbc1e5435*DATARMNET63b1a086d5,struct sk_buff* -DATARMNET543491eb0f,bool DATARMNETd147c14c0e)__must_hold(RCU){struct -rmnet_skb_cb*DATARMNET1ec4882bf7=RMNET_SKB_CB(DATARMNET543491eb0f);struct tcphdr -*DATARMNET668416551c=tcp_hdr(DATARMNET543491eb0f);u32 DATARMNETb1b0ee1b2d=ntohl( -DATARMNET668416551c->ack_seq);u32 DATARMNETb6ff6d25f8=READ_ONCE( -DATARMNET63b1a086d5->DATARMNETfef3675ce7);u32 DATARMNET91c1d5c029=READ_ONCE( -DATARMNET63b1a086d5->DATARMNET9076d335ab);u32 DATARMNET9445bc443c=READ_ONCE( -DATARMNET63b1a086d5->DATARMNET9a57846b4e);DATARMNET63b1a086d5-> -DATARMNET763f2e5fac=jiffies;if(DATARMNET63b1a086d5->DATARMNET55056146f6){ -DATARMNET1ec4882bf7->tethered=true;return;}if(DATARMNETd147c14c0e){if(after( -DATARMNETb1b0ee1b2d,DATARMNET91c1d5c029)){u32 DATARMNET4e557c82d6= -DATARMNETb6ff6d25f8-DATARMNETb1b0ee1b2d;if(DATARMNET4e557c82d6> -DATARMNET9445bc443c)DATARMNET31a7673e56(DATARMNET63b1a086d5,DATARMNET543491eb0f) -;WRITE_ONCE(DATARMNET63b1a086d5->DATARMNET9076d335ab,DATARMNETb1b0ee1b2d);}}} -void DATARMNET9250714999(struct sk_buff*DATARMNET543491eb0f){struct -DATARMNET4b40fe9cd4 DATARMNET3396919a68={};struct DATARMNETddbc1e5435* -DATARMNET63b1a086d5;struct tcphdr*DATARMNET668416551c;u32 DATARMNETd660a1a629;if -(!skb_transport_header_was_set(DATARMNET543491eb0f)||DATARMNET543491eb0f-> -ip_summed==CHECKSUM_NONE)return;DATARMNET668416551c=tcp_hdr(DATARMNET543491eb0f) -;if(DATARMNET668416551c->syn)return;DATARMNETd660a1a629=DATARMNET62fb576113( -DATARMNET543491eb0f);if(!DATARMNETd660a1a629&&DATARMNET668416551c->ack)return; -DATARMNET3396919a68.DATARMNET08e913477e=DATARMNET668416551c->source; -DATARMNET3396919a68.DATARMNETda7f7fa492=DATARMNET668416551c->dest;if( -DATARMNET543491eb0f->protocol==htons(ETH_P_IP)){struct iphdr*DATARMNET86f1f2cdc9 -=ip_hdr(DATARMNET543491eb0f);DATARMNET3396919a68.DATARMNETdfe430c2d6= -DATARMNET86f1f2cdc9->saddr;DATARMNET3396919a68.DATARMNET2cb607d686= -DATARMNET86f1f2cdc9->daddr;DATARMNET3396919a68.DATARMNET0d956cc77a= -(0xd11+230-0xdf3);}else{struct ipv6hdr*DATARMNETbf55123e5b=ipv6_hdr( -DATARMNET543491eb0f);memcpy(&DATARMNET3396919a68.DATARMNET815cbb4bf5,& +sk=DATARMNET543491eb0f->sk;if(sk_fullsock(sk)){if(sk->sk_state==TCP_ESTABLISHED +&&!sock_flag(sk,SOCK_DEAD)&&!sk_unhashed(sk)&&sk->sk_shutdown!=SHUTDOWN_MASK){ +inet_csk(sk)->icsk_ack.pending|=ICSK_ACK_NOW;DATARMNET63b1a086d5-> +DATARMNETb8fc35ed64++;DATARMNET32b91c8ae6(DATARMNET74f0a28fec);}}return;}else{ +struct rmnet_skb_cb*DATARMNET1ec4882bf7=RMNET_SKB_CB(DATARMNET543491eb0f); +DATARMNET32b91c8ae6(DATARMNETb03f9571a3);DATARMNET63b1a086d5-> +DATARMNET55056146f6=true;DATARMNET1ec4882bf7->tethered=true;return;}}static u32 +DATARMNET62fb576113(struct sk_buff*DATARMNET543491eb0f){struct tcphdr* +DATARMNET668416551c=tcp_hdr(DATARMNET543491eb0f);return DATARMNET543491eb0f->len +-((u8*)DATARMNET668416551c-DATARMNET543491eb0f->data)-DATARMNET668416551c->doff* +(0xd11+230-0xdf3);}static void DATARMNET55fda9e01e(struct DATARMNETddbc1e5435* +DATARMNET63b1a086d5,struct sk_buff*DATARMNET543491eb0f,bool DATARMNETd147c14c0e) +__must_hold(RCU){struct rmnet_skb_cb*DATARMNET1ec4882bf7=RMNET_SKB_CB( +DATARMNET543491eb0f);struct tcphdr*DATARMNET668416551c=tcp_hdr( +DATARMNET543491eb0f);u32 DATARMNETb1b0ee1b2d=ntohl(DATARMNET668416551c->ack_seq) +;u32 DATARMNETb6ff6d25f8=READ_ONCE(DATARMNET63b1a086d5->DATARMNETfef3675ce7);u32 + DATARMNET91c1d5c029=READ_ONCE(DATARMNET63b1a086d5->DATARMNET9076d335ab);u32 +DATARMNET9445bc443c=READ_ONCE(DATARMNET63b1a086d5->DATARMNET9a57846b4e); +DATARMNET63b1a086d5->DATARMNET763f2e5fac=jiffies;if(DATARMNET63b1a086d5-> +DATARMNET55056146f6){DATARMNET1ec4882bf7->tethered=true;return;}if( +DATARMNETd147c14c0e){if(after(DATARMNETb1b0ee1b2d,DATARMNET91c1d5c029)){u32 +DATARMNET4e557c82d6=DATARMNETb6ff6d25f8-DATARMNETb1b0ee1b2d;if( +DATARMNET4e557c82d6>DATARMNET9445bc443c)DATARMNET31a7673e56(DATARMNET63b1a086d5, +DATARMNET543491eb0f);WRITE_ONCE(DATARMNET63b1a086d5->DATARMNET9076d335ab, +DATARMNETb1b0ee1b2d);}}}void DATARMNET9250714999(struct sk_buff* +DATARMNET543491eb0f){struct DATARMNET4b40fe9cd4 DATARMNET3396919a68={};struct +DATARMNETddbc1e5435*DATARMNET63b1a086d5;struct tcphdr*DATARMNET668416551c;u32 +DATARMNETd660a1a629;if(!skb_transport_header_was_set(DATARMNET543491eb0f)|| +DATARMNET543491eb0f->ip_summed==CHECKSUM_NONE)return;DATARMNET668416551c=tcp_hdr +(DATARMNET543491eb0f);if(DATARMNET668416551c->syn)return;DATARMNETd660a1a629= +DATARMNET62fb576113(DATARMNET543491eb0f);if(!DATARMNETd660a1a629&& +DATARMNET668416551c->ack)return;DATARMNET3396919a68.DATARMNET08e913477e= +DATARMNET668416551c->source;DATARMNET3396919a68.DATARMNETda7f7fa492= +DATARMNET668416551c->dest;if(DATARMNET543491eb0f->protocol==htons(ETH_P_IP)){ +struct iphdr*DATARMNET86f1f2cdc9=ip_hdr(DATARMNET543491eb0f);DATARMNET3396919a68 +.DATARMNETdfe430c2d6=DATARMNET86f1f2cdc9->saddr;DATARMNET3396919a68. +DATARMNET2cb607d686=DATARMNET86f1f2cdc9->daddr;DATARMNET3396919a68. +DATARMNET0d956cc77a=(0xd11+230-0xdf3);}else{struct ipv6hdr*DATARMNETbf55123e5b= +ipv6_hdr(DATARMNET543491eb0f);memcpy(&DATARMNET3396919a68.DATARMNET815cbb4bf5,& DATARMNETbf55123e5b->saddr,sizeof(DATARMNETbf55123e5b->saddr));memcpy(& DATARMNET3396919a68.DATARMNETc3f31215b7,&DATARMNETbf55123e5b->daddr,sizeof( DATARMNETbf55123e5b->daddr));DATARMNET3396919a68.DATARMNET0d956cc77a=