Add support for Broadcom/Dell Enterprise Sonic NOS
There's not a great deal that needs doing for these - they suffer from the all too common issue of returning layer 4 and 7 in sysServices instead of layer 2 and 3. SNMP::Info by default is ending up categorising them as Ubiquiti devices because the sysoid map had the broadcom enterprise ID (4413) mapped to Ubiquiti for some reason.
The sysDescr is relatively verbose:
SONiC Software Version: SONiC.4.4.1-Enterprise_Base - HwSku: Accton-AS7726-32X - Distribution: Debian 11.11 - Kernel: 5.10.0-21-amd64
So a regex for descr starting with SONiC Software is probably a safe bet to categorise them.
They'll work fine with the default Layer3 values for MIBS, GLOBALS, FUNCS and MUNGE - just really a case of adding a couple of functions to pull the os_ver and model out of sysDescr and correct the layers.
Hi @rkerr are you interested in commit access to do this directly? You seem to know well enough!
There are potentially some issues around code ownership and my employer that I'd rather avoid. Obviously happy to read and test and code but it's probably simpler and safer if I describe in great detail what is needed than actually provide any code to do it. Particularly given how simple this one is - really only needs os, os_ver, vendor, model and layers implementing and everything else will just work.
Hi @rkerr no worries! completely understand that situation, and having the great detail is a massive head start and much appreciated. I'll take a look at this asap.
I may have been a bit optimistic when I said it just worked with the normal Layer3 modules. The test device I was using was a very basic setup and once I tried a more complicated config I ran into some further issues:
dot1qTpFdbPort returns an ifIndex instead of a bridge port index - so a fw_port function will be required to map the ifIndex back to bp_index The only place the ARP table exists is ipNetToPhysicalPhysAddress - you can borrow the code from Layer3/CiscoFWSM.pm to handle this The info in dot1qVlanCurrentEgressPort and dot1qVlanCurrentUntaggedPorts is mangled. Part of this might be to do with sonic using bridge port IDs starting from 10000 for portchannels and that not really being compatible with the bitfields used here. There is a separate proprietary MIB BROADCOM-SONIC-VLAN-MIB that can be used to obtain the same info.