|
4 | 4 | from bisect import bisect_right |
5 | 5 |
|
6 | 6 | from sonic_ax_impl import mibs |
7 | | -from ax_interface import MIBMeta, ValueType, MIBUpdater, MIBEntry, SubtreeMIBEntry |
| 7 | +from ax_interface.mib import MIBMeta, ValueType, MIBUpdater, MIBEntry, SubtreeMIBEntry, OverlayAdpaterMIBEntry, OidMIBEntry |
8 | 8 | from ax_interface.encodings import ObjectIdentifier |
9 | 9 | from ax_interface.util import mac_decimals, ip2tuple_v4 |
10 | 10 |
|
11 | | - |
12 | 11 | @unique |
13 | 12 | class DbTables(int, Enum): |
14 | 13 | """ |
@@ -271,6 +270,7 @@ def get_counter(self, sub_id, table_name): |
271 | 270 | :param table_name: the redis table (either IntEnum or string literal) to query. |
272 | 271 | :return: the counter for the respective sub_id/table. |
273 | 272 | """ |
| 273 | + |
274 | 274 | oid = self.get_oid(sub_id) |
275 | 275 | if not oid: |
276 | 276 | return |
@@ -423,14 +423,15 @@ def get_if_type(self, sub_id): |
423 | 423 | else: |
424 | 424 | return IfTypes.ethernetCsmacd |
425 | 425 |
|
426 | | - |
427 | 426 | class InterfacesMIB(metaclass=MIBMeta, prefix='.1.3.6.1.2.1.2'): |
428 | 427 | """ |
429 | 428 | 'interfaces' https://tools.ietf.org/html/rfc1213#section-3.5 |
430 | 429 | """ |
431 | 430 |
|
432 | 431 | if_updater = InterfacesUpdater() |
433 | 432 |
|
| 433 | + oidtree_updater = mibs.RedisOidTreeUpdater(prefix_str='1.3.6.1.2.1.2') |
| 434 | + |
434 | 435 | # (subtree, value_type, callable_, *args, handler=None) |
435 | 436 | ifNumber = MIBEntry('1', ValueType.INTEGER, if_updater.get_if_number) |
436 | 437 |
|
@@ -467,52 +468,88 @@ class InterfacesMIB(metaclass=MIBMeta, prefix='.1.3.6.1.2.1.2'): |
467 | 468 | SubtreeMIBEntry('2.1.9', if_updater, ValueType.TIME_TICKS, lambda sub_id: 0) |
468 | 469 |
|
469 | 470 | ifInOctets = \ |
470 | | - SubtreeMIBEntry('2.1.10', if_updater, ValueType.COUNTER_32, if_updater.get_counter, |
471 | | - DbTables(10)) |
| 471 | + OverlayAdpaterMIBEntry( |
| 472 | + SubtreeMIBEntry('2.1.10', if_updater, ValueType.COUNTER_32, if_updater.get_counter, |
| 473 | + DbTables(10)), |
| 474 | + OidMIBEntry('2.1.10', ValueType.COUNTER_32, oidtree_updater.get_oidvalue) |
| 475 | + ) |
472 | 476 |
|
473 | 477 | ifInUcastPkts = \ |
474 | | - SubtreeMIBEntry('2.1.11', if_updater, ValueType.COUNTER_32, if_updater.get_counter, |
475 | | - DbTables(11)) |
| 478 | + OverlayAdpaterMIBEntry( |
| 479 | + SubtreeMIBEntry('2.1.11', if_updater, ValueType.COUNTER_32, if_updater.get_counter, |
| 480 | + DbTables(11)), |
| 481 | + OidMIBEntry('2.1.11', ValueType.COUNTER_32, oidtree_updater.get_oidvalue) |
| 482 | + ) |
476 | 483 |
|
477 | 484 | ifInNUcastPkts = \ |
478 | | - SubtreeMIBEntry('2.1.12', if_updater, ValueType.COUNTER_32, if_updater.get_counter, |
479 | | - DbTables(12)) |
| 485 | + OverlayAdpaterMIBEntry( |
| 486 | + SubtreeMIBEntry('2.1.12', if_updater, ValueType.COUNTER_32, if_updater.get_counter, |
| 487 | + DbTables(12)), |
| 488 | + OidMIBEntry('2.1.12', ValueType.COUNTER_32, oidtree_updater.get_oidvalue) |
| 489 | + ) |
480 | 490 |
|
481 | 491 | ifInDiscards = \ |
482 | | - SubtreeMIBEntry('2.1.13', if_updater, ValueType.COUNTER_32, if_updater.get_counter, |
483 | | - DbTables(13)) |
| 492 | + OverlayAdpaterMIBEntry( |
| 493 | + SubtreeMIBEntry('2.1.13', if_updater, ValueType.COUNTER_32, if_updater.get_counter, |
| 494 | + DbTables(13)), |
| 495 | + OidMIBEntry('2.1.13', ValueType.COUNTER_32, oidtree_updater.get_oidvalue) |
| 496 | + ) |
484 | 497 |
|
485 | 498 | ifInErrors = \ |
486 | | - SubtreeMIBEntry('2.1.14', if_updater, ValueType.COUNTER_32, if_updater.get_counter, |
487 | | - DbTables(14)) |
| 499 | + OverlayAdpaterMIBEntry( |
| 500 | + SubtreeMIBEntry('2.1.14', if_updater, ValueType.COUNTER_32, if_updater.get_counter, |
| 501 | + DbTables(14)), |
| 502 | + OidMIBEntry('2.1.14', ValueType.COUNTER_32, oidtree_updater.get_oidvalue) |
| 503 | + ) |
488 | 504 |
|
489 | 505 | ifInUnknownProtos = \ |
490 | | - SubtreeMIBEntry('2.1.15', if_updater, ValueType.COUNTER_32, if_updater.get_counter, |
491 | | - DbTables(15)) |
| 506 | + OverlayAdpaterMIBEntry( |
| 507 | + SubtreeMIBEntry('2.1.15', if_updater, ValueType.COUNTER_32, if_updater.get_counter, |
| 508 | + DbTables(15)), |
| 509 | + OidMIBEntry('2.1.15', ValueType.COUNTER_32, oidtree_updater.get_oidvalue) |
| 510 | + ) |
492 | 511 |
|
493 | 512 | ifOutOctets = \ |
494 | | - SubtreeMIBEntry('2.1.16', if_updater, ValueType.COUNTER_32, if_updater.get_counter, |
495 | | - DbTables(16)) |
| 513 | + OverlayAdpaterMIBEntry( |
| 514 | + SubtreeMIBEntry('2.1.16', if_updater, ValueType.COUNTER_32, if_updater.get_counter, |
| 515 | + DbTables(16)), |
| 516 | + OidMIBEntry('2.1.16', ValueType.COUNTER_32, oidtree_updater.get_oidvalue) |
| 517 | + ) |
496 | 518 |
|
497 | 519 | ifOutUcastPkts = \ |
498 | | - SubtreeMIBEntry('2.1.17', if_updater, ValueType.COUNTER_32, if_updater.get_counter, |
499 | | - DbTables(17)) |
| 520 | + OverlayAdpaterMIBEntry( |
| 521 | + SubtreeMIBEntry('2.1.17', if_updater, ValueType.COUNTER_32, if_updater.get_counter, |
| 522 | + DbTables(17)), |
| 523 | + OidMIBEntry('2.1.17', ValueType.COUNTER_32, oidtree_updater.get_oidvalue) |
| 524 | + ) |
500 | 525 |
|
501 | 526 | ifOutNUcastPkts = \ |
502 | | - SubtreeMIBEntry('2.1.18', if_updater, ValueType.COUNTER_32, if_updater.get_counter, |
503 | | - DbTables(18)) |
| 527 | + OverlayAdpaterMIBEntry( |
| 528 | + SubtreeMIBEntry('2.1.18', if_updater, ValueType.COUNTER_32, if_updater.get_counter, |
| 529 | + DbTables(18)), |
| 530 | + OidMIBEntry('2.1.18', ValueType.COUNTER_32, oidtree_updater.get_oidvalue) |
| 531 | + ) |
504 | 532 |
|
505 | 533 | ifOutDiscards = \ |
506 | | - SubtreeMIBEntry('2.1.19', if_updater, ValueType.COUNTER_32, if_updater.get_counter, |
507 | | - DbTables(19)) |
| 534 | + OverlayAdpaterMIBEntry( |
| 535 | + SubtreeMIBEntry('2.1.19', if_updater, ValueType.COUNTER_32, if_updater.get_counter, |
| 536 | + DbTables(19)), |
| 537 | + OidMIBEntry('2.1.19', ValueType.COUNTER_32, oidtree_updater.get_oidvalue) |
| 538 | + ) |
508 | 539 |
|
509 | 540 | ifOutErrors = \ |
510 | | - SubtreeMIBEntry('2.1.20', if_updater, ValueType.COUNTER_32, if_updater.get_counter, |
511 | | - DbTables(20)) |
| 541 | + OverlayAdpaterMIBEntry( |
| 542 | + SubtreeMIBEntry('2.1.20', if_updater, ValueType.COUNTER_32, if_updater.get_counter, |
| 543 | + DbTables(20)), |
| 544 | + OidMIBEntry('2.1.20', ValueType.COUNTER_32, oidtree_updater.get_oidvalue) |
| 545 | + ) |
512 | 546 |
|
513 | 547 | ifOutQLen = \ |
514 | | - SubtreeMIBEntry('2.1.21', if_updater, ValueType.GAUGE_32, if_updater.get_counter, |
515 | | - DbTables(21)) |
| 548 | + OverlayAdpaterMIBEntry( |
| 549 | + SubtreeMIBEntry('2.1.21', if_updater, ValueType.GAUGE_32, if_updater.get_counter, |
| 550 | + DbTables(21)), |
| 551 | + OidMIBEntry('2.1.21', ValueType.GAUGE_32, oidtree_updater.get_oidvalue) |
| 552 | + ) |
516 | 553 |
|
517 | 554 | # FIXME Placeholder |
518 | 555 | ifSpecific = \ |
|
0 commit comments