Fiber Cables¶
A FiberCable is an instance of a FiberCableType,
linked one-to-one with a NetBox dcim.Cable. When you create a FiberCable, the
plugin automatically instantiates all internal components -- BufferTubes,
Ribbons, FiberStrands, and CableElements -- based on the type's templates. You
never need to create strands or tubes by hand.
Creating a Fiber Cable¶
-
Ensure a
dcim.Cableexists. The cable must already be created in NetBox between two devices (or between a device and a patch panel, splice closure, etc.). FiberCable does not create the underlying cable record -- it wraps one. -
Navigate to FMS > Fiber Cables > Add.
-
Select the FiberCableType. Choose the cable type that matches the physical cable being installed. The type determines how many tubes, ribbons, and strands will be created.
-
Link to the existing
dcim.Cable. Select the cable record from the dropdown. Eachdcim.Cablecan be associated with at most one FiberCable. -
Save. On save, the plugin runs auto-instantiation and creates the full internal component hierarchy. No further action is needed to populate strands.
Auto-Instantiation¶
When a FiberCable is saved for the first time, the _instantiate_components()
method reads the associated FiberCableType's templates and creates instance-level
components. The exact components depend on the
construction case:
BufferTubes¶
One BufferTube is created for each BufferTubeTemplate on the type. Each tube receives a position number and an EIA-598 color matching its position within the cable.
Ribbons¶
Ribbons are created in two scenarios:
- Ribbon-in-tube -- when a BufferTubeTemplate has RibbonTemplate children, a Ribbon is created inside each BufferTube for each RibbonTemplate.
- Central-core ribbon -- when RibbonTemplates are attached directly to the FiberCableType (with no tubes), Ribbons are created at the cable level.
FiberStrands¶
FiberStrands are the individual optical fibers. They are created inside their parent container (tube, ribbon, or cable) and automatically assigned EIA-598 colors based on their position within that container. The color sequence cycles every 12 fibers.
Each strand receives a globally unique position number across the entire
cable, ensuring unambiguous identification regardless of the construction style.
CableElements¶
CableElements represent non-fiber components such as strength members, ripcords, or armor. One CableElement is created for each CableElementTemplate on the type.
Viewing Internal Structure¶
The FiberCable detail page displays the full component hierarchy. For a loose-tube cable, this shows:
FiberCable
+-- BufferTube 1 (Blue)
| +-- FiberStrand 1 (Blue)
| +-- FiberStrand 2 (Orange)
| +-- ...
+-- BufferTube 2 (Orange)
| +-- FiberStrand 13 (Blue)
| +-- ...
+-- CableElement: Strength Member
For ribbon-in-tube cables, Ribbons appear as an intermediate level between tubes and strands. For central-core ribbon cables, Ribbons appear directly under the FiberCable. For tight-buffer cables, FiberStrands attach directly to the cable with no intermediate containers.
EIA-598 Color Assignment¶
All FiberStrands and BufferTubes receive colors automatically using the TIA/EIA-598 standard. Colors are determined by position within the parent container, not by the strand's global position. This means fiber 1 in every tube is always Blue, fiber 2 is always Orange, and so on.
For a full color table and details on the cycling behavior, see Core Concepts: EIA-598 Color Code.
Linking Cable Topology¶
The link_cable_topology() service automates the creation of a FiberCable and
its associated port infrastructure on termination devices. It is designed for
scenarios where you want to go from a bare dcim.Cable to a fully modeled
fiber plant in a single operation.
What It Does¶
-
Creates the FiberCable from the specified
dcim.Cableand FiberCableType, triggering auto-instantiation of all internal components. -
Adopts or creates FrontPorts on the termination device. If the device already has RearPorts terminated by the cable, the service detects them and maps existing FrontPorts to strands. If no ports exist, it creates new RearPorts and FrontPorts.
-
Creates PortMappings connecting each FrontPort to its parent RearPort, establishing the internal wiring that NetBox's cable trace algorithm uses to follow a signal through the device.
-
Sets the cable profile on the
dcim.Cableautomatically. The profile is determined by the FiberCableType's strand count and registered in the custom cable profile system.
Adopt vs. Greenfield¶
The service handles two paths:
-
Greenfield -- no existing ports on the device for this cable. The service creates one RearPort per tube (or a single RearPort if the cable has no tubes), then creates a FrontPort and PortMapping for every strand.
-
Adopt -- the device already has RearPorts terminated by this cable. The service proposes a mapping between existing FrontPorts and strand positions. If the mapping has not been confirmed, it raises a
NeedsMappingConfirmationexception with the proposed mapping so the caller can review and approve it.
Cable Profiles¶
NetBox's built-in cable profiles cap at 16 positions (Single1C16P). Fiber
cables commonly exceed this limit. NetBox FMS registers custom cable profiles
for standard fiber strand counts:
| Profile Key | Positions | Typical Use |
|---|---|---|
single-1c24p |
24 | 2 tubes x 12F |
single-1c48p |
48 | 4 tubes x 12F |
single-1c72p |
72 | 6 tubes x 12F |
single-1c96p |
96 | 8 tubes x 12F |
single-1c144p |
144 | 12 tubes x 12F |
single-1c216p |
216 | 18 tubes x 12F |
single-1c288p |
288 | 24 tubes x 12F |
single-1c432p |
432 | 18 tubes x 24F |
Trunk cable profiles (multi-connector) are also registered for common configurations such as 2C12P, 4C12P, 6C12P, and others.
These profiles are registered at plugin startup and integrate with NetBox's cable trace algorithm, allowing it to route signals at the individual strand level through high-density fiber cables.
For the complete profile registry, see Cable Profiles.