3 # This file is a part of RackTables, a datacenter and server room management
4 # framework. See accompanying file "COPYING" for the full copyright and
5 # licensing information.
7 global $iftable_processors;
8 $iftable_processors = array();
10 $iftable_processors['generic-e-any-100TX'] = array
12 'pattern' => '@^e(\d+)$@',
13 'replacement' => 'e\\1',
16 'try_next_proc' => FALSE,
19 $iftable_processors['generic-fa-any-100TX'] = array
21 'pattern' => '@^fa(\d+)$@',
22 'replacement' => 'fa\\1',
25 'try_next_proc' => FALSE,
28 $iftable_processors['generic-g45-to-g48-combo-1000SFP'] = array
30 'pattern' => '@^g(45|46|47|48)$@',
31 'replacement' => 'g\\1',
32 'dict_key' => '4-1077',
34 'try_next_proc' => TRUE,
37 $iftable_processors['generic-g-any-1000T'] = array
39 'pattern' => '@^g(\d+)$@',
40 'replacement' => 'g\\1',
43 'try_next_proc' => FALSE,
46 $iftable_processors['generic-g-1-to-2-1000T'] = array
48 'pattern' => '@^g(1|2)$@',
49 'replacement' => 'g\\1',
52 'try_next_proc' => TRUE,
55 $iftable_processors['generic-g-3-to-4-combo-1000SFP'] = array
57 'pattern' => '@^g(3|4)$@',
58 'replacement' => 'g\\1',
59 'dict_key' => '4-1077',
61 'try_next_proc' => TRUE,
64 $iftable_processors['generic-g-3-to-4-combo-1000T'] = array
66 'pattern' => '@^g(3|4)$@',
67 'replacement' => 'g\\1',
70 'try_next_proc' => TRUE,
73 $iftable_processors['generic-gi-any-1000T'] = array
75 'pattern' => '@^gi(\d+)$@',
76 'replacement' => 'gi\\1',
79 'try_next_proc' => FALSE,
82 $iftable_processors['generic-gi-1-to-2-1000T'] = array
84 'pattern' => '@^gi(\d+)$@',
85 'replacement' => 'gi\\1',
88 'try_next_proc' => FALSE,
91 $iftable_processors['generic-gi-1-to-2-combo-1000SFP'] = array
93 'pattern' => '@^gi(1|2)$@',
94 'replacement' => 'gi\\1',
95 'dict_key' => '4-1077',
97 'try_next_proc' => TRUE,
100 $iftable_processors['generic-gi-3-to-4-combo-1000SFP'] = array
102 'pattern' => '@^gi(3|4)$@',
103 'replacement' => 'gi\\1',
104 'dict_key' => '4-1077',
106 'try_next_proc' => TRUE,
109 $iftable_processors['generic-gi-3-to-4-combo-1000T'] = array
111 'pattern' => '@^gi(3|4)$@',
112 'replacement' => 'gi\\1',
113 'dict_key' => '1-24',
115 'try_next_proc' => FALSE,
118 $iftable_processors['generic-gi-9-to-10-combo-1000SFP'] = array
120 'pattern' => '@^gi(9|10)$@',
121 'replacement' => 'gi\\1',
122 'dict_key' => '4-1077',
124 'try_next_proc' => TRUE,
127 $iftable_processors['generic-gi-9-to-10-combo-1000T'] = array
129 'pattern' => '@^gi(9|10)$@',
130 'replacement' => 'gi\\1',
131 'dict_key' => '1-24',
133 'try_next_proc' => FALSE,
136 $iftable_processors['generic-gi-51-to-52-combo-1000SFP'] = array
138 'pattern' => '@^gi(51|52)$@',
139 'replacement' => 'gi\\1',
140 'dict_key' => '4-1077',
142 'try_next_proc' => TRUE,
145 $iftable_processors['generic-gi-51-to-52-combo-1000T'] = array
147 'pattern' => '@^gi(51|52)$@',
148 'replacement' => 'gi\\1',
149 'dict_key' => '1-24',
151 'try_next_proc' => FALSE,
154 $iftable_processors['generic-port-any-1000T'] = array
156 'pattern' => '@^port([[:digit:]]+)$@',
157 'replacement' => '\\1',
160 'try_next_proc' => FALSE,
163 $iftable_processors['generic-any-1000T'] = array
165 'pattern' => '@^([[:digit:]]+)$@',
166 'replacement' => '\\1',
169 'try_next_proc' => FALSE,
172 $iftable_processors['generic-21-to-24-combo-1000SFP'] = array
174 'pattern' => '@^(21|22|23|24)$@',
175 'replacement' => '\\1',
176 'dict_key' => '4-1077',
178 'try_next_proc' => TRUE,
181 $iftable_processors['catalyst-any-10TX'] = array
183 'pattern' => '@^([[:digit:]]+)$@',
184 'replacement' => '\\1',
187 'try_next_proc' => FALSE,
190 $iftable_processors['catalyst-any-100TX'] = array
192 'pattern' => '@^FastEthernet(\d+)$@',
193 'replacement' => 'fa\\1',
196 'try_next_proc' => FALSE,
199 $iftable_processors['catalyst-a-to-b-100TX'] = array
201 'pattern' => '@^(A|B)$@',
202 'replacement' => '\\1',
205 'try_next_proc' => FALSE,
208 $iftable_processors['catalyst-any-1000T'] = array
210 'pattern' => '@^GigabitEthernet(\d+)$@',
211 'replacement' => 'gi\\1',
214 'try_next_proc' => FALSE,
217 $iftable_processors['catalyst-9-to-12-combo-1000SFP'] = array
219 'pattern' => '@^GigabitEthernet(9|10|11|12)$@',
220 'replacement' => 'gi\\1',
221 'dict_key' => '4-1077',
223 'try_next_proc' => TRUE,
226 $iftable_processors['catalyst-9-to-12-1000T'] = array
228 'pattern' => '@^GigabitEthernet(9|10|11|12)$@',
229 'replacement' => 'gi\\1',
232 'try_next_proc' => FALSE,
235 $iftable_processors['catalyst-chassis-mgmt'] = array
237 'pattern' => '@^FastEthernet([[:digit:]])$@',
238 'replacement' => 'fa\\1',
239 'dict_key' => '1-19',
241 'try_next_proc' => FALSE,
244 $iftable_processors['catalyst-chassis-25-to-26-1000SFP'] = array
246 'pattern' => '@^GigabitEthernet([[:digit:]]+/)?(25|26)$@',
247 'replacement' => 'gi\\1\\2',
248 'dict_key' => '4-1077',
250 'try_next_proc' => FALSE,
253 $iftable_processors['catalyst-chassis-any-100TX'] = array
255 'pattern' => '@^FastEthernet([[:digit:]]+/)?([[:digit:]]+)$@',
256 'replacement' => 'fa\\1\\2',
259 'try_next_proc' => FALSE,
262 $iftable_processors['catalyst-chassis-25-to-26-100FX/MT-RJ'] = array
264 'pattern' => '@^FastEthernet([[:digit:]]+/)?(25|26)$@',
265 'replacement' => 'fa\\1\\2',
268 'try_next_proc' => FALSE,
271 $iftable_processors['catalyst-chassis-any-1000T'] = array
273 'pattern' => '@^GigabitEthernet([[:digit:]]+/)?([[:digit:]]+)$@',
274 'replacement' => 'gi\\1\\2',
277 'try_next_proc' => FALSE,
280 $iftable_processors['catalyst-chassis-uplinks-1000T'] = array
282 'pattern' => '@^GigabitEthernet([[:digit:]]+/)?([[:digit:]]+)$@',
283 'replacement' => 'gi\\1\\2',
286 'try_next_proc' => FALSE,
289 $iftable_processors['catalyst-chassis-uplinks-1000SX'] = array
291 'pattern' => '@^GigabitEthernet([[:digit:]]+/)?([[:digit:]]+)$@',
292 'replacement' => 'gi\\1\\2',
293 'dict_key' => '1-1202', // Gig-SX hardwired
295 'try_next_proc' => FALSE,
298 $iftable_processors['catalyst-chassis-any-1000SFP'] = array
300 'pattern' => '@^GigabitEthernet([[:digit:]]+/)?([[:digit:]]+)$@',
301 'replacement' => 'gi\\1\\2',
302 'dict_key' => '4-1077',
304 'try_next_proc' => FALSE,
307 $iftable_processors['catalyst-chassis-any-1000GBIC'] = array
309 'pattern' => '@^GigabitEthernet([[:digit:]]+/)?([[:digit:]]+)$@',
310 'replacement' => 'gi\\1\\2',
311 'dict_key' => '3-1078',
313 'try_next_proc' => FALSE,
316 $iftable_processors['catalyst-chassis-1-to-2-combo-1000SFP'] = array
318 'pattern' => '@^GigabitEthernet([[:digit:]]+/)?(1|2)$@',
319 'replacement' => 'gi\\1\\2',
320 'dict_key' => '4-1077',
322 'try_next_proc' => TRUE,
325 $iftable_processors['catalyst-chassis-1-to-2-1000SFP'] = array
327 'pattern' => '@^GigabitEthernet([[:digit:]]+/)?(1|2)$@',
328 'replacement' => 'gi\\1\\2',
329 'dict_key' => '4-1077',
331 'try_next_proc' => FALSE,
334 $iftable_processors['catalyst-chassis-1-to-2-combo-1000T'] = array (
335 'pattern' => '@^GigabitEthernet([[:digit:]]+/)?(1|2)$@',
336 'replacement' => 'gi\\1\\2',
339 'try_next_proc' => TRUE,
342 $iftable_processors['catalyst-chassis-8-combo-1000SFP'] = array
344 'pattern' => '@^GigabitEthernet([[:digit:]]+/)?(8)$@',
345 'replacement' => 'gi\\1\\2',
346 'dict_key' => '4-1077',
348 'try_next_proc' => TRUE,
351 $iftable_processors['catalyst-chassis-21-to-24-combo-1000SFP'] = array
353 'pattern' => '@^GigabitEthernet([[:digit:]]+/)?(21|22|23|24)$@',
354 'replacement' => 'gi\\1\\2',
355 'dict_key' => '4-1077',
357 'try_next_proc' => TRUE,
360 $iftable_processors['catalyst-chassis-45-to-48-combo-1000SFP'] = array
362 'pattern' => '@^GigabitEthernet([[:digit:]]+/)?(45|46|47|48)$@',
363 'replacement' => 'gi\\1\\2',
364 'dict_key' => '4-1077',
366 'try_next_proc' => TRUE,
369 $iftable_processors['catalyst-chassis-uplinks-10000X2'] = array
371 'pattern' => '@^TenGigabitEthernet([[:digit:]]+/)?([[:digit:]]+)$@',
372 'replacement' => 'te\\1\\2',
373 'dict_key' => '6-1080',
375 'try_next_proc' => FALSE,
378 $iftable_processors['catalyst-chassis-uplinks-10000SFP+'] = array
380 'pattern' => '@^TenGigabitEthernet([[:digit:]]+/)?([[:digit:]]+)$@',
381 'replacement' => 'te\\1\\2',
382 'dict_key' => '9-1084',
384 'try_next_proc' => FALSE,
387 $iftable_processors['catalyst-chassis-25-to-28-1000SFP'] = array
389 'pattern' => '@^GigabitEthernet([[:digit:]]+/)?(25|26|27|28)$@',
390 'replacement' => 'gi\\1\\2',
391 'dict_key' => '4-1077',
393 'try_next_proc' => FALSE,
396 $iftable_processors['catalyst-chassis-49-to-52-1000SFP'] = array
398 'pattern' => '@^GigabitEthernet([[:digit:]]+/)?(49|50|51|52)$@',
399 'replacement' => 'gi\\1\\2',
400 'dict_key' => '4-1077',
402 'try_next_proc' => FALSE,
405 $iftable_processors['catalyst-blade-13-to-16-1000SFP'] = array
407 'pattern' => '@^GigabitEthernet([[:digit:]]+/)?(13|14|15|16)$@',
408 'replacement' => 'gi\\1\\2',
409 'dict_key' => '4-1077',
411 'try_next_proc' => FALSE,
414 $iftable_processors['catalyst-blade-21-to-24-1000SFP'] = array
416 'pattern' => '@^GigabitEthernet([[:digit:]]+/)?(21|22|23|24)$@',
417 'replacement' => 'gi\\1\\2',
418 'dict_key' => '4-1077',
420 'try_next_proc' => FALSE,
423 $iftable_processors['catalyst-blade-11-to-12-1000T'] = array
425 'pattern' => '@^GigabitEthernet([[:digit:]]+/)?(11|12)$@',
426 'replacement' => 'gi\\1\\2',
427 'dict_key' => '1-24',
429 'try_next_proc' => FALSE,
432 $iftable_processors['catalyst-blade-17-to-20-1000T'] = array
434 'pattern' => '@^GigabitEthernet([[:digit:]]+/)?(17|18|19|20)$@',
435 'replacement' => 'gi\\1\\2',
436 'dict_key' => '1-24',
438 'try_next_proc' => FALSE,
441 $iftable_processors['catalyst-blade-any-bp/1000T'] = array
443 'pattern' => '@^GigabitEthernet([[:digit:]]+/)?([[:digit:]]+)$@',
444 'replacement' => 'gi\\1\\2',
445 'dict_key' => '1-1087',
447 'try_next_proc' => FALSE,
450 $iftable_processors['catalyst-9-to-10-combo-1000SFP'] = array
452 'pattern' => '@^GigabitEthernet([[:digit:]]+/)?(9|10)$@',
453 'replacement' => 'gi\\1\\2',
454 'dict_key' => '4-1077',
456 'try_next_proc' => TRUE,
459 $iftable_processors['catalyst-1-to-10-1000T'] = array
461 'pattern' => '@^GigabitEthernet([[:digit:]]+/)?(1|2|3|4|5|6|7|8|9|10)$@',
462 'replacement' => 'gi\\1\\2',
463 'dict_key' => '1-24',
465 'try_next_proc' => FALSE,
468 $iftable_processors['catalyst-11-to-12-GBIC'] = array
470 'pattern' => '@^GigabitEthernet([[:digit:]]+/)?(11|12)$@',
471 'replacement' => 'gi\\1\\2',
472 'dict_key' => '3-1078',
474 'try_next_proc' => FALSE,
477 $iftable_processors['catalyst-stack-any-1000T'] = array
479 'pattern' => '@^GigabitEthernet(\d+)/(\d+)/(\d+)$@',
480 'replacement' => 'gi\\1/\\2/\\3',
481 'dict_key' => '1-24',
482 'label' => 'unit \\1 port \\3',
483 'try_next_proc' => FALSE,
486 $iftable_processors['catalyst-stack-any-100TX'] = array
488 'pattern' => '@^FastEthernet(\d+)/(\d+)/(\d+)$@',
489 'replacement' => 'fa\\1/\\2/\\3',
491 'label' => 'unit \\1 port \\3',
492 'try_next_proc' => FALSE,
495 $iftable_processors['catalyst-stack-25-to-28-SFP'] = array
497 'pattern' => '@^GigabitEthernet(\d+)/(\d+)/(25|26|27|28)$@',
498 'replacement' => 'gi\\1/\\2/\\3',
499 'dict_key' => '4-1077',
500 'label' => 'unit \\1 port \\3',
501 'try_next_proc' => FALSE,
504 $iftable_processors['catalyst-stack-1-to-4-SFP'] = array
506 'pattern' => '@^GigabitEthernet(\d+)/(\d+)/([1-4])$@',
507 'replacement' => 'gi\\1/\\2/\\3',
508 'dict_key' => '4-1077',
509 'label' => 'unit \\1 port \\3',
510 'try_next_proc' => FALSE,
513 $iftable_processors['catalyst-2948-49-to-50-SFP'] = array
515 'pattern' => '@^port 2/(49|50)$@',
516 'replacement' => 'gi\\1',
517 'dict_key' => '4-1077',
519 'try_next_proc' => FALSE,
522 $iftable_processors['catalyst-2948-any-100TX'] = array
524 'pattern' => '@^port 2/(\d+)$@',
525 'replacement' => 'fa\\1',
528 'try_next_proc' => FALSE,
531 $iftable_processors['nexus-any-10000SFP+'] = array
533 'pattern' => '@^Ethernet([[:digit:]]/[[:digit:]]+)$@',
534 'replacement' => 'e\\1',
535 'dict_key' => '9-1084',
537 'try_next_proc' => FALSE,
540 $iftable_processors['ftos-any-1000T'] = array
542 'pattern' => '@^GigabitEthernet 0/(\d+)$@',
543 'replacement' => 'gi0/\\1',
544 'dict_key' => '1-24',
546 'try_next_proc' => FALSE,
549 $iftable_processors['ftos-44-to-47-1000SFP'] = array
551 'pattern' => '@^GigabitEthernet 0/(44|45|46|47)$@',
552 'replacement' => 'gi0/\\1',
553 'dict_key' => '4-1077',
555 'try_next_proc' => FALSE,
558 $iftable_processors['ftos-any-10000SFP+'] = array
560 'pattern' => '@^TenGigabitEthernet 0/(\d+)$@',
561 'replacement' => 'te0/\\1',
562 'dict_key' => '9-1084',
564 'try_next_proc' => FALSE,
567 $iftable_processors['ftos-any-QSFP+'] = array
569 'pattern' => '@^fortyGigE 0/(\d+)$@',
570 'replacement' => 'fo0/\\1',
571 'dict_key' => '10-1588',
573 'try_next_proc' => FALSE,
576 $iftable_processors['ftos-mgmt'] = array
578 'pattern' => '@^ManagementEthernet 0/0$@',
579 'replacement' => 'ma0/0',
580 'dict_key' => '1-19',
581 'label' => 'ethernet',
582 'try_next_proc' => FALSE,
585 $iftable_processors['nexus-mgmt'] = array
587 'pattern' => '@^(mgmt[[:digit:]]+)$@',
588 'replacement' => '\\1',
589 'dict_key' => '1-24',
591 'try_next_proc' => FALSE,
594 $iftable_processors['procurve-chassis-100TX'] = array
596 'pattern' => '@^([[:digit:]]+)$@',
597 'replacement' => '\\1',
600 'try_next_proc' => FALSE,
603 $iftable_processors['procurve-chassis-1000T'] = array
605 'pattern' => '@^([[:digit:]]+)$@',
606 'replacement' => '\\1',
609 'try_next_proc' => FALSE,
612 $iftable_processors['procurve-45-to-48-combo-1000SFP'] = array
614 'pattern' => '@^(45|46|47|48)$@',
615 'replacement' => '\\1',
616 'dict_key' => '4-1077',
618 'try_next_proc' => TRUE,
621 $iftable_processors['procurve-21-to-24-combo-1000SFP'] = array
623 'pattern' => '@^(21|22|23|24)$@',
624 'replacement' => '\\1',
625 'dict_key' => '4-1077',
627 'try_next_proc' => TRUE,
630 $iftable_processors['procurve-23-to-24-combo-1000SFP'] = array
632 'pattern' => '@^(23|24)$@',
633 'replacement' => '\\1',
634 'dict_key' => '4-1077',
636 'try_next_proc' => TRUE,
639 $iftable_processors['procurve-25-to-26-combo-1000SFP'] = array
641 'pattern' => '@^(25|26)$@',
642 'replacement' => '\\1',
643 'dict_key' => '4-1077',
645 'try_next_proc' => TRUE,
648 $iftable_processors['procurve-modular-100TX'] = array
650 'pattern' => '@^([A-Z][[:digit:]]+)$@',
651 'replacement' => '\\1',
654 'try_next_proc' => FALSE,
657 $iftable_processors['procurve-modular-1000T'] = array
659 'pattern' => '@^([A-Z][[:digit:]]+)$@',
660 'replacement' => '\\1',
663 'try_next_proc' => FALSE,
666 $iftable_processors['procurve-25-to-26-1000T'] = array
668 'pattern' => '@^(25|26)$@',
669 'replacement' => '\\1',
672 'try_next_proc' => FALSE,
675 $iftable_processors['procurve-9-to-10-combo-1000SFP'] = array
677 'pattern' => '@^(9|10)$@',
678 'replacement' => '\\1',
679 'dict_key' => '4-1077',
681 'try_next_proc' => TRUE,
684 $iftable_processors['procurve-9-to-10-1000T'] = array
686 'pattern' => '@^(9|10)$@',
687 'replacement' => '\\1',
690 'try_next_proc' => FALSE,
693 $iftable_processors['procurve-27-to-28-1000T'] = array
695 'pattern' => '@^(27|28)$@',
696 'replacement' => '\\1',
699 'try_next_proc' => FALSE,
702 $iftable_processors['procurve-27-to-28-combo-1000SFP'] = array
704 'pattern' => '@^(27|28)$@',
705 'replacement' => '\\1',
706 'dict_key' => '4-1077',
708 'try_next_proc' => TRUE,
711 $iftable_processors['procurve-27-to-28-1000SFP'] = array
713 'pattern' => '@^(27|28)$@',
714 'replacement' => '\\1',
715 'dict_key' => '4-1077',
717 'try_next_proc' => FALSE,
720 $iftable_processors['procurve-49-to-50-1000T'] = array
722 'pattern' => '@^(49|50)$@',
723 'replacement' => '\\1',
726 'try_next_proc' => FALSE,
729 $iftable_processors['procurve-51-to-52-1000SFP'] = array
731 'pattern' => '@^(51|52)$@',
732 'replacement' => '\\1',
733 'dict_key' => '4-1077',
735 'try_next_proc' => FALSE,
738 $iftable_processors['procurve-49-to-52-10000SFP+'] = array
740 'pattern' => '@^(49|50|51|52)$@',
741 'replacement' => '\\1',
742 'dict_key' => '9-1084',
744 'try_next_proc' => FALSE,
747 $iftable_processors['gbe2csfp-1-to-16'] = array
749 'pattern' => '@^Downlink(\d+)$@',
750 'replacement' => '\\0',
751 'dict_key' => '1-1603',
753 'try_next_proc' => FALSE,
756 $iftable_processors['gbe2csfp-17'] = array
758 'pattern' => '@^Xconnect1$@',
759 'replacement' => '\\0',
760 'dict_key' => '1-1603',
762 'try_next_proc' => FALSE,
765 $iftable_processors['gbe2csfp-18'] = array
767 'pattern' => '@^Xconnect2$@',
768 'replacement' => '\\0',
769 'dict_key' => '1-1603',
771 'try_next_proc' => FALSE,
774 $iftable_processors['gbe2csfp-19'] = array
776 'pattern' => '@^Mgmt$@',
777 'replacement' => '\\0',
778 'dict_key' => '1-1604',
780 'try_next_proc' => FALSE,
783 $iftable_processors['gbe2csfp-20'] = array
785 'pattern' => '@^Uplink1$@',
786 'replacement' => '\\0',
787 'dict_key' => '1-24',
789 'try_next_proc' => FALSE,
792 $iftable_processors['gbe2csfp-21sfp'] = array
794 'pattern' => '@^Uplink2$@',
795 'replacement' => '\\0',
796 'dict_key' => '4-1077',
798 'try_next_proc' => TRUE,
801 $iftable_processors['gbe2csfp-21'] = array
803 'pattern' => '@^Uplink2$@',
804 'replacement' => '\\0',
805 'dict_key' => '1-24',
807 'try_next_proc' => FALSE,
810 $iftable_processors['gbe2csfp-22sfp'] = array
812 'pattern' => '@^Uplink3$@',
813 'replacement' => '\\0',
814 'dict_key' => '4-1077',
816 'try_next_proc' => TRUE,
819 $iftable_processors['gbe2csfp-22'] = array
821 'pattern' => '@^Uplink3$@',
822 'replacement' => '\\0',
823 'dict_key' => '1-24',
825 'try_next_proc' => FALSE,
828 $iftable_processors['gbe2csfp-23sfp'] = array
830 'pattern' => '@^Uplink4$@',
831 'replacement' => '\\0',
832 'dict_key' => '4-1077',
834 'try_next_proc' => TRUE,
837 $iftable_processors['gbe2csfp-23'] = array
839 'pattern' => '@^Uplink4$@',
840 'replacement' => '\\0',
841 'dict_key' => '1-24',
843 'try_next_proc' => FALSE,
846 $iftable_processors['gbe2csfp-24sfp'] = array
848 'pattern' => '@^Uplink5$@',
849 'replacement' => '\\0',
850 'dict_key' => '4-1077',
852 'try_next_proc' => TRUE,
855 $iftable_processors['gbe2csfp-24'] = array
857 'pattern' => '@^Uplink5$@',
858 'replacement' => '\\0',
859 'dict_key' => '1-24',
861 'try_next_proc' => FALSE,
864 $iftable_processors['netgear-fs726tp-100TX'] = array
866 'pattern' => '@^Port (\d+): Fast Ethernet$@',
867 'replacement' => '\\1',
870 'try_next_proc' => FALSE,
873 $iftable_processors['netgear-fs726tp-1000SFPcombo'] = array
875 'pattern' => '@^Port (\d+): Gigabit Ethernet$@',
876 'replacement' => '\\1',
877 'dict_key' => '4-1077',
879 'try_next_proc' => TRUE,
882 $iftable_processors['netgear-fs726tp-1000T'] = array
884 'pattern' => '@^Port (\d+): Gigabit Ethernet$@',
885 'replacement' => '\\1',
888 'try_next_proc' => FALSE,
891 $iftable_processors['netgear-23-to-24-1000SPFcombo'] = array
893 'pattern' => '@^g(\d+)$@',
894 'replacement' => 'g\\1',
895 'dict_key' => '4-1077',
897 'try_next_proc' => TRUE,
900 $iftable_processors['netgear-any-1000T'] = array
902 'pattern' => '@^g(\d+)$@',
903 'replacement' => 'g\\1',
906 'try_next_proc' => FALSE,
909 $iftable_processors['netgear-chassis-any-1000T'] = array
911 'pattern' => '@^Unit: (\d+) Slot: (\d+) Port: (\d+) Gigabit - Level$@',
912 'replacement' => '\\1/\\2/\\3',
915 'try_next_proc' => FALSE,
918 $iftable_processors['netgear-chassis-any-1000SFP'] = array
920 'pattern' => '@^Unit: (\d+) Slot: (\d+) Port: (\d+) Gigabit - Level$@',
921 'replacement' => '\\1/\\2/\\3',
922 'dict_key' => '4-1077',
924 'try_next_proc' => FALSE,
927 $iftable_processors['netgear-chassis-21-to-24-1000Tcombo'] = array
929 'pattern' => '@^Unit: (\d+) Slot: (\d+) Port: (21|22|23|24) Gigabit - Level$@',
930 'replacement' => '\\1/\\2/\\3',
933 'try_next_proc' => FALSE,
936 $iftable_processors['netgear-chassis-21-to-24-1000SFP'] = array
938 'pattern' => '@^Unit: (\d+) Slot: (\d+) Port: (21|22|23|24) Gigabit - Level$@',
939 'replacement' => '\\1/\\2/\\3',
940 'dict_key' => '4-1077',
942 'try_next_proc' => TRUE,
945 $iftable_processors['netgear-chassis-45-to-48-1000SFPcombo'] = array
947 'pattern' => '@^Unit: (\d+) Slot: (\d+) Port: (45|46|47|48) Gigabit - Level$@',
948 'replacement' => '\\1/\\2/\\3',
949 'dict_key' => '4-1077',
951 'try_next_proc' => TRUE,
954 $iftable_processors['netgear-chassis-any-1000SFPcombo'] = array
956 'pattern' => '@^Unit: (\d+) Slot: (\d+) Port: (\d+) Gigabit - Level$@',
957 'replacement' => '\\1/\\2/\\3',
958 'dict_key' => '4-1077',
960 'try_next_proc' => TRUE,
963 $iftable_processors['netgear-chassis-any-100TX'] = array
965 'pattern' => '@^Unit: (\d+) Slot: (\d+) Port: (\d+) 10/100 Copper - Level$@',
966 'replacement' => '\\1/\\2/\\3',
969 'try_next_proc' => FALSE,
972 $iftable_processors['netgear-chassis-any-SFP+'] = array
974 'pattern' => '@^Unit: (\d+) Slot: (\d+) Port: (\d+) 10G - Level$@',
975 'replacement' => '\\1/\\2/\\3',
976 'dict_key' => '9-1084',
978 'try_next_proc' => FALSE,
981 $iftable_processors['netgear-49-to-50-combo-1000SFP'] = array
983 'pattern' => '@^GbE_(49|50)$@',
984 'replacement' => '\\1',
985 'dict_key' => '4-1077',
987 'try_next_proc' => TRUE,
990 $iftable_processors['netgear-49-to-50-combo-1000T'] = array
992 'pattern' => '@^GbE_(49|50)$@',
993 'replacement' => '\\1',
994 'dict_key' => '1-24',
996 'try_next_proc' => FALSE,
999 $iftable_processors['netgear-any-100TX'] = array
1001 'pattern' => '@^FE_(\d+)$@',
1002 'replacement' => '\\1',
1005 'try_next_proc' => FALSE,
1008 $iftable_processors['nortel-any-1000T'] = array
1010 'pattern' => '@^Ethernet Port on unit 1, port ([[:digit:]]+)$@',
1011 'replacement' => '\\1',
1014 'try_next_proc' => FALSE,
1017 $iftable_processors['smc-combo-45-to-48'] = array
1019 'pattern' => '@^Ethernet Port on unit 1, port (45|46|47|48)$@',
1020 'replacement' => '\\1',
1021 'dict_key' => '4-1077',
1023 'try_next_proc' => TRUE,
1026 $iftable_processors['smc2-combo-21-to-24'] = array
1028 'pattern' => '@^Port #(21|22|23|24)$@',
1029 'replacement' => '\\1',
1030 'dict_key' => '4-1077',
1032 'try_next_proc' => TRUE,
1035 $iftable_processors['smc2-combo-23-to-24'] = array
1037 'pattern' => '@^Port #(23|24)$@',
1038 'replacement' => '\\1',
1039 'dict_key' => '4-1077',
1041 'try_next_proc' => TRUE,
1044 $iftable_processors['smc2-combo-25-to-28'] = array
1046 'pattern' => '@^Port #(25|26|27|28)$@',
1047 'replacement' => '\\1',
1048 'dict_key' => '4-1077',
1050 'try_next_proc' => TRUE,
1053 $iftable_processors['smc2-1000T-25-to-28'] = array
1055 'pattern' => '@^Port #(25|26|27|28)$@',
1056 'replacement' => '\\1',
1057 'dict_key' => '1-24',
1059 'try_next_proc' => FALSE,
1062 $iftable_processors['smc2-any-1000T'] = array
1064 'pattern' => '@^Port #(\d+)$@',
1065 'replacement' => '\\1',
1066 'dict_key' => '1-24',
1068 'try_next_proc' => FALSE,
1071 $iftable_processors['smc2-any-100TX'] = array
1073 'pattern' => '@^Port #(\d+)$@',
1074 'replacement' => '\\1',
1075 'dict_key' => '1-19',
1077 'try_next_proc' => FALSE,
1080 $iftable_processors['juniper-DPCE-R-4XGE-XFP'] = array
1082 'pattern' => '@^xe-([[:digit:]]+)/([[:digit:]]+/[[:digit:]]+)$@',
1083 'replacement' => '\\0',
1084 'dict_key' => '8-1082', // XFP/empty
1085 'label' => 'slot \\1 port \\2',
1086 'try_next_proc' => FALSE,
1089 $iftable_processors['juniper-ex-pic0-1000T'] = array
1091 'pattern' => '@^ge-([[:digit:]]+)/0/([[:digit:]]+)$@',
1092 'replacement' => '\\0',
1093 'dict_key' => '1-24',
1094 'label' => 'unit \\1 port \\2',
1095 'try_next_proc' => FALSE,
1098 $iftable_processors['juniper-ex-mgmt'] = array
1100 'pattern' => '/^me0$/',
1101 'replacement' => 'me0',
1102 'dict_key' => '1-24',
1104 'try_next_proc' => FALSE,
1107 $iftable_processors['quidway-21-to-24-comboT'] = array
1109 'pattern' => '@^GigabitEthernet([[:digit:]]+/[[:digit:]]+/)(21|22|23|24)$@',
1110 'replacement' => 'gi\\1\\2',
1111 'dict_key' => '1-24',
1113 'try_next_proc' => TRUE,
1116 $iftable_processors['quidway-21-to-24-comboSFP'] = array
1118 'pattern' => '@^GigabitEthernet([[:digit:]]+/[[:digit:]]+/)(21|22|23|24)$@',
1119 'replacement' => 'gi\\1\\2',
1120 'dict_key' => '4-1077',
1122 'try_next_proc' => TRUE,
1125 $iftable_processors['quidway-slot1-SFP'] = array
1127 'pattern' => '@^GigabitEthernet0/1/([[:digit:]]+)$@',
1128 'replacement' => 'gi0/1/\\1',
1129 'dict_key' => '4-1077',
1130 'label' => 'SFP\\1',
1131 'try_next_proc' => FALSE,
1134 $iftable_processors['quidway-any-100TX'] = array
1136 'pattern' => '@^Ethernet([[:digit:]]+/[[:digit:]]+/)([[:digit:]]+)$@',
1137 'replacement' => 'ether\\1\\2',
1138 'dict_key' => '1-19',
1140 'try_next_proc' => FALSE,
1143 $iftable_processors['quidway-any-1000SFP'] = array
1145 'pattern' => '@^GigabitEthernet([[:digit:]]+/[[:digit:]]+/)([[:digit:]]+)$@',
1146 'replacement' => 'gi\\1\\2',
1147 'dict_key' => '4-1077', // empty SFP-1000
1149 'try_next_proc' => FALSE,
1152 $iftable_processors['quidway-any-1000T'] = array
1154 'pattern' => '@^GigabitEthernet([[:digit:]]+/[[:digit:]]+/)([[:digit:]]+)$@',
1155 'replacement' => 'gi\\1\\2',
1156 'dict_key' => '1-24',
1158 'try_next_proc' => FALSE,
1161 $iftable_processors['hce-any-1000T'] = array
1163 'pattern' => '@^GE([[:digit:]]+/[[:digit:]]+/)([[:digit:]]+)$@',
1164 'replacement' => 'ge\\1\\2',
1165 'dict_key' => '1-24',
1167 'try_next_proc' => FALSE,
1170 $iftable_processors['hce-any-SFP'] = array
1172 'pattern' => '@^10GE([[:digit:]]+/[[:digit:]]+/)([[:digit:]]+)$@',
1173 'replacement' => '10ge\\1\\2',
1174 'dict_key' => '9-1084',
1176 'try_next_proc' => FALSE,
1179 $iftable_processors['hce-any-QSFP'] = array
1181 'pattern' => '@^40GE([[:digit:]]+/[[:digit:]]+/)([[:digit:]]+)$@',
1182 'replacement' => '40ge\\1\\2',
1183 'dict_key' => '10-1588',
1185 'try_next_proc' => FALSE,
1188 $iftable_processors['quidway-XFP'] = array
1190 'pattern' => '@^XGigabitEthernet([[:digit:]]+/[[:digit:]]+/)([[:digit:]]+)$@',
1191 'replacement' => 'xg\\1\\2',
1192 'dict_key' => '8-1082',
1194 'try_next_proc' => FALSE,
1197 $iftable_processors['quidway-mgmt'] = array
1199 'pattern' => '@^MEth([[:digit:]]+/[[:digit:]]+/)([[:digit:]]+)$@',
1200 'replacement' => 'me\\1\\2',
1201 'dict_key' => '1-19',
1203 'try_next_proc' => FALSE,
1206 $iftable_processors['fgs-1-to-4-comboSFP'] = array
1208 # only 4 first copper ports of 1st unit of a stack
1209 'pattern' => '@^GigabitEthernet1/1/(1|2|3|4)$@',
1210 'replacement' => 'e1/1/\\1',
1211 'dict_key' => '4-1077',
1213 'try_next_proc' => TRUE,
1216 $iftable_processors['fgs-any-1000T'] = array
1218 'pattern' => '@^GigabitEthernet(0|1)/1/([[:digit:]]+)$@',
1219 'replacement' => 'e\\1/1/\\2',
1220 'dict_key' => '1-24',
1222 'try_next_proc' => FALSE,
1225 $iftable_processors['fls624-combo'] = array
1227 'pattern' => '@^GigabitEthernet0/1/(21|22|23|24)$@',
1228 'replacement' => 'e0/1/\\1',
1229 'dict_key' => '4-1077',
1231 'try_next_proc' => TRUE,
1234 $iftable_processors['fls648-combo'] = array
1236 'pattern' => '@^GigabitEthernet0/1/(45|46|47|48)$@',
1237 'replacement' => 'e0/1/\\1',
1238 'dict_key' => '4-1077',
1240 'try_next_proc' => TRUE,
1243 # These can be CX4, but that is not handled here.
1244 $iftable_processors['fls-uplinks'] = array
1246 'pattern' => '@^10GigabitEthernet0/([234])/1$@',
1247 'replacement' => 'e0/\\1/1',
1248 'dict_key' => '8-1082',
1249 'label' => 'Slot \\1',
1250 'try_next_proc' => FALSE,
1253 $iftable_processors['fgs-uplinks'] = array
1255 'pattern' => '@^10GigabitEthernet1/2/([[:digit:]]+)$@',
1256 'replacement' => 'e1/2/\\1',
1257 'dict_key' => '8-1082', // default is XFP, but may be overridden to CX4
1258 'label' => 'Slot2 \\1',
1259 'try_next_proc' => FALSE,
1262 $iftable_processors['fcx-uplinks'] = array
1264 'pattern' => '@^10GigabitEthernet1/2/([[:digit:]]+)$@',
1265 'replacement' => 'e1/2/\\1',
1266 'dict_key' => '9-1084',
1268 'try_next_proc' => FALSE,
1271 $iftable_processors['fcx-management'] = array
1273 'pattern' => '@^Management$@',
1274 'replacement' => 'management1',
1275 'dict_key' => '1-24',
1276 'label' => 'Management',
1277 'try_next_proc' => FALSE,
1280 $iftable_processors['turboiron-any-10000SFP+'] = array
1282 'pattern' => '@^10GigabitEthernet([[:digit:]]+)$@',
1283 'replacement' => 'e\\1',
1284 'dict_key' => '4-1077',
1285 'label' => 'Slot \\1',
1286 'try_next_proc' => FALSE,
1289 $iftable_processors['turboiron-any-10-100-1000T'] = array
1291 'pattern' => '@^GigabitEthernet([[:digit:]]+)$@',
1292 'replacement' => 'e\\1',
1293 'dict_key' => '1-24',
1294 'label' => 'Slot \\1',
1295 'try_next_proc' => FALSE,
1298 $iftable_processors['summit-25-to-26-XFP-uplinks'] = array
1300 'pattern' => '@^.+ Port (25|26)$@',
1301 'replacement' => '\\1',
1302 'dict_key' => '8-1082',
1304 'try_next_proc' => FALSE,
1307 $iftable_processors['summit-27-to-30-XFP-uplinks'] = array
1309 'pattern' => '@^.+ Port (27|28|29|30)$@',
1310 'replacement' => '\\1',
1311 'dict_key' => '8-1082',
1313 'try_next_proc' => FALSE,
1316 $iftable_processors['summit-21-to-24-comboSFP'] = array
1318 'pattern' => '@^.+ Port (21|22|23|24)$@',
1319 'replacement' => '\\1',
1320 'dict_key' => '4-1077',
1322 'try_next_proc' => TRUE,
1325 $iftable_processors['summit-13-to-24-comboT'] = array
1327 'pattern' => '@^.+ Port (1[3456789]|2[01234])$@',
1328 'replacement' => '\\1',
1329 'dict_key' => '1-24',
1331 'try_next_proc' => TRUE,
1334 $iftable_processors['summit-any-1000T'] = array
1336 'pattern' => '@^.+ Port ([[:digit:]]+)$@',
1337 'replacement' => '\\1',
1338 'dict_key' => '1-24',
1340 'try_next_proc' => FALSE,
1343 $iftable_processors['summit-any-SFP'] = array
1345 'pattern' => '@^.+ Port ([[:digit:]]+)$@',
1346 'replacement' => '\\1',
1347 'dict_key' => '4-1077',
1349 'try_next_proc' => FALSE,
1352 $iftable_processors['summit-management'] = array
1354 'pattern' => '@^Management Port$@',
1355 'replacement' => 'mgmt',
1356 'dict_key' => '1-19',
1357 'label' => 'management',
1358 'try_next_proc' => FALSE,
1361 $iftable_processors['C3KX-NM-10000'] = array
1363 'pattern' => '@^TenGigabitEthernet1/(\d+)$@',
1364 'replacement' => 'te1/\\1',
1365 'dict_key' => '9-1084',
1366 'label' => 'NM TE\\1',
1367 'try_next_proc' => FALSE,
1370 $iftable_processors['C3KX-NM-1000'] = array
1372 'pattern' => '@^GigabitEthernet1/(\d+)$@',
1373 'replacement' => 'gi1/\\1',
1374 'dict_key' => '4-1077',
1375 'label' => 'NM G\\1',
1376 'try_next_proc' => FALSE,
1379 $iftable_processors['arista-any-1000T'] = array
1381 'pattern' => '@^Ethernet([[:digit:]]+)$@',
1382 'replacement' => 'e\\1',
1383 'dict_key' => '1-24',
1385 'try_next_proc' => FALSE,
1388 $iftable_processors['arista-49-to-52-SFP+'] = array
1390 'pattern' => '@^Ethernet(49|50|51|52)$@',
1391 'replacement' => 'e\\1',
1392 'dict_key' => '9-1084',
1394 'try_next_proc' => FALSE,
1397 $iftable_processors['arista-any-SFP+'] = array
1399 'pattern' => '@^Ethernet([[:digit:]]+)$@',
1400 'replacement' => 'e\\1',
1401 'dict_key' => '9-1084',
1403 'try_next_proc' => FALSE,
1406 $iftable_processors['arista-management'] = array
1408 'pattern' => '@^Management(1|2)$@',
1409 'replacement' => 'ma\\1',
1410 'dict_key' => '1-24',
1412 'try_next_proc' => FALSE,
1415 $iftable_processors['dell-33xx-any-combo-1000SFP'] = array
1417 'pattern' => '@^1/g(\d+)$@',
1418 'replacement' => 'g\\1',
1419 'dict_key' => '4-1077',
1421 'try_next_proc' => TRUE,
1424 $iftable_processors['dell-33xx-any-1000T'] = array
1426 'pattern' => '@^1/g(\d+)$@',
1427 'replacement' => 'g\\1',
1428 'dict_key' => '1-24',
1430 'try_next_proc' => FALSE,
1433 $iftable_processors['dell-33xx-any-100TX'] = array
1435 'pattern' => '@^1/e(\d+)$@',
1436 'replacement' => 'e\\1',
1439 'try_next_proc' => FALSE,
1442 $iftable_processors['dell-5224-21-to-24-combo-1000SFP'] = array
1444 'pattern' => '@^EtherNet Port on unit 1, port:(21|22|23|24)$@',
1445 'replacement' => 'g\\1',
1446 'dict_key' => '4-1077',
1448 'try_next_proc' => TRUE,
1451 $iftable_processors['dell-52xx-any-1000T'] = array
1453 'pattern' => '@^EtherNet Port on unit 1, port:(\d+)$@',
1454 'replacement' => 'g\\1',
1457 'try_next_proc' => FALSE,
1460 $iftable_processors['dell-m6220-gigabitethernet'] = array
1462 'pattern' => '@Gi1/0/(\d+)$@',
1463 'replacement' => 'g\\1',
1464 'dict_key' => '1-24',
1466 'try_next_proc' => TRUE,
1469 $iftable_processors['dell-g1-to-g2-1000SFP'] = array
1471 'pattern' => '@^g(1|2)$@',
1472 'replacement' => 'g\\1',
1473 'dict_key' => '4-1077',
1475 'try_next_proc' => FALSE,
1478 $iftable_processors['dell-g3-to-g4-1000T'] = array
1480 'pattern' => '@^g(3|4)$@',
1481 'replacement' => 'g\\1',
1482 'dict_key' => '1-24',
1484 'try_next_proc' => FALSE,
1487 $iftable_processors['dell-g17-to-g24-combo-1000T'] = array
1489 'pattern' => '@^g(17|18|19|20|21|22|23|24)$@',
1490 'replacement' => 'g\\1',
1491 'dict_key' => '1-24',
1493 'try_next_proc' => TRUE,
1496 $iftable_processors['dell-g21-to-g24-combo-1000SFP'] = array
1498 'pattern' => '@^g(21|22|23|24)$@',
1499 'replacement' => 'g\\1',
1500 'dict_key' => '4-1077',
1502 'try_next_proc' => TRUE,
1505 $iftable_processors['dell-g23-to-g24-combo-1000SFP'] = array
1507 'pattern' => '@^g(23|24)$@',
1508 'replacement' => 'g\\1',
1509 'dict_key' => '4-1077',
1511 'try_next_proc' => TRUE,
1514 $iftable_processors['dell-any-1000SFP'] = array
1516 'pattern' => '@^g(\d+)$@',
1517 'replacement' => 'g\\1',
1518 'dict_key' => '4-1077',
1520 'try_next_proc' => FALSE,
1523 $iftable_processors['3com-27-to-28-1000T'] = array
1525 'pattern' => '@^GigabitEthernet(\d+)/(\d+)/(27|28)$@',
1526 'replacement' => '\\1/\\2/\\3',
1527 'dict_key' => '1-24',
1529 'try_next_proc' => FALSE,
1532 $iftable_processors['3com-51-to-52-1000T'] = array
1534 'pattern' => '@^GigabitEthernet(\d+)/(\d+)/(51|52)$@',
1535 'replacement' => '\\1/\\2/\\3',
1536 'dict_key' => '1-24',
1538 'try_next_proc' => FALSE,
1541 $iftable_processors['3com-25-to-26-1000SFP'] = array
1543 'pattern' => '@^GigabitEthernet(\d+)/(\d+)/(25|26)$@',
1544 'replacement' => '\\1/\\2/\\3',
1545 'dict_key' => '4-1077',
1547 'try_next_proc' => FALSE,
1550 $iftable_processors['3com-27-to-28-1000SFP'] = array
1552 'pattern' => '@^GigabitEthernet(\d+)/(\d+)/(27|28)$@',
1553 'replacement' => '\\1/\\2/\\3',
1554 'dict_key' => '4-1077',
1556 'try_next_proc' => FALSE,
1559 $iftable_processors['3com-49-to-50-1000SFP'] = array
1561 'pattern' => '@^GigabitEthernet(\d+)/(\d+)/(49|50)$@',
1562 'replacement' => '\\1/\\2/\\3',
1563 'dict_key' => '4-1077',
1565 'try_next_proc' => FALSE,
1568 $iftable_processors['3com-49-to-50-1000T'] = array
1570 'pattern' => '@^GigabitEthernet(\d+)/(\d+)/(49|50)$@',
1571 'replacement' => '\\1/\\2/\\3',
1572 'dict_key' => '1-24',
1574 'try_next_proc' => FALSE,
1577 $iftable_processors['3com-51-to-52-1000SFP'] = array
1579 'pattern' => '@^GigabitEthernet(\d+)/(\d+)/(51|52)$@',
1580 'replacement' => '\\1/\\2/\\3',
1581 'dict_key' => '4-1077',
1583 'try_next_proc' => FALSE,
1586 $iftable_processors['3com-any-100TX'] = array
1588 'pattern' => '@^Ethernet(\d+)/(\d+)/(\d+)$@',
1589 'replacement' => '\\1/\\2/\\3',
1590 'dict_key' => '1-19',
1592 'try_next_proc' => FALSE,
1595 $iftable_processors['3com-any-1000T'] = array
1597 'pattern' => '@^GigabitEthernet(\d+)/(\d+)/(\d+)$@',
1598 'replacement' => '\\1/\\2/\\3',
1601 'try_next_proc' => FALSE,
1604 $iftable_processors['tplink-21-to-24-combo-1000SFP'] = array
1606 'pattern' => '@^.+ Port on unit .+ port (21|22|23|24)$@',
1607 'replacement' => 'g\\1',
1608 'dict_key' => '4-1077',
1610 'try_next_proc' => TRUE,
1613 $iftable_processors['tplink-25-to-28-1000T'] = array
1615 'pattern' => 'port (25|26|27|28): Gigabit Copper',
1616 'replacement' => 'g\\1',
1619 'try_next_proc' => FALSE,
1622 $iftable_processors['tplink-27-to-28-combo-1000SFP'] = array
1624 'pattern' => 'port (27|28): Gigabit Copper',
1625 'replacement' => 'g\\1',
1626 'dict_key' => '4-1077',
1628 'try_next_proc' => TRUE,
1631 $iftable_processors['tplink-any-100T'] = array
1633 'pattern' => 'port ([[:digit:]]+): 10/100 Copper',
1634 'replacement' => 'e\\1',
1637 'try_next_proc' => FALSE,
1640 $iftable_processors['tplink-any-1000T'] = array
1642 'pattern' => '@^.+ Port on unit .+ port ([[:digit:]]+)$@',
1643 'replacement' => 'g\\1',
1646 'try_next_proc' => FALSE,
1649 $iftable_processors['motorola-rfs-any-1000T'] = array
1651 'pattern' => '@^ge(\d+)$@',
1652 'replacement' => 'ge\\1',
1653 'dict_key' => '1-24',
1655 'try_next_proc' => FALSE,
1658 $iftable_processors['motorola-rfs-uplink-comboSFP'] = array
1660 'pattern' => '@^up(\d+)$@',
1661 'replacement' => 'up\\1',
1662 'dict_key' => '4-1077',
1663 'label' => 'uplink',
1664 'try_next_proc' => TRUE,
1667 $iftable_processors['motorola-rfs-uplink-comboT'] = array
1669 'pattern' => '@^up(\d+)$@',
1670 'replacement' => 'up\\1',
1671 'dict_key' => '1-24',
1672 'label' => 'uplink',
1673 'try_next_proc' => FALSE,
1676 $iftable_processors['dlink-21-to-24-comboSFP'] = array
1678 'pattern' => '@^Slot0/(21|22|23|24)$@',
1679 'replacement' => '\\1F',
1680 'dict_key' => '4-1077',
1682 'try_next_proc' => TRUE,
1685 $iftable_processors['dlink-21-to-24-comboT'] = array
1687 'pattern' => '@^Slot0/(21|22|23|24)$@',
1688 'replacement' => '\\1T',
1689 'dict_key' => '1-24',
1691 'try_next_proc' => FALSE,
1694 $iftable_processors['dlink-any-1000T'] = array
1696 'pattern' => '@^Slot0/(\d+)$@',
1697 'replacement' => '\\1',
1698 'dict_key' => '1-24',
1700 'try_next_proc' => FALSE,
1703 $iftable_processors['dlink-rmon-any-100TX'] = array
1705 'pattern' => '@^RMON Port (\d+) on Unit (\d+)$@',
1706 'replacement' => '\\2/\\1',
1707 'dict_key' => '1-19',
1708 'label' => 'unit \\2 port \\1',
1709 'try_next_proc' => FALSE,
1712 $iftable_processors['dlink-rmon-49-to-50-comboSFP'] = array
1714 'pattern' => '@^RMON Port (49|50) on Unit (\d+)$@',
1715 'replacement' => '\\2/\\1',
1716 'dict_key' => '4-1077',
1717 'label' => 'unit \\2 port \\1',
1718 'try_next_proc' => TRUE,
1721 $iftable_processors['dlink-rmon-49-to-50-comboT'] = array
1723 'pattern' => '@^RMON Port (49|50) on Unit (\d+)$@',
1724 'replacement' => '\\2/\\1',
1725 'dict_key' => '1-24',
1726 'label' => 'unit \\2 port \\1',
1727 'try_next_proc' => FALSE,
1730 $iftable_processors['dlink-rmon-51-to-52-1000T'] = array
1732 'pattern' => '@^RMON Port (51|52) on Unit (\d+)$@',
1733 'replacement' => '\\2/\\1',
1735 'label' => 'unit \\2 port \\1',
1736 'try_next_proc' => FALSE,
1739 $iftable_processors['nec-mgmt'] = array
1741 'pattern' => '@^MGMT0$@',
1742 'replacement' => 'mgmt 0', # note the space
1743 'dict_key' => '1-24',
1745 'try_next_proc' => FALSE,
1748 $iftable_processors['nec-any-1000T'] = array
1750 'pattern' => '@^GigabitEther 0/(\d+)$@',
1751 'replacement' => 'gi 0/\\1', # note the space
1752 'dict_key' => '1-24',
1754 'try_next_proc' => FALSE,
1757 $iftable_processors['nec-any-SFP+'] = array
1759 'pattern' => '@^TenGigabitEther 0/(\d+)$@',
1760 'replacement' => 'te 0/\\1', # note the space
1761 'dict_key' => '9-1084',
1763 'try_next_proc' => FALSE,
1766 $iftable_processors['ibm-mgmt'] = array
1768 'pattern' => '@^Management1$@',
1769 'replacement' => 'mgmt',
1770 'dict_key' => '1-24',
1772 'try_next_proc' => FALSE,
1775 $iftable_processors['ibm-any-1000T'] = array
1777 'pattern' => '@^Ethernet(\d+)$@',
1778 'replacement' => 'port \\1',
1779 'dict_key' => '1-24',
1781 'try_next_proc' => FALSE,
1784 $iftable_processors['ibm-49-to-52-SFP+'] = array
1786 'pattern' => '@^Ethernet(49|50|51|52)$@',
1787 'replacement' => 'port \\1',
1788 'dict_key' => '9-1084',
1790 'try_next_proc' => FALSE,
1793 $iftable_processors['ibm-any-SFP+'] = array
1795 'pattern' => '@^Ethernet(\d+)$@',
1796 'replacement' => 'port \\1',
1797 'dict_key' => '9-1084',
1799 'try_next_proc' => FALSE,
1802 global $known_switches;
1803 $known_switches = array // key is system OID w/o "enterprises" prefix
1808 'text' => 'WS-C2924-XL: 24 RJ-45/10-100TX',
1809 'processors' => array ('catalyst-chassis-any-100TX'),
1814 'text' => 'WS-C2924M-XL: 24 RJ-45/10-100TX',
1815 'processors' => array ('catalyst-chassis-any-100TX'),
1820 'text' => 'WS-C3508G-XL: 8 GBIC/1000',
1821 'processors' => array ('catalyst-chassis-any-1000GBIC'),
1826 'text' => 'WS-C3524-XL: 24 RJ-45/10-100TX + 2 GBIC/1000',
1827 'processors' => array ('catalyst-chassis-any-1000GBIC', 'catalyst-chassis-any-100TX'),
1832 'text' => 'WS-C3548-XL: 48 RJ-45/10-100TX + 2 GBIC/1000',
1833 'processors' => array ('catalyst-chassis-any-1000GBIC', 'catalyst-chassis-any-100TX'),
1838 'text' => 'WS-C6506: modular device (INCOMPLETE!)',
1839 'processors' => array ('catalyst-chassis-any-1000T'),
1844 'text' => 'WS-C2950-12 12 RJ-45/10-100TX',
1845 'processors' => array ('catalyst-chassis-any-100TX'),
1850 'text' => 'WS-C2950-24: 24 RJ-45/10-100TX',
1851 'processors' => array ('catalyst-chassis-any-100TX'),
1856 'text' => 'WS-C2950C-24: 24 RJ-45/10-100TX + 2 MT-RJ/100FX fiber',
1857 'processors' => array ('catalyst-chassis-25-to-26-100FX/MT-RJ', 'catalyst-chassis-any-100TX'),
1862 'text' => 'WS-C2950T-24: 24 RJ-45/10-100TX + 2 1000T uplinks',
1863 'processors' => array ('catalyst-chassis-uplinks-1000T', 'catalyst-chassis-any-100TX'),
1868 'text' => 'WS-C3550-24: 24 RJ-45/10-100TX + 2 GBIC/1000',
1869 'processors' => array ('catalyst-chassis-any-1000GBIC', 'catalyst-chassis-any-100TX'),
1874 'text' => 'WS-C3550-48: 48 RJ-45/10-100TX + 2 GBIC/1000',
1875 'processors' => array ('catalyst-chassis-any-100TX', 'catalyst-chassis-any-1000GBIC'),
1880 'text' => 'WS-C3550-12T: 10 RJ-45/10-100-1000T(X) + 2 GBIC/1000',
1881 'processors' => array ('catalyst-1-to-10-1000T', 'catalyst-11-to-12-GBIC'),
1886 'text' => 'WS-C2950G-24: 24 RJ-45/10-100TX + 2 GBIC/1000',
1887 'processors' => array ('catalyst-chassis-any-1000GBIC', 'catalyst-chassis-any-100TX'),
1892 'text' => 'WS-C2950G-48: 48 RJ-45/10-100TX + 2 GBIC/1000',
1893 'processors' => array ('catalyst-chassis-any-1000GBIC', 'catalyst-chassis-any-100TX'),
1898 'text' => 'WS-C3550-12G: 10 GBIC/1000 + 2 RJ-45/10-100-1000T(X)',
1899 'processors' => array ('catalyst-blade-11-to-12-1000T', 'catalyst-chassis-any-1000GBIC'),
1904 'text' => '2651XM: 2 RJ-45/10-100TX',
1905 'processors' => array ('catalyst-chassis-any-100TX'),
1910 'text' => 'WS-C2950G-24-DC 24 RJ-45/10-100TX + 2 GBIC/1000',
1911 'processors' => array ('catalyst-chassis-any-1000GBIC','catalyst-chassis-any-100TX'),
1916 'text' => 'WS-C2950SX-24 24 RJ-45/10-100TX + 2 1000Base-SX',
1917 'processors' => array ('catalyst-chassis-uplinks-1000SX','catalyst-chassis-any-100TX'),
1922 'text' => 'WS-C2970G-24T: 24 RJ-45/10-100-1000T(X)',
1923 'processors' => array ('catalyst-chassis-any-1000T'),
1928 'text' => 'WS-C2950T-48: 48 RJ-45/10-100TX + 2 RJ-45/10-100-1000T(X)',
1929 'processors' => array ('catalyst-chassis-uplinks-1000T', 'catalyst-chassis-any-100TX'),
1934 'text' => 'WS-C2950SX-48: 48 RJ-45/10-100TX + 2 1000Base-SX',
1935 'processors' => array ('catalyst-chassis-uplinks-1000SX', 'catalyst-chassis-any-100TX'),
1940 'text' => 'WS-C2970G-24TS: 24 RJ-45/10-100-1000T(X) + 4 SFP/1000',
1941 'processors' => array ('catalyst-chassis-25-to-28-1000SFP', 'catalyst-chassis-any-1000T'),
1946 'text' => 'WS-C3560-24PS: 24 RJ-45/10-100TX + 2 SFP/1000',
1947 'processors' => array ('catalyst-chassis-any-1000SFP', 'catalyst-chassis-any-100TX'),
1952 'text' => 'WS-C3560-48PS: 48 RJ-45/10-100TX + 4 SFP/1000',
1953 'processors' => array ('catalyst-chassis-any-1000SFP', 'catalyst-chassis-any-100TX'),
1958 'text' => 'Cisco 877 ISR: 4 RJ-45/10-100TX',
1959 'processors' => array ('catalyst-chassis-any-100TX'),
1964 'text' => 'Cisco 878 ISR: 4 RJ-45/10-100TX',
1965 'processors' => array ('catalyst-chassis-any-100TX'),
1970 'text' => 'WS-C3560G-24PS: 24 RJ-45/10-100-1000T(X) + 4 SFP/1000',
1971 'processors' => array ('catalyst-chassis-25-to-28-1000SFP', 'catalyst-chassis-any-1000T'),
1976 'text' => 'WS-C3560G-24TS: 24 RJ-45/10-100-1000T(X) + 4 SFP/1000',
1977 'processors' => array ('catalyst-chassis-25-to-28-1000SFP', 'catalyst-chassis-any-1000T'),
1982 'text' => 'WS-C3560G-48PS: 48 RJ-45/10-100-1000T(X) + 4 SFP/1000',
1983 'processors' => array ('catalyst-chassis-49-to-52-1000SFP', 'catalyst-chassis-any-1000T'),
1988 'text' => 'WS-C3560G-48TS: 48 RJ-45/10-100-1000T(X) + 4 SFP/1000',
1989 'processors' => array ('catalyst-chassis-49-to-52-1000SFP', 'catalyst-chassis-any-1000T'),
1994 'text' => 'WS-C4948: 48 RJ-45/10-100-1000T(X) + 4 SFP/1000 + 1 RJ-45/100TX (OOB mgmt)',
1995 'processors' => array ('catalyst-chassis-45-to-48-combo-1000SFP', 'catalyst-chassis-any-1000T', 'catalyst-chassis-mgmt'),
2000 'text' => 'WS-C3560-24TS: 24 RJ-45/10-100TX + 2 SFP/1000',
2001 'processors' => array ('catalyst-chassis-any-1000SFP', 'catalyst-chassis-any-100TX'),
2006 'text' => 'WS-C3560-48TS: 48 RJ-45/10-100TX + 4 SFP/1000',
2007 'processors' => array ('catalyst-chassis-any-1000SFP', 'catalyst-chassis-any-100TX'),
2012 'text' => 'WS-C4948-10GE: 48 RJ-45/10-100-1000T(X) + 2 X2/10000 + 1 RJ-45/100TX (OOB mgmt)',
2013 'processors' => array ('catalyst-chassis-uplinks-10000X2', 'catalyst-chassis-uplinks-1000T', 'catalyst-chassis-mgmt'),
2018 'text' => 'WS-C2960-24TC-L: 24 RJ-45/10-100TX + 2 combo-gig',
2019 'processors' => array ('catalyst-chassis-1-to-2-combo-1000SFP', 'catalyst-chassis-any-1000T', 'catalyst-chassis-any-100TX'),
2024 'text' => 'WS-C2960-48TC-L: 48 RJ-45/10-100TX + 2 combo-gig',
2025 'processors' => array ('catalyst-chassis-1-to-2-combo-1000SFP', 'catalyst-chassis-any-1000T', 'catalyst-chassis-any-100TX'),
2030 'text' => 'WS-C2960G-24TC-L: 20 RJ-45/10-100-1000T(X) + 4 combo-gig',
2031 'processors' => array ('catalyst-chassis-21-to-24-combo-1000SFP', 'catalyst-chassis-any-1000T'),
2036 'text' => 'WS-C2960G-48TC-L: 44 RJ-45/10-100-1000T(X) + 4 combo-gig',
2037 'processors' => array ('catalyst-chassis-45-to-48-combo-1000SFP', 'catalyst-chassis-any-1000T'),
2042 'text' => 'WS-C2960-24TT-L: 24 RJ-45/10-100TX + 2 RJ-45/10-100-1000T(X)',
2043 'processors' => array ('catalyst-chassis-any-100TX', 'catalyst-chassis-any-1000T'),
2048 'text' => 'WS-C2960-48TT-L: 48 RJ-45/10-100TX + 2 RJ-45/10-100-1000T(X)',
2049 'processors' => array ('catalyst-chassis-any-100TX', 'catalyst-chassis-any-1000T'),
2054 'text' => 'WS-CE500-24TT: 24 RJ-45/10-100TX + 2 RJ-45/10-100-1000T(X)',
2055 'processors' => array ('catalyst-any-100TX', 'catalyst-any-1000T'),
2060 'text' => 'WS-CE500G-12TC: 8 RJ-45/10-100/1000T(X) + 4 combo',
2061 'processors' => array ('catalyst-9-to-12-combo-1000SFP', 'catalyst-9-to-12-1000T', 'catalyst-any-1000T'),
2066 'text' => 'WS-CBS3030-DEL: 10 internal/10-100-1000T(X) + 2 RJ-45/10-100-1000T(X) + 4 SFP/1000',
2067 'processors' => array ('catalyst-blade-11-to-12-1000T', 'catalyst-blade-13-to-16-1000SFP', 'catalyst-blade-any-bp/1000T'),
2072 'text' => 'WS-C3560E-24TD: 24 RJ-45/10-100-1000T(X) + 2 X2/10000 w/TwinGig + OOBM',
2073 'processors' => array
2075 'catalyst-chassis-25-to-28-1000SFP', // TwinGig
2076 'catalyst-chassis-any-1000T',
2077 'catalyst-chassis-uplinks-10000X2',
2078 'catalyst-chassis-mgmt',
2084 'text' => 'WS-C3560E-48TD: 48 RJ-45/10-100-1000T(X) + 2 X2/10000 w/TwinGig + OOBM',
2085 'processors' => array
2087 'catalyst-chassis-49-to-52-1000SFP', // TwinGig
2088 'catalyst-chassis-any-1000T',
2089 'catalyst-chassis-uplinks-10000X2',
2090 'catalyst-chassis-mgmt',
2096 'text' => 'WS-C3560-8PC 8 RJ-45/10-100TX + 1 combo-gig',
2097 'processors' => array ('catalyst-chassis-1-to-2-combo-1000SFP', 'catalyst-chassis-any-1000T', 'catalyst-chassis-any-100TX'),
2102 'text' => 'WS-C2960-8TC-L 8 RJ-45/10-100TX + 1 combo-gig',
2103 'processors' => array ('catalyst-chassis-1-to-2-combo-1000SFP', 'catalyst-chassis-any-1000T', 'catalyst-chassis-any-100TX'),
2108 'text' => 'WS-C2960G-8TC-L: 7 RJ-45/10-100-1000T(X) + 1 combo-gig',
2109 'processors' => array ('catalyst-chassis-8-combo-1000SFP', 'catalyst-chassis-any-1000T'),
2114 'text' => 'WS-CBS3032-DEL: 16 internal/10-100-1000T(X) + 4 RJ-45/10-100-1000T(X) + 4 SFP/1000',
2115 'processors' => array ('catalyst-blade-17-to-20-1000T', 'catalyst-blade-21-to-24-1000SFP', 'catalyst-blade-any-bp/1000T'),
2120 'text' => 'WS-C2960-48TC-S: 48 RJ-45/10-100TX + 2 combo-gig',
2121 'processors' => array ('catalyst-chassis-1-to-2-combo-1000SFP', 'catalyst-chassis-any-1000T', 'catalyst-chassis-any-100TX'),
2126 'text' => 'WS-C2960-24TC-S: 24 RJ-45/10-100TX + 2 combo-gig',
2127 'processors' => array ('catalyst-chassis-1-to-2-combo-1000SFP', 'catalyst-chassis-any-100TX'),
2132 'text' => 'WS-C3560E-12D-S: 12 X2/10000 w/TwinGig + OOBM',
2133 'processors' => array
2135 'catalyst-chassis-any-1000SFP',
2136 'catalyst-chassis-uplinks-10000X2',
2137 'catalyst-chassis-mgmt',
2143 'text' => 'WS-C2960-24PC-L: 24 RJ-45/10-100TX + 2 combo-gig',
2144 'processors' => array ('catalyst-chassis-1-to-2-combo-1000SFP', 'catalyst-chassis-any-1000T', 'catalyst-chassis-any-100TX'),
2149 'text' => 'WS-C3560E-12SD: 12 SFP/1000 +2 X2/10000 + OOBM',
2150 'processors' => array
2152 'catalyst-chassis-any-1000SFP',
2153 'catalyst-chassis-uplinks-10000X2',
2154 'catalyst-chassis-mgmt',
2160 'text' => 'WS-CBS3012-IBM 14 10-100-1000T + 1 10/100T + 4 RJ45/10/100/1000T(X)',
2161 'processors' => array ('catalyst-chassis-any-1000T','catalyst-chassis-any-100TX'),
2166 'text' => 'WS-CBS3012-IBM-I 14 10-100-1000T + 1 10/100T + 4 RJ45/10/100/1000T(X)',
2167 'processors' => array ('catalyst-chassis-any-1000T','catalyst-chassis-any-100TX'),
2172 'text' => 'WS-C2960-48TT-S: 48 RJ-45/10-100TX + 2 RJ-45/10-100-1000T(X)',
2173 'processors' => array ('catalyst-chassis-any-100TX', 'catalyst-chassis-any-1000T'),
2178 'text' => 'ME-3400EG-2CS-A: 2 combo ports + 4 SFP',
2179 'processors' => array ('catalyst-chassis-1-to-2-combo-1000T', 'catalyst-chassis-any-1000SFP', 'catalyst-chassis-mgmt'),
2184 'text' => 'WS-C2960-48PST-L: 48 RJ-45/10-100TX PoE + 2 SFP/1000 + 2 RJ-45/10-100-1000T(X)',
2185 'processors' => array
2187 'catalyst-chassis-any-100TX',
2188 'catalyst-chassis-1-to-2-1000SFP',
2189 'catalyst-chassis-uplinks-1000T',
2195 'text' => 'WS-C3560V2-24PS: 24 RJ-45/10-100TX + 2 SFP/1000',
2196 'processors' => array ('catalyst-chassis-1-to-2-1000SFP', 'catalyst-chassis-any-100TX'),
2201 'text' => 'WS-C3560V2-48TS: 48 RJ-45/10-100TX + 4 SFP/1000',
2202 'processors' => array ('catalyst-chassis-any-1000SFP', 'catalyst-chassis-any-100TX'),
2207 'text' => 'WS-C3560V2-48PS: 48 RJ-45/10-100TX + 4 SFP/1000',
2208 'processors' => array ('catalyst-chassis-any-1000SFP', 'catalyst-chassis-any-100TX'),
2213 'text' => 'WS-C2350-48TD: 48 RJ-45/10-100-1000T(X) + 2 X2/10000 w/TwinGig option',
2214 'processors' => array
2216 'catalyst-chassis-49-to-52-1000SFP', // TwinGig actually
2217 'catalyst-chassis-any-1000T',
2218 'catalyst-chassis-uplinks-10000X2',
2219 'catalyst-chassis-mgmt',
2225 'text' => 'WS-C2960-24PC-S: 24 RJ-45/10-100TX + 2 combo-gig',
2226 'processors' => array ('catalyst-chassis-1-to-2-combo-1000SFP', 'catalyst-chassis-any-1000T', 'catalyst-chassis-any-100TX'),
2231 'text' => 'WS-C2960S-24PS-L: 24 RJ-45/10-100-1000T(X) PoE+ + 4 SFP/1000',
2232 'processors' => array
2234 'catalyst-chassis-mgmt',
2235 'catalyst-stack-25-to-28-SFP',
2236 'catalyst-stack-any-1000T',
2242 'text' => 'WS-C3560X-48T: 48 RJ-45/10-100-1000T(X) + network module + OOBM',
2243 'processors' => array
2247 'catalyst-chassis-any-1000T',
2248 'catalyst-chassis-mgmt',
2254 'text' => 'WS-C2960G-24TS-S: 24 RJ-45/10-100-1000T(X)',
2255 'processors' => array ('catalyst-chassis-25-to-26-1000SFP', 'catalyst-chassis-mgmt', 'catalyst-chassis-any-1000T'),
2260 'text' => 'WS-C2960S-24PS-L: 24 RJ-45/10-100-1000T(X) + 4 SFP/1000',
2261 'processors' => array ('catalyst-stack-25-to-28-SFP', 'catalyst-chassis-mgmt', 'catalyst-stack-any-1000T'),
2266 'text' => 'WS-C2360-48TD: 48 RJ-45 GigE + 4 SFP+/10000',
2267 'processors' => array ('catalyst-chassis-any-1000T', 'catalyst-chassis-mgmt', 'catalyst-chassis-uplinks-10000SFP+'),
2272 'text' => 'WS-C2960CG-8TC-L: 8 RJ-45/10-100-1000T(X) + 2 combo ports',
2273 'processors' => array ('catalyst-9-to-10-combo-1000SFP', 'catalyst-chassis-any-1000T'),
2278 'text' => 'WS-C3560CG-8PC-S: 8 RJ-45/10-100-1000T(X) + 2 combo ports',
2279 'processors' => array ('catalyst-9-to-10-combo-1000SFP', 'catalyst-chassis-any-1000T'),
2284 'text' => 'WS-C4948E: 48 RJ-45/10-100-1000T(X) + 4 SFP+/10000 + 1 RJ-45/100TX (OOB mgmt)',
2285 'processors' => array ('catalyst-chassis-uplinks-10000SFP+', 'catalyst-chassis-uplinks-1000T', 'catalyst-chassis-mgmt'),
2290 'text' => 'WS-C2960S-F48LPS-L: 48 RJ-45/10-100TX + 4 SFP/1000',
2291 'processors' => array ('catalyst-stack-1-to-4-SFP', 'catalyst-chassis-mgmt', 'catalyst-stack-any-100TX'),
2296 'text' => 'WS-C1924-A: 24 RJ-45/10TX + 2 100TX',
2297 'processors' => array ('catalyst-a-to-b-100TX', 'catalyst-any-10TX'),
2302 'text' => 'WS-C2948G-L3: 48 RJ-45/10-100TX + 2 SFP/1000 ports',
2303 'processors' => array ('catalyst-2948-49-to-50-SFP', 'catalyst-2948-any-100TX'),
2304 'ifDescrOID' => 'entPhysicalName',
2306 '9.6.1.82.8.3' => array
2309 'text' => 'SF 302-08MP: 8 RJ-45/10/100TX PWR + 2 combo-gig',
2310 'processors' => array
2312 'generic-gi-1-to-2-combo-1000SFP',
2313 'generic-gi-1-to-2-1000T',
2314 'generic-fa-any-100TX',
2316 'ifDescrOID' => 'ifName',
2318 '9.6.1.82.24.2' => array
2321 'text' => 'SF 300-24P: RJ-45/10/100 + 2 RJ-45/10/100/1000T(X) + 2 combo-gig',
2322 'processors' => array
2324 'generic-gi-3-to-4-combo-1000SFP',
2325 'generic-gi-3-to-4-combo-1000T',
2326 'generic-gi-1-to-2-1000T',
2327 'generic-fa-any-100TX',
2329 'ifDescrOID' => 'ifName',
2331 '9.6.1.82.48.1' => array
2334 'text' => 'SF 300-48: 48 RJ-45/10/100 + 2 RJ-45/10-100-1000T(X) + 2 combo-gig',
2335 'processors' => array
2337 'generic-gi-3-to-4-combo-1000SFP',
2338 'generic-gi-3-to-4-combo-1000T',
2339 'generic-gi-1-to-2-1000T',
2340 'generic-fa-any-100TX',
2342 'ifDescrOID' => 'ifName',
2344 '9.6.1.83.10.1' => array
2347 'text' => 'SG 300-10: 8 RJ-45/10/100/1000T(X) + 2 combo-gig',
2348 'processors' => array
2350 'generic-gi-9-to-10-combo-1000SFP',
2351 'generic-gi-9-to-10-combo-1000T',
2352 'generic-gi-any-1000T',
2354 'ifDescrOID' => 'ifName',
2356 '9.6.1.83.52.1' => array
2359 'text' => 'SG 300-52: 50 RJ-45/10/100/1000T(X) + 2 combo-gig',
2360 'processors' => array
2362 'generic-gi-51-to-52-combo-1000SFP',
2363 'generic-gi-51-to-52-combo-1000T',
2364 'generic-gi-any-1000T',
2366 'ifDescrOID' => 'ifName',
2368 '9.12.3.1.3.719' => array
2371 'text' => 'N5K-C5020: 40 SFP+/10000',
2372 'processors' => array ('nexus-any-10000SFP+', 'nexus-mgmt'),
2374 '9.12.3.1.3.798' => array
2377 'text' => 'N5K-C5010: 20 SFP+/10000',
2378 'processors' => array ('nexus-any-10000SFP+', 'nexus-mgmt'),
2380 '9.12.3.1.3.1008' => array
2383 'text' => 'N5K-C5548P: 32 SFP+/10000',
2384 'processors' => array ('nexus-any-10000SFP+', 'nexus-mgmt'),
2386 '9.12.3.1.3.1084' => array
2389 'text' => 'N5K-C5548P: 32 SFP+/10000',
2390 'processors' => array ('nexus-any-10000SFP+', 'nexus-mgmt'),
2392 '11.2.3.7.11.9' => array
2395 'text' => 'J4121A: modular system',
2396 'processors' => array ('procurve-modular-100TX'),
2398 '11.2.3.7.11.19' => array
2401 'text' => 'J4813A: 24 RJ-45/10-100TX + 2 modules of varying type',
2402 'processors' => array ('procurve-chassis-100TX'),
2404 '11.2.3.7.11.29' => array
2407 'text' => 'J4899A: 48 RJ-45/10-100TX + 2 RJ-45/10-100-1000T(X)',
2408 'processors' => array ('procurve-49-to-50-1000T', 'procurve-chassis-100TX'),
2410 '11.2.3.7.11.31' => array
2413 'text' => 'J4903A: 24 RJ-45/10-100-1000T(X)',
2414 'processors' => array ('procurve-chassis-1000T'),
2416 '11.2.3.7.11.32' => array
2419 'text' => 'J4904A: 48 RJ-45/10-100-1000T(X)',
2420 'processors' => array ('procurve-chassis-1000T'),
2422 '11.2.3.7.11.33.4.1.1' => array
2425 'text' => 'HP GbE2c w/SFP',
2426 'processors' => array
2443 '11.2.3.7.11.34' => array
2446 'text' => 'J4900A: 24 RJ-45/10-100TX + 2 combo-gig',
2447 'processors' => array ('procurve-25-to-26-combo-1000SFP', 'procurve-25-to-26-1000T', 'procurve-chassis-100TX'),
2449 '11.2.3.7.11.35' => array
2452 'text' => 'J8165A: 48 RJ-45/10-100TX PoE + 2 RJ-45/10-100-1000T(X)',
2453 'processors' => array ('procurve-49-to-50-1000T', 'procurve-chassis-100TX'),
2455 '11.2.3.7.11.36' => array
2458 'text' => 'J8164A: 24 RJ-45/10-100TX PoE + 2 RJ-45/10-100-1000T(X)',
2459 'processors' => array ('procurve-25-to-26-1000T', 'procurve-chassis-100TX'),
2461 '11.2.3.7.11.44' => array
2464 'text' => 'J4899B: 48 RJ-45/10-100TX + 2 RJ-45/10-100-1000T(X)',
2465 'processors' => array ('procurve-49-to-50-1000T', 'procurve-chassis-100TX'),
2467 '11.2.3.7.11.45' => array
2470 'text' => 'J4900B: 24 RJ-45/10-100TX + 2 combo-gig',
2471 'processors' => array ('procurve-25-to-26-combo-1000SFP', 'procurve-25-to-26-1000T', 'procurve-chassis-100TX'),
2473 '11.2.3.7.11.53' => array
2476 'text' => 'J8773A: modular system',
2477 'processors' => array ('procurve-modular-1000T'),
2479 '11.2.3.7.11.58' => array
2482 'text' => 'J8692A: 20 RJ-45/10-100-1000T(X) + 4 combo-gig',
2483 'processors' => array ('procurve-21-to-24-combo-1000SFP', 'procurve-chassis-1000T'),
2485 '11.2.3.7.11.62' => array
2488 'text' => 'J9020A: 48 RJ-45/10-100TX + 2 RJ-45/10-1000-1000T(X) + 2 SFP-1000',
2489 'processors' => array ('procurve-51-to-52-1000SFP', 'procurve-49-to-50-1000T', 'procurve-chassis-100TX'),
2491 '11.2.3.7.11.63' => array
2494 'text' => 'J9021A: 20 RJ-45/10-100-1000T(X) + 4 combo-gig',
2495 'processors' => array ('procurve-21-to-24-combo-1000SFP', 'procurve-chassis-1000T'),
2497 '11.2.3.7.11.64' => array
2500 'text' => 'J9022A: 44 RJ-45/10-100-1000T(X) + 4 combo-gig',
2501 'processors' => array ('procurve-45-to-48-combo-1000SFP', 'procurve-chassis-1000T'),
2503 '11.2.3.7.11.65' => array
2506 'text' => 'J9028A: 22 RJ-45/10-100-1000T(X) + 2 combo-gig',
2507 'processors' => array ('smc2-combo-23-to-24', 'smc2-any-1000T'),
2509 '11.2.3.7.11.68' => array
2512 'text' => 'J9050A: 48 RJ-45/10-100-1000T',
2513 'processors' => array ('procurve-chassis-1000T'),
2515 '11.2.3.7.11.76' => array
2518 'text' => 'J9085A: 24 RJ-45/10-100TX + 2 1000T + 2 SFP-1000',
2519 'processors' => array ('procurve-25-to-26-1000T', 'procurve-27-to-28-1000SFP', 'procurve-chassis-100TX'),
2521 '11.2.3.7.11.78' => array
2524 'text' => 'J9087A: 24 RJ-45/10-100TX PoE + 2 1000T + 2 SFP-1000',
2525 'processors' => array ('procurve-25-to-26-1000T', 'procurve-27-to-28-1000SFP', 'procurve-chassis-100TX'),
2527 '11.2.3.7.11.79' => array
2530 'text' => 'J9089A: 48 RJ-45/10-100TX PoE + 2 1000T + 2 SFP-1000',
2531 'processors' => array ('procurve-49-to-50-1000T', 'procurve-51-to-52-1000SFP', 'procurve-chassis-100TX'),
2533 '11.2.3.7.11.80' => array
2536 'text' => 'J9086A: 24 RJ-45/10-100TX 12 PoE + 2 1000T + 2 SFP-1000',
2537 'processors' => array ('procurve-25-to-26-1000T', 'procurve-27-to-28-1000SFP', 'procurve-chassis-100TX'),
2539 '11.2.3.7.11.81' => array
2542 'text' => 'J9028B: 22 RJ-45/10-100-1000T(X) + 2 combo-gig',
2543 'processors' => array ('smc2-combo-23-to-24', 'smc2-any-1000T'),
2545 '11.2.3.7.11.84' => array
2548 'text' => 'J9146A: 20 RJ-45/10-100-1000T(X) + 4 combo-gig + varying uplinks',
2549 'processors' => array ('procurve-21-to-24-combo-1000SFP', 'procurve-chassis-1000T'),
2551 '11.2.3.7.11.85' => array
2554 'text' => 'J9148A: 44 RJ-45/10-100-1000T(X) + 4 combo-gig + varying uplinks',
2555 'processors' => array ('procurve-45-to-48-combo-1000SFP', 'procurve-chassis-1000T'),
2557 '11.2.3.7.11.86' => array
2560 'text' => 'J9145A: 20 RJ-45/10-100-1000T(X) + 4 combo-gig + varying uplinks',
2561 'processors' => array ('procurve-21-to-24-combo-1000SFP', 'procurve-chassis-1000T'),
2563 '11.2.3.7.11.87' => array
2566 'text' => 'J9147A: 44 RJ-45/10-100-1000T(X) + 4 combo-gig + varying uplinks',
2567 'processors' => array ('procurve-45-to-48-combo-1000SFP', 'procurve-chassis-1000T'),
2569 '11.2.3.7.11.88' => array
2572 'text' => 'J9279A: 22 RJ-45/10-100-1000T(X) + 2 combo-gig + varying uplinks',
2573 'processors' => array ('procurve-23-to-24-combo-1000SFP', 'procurve-chassis-1000T'),
2575 '11.2.3.7.11.89' => array
2578 'text' => 'J9280A: 44 RJ-45/10-100-1000T(X) + 4 combo-gig + varying uplinks',
2579 'processors' => array ('procurve-45-to-48-combo-1000SFP', 'procurve-chassis-1000T'),
2581 '11.2.3.7.11.94' => array
2584 'text' => 'J9137A: 8 RJ-45/10-100TX PoE + 2 combo-gig',
2585 'processors' => array ('procurve-9-to-10-combo-1000SFP', 'procurve-9-to-10-1000T', 'procurve-chassis-100TX'),
2587 '11.2.3.7.11.95' => array
2590 'text' => 'J9138A: 24 RJ-45/10-100TX PoE + 2 1000T + 2 combo-gig',
2591 'processors' => array ('procurve-25-to-26-1000T', 'procurve-27-to-28-combo-1000SFP', 'procurve-27-to-28-1000T', 'procurve-chassis-100TX'),
2593 '11.2.3.7.11.105' => array
2596 'text' => 'J9452A: 48 RJ-45/10-100-1000T + 2 SFP-10000+',
2597 'processors' => array ('procurve-49-to-52-10000SFP+', 'procurve-chassis-1000T'),
2599 '43.1.16.4.3.8' => array
2602 'text' => '5500G-EI 48-Port: 44 RJ-45/10-100-1000T(X) + 4 combo-gig',
2603 'processors' => array ('3com-49-to-50-1000SFP', '3com-51-to-52-1000SFP', '3com-any-1000T'),
2605 '43.1.16.4.3.21' => array
2608 'text' => '4500 26-port: 24 100TX + 2 SFP/1000T combo',
2609 'processors' => array ('3com-27-to-28-1000T', '3com-25-to-26-1000SFP', '3com-any-100TX'),
2611 '43.1.16.4.3.22' => array
2614 'text' => '4500 52-port: 48 100TX + 2 SFP/1000T combo',
2615 'processors' => array ('3com-49-to-50-1000SFP', '3com-51-to-52-1000T', '3com-any-100TX'),
2617 '43.1.16.4.3.23' => array
2620 'text' => '4500-PWR 26-port: 24 100TX + 2 SFP/1000T combo',
2621 'processors' => array ('3com-27-to-28-1000T', '3com-25-to-26-1000SFP', '3com-any-100TX'),
2623 '43.1.16.4.3.24' => array
2626 'text' => '4500-PWR 52-port: 48 100TX + 2 SFP/1000T combo',
2627 'processors' => array ('3com-49-to-50-1000SFP', '3com-51-to-52-1000T', '3com-any-100TX'),
2629 '43.1.16.4.3.29' => array
2632 'text' => '4200G 48-port: 44 RJ-45/10-100-1000T(X) + 4 combo-gig',
2633 'processors' => array ('3com-49-to-50-1000SFP', '3com-51-to-52-1000SFP', '3com-any-1000T'),
2635 '43.1.16.4.3.31' => array
2638 'text' => '4500G 48-port: 44 RJ-45/10-100-1000T(X) + 4 combo-gig',
2639 'processors' => array ('3com-49-to-50-1000SFP', '3com-51-to-52-1000SFP', '3com-any-1000T'),
2641 '43.1.16.4.3.45' => array
2644 'text' => '4210 52-port: 48 100TX + 2 1000T + 2 SFP',
2645 'processors' => array ('3com-49-to-50-1000T', '3com-51-to-52-1000SFP', '3com-any-100TX'),
2647 '43.1.16.4.3.83' => array
2650 'text' => '4510G 24-port: 24 RJ-45/10-100-1000T(X) + 4 SFP combo-gig',
2651 'processors' => array ('3com-25-to-26-1000SFP', '3com-27-to-28-1000SFP', '3com-any-1000T'),
2653 '45.3.68.5' => array
2656 'text' => 'BES50GE-12T PWR: 12 RJ-45/10-100-1000T(X)',
2657 'processors' => array ('nortel-any-1000T'),
2659 '119.1.203.2.2.41' => array
2662 'text' => 'PF5240: 48 RJ-45/10-100-1000T(X) + 4 SFP+',
2663 'processors' => array ('nec-any-1000T', 'nec-any-SFP+', 'nec-mgmt'),
2665 '171.10.63.8' => array
2668 'text' => 'DES-3052: 48 RJ-45/10-100TX + 2 RJ-45/10-100-1000T(X) + 2 combo ports',
2669 'processors' => array ('dlink-rmon-49-to-50-comboSFP', 'dlink-rmon-49-to-50-comboT', 'dlink-rmon-51-to-52-1000T', 'dlink-rmon-any-100TX'),
2671 '171.10.76.10' => array
2674 'text' => 'DGS-1210-24: 20 RJ-45/10-100-1000T(X) + 4 combo ports',
2675 'processors' => array ('dlink-21-to-24-comboSFP', 'dlink-21-to-24-comboT', 'dlink-any-1000T'),
2676 'ifDescrOID' => 'ifName',
2678 '202.20.59' => array
2681 'text' => 'SMC8124L2: 20 RJ-45/10-100-1000T(X) + 4 combo ports',
2682 'processors' => array ('smc2-combo-21-to-24', 'smc2-any-1000T'),
2684 '202.20.66' => array
2687 'text' => 'SMC6128L2: 24 RJ-45/10-100TX + 4 combo-gig ports',
2688 'processors' => array ('smc2-combo-25-to-28', 'smc2-1000T-25-to-28', 'smc2-any-100TX'),
2690 '202.20.68' => array
2693 'text' => 'SMC8150L2: 46 RJ-45/10-100-1000T(X) + 4 combo ports',
2694 'processors' => array ('smc-combo-45-to-48', 'nortel-any-1000T'),
2699 'text' => 'AT-GS950/24: 20 RJ-45/10-100-1000T(X) + 4 combo ports',
2700 'processors' => array ('generic-21-to-24-combo-1000SFP', 'generic-any-1000T'),
2702 '207.1.14.53' => array
2705 'text' => 'AT9924T: 24 RJ-45/10-100-1000T(X) ports',
2706 'processors' => array ('generic-port-any-1000T'),
2711 'text' => 'RFS 4000: 5 RJ-45/10-100-1000T(X) + 1 combo uplink ports',
2712 'processors' => array ('motorola-rfs-uplink-comboSFP', 'motorola-rfs-uplink-comboT', 'motorola-rfs-any-1000T'),
2714 '674.10895.4' => array
2717 'text' => 'PowerConnect 5224: 20 RJ-45/10-100-1000T(X) + 4 combo ports',
2718 'processors' => array ('dell-5224-21-to-24-combo-1000SFP', 'dell-52xx-any-1000T'),
2720 '674.10895.3000' => array
2723 'text' => 'PowerConnect 6024F: 16 SFP + 8 combo ports',
2724 'processors' => array ('dell-g17-to-g24-combo-1000T', 'dell-any-1000SFP'),
2725 'ifDescrOID' => 'ifName',
2727 '674.10895.3003' => array
2730 'text' => 'PowerConnect 3348: 48 RJ-45/10-100TX + 2 combo ports',
2731 'processors' => array ('dell-33xx-any-combo-1000SFP', 'dell-33xx-any-1000T', 'dell-33xx-any-100TX'),
2732 'ifDescrOID' => 'entPhysicalName',
2734 '674.10895.3004' => array
2737 'text' => 'PowerConnect 5324: 20 RJ-45/10-100-1000T(X) + 4 combo ports',
2738 'processors' => array ('dell-g21-to-g24-combo-1000SFP', 'generic-g-any-1000T'),
2739 'ifDescrOID' => 'ifName',
2741 '674.10895.3007' => array
2744 'text' => 'PowerConnect 3448: 48 RJ-45/10-100TX + 2 SFP/1000 + 2 RJ-45/10-100-1000T(X) ports',
2745 'processors' => array ('dell-g1-to-g2-1000SFP', 'dell-g3-to-g4-1000T', 'generic-e-any-100TX'),
2746 'ifDescrOID' => 'ifName',
2748 '674.10895.3009' => array
2751 'text' => 'PowerConnect 3448P: 48 RJ-45/10-100TX PoE + 2 SFP/1000 + 2 RJ-45/10-100-1000T(X) ports',
2752 'processors' => array ('dell-g1-to-g2-1000SFP', 'dell-g3-to-g4-1000T', 'generic-e-any-100TX'),
2753 'ifDescrOID' => 'ifName',
2755 '674.10895.3010' => array
2758 'text' => 'PowerConnect 6224: 20 RJ-45/10-100-1000T(X) + 4 combo-gig',
2759 'processors' => array ('netgear-chassis-21-to-24-1000SFP', 'netgear-chassis-21-to-24-1000Tcombo', 'netgear-chassis-any-1000T'),
2761 '674.10895.3011' => array
2764 'text' => 'PowerConnect 6248: 44 RJ-45/10-100-1000T(X) + 4 combo-gig + optional uplinks',
2765 # 10G uplinks actually may be SFP+, T, CX4 or XFP
2766 'processors' => array ('netgear-chassis-45-to-48-1000SFPcombo', 'netgear-chassis-any-1000T', 'netgear-chassis-any-SFP+'),
2768 '674.10895.3014' => array
2771 'text' => 'PowerConnect 6224F: 20 SFP + 4 combo-gig',
2772 'processors' => array ('netgear-chassis-21-to-24-1000SFP', 'netgear-chassis-21-to-24-1000Tcombo', 'netgear-chassis-any-1000SFP'),
2774 '674.10895.3015' => array
2777 'text' => 'PowerConnect M6220 blade cabinet switch',
2778 'processors' => array ('dell-m6220-gigabitethernet'),
2779 'ifDescrOID' => 'ifDescr',
2781 '674.10895.3017' => array
2784 'text' => 'PowerConnect 3548: 48 RJ-45/10-100TX + 2 SFP/1000 + 2 RJ-45/10-100-1000T(X) ports',
2785 'processors' => array ('dell-g1-to-g2-1000SFP', 'dell-g3-to-g4-1000T', 'generic-e-any-100TX'),
2787 '674.10895.3019' => array
2790 'text' => 'PowerConnect 3548P: 48 RJ-45/10-100TX PoE + 2 SFP/1000 + 2 RJ-45/10-100-1000T(X) ports',
2791 'processors' => array ('dell-g1-to-g2-1000SFP', 'dell-g3-to-g4-1000T', 'generic-e-any-100TX'),
2793 '674.10895.3020' => array
2796 'text' => 'PowerConnect 5424: 20 RJ-45/10-100-1000T(X) + 4 combo ports',
2797 'processors' => array ('dell-g21-to-g24-combo-1000SFP', 'generic-g-any-1000T'),
2798 'ifDescrOID' => 'ifName',
2800 '674.10895.3021' => array
2803 'text' => 'PowerConnect 5448: 44 RJ-45/10-100-1000T(X) + 4 combo ports',
2804 'processors' => array ('generic-g45-to-g48-combo-1000SFP', 'generic-g-any-1000T'),
2805 'ifDescrOID' => 'ifName',
2807 '674.10895.3028' => array
2810 'text' => 'PowerConnect 2824: 22 RJ-45/10-100-1000T(X) + 2 combo ports',
2811 'processors' => array ('dell-g23-to-g24-combo-1000SFP', 'generic-g-any-1000T'),
2812 'ifDescrOID' => 'ifName',
2814 '1916.2.71' => array
2817 'text' => 'X450a-24t: 20 RJ-45/10-100-1000T(X) + 4 combo-gig + XFP uplinks slot',
2818 'processors' => array ('summit-25-to-26-XFP-uplinks', 'summit-21-to-24-comboSFP', 'summit-any-1000T', 'summit-management'),
2820 '1916.2.139' => array
2823 'text' => 'X480-24x: 12 SFP-1000 + 12 combo-gig + 2 XFP + VIM slot',
2824 'processors' => array
2826 'summit-27-to-30-XFP-uplinks',
2827 'summit-25-to-26-XFP-uplinks',
2828 'summit-13-to-24-comboT',
2833 '1991.1.3.45.2.1.1.1' => array
2836 'text' => 'FGS648P: 48 RJ-45/10-100-1000T(X) + 4 combo-gig + uplink slot',
2837 'processors' => array ('fgs-1-to-4-comboSFP', 'fgs-any-1000T', 'fgs-uplinks'),
2839 '1991.1.3.45.2.2.1.1' => array
2842 'text' => 'FGS648P-POE: 48 RJ-45/10-100-1000T(X) + 4 combo-gig + uplink slot',
2843 'processors' => array ('fgs-1-to-4-comboSFP', 'fgs-any-1000T', 'fgs-uplinks'),
2845 '1991.1.3.46.1.1.1.1' => array
2848 'text' => 'FLS 624: 20 RJ-45/10-100-1000T(X) + 4 combo-gig + 3 optional 10G modules',
2849 'processors' => array ('fls624-combo', 'fgs-any-1000T', 'fls-uplinks'),
2851 '1991.1.3.46.2.1.1.1' => array
2854 'text' => 'FLS 648: 44 RJ-45/10-100-1000T(X) + 4 combo-gig + 2 optional 10G modules',
2855 'processors' => array ('fls648-combo', 'fgs-any-1000T', 'fls-uplinks'),
2857 '1991.1.3.52.2.2.1.1' => array
2860 'text' => 'FWS648G: 4 combo-gig + 44 RJ-45/10-100-1000T(X)',
2861 'processors' => array ('fgs-1-to-4-comboSFP', 'fgs-any-1000T'),
2863 '1991.1.3.53.1.2' => array
2866 'text' => 'TurboIron 24X : 4 10/100/1000T RJ-45, 24 10000 SFP+, 1 10/100/1000 RJ-45 + 1 Db9 Serial Mgmt',
2867 'processors' => array ('turboiron-any-10000SFP+', 'turboiron-any-10-100-1000T', 'fcx-management'),
2869 '1991.1.3.54.2.4.1.1' => array # L2 software
2872 'text' => 'FCX 648: 48 RJ-45/10-100-1000T(X) + uplink slot with 4 SFP+',
2873 'processors' => array ('fgs-any-1000T', 'fcx-uplinks', 'fcx-management'),
2875 '1991.1.3.54.2.4.1.3' => array # L3 software
2878 'text' => 'FCX 648: 48 RJ-45/10-100-1000T(X) + uplink slot with 4 SFP+',
2879 'processors' => array ('fgs-any-1000T', 'fcx-uplinks', 'fcx-management'),
2881 '2011.2.23.94' => array
2884 'text' => 'S2352P-EI: 48 RJ-45/10-100TX + 4 SFP-1000',
2885 'processors' => array ('quidway-any-100TX', 'quidway-any-1000SFP'),
2887 '2011.2.23.95' => array
2890 'text' => 'S5328C-EI: 20 RJ-45/10-100-1000T(X) + 4 combo-gig + 2 XFP slots',
2891 'processors' => array ('quidway-21-to-24-comboSFP', 'quidway-any-1000T', 'quidway-XFP', 'quidway-mgmt'),
2893 '2011.2.23.96' => array
2896 'text' => 'S5328C-EI-24S: 20 SFP-1000 + 4 combo-gig + 2 XFP slots',
2897 'processors' => array ('quidway-21-to-24-comboT', 'quidway-any-1000SFP', 'quidway-XFP', 'quidway-mgmt'),
2899 '2011.2.23.97' => array
2902 'text' => 'S5352C-EI: 48 RJ-45/10-100-1000T(X) + optional 2xXFP/4xSFP slots',
2903 'processors' => array ('quidway-slot1-SFP', 'quidway-any-1000T', 'quidway-XFP', 'quidway-mgmt'),
2905 '2011.2.23.102' => array
2908 'text' => 'S5328C-SI: 20 RJ-45/10-100-1000T(X) + 4 combo-gig + 2 XFP slots',
2909 'processors' => array ('quidway-21-to-24-comboSFP', 'quidway-any-1000T', 'quidway-XFP', 'quidway-mgmt'),
2911 '2011.2.23.103' => array
2914 'text' => 'S5352C-SI: 48 RJ-45/10-100-1000T(X) + optional 2xXFP/4xSFP slots',
2915 'processors' => array ('quidway-slot1-SFP', 'quidway-any-1000T', 'quidway-XFP', 'quidway-mgmt'),
2917 '2011.2.23.119' => array
2920 'text' => 'S2700-52P-EI: 48 RJ-45/10-100TX + 4 SFP-1000',
2921 'processors' => array ('quidway-any-100TX', 'quidway-any-1000SFP'),
2923 '2011.2.239.4' => array
2926 'text' => 'CE5850-48T4S2Q-EI: 48 RJ-45/10-100-1000T(X) + 4 SFP+ slots + 2 QSFP+ slots',
2927 'processors' => array ('hce-any-1000T', 'hce-any-SFP', 'hce-any-QSFP', 'quidway-mgmt'),
2929 '2636.1.1.1.2.29' => array
2932 'text' => 'MX240 modular router',
2933 'processors' => array ('juniper-DPCE-R-4XGE-XFP'),
2935 // Juniper Networks assigns single SNMP OID per series:
2936 // EX2200 2636.1.1.1.1.43
2937 // EX3200 2636.1.1.1.2.30
2938 // EX4200 2636.1.1.1.2.31
2939 // EX4500 2636.1.1.1.1.44
2940 // There is a special workaround in code below to derive specific
2941 // product number from sysDescr string.
2942 '2636.1.1.1.2.30' => array
2945 'text' => 'Juniper EX3200 series',
2946 'processors' => array ('juniper-ex-pic0-1000T', 'juniper-ex-mgmt'),
2948 '2636.1.1.1.2.31' => array
2951 'text' => 'Juniper EX4200 series',
2952 'processors' => array ('juniper-ex-pic0-1000T', 'juniper-ex-mgmt'),
2954 '3955.6.1.2048.1' => array
2957 'text' => 'Linksys SRW2048: 44 RJ-45/10-100-1000T(X) + 4 combo ports',
2958 'processors' => array ('generic-g45-to-g48-combo-1000SFP', 'generic-g-any-1000T'),
2959 'ifDescrOID' => 'ifName',
2961 '3955.6.5024' => array
2964 'text' => 'Linksys SRW224G4: 24-port 10/100 + 4-Port Gigabit Switch with WebView',
2965 'processors' => array ('generic-g-1-to-2-1000T', 'generic-g-3-to-4-combo-1000SFP', 'generic-g-3-to-4-combo-1000T', 'generic-e-any-100TX'),
2966 'ifDescrOID' => 'ifName',
2968 '3955.6.5048' => array
2971 'text' => 'Linksys SRW248G4: 48-port 10/100 + 4-Port Gigabit Switch with WebView',
2972 'processors' => array ('generic-g-1-to-2-1000T', 'generic-g-3-to-4-combo-1000SFP', 'generic-g-3-to-4-combo-1000T', 'generic-e-any-100TX'),
2973 'ifDescrOID' => 'ifName',
2975 '4526.100.1.1' => array
2978 'text' => 'FSM7328S: 24 RJ-45/10-100TX + 4 combo-gig',
2979 'processors' => array ('netgear-chassis-any-100TX', 'netgear-chassis-any-1000SFPcombo', 'netgear-chassis-any-1000T'),
2981 '4526.100.2.2' => array
2984 'text' => 'GSM7224: 20 RJ-45/10-100-1000T(X) + 4 combo-gig',
2985 'processors' => array ('netgear-chassis-21-to-24-1000SFP', 'netgear-chassis-21-to-24-1000Tcombo', 'netgear-chassis-any-1000T'),
2987 '4526.100.2.3' => array
2990 'text' => 'GSM7212: 12 combo-gig',
2991 'processors' => array ('netgear-chassis-any-1000SFPcombo', 'netgear-chassis-any-1000T'),
2993 '4526.100.1.13' => array
2996 'text' => 'GSM7328Sv2: 20 RJ-45/10-100-1000T(X) + 4 combo-gig',
2997 'processors' => array ('netgear-chassis-21-to-24-1000SFP', 'netgear-chassis-21-to-24-1000Tcombo', 'netgear-chassis-any-1000T'),
2999 '4526.100.1.14' => array
3002 'text' => 'GSM7352Sv2: 44 RJ-45/10-100-1000T(X) + 4 combo-gig + SFP+ uplinks',
3003 'processors' => array ('netgear-chassis-45-to-48-1000SFPcombo', 'netgear-chassis-any-1000T', 'netgear-chassis-any-SFP+'),
3005 '4526.100.4.6' => array
3008 'text' => 'FS726TP: 24 RJ-45/10-100TX + 2 combo-gig',
3009 'processors' => array ('netgear-fs726tp-1000SFPcombo', 'netgear-fs726tp-1000T', 'netgear-fs726tp-100TX'),
3011 '4526.100.4.10' => array
3014 'text' => 'GS724TP: 24 RJ-45/10-100-1000T + 2 combo-gig SFP',
3015 'ifDescrOID' => 'ifName',
3016 'processors' => array ('netgear-23-to-24-1000SPFcombo', 'netgear-any-1000T'),
3018 '4526.100.11.1' => array
3021 'text' => 'GSM7224R: 20 RJ-45/10-100-1000T(X) + 4 combo-gig',
3022 'processors' => array ('netgear-chassis-21-to-24-1000SFP', 'netgear-chassis-21-to-24-1000Tcombo', 'netgear-chassis-any-1000T'),
3024 '4526.100.11.5' => array
3027 'text' => 'GSM7224v2: 20 RJ-45/10-100-1000T(X) + 4 combo-gig',
3028 'processors' => array ('netgear-chassis-21-to-24-1000SFP', 'netgear-chassis-21-to-24-1000Tcombo', 'netgear-chassis-any-1000T'),
3030 '6027.1.3.12' => array
3033 'text' => 'Force10 S60: 44 RJ-45/10-100-1000T(X) + 4 SFP-1000 ports + 0/2/4 SFP+ ports',
3034 'processors' => array ('ftos-44-to-47-1000SFP', 'ftos-any-1000T', 'ftos-any-10000SFP+', 'ftos-mgmt'),
3036 '6027.1.3.13' => array
3039 'text' => 'Force10 S55: 44 RJ-45/10-100-1000T(X) + 4 SFP-1000 ports + 0/2/4 SFP+ ports',
3040 'processors' => array ('ftos-44-to-47-1000SFP', 'ftos-any-1000T', 'ftos-any-10000SFP+', 'ftos-mgmt'),
3042 '6027.1.3.14' => array
3045 'text' => 'Force10 S4810: 48 SFP+-1000/10000 + 4 QSFP-40000 ports',
3046 'processors' => array ('ftos-any-10000SFP+', 'ftos-any-QSFP+', 'ftos-mgmt'),
3048 '10977.11825.11833.97.25451.12800.100.4.4' => array
3051 'text' => 'FS750T2: 48 RJ-45/10-100TX + 2 combo-gig',
3052 'processors' => array ('netgear-49-to-50-combo-1000SFP', 'netgear-49-to-50-combo-1000T', 'netgear-any-100TX'),
3054 '11863.1.1.1' => array
3057 'text' => 'TL-SL5428E: 24 RJ-45/10-100TX + 2 1000T + 2 combo ports',
3058 'processors' => array ('tplink-27-to-28-combo-1000SFP', 'tplink-25-to-28-1000T', 'tplink-any-100T'),
3060 '11863.6.10.58' => array
3063 'text' => 'TL-SG5426: 22 RJ-45/10-100-1000T(X) + 4 combo ports',
3064 'processors' => array ('tplink-21-to-24-combo-1000SFP', 'tplink-any-1000T'),
3066 '12356.101.1.3002'=> array
3069 'text' => 'FG310B: 10 RJ-45/10-1000T',
3070 'processors' => array('generic-port-any-1000T'),
3072 '26543.1.7.6' => array
3075 'text' => 'G8264: 48 SFP+ + 4 QSFP+ w/breakout',
3076 'processors' => array ('ibm-any-SFP+', 'ibm-mgmt'),
3078 '26543.1.7.7' => array
3081 'text' => 'G8052: 48 RJ-45/10-100-1000T(X) + 4 SFP+',
3082 'processors' => array ('ibm-49-to-52-SFP+', 'ibm-any-1000T'),
3084 '30065.1.3011.7048.427.3648' => array
3087 'text' => 'DCS-7048T-A: 48 1000T + 4 SFP+/10000',
3088 'processors' => array ('arista-49-to-52-SFP+', 'arista-any-1000T', 'arista-management'),
3090 '30065.1.3011.7050.3282.52' => array
3093 'text' => 'DCS-7050S-52: 52 SFP+',
3094 'processors' => array ('arista-any-SFP+', 'arista-management'),
3096 '30065.1.3011.7124.3282' => array
3099 'text' => 'DCS-7124S: 24 SFP+/10000',
3100 'processors' => array ('arista-any-SFP+', 'arista-management'),
3104 global $swtype_pcre;
3105 $swtype_pcre = array
3107 '/Huawei Versatile Routing Platform Software.+VRP.+Software, Version 5\.30 /s' => 1360,
3108 '/Huawei Versatile Routing Platform Software.+VRP.+Software, Version 5\.50 /s' => 1361,
3109 '/Huawei Versatile Routing Platform Software.+VRP.+Software,\s*Version 5\.70 /is' => 1369,
3110 '/Huawei Versatile Routing Platform Software.+VRP.+Software,\s*Version 5\.110 /is' => 2080,
3111 '/Huawei Versatile Routing Platform Software.+VRP.+Software,\s*Version 5\.120 /is' => 2081,
3112 '/Huawei Versatile Routing Platform Software.+VRP.+Software,\s*Version 8\.50 /is' => 2027,
3113 // FIXME: get sysDescr for IronWare 5 and add a pattern
3114 '/^Brocade Communications Systems.+, IronWare Version 07\./' => 1364,
3115 '/^Juniper Networks,.+JUNOS 9\./' => 1366,
3116 '/^Juniper Networks,.+JUNOS 10\./' => 1367,
3117 '/^Arista Networks EOS version 4\./' => 1675,
3118 '/^Dell Force10 OS\b.*\bApplication Software Version: 8(\.\d+){3}/' => 1594,
3121 function updateStickerForCell ($cell, $attr_id, $new_value)
3125 isset ($cell['attrs'][$attr_id])
3126 and !strlen ($cell['attrs'][$attr_id]['value'])
3127 and strlen ($new_value)
3129 commitUpdateAttrValue ($cell['id'], $attr_id, $new_value);
3132 // Accept "X-Y" on input and make sure, that PortInterfaceCompat contains
3133 // a record with IIF id = X and OIF id = Y.
3134 function checkPIC ($port_type_id)
3136 // cache PortInterfaceCompat
3137 static $compat_array = NULL;
3138 if (! isset ($compat_array))
3140 $compat_array = array();
3141 foreach (getPortInterfaceCompat() as $record)
3143 $key = $record['iif_id'] . '-' . $record['oif_id'];
3144 $compat_array[$key] = 1;
3148 if (preg_match ('/^(?:(\d+)-)?(\d+)$/', $port_type_id, $m))
3152 if (empty ($iif_id))
3155 $port_type_id = $iif_id . '-' . $port_type_id;
3157 if (! array_key_exists ($port_type_id, $compat_array))
3159 commitSupplementPIC ($iif_id, $oif_id);
3160 $compat_array[$port_type_id] = 1;
3165 $msgcode['doSNMPmining']['ERR1'] = 161;
3166 $msgcode['doSNMPmining']['ERR2'] = 162;
3167 function doSNMPmining ($object_id, $snmpsetup)
3169 $objectInfo = spotEntity ('object', $object_id);
3170 $objectInfo['attrs'] = getAttrValues ($object_id);
3171 $endpoints = findAllEndpoints ($object_id, $objectInfo['name']);
3172 if (count ($endpoints) == 0)
3174 showFuncMessage (__FUNCTION__
, 'ERR1'); // endpoint not found
3177 if (count ($endpoints) > 1)
3179 showFuncMessage (__FUNCTION__
, 'ERR2'); // can't pick an address
3183 switch ($objectInfo['objtype_id'])
3186 case 8: // Network switch
3187 case 965: // Wireless
3188 $device = new RTSNMPDevice ($endpoints[0], $snmpsetup);
3189 return doSwitchSNMPmining ($objectInfo, $device);
3191 $device = new APCPowerSwitch ($endpoints[0], $snmpsetup);
3192 return doPDUSNMPmining ($objectInfo, $device);
3196 $msgcode['doSwitchSNMPmining']['ERR3'] = 188;
3197 $msgcode['doSwitchSNMPmining']['ERR4'] = 189;
3198 function doSwitchSNMPmining ($objectInfo, $device)
3200 global $known_switches, $iftable_processors;
3202 if (FALSE === ($sysObjectID = $device->snmpget ('sysObjectID.0')))
3204 showFuncMessage (__FUNCTION__
, 'ERR3'); // // fatal SNMP failure
3207 $sysObjectID = preg_replace ('/^.*(enterprises\.|joint-iso-ccitt\.)([\.[:digit:]]+)$/', '\\2', $sysObjectID);
3208 if (!isset ($known_switches[$sysObjectID]))
3210 showFuncMessage (__FUNCTION__
, 'ERR4', array ($sysObjectID)); // unknown OID
3213 $sysName = substr ($device->snmpget ('sysName.0'), strlen ('STRING: '));
3214 $sysDescr = substr ($device->snmpget ('sysDescr.0'), strlen ('STRING: '));
3215 $sysDescr = str_replace (array ("\n", "\r"), " ", $sysDescr); // Make it one line
3216 $ifDescr_tablename = array_fetch ($known_switches[$sysObjectID], 'ifDescrOID', 'ifDescr');
3217 showSuccess ($known_switches[$sysObjectID]['text']);
3218 foreach (array_keys ($known_switches[$sysObjectID]['processors']) as $pkey)
3219 if (!array_key_exists ($known_switches[$sysObjectID]['processors'][$pkey], $iftable_processors))
3221 showWarning ('processor "' . $known_switches[$sysObjectID]['processors'][$pkey] . '" not found');
3222 unset ($known_switches[$sysObjectID]['processors'][$pkey]);
3224 updateStickerForCell ($objectInfo, 2, $known_switches[$sysObjectID]['dict_key']);
3225 updateStickerForCell ($objectInfo, 3, $sysName);
3226 detectSoftwareType ($objectInfo, $sysDescr);
3229 case preg_match ('/^9\.1\./', $sysObjectID): // Catalyst w/one AC port
3230 case preg_match ('/^9\.5\.18/', $sysObjectID):
3231 $exact_release = preg_replace ('/^.*, Version ([^ ]+), .*$/', '\\1', $sysDescr);
3232 $major_line = preg_replace ('/^([[:digit:]]+\.[[:digit:]]+)[^[:digit:]].*/', '\\1', $exact_release);
3241 updateStickerForCell ($objectInfo, 5, $exact_release);
3242 if (array_key_exists ($major_line, $ios_codes))
3243 updateStickerForCell ($objectInfo, 4, $ios_codes[$major_line]);
3244 $sysChassi = $device->snmpget ('1.3.6.1.4.1.9.3.6.3.0');
3245 if ($sysChassi !== FALSE or $sysChassi !== NULL)
3246 updateStickerForCell ($objectInfo, 1, str_replace ('"', '', substr ($sysChassi, strlen ('STRING: '))));
3248 commitAddPort ($objectInfo['id'], 'con0', '1-29', 'console', ''); // RJ-45 RS-232 console
3249 if (preg_match ('/Cisco IOS Software, C2600/', $sysDescr))
3250 commitAddPort ($objectInfo['id'], 'aux0', '1-29', 'auxillary', ''); // RJ-45 RS-232 aux port
3251 if ($sysObjectID == '9.1.956')
3253 // models with two AC inputs
3255 commitAddPort ($objectInfo['id'], 'AC-in-1', '1-16', 'AC1', '');
3256 commitAddPort ($objectInfo['id'], 'AC-in-2', '1-16', 'AC2', '');
3258 elseif ($sysObjectID != '9.1.749' and $sysObjectID != '9.1.920')
3260 // assume the rest have one AC input, but exclude blade devices
3261 checkPIC ('1-16'); // AC input
3262 commitAddPort ($objectInfo['id'], 'AC-in', '1-16', '', '');
3265 case preg_match ('/^9\.5\.42/', $sysObjectID): // Catalyst 2948 running CatOS
3266 case preg_match ('/^9\.6\.1\./', $sysObjectID): // Cisco SF series
3267 case preg_match ('/^2011\.2\.239?\./', $sysObjectID): // Huawei
3269 commitAddPort ($objectInfo['id'], 'con0', '1-681', 'console', ''); // DB-9 RS-232 console
3271 commitAddPort ($objectInfo['id'], 'AC-in', '1-16', '', '');
3273 case preg_match ('/^9\.12\.3\.1\.3\./', $sysObjectID): // Nexus
3274 $exact_release = preg_replace ('/^.*, Version ([^ ]+), .*$/', '\\1', $sysDescr);
3275 $major_line = preg_replace ('/^([[:digit:]]+\.[[:digit:]]+)[^[:digit:]].*/', '\\1', $exact_release);