OIDSBase.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  1. <?php
  2. // MikroTik - http://www.oidview.com/mibs/14988/MIKROTIK-MIB.html
  3. namespace CmtsBundle\SNMP\MIBS;
  4. class OIDSBase extends \CmtsBundle\SNMP\MIB {
  5. //CM
  6. const OID_docsIfCmStatusTxPower = "1.3.6.1.2.1.10.127.1.2.2.1.3"; //SNMP contra CM .channelCm > TxPower (v / 10)
  7. const OID_docsIfDownChannelPower = "1.3.6.1.2.1.10.127.1.1.1.1.6"; //SNMP contra CM .channelCm > RxPower (v / 10)
  8. const OID_docsIfSigQSignalNoise = "1.3.6.1.2.1.10.127.1.1.4.1.5"; //SNMP contra CM .channelCm > SNR (v / 10)
  9. const OID_docsIfSigQMicroreflections = "1.3.6.1.2.1.10.127.1.1.4.1.6"; //SNMP contra CM .channelCm > Microreflection (v)
  10. //Se utilizará en la vista de diagnóstico
  11. const OID_docsIfSigQUnerroreds = "1.3.6.1.2.1.10.127.1.1.4.1.2"; //SNMP contra CM .channelCm > Unerroreds
  12. const OID_docsIfSigQCorrecteds = "1.3.6.1.2.1.10.127.1.1.4.1.3"; //SNMP contra CM .channelCm > Correcteds
  13. const OID_docsIfSigQUncorrectables = "1.3.6.1.2.1.10.127.1.1.4.1.4"; //SNMP contra CM .channelCm > Uncorrectables
  14. const OID_sysUpTimeInstance = "1.3.6.1.2.1.1.3.0"; //SNMP contra CM > uptime CM Format: Timeticks: (213988400) 24 days, 18:24:44.00
  15. //CMTS
  16. const OID_docsIfCmtsCmStatusMacAddress = "1.3.6.1.2.1.10.127.1.3.3.1.2"; //cm_index > mac
  17. const OID_docsIfCmtsCmStatusIpAddress = "1.3.6.1.2.1.10.127.1.3.3.1.3"; //cm_index > ip
  18. const OID_docsIfCmtsCmStatusValue = "1.3.6.1.2.1.10.127.1.3.3.1.9"; //cm_index > state
  19. const OID_docsIfCmtsCmStatusUpChannelIfIndex = "1.3.6.1.2.1.10.127.1.3.3.1.5"; //cm_index > up interface
  20. const OID_docsIfCmtsCmStatusDownChannelIfIndex = "1.3.6.1.2.1.10.127.1.3.3.1.4"; //cm_index > down interface
  21. const OID_if_desc = "1.3.6.1.2.1.2.2.1.2"; //if_index > description
  22. const OID_system_description = '1.3.6.1.2.1.1.1.0'; //HOST SNMP DESCRIPTION
  23. const OID_if_in_octets = '1.3.6.1.2.1.2.2.1.10'; //if_index > in octets (counter32)
  24. const OID_if_out_octets = '1.3.6.1.2.1.2.2.1.16'; //if_index > out octets (counter32)
  25. const OID_docsIfCmtsCmStatusSignalNoise = "1.3.6.1.2.1.10.127.1.3.3.1.13"; //cm_index > snr de CM en CMTS
  26. const OID_docsIf3CmtsCmUsStatusSignalNoise = "1.3.6.1.4.1.4491.2.1.20.1.4.1.4";
  27. const OID_docsIfCmtsCmStatusRxPower = "1.3.6.1.2.1.10.127.1.3.3.1.6"; //cm_index > RX de cm en CMTS
  28. const OID_docsIf3CmtsCmUsStatusRxPower = "1.3.6.1.4.1.4491.2.1.20.1.4.1.3";
  29. const OID_docsIfCmtsCmStatusMicroreflections = "1.3.6.1.2.1.10.127.1.3.3.1.14"; //cm_index > MX de cm en CMTS
  30. const OID_docsIf3CmtsCmUsStatusMicroreflections = "1.3.6.1.4.1.4491.2.1.20.1.4.1.5";
  31. // Utilizar estos para medir lo que llega a la interfaz desde el cm
  32. const OID_docsIfCmtsCmStatusExtUnerroreds = "1.3.6.1.2.1.10.127.1.3.3.1.15";
  33. const OID_docsIf3CmtsCmUsStatusUnerroreds = "1.3.6.1.4.1.4491.2.1.20.1.4.1.7";
  34. const OID_docsIfCmtsCmStatusExtCorrecteds = "1.3.6.1.2.1.10.127.1.3.3.1.16";
  35. const OID_docsIf3CmtsCmUsStatusCorrecteds = "1.3.6.1.4.1.4491.2.1.20.1.4.1.8";
  36. const OID_docsIfCmtsCmStatusExtUncorrectables = "1.3.6.1.2.1.10.127.1.3.3.1.17";
  37. const OID_docsIf3CmtsCmUsStatusUncorrectables = "1.3.6.1.4.1.4491.2.1.20.1.4.1.9";
  38. const OID_docsIfCmtsChannelUtilization = "1.3.6.1.2.1.10.127.1.3.9.1.3";
  39. //Contra CMTS return mac > flows
  40. const OID_docsQosCmtsIfIndex = "1.3.6.1.2.1.10.127.7.1.11.1.3";
  41. const OID_docsQos3CmtsIfIndex = "1.3.6.1.4.1.4491.2.1.21.1.11.1.3";
  42. //Contra CMTS return flow > direction
  43. const OID_docsQosServiceFlowDirection = "1.3.6.1.2.1.10.127.7.1.3.1.7";
  44. const OID_docsQos3ServiceFlowDirection = "1.3.6.1.4.1.4491.2.1.21.1.3.1.7";
  45. //Contra CMTS return flow > octets
  46. const OID_docsQosServiceFlowOctets = "1.3.6.1.2.1.10.127.7.1.4.1.2";
  47. const OID_docsQos3ServiceFlowOctets = "1.3.6.1.4.1.4491.2.1.21.1.4.1.2";
  48. const OID_ipNetToMediaPhysAddress = "1.3.6.1.2.1.4.22.1.2";
  49. const OID_docsIfCmtsCmPtr = "1.3.6.1.2.1.10.127.1.3.7.1.2";
  50. const OID_docsIfDownChannelFrequency = "1.3.6.1.2.1.10.127.1.1.1.1.2";
  51. const OID_docsIfDownChannelModulation = "1.3.6.1.2.1.10.127.1.1.1.1.4";
  52. const OID_docsIfUpChannelFrequency = "1.3.6.1.2.1.10.127.1.1.2.1.2";
  53. const OID_docsIfUpChannelWidth = "1.3.6.1.2.1.10.127.1.1.2.1.3";
  54. const OID_docsIfSignalQualityTable = "1.3.6.1.2.1.10.127.1.1.4.1";
  55. const OID_ifEntry = "1.3.6.1.2.1.2.2.1";
  56. const OID_casaFlapListEntry = "1.3.6.1.4.1.20858.10.11.1.2.1";
  57. public function docsIfCmtsCmStatusMacAddress() {
  58. return $this->getSNMP()->lastOidWalk(self::OID_docsIfCmtsCmStatusMacAddress,14);
  59. }
  60. public function docsIfCmtsCmStatusValue() {
  61. return $this->getSNMP()->lastOidWalk(self::OID_docsIfCmtsCmStatusValue,14);
  62. }
  63. public function docsIfCmtsCmStatusIpAddress() {
  64. return $this->getSNMP()->lastOidWalk(self::OID_docsIfCmtsCmStatusIpAddress,14);
  65. }
  66. public function docsIfCmtsCmStatusUpChannelIfIndex() {
  67. return $this->getSNMP()->lastOidWalk(self::OID_docsIfCmtsCmStatusUpChannelIfIndex,14);
  68. }
  69. public function docsIfCmtsCmStatusDownChannelIfIndex() {
  70. return $this->getSNMP()->lastOidWalk(self::OID_docsIfCmtsCmStatusDownChannelIfIndex,14);
  71. }
  72. public function docsIfDescription() {
  73. return $this->getSNMP()->lastOidWalk(self::OID_if_desc,11);
  74. }
  75. public function systemDescription() {
  76. return $this->getSNMP()->lastOidWalk(self::OID_system_description,9);
  77. }
  78. public function docsIfCmtsChannelUtilization() {
  79. return $this->getSNMP()->lastOidWalk(self::OID_docsIfCmtsChannelUtilization,14);
  80. }
  81. public function inOctets() {
  82. return $this->getSNMP()->lastOidWalk(self::OID_if_in_octets,11);
  83. }
  84. public function outOctets() {
  85. return $this->getSNMP()->lastOidWalk(self::OID_if_out_octets,11);
  86. }
  87. //SNMP sobre CM ip
  88. public function docsIfCmStatusTxPower() {
  89. return $this->getSNMP()->lastOidWalk(self::OID_docsIfCmStatusTxPower,14);
  90. }
  91. public function docsIfDownChannelPower() {
  92. return $this->getSNMP()->lastOidWalk(self::OID_docsIfDownChannelPower,14);
  93. }
  94. public function docsIfSigQSignalNoise() {
  95. return $this->getSNMP()->lastOidWalk(self::OID_docsIfSigQSignalNoise,14);
  96. }
  97. public function docsIfSigQMicroreflections() {
  98. return $this->getSNMP()->lastOidWalk(self::OID_docsIfSigQMicroreflections,14);
  99. }
  100. public function docsIfSigQUnerroreds() {
  101. return $this->getSNMP()->lastOidWalk(self::OID_docsIfSigQUnerroreds,14);
  102. }
  103. public function docsIfSigQCorrecteds() {
  104. return $this->getSNMP()->lastOidWalk(self::OID_docsIfSigQCorrecteds,14);
  105. }
  106. public function docsIfSigQUncorrectables() {
  107. return $this->getSNMP()->lastOidWalk(self::OID_docsIfSigQUncorrectables,14);
  108. }
  109. public function sysUpTimeInstance() {
  110. return $this->getSNMP()->lastOidWalk(self::OID_sysUpTimeInstance,10);
  111. }
  112. //SNMP sobre CMTS ip
  113. public function docsIfCmtsCmStatusSignalNoise($version = 1) {
  114. if($version == 1) {
  115. return $this->getSNMP()->lastOidWalk(self::OID_docsIfCmtsCmStatusSignalNoise,14);
  116. } elseif($version == 2) {
  117. $res1 = $this->getSNMP()->lastOidWalk(self::OID_docsIfCmtsCmStatusSignalNoise,14);;
  118. $res3 = $this->getSNMP()->lastOidWalk(self::OID_docsIf3CmtsCmUsStatusSignalNoise,15);
  119. return array_merge($res1, $res3);
  120. } else {
  121. return $this->getSNMP()->lastOidWalk(self::OID_docsIf3CmtsCmUsStatusSignalNoise,15);
  122. }
  123. }
  124. public function docsIfCmtsCmStatusMicroreflections($version = 1) {
  125. if($version == 1) {
  126. return $this->getSNMP()->lastOidWalk(self::OID_docsIfCmtsCmStatusMicroreflections,14);
  127. } elseif($version == 2) {
  128. $res1 = $this->getSNMP()->lastOidWalk(self::OID_docsIfCmtsCmStatusMicroreflections,14);;
  129. $res3 = $this->getSNMP()->lastOidWalk(self::OID_docsIf3CmtsCmUsStatusMicroreflections,15);
  130. return array_merge($res1, $res3);
  131. } else {
  132. return $this->getSNMP()->lastOidWalk(self::OID_docsIf3CmtsCmUsStatusMicroreflections,15);
  133. }
  134. }
  135. public function docsIfCmtsCmStatusRxPower($version = 1) {
  136. if($version == 1) {
  137. return $this->getSNMP()->lastOidWalk(self::OID_docsIfCmtsCmStatusRxPower,14);
  138. } elseif($version == 2) {
  139. $res1 = $this->getSNMP()->lastOidWalk(self::OID_docsIfCmtsCmStatusRxPower,14);;
  140. $res3 = $this->getSNMP()->lastOidWalk(self::OID_docsIf3CmtsCmUsStatusRxPower,15);
  141. return array_merge($res1, $res3);
  142. } else {
  143. return $this->getSNMP()->lastOidWalk(self::OID_docsIf3CmtsCmUsStatusRxPower,15);
  144. }
  145. }
  146. public function docsQos3CmtsIfIndex($mac=null) {
  147. $return = array();
  148. if(!is_null($mac)){
  149. $oid = self::OID_docsQos3CmtsIfIndex .'.'.$this->getDecMac($mac);
  150. }else{
  151. $oid = self::OID_docsQos3CmtsIfIndex;
  152. }
  153. foreach((array)$this->getSNMP()->realWalk($oid) as $k => $v) {
  154. $k_prim = preg_split("|\.|",$k);
  155. if(count($k_prim) < 20)
  156. continue;
  157. $k_mac = sprintf("%02x%02x%02x%02x%02x%02x",
  158. $k_prim[15], $k_prim[16], $k_prim[17], $k_prim[18], $k_prim[19], $k_prim[20]);
  159. $return[$k_mac][] = $this->getSNMP()->parseSnmpValue($v). ".".$k_prim[21];
  160. }
  161. return $return;
  162. }
  163. public function docsQos3ServiceFlowDirection($translate=false) {
  164. $return = array();
  165. $oid = self::OID_docsQos3ServiceFlowDirection;
  166. $stats = $this->getSNMP()->realWalk($oid);
  167. foreach((array)$stats as $k => $v){
  168. $k_prim = preg_split("|\.|",$k);
  169. if(!isset($k_prim[15])) continue;
  170. $return[$k_prim[15].".".$k_prim[16]] = $this->getSNMP()->parseSnmpValue($v);
  171. }
  172. return $return;
  173. }
  174. public function docsQos3ServiceFlowOctets($ifId=null) {
  175. $return = array();
  176. if(!is_null($ifId)){
  177. $oid = self::OID_docsQos3ServiceFlowOctets ."." .$ifId;
  178. }else{
  179. $oid = self::OID_docsQos3ServiceFlowOctets;
  180. }
  181. foreach($this->getSNMP()->realWalk($oid) as $k => $v){
  182. $k_prim = preg_split("|\.|",$k);
  183. $return[$k_prim[15].".".$k_prim[16]] = $this->getSNMP()->parseSnmpValue($v);
  184. }
  185. return $return;
  186. }
  187. public function docsQosCmtsIfIndex($mac=null) {
  188. $return = array();
  189. if(!is_null($mac)){
  190. $oid = self::OID_docsQosCmtsIfIndex .'.'.$this->getDecMac($mac);
  191. }else{
  192. $oid = self::OID_docsQosCmtsIfIndex;
  193. }
  194. $ifIndex = $this->getSNMP()->realWalk($oid);
  195. if(!is_array($ifIndex)) return array();
  196. foreach($ifIndex as $k => $v){
  197. $k_prim = preg_split("|\.|",$k);
  198. if(!isset($k_prim[14]) OR !isset($k_prim[15]) OR !isset($k_prim[16]) OR !isset($k_prim[17]) OR !isset($k_prim[18]) OR !isset($k_prim[19])) continue;
  199. $k_mac = sprintf("%02x%02x%02x%02x%02x%02x", $k_prim[14], $k_prim[15], $k_prim[16], $k_prim[17], $k_prim[18], $k_prim[19]);
  200. $return[$k_mac][] = $this->getSNMP()->parseSnmpValue($v).".". $k_prim[20];
  201. }
  202. return $return;
  203. }
  204. public function docsQosServiceFlowDirection($translate=false) {
  205. $return = array();
  206. $oid = self::OID_docsQosServiceFlowDirection;
  207. $states = $this->getSNMP()->realWalk($oid);
  208. if(!is_array($states)) return array();
  209. foreach($states as $k => $v){
  210. $oid_arr = explode(".", $k);
  211. $return[$oid_arr[count($oid_arr) -2] . "." . $oid_arr[count($oid_arr) -1]] = $this->getSNMP()->parseSnmpValue($v);
  212. }
  213. return $return;
  214. }
  215. public function docsQosServiceFlowOctets($ifId=null) {
  216. $return = array();
  217. if(!is_null($ifId)){
  218. $oid = self::OID_docsQosServiceFlowOctets ."." .$ifId;
  219. }else{
  220. $oid = self::OID_docsQosServiceFlowOctets;
  221. }
  222. $stats = $this->getSNMP()->realWalk($oid);
  223. if(!is_array($stats)) return array();
  224. foreach($stats as $k => $v){
  225. $k_prim = explode(".",$k);
  226. $return[ $k_prim[count($k_prim) - 2] . "." . $k_prim[count($k_prim) - 1]] = $this->getSNMP()->parseSnmpValue($v);
  227. }
  228. return $return;
  229. }
  230. public function docsIfSignalQualityTable() {
  231. return $this->getSNMP()->lastOidWalk(self::OID_docsIfSignalQualityTable,13);
  232. }
  233. public function ifEntry() {
  234. return $this->getSNMP()->lastOidWalk(self::OID_ifEntry,10);
  235. }
  236. public function casaFlapListEntry() {
  237. return $this->getSNMP()->lastOidWalk(self::OID_casaFlapListEntry,13);
  238. }
  239. }