Skip to content

Commit a55bded

Browse files
Merge pull request #927 from rackerlabs/network-bind-sequence
docs: add diagram showing port create and update in neutron
2 parents 3ae0e0e + 5a3e873 commit a55bded

File tree

1 file changed

+34
-3
lines changed

1 file changed

+34
-3
lines changed

docs/design-guide/neutron-networking.md

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -378,9 +378,40 @@ The names and the IDs all match, along with the VLAN ID of the segment where the
378378

379379
Our ML2 mechanism is responsible for the following:
380380

381-
- creating dynamic VLAN segments on VXLAN networks via port binding operations
382-
- deleting dynamic VLAN segments on VXLAN networks when ports are removed
383-
- triggering the actual operation to update the network devices
381+
- creating dynamic VLAN segments on VXLAN networks via port binding operations via `bind_port()`
382+
- deleting dynamic VLAN segments on VXLAN networks when ports are removed via `delete_port_postcommit()`
383+
- triggering the actual operation to update the leaf/spine devices to provide the connectivity via `update_port_postcommit()`
384+
385+
```mermaid
386+
sequenceDiagram
387+
participant Client
388+
participant NeutronAPI
389+
participant ML2Plugin
390+
participant MechanismManager
391+
participant MechanismDriver
392+
393+
%% CREATE PORT FLOW
394+
Client->>NeutronAPI: POST /v2.0/ports
395+
NeutronAPI->>ML2Plugin: create_port(context)
396+
ML2Plugin->>ML2Plugin: _create_port_with_binding()
397+
ML2Plugin->>MechanismManager: bind_port(port_context)
398+
MechanismManager->>MechanismDriver: attempt to bind (e.g., OVS, SR-IOV)
399+
MechanismDriver-->>MechanismManager: binding result
400+
MechanismManager-->>ML2Plugin: port bound
401+
ML2Plugin-->>NeutronAPI: port with binding details
402+
NeutronAPI-->>Client: 201 Created + port info
403+
404+
%% UPDATE PORT FLOW
405+
Client->>NeutronAPI: PUT /v2.0/ports/{id}
406+
NeutronAPI->>ML2Plugin: update_port(context)
407+
ML2Plugin->>ML2Plugin: _update_port_with_binding()
408+
ML2Plugin->>MechanismManager: bind_port(port_context)
409+
MechanismManager->>MechanismDriver: rebind or validate existing binding
410+
MechanismDriver-->>MechanismManager: binding result
411+
MechanismManager-->>ML2Plugin: updated port context
412+
ML2Plugin-->>NeutronAPI: port updated
413+
NeutronAPI-->>Client: 200 OK + updated port info
414+
```
384415

385416
### Bind Port
386417

0 commit comments

Comments
 (0)