WDM Profiles¶
A WDM profile is the blueprint that turns a generic NetBox DeviceType into
a WDM-aware DeviceType. It is a one-to-one overlay on dcim.DeviceType,
defining grid choice, node type, and fibre topology.
Why a profile¶
NetBox's DeviceType already stores port templates and mechanical layout. The WDM profile adds the optical metadata that NetBox does not model natively:
- Which ITU grid this hardware uses (DWDM 100 GHz, DWDM 50 GHz, or CWDM).
- Whether it is a terminal MUX, an OADM, a ROADM, or an inline amplifier.
- Whether each channel uses a duplex pair (separate MUX/DEMUX fibres) or a single bidirectional fibre.
- Which FrontPortTemplate corresponds to each channel's MUX and DEMUX side.
When a device of this DeviceType is later created, the profile's child rows
(channel plans) are used to bulk-create one WdmChannel per ITU position on
the resulting WdmNode.
Fields¶
| Field | Required | Notes |
|---|---|---|
device_type |
yes | One-to-one to dcim.DeviceType |
node_type |
yes | terminal_mux, oadm, roadm, or amplifier |
grid |
yes | dwdm_100ghz (44 ch), dwdm_50ghz (88 ch), or cwdm (18 ch) |
fiber_type |
yes | duplex (default) or single_fiber |
description |
no | Free-form text |
Channel plans¶
Each profile owns zero or more WdmChannelPlan rows. A channel plan is the
template entry for one ITU channel, with these fields:
| Field | Notes |
|---|---|
profile |
Parent WDM profile |
grid_position |
Integer position in the ITU grid (1-based, see ITU Channel Plans) |
wavelength_nm |
Wavelength for the position; computed for DWDM, fixed for CWDM |
label |
Display label, e.g. C32, C32.5, CWDM-1310 |
mux_front_port_template |
FK to a dcim.FrontPortTemplate on the same DeviceType (the MUX side) |
demux_front_port_template |
FK to a dcim.FrontPortTemplate on the same DeviceType (the DEMUX side); leave empty for single-fibre profiles |
Database constraints prevent the same DeviceType from re-using a wavelength, grid position, or front port template across multiple channel plans.
Creating a profile¶
The values you fill in describe what the hardware actually is, so the device's data sheet (or a glance at the front panel) is the easiest reference while you work.
From the NetBox UI:
- Navigate to WDM > Profiles > Add.
- Pick the DeviceType. A DeviceType can only have one profile.
- Set
node_type,grid, andfiber_typeto match the hardware -- a terminal MUX is a terminal MUX, a duplex MUX has separate TX/RX fibres, and so on. - Save. The profile detail page opens with an empty Channels tab.
- Switch to the Channels tab and add one row per ITU position the hardware carries, pointing at the matching FrontPortTemplate(s).
Profiles also appear on the DeviceType detail page under a WDM Profile tab; this tab is only visible when a profile exists.
Editing constraints¶
Once channels exist on a WdmNode, the linked profile's channel plans should
be considered fairly stable; the plugin does not currently auto-propagate
template changes onto existing devices.
There are two safe operations:
- Adding new channel plan rows. Existing devices keep their existing channels; newly created devices pick up the larger set.
- Editing free-form fields (
description).
For changes that affect port assignments on already-deployed devices, prefer
to remap on each WdmNode individually rather than editing the template.
Bulk operations¶
The list view exposes bulk delete and bulk import. Bulk import accepts a CSV
or YAML payload with the device_type, node_type, grid, and fiber_type
columns. Channel plan rows must be added separately.
Where to look in code¶
netbox_wdm/models.pydefinesWdmProfileandWdmChannelPlan.netbox_wdm/signals.py:_device_post_saveis what creates aWdmNodewhen a device is added to a DeviceType that has a profile.netbox_wdm/models.py:WdmNode._auto_populate_channelsmaterialises the channel plan rows into concreteWdmChannelrows on a new node.