-
Notifications
You must be signed in to change notification settings - Fork 2.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cable with multiple connections can't cross module front/rear ports. #11079
Comments
Per the bug report template:
Please review your post above to ensure that the reproduction steps are not dependent on any data in the demo instance. |
I've removed all references to any devices/device_type/module types/modules in demo.netbox.dev. |
There are two issues here:
IIRC, this specific condition was not possible to reach prior to the introduction of multi-termination cabling in v3.3, hence the lack of elegant validation, however it obviously did not get updated. I presume we can resolve the exception itself fairly easily, however supporting traces that split across multiple multi-position rear ports may be difficult. There's also probably some overlap here with #10602; we should consider these in tandem. |
+1 for supporting this. My use case is different, but I am running into the same AssertError. |
Related discussion: #11158 in summary, modeling Lanes of QSFP-type connections across breakouts and keeping track of the individual data channels. |
Issue only occurs when the cable is attached to an interface. Attaching a cable from front or rear ports to other multiple front ports linked to different, multi-position rear ports does not raise an exception. |
I am going to try and take this up by simply catching the exception. We can then discuss supported and unsupported topologies in a separate FR. |
…3337) * Catch AssertionError's in signals. Handle accordingly * Alter cable logic to handle certain additional path types. * Fix failures and add test * More tests * Remove not needed tests, add additional tests * Finish tests, correct some behaviour * Add check for mid-span device not allowed condition * Remove excess import * Remove logging import * Remove logging import * Minor tweaks based on Arthur's feedback * Update netbox/dcim/tests/test_cablepaths.py Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com> * Update netbox/dcim/models/cables.py Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com> * Changes to account for required SVG rendering changes and based on feedback * More tweaks for cable path checking * Improve handling of links with multi-terminations * Improved SVG rendering of multiple rear ports (with positions) per path trace. Include asymmetric path detection * Include missing assert to ensure links are same type. * Clean up tests * Remove unused objects from tests * Changes requested to tests and update comments/doctstrings * Fix parent reference --------- Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
NetBox version
v3.3.9
Python version
3.9
Steps to Reproduce
We use a module fiber cassette system - these are cassettes you plug into 1u rack mount.
Trying to plug a MPO to LC breakout cable can cross these modules - the rear ports a single MPO and the front ports are 6 pairs of LC connectors. So the break out cable we use is a 1 MPO (ie, 100G qsfp) to 4 pair of LC's. This can cross between two modules.
create a device. aka 'sw-test'
add to this device a network interface. any type will do, except lag or virtual.
create a module_type, with no components add.
create a device to use as a patch panel.
in that patch panel, create two module bays, 'C1' and 'C2'.
populate the module bay with the above module type.
for module C1 add rear port of 'MPO-1', positions of 6
for module C2 add rear port of 'MPO-2', positions of 6
for module C1, add front ports of 'LC-[1-6]', type 'LC', attached to rear-port MPO-1:[1-6]
for module C2, add front ports of 'LC-[7-12]', type 'LC', attached to rear-port MPO-2:[1-6]
See attached screen shot for module/cassette/front/rear setup.
go to the test device you created.
for the on the network interface, tell it you want to make a connection. Choose front port.
for the termination_b, choose LC-6 (associated with MPO-1) and LC-7 (associated with MPO-2)
Get error message in browser.
Stack dump from our test netbox instance, doing the same thing:
Expected Behavior
Can attach a breakout cable across modules/frontports
Observed Behavior
The text was updated successfully, but these errors were encountered: