if_rmnet.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /* SPDX-License-Identifier: GPL-2.0-only
  2. * Copyright (c) 2013-2019, The Linux Foundation. All rights reserved.
  3. */
  4. #ifndef _LINUX_IF_RMNET_H_
  5. #define _LINUX_IF_RMNET_H_
  6. struct rmnet_map_header {
  7. #if defined(__LITTLE_ENDIAN_BITFIELD)
  8. u8 pad_len:6;
  9. u8 reserved_bit:1;
  10. u8 cd_bit:1;
  11. #elif defined (__BIG_ENDIAN_BITFIELD)
  12. u8 cd_bit:1;
  13. u8 reserved_bit:1;
  14. u8 pad_len:6;
  15. #else
  16. #error "Please fix <asm/byteorder.h>"
  17. #endif
  18. u8 mux_id;
  19. __be16 pkt_len;
  20. } __aligned(1);
  21. struct rmnet_map_dl_csum_trailer {
  22. u8 reserved1;
  23. #if defined(__LITTLE_ENDIAN_BITFIELD)
  24. u8 valid:1;
  25. u8 reserved2:7;
  26. #elif defined (__BIG_ENDIAN_BITFIELD)
  27. u8 reserved2:7;
  28. u8 valid:1;
  29. #else
  30. #error "Please fix <asm/byteorder.h>"
  31. #endif
  32. u16 csum_start_offset;
  33. u16 csum_length;
  34. __be16 csum_value;
  35. } __aligned(1);
  36. struct rmnet_map_ul_csum_header {
  37. __be16 csum_start_offset;
  38. #if defined(__LITTLE_ENDIAN_BITFIELD)
  39. u16 csum_insert_offset:14;
  40. u16 udp_ind:1;
  41. u16 csum_enabled:1;
  42. #elif defined (__BIG_ENDIAN_BITFIELD)
  43. u16 csum_enabled:1;
  44. u16 udp_ind:1;
  45. u16 csum_insert_offset:14;
  46. #else
  47. #error "Please fix <asm/byteorder.h>"
  48. #endif
  49. } __aligned(1);
  50. #endif /* !(_LINUX_IF_RMNET_H_) */