@@ -378,9 +378,40 @@ The names and the IDs all match, along with the VLAN ID of the segment where the
378
378
379
379
Our ML2 mechanism is responsible for the following:
380
380
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
+ ```
384
415
385
416
### Bind Port
386
417
0 commit comments