mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-11 21:10:29 +01:00
support for asdot notation for 4 Byte ASN #5910
Closed
opened 2025-12-29 19:34:06 +01:00 by adam
·
12 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#5910
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 @empusas on GitHub (Jan 9, 2022).
Originally assigned to: @jasonyates on GitHub.
NetBox version
v3.1.5
Feature type
Change to existing functionality
Proposed functionality
In the netbox url/ipam/asns/ and netbox ur>/ipam/asns/#/ view the AS Number should be displayed in asplain and asdot notation.
The db model does not have to be changed as we can still only store the asplain value in the db.
The actual conversion can be done in the web browser with some simple javascript like this:
Use case
4 Byte AS number get more popular these day and the asdot notation seems to be much easier to work with.
Database changes
not required, conversion can be done in javascript at runtime as mentioned above.
External dependencies
none
@DanSheps commented on GitHub (Jan 9, 2022):
I understand this was done in JS, but should this also be targetted for the API or do you think it is not needed as API consumers should be capable of handling it?
@empusas commented on GitHub (Jan 9, 2022):
I think is is just more convenient for humans. As the conversion can be done really simple API users should be able to convert themself.
But you are right, it could be done on the server side as well, while keeping only the asplain value in the DB.
@jeremystretch commented on GitHub (Jan 10, 2022):
In the UI, we can just display both formats in the UI for AS number larger than 65535. We should also come up with a custom form field to handle input in either format. IMO though the REST API should only return the plain integer format.
@empusas commented on GitHub (Jan 10, 2022):
How do you want to add it in? Extend the ASN base class with the conversion functions or just add it into the table creation?
@jasonyates commented on GitHub (Jan 11, 2022):
What would be the best way to display this?
With an additional row:

Appending the asdot version alongside the asplain. E.g.:

Same would apply to the table view. An extra column or appending it after the existing value.
@jeremystretch commented on GitHub (Jan 12, 2022):
I would just put it in parentheses immediately following the first value.
@bluikko commented on GitHub (Jan 18, 2022):
In 3.1.6 now the
/ipam/asns/list shows ASN as AS-dot only....... was that really the purpose?I would expect most people want to see proper ASN4 in most of the places and AS-dot should be optional additional info only.

Note also the column header says
Asnwhile it should probably sayASN.@eimann commented on GitHub (Jan 18, 2022):
Interesting so see asdot appearing again, I though we threw this away many years ago.
asplain is the recommeded and preferred way to represent AS numbers, as all devices and tools on non-ancient versions do:
https://datatracker.ietf.org/doc/html/rfc5396#section-3
@nickhilliard commented on GitHub (Jan 18, 2022):
It would be really great to see this commit fully reverted. asdot is a dysfunctional representation format which offers no real benefit, but consistently adds confusion. Some points to consider:
As @eimann mentioned, the IETF published RFC5396 in 2008 as a Standards Track document, which requests that asplain be used. This is the IETF equivalent of saying: "formal standards request: please use only asplain for text representation of ASNs".
@empusas commented on GitHub (Jan 18, 2022):
I am working for one of the biggest providers in the world and have to deal with 4 Byte ASN every day.
In a single tenant environment you may have the luxury to randomly assign simple to remember private ASN, but the reality in a big provider looks very different.
Most bigger companies come up with a proper concept to assign private IPs.
I have a customer that uses the first 2 byte to identify the service, the 2nd 2 byte to identify the site.
if you got ASN 63000.50000 vs ASN4128818000, which is easier to work with now? So to me that is no argument at all.
I was meant as an aid for those who use asdot for whatever reason.
I agree that it was not executed as intended. Now it shows only the asdot in the overview list and asplain everywhere else.
The proposal was to display both where possible. I see no harm in displaying both when feasible and maybe come up with a auto convert function if someone enters asdot instead of asplain.
@jeremystretch commented on GitHub (Jan 18, 2022):
This FR was for a trivial change regarding how a numeric value is displayed, so in hindsight I should have expected steadfast opposition from network engineers. 😛
For some context, this change was implemented simply because:
It's fine to disagree with the change and do argue against it, but let's remember not to make blanket assumptions about NetBox's user base. Obviously the change had value for the person who proposed it; otherwise it would not have been proposed. The mere fact that the ASDOT format exists in the first place is evidence enough that some people prefer it.
#8375 has been opened to revert the change. I don't think it's necessary to fully revert it, but clearly we should have given users greater control over the format used to display AS numbers. I'm going to continue the discussion under that FR as this issue has been closed, and will ask folks to refrain from commenting here any further as the opposition has been sufficient registered.
@lamoni commented on GitHub (Feb 2, 2022):
+1 for there being a choice.
While I respect the references to ~14 year old RFCs, times have changed as well and the way we use these things have changed.
For my own anecdotal experience, Clos data centers running BGP-only seem (emphasis on "seem". Anecdotal, remember?!) to always be configured and diagrammed using ASDOT, where the first 16 bits are used to denote something like a site code and the second 16 bits are used to differentiate the spines and leafs, etc..
It's very similar to IP addresses in my mind, and these arguments to forego ASDOT these days makes me wonder why we don't just use the decimal format for IP addresses then too if there is no benefit to using non-base10 representations of the numbers we work with every day to make them easier on the eyes and quicker to parse visually ;)
E.g.
Your spines might be configured with:
65201.10100
And then your leafs have their own:
Leaf1 - 65201.10101
Leaf2 - 65201.10102
Leaf3 - 65201.10103
Compare that to their ASPLAIN versions:
4273022836
Leaf1 - 4273022837
Leaf2- 4273022838
Leaf3 - 4273022839