mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-11 21:10:29 +01:00
Virtual Chassis interface dynamic naming #6088
Closed
opened 2025-12-29 19:36:37 +01:00 by adam
·
13 comments
No Branch/Tag Specified
main
update-changelog-comments-docs
feature-removal-issue-type
20911-dropdown
20239-plugin-menu-classes-mutable-state
21097-graphql-id-lookups
feature
fix_module_substitution
20923-dcim-templates
20044-elevation-stuck-lightmode
feature-ip-prefix-link
v4.5-beta1-release
20068-import-moduletype-attrs
20766-fix-german-translation-code-literals
20378-del-script
7604-filter-modifiers-v3
circuit-swap
12318-case-insensitive-uniqueness
20637-improve-device-q-filter
20660-script-load
19724-graphql
20614-update-ruff
14884-script
02496-max-page
19720-macaddress-interface-generic-relation
19408-circuit-terminations-export-templates
20203-openapi-check
fix-19669-api-image-download
7604-filter-modifiers
19275-fixes-interface-bulk-edit
fix-17794-get_field_value_return_list
11507-show-aggregate-and-rir-on-api
9583-add_column_specific_search_field_to_tables
v4.5.0
v4.4.10
v4.4.9
v4.5.0-beta1
v4.4.8
v4.4.7
v4.4.6
v4.4.5
v4.4.4
v4.4.3
v4.4.2
v4.4.1
v4.4.0
v4.3.7
v4.4.0-beta1
v4.3.6
v4.3.5
v4.3.4
v4.3.3
v4.3.2
v4.3.1
v4.3.0
v4.2.9
v4.3.0-beta2
v4.2.8
v4.3.0-beta1
v4.2.7
v4.2.6
v4.2.5
v4.2.4
v4.2.3
v4.2.2
v4.2.1
v4.2.0
v4.1.11
v4.1.10
v4.1.9
v4.1.8
v4.2-beta1
v4.1.7
v4.1.6
v4.1.5
v4.1.4
v4.1.3
v4.1.2
v4.1.1
v4.1.0
v4.0.11
v4.0.10
v4.0.9
v4.1-beta1
v4.0.8
v4.0.7
v4.0.6
v4.0.5
v4.0.3
v4.0.2
v4.0.1
v4.0.0
v3.7.8
v3.7.7
v4.0-beta2
v3.7.6
v3.7.5
v4.0-beta1
v3.7.4
v3.7.3
v3.7.2
v3.7.1
v3.7.0
v3.6.9
v3.6.8
v3.6.7
v3.7-beta1
v3.6.6
v3.6.5
v3.6.4
v3.6.3
v3.6.2
v3.6.1
v3.6.0
v3.5.9
v3.6-beta2
v3.5.8
v3.6-beta1
v3.5.7
v3.5.6
v3.5.5
v3.5.4
v3.5.3
v3.5.2
v3.5.1
v3.5.0
v3.4.10
v3.4.9
v3.5-beta2
v3.4.8
v3.5-beta1
v3.4.7
v3.4.6
v3.4.5
v3.4.4
v3.4.3
v3.4.2
v3.4.1
v3.4.0
v3.3.10
v3.3.9
v3.4-beta1
v3.3.8
v3.3.7
v3.3.6
v3.3.5
v3.3.4
v3.3.3
v3.3.2
v3.3.1
v3.3.0
v3.2.9
v3.2.8
v3.3-beta2
v3.2.7
v3.3-beta1
v3.2.6
v3.2.5
v3.2.4
v3.2.3
v3.2.2
v3.2.1
v3.2.0
v3.1.11
v3.1.10
v3.2-beta2
v3.1.9
v3.2-beta1
v3.1.8
v3.1.7
v3.1.6
v3.1.5
v3.1.4
v3.1.3
v3.1.2
v3.1.1
v3.1.0
v3.0.12
v3.0.11
v3.0.10
v3.1-beta1
v3.0.9
v3.0.8
v3.0.7
v3.0.6
v3.0.5
v3.0.4
v3.0.3
v3.0.2
v3.0.1
v3.0.0
v2.11.12
v3.0-beta2
v2.11.11
v2.11.10
v3.0-beta1
v2.11.9
v2.11.8
v2.11.7
v2.11.6
v2.11.5
v2.11.4
v2.11.3
v2.11.2
v2.11.1
v2.11.0
v2.10.10
v2.10.9
v2.11-beta1
v2.10.8
v2.10.7
v2.10.6
v2.10.5
v2.10.4
v2.10.3
v2.10.2
v2.10.1
v2.10.0
v2.9.11
v2.10-beta2
v2.9.10
v2.10-beta1
v2.9.9
v2.9.8
v2.9.7
v2.9.6
v2.9.5
v2.9.4
v2.9.3
v2.9.2
v2.9.1
v2.9.0
v2.9-beta2
v2.8.9
v2.9-beta1
v2.8.8
v2.8.7
v2.8.6
v2.8.5
v2.8.4
v2.8.3
v2.8.2
v2.8.1
v2.8.0
v2.7.12
v2.7.11
v2.7.10
v2.7.9
v2.7.8
v2.7.7
v2.7.6
v2.7.5
v2.7.4
v2.7.3
v2.7.2
v2.7.1
v2.7.0
v2.6.12
v2.6.11
v2.6.10
v2.6.9
v2.7-beta1
Solcon-2020-01-06
v2.6.8
v2.6.7
v2.6.6
v2.6.5
v2.6.4
v2.6.3
v2.6.2
v2.6.1
v2.6.0
v2.5.13
v2.5.12
v2.6-beta1
v2.5.11
v2.5.10
v2.5.9
v2.5.8
v2.5.7
v2.5.6
v2.5.5
v2.5.4
v2.5.3
v2.5.2
v2.5.1
v2.5.0
v2.4.9
v2.5-beta2
v2.4.8
v2.5-beta1
v2.4.7
v2.4.6
v2.4.5
v2.4.4
v2.4.3
v2.4.2
v2.4.1
v2.4.0
v2.3.7
v2.4-beta1
v2.3.6
v2.3.5
v2.3.4
v2.3.3
v2.3.2
v2.3.1
v2.3.0
v2.2.10
v2.3-beta2
v2.2.9
v2.3-beta1
v2.2.8
v2.2.7
v2.2.6
v2.2.5
v2.2.4
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.6
v2.2-beta2
v2.1.5
v2.2-beta1
v2.1.4
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.10
v2.1-beta1
v2.0.9
v2.0.8
v2.0.7
v2.0.6
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v2.0.0
v2.0-beta3
v1.9.6
v1.9.5
v2.0-beta2
v1.9.4-r1
v1.9.3
v2.0-beta1
v1.9.2
v1.9.1
v1.9.0-r1
v1.8.4
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.7.3
v1.7.2-r1
v1.7.1
v1.7.0
v1.6.3
v1.6.2-r1
v1.6.1-r1
1.6.1
v1.6.0
v1.5.2
v1.5.1
v1.5.0
v1.4.2
v1.4.1
v1.4.0
v1.3.2
v1.3.1
v1.3.0
v1.2.2
v1.2.1
v1.2.0
v1.1.0
v1.0.7-r1
v1.0.7
v1.0.6
v1.0.5
v1.0.4
v1.0.3-r1
v1.0.3
1.0.0
Labels
Clear labels
beta
breaking change
complexity: high
complexity: low
complexity: medium
needs milestone
netbox
pending closure
plugin candidate
pull-request
severity: high
severity: low
severity: medium
status: accepted
status: backlog
status: blocked
status: duplicate
status: needs owner
status: needs triage
status: revisions needed
status: under review
topic: GraphQL
topic: Internationalization
topic: OpenAPI
topic: UI/UX
topic: cabling
topic: event rules
topic: htmx navigation
topic: industrialization
topic: migrations
topic: plugins
topic: scripts
topic: templating
topic: testing
type: bug
type: deprecation
type: documentation
type: feature
type: housekeeping
type: translation
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/netbox#6088
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @AnythingOverIP on GitHub (Feb 15, 2022).
NetBox version
3.1.7
Feature type
New functionality
Proposed functionality
Similar to what has been brilliantly implemented in https://github.com/netbox-community/netbox/issues/7844 for interface names assigned to a module, it would be beneficial to be able to do the same with VC, based on the VC ID.
Switch ID 0: ge-{MemberID}/0/0 @ ge-{MemberID}/0/48 : would then results in interfaces ge-0/0/0 @ ge-0/0/48
Switch ID 1: ge-{MemberID}/0/0 @ ge-{MemberID}/0/48 : would then results in interfaces ge-1/0/0 @ ge-1/0/48
Switch ID 2: ge-{MemberID}/0/0 @ ge-{MemberID}/0/48 : would then results in interfaces ge-2/0/0 @ ge-2/0/48
Currently, when adding switches to a Stack, we have to go and delete, then recreate interfaces as they the interface name is not what's in the device type anymore.
Having a "default position ID" defined in the device type (i.e: if switch not a member of a VC, assign a value to {MemberID}, so interfaces templates are not to be maintained twice would be a great plus, but this would potentially be harder to maintain or model (i.e: Cisco devices would have a default value of 1, and Juniper a default value of 0).
To simplify the feasibility of this FR, I wouldn't mind maintaining two device types for the same piece of equipment (one being a stand-alone switch and the other a stack member). This would minimize the logic needed to have different naming schemes whether a switch is used in a VC or not.
Similar issues were previously raised in https://github.com/netbox-community/netbox/issues/5918 , https://github.com/netbox-community/netbox/issues/4177, but hopefully Netbox 3.x would now be able to accommodate this using what's implemented in #7844
Use case
That new module concept is huge and will simplify our Netbox inventory. My understanding is that it could almost replace VC in most cases, but rack elevations would not be represented properly. Also, multi-site or multi rack VC member locations would not be properly addressed by that. I'd like to see in the Virtual Chassis model some of the flexibility the module model is bringing. Switch stacks would then be easier to create/maintain.
Database changes
None AFAIK
External dependencies
No response
@empusas commented on GitHub (Feb 23, 2022):
I would keep the virtual chassis feature. If you replace it with module you might loose a lot of functionality.
As I understand it the module model, it assumes that the "module" is inside of the chassis of the main device.
But your stack members, fabric extenders etc. might be at a different place and you want to capture that information.
Only problem I see is that you would like to have the interface in the master device, for example if you have an automation. But then it might be misleading if you use the cabling feature as the cables might end at a different location as the master device.
Not an easy problem I guess.
@AnythingOverIP commented on GitHub (Feb 23, 2022):
Definitely! My request is not to get rid of Virtual Chassis. Just to do some mileage on what has been done with Modules.
@steele-ntwrk commented on GitHub (Mar 15, 2022):
This is a great request 👍🏼 ! Great work!
I was about to open a similar one after watching the youtube video about Modules in Netbox 3.2 but thought I would have a search first.
I think two new fields can be added to the data model of the device type that will be assessed when creating a Virtual Chassis and update interfaces.
Example
virtual chassis capable: True
vcname: GigabitEthernet{VC}/0/1
There also seems to be some logic already there that when a device is marked as Master it imports all the interfaces, could renames the interfaces in the same process based on the above data model?
Cheers,
Steele
@wwerther commented on GitHub (Apr 1, 2022):
Already tested in Version 3.2 with Modules. It's working nice, to use interfaces names in module-type like:
TenGigabitEthernet1/{module}/1
so the addition would be to use
TenGigabitEthernet{vcid}/{module}/1
instead with the vcid replacd with the number in vc or a default value as stated in top request.
The question that will pop-up is what will happen if the VCID changes at a later time. So will deployed modules get permanent names or will the name be "replaced" dynamically when the position in VC would change.
@jeremystretch commented on GitHub (Apr 6, 2022):
The major distinction between modules and virtual chassis members (devices) is that device components are populated before assignment to a VC, whereas module components are populated at the same time. So you can't use the same approach of defining a placeholder value in the component name.
I suspect you're going to be in the minority there.
It's recommended to just rename the interfaces in bulk rather than deleting & recreating them all.
@DanSheps commented on GitHub (Apr 7, 2022):
Could we do something like {vcid:1} where anything after the ":" is the default, and have it check when a device is attached to a VC? I know it is a bit hacky but I do think it would greatly improve peoples UX experience.
Nevermind, I see that we can't relocate a module after the fact. Could we perhaps have a _unresolved_name cached on the object that we can check against and perhaps rename. This would also facilitate moving module slots without losing the interface state. Just a thought.
@github-actions[bot] commented on GitHub (Jun 6, 2022):
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. NetBox is governed by a small group of core maintainers which means not all opened issues may receive direct feedback. Please see our contributing guide.
@AnythingOverIP commented on GitHub (Jun 7, 2022):
@DanSheps , do you think it's worth keeping this FR opened? (pretty please! :) )
@steele-ntwrk commented on GitHub (Jun 8, 2022):
I think this is a good idea, but I'm also not very well versed in programming.
@DanSheps commented on GitHub (Jun 10, 2022):
I think for now we have more pressing issues to work on and this can be manually achieved by bulk rename currently
@AnythingOverIP commented on GitHub (Jun 15, 2022):
OK then! Thanks!
@github-actions[bot] commented on GitHub (Aug 28, 2022):
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. NetBox is governed by a small group of core maintainers which means not all opened issues may receive direct feedback. Do not attempt to circumvent this process by "bumping" the issue; doing so will result in its immediate closure and you may be barred from participating in any future discussions. Please see our contributing guide.
@github-actions[bot] commented on GitHub (Sep 27, 2022):
This issue has been automatically closed due to lack of activity. In an effort to reduce noise, please do not comment any further. Note that the core maintainers may elect to reopen this issue at a later date if deemed necessary.