wlan_nan_msg_common_v2.h 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. /*
  2. * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
  3. *
  4. * Permission to use, copy, modify, and/or distribute this software for any
  5. * purpose with or without fee is hereby granted, provided that the above
  6. * copyright notice and this permission notice appear in all copies.
  7. *
  8. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  9. * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  10. * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  11. * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  12. * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  13. * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  14. * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  15. */
  16. #ifndef _WLAN_NAN_MSG_COMMON_V2_H_
  17. #define _WLAN_NAN_MSG_COMMON_V2_H_
  18. /*
  19. * WLAN NAN CONSTANTS
  20. */
  21. #ifndef PACKED_PRE
  22. #define PACKED_PRE PREPACK
  23. #endif
  24. #ifndef PACKED_POST
  25. #define PACKED_POST POSTPACK
  26. #endif
  27. /* ALL THE INTERFACE DEFINITIONS ARE ASSUMED TO BE IN LITTLE ENDIAN ORDER.
  28. * BIG ENDIAN HOST IS RESPONSIBLE TO SEND/INTERPRET MESSAGES IN LITTLE
  29. * ENDIAN FORMAT ONLY
  30. */
  31. /* NAN message IDs */
  32. typedef enum {
  33. NAN_MSG_ID_ERROR_RSP = 0,
  34. NAN_MSG_ID_CONFIGURATION_REQ = 1,
  35. NAN_MSG_ID_CONFIGURATION_RSP = 2,
  36. NAN_MSG_ID_PUBLISH_SERVICE_REQ = 3,
  37. NAN_MSG_ID_PUBLISH_SERVICE_RSP = 4,
  38. NAN_MSG_ID_PUBLISH_SERVICE_CANCEL_REQ = 5,
  39. NAN_MSG_ID_PUBLISH_SERVICE_CANCEL_RSP = 6,
  40. NAN_MSG_ID_PUBLISH_REPLIED_IND = 7,
  41. NAN_MSG_ID_PUBLISH_TERMINATED_IND = 8,
  42. NAN_MSG_ID_SUBSCRIBE_SERVICE_REQ = 9,
  43. NAN_MSG_ID_SUBSCRIBE_SERVICE_RSP = 10,
  44. NAN_MSG_ID_SUBSCRIBE_SERVICE_CANCEL_REQ = 11,
  45. NAN_MSG_ID_SUBSCRIBE_SERVICE_CANCEL_RSP = 12,
  46. NAN_MSG_ID_MATCH_IND = 13,
  47. NAN_MSG_ID_UNMATCH_IND = 14,
  48. NAN_MSG_ID_SUBSCRIBE_TERMINATED_IND = 15,
  49. NAN_MSG_ID_DE_EVENT_IND = 16,
  50. NAN_MSG_ID_TRANSMIT_FOLLOWUP_REQ = 17,
  51. NAN_MSG_ID_TRANSMIT_FOLLOWUP_RSP = 18,
  52. NAN_MSG_ID_FOLLOWUP_IND = 19,
  53. NAN_MSG_ID_STATS_REQ = 20,
  54. NAN_MSG_ID_STATS_RSP = 21,
  55. NAN_MSG_ID_ENABLE_REQ = 22,
  56. NAN_MSG_ID_ENABLE_RSP = 23,
  57. NAN_MSG_ID_DISABLE_REQ = 24,
  58. NAN_MSG_ID_DISABLE_RSP = 25,
  59. NAN_MSG_ID_DISABLE_IND = 26,
  60. NAN_MSG_ID_TCA_REQ = 27,
  61. NAN_MSG_ID_TCA_RSP = 28,
  62. NAN_MSG_ID_TCA_IND = 29,
  63. NAN_MSG_ID_BEACON_SDF_REQ = 30,
  64. NAN_MSG_ID_BEACON_SDF_RSP = 31,
  65. NAN_MSG_ID_BEACON_SDF_IND = 32,
  66. NAN_MSG_ID_CAPABILITIES_REQ = 33,
  67. NAN_MSG_ID_CAPABILITIES_RSP = 34,
  68. NAN_MSG_ID_SELF_TRANSMIT_FOLLOWUP_IND = 35,
  69. NAN_MSG_ID_RANGING_REQUEST_IND = 36,
  70. NAN_MSG_ID_RANGING_RESULT_IND = 37,
  71. /* Add regular/non-test mode messages here */
  72. NAN_MSG_ID_TESTMODE_REQ = 1025,
  73. } nan_msg_id_t;
  74. /* 8-byte control message header used by NAN */
  75. typedef PACKED_PRE struct PACKED_POST {
  76. A_UINT16 msg_version:4;
  77. A_UINT16 msg_id:12;
  78. A_UINT16 msg_len;
  79. A_UINT16 handle;
  80. A_UINT16 transaction_id;
  81. } nan_msg_header_t, *nan_msg_header_tp;
  82. #endif /* WLAN_NAN_MSG_COMMON_V2_H */