OIDSBase.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314
  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. public function docsIfCmtsCmStatusMacAddress() {
  55. return $this->getSNMP()->lastOidWalk(self::OID_docsIfCmtsCmStatusMacAddress,14);
  56. }
  57. public function docsIfCmtsCmStatusValue() {
  58. return $this->getSNMP()->lastOidWalk(self::OID_docsIfCmtsCmStatusValue,14);
  59. }
  60. public function docsIfCmtsCmStatusIpAddress() {
  61. return $this->getSNMP()->lastOidWalk(self::OID_docsIfCmtsCmStatusIpAddress,14);
  62. }
  63. public function docsIfCmtsCmStatusUpChannelIfIndex() {
  64. return $this->getSNMP()->lastOidWalk(self::OID_docsIfCmtsCmStatusUpChannelIfIndex,14);
  65. }
  66. public function docsIfCmtsCmStatusDownChannelIfIndex() {
  67. return $this->getSNMP()->lastOidWalk(self::OID_docsIfCmtsCmStatusDownChannelIfIndex,14);
  68. }
  69. public function docsIfDescription() {
  70. return $this->getSNMP()->lastOidWalk(self::OID_if_desc,11);
  71. }
  72. public function systemDescription() {
  73. return $this->getSNMP()->lastOidWalk(self::OID_system_description,9);
  74. }
  75. public function docsIfCmtsChannelUtilization() {
  76. return $this->getSNMP()->lastOidWalk(self::OID_docsIfCmtsChannelUtilization,14);
  77. }
  78. public function inOctets() {
  79. return $this->getSNMP()->lastOidWalk(self::OID_if_in_octets,11);
  80. }
  81. public function outOctets() {
  82. return $this->getSNMP()->lastOidWalk(self::OID_if_out_octets,11);
  83. }
  84. //SNMP sobre CM ip
  85. public function docsIfCmStatusTxPower() {
  86. return $this->getSNMP()->lastOidWalk(self::OID_docsIfCmStatusTxPower,14);
  87. }
  88. public function docsIfDownChannelPower() {
  89. return $this->getSNMP()->lastOidWalk(self::OID_docsIfDownChannelPower,14);
  90. }
  91. public function docsIfSigQSignalNoise() {
  92. return $this->getSNMP()->lastOidWalk(self::OID_docsIfSigQSignalNoise,14);
  93. }
  94. public function docsIfSigQMicroreflections() {
  95. return $this->getSNMP()->lastOidWalk(self::OID_docsIfSigQMicroreflections,14);
  96. }
  97. public function docsIfSigQUnerroreds() {
  98. return $this->getSNMP()->lastOidWalk(self::OID_docsIfSigQUnerroreds,14);
  99. }
  100. public function docsIfSigQCorrecteds() {
  101. return $this->getSNMP()->lastOidWalk(self::OID_docsIfSigQCorrecteds,14);
  102. }
  103. public function docsIfSigQUncorrectables() {
  104. return $this->getSNMP()->lastOidWalk(self::OID_docsIfSigQUncorrectables,14);
  105. }
  106. public function sysUpTimeInstance() {
  107. return $this->getSNMP()->lastOidWalk(self::OID_sysUpTimeInstance,10);
  108. }
  109. //SNMP sobre CMTS ip
  110. public function docsIfCmtsCmStatusSignalNoise($version = 1) {
  111. if($version == 1) {
  112. return $this->getSNMP()->lastOidWalk(self::OID_docsIfCmtsCmStatusSignalNoise,14);
  113. } elseif($version == 2) {
  114. $res1 = $this->getSNMP()->lastOidWalk(self::OID_docsIfCmtsCmStatusSignalNoise,14);;
  115. $res3 = $this->getSNMP()->lastOidWalk(self::OID_docsIf3CmtsCmUsStatusSignalNoise,15);
  116. return array_merge($res1, $res3);
  117. } else {
  118. return $this->getSNMP()->lastOidWalk(self::OID_docsIf3CmtsCmUsStatusSignalNoise,15);
  119. }
  120. }
  121. public function docsIfCmtsCmStatusMicroreflections($version = 1) {
  122. if($version == 1) {
  123. return $this->getSNMP()->lastOidWalk(self::OID_docsIfCmtsCmStatusMicroreflections,14);
  124. } elseif($version == 2) {
  125. $res1 = $this->getSNMP()->lastOidWalk(self::OID_docsIfCmtsCmStatusMicroreflections,14);;
  126. $res3 = $this->getSNMP()->lastOidWalk(self::OID_docsIf3CmtsCmUsStatusMicroreflections,15);
  127. return array_merge($res1, $res3);
  128. } else {
  129. return $this->getSNMP()->lastOidWalk(self::OID_docsIf3CmtsCmUsStatusMicroreflections,15);
  130. }
  131. }
  132. public function docsIfCmtsCmStatusRxPower($version = 1) {
  133. if($version == 1) {
  134. return $this->getSNMP()->lastOidWalk(self::OID_docsIfCmtsCmStatusRxPower,14);
  135. } elseif($version == 2) {
  136. $res1 = $this->getSNMP()->lastOidWalk(self::OID_docsIfCmtsCmStatusRxPower,14);;
  137. $res3 = $this->getSNMP()->lastOidWalk(self::OID_docsIf3CmtsCmUsStatusRxPower,15);
  138. return array_merge($res1, $res3);
  139. } else {
  140. return $this->getSNMP()->lastOidWalk(self::OID_docsIf3CmtsCmUsStatusRxPower,15);
  141. }
  142. }
  143. public function docsQos3CmtsIfIndex($mac=null) {
  144. $return = array();
  145. if(!is_null($mac)){
  146. $oid = self::OID_docsQos3CmtsIfIndex .'.'.$this->getDecMac($mac);
  147. }else{
  148. $oid = self::OID_docsQos3CmtsIfIndex;
  149. }
  150. foreach((array)$this->getSNMP()->realWalk($oid) as $k => $v) {
  151. $k_prim = preg_split("|\.|",$k);
  152. if(count($k_prim) < 20)
  153. continue;
  154. $k_mac = sprintf("%02x%02x%02x%02x%02x%02x",
  155. $k_prim[15], $k_prim[16], $k_prim[17], $k_prim[18], $k_prim[19], $k_prim[20]);
  156. $return[$k_mac][] = $this->getSNMP()->parseSnmpValue($v). ".".$k_prim[21];
  157. }
  158. return $return;
  159. }
  160. public function docsQos3ServiceFlowDirection($translate=false) {
  161. $return = array();
  162. $oid = self::OID_docsQos3ServiceFlowDirection;
  163. $stats = $this->getSNMP()->realWalk($oid);
  164. foreach((array)$stats as $k => $v){
  165. $k_prim = preg_split("|\.|",$k);
  166. if(!isset($k_prim[15])) continue;
  167. $return[$k_prim[15].".".$k_prim[16]] = $this->getSNMP()->parseSnmpValue($v);
  168. }
  169. return $return;
  170. }
  171. public function docsQos3ServiceFlowOctets($ifId=null) {
  172. $return = array();
  173. if(!is_null($ifId)){
  174. $oid = self::OID_docsQos3ServiceFlowOctets ."." .$ifId;
  175. }else{
  176. $oid = self::OID_docsQos3ServiceFlowOctets;
  177. }
  178. foreach($this->getSNMP()->realWalk($oid) as $k => $v){
  179. $k_prim = preg_split("|\.|",$k);
  180. $return[$k_prim[15].".".$k_prim[16]] = $this->getSNMP()->parseSnmpValue($v);
  181. }
  182. return $return;
  183. }
  184. public function docsQosCmtsIfIndex($mac=null) {
  185. $return = array();
  186. if(!is_null($mac)){
  187. $oid = self::OID_docsQosCmtsIfIndex .'.'.$this->getDecMac($mac);
  188. }else{
  189. $oid = self::OID_docsQosCmtsIfIndex;
  190. }
  191. $ifIndex = $this->getSNMP()->realWalk($oid);
  192. if(!is_array($ifIndex)) return array();
  193. foreach($ifIndex as $k => $v){
  194. $k_prim = preg_split("|\.|",$k);
  195. 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;
  196. $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]);
  197. $return[$k_mac][] = $this->getSNMP()->parseSnmpValue($v).".". $k_prim[20];
  198. }
  199. return $return;
  200. }
  201. public function docsQosServiceFlowDirection($translate=false) {
  202. $return = array();
  203. $oid = self::OID_docsQosServiceFlowDirection;
  204. $states = $this->getSNMP()->realWalk($oid);
  205. if(!is_array($states)) return array();
  206. foreach($states as $k => $v){
  207. $oid_arr = explode(".", $k);
  208. $return[$oid_arr[count($oid_arr) -2] . "." . $oid_arr[count($oid_arr) -1]] = $this->getSNMP()->parseSnmpValue($v);
  209. }
  210. return $return;
  211. }
  212. public function docsQosServiceFlowOctets($ifId=null) {
  213. $return = array();
  214. if(!is_null($ifId)){
  215. $oid = self::OID_docsQosServiceFlowOctets ."." .$ifId;
  216. }else{
  217. $oid = self::OID_docsQosServiceFlowOctets;
  218. }
  219. $stats = $this->getSNMP()->realWalk($oid);
  220. if(!is_array($stats)) return array();
  221. foreach($stats as $k => $v){
  222. $k_prim = explode(".",$k);
  223. $return[ $k_prim[count($k_prim) - 2] . "." . $k_prim[count($k_prim) - 1]] = $this->getSNMP()->parseSnmpValue($v);
  224. }
  225. return $return;
  226. }
  227. }