diff --git a/offload/rmnet_offload_engine.c b/offload/rmnet_offload_engine.c index ff75b7ec54..1bd76a071a 100644 --- a/offload/rmnet_offload_engine.c +++ b/offload/rmnet_offload_engine.c @@ -28,10 +28,10 @@ DATARMNET1993bae165(u8 DATARMNET06d2413ad2){struct DATARMNETd7c9631acd* DATARMNET7c382e536d;int DATARMNETae0201901a;u32 DATARMNET737bbd41c3= (0xd2d+202-0xdf7);hash_for_each(DATARMNET4791268d67,DATARMNETae0201901a, DATARMNET7c382e536d,DATARMNETbd5d7d96d8){if(DATARMNET7c382e536d-> -DATARMNET1db11fa85e&&DATARMNET7c382e536d->DATARMNET550ca047ee== -DATARMNET06d2413ad2){DATARMNET737bbd41c3++;DATARMNETa3055c21f2( -DATARMNET7c382e536d);}}return DATARMNET737bbd41c3;}static bool -DATARMNET2013036d80(u8 DATARMNET06d2413ad2){u64 DATARMNET3924f3f9e3; +DATARMNET1db11fa85e&&DATARMNET7c382e536d->DATARMNET78fd20ce0e. +DATARMNET7fa8b2acbf==DATARMNET06d2413ad2){DATARMNET737bbd41c3++; +DATARMNETa3055c21f2(DATARMNET7c382e536d);}}return DATARMNET737bbd41c3;}static +bool DATARMNET2013036d80(u8 DATARMNET06d2413ad2){u64 DATARMNET3924f3f9e3; DATARMNET3924f3f9e3=DATARMNETf1d1b8287f(DATARMNET6d2ed4b822);if( DATARMNET3924f3f9e3==DATARMNET2d89680280)return true;if(DATARMNET3924f3f9e3== DATARMNET03daf91a60&&DATARMNET06d2413ad2==DATARMNETfd5c3d30e5)return true;if( @@ -39,48 +39,42 @@ DATARMNET3924f3f9e3==DATARMNET88a9920663&&DATARMNET06d2413ad2== DATARMNETa656f324b2)return true;return false;}static bool DATARMNET5a0f9fc3a2( struct DATARMNETd7c9631acd*DATARMNETaa568481cf,struct DATARMNETd812bcdbb5* DATARMNET5fe4c722a8){if(!DATARMNETaa568481cf->DATARMNET1db11fa85e)return false; -if(DATARMNET5fe4c722a8->DATARMNETaebe0581f2==(0xd11+230-0xdf3)){struct -DATARMNET308c06fca6*DATARMNET699c2c62cd,*DATARMNET8814564ab9;DATARMNET699c2c62cd -=DATARMNETaa568481cf->DATARMNETc1529262df;DATARMNET8814564ab9= -DATARMNET5fe4c722a8->DATARMNET1469d7a840;if(DATARMNET699c2c62cd-> -DATARMNET1eb6c27583^DATARMNET8814564ab9->DATARMNET1eb6c27583|| -DATARMNET699c2c62cd->DATARMNET03e081f69f^DATARMNET8814564ab9-> -DATARMNET03e081f69f||DATARMNET699c2c62cd->DATARMNET2c091223da^ -DATARMNET8814564ab9->DATARMNET2c091223da||DATARMNET699c2c62cd-> -DATARMNET610d06a887^DATARMNET8814564ab9->DATARMNET610d06a887)return true;}else -if(DATARMNET5fe4c722a8->DATARMNETaebe0581f2==(0xd03+244-0xdf1)){__be32 -DATARMNET25ffacbec5,DATARMNETb351dd927f;__be32 DATARMNET9422f16113; -DATARMNET25ffacbec5=DATARMNETaa568481cf->DATARMNET6f0af6e7b3-> -DATARMNET0687f7ecdc;DATARMNETb351dd927f=DATARMNET5fe4c722a8->DATARMNET5559b05582 -->DATARMNET0687f7ecdc;DATARMNET9422f16113=DATARMNET25ffacbec5^ -DATARMNETb351dd927f;if(DATARMNET9422f16113&htonl(267386880))return true;}return -false;}static bool DATARMNET6895620058(struct DATARMNETd7c9631acd* -DATARMNETaa568481cf,struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){__be16 -DATARMNETe085e1d838,DATARMNET487536824f,DATARMNETa664f6ed60,DATARMNET49b96367a2; -if(!DATARMNETaa568481cf->DATARMNET1db11fa85e)return DATARMNETaa568481cf-> -DATARMNET381f1cadc4==DATARMNET5fe4c722a8->DATARMNET645e8912b8;if( -DATARMNETaa568481cf->DATARMNET550ca047ee!=DATARMNET5fe4c722a8-> -DATARMNET098910da0f)return false;DATARMNETe085e1d838=DATARMNETaa568481cf-> -DATARMNET8600531f31->DATARMNET1b1c406ae9;DATARMNETa664f6ed60=DATARMNETaa568481cf -->DATARMNET8600531f31->DATARMNETdf0e8545ee;DATARMNET487536824f= -DATARMNET5fe4c722a8->DATARMNET0da3c8035d->DATARMNET1b1c406ae9; -DATARMNET49b96367a2=DATARMNET5fe4c722a8->DATARMNET0da3c8035d-> -DATARMNETdf0e8545ee;if(DATARMNETe085e1d838^DATARMNET487536824f|| -DATARMNETa664f6ed60^DATARMNET49b96367a2)return false;if(DATARMNET5fe4c722a8-> -DATARMNETaebe0581f2==(0xd11+230-0xdf3)){struct DATARMNET308c06fca6* -DATARMNET699c2c62cd,*DATARMNET8814564ab9;DATARMNET699c2c62cd=DATARMNETaa568481cf -->DATARMNETc1529262df;DATARMNET8814564ab9=DATARMNET5fe4c722a8-> -DATARMNET1469d7a840;if(DATARMNET699c2c62cd->DATARMNET9bbd2ca483^ -DATARMNET8814564ab9->DATARMNET9bbd2ca483||DATARMNET699c2c62cd-> -DATARMNET11ef55b2bb^DATARMNET8814564ab9->DATARMNET11ef55b2bb)return false;}else -if(DATARMNET5fe4c722a8->DATARMNETaebe0581f2==(0xd03+244-0xdf1)){struct -DATARMNET64bb8f616e*DATARMNET699c2c62cd,*DATARMNET8814564ab9;DATARMNET699c2c62cd -=DATARMNETaa568481cf->DATARMNET6f0af6e7b3;DATARMNET8814564ab9= -DATARMNET5fe4c722a8->DATARMNET5559b05582;if(memcmp(DATARMNET699c2c62cd-> -DATARMNET31202449fc,DATARMNET8814564ab9->DATARMNET31202449fc,sizeof( -DATARMNET8814564ab9->DATARMNET31202449fc))||memcmp(DATARMNET699c2c62cd-> -DATARMNETc657c0a139,DATARMNET8814564ab9->DATARMNETc657c0a139,sizeof( -DATARMNET8814564ab9->DATARMNETc657c0a139)))return false;}else{return false;} +if(DATARMNET5fe4c722a8->DATARMNET144d119066.DATARMNET388842c721== +(0xd11+230-0xdf3)){struct DATARMNET4287f07234*DATARMNET699c2c62cd,* +DATARMNET8814564ab9;DATARMNET699c2c62cd=&DATARMNETaa568481cf-> +DATARMNET78fd20ce0e;DATARMNET8814564ab9=&DATARMNET5fe4c722a8-> +DATARMNET144d119066;if(DATARMNET699c2c62cd->DATARMNET19b03754c4^ +DATARMNET8814564ab9->DATARMNET19b03754c4||DATARMNET699c2c62cd-> +DATARMNET57bf608183^DATARMNET8814564ab9->DATARMNET57bf608183|| +DATARMNET699c2c62cd->DATARMNETcf915688f5^DATARMNET8814564ab9-> +DATARMNETcf915688f5||DATARMNET699c2c62cd->DATARMNET4ca5ac9de1^ +DATARMNET8814564ab9->DATARMNET4ca5ac9de1)return true;}else if( +DATARMNET5fe4c722a8->DATARMNET144d119066.DATARMNET388842c721==(0xd03+244-0xdf1)) +{__be32 DATARMNET25ffacbec5,DATARMNETb351dd927f;__be32 DATARMNET9422f16113; +DATARMNET25ffacbec5=DATARMNETaa568481cf->DATARMNET78fd20ce0e.DATARMNETabd58f7f89 +;DATARMNETb351dd927f=DATARMNET5fe4c722a8->DATARMNET144d119066. +DATARMNETabd58f7f89;;DATARMNET9422f16113=DATARMNET25ffacbec5^DATARMNETb351dd927f +;if(DATARMNET9422f16113&htonl(267386880))return true;}return false;}static bool +DATARMNET6895620058(struct DATARMNETd7c9631acd*DATARMNETaa568481cf,struct +DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){struct DATARMNET4287f07234* +DATARMNET699c2c62cd,*DATARMNET8814564ab9;DATARMNET699c2c62cd=& +DATARMNETaa568481cf->DATARMNET78fd20ce0e;DATARMNET8814564ab9=& +DATARMNET5fe4c722a8->DATARMNET144d119066;if(!DATARMNETaa568481cf-> +DATARMNET1db11fa85e)return DATARMNETaa568481cf->DATARMNET381f1cadc4== +DATARMNET5fe4c722a8->DATARMNET645e8912b8;if(DATARMNET699c2c62cd-> +DATARMNET7fa8b2acbf!=DATARMNET8814564ab9->DATARMNET7fa8b2acbf)return false;if( +DATARMNET699c2c62cd->DATARMNETa60d2ae3f6^DATARMNET8814564ab9-> +DATARMNETa60d2ae3f6||DATARMNET699c2c62cd->DATARMNET5e7452ec23^ +DATARMNET8814564ab9->DATARMNET5e7452ec23)return false;if(DATARMNET8814564ab9-> +DATARMNET388842c721==(0xd11+230-0xdf3)){if(DATARMNET699c2c62cd-> +DATARMNET1a2be7b6c2^DATARMNET8814564ab9->DATARMNET1a2be7b6c2|| +DATARMNET699c2c62cd->DATARMNET0a28fa80f4^DATARMNET8814564ab9-> +DATARMNET0a28fa80f4)return false;}else if(DATARMNET8814564ab9-> +DATARMNET388842c721==(0xd03+244-0xdf1)){if(memcmp(DATARMNET699c2c62cd-> +DATARMNET949c2754de,DATARMNET8814564ab9->DATARMNET949c2754de,sizeof( +DATARMNET8814564ab9->DATARMNET949c2754de))||memcmp(DATARMNET699c2c62cd-> +DATARMNET45ec858bc5,DATARMNET8814564ab9->DATARMNET45ec858bc5,sizeof( +DATARMNET8814564ab9->DATARMNET45ec858bc5)))return false;}else{return false;} return true;}static struct DATARMNETd7c9631acd*DATARMNETd41def0046(void){struct DATARMNET70f3b87b5d*DATARMNETe05748b000=DATARMNETc2a630b113();struct DATARMNET907d58c807*DATARMNETa6f73cbe10;struct DATARMNETd7c9631acd* @@ -111,22 +105,23 @@ DATARMNETbad3b5165e(DATARMNETddf572458d,DATARMNET737bbd41c3);return (0xd2d+202-0xdf7);}void DATARMNETa3055c21f2(struct DATARMNETd7c9631acd* DATARMNETaa568481cf){struct DATARMNET70f3b87b5d*DATARMNETe05748b000= DATARMNETc2a630b113();struct rmnet_frag_descriptor*DATARMNETd74aeaa49a,* -DATARMNETa1625e27e2,*DATARMNET0386f6f82a;u32 DATARMNETf333d55b33= -DATARMNETaa568481cf->DATARMNETcf28ae376b+DATARMNETaa568481cf-> -DATARMNETac72629d22+DATARMNETaa568481cf->DATARMNET3f4e88ab44;if(! -DATARMNETaa568481cf->DATARMNET1db11fa85e)return;DATARMNETd74aeaa49a= -list_first_entry(&DATARMNETaa568481cf->DATARMNETb76b79d0d5,struct -rmnet_frag_descriptor,list);if(!DATARMNETd74aeaa49a->gso_segs) -DATARMNETd74aeaa49a->gso_segs=(0xd26+209-0xdf6);DATARMNETd74aeaa49a->gso_size= -DATARMNETaa568481cf->DATARMNET1978d5d8de;DATARMNETa1625e27e2=DATARMNETd74aeaa49a -;list_for_each_entry_safe_continue(DATARMNETa1625e27e2,DATARMNET0386f6f82a,& -DATARMNETaa568481cf->DATARMNETb76b79d0d5,list){if(DATARMNETa1625e27e2->hdr_ptr== -rmnet_frag_data_ptr(DATARMNETa1625e27e2)){if(!rmnet_frag_pull( -DATARMNETa1625e27e2,DATARMNETe05748b000->DATARMNET403589239f,DATARMNETaa568481cf -->DATARMNETac72629d22+DATARMNETaa568481cf->DATARMNET3f4e88ab44))continue;} -list_del(&DATARMNETa1625e27e2->list);list_add_tail(&DATARMNETa1625e27e2->list,& -DATARMNETd74aeaa49a->sub_frags);DATARMNETd74aeaa49a->gso_segs+=( -DATARMNETa1625e27e2->gso_segs)?:(0xd26+209-0xdf6);}DATARMNETd74aeaa49a->hash= +DATARMNETa1625e27e2,*DATARMNET0386f6f82a;struct DATARMNET4287f07234* +DATARMNET699c2c62cd=&DATARMNETaa568481cf->DATARMNET78fd20ce0e;u32 +DATARMNET567bdc7221=DATARMNET699c2c62cd->DATARMNET4ca5ac9de1+DATARMNET699c2c62cd +->DATARMNET0aeee57ceb;u32 DATARMNETf333d55b33=DATARMNETaa568481cf-> +DATARMNETcf28ae376b+DATARMNET567bdc7221;if(!DATARMNETaa568481cf-> +DATARMNET1db11fa85e)return;DATARMNETd74aeaa49a=list_first_entry(& +DATARMNETaa568481cf->DATARMNETb76b79d0d5,struct rmnet_frag_descriptor,list);if(! +DATARMNETd74aeaa49a->gso_segs)DATARMNETd74aeaa49a->gso_segs=(0xd26+209-0xdf6); +DATARMNETd74aeaa49a->gso_size=DATARMNETaa568481cf->DATARMNET1978d5d8de; +DATARMNETa1625e27e2=DATARMNETd74aeaa49a;list_for_each_entry_safe_continue( +DATARMNETa1625e27e2,DATARMNET0386f6f82a,&DATARMNETaa568481cf-> +DATARMNETb76b79d0d5,list){u32 DATARMNET904423d5e4=DATARMNETa1625e27e2->len- +DATARMNET567bdc7221;if(!rmnet_frag_descriptor_add_frags_from(DATARMNETd74aeaa49a +,DATARMNETa1625e27e2,DATARMNET567bdc7221,DATARMNET904423d5e4)) +DATARMNETd74aeaa49a->gso_segs+=(DATARMNETa1625e27e2->gso_segs)?: +(0xd26+209-0xdf6);rmnet_recycle_frag_descriptor(DATARMNETa1625e27e2, +DATARMNETe05748b000->DATARMNET403589239f);}DATARMNETd74aeaa49a->hash= DATARMNETaa568481cf->DATARMNET381f1cadc4;DATARMNET58a244b2fe(DATARMNETd74aeaa49a ,DATARMNETf333d55b33);DATARMNETaa568481cf->DATARMNET1db11fa85e=(0xd2d+202-0xdf7) ;DATARMNETaa568481cf->DATARMNETcf28ae376b=(0xd2d+202-0xdf7);}void @@ -142,54 +137,44 @@ DATARMNETaa568481cf->DATARMNET1db11fa85e)DATARMNETa3055c21f2(DATARMNETaa568481cf DATARMNETa3055c21f2(DATARMNETaa568481cf);}}return DATARMNET737bbd41c3;}void DATARMNET33aa5df9ef(struct DATARMNETd7c9631acd*DATARMNETaa568481cf,struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){if(DATARMNET5fe4c722a8-> -DATARMNETf1b6b0a6cc){DATARMNETaa568481cf->DATARMNET7e15783110= -DATARMNET5fe4c722a8->DATARMNETaebe0581f2;DATARMNETaa568481cf-> -DATARMNETac72629d22=DATARMNET5fe4c722a8->DATARMNETbecebb23ac;DATARMNETaa568481cf -->DATARMNETc1529262df=DATARMNET5fe4c722a8->DATARMNET1469d7a840; -DATARMNETaa568481cf->DATARMNET550ca047ee=DATARMNET5fe4c722a8-> -DATARMNET098910da0f;DATARMNETaa568481cf->DATARMNET3f4e88ab44=DATARMNET5fe4c722a8 -->DATARMNET0ab9b2ce3b;DATARMNETaa568481cf->DATARMNET8cd2f78e4f= -DATARMNET5fe4c722a8->DATARMNET96c6c71653;DATARMNETaa568481cf-> -DATARMNET381f1cadc4=DATARMNET5fe4c722a8->DATARMNET645e8912b8;DATARMNETaa568481cf -->DATARMNET1978d5d8de=(DATARMNET5fe4c722a8->DATARMNET719f68fb88->gso_size)?: -DATARMNET5fe4c722a8->DATARMNET1ef22e4c76;if(DATARMNET5fe4c722a8-> -DATARMNET098910da0f==DATARMNETfd5c3d30e5){__be32 DATARMNET0849981c7c;if( -DATARMNET5fe4c722a8->DATARMNET719f68fb88->tcp_seq_set)DATARMNET0849981c7c= -DATARMNET5fe4c722a8->DATARMNET719f68fb88->tcp_seq;else DATARMNET0849981c7c= -DATARMNET5fe4c722a8->DATARMNET96c6c71653->DATARMNETb3e70104e0; -DATARMNETaa568481cf->DATARMNETd3a1a2b9b5=ntohl(DATARMNET0849981c7c);}}if( -DATARMNET5fe4c722a8->DATARMNET098910da0f==DATARMNETfd5c3d30e5) -DATARMNETaa568481cf->DATARMNETd3a1a2b9b5+=DATARMNET5fe4c722a8-> +DATARMNETf1b6b0a6cc){memcpy(&DATARMNETaa568481cf->DATARMNET78fd20ce0e,& +DATARMNET5fe4c722a8->DATARMNET144d119066,sizeof(DATARMNETaa568481cf-> +DATARMNET78fd20ce0e));DATARMNETaa568481cf->DATARMNET381f1cadc4= +DATARMNET5fe4c722a8->DATARMNET645e8912b8;DATARMNETaa568481cf-> +DATARMNET1978d5d8de=(DATARMNET5fe4c722a8->DATARMNET719f68fb88->gso_size)?: +DATARMNET5fe4c722a8->DATARMNET1ef22e4c76;}if(DATARMNET5fe4c722a8-> +DATARMNET144d119066.DATARMNET7fa8b2acbf==DATARMNETfd5c3d30e5)DATARMNETaa568481cf +->DATARMNET78fd20ce0e.DATARMNETbc28a5970f+=DATARMNET5fe4c722a8-> DATARMNET1ef22e4c76;list_add_tail(&DATARMNET5fe4c722a8->DATARMNET719f68fb88-> list,&DATARMNETaa568481cf->DATARMNETb76b79d0d5);DATARMNETaa568481cf-> DATARMNET1db11fa85e++;DATARMNETaa568481cf->DATARMNETcf28ae376b+= DATARMNET5fe4c722a8->DATARMNET1ef22e4c76;}bool DATARMNETfbf5798e15(struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){struct DATARMNETd7c9631acd* -DATARMNETaa568481cf;bool DATARMNET885970f252=false;if(!DATARMNET2013036d80( -DATARMNET5fe4c722a8->DATARMNET098910da0f)){DATARMNETa00cda79d0( +DATARMNETaa568481cf;bool DATARMNET885970f252=false;u8 DATARMNET9695aa5b1d= +DATARMNET5fe4c722a8->DATARMNET144d119066.DATARMNET7fa8b2acbf;if(! +DATARMNET2013036d80(DATARMNET9695aa5b1d)){DATARMNETa00cda79d0( DATARMNET6a894ab63d);return false;}hash_for_each_possible(DATARMNET4791268d67, DATARMNETaa568481cf,DATARMNETbd5d7d96d8,DATARMNET5fe4c722a8->DATARMNET645e8912b8 ){bool DATARMNET2dd83daa1c;if(!DATARMNET6895620058(DATARMNETaa568481cf, DATARMNET5fe4c722a8))continue;DATARMNETc6f994577c:DATARMNET2dd83daa1c= DATARMNET5a0f9fc3a2(DATARMNETaa568481cf,DATARMNET5fe4c722a8);DATARMNET5fe4c722a8 -->DATARMNETf1b6b0a6cc=true;DATARMNET885970f252=true;switch(DATARMNET5fe4c722a8-> -DATARMNET098910da0f){case DATARMNETfd5c3d30e5:return DATARMNET4c7cdc25b7( -DATARMNETaa568481cf,DATARMNET5fe4c722a8,DATARMNET2dd83daa1c);case -DATARMNETa656f324b2:return DATARMNET8dc47eb7af(DATARMNETaa568481cf, -DATARMNET5fe4c722a8,DATARMNET2dd83daa1c);default:return false;}}if(! -DATARMNET885970f252){DATARMNETaa568481cf=DATARMNETd41def0046(); -DATARMNETaa568481cf->DATARMNET381f1cadc4=DATARMNET5fe4c722a8-> -DATARMNET645e8912b8;hash_add(DATARMNET4791268d67,&DATARMNETaa568481cf-> -DATARMNETbd5d7d96d8,DATARMNETaa568481cf->DATARMNET381f1cadc4);goto -DATARMNETc6f994577c;}return false;}void DATARMNETb98b78b8e3(void){struct -DATARMNETd7c9631acd*DATARMNETaa568481cf;struct hlist_node*DATARMNET0386f6f82a; -int DATARMNETae0201901a;hash_for_each_safe(DATARMNET4791268d67, -DATARMNETae0201901a,DATARMNET0386f6f82a,DATARMNETaa568481cf,DATARMNETbd5d7d96d8) -hash_del(&DATARMNETaa568481cf->DATARMNETbd5d7d96d8);}int DATARMNETdbcaf01255( -void){struct DATARMNET70f3b87b5d*DATARMNETe05748b000=DATARMNETc2a630b113();u8 -DATARMNETefc9df3df2;for(DATARMNETefc9df3df2=(0xd2d+202-0xdf7); -DATARMNETefc9df3df2DATARMNETebb45c8d86.DATARMNET2846a01cce[DATARMNETefc9df3df2];INIT_LIST_HEAD(& -DATARMNETaa568481cf->DATARMNETb76b79d0d5);INIT_HLIST_NODE(&DATARMNETaa568481cf-> -DATARMNETbd5d7d96d8);}return DATARMNET0529bb9c4e;} +->DATARMNETf1b6b0a6cc=true;DATARMNET885970f252=true;switch(DATARMNET9695aa5b1d){ +case DATARMNETfd5c3d30e5:return DATARMNET4c7cdc25b7(DATARMNETaa568481cf, +DATARMNET5fe4c722a8,DATARMNET2dd83daa1c);case DATARMNETa656f324b2:return +DATARMNET8dc47eb7af(DATARMNETaa568481cf,DATARMNET5fe4c722a8,DATARMNET2dd83daa1c) +;default:return false;}}if(!DATARMNET885970f252){DATARMNETaa568481cf= +DATARMNETd41def0046();DATARMNETaa568481cf->DATARMNET381f1cadc4= +DATARMNET5fe4c722a8->DATARMNET645e8912b8;hash_add(DATARMNET4791268d67,& +DATARMNETaa568481cf->DATARMNETbd5d7d96d8,DATARMNETaa568481cf-> +DATARMNET381f1cadc4);goto DATARMNETc6f994577c;}return false;}void +DATARMNETb98b78b8e3(void){struct DATARMNETd7c9631acd*DATARMNETaa568481cf;struct +hlist_node*DATARMNET0386f6f82a;int DATARMNETae0201901a;hash_for_each_safe( +DATARMNET4791268d67,DATARMNETae0201901a,DATARMNET0386f6f82a,DATARMNETaa568481cf, +DATARMNETbd5d7d96d8)hash_del(&DATARMNETaa568481cf->DATARMNETbd5d7d96d8);}int +DATARMNETdbcaf01255(void){struct DATARMNET70f3b87b5d*DATARMNETe05748b000= +DATARMNETc2a630b113();u8 DATARMNETefc9df3df2;for(DATARMNETefc9df3df2= +(0xd2d+202-0xdf7);DATARMNETefc9df3df2DATARMNETebb45c8d86.DATARMNET2846a01cce[DATARMNETefc9df3df2 +];INIT_LIST_HEAD(&DATARMNETaa568481cf->DATARMNETb76b79d0d5);INIT_HLIST_NODE(& +DATARMNETaa568481cf->DATARMNETbd5d7d96d8);}return DATARMNET0529bb9c4e;} diff --git a/offload/rmnet_offload_engine.h b/offload/rmnet_offload_engine.h index 4bec62eccc..9bd8e1e7b0 100644 --- a/offload/rmnet_offload_engine.h +++ b/offload/rmnet_offload_engine.h @@ -19,20 +19,17 @@ enum{DATARMNET7af645849a,DATARMNETb0bd5db24d,DATARMNET0413b43080,};enum{ DATARMNETa2ddeec85f,DATARMNET2d89680280=DATARMNETa2ddeec85f,DATARMNET03daf91a60, DATARMNET88a9920663,DATARMNET5fe3af8828,DATARMNETaccb69cf16=DATARMNET5fe3af8828, };struct DATARMNETd7c9631acd{struct hlist_node DATARMNETbd5d7d96d8;struct -list_head DATARMNETb76b79d0d5;union{struct DATARMNET308c06fca6* -DATARMNETc1529262df;struct DATARMNET64bb8f616e*DATARMNET6f0af6e7b3;};union{ -struct DATARMNETd2991e8952*DATARMNET8cd2f78e4f;struct DATARMNET0b82084e89* -DATARMNET8600531f31;};u32 DATARMNET381f1cadc4;u16 DATARMNETcf28ae376b;u16 -DATARMNETac72629d22;u16 DATARMNET3f4e88ab44;u8 DATARMNET7e15783110;u8 -DATARMNET550ca047ee;u32 DATARMNETd3a1a2b9b5;u16 DATARMNET1978d5d8de;u8 -DATARMNET1db11fa85e;};struct DATARMNET907d58c807{struct DATARMNETd7c9631acd -DATARMNET2846a01cce[DATARMNET78d9393ac8];u8 DATARMNET8dfc11cccd;u8 -DATARMNET57d435b225;};void DATARMNETd4230b6bfe(void);void DATARMNET560e127137( -void);int DATARMNET241493ab9a(u64 DATARMNET0470698d6c,u64 DATARMNETfeff65e096); -void DATARMNETa3055c21f2(struct DATARMNETd7c9631acd*DATARMNETaa568481cf);void -DATARMNETc38c135c9f(u32 DATARMNET3f8cc6fc24);u32 DATARMNETae70636c90(void);void -DATARMNET33aa5df9ef(struct DATARMNETd7c9631acd*DATARMNETaa568481cf,struct -DATARMNETd812bcdbb5*DATARMNET5fe4c722a8);bool DATARMNETfbf5798e15(struct -DATARMNETd812bcdbb5*DATARMNET5fe4c722a8);void DATARMNETb98b78b8e3(void);int -DATARMNETdbcaf01255(void); +list_head DATARMNETb76b79d0d5;struct DATARMNET4287f07234 DATARMNET78fd20ce0e;u32 + DATARMNET381f1cadc4;u16 DATARMNETcf28ae376b;u32 DATARMNETd3a1a2b9b5;u16 +DATARMNET1978d5d8de;u8 DATARMNET1db11fa85e;};struct DATARMNET907d58c807{struct +DATARMNETd7c9631acd DATARMNET2846a01cce[DATARMNET78d9393ac8];u8 +DATARMNET8dfc11cccd;u8 DATARMNET57d435b225;};void DATARMNETd4230b6bfe(void);void + DATARMNET560e127137(void);int DATARMNET241493ab9a(u64 DATARMNET0470698d6c,u64 +DATARMNETfeff65e096);void DATARMNETa3055c21f2(struct DATARMNETd7c9631acd* +DATARMNETaa568481cf);void DATARMNETc38c135c9f(u32 DATARMNET3f8cc6fc24);u32 +DATARMNETae70636c90(void);void DATARMNET33aa5df9ef(struct DATARMNETd7c9631acd* +DATARMNETaa568481cf,struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8);bool +DATARMNETfbf5798e15(struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8);void +DATARMNETb98b78b8e3(void);int DATARMNETdbcaf01255(void); #endif + diff --git a/offload/rmnet_offload_main.c b/offload/rmnet_offload_main.c index bf7a0e1412..0c0754cb70 100644 --- a/offload/rmnet_offload_main.c +++ b/offload/rmnet_offload_main.c @@ -33,107 +33,156 @@ static const char*DATARMNET9be3ddbe97[]__always_unused={ "\x49\x30\x64\x64\x66\x33\x66\x66\x30\x34\x36\x66\x31\x62\x39\x33\x66\x63\x31\x39\x62\x62\x38\x35\x62\x31\x38\x64\x30\x34\x30\x63\x33\x34\x33\x62\x39\x39\x66\x37\x33" , "\x49\x33\x62\x36\x31\x30\x37\x35\x34\x33\x32\x32\x61\x66\x30\x39\x30\x66\x65\x39\x61\x65\x31\x34\x61\x61\x31\x38\x61\x35\x33\x34\x30\x66\x62\x61\x38\x36\x36\x64\x62" +, +"\x49\x35\x31\x34\x36\x62\x33\x61\x30\x31\x36\x65\x66\x36\x35\x62\x33\x65\x36\x34\x35\x31\x33\x38\x64\x31\x34\x38\x31\x66\x37\x35\x35\x63\x66\x31\x31\x33\x34\x61\x32" ,};static DEFINE_SPINLOCK(DATARMNET0b5e447f18);static u32 DATARMNETcb7325e02d( -struct DATARMNETd812bcdbb5*DATARMNET458b70e7e5){__be32 DATARMNETdfd47b00ff[ -(0xd20+231-0xdfc)];u32 DATARMNET5ebf661879;__be16 DATARMNET08e913477e= -(0xd2d+202-0xdf7),DATARMNETda7f7fa492=(0xd2d+202-0xdf7);if(DATARMNET458b70e7e5-> -DATARMNET098910da0f==DATARMNETa656f324b2||DATARMNET458b70e7e5-> -DATARMNET098910da0f==DATARMNETfd5c3d30e5){struct DATARMNET0b82084e89* -DATARMNET75be5f3406=DATARMNET458b70e7e5->DATARMNET0da3c8035d;DATARMNET08e913477e -=DATARMNET75be5f3406->DATARMNET1b1c406ae9;DATARMNETda7f7fa492= -DATARMNET75be5f3406->DATARMNETdf0e8545ee;}if(DATARMNET458b70e7e5-> -DATARMNETaebe0581f2==(0xd11+230-0xdf3)){struct DATARMNET308c06fca6* -DATARMNET86f1f2cdc9=DATARMNET458b70e7e5->DATARMNET1469d7a840;DATARMNETdfd47b00ff -[(0xd2d+202-0xdf7)]=DATARMNET86f1f2cdc9->DATARMNET11ef55b2bb;DATARMNETdfd47b00ff -[(0xd26+209-0xdf6)]=DATARMNET86f1f2cdc9->DATARMNET9bbd2ca483;DATARMNETdfd47b00ff -[(0xd1f+216-0xdf5)]=DATARMNET86f1f2cdc9->DATARMNET953d32410f;DATARMNETdfd47b00ff -[(0xd18+223-0xdf4)]=DATARMNETda7f7fa492;DATARMNETdfd47b00ff[(0xd11+230-0xdf3)]= -DATARMNET08e913477e;DATARMNET5ebf661879=(0xd0a+237-0xdf2);}else{struct -DATARMNET64bb8f616e*DATARMNETbf55123e5b=DATARMNET458b70e7e5->DATARMNET5559b05582 -;memcpy(&DATARMNETdfd47b00ff[(0xd2d+202-0xdf7)],&DATARMNETbf55123e5b-> -DATARMNETc657c0a139[(0xd2d+202-0xdf7)],sizeof(DATARMNETbf55123e5b-> -DATARMNETc657c0a139));memcpy(&DATARMNETdfd47b00ff[(0xd0a+237-0xdf2)],& -DATARMNETbf55123e5b->DATARMNET31202449fc[(0xd2d+202-0xdf7)],sizeof( -DATARMNETbf55123e5b->DATARMNETc657c0a139));DATARMNETdfd47b00ff[(0xd35+210-0xdff) -]=DATARMNETbf55123e5b->DATARMNET7244bfdc4f;DATARMNETdfd47b00ff[9]= -DATARMNETda7f7fa492;DATARMNETdfd47b00ff[(0xd27+224-0xdfd)]=DATARMNET08e913477e; -DATARMNET5ebf661879=(0xd20+231-0xdfc);}return jhash2(DATARMNETdfd47b00ff, -DATARMNET5ebf661879,(0xd2d+202-0xdf7));}static void DATARMNETe26a68d20e(u32 -DATARMNET5affe290b8){u32 DATARMNET2991ac9aa9;if(DATARMNET5affe290b8>50000) -DATARMNET2991ac9aa9=DATARMNETa121404606;else if(DATARMNET5affe290b8>30000) -DATARMNET2991ac9aa9=DATARMNET787b04223a;else if(DATARMNET5affe290b8>23000) -DATARMNET2991ac9aa9=DATARMNET8e1480cff2;else if(DATARMNET5affe290b8>14500) -DATARMNET2991ac9aa9=DATARMNETf335e26298;else if(DATARMNET5affe290b8>7000) -DATARMNET2991ac9aa9=DATARMNET3067ea3199;else if(DATARMNET5affe290b8> -(0x5b4+1875-0x78f))DATARMNET2991ac9aa9=DATARMNETa76d93355c;else -DATARMNET2991ac9aa9=DATARMNET92f3434694;DATARMNETa00cda79d0(DATARMNET2991ac9aa9) -;}static bool DATARMNET1a7ed9a6a2(struct rmnet_frag_descriptor* -DATARMNET9d1b321642,struct DATARMNETd812bcdbb5*DATARMNET458b70e7e5){u8* -DATARMNETdf2dbc641f;u16 DATARMNET5affe290b8;u16 DATARMNETdaa9248df1;if( -DATARMNET9d1b321642->hdrs_valid){DATARMNET458b70e7e5->DATARMNETaebe0581f2= -DATARMNET9d1b321642->ip_proto;DATARMNET458b70e7e5->DATARMNETbecebb23ac= -DATARMNET9d1b321642->ip_len;DATARMNET458b70e7e5->DATARMNET098910da0f= -DATARMNET9d1b321642->trans_proto;DATARMNET458b70e7e5->DATARMNET0ab9b2ce3b= -DATARMNET9d1b321642->trans_len;DATARMNET458b70e7e5->DATARMNET1469d7a840=(struct -DATARMNET308c06fca6*)DATARMNET9d1b321642->hdr_ptr;DATARMNET458b70e7e5-> -DATARMNET96c6c71653=(struct DATARMNETd2991e8952*)(DATARMNET9d1b321642->hdr_ptr+ -DATARMNET9d1b321642->ip_len);DATARMNET458b70e7e5->DATARMNET645e8912b8= -DATARMNETcb7325e02d(DATARMNET458b70e7e5);DATARMNET458b70e7e5-> -DATARMNET1ef22e4c76=skb_frag_size(&DATARMNET9d1b321642->frag);if( -DATARMNET9d1b321642->hdr_ptr==rmnet_frag_data_ptr(DATARMNET9d1b321642)) -DATARMNET458b70e7e5->DATARMNET1ef22e4c76-=DATARMNET9d1b321642->ip_len+ +struct DATARMNETd812bcdbb5*DATARMNET458b70e7e5){struct DATARMNET4287f07234* +DATARMNET8814564ab9=&DATARMNET458b70e7e5->DATARMNET144d119066;__be32 +DATARMNETdfd47b00ff[(0xd20+231-0xdfc)];u32 DATARMNET5ebf661879;__be16 +DATARMNET08e913477e=(0xd2d+202-0xdf7),DATARMNETda7f7fa492=(0xd2d+202-0xdf7);if( +DATARMNET8814564ab9->DATARMNET7fa8b2acbf==DATARMNETa656f324b2|| +DATARMNET8814564ab9->DATARMNET7fa8b2acbf==DATARMNETfd5c3d30e5){ +DATARMNET08e913477e=DATARMNET8814564ab9->DATARMNETa60d2ae3f6;DATARMNETda7f7fa492 +=DATARMNET8814564ab9->DATARMNET5e7452ec23;}if(DATARMNET8814564ab9-> +DATARMNET388842c721==(0xd11+230-0xdf3)){DATARMNETdfd47b00ff[(0xd2d+202-0xdf7)]= +DATARMNET8814564ab9->DATARMNET0a28fa80f4;DATARMNETdfd47b00ff[(0xd26+209-0xdf6)]= +DATARMNET8814564ab9->DATARMNET1a2be7b6c2;DATARMNETdfd47b00ff[(0xd1f+216-0xdf5)]= +DATARMNET8814564ab9->DATARMNET7fa8b2acbf;DATARMNETdfd47b00ff[(0xd18+223-0xdf4)]= +DATARMNETda7f7fa492;DATARMNETdfd47b00ff[(0xd11+230-0xdf3)]=DATARMNET08e913477e; +DATARMNET5ebf661879=(0xd0a+237-0xdf2);}else{memcpy(&DATARMNETdfd47b00ff[ +(0xd2d+202-0xdf7)],&DATARMNET8814564ab9->DATARMNET45ec858bc5[(0xd2d+202-0xdf7)], +sizeof(DATARMNET8814564ab9->DATARMNET45ec858bc5));memcpy(&DATARMNETdfd47b00ff[ +(0xd0a+237-0xdf2)],&DATARMNET8814564ab9->DATARMNET949c2754de[(0xd2d+202-0xdf7)], +sizeof(DATARMNET8814564ab9->DATARMNET45ec858bc5));DATARMNETdfd47b00ff[ +(0xd35+210-0xdff)]=DATARMNET8814564ab9->DATARMNET7fa8b2acbf;DATARMNETdfd47b00ff[ +9]=DATARMNETda7f7fa492;DATARMNETdfd47b00ff[(0xd27+224-0xdfd)]= +DATARMNET08e913477e;DATARMNET5ebf661879=(0xd20+231-0xdfc);}return jhash2( +DATARMNETdfd47b00ff,DATARMNET5ebf661879,(0xd2d+202-0xdf7));}static void +DATARMNETe26a68d20e(u32 DATARMNET5affe290b8){u32 DATARMNET2991ac9aa9;if( +DATARMNET5affe290b8>50000)DATARMNET2991ac9aa9=DATARMNETa121404606;else if( +DATARMNET5affe290b8>30000)DATARMNET2991ac9aa9=DATARMNET787b04223a;else if( +DATARMNET5affe290b8>23000)DATARMNET2991ac9aa9=DATARMNET8e1480cff2;else if( +DATARMNET5affe290b8>14500)DATARMNET2991ac9aa9=DATARMNETf335e26298;else if( +DATARMNET5affe290b8>7000)DATARMNET2991ac9aa9=DATARMNET3067ea3199;else if( +DATARMNET5affe290b8>(0x5b4+1875-0x78f))DATARMNET2991ac9aa9=DATARMNETa76d93355c; +else DATARMNET2991ac9aa9=DATARMNET92f3434694;DATARMNETa00cda79d0( +DATARMNET2991ac9aa9);}static bool DATARMNET1a7ed9a6a2(struct +rmnet_frag_descriptor*DATARMNET9d1b321642,struct DATARMNETd812bcdbb5* +DATARMNET458b70e7e5){struct DATARMNET4287f07234*DATARMNET8814564ab9=& +DATARMNET458b70e7e5->DATARMNET144d119066;u8*DATARMNETdf2dbc641f;u16 +DATARMNET5affe290b8;u16 DATARMNETdaa9248df1;if(DATARMNET9d1b321642->hdrs_valid){ +struct DATARMNETd2991e8952*DATARMNET2e7cc88971,DATARMNETd1ff6cd568; +DATARMNET8814564ab9->DATARMNET388842c721=DATARMNET9d1b321642->ip_proto; +DATARMNET8814564ab9->DATARMNET4ca5ac9de1=DATARMNET9d1b321642->ip_len; +DATARMNET8814564ab9->DATARMNET7fa8b2acbf=DATARMNET9d1b321642->trans_proto; +DATARMNET8814564ab9->DATARMNET0aeee57ceb=DATARMNET9d1b321642->trans_len; +DATARMNET5affe290b8=DATARMNET9d1b321642->len;if(DATARMNET8814564ab9-> +DATARMNET388842c721==(0xd11+230-0xdf3)){struct DATARMNET308c06fca6* +DATARMNET86f1f2cdc9,DATARMNETbf6548198e;DATARMNET86f1f2cdc9= +rmnet_frag_header_ptr(DATARMNET9d1b321642,(0xd2d+202-0xdf7),sizeof(* +DATARMNET86f1f2cdc9),&DATARMNETbf6548198e);if(!DATARMNET86f1f2cdc9)goto +DATARMNETaabe3a05f8;DATARMNET8814564ab9->DATARMNET1a2be7b6c2=DATARMNET86f1f2cdc9 +->DATARMNET9bbd2ca483;DATARMNET8814564ab9->DATARMNET0a28fa80f4= +DATARMNET86f1f2cdc9->DATARMNET11ef55b2bb;DATARMNET8814564ab9-> +DATARMNET19b03754c4=DATARMNET86f1f2cdc9->DATARMNET1eb6c27583;DATARMNET8814564ab9 +->DATARMNET57bf608183=DATARMNET86f1f2cdc9->DATARMNET03e081f69f; +DATARMNET8814564ab9->DATARMNETcf915688f5=DATARMNET86f1f2cdc9-> +DATARMNET2c091223da;}else{struct DATARMNET64bb8f616e*DATARMNETbf55123e5b, +DATARMNETcf1d9e2c1e;DATARMNETbf55123e5b=rmnet_frag_header_ptr( +DATARMNET9d1b321642,(0xd2d+202-0xdf7),sizeof(*DATARMNETbf55123e5b),& +DATARMNETcf1d9e2c1e);if(!DATARMNETbf55123e5b)goto DATARMNETaabe3a05f8;memcpy(& +DATARMNET8814564ab9->DATARMNET949c2754de[(0xd2d+202-0xdf7)],&DATARMNETbf55123e5b +->DATARMNET31202449fc[(0xd2d+202-0xdf7)],sizeof(DATARMNETbf55123e5b-> +DATARMNET31202449fc));memcpy(&DATARMNET8814564ab9->DATARMNET45ec858bc5[ +(0xd2d+202-0xdf7)],&DATARMNETbf55123e5b->DATARMNETc657c0a139[(0xd2d+202-0xdf7)], +sizeof(DATARMNETbf55123e5b->DATARMNETc657c0a139));DATARMNET8814564ab9-> +DATARMNETabd58f7f89=DATARMNETbf55123e5b->DATARMNET0687f7ecdc;} +DATARMNET2e7cc88971=rmnet_frag_header_ptr(DATARMNET9d1b321642, +DATARMNET8814564ab9->DATARMNET4ca5ac9de1,sizeof(*DATARMNET2e7cc88971),& +DATARMNETd1ff6cd568);if(!DATARMNET2e7cc88971)goto DATARMNETaabe3a05f8; +DATARMNET8814564ab9->DATARMNETa60d2ae3f6=DATARMNET2e7cc88971-> +DATARMNET6acbeeebb1;DATARMNET8814564ab9->DATARMNET5e7452ec23=DATARMNET2e7cc88971 +->DATARMNET29b8c05d14;if(DATARMNET8814564ab9->DATARMNET7fa8b2acbf== +DATARMNETfd5c3d30e5){__be32 DATARMNET0849981c7c;if(DATARMNET9d1b321642-> +tcp_seq_set)DATARMNET0849981c7c=DATARMNET9d1b321642->tcp_seq;else +DATARMNET0849981c7c=DATARMNET2e7cc88971->DATARMNETb3e70104e0;DATARMNET8814564ab9 +->DATARMNETbc28a5970f=ntohl(DATARMNET0849981c7c);}DATARMNET458b70e7e5-> +DATARMNET645e8912b8=DATARMNETcb7325e02d(DATARMNET458b70e7e5);DATARMNET458b70e7e5 +->DATARMNET1ef22e4c76=DATARMNET9d1b321642->len-DATARMNET9d1b321642->ip_len- DATARMNET9d1b321642->trans_len;DATARMNET458b70e7e5->DATARMNET719f68fb88= DATARMNET9d1b321642;return false;}DATARMNETdf2dbc641f=rmnet_frag_data_ptr( -DATARMNET9d1b321642);DATARMNET5affe290b8=skb_frag_size(&DATARMNET9d1b321642-> -frag);DATARMNET458b70e7e5->DATARMNET3eb91ee54d=true;DATARMNET458b70e7e5-> -DATARMNETaebe0581f2=(DATARMNETdf2dbc641f[(0xd2d+202-0xdf7)]&(0xbf7+4405-0x1c3c)) ->>(0xd11+230-0xdf3);if(DATARMNET458b70e7e5->DATARMNETaebe0581f2== -(0xd11+230-0xdf3)){struct DATARMNET308c06fca6*DATARMNET86f1f2cdc9; -DATARMNET86f1f2cdc9=(struct DATARMNET308c06fca6*)DATARMNETdf2dbc641f; -DATARMNET458b70e7e5->DATARMNET1469d7a840=DATARMNET86f1f2cdc9;DATARMNET458b70e7e5 -->DATARMNETbecebb23ac=DATARMNET86f1f2cdc9->DATARMNET610d06a887*(0xd11+230-0xdf3) -;DATARMNET458b70e7e5->DATARMNET098910da0f=DATARMNET86f1f2cdc9-> -DATARMNET953d32410f;if(DATARMNET86f1f2cdc9->DATARMNET2c091223da&htons(16383)){ +DATARMNET9d1b321642);DATARMNET5affe290b8=DATARMNET9d1b321642->len; +DATARMNET458b70e7e5->DATARMNET3eb91ee54d=true;DATARMNET8814564ab9-> +DATARMNET388842c721=(DATARMNETdf2dbc641f[(0xd2d+202-0xdf7)]&(0xbf7+4405-0x1c3c)) +>>(0xd11+230-0xdf3);if(DATARMNET8814564ab9->DATARMNET388842c721== +(0xd11+230-0xdf3)){struct DATARMNET308c06fca6*DATARMNET86f1f2cdc9, +DATARMNETbf6548198e;DATARMNET86f1f2cdc9=rmnet_frag_header_ptr( +DATARMNET9d1b321642,(0xd2d+202-0xdf7),sizeof(*DATARMNET86f1f2cdc9),& +DATARMNETbf6548198e);if(!DATARMNET86f1f2cdc9)goto DATARMNETaabe3a05f8; +DATARMNET8814564ab9->DATARMNET4ca5ac9de1=DATARMNET86f1f2cdc9-> +DATARMNET610d06a887*(0xd11+230-0xdf3);DATARMNET8814564ab9->DATARMNET7fa8b2acbf= +DATARMNET86f1f2cdc9->DATARMNET953d32410f;DATARMNET8814564ab9-> +DATARMNET1a2be7b6c2=DATARMNET86f1f2cdc9->DATARMNET9bbd2ca483;DATARMNET8814564ab9 +->DATARMNET0a28fa80f4=DATARMNET86f1f2cdc9->DATARMNET11ef55b2bb; +DATARMNET8814564ab9->DATARMNET19b03754c4=DATARMNET86f1f2cdc9-> +DATARMNET1eb6c27583;DATARMNET8814564ab9->DATARMNET57bf608183=DATARMNET86f1f2cdc9 +->DATARMNET03e081f69f;DATARMNET8814564ab9->DATARMNETcf915688f5= +DATARMNET86f1f2cdc9->DATARMNET2c091223da;if(DATARMNET86f1f2cdc9-> +DATARMNET2c091223da&htons(16383)){DATARMNETa00cda79d0(DATARMNET807e4dad18);goto +DATARMNETaabe3a05f8;}DATARMNETdaa9248df1=ntohs(DATARMNET86f1f2cdc9-> +DATARMNET8e175ac02d);DATARMNET458b70e7e5->DATARMNET8f59f5a745= +DATARMNETdaa9248df1!=DATARMNET5affe290b8;}else if(DATARMNET8814564ab9-> +DATARMNET388842c721==(0xd03+244-0xdf1)){struct DATARMNET64bb8f616e* +DATARMNETbf55123e5b,DATARMNETcf1d9e2c1e;int DATARMNET0549c61885;__be16 +DATARMNET833503918f;u8 DATARMNET3f56a2bcf4;DATARMNETbf55123e5b= +rmnet_frag_header_ptr(DATARMNET9d1b321642,(0xd2d+202-0xdf7),sizeof(* +DATARMNETbf55123e5b),&DATARMNETcf1d9e2c1e);if(!DATARMNETbf55123e5b)goto +DATARMNETaabe3a05f8;DATARMNET3f56a2bcf4=DATARMNETbf55123e5b->DATARMNET7244bfdc4f +;DATARMNET0549c61885=rmnet_frag_ipv6_skip_exthdr(DATARMNET9d1b321642,sizeof(* +DATARMNETbf55123e5b),&DATARMNET3f56a2bcf4,&DATARMNET833503918f);if( +DATARMNET0549c61885<(0xd2d+202-0xdf7)){goto DATARMNETaabe3a05f8;} +DATARMNET8814564ab9->DATARMNET4ca5ac9de1=(u16)DATARMNET0549c61885; +DATARMNET8814564ab9->DATARMNET7fa8b2acbf=DATARMNET3f56a2bcf4;memcpy(& +DATARMNET8814564ab9->DATARMNET949c2754de[(0xd2d+202-0xdf7)],&DATARMNETbf55123e5b +->DATARMNET31202449fc[(0xd2d+202-0xdf7)],sizeof(DATARMNETbf55123e5b-> +DATARMNET31202449fc));memcpy(&DATARMNET8814564ab9->DATARMNET45ec858bc5[ +(0xd2d+202-0xdf7)],&DATARMNETbf55123e5b->DATARMNETc657c0a139[(0xd2d+202-0xdf7)], +sizeof(DATARMNETbf55123e5b->DATARMNETc657c0a139));DATARMNET8814564ab9-> +DATARMNETabd58f7f89=DATARMNETbf55123e5b->DATARMNET0687f7ecdc;if( +DATARMNET833503918f){if(DATARMNET8814564ab9->DATARMNET7fa8b2acbf== +DATARMNET5b166167a8)DATARMNET8814564ab9->DATARMNET4ca5ac9de1+=(0xd35+210-0xdff); DATARMNETa00cda79d0(DATARMNET807e4dad18);goto DATARMNETaabe3a05f8;} -DATARMNETdaa9248df1=ntohs(DATARMNET86f1f2cdc9->DATARMNET8e175ac02d); -DATARMNET458b70e7e5->DATARMNET8f59f5a745=DATARMNETdaa9248df1!= -DATARMNET5affe290b8;}else if(DATARMNET458b70e7e5->DATARMNETaebe0581f2== -(0xd03+244-0xdf1)){struct DATARMNET64bb8f616e*DATARMNETbf55123e5b;int -DATARMNET0549c61885;__be16 DATARMNET833503918f;u8 DATARMNET3f56a2bcf4; -DATARMNETbf55123e5b=(struct DATARMNET64bb8f616e*)DATARMNETdf2dbc641f; -DATARMNET458b70e7e5->DATARMNET5559b05582=DATARMNETbf55123e5b;DATARMNET3f56a2bcf4 -=DATARMNETbf55123e5b->DATARMNET7244bfdc4f;DATARMNET0549c61885= -rmnet_frag_ipv6_skip_exthdr(DATARMNET9d1b321642,sizeof(*DATARMNETbf55123e5b),& -DATARMNET3f56a2bcf4,&DATARMNET833503918f);if(DATARMNET0549c61885< -(0xd2d+202-0xdf7)){goto DATARMNETaabe3a05f8;}DATARMNET458b70e7e5-> -DATARMNETbecebb23ac=(u16)DATARMNET0549c61885;DATARMNET458b70e7e5-> -DATARMNET098910da0f=DATARMNET3f56a2bcf4;if(DATARMNET833503918f){if( -DATARMNET458b70e7e5->DATARMNET098910da0f==DATARMNET5b166167a8) -DATARMNET458b70e7e5->DATARMNETbecebb23ac+=(0xd35+210-0xdff);DATARMNETa00cda79d0( -DATARMNET807e4dad18);goto DATARMNETaabe3a05f8;}DATARMNETdaa9248df1=ntohs( -DATARMNETbf55123e5b->DATARMNETaa340485c5)+sizeof(*DATARMNETbf55123e5b); -DATARMNET458b70e7e5->DATARMNET8f59f5a745=DATARMNETdaa9248df1!= -DATARMNET5affe290b8;}else{return true;}DATARMNETdf2dbc641f+=DATARMNET458b70e7e5 -->DATARMNETbecebb23ac;if(DATARMNET458b70e7e5->DATARMNET098910da0f== -DATARMNETfd5c3d30e5){struct DATARMNETd2991e8952*DATARMNET2e7cc88971; -DATARMNET2e7cc88971=(struct DATARMNETd2991e8952*)DATARMNETdf2dbc641f; -DATARMNET458b70e7e5->DATARMNET96c6c71653=DATARMNET2e7cc88971;DATARMNET458b70e7e5 -->DATARMNET0ab9b2ce3b=DATARMNET2e7cc88971->DATARMNETcf2e43ad69*(0xd11+230-0xdf3) -;}else if(DATARMNET458b70e7e5->DATARMNET098910da0f==DATARMNETa656f324b2){struct -DATARMNET0b82084e89*DATARMNET75be5f3406;DATARMNET75be5f3406=(struct -DATARMNET0b82084e89*)DATARMNETdf2dbc641f;DATARMNET458b70e7e5-> -DATARMNET0da3c8035d=DATARMNET75be5f3406;DATARMNET458b70e7e5->DATARMNET0ab9b2ce3b -=sizeof(*DATARMNET75be5f3406);}else{goto DATARMNETaabe3a05f8;} -DATARMNET458b70e7e5->DATARMNET3eb91ee54d=false;DATARMNET458b70e7e5-> -DATARMNET645e8912b8=DATARMNETcb7325e02d(DATARMNET458b70e7e5);if(! -DATARMNET458b70e7e5->DATARMNET8f59f5a745){DATARMNET9d1b321642->ip_proto= -DATARMNET458b70e7e5->DATARMNETaebe0581f2;DATARMNET9d1b321642->ip_len= -DATARMNET458b70e7e5->DATARMNETbecebb23ac;DATARMNET9d1b321642->trans_proto= -DATARMNET458b70e7e5->DATARMNET098910da0f;DATARMNET9d1b321642->trans_len= -DATARMNET458b70e7e5->DATARMNET0ab9b2ce3b;DATARMNET9d1b321642->hdrs_valid= +DATARMNETdaa9248df1=ntohs(DATARMNETbf55123e5b->DATARMNETaa340485c5)+sizeof(* +DATARMNETbf55123e5b);DATARMNET458b70e7e5->DATARMNET8f59f5a745= +DATARMNETdaa9248df1!=DATARMNET5affe290b8;}else{return true;}if( +DATARMNET8814564ab9->DATARMNET7fa8b2acbf==DATARMNETfd5c3d30e5){struct +DATARMNETd2991e8952*DATARMNET2e7cc88971,DATARMNETd1ff6cd568;DATARMNET2e7cc88971= +rmnet_frag_header_ptr(DATARMNET9d1b321642,DATARMNET8814564ab9-> +DATARMNET4ca5ac9de1,sizeof(*DATARMNET2e7cc88971),&DATARMNETd1ff6cd568);if(! +DATARMNET2e7cc88971)goto DATARMNETaabe3a05f8;DATARMNET8814564ab9-> +DATARMNET0aeee57ceb=DATARMNET2e7cc88971->DATARMNETcf2e43ad69*(0xd11+230-0xdf3); +DATARMNET8814564ab9->DATARMNETa60d2ae3f6=DATARMNET2e7cc88971-> +DATARMNET6acbeeebb1;DATARMNET8814564ab9->DATARMNET5e7452ec23=DATARMNET2e7cc88971 +->DATARMNET29b8c05d14;DATARMNET8814564ab9->DATARMNETbc28a5970f=ntohl( +DATARMNET2e7cc88971->DATARMNETb3e70104e0);}else if(DATARMNET8814564ab9-> +DATARMNET7fa8b2acbf==DATARMNETa656f324b2){struct DATARMNET0b82084e89* +DATARMNET75be5f3406,DATARMNETc82d2f4e16;DATARMNET75be5f3406= +rmnet_frag_header_ptr(DATARMNET9d1b321642,DATARMNET8814564ab9-> +DATARMNET4ca5ac9de1,sizeof(*DATARMNET75be5f3406),&DATARMNETc82d2f4e16);if(! +DATARMNET75be5f3406)goto DATARMNETaabe3a05f8;DATARMNET8814564ab9-> +DATARMNET0aeee57ceb=sizeof(*DATARMNET75be5f3406);DATARMNET8814564ab9-> +DATARMNETa60d2ae3f6=DATARMNET75be5f3406->DATARMNET1b1c406ae9;DATARMNET8814564ab9 +->DATARMNET5e7452ec23=DATARMNET75be5f3406->DATARMNETdf0e8545ee;}else{goto +DATARMNETaabe3a05f8;}DATARMNET458b70e7e5->DATARMNET3eb91ee54d=false; +DATARMNET458b70e7e5->DATARMNET645e8912b8=DATARMNETcb7325e02d(DATARMNET458b70e7e5 +);if(!DATARMNET458b70e7e5->DATARMNET8f59f5a745){DATARMNET9d1b321642->ip_proto= +DATARMNET8814564ab9->DATARMNET388842c721;DATARMNET9d1b321642->ip_len= +DATARMNET8814564ab9->DATARMNET4ca5ac9de1;DATARMNET9d1b321642->trans_proto= +DATARMNET8814564ab9->DATARMNET7fa8b2acbf;DATARMNET9d1b321642->trans_len= +DATARMNET8814564ab9->DATARMNET0aeee57ceb;DATARMNET9d1b321642->hdrs_valid= (0xd26+209-0xdf6);}DATARMNETaabe3a05f8:DATARMNET458b70e7e5->DATARMNET1ef22e4c76= -DATARMNET5affe290b8-DATARMNET458b70e7e5->DATARMNETbecebb23ac-DATARMNET458b70e7e5 -->DATARMNET0ab9b2ce3b;if(DATARMNET458b70e7e5->DATARMNET8f59f5a745) +DATARMNET5affe290b8-DATARMNET8814564ab9->DATARMNET4ca5ac9de1-DATARMNET8814564ab9 +->DATARMNET0aeee57ceb;if(DATARMNET458b70e7e5->DATARMNET8f59f5a745) DATARMNETa00cda79d0(DATARMNET52b7da9033);DATARMNET458b70e7e5-> DATARMNET719f68fb88=DATARMNET9d1b321642;return false;}static void DATARMNET29e8d137c4(struct rmnet_frag_descriptor*DATARMNET9d1b321642,struct @@ -168,12 +217,12 @@ DATARMNET403589239f);}void DATARMNET19d190f2bd(struct DATARMNETd812bcdbb5* DATARMNET458b70e7e5){struct rmnet_frag_descriptor*DATARMNET9d1b321642= DATARMNET458b70e7e5->DATARMNET719f68fb88;u32 DATARMNET5affe290b8= DATARMNET458b70e7e5->DATARMNET1ef22e4c76+DATARMNET458b70e7e5-> -DATARMNETbecebb23ac+DATARMNET458b70e7e5->DATARMNET0ab9b2ce3b;if( -DATARMNET5affe290b8>65536)return;if(!DATARMNET458b70e7e5->DATARMNET3eb91ee54d) -DATARMNET9d1b321642->hash=DATARMNET458b70e7e5->DATARMNET645e8912b8; -DATARMNET58a244b2fe(DATARMNET9d1b321642,DATARMNET5affe290b8);}void -DATARMNET9292bebdd3(void*DATARMNETf0d9de7e2f){}void DATARMNETb7e47d7254(void* -DATARMNETf0d9de7e2f){}void DATARMNET95e1703026(struct rmnet_map_dl_ind_hdr* +DATARMNET144d119066.DATARMNET4ca5ac9de1+DATARMNET458b70e7e5->DATARMNET144d119066 +.DATARMNET0aeee57ceb;if(DATARMNET5affe290b8>65536)return;if(!DATARMNET458b70e7e5 +->DATARMNET3eb91ee54d)DATARMNET9d1b321642->hash=DATARMNET458b70e7e5-> +DATARMNET645e8912b8;DATARMNET58a244b2fe(DATARMNET9d1b321642,DATARMNET5affe290b8) +;}void DATARMNET9292bebdd3(void*DATARMNETf0d9de7e2f){}void DATARMNETb7e47d7254( +void*DATARMNETf0d9de7e2f){}void DATARMNET95e1703026(struct rmnet_map_dl_ind_hdr* DATARMNET7c7748ef7a,struct rmnet_map_control_command_header*DATARMNET8b07ee3e82) {struct DATARMNET70f3b87b5d*DATARMNETe05748b000=DATARMNETc2a630b113();(void) DATARMNET8b07ee3e82;if(DATARMNETe05748b000->DATARMNETa9f2b2f677. diff --git a/offload/rmnet_offload_main.h b/offload/rmnet_offload_main.h index 613d5b28ea..b64c61d529 100644 --- a/offload/rmnet_offload_main.h +++ b/offload/rmnet_offload_main.h @@ -49,12 +49,15 @@ u8 DATARMNETcf2e43ad69:(0xd11+230-0xdf3);u8 DATARMNET655b34c160: u8 DATARMNETd570802f3d;__be16 DATARMNET807cd6af6c;__be16 DATARMNET8891a7f7ce; __be16 DATARMNET9921296467;};struct DATARMNET0b82084e89{__be16 DATARMNET1b1c406ae9;__be16 DATARMNETdf0e8545ee;__be16 DATARMNET39a05c5524;__be16 - DATARMNET45a3ebe8e3;};struct DATARMNETd812bcdbb5{struct rmnet_frag_descriptor* -DATARMNET719f68fb88;union{struct DATARMNET308c06fca6*DATARMNET1469d7a840;struct -DATARMNET64bb8f616e*DATARMNET5559b05582;};union{struct DATARMNETd2991e8952* -DATARMNET96c6c71653;struct DATARMNET0b82084e89*DATARMNET0da3c8035d;};u32 -DATARMNET645e8912b8;u16 DATARMNET1ef22e4c76;u16 DATARMNETbecebb23ac;u16 -DATARMNET0ab9b2ce3b;u8 DATARMNETaebe0581f2;u8 DATARMNET098910da0f;bool + DATARMNET45a3ebe8e3;};struct DATARMNET4287f07234{__be16 DATARMNETa60d2ae3f6; +__be16 DATARMNET5e7452ec23;union{__be32 DATARMNET1a2be7b6c2;__be32 +DATARMNET949c2754de[(0xd11+230-0xdf3)];};union{__be32 DATARMNET0a28fa80f4;__be32 + DATARMNET45ec858bc5[(0xd11+230-0xdf3)];};union{struct{u8 DATARMNET19b03754c4;u8 + DATARMNET57bf608183;__be16 DATARMNETcf915688f5;};__be32 DATARMNETabd58f7f89;}; +u32 DATARMNETbc28a5970f;u16 DATARMNET4ca5ac9de1;u16 DATARMNET0aeee57ceb;u8 +DATARMNET388842c721;u8 DATARMNET7fa8b2acbf;};struct DATARMNETd812bcdbb5{struct +rmnet_frag_descriptor*DATARMNET719f68fb88;struct DATARMNET4287f07234 +DATARMNET144d119066;u32 DATARMNET645e8912b8;u16 DATARMNET1ef22e4c76;bool DATARMNETf1b6b0a6cc;bool DATARMNET3eb91ee54d;bool DATARMNET8f59f5a745;};void DATARMNET664568fcd0(void);void DATARMNET6a76048590(void);void DATARMNET818b960147(void);void DATARMNETba38823a2f(void);bool diff --git a/offload/rmnet_offload_tcp.c b/offload/rmnet_offload_tcp.c index 8709e67765..5ddb7ca917 100644 --- a/offload/rmnet_offload_tcp.c +++ b/offload/rmnet_offload_tcp.c @@ -10,58 +10,66 @@ * GNU General Public License for more details. */ +#include #include "rmnet_descriptor.h" #include "rmnet_offload_main.h" #include "rmnet_offload_engine.h" #include "rmnet_offload_stats.h" #include "rmnet_offload_knob.h" static bool DATARMNET2818ea93ec(struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){ -struct DATARMNETd2991e8952*DATARMNET2e7cc88971=DATARMNET5fe4c722a8-> -DATARMNET96c6c71653;__be32 DATARMNETa8eeab014d;u8 DATARMNET1464100e7a= -DATARMNET2e7cc88971->DATARMNETd570802f3d;DATARMNETa8eeab014d=(0xbf7+4796-0x1e04) -;if((!DATARMNET5fe4c722a8->DATARMNET1ef22e4c76&&(DATARMNET1464100e7a& -(0xeb7+1158-0x132d)))||(DATARMNET1464100e7a&DATARMNETa8eeab014d))return true; -return false;}static bool DATARMNET829fcf5939(struct DATARMNETd7c9631acd* -DATARMNETaa568481cf,struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){struct -DATARMNETd2991e8952*DATARMNET699c2c62cd,*DATARMNET8814564ab9;u32 -DATARMNET3c3abe9e2c,DATARMNETefc9df3df2;DATARMNET699c2c62cd=DATARMNETaa568481cf -->DATARMNET8cd2f78e4f;DATARMNET8814564ab9=DATARMNET5fe4c722a8-> -DATARMNET96c6c71653;DATARMNET3c3abe9e2c=DATARMNET699c2c62cd->DATARMNETcf2e43ad69 -*(0xd11+230-0xdf3);if(DATARMNET8814564ab9->DATARMNETcf2e43ad69*(0xd11+230-0xdf3) +struct DATARMNETd2991e8952*DATARMNET2e7cc88971,DATARMNETd1ff6cd568;__be32 +DATARMNETa8eeab014d;u8 DATARMNET1464100e7a;DATARMNET2e7cc88971= +rmnet_frag_header_ptr(DATARMNET5fe4c722a8->DATARMNET719f68fb88, +DATARMNET5fe4c722a8->DATARMNET144d119066.DATARMNET4ca5ac9de1,sizeof(* +DATARMNET2e7cc88971),&DATARMNETd1ff6cd568);if(!DATARMNET2e7cc88971)return true; +DATARMNETa8eeab014d=(0xbf7+4796-0x1e04);DATARMNET1464100e7a=DATARMNET2e7cc88971 +->DATARMNETd570802f3d;if((!DATARMNET5fe4c722a8->DATARMNET1ef22e4c76&&( +DATARMNET1464100e7a&(0xeb7+1158-0x132d)))||(DATARMNET1464100e7a& +DATARMNETa8eeab014d))return true;return false;}static bool DATARMNET829fcf5939( +struct DATARMNETd7c9631acd*DATARMNETaa568481cf,struct DATARMNETd812bcdbb5* +DATARMNET5fe4c722a8){struct DATARMNETd2991e8952*DATARMNET699c2c62cd, +DATARMNETee66845de4;struct DATARMNETd2991e8952*DATARMNET8814564ab9, +DATARMNETa27d4d22be;struct rmnet_frag_descriptor*DATARMNET48cfce4de4;u32 +DATARMNET3c3abe9e2c,DATARMNETefc9df3df2;DATARMNET48cfce4de4=list_first_entry(& +DATARMNETaa568481cf->DATARMNETb76b79d0d5,struct rmnet_frag_descriptor,list); +DATARMNET699c2c62cd=rmnet_frag_header_ptr(DATARMNET48cfce4de4, +DATARMNETaa568481cf->DATARMNET78fd20ce0e.DATARMNET4ca5ac9de1,sizeof(* +DATARMNET699c2c62cd),&DATARMNETee66845de4);if(!DATARMNET699c2c62cd)return true; +DATARMNET8814564ab9=rmnet_frag_header_ptr(DATARMNET5fe4c722a8-> +DATARMNET719f68fb88,DATARMNET5fe4c722a8->DATARMNET144d119066.DATARMNET4ca5ac9de1 +,sizeof(*DATARMNET8814564ab9),&DATARMNETa27d4d22be);if(!DATARMNET8814564ab9) +return true;DATARMNET3c3abe9e2c=DATARMNET699c2c62cd->DATARMNETcf2e43ad69* +(0xd11+230-0xdf3);if(DATARMNET8814564ab9->DATARMNETcf2e43ad69*(0xd11+230-0xdf3) !=DATARMNET3c3abe9e2c)return true;for(DATARMNETefc9df3df2=sizeof(* DATARMNET699c2c62cd);DATARMNETefc9df3df2DATARMNET96c6c71653;u64 -DATARMNET7457d496cb;u32 DATARMNET7032feb866,DATARMNET95acece3fc;if( -DATARMNET2818ea93ec(DATARMNET5fe4c722a8)){DATARMNETa00cda79d0( -DATARMNETb322de38be);return DATARMNET7af645849a;}if(!DATARMNETaa568481cf-> -DATARMNET1db11fa85e)return DATARMNET0413b43080;if(DATARMNET829fcf5939( -DATARMNETaa568481cf,DATARMNET5fe4c722a8)){DATARMNETa00cda79d0( -DATARMNET38317c7efd);return DATARMNETb0bd5db24d;}DATARMNET7032feb866=( -DATARMNET5fe4c722a8->DATARMNET719f68fb88->tcp_seq_set)?ntohl(DATARMNET5fe4c722a8 -->DATARMNET719f68fb88->tcp_seq):ntohl(DATARMNET8814564ab9->DATARMNETb3e70104e0); -if(DATARMNET7032feb866^DATARMNETaa568481cf->DATARMNETd3a1a2b9b5){ -DATARMNETa00cda79d0(DATARMNET31c0e41f5a);return DATARMNET7af645849a;} -DATARMNET95acece3fc=(DATARMNET5fe4c722a8->DATARMNET719f68fb88->gso_size)?: -DATARMNET5fe4c722a8->DATARMNET1ef22e4c76;if(DATARMNET95acece3fc!= -DATARMNETaa568481cf->DATARMNET1978d5d8de){DATARMNETa00cda79d0( -DATARMNET0cd1fa0d98);return DATARMNETb0bd5db24d;}DATARMNET7457d496cb= -DATARMNETf1d1b8287f(DATARMNETdf66588a73);if(DATARMNET5fe4c722a8-> -DATARMNET1ef22e4c76+DATARMNETaa568481cf->DATARMNETcf28ae376b>= -DATARMNET7457d496cb){DATARMNETa00cda79d0(DATARMNET1c0d243816);return -DATARMNETb0bd5db24d;}DATARMNET5fe4c722a8->DATARMNETf1b6b0a6cc=false;return -DATARMNET0413b43080;}bool DATARMNET4c7cdc25b7(struct DATARMNETd7c9631acd* -DATARMNETaa568481cf,struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8,bool -DATARMNETd87669e323){int DATARMNETb14e52a504;if(DATARMNETd87669e323){ -DATARMNETa00cda79d0(DATARMNET47a963957c);DATARMNETa3055c21f2(DATARMNETaa568481cf -);DATARMNET19d190f2bd(DATARMNET5fe4c722a8);return true;}DATARMNETb14e52a504= -DATARMNET9a13d70865(DATARMNETaa568481cf,DATARMNET5fe4c722a8);if( -DATARMNETb14e52a504==DATARMNET0413b43080){DATARMNET33aa5df9ef( -DATARMNETaa568481cf,DATARMNET5fe4c722a8);}else if(DATARMNETb14e52a504== -DATARMNETb0bd5db24d){DATARMNETa3055c21f2(DATARMNETaa568481cf); -DATARMNET33aa5df9ef(DATARMNETaa568481cf,DATARMNET5fe4c722a8);}else{ +struct DATARMNETd812bcdbb5*DATARMNET5fe4c722a8){u64 DATARMNET7457d496cb;u32 +DATARMNET95acece3fc;if(DATARMNET2818ea93ec(DATARMNET5fe4c722a8)){ +DATARMNETa00cda79d0(DATARMNETb322de38be);return DATARMNET7af645849a;}if(! +DATARMNETaa568481cf->DATARMNET1db11fa85e)return DATARMNET0413b43080;if( +DATARMNET829fcf5939(DATARMNETaa568481cf,DATARMNET5fe4c722a8)){ +DATARMNETa00cda79d0(DATARMNET38317c7efd);return DATARMNETb0bd5db24d;}if( +DATARMNET5fe4c722a8->DATARMNET144d119066.DATARMNETbc28a5970f^DATARMNETaa568481cf +->DATARMNET78fd20ce0e.DATARMNETbc28a5970f){DATARMNETa00cda79d0( +DATARMNET31c0e41f5a);return DATARMNET7af645849a;}DATARMNET95acece3fc=( +DATARMNET5fe4c722a8->DATARMNET719f68fb88->gso_size)?:DATARMNET5fe4c722a8-> +DATARMNET1ef22e4c76;if(DATARMNET95acece3fc!=DATARMNETaa568481cf-> +DATARMNET1978d5d8de){DATARMNETa00cda79d0(DATARMNET0cd1fa0d98);return +DATARMNETb0bd5db24d;}DATARMNET7457d496cb=DATARMNETf1d1b8287f(DATARMNETdf66588a73 +);if(DATARMNET5fe4c722a8->DATARMNET1ef22e4c76+DATARMNETaa568481cf-> +DATARMNETcf28ae376b>=DATARMNET7457d496cb){DATARMNETa00cda79d0( +DATARMNET1c0d243816);return DATARMNETb0bd5db24d;}DATARMNET5fe4c722a8-> +DATARMNETf1b6b0a6cc=false;return DATARMNET0413b43080;}bool DATARMNET4c7cdc25b7( +struct DATARMNETd7c9631acd*DATARMNETaa568481cf,struct DATARMNETd812bcdbb5* +DATARMNET5fe4c722a8,bool DATARMNETd87669e323){int DATARMNETb14e52a504;if( +DATARMNETd87669e323){DATARMNETa00cda79d0(DATARMNET47a963957c); DATARMNETa3055c21f2(DATARMNETaa568481cf);DATARMNET19d190f2bd(DATARMNET5fe4c722a8 -);}return true;} +);return true;}DATARMNETb14e52a504=DATARMNET9a13d70865(DATARMNETaa568481cf, +DATARMNET5fe4c722a8);if(DATARMNETb14e52a504==DATARMNET0413b43080){ +DATARMNET33aa5df9ef(DATARMNETaa568481cf,DATARMNET5fe4c722a8);}else if( +DATARMNETb14e52a504==DATARMNETb0bd5db24d){DATARMNETa3055c21f2( +DATARMNETaa568481cf);DATARMNET33aa5df9ef(DATARMNETaa568481cf,DATARMNET5fe4c722a8 +);}else{DATARMNETa3055c21f2(DATARMNETaa568481cf);DATARMNET19d190f2bd( +DATARMNET5fe4c722a8);}return true;}