commit ff1be48bf0bc22f75932af5be50b8d395275d4ae
Author: Steven Webster <email address hidden>
Date: Fri Jun 26 22:57:35 2020 -0400
Fix N3000 FPGA SR-IOV config for split NICs
This commit fixes an issue that can occur if a user
creates an SR-IOV interface of type VF with a parent
SR-IOV interface that belongs to a NIC on an Intel
N3000 FPGA.
The FPGA is reset on every worker node bootup (if present),
clearing all SR-IOV config. Because of this, the current
puppet code waits for the reset to be completed before
restarting the interface via the sysconfig network interface
scripts. Because the VF interface is a separate hieradata
entry than the parent interface, this can cause a race
condition where the device is re-initialized after one of
the child/parent interfaces has already bound a driver to the
interface.
Since the whole point of the VF interfaces is to 'split'
a NIC to allow multiple SR-IOV VF drivers on one physical NIC,
this commit makes a single hieradata entry for the parent
interface, rather than individual entries for the parent and
child(ren). The information to bind the child interfaces
appropriately is embedded in the vf_config dict of the parent
interface.
Change-Id: Iad34de8ae1b913a1c188e5473e0c92cdf8007ba2
Partial-Bug: #1885229
Signed-off-by: Steven Webster <email address hidden>
Reviewed: https:/ /review. opendev. org/738300 /git.openstack. org/cgit/ starlingx/ config/ commit/ ?id=ff1be48bf0b c22f75932af5be5 0b8d395275d4ae
Committed: https:/
Submitter: Zuul
Branch: master
commit ff1be48bf0bc22f 75932af5be50b8d 395275d4ae
Author: Steven Webster <email address hidden>
Date: Fri Jun 26 22:57:35 2020 -0400
Fix N3000 FPGA SR-IOV config for split NICs
This commit fixes an issue that can occur if a user
creates an SR-IOV interface of type VF with a parent
SR-IOV interface that belongs to a NIC on an Intel
N3000 FPGA.
The FPGA is reset on every worker node bootup (if present),
clearing all SR-IOV config. Because of this, the current
puppet code waits for the reset to be completed before
restarting the interface via the sysconfig network interface
scripts. Because the VF interface is a separate hieradata
entry than the parent interface, this can cause a race
condition where the device is re-initialized after one of
the child/parent interfaces has already bound a driver to the
interface.
Since the whole point of the VF interfaces is to 'split'
a NIC to allow multiple SR-IOV VF drivers on one physical NIC,
this commit makes a single hieradata entry for the parent
interface, rather than individual entries for the parent and
child(ren). The information to bind the child interfaces
appropriately is embedded in the vf_config dict of the parent
interface.
Change-Id: Iad34de8ae1b913 a1c188e5473e0c9 2cdf8007ba2
Partial-Bug: #1885229
Signed-off-by: Steven Webster <email address hidden>