# Switch Management Extension
This article describes the Switch Management extension, including switch discovery, port monitoring, traffic telemetry, port actions, managed switch drivers and declarative SNMP profiles.
# About
Switch Management For EasyDCIM (opens new window) allows you to manage switches and routers from the EasyDCIM interface. The extension discovers network ports, collects port state and traffic data, displays event logs and can execute supported port actions.
EasyDCIM has separate configuration paths for SNMP monitoring and managed switch operations. This allows a device to use an SNMP Profile for discovery and polling while using a different Managed Switch Driver for VLAN or interface configuration.
# Features
- Discover network interfaces and their properties
- Collect administrative and operational port states
- Collect
ifSpeed,ifHighSpeed, octet counters and error counters when provided by the device - Display port health and traffic summaries
- View live traffic for one selected port
- View the most active ports based on the latest stored polling values
- Enable and disable supported network interfaces
- Configure VLANs, trunks and interface speed through supported Managed Switch Drivers
- View switch locations and port availability
- View detailed information about each network port
- View event logs for switch and port operations
- Use shared Devices, Ports, Event Logs and SNMP Profiles add-on tabs
- Open Switch Management as a dynamic tab in the standard switch device view
- Show a standard zero-data state when the SNMP connection cannot be established
- Use legacy vendor drivers or versioned declarative SNMP profiles
# Drivers and SNMP profiles
EasyDCIM resolves switch functionality through three independent choices:
| Configuration | Purpose | When it is used |
|---|---|---|
| Legacy driver | The original vendor-specific implementation shipped with EasyDCIM and the Remote Agent. | Used when no SNMP Profile is selected. Existing devices continue to use this path without changes. |
| SNMP Profile | A versioned JSON definition executed by the generic SNMP profile adapter. | Used when an administrator selects a profile in the device SNMP settings. It controls declarative discovery and polling. |
| Managed Switch Driver | A driver for device configuration, such as VLAN, trunk, speed or interface operations. | Used independently when the selected driver supports the required operation. |
An SNMP Profile does not replace the Managed Switch Driver. For example, a device can use arista-eos-snmp for SNMP discovery, polling and hardware components while using the Arista vEOS Managed Switch Driver for VLAN operations.
If the Switch Management extension is not active, EasyDCIM does not use SNMP Profiles from this extension. Devices continue using the legacy behavior available to their existing configuration.
# Managed switch drivers
Managed Switch Drivers are used for configuration operations and are independent of the SNMP Profile:
| Managed driver | Main operations |
|---|---|
| Arista vEOS | VLAN, trunk, interface and speed configuration through the supported Arista management interface. |
| Cisco NX-API | VLAN and trunk configuration through NX-API. |
| HPE Comware | VLAN and trunk configuration. |
| Junos NETCONF | VLAN, trunk and speed configuration, including enable/disable operations for supported Junos versions. |
| MikroTik | VLAN and interface speed configuration for supported RouterOS devices. |
| Generic SNMP | Generic SNMP port monitoring and SNMP port actions; it is also the runtime used by SNMP Profiles. |
The available operations depend on the driver and the device. A Managed Switch Driver is not required to use an SNMP Profile for monitoring.
# Official switch SNMP profiles
The current official catalog contains the following profiles:
| Profile | Vendor or family | Additional capabilities |
|---|---|---|
generic-snmp-switch | Generic SNMP, including compatible Cisco IOS, Junos, RouterOS and D-Link devices | Discovery, polling, port status and control, speed, counters and errors |
arista-eos-snmp | Arista EOS | Generic switch capabilities plus components and sensors |
juniper-ex-qfx | Juniper EX and QFX | Generic switch capabilities plus component inventory |
cisco-nxos-snmp | Cisco NX-OS | Generic switch capabilities plus component inventory |
arubaos-cx-snmp | ArubaOS-CX | Generic switch capabilities plus components and sensors |
The catalog can be extended with official profiles and custom profiles. The exact capabilities and match rules are shown in Extensions → Switch Management → SNMP Profiles → Switch Profiles.
# Profile capabilities
| Capability | Result in Switch Management |
|---|---|
discovery | Discovers real interfaces and their indexes, names and properties. |
polling | Collects interface information and counters during scheduled polling. |
port_status | Provides administrative and operational status values. |
port_control | Enables or disables a port when the profile defines a supported SNMP SET. |
speed | Provides ifSpeed and/or ifHighSpeed values. |
counters | Provides inbound and outbound octet counters used for traffic rates. |
errors | Provides inbound and outbound error counters. |
components | Discovers hardware parts such as chassis, power supplies, fans or transceivers when declared by the profile. |
sensors | Discovers and polls hardware sensors when declared by the profile. |
The presence of a capability does not guarantee that every model exposes the related OIDs. Missing optional OIDs must not stop polling or create artificial ports or components.
# Adding switch or router devices
You can add a switch manually or use Devices → Auto Discovering. The discovery form requires SNMP access data and a Remote Agent that can reach the target device.
For the required fields and SNMP version-specific credentials, see Adding New Switch.
After the device is created, configure its SNMP settings and select an SNMP Profile when you want to use the declarative profile path. If no profile is selected, the configured legacy driver remains active.
# SNMP settings
Open the device summary, choose Actions → Settings → SNMP Settings, and enter the SNMP connection details.
The form includes the SNMP IP address, SNMP port, SNMP version and the read community. Depending on the SNMP version, you can also configure the write community or SNMPv3 security parameters. The write credentials are required for operations such as enabling or disabling a port when the selected driver supports them.
The SNMP Profile field is independent of Switch Driver:
- Select a profile to use the profile-based generic SNMP adapter.
- Leave the profile empty to keep using the legacy driver.
- Select the Managed Switch Driver separately when VLAN, trunk, speed or other configuration operations are required.
Use Test SNMP Connection after saving the settings. The test verifies access to the device using SNMPv2-MIB::sysObjectID.0. A successful connection test confirms transport and credentials; it does not confirm that every optional profile OID is available.
The first discovery and polling results are produced by the Remote Agent. The exact time depends on the polling and discovery queues; do not treat the connection test as a replacement for discovery or polling verification.
# Switch SNMP Profiles
The catalog is available from Extensions → Switch Management → SNMP Profiles → Switch Profiles. It is separate from the PDU profile catalog.
# Create a custom profile
Custom drivers are created as custom SNMP Profiles. The recommended workflow is to clone the closest official profile instead of starting with an empty definition.
- Open Extensions → Switch Management → SNMP Profiles → Switch Profiles.
- Select Clone for the closest official profile.
- Set a unique profile ID, name, vendor and description.
- Set
profile_versionto a valid SemVer value, such as1.0.0. - Add only match rules that identify the target device family.
- Update the JSON in the Definition tab.
- Use Format JSON and Validate definition before saving.
- Select the custom profile in the device SNMP settings.
- Run connection, discovery and polling checks before using the profile in production.
Official profiles are predefined. Their edit and delete forms can be opened to show the standard protection message, but POST requests cannot modify or delete them. Clone an official profile before making changes.
# Inheritance with extends
The Licensing Server package stores the parent profile in the top-level extends property. Vendor profiles should contain only the vendor-specific delta and set:
{
"extends": "generic-snmp-switch"
}
The parent profile provides the common interface discovery, polling, port fields, mappings and standard actions. EasyDCIM resolves the inheritance before sending the effective profile to the Remote Agent. This keeps custom and vendor definitions short and ensures that improvements to the Generic SNMP Switch profile can be inherited by child profiles.
The Definition editor contains the schema delta, not the complete package. When you clone a profile, EasyDCIM preserves its parent relationship. Do not copy the complete Generic SNMP Switch definition into a child profile unless the child intentionally overrides that section. A child profile must remain compatible with the effective Schema v1 definition after inheritance is resolved.
# Profile metadata and match rules
The fields above the JSON editor are package metadata and are not part of the switch definition.
| Field | Purpose | Rules |
|---|---|---|
| Profile ID | Stable identifier used by device metadata and synchronization. | Lowercase letters, numbers, _ and -; it must be unique. |
| Type | Profile family. | For this catalog, use switch. |
| Vendor | Human-readable vendor or device family. | Use a clear value shown to administrators. |
| Profile version | Version of the profile definition. | Use SemVer, for example 1.0.0. |
| Channel | Publication channel. | Use stable for tested definitions and preview while testing. |
| Match rules | Values used by Auto-Discovery to identify a compatible device. | Use exact firmware, sysobjectid or sysDescr values. sysobjectid values must be numeric OIDs. |
Example:
{
"sysobjectid": [
".1.3.6.1.4.1.30065.1"
],
"sysDescr": [
"Arista Networks EOS"
]
}
Auto-Discovery applies a profile only when the match is unambiguous. A missing or ambiguous match leaves the device on the legacy path. Existing devices are not silently migrated; select a profile manually when required.
# Switch profile JSON definition
The Definition editor contains the profile schema. It must be a JSON object with schema_version: 1, device_kind: "switch" and a switch section. The package metadata (profile_id, match_rules, content_hash and similar fields) is managed separately.
| Section | Required | Purpose |
|---|---|---|
schema_version | Yes | Must be the number 1. |
device_kind | Yes | Must be switch. |
switch.discovery | Yes | Lists the exact realMultiWalk requests used during interface discovery. |
switch.polling | Yes | Identifies the interface table roots used by regular polling. |
switch.ports | Yes | Maps interface indexes, names, states, speed, addresses, counters and errors. |
switch.actions | Yes | Defines supported interface actions, normally enable and disable through SNMP SET. |
switch.device | No | Adds device-level fields such as a model read and mapping. |
switch.components | No | Adds chassis, power supply, fan, transceiver and sensor discovery. |
# SNMP operations and OIDs
Executable OID definitions use numeric OIDs, with or without a leading dot. GET reads a scalar value, WALK reads an indexed table and realMultiWalk performs the combined interface discovery used by the Generic SNMP Switch adapter. IF-MIB::ifEntry and IF-MIB::ifXEntry identify the standard polling table roots; individual profile OID fields remain numeric.
Indexed definitions use the {index} placeholder when a read or SET targets one interface. Only declare an operation that has been confirmed by the device documentation or an SNMP recording.
# Minimal switch definition
The following example shows the structure of a small profile. Replace the example OIDs and values with those from the target device.
{
"schema_version": 1,
"device_kind": "switch",
"switch": {
"discovery": {
"requests": [
{
"oid": ".1.3.6.1.2.1.2.2.1.1",
"operation": "realMultiWalk",
"request_oid": ".1.3.6.1.2.1.2.2.1.1"
},
{
"oid": ".1.3.6.1.2.1.2.2.1.2",
"operation": "realMultiWalk",
"request_oid": ".1.3.6.1.2.1.2.2.1.2"
}
]
},
"polling": {
"ifEntry": "IF-MIB::ifEntry",
"ifXEntry": "IF-MIB::ifXEntry"
},
"ports": {
"index": {
"oid": ".1.3.6.1.2.1.2.2.1.1",
"operation": "walk1d"
},
"name": {
"oid": ".1.3.6.1.2.1.31.1.1.1.1",
"operation": "walk1d"
},
"oper_status": {
"oid": ".1.3.6.1.2.1.2.2.1.8",
"operation": "walk1d"
},
"in_octets": {
"oid": ".1.3.6.1.2.1.2.2.1.10",
"operation": "walk1d"
},
"out_octets": {
"oid": ".1.3.6.1.2.1.2.2.1.16",
"operation": "walk1d"
}
},
"actions": {
"enable": {
"steps": [
{
"oid": ".1.3.6.1.2.1.2.2.1.7.{index}",
"value": 1,
"type": "i",
"result": "{oid}"
}
]
},
"disable": {
"steps": [
{
"oid": ".1.3.6.1.2.1.2.2.1.7.{index}",
"value": 2,
"type": "i",
"result": "{oid}"
}
]
}
}
}
}
These action steps use the standard ifAdminStatus values as an example. A working profile must define the correct OID, type and values for the target device. Do not enable a port-control capability until the SET operation has been tested safely.
For a production definition, include the complete interface fields required by the target device, including ifSpeed or ifHighSpeed, administrative and operational status, counters, errors, description, alias, MTU and physical address where available.
# Hardware components and sensors
Profiles may declare component fields and grouping rules for hardware inventory. Common groups include:
| Group | Examples of data |
|---|---|
| Chassis | Model, manufacturer and serial number stored on the device. |
| Power supply | Model, serial number and operational status. |
| Fan | Model, serial number and operational status when exposed by the device. |
| Transceiver | Model, serial number and module information such as QSFP data. |
| Sensor | Temperature, voltage, current and other values from a supported sensor table. |
Component and sensor definitions are optional. They must use the OIDs exposed by the target device and should tolerate unavailable optional values.
# Switch Management add-on tabs
The extension uses one shared tab menu for its global views:
| Tab | Purpose | Main content and actions |
|---|---|---|
| Summary | Overview of switch locations and port availability. | Locations and aggregate UP/DOWN port information. |
| Devices | List of all switch and router devices managed by EasyDCIM. | Device identity, vendor image, model, profile or driver, location, port summary and device link. |
| Ports | Global view of discovered network ports. | Filterable port table, connected item and port, state, speed, traffic and port actions where supported. |
| Event Logs | Audit trail for switch and port operations. | Device, port, action, result, timestamp and filters. |
| SNMP Profiles | Catalog of declarative switch profiles. | Profile type, version, capabilities and actions to clone or manage custom definitions. |
# Switch Management tab in the device view
When the Switch Management extension is active and the user has permission to access it, EasyDCIM adds a Switch Management tab to the standard device tabs for switch devices. It is part of the device view and does not create a second device summary.
# Tab behavior
| Situation | Behavior |
|---|---|
| Switch Management is active and the device is a switch | The Switch Management tab is available in the device view. |
| No SNMP Profile is selected | SNMP data is read through the configured legacy driver path. |
| An SNMP Profile is selected | Discovery and polling use the selected declarative profile. |
| A Managed Switch Driver is selected | Its supported VLAN, trunk, speed and interface operations remain available independently of the SNMP Profile. |
| The SNMP connection fails | The page shows one standard zero-data message instead of widgets containing misleading values. When permitted, it includes a link to SNMP Settings. |
| A capability is not available | The related widget or action is hidden. The page does not create artificial ports or unsupported controls. |
# Widgets on the tab
The tab reads stored discovery and polling data. The page does not open a new SNMP session for every summary widget.
| Widget | What it displays | Visibility |
|---|---|---|
| Device Health | Device status, model, uptime, latest polling state and port totals. | Available after the device data can be read. |
| Live Traffic | Rx, Tx and total traffic for one selected port, with current, minimum, average and maximum values. | Available when a port and live traffic source are supported. The port selector is used instead of querying all ports. |
| Port Health | Counts of UP, DOWN and UNKNOWN interfaces. | Available when port status data exists. |
| Top Traffic Ports | A bounded list of the most active ports based on the latest stored polling rates. | Available when valid stored traffic exists. It does not render all ports. |
Live traffic uses the selected port and a throttled sample. The normal polling process stores interface counters and rates for the rest of the page. If a rate cannot be calculated because of a counter reset, an invalid interval or missing counters, EasyDCIM does not display a fabricated value.
# Device list
The device list presents all switch and router devices available to the extension. It shows the device vendor image, model, selected SNMP Profile or legacy driver, Managed Switch Driver when configured, location and port summary.
Select a device to open its standard device view and the Switch Management tab. The vendor image is selected from the device vendor and falls back to the standard EasyDCIM unknown image when no matching image exists.
The Devices and Ports tabs use the common EasyDCIM list components, including filtering and pagination. They display stored discovery and polling data; opening the list does not start a new SNMP session for every device or port.
# Network ports
The Ports tab contains the filterable list of discovered interfaces. Depending on the device and driver, columns can include interface name, description, alias, administrative state, operational state, speed, connected item, connected port, traffic and errors.
Connected item and connected port are editable through the standard port assignment form. Port enable and disable actions are available only when the selected legacy driver, Managed Switch Driver or SNMP Profile supports the operation. All executed actions are recorded in Event Logs.
# Validate a custom profile
JSON validation confirms the structure and supported properties. It does not prove that an OID exists on a specific switch or that a port SET is safe.
| Step | What to verify |
|---|---|
| 1. Validate the definition | Validate definition reports valid JSON and Schema v1 compatibility. |
| 2. Validate match rules | Rules identify the intended device family without overlapping another profile. |
| 3. Test the connection | The SNMP credentials and Remote Agent can reach the device. |
| 4. Run discovery | All expected interfaces are discovered with stable indexes and no duplicates. |
| 5. Run polling | Status, speed, counters, errors and optional components are collected. |
| 6. Check traffic | Stored rates and the selected-port live widget use valid counter deltas and correct units. |
| 7. Test port control | Test enable and disable on a safe interface and confirm the state on the device. |
| 8. Review the SNMP trace | Confirm the exact GET, WALK and SET requests, missing OIDs and device errors. |
When a value is optional and its OID is missing, the profile should preserve the previous stored value where supported and continue the rest of polling. A profile must not report a successful action or invent a port value when the device did not confirm it.
For development, use an snmprec recording with the EasyDCIM SNMP simulator. Test port SET operations only against a safe fixture or a test device, and verify the complete profile against a real device before production use.
# Event logs
The Event Logs tab records supported switch and port actions, their target device or port, result and timestamp. Use the filters to review a port change or diagnose a failed operation.