Netbox: Multiple interfaces connected to a single circuit termination

Created on 21 Apr 2020  Â·  4Comments  Â·  Source: netbox-community/netbox

Environment

  • Python version: 3.8
  • NetBox version: 2.8

Proposed Functionality

The current implementation cannot handle the following situation:

INT1 ----- FP1        |
       |         RP ----- CT --- Circuit
INT2 ----- FP2        |
       +--------------+

WhereINT is an interface, FP is a front port, RP is a rear port and CT is a circuit termination.

Such a situation can occur for example when modelling a DWDM multiplexer connected to a leased line, when creating all the cabling on one end of the circuit before connecting anything to the other side of the circuit.

When creating the setup shown above both INT1 and INT2 will consider CT their connected endpoint. In the current implementation this is not allowed (_connected_circuittermination is a OneToOneField(CircuitTermination) on the interface, and connected_endpoint is a OneToOneField(Interface) on the circuit termination).

There are two possible ways to deal with this that I can see:

  1. Allow the CT to be considered a valid connected endpoint for multiple interfaces> This would mean: change the _connected_circuittermination on the interface to a ForeignKey with a related_name of connected_endpoints and remove the connected_endpoint field from the circuit. Adapting the UI and API to match.
  2. Don't allow this, and check if there is a multiplexer in the path that would allow connecting multiple interfaces to the same CT. If that is the case, don't store the CT as the connected endpoint. This would require no changes to the UI and API.

Which choice is the best? Discuss…

Use Case

Choice 1 would be useful in cases where having multiple interfaces connected to the same CT is the final goal. For example when buying a service from an ISP that involves multiple wavelengths for different services. I know of cases where the ISP provides plain internet on one wavelength and private interconnects on others, so plausible scenario.

Choice 2 would be fine if we don't need to support such wavelength services. In that case there will be a corresponding multiplexer on the other side of the circuit, and the connected endpoint of the interface will be filled when something is connected at the other end.

Database Changes

When choosing option 1: changing a one-to-one relationship into a one-to-many.

External Dependencies

None

feature

Most helpful comment

Additional use case: using single strands in a fiber, e.g. BiDi optics.

Without being too familiar the backend of the system, perhaps allow a circuit to be flexibly usable as a cable connecting rear ports.

All 4 comments

Additional use case: using single strands in a fiber, e.g. BiDi optics.

Without being too familiar the backend of the system, perhaps allow a circuit to be flexibly usable as a cable connecting rear ports.

I have a need for this as well in regards to leased dark fibre circuits and using BiDi modules

Blocked by #4900

This is addressed by #4900 and will be allowed beginning with NetBox v2.10.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Grokzen picture Grokzen  Â·  3Comments

hoalex picture hoalex  Â·  3Comments

hellerve picture hellerve  Â·  3Comments

aarjbdea picture aarjbdea  Â·  3Comments

markve-sa picture markve-sa  Â·  4Comments