Skip to content
Permalink

Comparing changes

This is a direct comparison between two commits made in this repository or its related repositories. View the default comparison for this range or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: k8snetworkplumbingwg/sriov-network-operator
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 4d1cf3d70c55138cffad2a85783698cf6d919ede
Choose a base ref
..
head repository: k8snetworkplumbingwg/sriov-network-operator
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 2307c9f571e189d84401e6cba517e0097d9ebec1
Choose a head ref
Showing with 10 additions and 10 deletions.
  1. +10 −10 doc/design/externally-manage-pf.md
20 changes: 10 additions & 10 deletions doc/design/externally-manage-pf.md
Original file line number Diff line number Diff line change
@@ -198,16 +198,15 @@ to the generated `nodeState.Spec`

This is where most of the changes for this feature are implemented.

First step we will do a validation same as on the webhook to check the PF have everything we need to apply the requested
* do a validation same as on the webhook to check the PF have everything we need to apply the requested
policy, by checking the `numVfs`, `MTU` and `LinkType`.
Next config-daemon will skip all the PF configuration like `numVfs`, `MTU` and `LinkType`. he will only perform the virtual function
driver binding, administrative mac allocation and MTU. Another step In case of Infiniband link type it will
generate random node and port GUID for the interface, same in case of RDMA (both for ETH and IB) it will perform an
unbind/bind of the VF driver to set RDMA Node/Port GUID.
Last step as always will be to reset the device plugin so
kubelet will be able to discover the SR-IOV devices.

The config-daemon will also save on the node a cache (file) of the last applied policy. this is needed to be able and understand
* skip all the PF configuration like `numVfs`, `MTU` and `LinkType`. he will only perform the virtual function
driver binding, administrative mac allocation and MTU.
* in case of Infiniband link type it will generate random node and port GUID for the interface
* in case of RDMA (both for ETH and IB) it will perform an unbind/bind of the VF driver to set RDMA Node/Port GUID.
* reset the device plugin so kubelet will be able to discover the SR-IOV devices.

*NOTE:* The config-daemon will also save on the node a cache (file) of the last applied policy. this is needed to be able and understand
if we need to reset the PF configuration(`ExternallyManaged` was false) or not when policy is removed.

### Upgrade & Downgrade considerations
@@ -221,4 +220,5 @@ this may cause conflicts in the system.
* Should not allow to create a policy with externallyManaged true if there are no vfs configured
* Should create a policy if the number of requested vfs is equal
* Should create a policy if the number of requested vfs is equal and not delete them when the policy is removed
* should reset the virtual functions if externallyCreated is false
* should reset the virtual functions if externallyCreated is false
* should to configure a policy with externallyManaged true if there are no vfs configured with disabled webhook