rmnet_offload_tcp.c 4.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
  2. *
  3. * This program is free software; you can redistribute it and/or modify
  4. * it under the terms of the GNU General Public License version 2 and
  5. * only version 2 as published by the Free Software Foundation.
  6. *
  7. * This program is distributed in the hope that it will be useful,
  8. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. * GNU General Public License for more details.
  11. */
  12. #include "rmnet_descriptor.h"
  13. #include "rmnet_offload_main.h"
  14. #include "rmnet_offload_engine.h"
  15. #include "rmnet_offload_stats.h"
  16. #include "rmnet_offload_knob.h"
  17. static bool DATARMNET505c932e93(struct DATARMNETadd6ff90d0*DATARMNETc3ffad4b30){
  18. struct DATARMNET1bffb1c388*DATARMNETbd1c0986f8=DATARMNETc3ffad4b30->
  19. DATARMNET7ff34eacb7;__be32 DATARMNETae352fd67d;u8 DATARMNETf72fff5724=
  20. DATARMNETbd1c0986f8->DATARMNETf538480d20;DATARMNETae352fd67d=(0x89d+3341-0x14fb)
  21. ;if((!DATARMNETc3ffad4b30->DATARMNET5671455f38&&(DATARMNETf72fff5724&
  22. (0x32d+5244-0x1799)))||(DATARMNETf72fff5724&DATARMNETae352fd67d))return true;
  23. return false;}static bool DATARMNET4863e9c5ae(struct DATARMNET31caee06e2*
  24. DATARMNETd44a80d414,struct DATARMNETadd6ff90d0*DATARMNETc3ffad4b30){struct
  25. DATARMNET1bffb1c388*DATARMNETb5da236f91,*DATARMNET4e35bbb67d;u32
  26. DATARMNETf5bcfe1e17,DATARMNET5d971be8b8;DATARMNETb5da236f91=DATARMNETd44a80d414
  27. ->DATARMNET9a5f6d68d4;DATARMNET4e35bbb67d=DATARMNETc3ffad4b30->
  28. DATARMNET7ff34eacb7;DATARMNETf5bcfe1e17=DATARMNETb5da236f91->DATARMNET686636af95
  29. *(0x1cd7+2514-0x26a5);if(DATARMNET4e35bbb67d->DATARMNET686636af95*
  30. (0xee3+4488-0x2067)!=DATARMNETf5bcfe1e17)return true;for(DATARMNET5d971be8b8=
  31. sizeof(*DATARMNETb5da236f91);DATARMNET5d971be8b8<DATARMNETf5bcfe1e17;
  32. DATARMNET5d971be8b8+=(0xb4f+6315-0x23f6)){if(*(u32*)((u8*)DATARMNETb5da236f91+
  33. DATARMNET5d971be8b8)^*(u32*)((u8*)DATARMNET4e35bbb67d+DATARMNET5d971be8b8))
  34. return true;}return false;}static int DATARMNETb12f1716fd(struct
  35. DATARMNET31caee06e2*DATARMNETd44a80d414,struct DATARMNETadd6ff90d0*
  36. DATARMNETc3ffad4b30){struct DATARMNET1bffb1c388*DATARMNET4e35bbb67d=
  37. DATARMNETc3ffad4b30->DATARMNET7ff34eacb7;u64 DATARMNETd9527bfa5e;u32
  38. DATARMNET8875527b54,DATARMNETfc02a09052;if(DATARMNET505c932e93(
  39. DATARMNETc3ffad4b30)){DATARMNET5d24865423(DATARMNETf410872acc);return
  40. DATARMNET08dbe31d07;}if(!DATARMNETd44a80d414->DATARMNET30d367f886)return
  41. DATARMNET7d8a4bb6b1;if(DATARMNET4863e9c5ae(DATARMNETd44a80d414,
  42. DATARMNETc3ffad4b30)){DATARMNET5d24865423(DATARMNETa5e27cdfa7);return
  43. DATARMNET6b149bc29f;}DATARMNET8875527b54=(DATARMNETc3ffad4b30->
  44. DATARMNET798fafaf36->tcp_seq_set)?ntohl(DATARMNETc3ffad4b30->DATARMNET798fafaf36
  45. ->tcp_seq):ntohl(DATARMNET4e35bbb67d->DATARMNET614032cc71);if(
  46. DATARMNET8875527b54^DATARMNETd44a80d414->DATARMNET956bd73340){
  47. DATARMNET5d24865423(DATARMNETd13a32652d);return DATARMNET08dbe31d07;}
  48. DATARMNETfc02a09052=(DATARMNETc3ffad4b30->DATARMNET798fafaf36->gso_size)?:
  49. DATARMNETc3ffad4b30->DATARMNET5671455f38;if(DATARMNETfc02a09052!=
  50. DATARMNETd44a80d414->DATARMNET632219f39d){DATARMNET5d24865423(
  51. DATARMNET1cacdd7cfc);return DATARMNET6b149bc29f;}DATARMNETd9527bfa5e=
  52. DATARMNET3d487d950f(DATARMNETee792ef3a0);if(DATARMNETc3ffad4b30->
  53. DATARMNET5671455f38+DATARMNETd44a80d414->DATARMNET5f92dbf405>=
  54. DATARMNETd9527bfa5e){DATARMNET5d24865423(DATARMNET7dbef260b1);return
  55. DATARMNET6b149bc29f;}DATARMNETc3ffad4b30->DATARMNET1e7926dc4c=false;return
  56. DATARMNET7d8a4bb6b1;}bool DATARMNETb25a21aeeb(struct DATARMNET31caee06e2*
  57. DATARMNETd44a80d414,struct DATARMNETadd6ff90d0*DATARMNETc3ffad4b30,bool
  58. DATARMNETc72284bb2d){int DATARMNET094475d445;if(DATARMNETc72284bb2d){
  59. DATARMNET5d24865423(DATARMNET135dd1f8ca);DATARMNET3bdaf91675(DATARMNETd44a80d414
  60. );DATARMNETf9d626d72b(DATARMNETc3ffad4b30);return true;}DATARMNET094475d445=
  61. DATARMNETb12f1716fd(DATARMNETd44a80d414,DATARMNETc3ffad4b30);if(
  62. DATARMNET094475d445==DATARMNET7d8a4bb6b1){DATARMNETfc01092f09(
  63. DATARMNETd44a80d414,DATARMNETc3ffad4b30);}else if(DATARMNET094475d445==
  64. DATARMNET6b149bc29f){DATARMNET3bdaf91675(DATARMNETd44a80d414);
  65. DATARMNETfc01092f09(DATARMNETd44a80d414,DATARMNETc3ffad4b30);}else{
  66. DATARMNET3bdaf91675(DATARMNETd44a80d414);DATARMNETf9d626d72b(DATARMNETc3ffad4b30
  67. );}return true;}