Skip to content

Conversation

@cardoe
Copy link
Contributor

@cardoe cardoe commented May 5, 2025

Add an initial document that describes the behaviors and interactions of neutron with the system and where our code lives.

Add an initial document that describes the behaviors and interactions of
neutron with the system and where our code lives.
@cardoe cardoe requested a review from a team May 5, 2025 18:10
@cardoe cardoe added this pull request to the merge queue May 5, 2025
Merged via the queue into main with commit 7613135 May 5, 2025
17 checks passed
@cardoe cardoe deleted the net-docs branch May 5, 2025 19:15
Copy link
Collaborator

@skrobul skrobul left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

here are my post-merge 2 cents

Comment on lines +42 to +43
To provide available VNIs a [network segment range][neutron-network-segment-range] is
created of type VXLAN with the name of the fabric.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggest: VNIs are provisioned by creating a VXLAN network segment range on the fabric with the same name as the VNI."

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about...

An available pool of VNIs is defined by creating a VXLAN network segment range
with the same name as the fabric on which the VNIs will reside.

Comment on lines +66 to +69
When a server needs to have a connection to a network, it's `local_link_connection`
information is looked up. The `physical_network` is then used to attempt to map
the port to how it connects on the network. This is documented in Ironic's
Networking Guide as [VIF Attachment][ironic-vif-attachment].
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When a server needs to establish a connection to a network, Ironic checks the baremetal port's local_link_connection and physical_network attributes to determine how it should be mapped to the desired network. This information is documented in Ironic's Networking Guide as [VIF Attachment][ironic-vif-attachment].

the port to how it connects on the network. This is documented in Ironic's
Networking Guide as [VIF Attachment][ironic-vif-attachment].

If that VNI is not already mapped to a VLAN on the leaf pair where the server
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's unclear where the VNI information originates. We should explain what inputs are used, such as physical_network and local_link_connection. Additionally, it would be helpful to clarify which component or system is responsible for mapping these attributes to a VNI—whether it's Nautobot, Ironic, or the Neutron driver.

Comment on lines +173 to +174
Now we can look at the ports and confirm that indeed this segment exists to provide
connectivity to this server.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Now we can look at the ports and confirm that indeed this segment exists to provide
connectivity to this server.
Now we can check the ports to confirm that this segment indeed exists to provide connectivity to the server.

Comment on lines +36 to +38
The Leaf/Spine network is implemented as a VNI that exists on the fabric with
endpoints on each of the leaves that need connectivity being mapped to a VLAN
to provide connectivity to physical assets connected to that leaf.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Leaf/Spine network is implemented as a VNI

The Leaf/Spine is a physical or logical topology (the underlying network structure for a fabric).
A VNI (VXLAN Network Identifier) is a logical identifier for a specific virtual network segment that runs over the Leaf/Spine fabric (the underlay). You don't implement the topology as a VNI. You implement virtual networks (like VXLAN segments using VNIs) on top of or over the Leaf/Spine topology.

...with endpoints on each of the leaves... being mapped to a VLAN

While endpoints (like servers) are connected to ports that are part of a VLAN on the leaf switch, saying the "endpoints... being mapped to a VLAN" is awkward phrasing. More accurately, endpoints reside in or are connected to a VLAN on the access port of the leaf. The VLAN itself is then typically mapped to a VNI at the VTEP (our leaf switch) to transport the traffic across the VXLAN fabric.

should we go with something like:

Suggested change
The Leaf/Spine network is implemented as a VNI that exists on the fabric with
endpoints on each of the leaves that need connectivity being mapped to a VLAN
to provide connectivity to physical assets connected to that leaf.
In a Leaf/Spine fabric, VXLAN VNIs are used to create virtual network segments that run over the IP underlay. On the leaf switches, traditional VLANs connected to physical assets are typically mapped to specific VNIs to provide connectivity across the fabric.

no direct call for this via the Neutron API. This method is triggered by
Neutron based on certain data provided to port creation and update API calls.

`bind_port()` will be triggered in the following situation:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
`bind_port()` will be triggered in the following situation:
`bind_port()` will be triggered in the following situations:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants