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:
_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.Which choice is the best? Discuss…
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.
When choosing option 1: changing a one-to-one relationship into a one-to-many.
None
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.
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.