Add support for children of children #251

Closed
opened 2025-12-29 16:20:08 +01:00 by adam · 5 comments
Owner

Originally created by @bdstark on GitHub (Jul 19, 2016).

Child devices should be able to contain other child devices. This is useful in a slot/module situation, where you place a device in a slot, and then modules into that device.

Specifically, the Cisco ASR9010 (and other ASR models) can have a line card that goes into a slot, which then opens two additional slots for modules. In Cisco world:
{chasis|device}/slot/module/port:
A9K-MOD160-TR in slot 0 (0/0/0/0), with A9K-MPA-20X1GE in module 0 (0/0/0/0) and A9K-MPA-8X10GE in module 1 (0/0/1/0)
A9K-MOD160-TR in slot 1 (0/1/0/0), with A9K-MPA-20X1GE in module 0 (0/1/0/0) and A9K-MPA-8X10GE in module 1 (0/1/1/0)

Taking this further, SFPS would fill that last 0 for the interface, and while useful, I think tracking that is beyond this request. It's also covered on the device interfaces, so while a small bit of data is lost (SFP information), the connections can be made.

Originally created by @bdstark on GitHub (Jul 19, 2016). Child devices should be able to contain other child devices. This is useful in a slot/module situation, where you place a device in a slot, and then modules into that device. Specifically, the Cisco ASR9010 (and other ASR models) can have a line card that goes into a slot, which then opens two additional slots for modules. In Cisco world: {chasis|device}/slot/module/port: A9K-MOD160-TR in slot 0 (0/0/0/0), with A9K-MPA-20X1GE in module 0 (0/0/0/0) and A9K-MPA-8X10GE in module 1 (0/0/1/0) A9K-MOD160-TR in slot 1 (0/1/0/0), with A9K-MPA-20X1GE in module 0 (0/1/0/0) and A9K-MPA-8X10GE in module 1 (0/1/1/0) Taking this further, SFPS would fill that last 0 for the interface, and while useful, I think tracking that is beyond this request. It's also covered on the device interfaces, so while a small bit of data is lost (SFP information), the connections can be made.
adam closed this issue 2025-12-29 16:20:08 +01:00
Author
Owner

@bdstark commented on GitHub (Jul 19, 2016):

I will add that I created separate devices for each set of unique card/module combinations, so I end up with devices made of three different Cisco P/Ns - the card, and the two modules. This works for my testing, but leads to additional devices.

@bdstark commented on GitHub (Jul 19, 2016): I will add that I created separate devices for each set of unique card/module combinations, so I end up with devices made of three different Cisco P/Ns - the card, and the two modules. This works for my testing, but leads to additional devices.
Author
Owner

@jeremystretch commented on GitHub (Jul 19, 2016):

Child devices are meant to represent components which have distinct control planes: they can be assigned IP addresses, modules, etc. For example, consider multiple blade servers housed within a common parent chassis.

What you're describing is achieved by defining device modules. These can nest within one another, however the front end currently supports only a single level of manually defined modules.

@jeremystretch commented on GitHub (Jul 19, 2016): Child devices are meant to represent components which have distinct control planes: they can be assigned IP addresses, modules, etc. For example, consider multiple blade servers housed within a common parent chassis. What you're describing is achieved by defining device modules. These can nest within one another, however the front end currently supports only a single level of manually defined modules.
Author
Owner

@bdstark commented on GitHub (Jul 19, 2016):

Is this the Device->Inventory tab? These modules don't seem to have interfaces, and are used for things like RAM or CPU? I apologize if I am just not looking in the right place, I have only been testing for a few hours now.

I'm surprised that switch modules would be considered so lightly, compared to a blade server. A switch module adds additional things to the device (ports), which is what I want to track. The documentation for modules indicates "these are used merely for inventory tracking", which is not what I am after.

@bdstark commented on GitHub (Jul 19, 2016): Is this the Device->Inventory tab? These modules don't seem to have interfaces, and are used for things like RAM or CPU? I apologize if I am just not looking in the right place, I have only been testing for a few hours now. I'm surprised that switch modules would be considered so lightly, compared to a blade server. A switch module adds additional things to the device (ports), which is what I want to track. The documentation for modules indicates "these are used merely for inventory tracking", which is not what I am after.
Author
Owner

@jeremystretch commented on GitHub (Jul 20, 2016):

This was an intentional design choice early on. Tying interfaces to modules and modules to devices needlessly complicates the data schema and would slow things down quite a bit. You can still convey all the information needed about a modular switch. The interfaces just don't go away automatically when you delete a module.

@jeremystretch commented on GitHub (Jul 20, 2016): This was an intentional design choice early on. Tying interfaces to modules and modules to devices needlessly complicates the data schema and would slow things down quite a bit. You can still convey all the information needed about a modular switch. The interfaces just don't go away automatically when you delete a module.
Author
Owner

@bdstark commented on GitHub (Jul 20, 2016):

Thanks for the background - thats helpful.

@bdstark commented on GitHub (Jul 20, 2016): Thanks for the background - thats helpful.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#251