MMEName.c 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709
  1. /*====================================================================*
  2. Copyright (c) 2013,2018,2021 Qualcomm Technologies, Inc.
  3. All Rights Reserved.
  4. Confidential and Proprietary - Qualcomm Technologies, Inc.
  5. ******************************************************************
  6. 2013 Qualcomm Atheros, Inc.
  7. *--------------------------------------------------------------------*/
  8. /*====================================================================*
  9. *
  10. * char const * MMEName (uint16_t MMTYPE);
  11. *
  12. * mme.h
  13. *
  14. * Return HomePlug or Atheros Management Message name for a given
  15. * MMTYPE; this function is not needed but it could be useful when
  16. * developing and debugging applications;
  17. *
  18. * If you add or remove items in this list then update constant
  19. * MMTYPES to reflect the number of list members;
  20. *
  21. * Contributor(s):
  22. * Charles Maier <cmaier@qca.qualcomm.com>
  23. *
  24. *--------------------------------------------------------------------*/
  25. #ifndef MMENAME_SOURCE
  26. #define MMENAME_SOURCE
  27. #include "../mme/mme.h"
  28. static const struct mme_name
  29. {
  30. uint16_t type;
  31. char const * name;
  32. }
  33. mme_names [] =
  34. {
  35. {
  36. CC_CCO_APPOINT,
  37. "CC_CCO_APPOINT"
  38. },
  39. {
  40. CC_BACKUP_APPOINT,
  41. "CC_BACKUP_APPOINT"
  42. },
  43. {
  44. CC_LINK_INFO,
  45. "CC_LINK_INFO"
  46. },
  47. {
  48. CC_HANDOVER,
  49. "CC_HANDOVER"
  50. },
  51. {
  52. CC_HANDOVER_INFO,
  53. "CC_HANDOVER_INFO"
  54. },
  55. {
  56. CC_DISCOVER_LIST,
  57. "CC_DISCOVER_LIST"
  58. },
  59. {
  60. CC_LINK_NEW,
  61. "CC_LINK_NEW"
  62. },
  63. {
  64. CC_LINK_MOD,
  65. "CC_LINK_MOD"
  66. },
  67. {
  68. CC_LINK_SQZ,
  69. "CC_LINK_SQZ"
  70. },
  71. {
  72. CC_LINK_REL,
  73. "CC_LINK_REL"
  74. },
  75. {
  76. CC_DETECT_REPORT,
  77. "CC_DETECT_REPORT"
  78. },
  79. {
  80. CC_WHO_RU,
  81. "CC_WHO_RU"
  82. },
  83. {
  84. CC_ASSOC,
  85. "CC_ASSOC"
  86. },
  87. {
  88. CC_LEAVE,
  89. "CC_LEAVE"
  90. },
  91. {
  92. CC_SET_TEI_MAP,
  93. "CC_SET_TEI_MAP"
  94. },
  95. {
  96. CC_RELAY,
  97. "CC_RELAY"
  98. },
  99. {
  100. CC_BEACON_RELIABILITY,
  101. "CC_BEACON_RELIABILITY"
  102. },
  103. {
  104. CC_ALLOC_MOVE,
  105. "CC_ALLOC_MOVE"
  106. },
  107. {
  108. CC_ACCESS_NEW,
  109. "CC_ACCESS_NEW"
  110. },
  111. {
  112. CC_ACCESS_REL,
  113. "CC_ACCESS_REL"
  114. },
  115. {
  116. CC_DCPPC,
  117. "CC_DCPPC"
  118. },
  119. {
  120. CC_HP1_DET,
  121. "CC_HP1_DET"
  122. },
  123. {
  124. CC_BLE_UPDATE,
  125. "CC_BLE_UPDATE"
  126. },
  127. {
  128. CP_PROXY_APPOINT,
  129. "CP_PROXY_APPOINT"
  130. },
  131. {
  132. PH_PROXY_APPOINT,
  133. "PH_PROXY_APPOINT"
  134. },
  135. {
  136. CP_PROXY_WAKE,
  137. "CP_PROXY_WAKE"
  138. },
  139. {
  140. NN_INL,
  141. "NN_INL"
  142. },
  143. {
  144. NN_NEW_NET,
  145. "NN_NEW_NET"
  146. },
  147. {
  148. NN_ADD_ALLOC,
  149. "NN_ADD_ALLOC"
  150. },
  151. {
  152. NN_REL_ALLOC,
  153. "NN_REL_ALLOC"
  154. },
  155. {
  156. NN_REL_NET,
  157. "NN_REL_NET"
  158. },
  159. {
  160. CM_ASSOCIATED_STA,
  161. "CM_ASSOCIATED_STA"
  162. },
  163. {
  164. CM_ENCRYPTED_PAYLOAD,
  165. "CM_ENCRYPTED_PAYLOAD"
  166. },
  167. {
  168. CM_SET_KEY,
  169. "CM_SET_KEY"
  170. },
  171. {
  172. CM_GET_KEY,
  173. "CM_GET_KEY"
  174. },
  175. {
  176. CM_SC_JOIN,
  177. "CM_SC_JOIN"
  178. },
  179. {
  180. CM_CHAN_EST,
  181. "CM_CHAN_EST"
  182. },
  183. {
  184. CM_TM_UPDATE,
  185. "CM_TM_UPDATE"
  186. },
  187. {
  188. CM_AMP_MAP,
  189. "CM_AMP_MAP"
  190. },
  191. {
  192. CM_BRG_INFO,
  193. "CM_BRG_INFO"
  194. },
  195. {
  196. CM_CONN_NEW,
  197. "CM_CONN_NEW"
  198. },
  199. {
  200. CM_CONN_REL,
  201. "CM_CONN_REL"
  202. },
  203. {
  204. CM_CONN_MOD,
  205. "CM_CONN_MOD"
  206. },
  207. {
  208. CM_CONN_INFO,
  209. "CM_CONN_INFO"
  210. },
  211. {
  212. CM_STA_CAP,
  213. "CM_STA_CAP"
  214. },
  215. {
  216. CM_NW_INFO,
  217. "CM_NW_INFO"
  218. },
  219. {
  220. CM_GET_BEACON,
  221. "CM_GET_BEACON"
  222. },
  223. {
  224. CM_HFID,
  225. "CM_HFID"
  226. },
  227. {
  228. CM_MME_ERROR,
  229. "CM_MME_ERROR"
  230. },
  231. {
  232. CM_NW_STATS,
  233. "CM_NW_STATS"
  234. },
  235. {
  236. CM_SLAC_PARAM,
  237. "CM_SLAC_PARAM"
  238. },
  239. {
  240. CM_START_ATTEN_CHAR,
  241. "CM_START_ATTEN_CHAR"
  242. },
  243. {
  244. CM_ATTEN_CHAR,
  245. "CM_ATTEN_CHAR"
  246. },
  247. {
  248. CM_PKCS_CERT,
  249. "CM_PKCS_CERT"
  250. },
  251. {
  252. CM_MNBC_SOUND,
  253. "CM_MNBC_SOUND"
  254. },
  255. {
  256. CM_VALIDATE,
  257. "CM_VALIDATE"
  258. },
  259. {
  260. CM_SLAC_MATCH,
  261. "CM_SLAC_MATCH"
  262. },
  263. {
  264. CM_SLAC_USER_DATA,
  265. "CM_SLAC_USER_DATA"
  266. },
  267. {
  268. CM_ATTEN_PROFILE,
  269. "CM_ATTEN_PROFILE"
  270. },
  271. {
  272. MS_PB_ENC,
  273. "MS_PB_ENC"
  274. },
  275. {
  276. VS_SW_VER,
  277. "VS_SW_VER"
  278. },
  279. {
  280. VS_WR_MEM,
  281. "VS_WR_MEM"
  282. },
  283. {
  284. VS_RD_MEM,
  285. "VS_RD_MEM"
  286. },
  287. {
  288. VS_ST_MAC,
  289. "VS_ST_MAC"
  290. },
  291. {
  292. VS_GET_NVM,
  293. "VS_GET_NVM"
  294. },
  295. {
  296. 0xA014,
  297. "RESERVED"
  298. },
  299. {
  300. 0xA018,
  301. "RESERVED"
  302. },
  303. {
  304. VS_RS_DEV,
  305. "VS_RS_DEV"
  306. },
  307. {
  308. VS_WR_MOD,
  309. "VS_WR_MOD (D)"
  310. },
  311. {
  312. VS_RD_MOD,
  313. "VS_RD_MOD (D)"
  314. },
  315. {
  316. VS_MOD_NVM,
  317. "VS_MOD_NVM (D)"
  318. },
  319. {
  320. VS_WD_RPT,
  321. "VS_WD_RPT"
  322. },
  323. {
  324. VS_LNK_STATS,
  325. "VS_LNK_STATS"
  326. },
  327. {
  328. VS_SNIFFER,
  329. "VS_SNIFFER (P)"
  330. },
  331. {
  332. VS_NW_INFO,
  333. "VS_NW_INFO"
  334. },
  335. {
  336. 0xA03C,
  337. "RESERVED"
  338. },
  339. {
  340. VS_CP_RPT,
  341. "VS_CP_RPT"
  342. },
  343. {
  344. VS_ARPC,
  345. "VS_ARPC (P)"
  346. },
  347. {
  348. VS_FR_LBK,
  349. "VS_FR_LBK (P)"
  350. },
  351. {
  352. VS_LBK_STAT,
  353. "VS_LBK_STAT (P)"
  354. },
  355. {
  356. VS_SET_KEY,
  357. "VS_SET_KEY"
  358. },
  359. {
  360. VS_MFG_STRING,
  361. "VS_MFG_STRING"
  362. },
  363. {
  364. VS_RD_CBLOCK,
  365. "VS_RD_CBLOCK"
  366. },
  367. {
  368. VS_SET_SDRAM,
  369. "VS_SET_SDRAM"
  370. },
  371. {
  372. VS_HOST_ACTION,
  373. "VS_HOST_ACTION"
  374. },
  375. {
  376. VS_RD_BLK_NVM,
  377. "VS_RD_BLK_NVM (P)"
  378. },
  379. {
  380. VS_OP_ATTRIBUTES,
  381. "VS_OP_ATTRIBUTES"
  382. },
  383. {
  384. VS_ENET_SETTINGS,
  385. "VS_ENET_SETTINGS"
  386. },
  387. {
  388. VS_TONE_MAP_CHAR,
  389. "VS_TONE_MAP_CHAR"
  390. },
  391. {
  392. VS_NW_INFO_STATS,
  393. "VS_NW_INFO_STATS"
  394. },
  395. {
  396. VS_SLAVE_MEM,
  397. "VS_SLAVE_MEM"
  398. },
  399. {
  400. VS_FAC_DEFAULTS,
  401. "VS_FAC_DEFAULTS"
  402. },
  403. {
  404. VS_PTS_NVM,
  405. "VS_PTS_NVM (P)"
  406. },
  407. {
  408. VS_MULTICAST_INFO,
  409. "VS_MULTICAST_INFO (P)"
  410. },
  411. {
  412. VS_CLASSIFICATION,
  413. "VS_CLASSIFICATION"
  414. },
  415. {
  416. VS_DIAG_STAGE,
  417. "VS_DIAG_STAGE (P)"
  418. },
  419. {
  420. VS_RX_TONE_MAP_CHAR,
  421. "VS_RX_TONE_MAP_CHAR"
  422. },
  423. {
  424. VS_SET_LED_BEHAVIOR,
  425. "VS_SET_LED_BEHAVIOR"
  426. },
  427. {
  428. VS_WRITE_AND_EXECUTE_APPLET,
  429. "VS_WRITE_AND_EXECUTE_APPLET"
  430. },
  431. {
  432. VS_MDIO_COMMAND,
  433. "VS_MDIO_COMMAND"
  434. },
  435. {
  436. VS_SLAVE_REG,
  437. "VS_SLAVE_REG"
  438. },
  439. {
  440. VS_BANDWIDTH_LIMITING,
  441. "VS_BANDWIDTH_LIMITING"
  442. },
  443. {
  444. VS_SNID_OPERATION,
  445. "VS_SNID_OPERATION"
  446. },
  447. {
  448. VS_NN_MITIGATE,
  449. "VS_NN_MITIGATE"
  450. },
  451. {
  452. VS_MODULE_OPERATION,
  453. "VS_MODULE_OPERATION"
  454. },
  455. {
  456. VS_DIAG_NETWORK_PROBE,
  457. "VS_DIAG_NETWORK_PROBE"
  458. },
  459. {
  460. VS_PL_LINK_STATUS,
  461. "VS_PL_LINK_STATUS"
  462. },
  463. {
  464. VS_GPIO_STATE_CHANGE,
  465. "VS_GPIO_STATE_CHANGE"
  466. },
  467. {
  468. VS_CONN_ADD,
  469. "VS_CONN_ADD"
  470. },
  471. {
  472. VS_CONN_MOD,
  473. "VS_CONN_MOD"
  474. },
  475. {
  476. VS_CONN_REL,
  477. "VS_CONN_REL"
  478. },
  479. {
  480. VS_CONN_INFO,
  481. "VS_CONN_INFO"
  482. },
  483. {
  484. VS_MULTIPORT_LNK_STA,
  485. "VS_MULTIPORT_LNK_STA"
  486. },
  487. {
  488. VS_RAND_MAC_ADDR,
  489. "VS_RAND_MAC_ADDR (P)"
  490. },
  491. {
  492. VS_CUSTOM_INFO,
  493. "VS_CUSTOM_INFO (P)"
  494. },
  495. {
  496. VS_EM_ID_TABLE,
  497. "VS_EM_ID_TABLE"
  498. },
  499. {
  500. VS_STANDBY,
  501. "VS_STANDBY"
  502. },
  503. {
  504. VS_SLEEPSCHEDULE,
  505. "VS_SLEEPSCHEDULE"
  506. },
  507. {
  508. VS_SLEEPSCHEDULE_NOTIFICATION,
  509. "VS_SLEEPSCHEDULE_NOTIFICATION"
  510. },
  511. {
  512. 0xA0EC,
  513. "RESERVED"
  514. },
  515. {
  516. VS_MICROCONTROLLER_DIAG,
  517. "VS_MICROCONTROLLER_DIAG"
  518. },
  519. {
  520. VS_DEBUG_INFO,
  521. "VS_DEBUG_INFO (P)"
  522. },
  523. {
  524. VS_GET_PROPERTY,
  525. "VS_GET_PROPERTY"
  526. },
  527. {
  528. 0xA0FC,
  529. "RESERVED"
  530. },
  531. {
  532. VS_SET_PROPERTY,
  533. "VS_SET_PROPERTY"
  534. },
  535. {
  536. VS_PHYSWITCH_MDIO,
  537. "VS_PHYSWITCH_MDIO (P)"
  538. },
  539. {
  540. VS_FLASH_ERASE,
  541. "VS_FLASH_ERASE (P)"
  542. },
  543. {
  544. VS_SELFTEST_ONETIME_CONFIG,
  545. "VS_SELFTEST_ONETIME_CONFIG (P)"
  546. },
  547. {
  548. VS_SELFTEST_RESULTS,
  549. "VS_SELFTEST_RESULTS (P)"
  550. },
  551. {
  552. VS_MDU_TRAFFIC_STATS,
  553. "VS_MDU_TRAFFIC_STATS (P)"
  554. },
  555. {
  556. VS_FORWARD_CONFIG,
  557. "VS_FORWARD_CONFIG (P)"
  558. },
  559. {
  560. 0xA11C,
  561. "RESERVED"
  562. },
  563. {
  564. VS_ACCESS_LEVEL_CONTROL,
  565. "VS_ACCESS_LEVEL_CONTROL (P)"
  566. },
  567. {
  568. VS_ATTEN_CHAR,
  569. "VS_ATTEN_CHAR"
  570. },
  571. {
  572. VS_WIRETAP,
  573. "VS_WIRETAP"
  574. },
  575. {
  576. VS_BAT_PROG,
  577. "VS_BAT_PROG (P)"
  578. },
  579. {
  580. VS_ENCRYPTED_PAYLOAD,
  581. "VS_ENCRYPTED_PAYLOAD (P)"
  582. },
  583. {
  584. VS_SESSION_CONTROL,
  585. "VS_SESSION_CONTROL (P)"
  586. },
  587. {
  588. VS_HYBRID_INFO,
  589. "VS_HYBRID_INFO"
  590. },
  591. {
  592. VS_CONSOLE_MSG,
  593. "VS_CONSOLE_MSG"
  594. },
  595. {
  596. VS_SET_PRESCALER_BACKOFF,
  597. "VS_SET_PRESCALER_BACKOFF"
  598. },
  599. {
  600. VS_GET_PRESCALER_BACKOFF,
  601. "VS_GET_PRESCALER_BACKOFF"
  602. },
  603. {
  604. VS_TRAFFIC_GENERATOR,
  605. "VS_TRAFFIC_GENERATOR"
  606. },
  607. {
  608. VS_XDSL_DETECTION_STATUS,
  609. "VS_XDSL_DETECTION_STATUS"
  610. },
  611. {
  612. VS_TOPOLOGY_TABLE,
  613. "VS_TOPOLOGY_TABLE"
  614. }
  615. };
  616. char const * MMEName (uint16_t MMTYPE)
  617. {
  618. size_t lower = 0;
  619. size_t upper = SIZEOF (mme_names);
  620. MMTYPE &= MMTYPE_MASK;
  621. while (lower < upper)
  622. {
  623. size_t index = (lower + upper) >> 1;
  624. signed order = MMTYPE - mme_names [index].type;
  625. if (order < 0)
  626. {
  627. upper = index - 0;
  628. continue;
  629. }
  630. if (order > 0)
  631. {
  632. lower = index + 1;
  633. continue;
  634. }
  635. return (mme_names [index].name);
  636. }
  637. return ("UNKNOWN_MESSAGE_TYPE");
  638. }
  639. /*====================================================================*
  640. * print a multi-column list of MME codes and names on stdout;
  641. *--------------------------------------------------------------------*/
  642. #if 0
  643. #include <stdio.h>
  644. #define COLS 4
  645. #define WIDTH 22
  646. int main (int argc, char const * argv [])
  647. {
  648. unsigned cols = COLS;
  649. unsigned rows = ((SIZEOF (mme_names) + (COLS - 1)) / cols);
  650. unsigned row = 0;
  651. unsigned mme = 0;
  652. for (row = 0; row < rows; row++)
  653. {
  654. for (mme = row; mme < SIZEOF (mme_names); mme += rows)
  655. {
  656. printf ("%04X %-*.*s ", mme_names [mme].type, WIDTH, WIDTH, mme_names [mme].name);
  657. }
  658. printf ("\n");
  659. }
  660. return (0);
  661. }
  662. #endif
  663. /*====================================================================*
  664. * print MMEName table declaration on stdout;
  665. *--------------------------------------------------------------------*/
  666. #if 0
  667. #include <stdio.h>
  668. int main (int argc, char const * argv [])
  669. {
  670. unsigned mme = 0;
  671. for (mme = 0; mme < SIZEOF (mme_names); mme++)
  672. {
  673. printf ("{%s,\"%s\"},", mme_names [mme].name, mme_names [mme].name);
  674. // printf ("0x%04X;%s;yes;yes;yes\n", mme_names [mme].type, mme_names [mme].name);
  675. }
  676. return (0);
  677. }
  678. #endif
  679. /*====================================================================*
  680. *
  681. *--------------------------------------------------------------------*/
  682. #endif