1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- /* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 and
- * only version 2 as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
- #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 DATARMNET505c932e93(struct DATARMNETadd6ff90d0*DATARMNETc3ffad4b30){
- struct DATARMNET1bffb1c388*DATARMNETbd1c0986f8=DATARMNETc3ffad4b30->
- DATARMNET7ff34eacb7;__be32 DATARMNETae352fd67d;u8 DATARMNETf72fff5724=
- DATARMNETbd1c0986f8->DATARMNETf538480d20;DATARMNETae352fd67d=(0x89d+3341-0x14fb)
- ;if((!DATARMNETc3ffad4b30->DATARMNET5671455f38&&(DATARMNETf72fff5724&
- (0x32d+5244-0x1799)))||(DATARMNETf72fff5724&DATARMNETae352fd67d))return true;
- return false;}static bool DATARMNET4863e9c5ae(struct DATARMNET31caee06e2*
- DATARMNETd44a80d414,struct DATARMNETadd6ff90d0*DATARMNETc3ffad4b30){struct
- DATARMNET1bffb1c388*DATARMNETb5da236f91,*DATARMNET4e35bbb67d;u32
- DATARMNETf5bcfe1e17,DATARMNET5d971be8b8;DATARMNETb5da236f91=DATARMNETd44a80d414
- ->DATARMNET9a5f6d68d4;DATARMNET4e35bbb67d=DATARMNETc3ffad4b30->
- DATARMNET7ff34eacb7;DATARMNETf5bcfe1e17=DATARMNETb5da236f91->DATARMNET686636af95
- *(0x1cd7+2514-0x26a5);if(DATARMNET4e35bbb67d->DATARMNET686636af95*
- (0xee3+4488-0x2067)!=DATARMNETf5bcfe1e17)return true;for(DATARMNET5d971be8b8=
- sizeof(*DATARMNETb5da236f91);DATARMNET5d971be8b8<DATARMNETf5bcfe1e17;
- DATARMNET5d971be8b8+=(0xb4f+6315-0x23f6)){if(*(u32*)((u8*)DATARMNETb5da236f91+
- DATARMNET5d971be8b8)^*(u32*)((u8*)DATARMNET4e35bbb67d+DATARMNET5d971be8b8))
- return true;}return false;}static int DATARMNETb12f1716fd(struct
- DATARMNET31caee06e2*DATARMNETd44a80d414,struct DATARMNETadd6ff90d0*
- DATARMNETc3ffad4b30){struct DATARMNET1bffb1c388*DATARMNET4e35bbb67d=
- DATARMNETc3ffad4b30->DATARMNET7ff34eacb7;u64 DATARMNETd9527bfa5e;u32
- DATARMNET8875527b54,DATARMNETfc02a09052;if(DATARMNET505c932e93(
- DATARMNETc3ffad4b30)){DATARMNET5d24865423(DATARMNETf410872acc);return
- DATARMNET08dbe31d07;}if(!DATARMNETd44a80d414->DATARMNET30d367f886)return
- DATARMNET7d8a4bb6b1;if(DATARMNET4863e9c5ae(DATARMNETd44a80d414,
- DATARMNETc3ffad4b30)){DATARMNET5d24865423(DATARMNETa5e27cdfa7);return
- DATARMNET6b149bc29f;}DATARMNET8875527b54=(DATARMNETc3ffad4b30->
- DATARMNET798fafaf36->tcp_seq_set)?ntohl(DATARMNETc3ffad4b30->DATARMNET798fafaf36
- ->tcp_seq):ntohl(DATARMNET4e35bbb67d->DATARMNET614032cc71);if(
- DATARMNET8875527b54^DATARMNETd44a80d414->DATARMNET956bd73340){
- DATARMNET5d24865423(DATARMNETd13a32652d);return DATARMNET08dbe31d07;}
- DATARMNETfc02a09052=(DATARMNETc3ffad4b30->DATARMNET798fafaf36->gso_size)?:
- DATARMNETc3ffad4b30->DATARMNET5671455f38;if(DATARMNETfc02a09052!=
- DATARMNETd44a80d414->DATARMNET632219f39d){DATARMNET5d24865423(
- DATARMNET1cacdd7cfc);return DATARMNET6b149bc29f;}DATARMNETd9527bfa5e=
- DATARMNET3d487d950f(DATARMNETee792ef3a0);if(DATARMNETc3ffad4b30->
- DATARMNET5671455f38+DATARMNETd44a80d414->DATARMNET5f92dbf405>=
- DATARMNETd9527bfa5e){DATARMNET5d24865423(DATARMNET7dbef260b1);return
- DATARMNET6b149bc29f;}DATARMNETc3ffad4b30->DATARMNET1e7926dc4c=false;return
- DATARMNET7d8a4bb6b1;}bool DATARMNETb25a21aeeb(struct DATARMNET31caee06e2*
- DATARMNETd44a80d414,struct DATARMNETadd6ff90d0*DATARMNETc3ffad4b30,bool
- DATARMNETc72284bb2d){int DATARMNET094475d445;if(DATARMNETc72284bb2d){
- DATARMNET5d24865423(DATARMNET135dd1f8ca);DATARMNET3bdaf91675(DATARMNETd44a80d414
- );DATARMNETf9d626d72b(DATARMNETc3ffad4b30);return true;}DATARMNET094475d445=
- DATARMNETb12f1716fd(DATARMNETd44a80d414,DATARMNETc3ffad4b30);if(
- DATARMNET094475d445==DATARMNET7d8a4bb6b1){DATARMNETfc01092f09(
- DATARMNETd44a80d414,DATARMNETc3ffad4b30);}else if(DATARMNET094475d445==
- DATARMNET6b149bc29f){DATARMNET3bdaf91675(DATARMNETd44a80d414);
- DATARMNETfc01092f09(DATARMNETd44a80d414,DATARMNETc3ffad4b30);}else{
- DATARMNET3bdaf91675(DATARMNETd44a80d414);DATARMNETf9d626d72b(DATARMNETc3ffad4b30
- );}return true;}
|