-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Old VLAN tag remains on VF when NAD has no VLAN field. #25
Comments
@alonSadan so you would like to see the VF vlan tag be set to 0 when not explicitly specified in net-attach-def? |
As @EdDev said here, and @oshoval said here, there is a difference between vlan=0 and no vlan at all. We would like it to be reflected when applying the NAD:
Is this possible? |
@adrianchiris @martinkennelly Is there any difference between setting vlan=0 and not setting any vlan on VFs? |
I think these two are already satisfied in sriov-cni, isn't it? |
Per my understanding of @alonSadan findings, if the VLAN is not specified, the VF is not touching that property, therefore leaving what was there before. This is a different semantic from what was mentioned above.
|
From what I saw, When VLAN is not specified in the NAD, the VLAN attribute of the VF will not change, but we expect it to be removed. |
vlan
feild exists in NAD
@zshi-redhat No functional difference for X710 and E810s. |
vlan 0 == no vlan for mlnx NICs However keep in mind that for CNI cmdAdd call, if no vlan is specified then it means the existing vlan is expected to be used(whatever it may be). In this case no vlan operations are made on the VF on cmdDel call. If vlan is specified, on cmdAdd call, that vlan will be set on the VF and the original vlan as was prior to the set will be restored on cmdDel call. |
Ok, so you are expecting sriov-cni to set vlan=0 on VF when vlan field is not specified in NAD. Given that Martin and Adrian had confirmed that |
an "unspecified" VLAN in NAD IMO does not necessarily mean vlan 0. I expect it to mean "unspecified" as in the CNI plugin should not concern itself with VLAN configuration. |
A VLAN or lack of it defines a network, it is unreasonable to get a random one. When one does not specify a VLAN, he explicitly says that it expects it to have none. |
It is the VLAN as was configured in the system it is not "random". |
That is not reasonable IMO, the CNI assigns and releases VF/s and basically controls its settings. At KubeVirt we have been experiencing flakiness in tests due to this. The VF/s assigned had on them leaked VLAN/s (probably from other tests that used them, and somehow the release has not restored VLAN 0), and at some point such VF/s have been assigned to pods who expected no VLAN. |
@EdDev @adrianchiris @zshi-redhat From what I understand from this discussion, there are two things needs to be done in order to close this issue:
Any objections? |
Hi @zshi-redhat @adrianchiris @martinkennelly @EdDev
|
Issues go stale after 90d of inactivity. Mark the issue as fresh by commenting If this issue is safe to close now please do so with /lifecycle stale |
Stale issues rot after 30d of inactivity. Mark the issue as fresh by commenting If this issue is safe to close now please do so with /lifecycle rotten |
U/S PR got merged , and the 4.9 D/S release already include the solution for this issue. |
What happened?
Once a SRIOV VF gets a VLAN tag assigned to,the vlan tag vlaue is kept,
even though the vmi/pod was connected to a network with no VLAN attribute defined on it's
NetworkAttachmentDefenition
.What did you expect to happen?
When VLAN not specified - the vlan tag will be removed from the VF.
When VLAN equals 0 - the vlan tag should be with value 0.
What are the minimal steps needed to reproduce the bug?
On an SRIOV setup:
Anything else we need to know?
When The vlan attribute exits on the NAD, but holds a value of
0
the VLAN does get removed from the VF.Component Versions
Please fill in the below table with the version numbers of applicable components used.
Config Files
Config file locations may be config dependent.
CNI config (Try '/etc/cni/net.d/')
Device pool config file location (Try '/etc/pcidp/config.json')
Multus config (Try '/etc/cni/multus/net.d')
Kubernetes deployment type ( Bare Metal, Kubeadm etc.)
Kubeconfig file
SR-IOV Network Custom Resource Definition
Logs
SR-IOV Network Device Plugin Logs (use
kubectl logs $PODNAME
)Multus logs (If enabled. Try '/var/log/multus.log' )
Kubelet logs (journalctl -u kubelet)
The text was updated successfully, but these errors were encountered: