ruledump.c 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. /*====================================================================*
  2. *
  3. * Copyright (c) 2013 Qualcomm Atheros, Inc.
  4. *
  5. * All rights reserved.
  6. *
  7. *====================================================================*/
  8. #ifndef RULEDUMP_SOURCE
  9. #define RULEDUMP_SOURCE
  10. #include <stdio.h>
  11. #include "../tools/memory.h"
  12. #include "../plc/rules.h"
  13. /*====================================================================*
  14. *
  15. * cspec_dump (struct cspec * cspec);
  16. *
  17. *--------------------------------------------------------------------*/
  18. void cspec_dump (struct cspec * cspec)
  19. {
  20. printf ("cspec->CSPEC_VERSION=%d\n", LE16TOH (cspec->CSPEC_VERSION));
  21. printf ("cspec->VLAN_TAG=%d\n", LE16TOH (cspec->VLAN_TAG));
  22. return;
  23. }
  24. /*====================================================================*
  25. *
  26. * MMEClassifierDump (struct MMEClassifier * classifier);
  27. *
  28. *--------------------------------------------------------------------*/
  29. void MMEClassifierDump (struct MMEClassifier * classifier)
  30. {
  31. char string [48];
  32. printf ("classifier->CR_PID=0x%02X\n", (unsigned) (classifier->CR_PID));
  33. printf ("classifier->CR_OPERAND=0x%02X\n", classifier->CR_OPERAND);
  34. hexdecode (classifier->CR_VALUE, sizeof (classifier->CR_VALUE), string, sizeof (string));
  35. printf ("classifier->CR_VALUE=%s\n", string);
  36. return;
  37. }
  38. /*====================================================================*
  39. *
  40. * PIBClassifierDump (struct PIBClassifier * classifier);
  41. *
  42. *--------------------------------------------------------------------*/
  43. void PIBClassifierDump (struct PIBClassifier * classifier)
  44. {
  45. char string [48];
  46. printf ("classifier->CR_PID=0x%08X\n", LE32TOH (classifier->CR_PID));
  47. printf ("classifier->CR_OPERAND=0x%08X\n", LE32TOH (classifier->CR_OPERAND));
  48. hexdecode (classifier->CR_VALUE, sizeof (classifier->CR_VALUE), string, sizeof (string));
  49. printf ("classifier->CR_VALUE=%s\n", string);
  50. return;
  51. }
  52. /*====================================================================*
  53. *
  54. * MMERuleDump (struct MMERule * rule);
  55. *
  56. *--------------------------------------------------------------------*/
  57. void MMERuleDump (struct MMERule * rule)
  58. {
  59. unsigned count;
  60. printf ("rule->MCONTROL=%d\n", rule->MCONTROL);
  61. printf ("rule->MVOLATILITY=%d\n", rule->MVOLATILITY);
  62. printf ("rule->MACTION=%d\n", rule->MACTION);
  63. printf ("rule->MOPERAND=%d\n", rule->MOPERAND);
  64. printf ("rule->NUM_CLASSIFIERS=%d\n", rule->NUM_CLASSIFIERS);
  65. for (count = 0; count < rule->NUM_CLASSIFIERS; count++)
  66. {
  67. MMEClassifierDump (& rule->CLASSIFIER [count]);
  68. }
  69. cspec_dump (& rule->cspec);
  70. printf ("\n");
  71. return;
  72. }
  73. /*====================================================================*
  74. *
  75. * PIBRuleDump (struct PIBRule * rule);
  76. *
  77. *--------------------------------------------------------------------*/
  78. void PIBRuleDump (struct PIBRule * rule)
  79. {
  80. unsigned count;
  81. printf ("rule->MCONTROL=%d\n", rule->MCONTROL);
  82. printf ("rule->MVOLATILITY=%d\n", rule->MVOLATILITY);
  83. printf ("rule->MACTION=%d\n", rule->MACTION);
  84. printf ("rule->MOPERAND=%d\n", rule->MOPERAND);
  85. printf ("rule->NUM_CLASSIFIERS=%d\n", LE32TOH (rule->NUM_CLASSIFIERS));
  86. for (count = 0; count < LE32TOH (rule->NUM_CLASSIFIERS); count++)
  87. {
  88. PIBClassifierDump (& rule->CLASSIFIER [count]);
  89. }
  90. cspec_dump (& rule->cspec);
  91. printf ("\n");
  92. return;
  93. }
  94. /*====================================================================*
  95. *
  96. * classifier_priority_map_dump (struct classifier_priority_map * classifier_priority_map);
  97. *
  98. *--------------------------------------------------------------------*/
  99. void classifier_priority_map_dump (struct classifier_priority_map * classifier_priority_map)
  100. {
  101. printf ("classifier_priority_map->Priority=%d\n", LE32TOH (classifier_priority_map->Priority));
  102. PIBClassifierDump (& classifier_priority_map->CLASSIFIER);
  103. return;
  104. }
  105. /*====================================================================*
  106. *
  107. * auto_connection_dump (struct auto_connection * auto_connection);
  108. *
  109. *--------------------------------------------------------------------*/
  110. void auto_connection_dump (struct auto_connection * auto_connection)
  111. {
  112. unsigned count;
  113. printf ("auto_connection->MACTION=%d\n", auto_connection->MACTION);
  114. printf ("auto_connection->MOPERAND=%d\n", auto_connection->MOPERAND);
  115. printf ("auto_connection->NUM_CLASSIFIERS=%d\n", LE16TOH (auto_connection->NUM_CLASSIFIERS));
  116. for (count = 0; count < LE16TOH (auto_connection->NUM_CLASSIFIERS); count++)
  117. {
  118. PIBClassifierDump (& auto_connection->CLASSIFIER [count]);
  119. }
  120. cspec_dump (& auto_connection->cspec);
  121. return;
  122. }
  123. /*====================================================================*
  124. *
  125. * PIBClassifiersDump (struct PIBClassifiers * classifiers);
  126. *
  127. *--------------------------------------------------------------------*/
  128. void PIBClassifiersDump (struct PIBClassifiers * classifiers)
  129. {
  130. unsigned count;
  131. printf ("classifiers->priority_count=%d\n", LE32TOH (classifiers->priority_count));
  132. printf ("classifiers->autoconn_count=%d\n", LE32TOH (classifiers->autoconn_count));
  133. printf ("\n");
  134. printf ("-------- PRIORITY MAPS --------\n\n");
  135. for (count = 0; count < LE32TOH (classifiers->priority_count); count++)
  136. {
  137. classifier_priority_map_dump (& classifiers->classifier_priority_map [count]);
  138. }
  139. printf ("\n");
  140. printf ("-------- AUTO CONNECTIONS --------\n\n");
  141. for (count = 0; count < LE32TOH (classifiers->autoconn_count); count++)
  142. {
  143. auto_connection_dump (& classifiers->auto_connection [count]);
  144. }
  145. printf ("\n");
  146. return;
  147. }
  148. /*====================================================================*
  149. *
  150. *--------------------------------------------------------------------*/
  151. #endif