Attaching VFs over data interface via CLI not rejected

Bug #1855933 reported by Senthil Mukundakumar
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
StarlingX
Fix Released
Low
Thomas Gao

Bug Description

Brief Description
-----------------
VFs created over data interface is allowed via CLI

Severity
--------
Major: The system is usable if you avoid configuring it

Steps to Reproduce
------------------
Configure VFs over data interface
[sysadmin@controller-0 ~(keystone_admin)]$ system host-if-modify -m 1500 -n sriov1 -c data -N 32 --vf-driver=netdevice controller-1 6ec4e893-5c56-4ad4-abc7-d326c9f903c5
+-----------------+--------------------------------------+
| Property | Value |
+-----------------+--------------------------------------+
| ifname | sriov1 |
| iftype | ethernet |
| ports | [u'ens785f1'] |
| imac | 3c:fd:fe:a0:10:a9 |
| imtu | 1500 |
| ifclass | data |
| aemode | None |
| schedpolicy | None |
| txhashpolicy | None |
| uuid | 6ec4e893-5c56-4ad4-abc7-d326c9f903c5 |
| ihost_uuid | 757cb598-b24c-42be-9a1c-ec999a421e45 |
| vlan_id | None |
| uses | [] |
| used_by | [] |
| created_at | 2019-12-10T16:17:57.713319+00:00 |
| updated_at | 2019-12-10T21:09:30.449423+00:00 |
| sriov_numvfs | 32 |
| sriov_vf_driver | netdevice |
| ipv4_mode | disabled |
| ipv6_mode | disabled |
| accelerated | [True] |
+-----------------+--------------------------------------+

Expected Behavior
------------------
The CLI should be rejected

Actual Behavior
----------------
Configuring VFs over data is allowed
4: ens785f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 3c:fd:fe:a0:10:a9 brd ff:ff:ff:ff:ff:ff
    vf 0 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 1 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 2 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 3 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 4 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 5 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 6 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 7 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 8 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 9 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 10 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 11 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 12 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 13 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 14 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 15 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 16 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 17 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 18 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 19 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 20 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 21 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 22 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 23 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 24 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 25 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 26 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 27 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 28 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 29 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 30 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off
    vf 31 MAC 00:00:00:00:00:00, spoof checking on, link-state auto, trust off

Reproducibility
---------------
Reproducible

System Configuration
--------------------
Any system

Branch/Pull Time/Commit
-----------------------
2019-12-09_20-00-00

Last Pass
---------
First time this negative test has been attempted

Test Activity
-------------
Feature Testing

Revision history for this message
Ghada Khalil (gkhalil) wrote :

Minor issue related to semantic checks

tags: added: stx.networking
tags: added: stx.config
Changed in starlingx:
importance: Undecided → Low
status: New → Triaged
assignee: nobody → Steven Webster (swebster-wr)
Ghada Khalil (gkhalil)
Changed in starlingx:
assignee: Steven Webster (swebster-wr) → Thomas Gao (tgao)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to config (master)

Fix proposed to branch: master
Review: https://review.opendev.org/702930

Changed in starlingx:
status: Triaged → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to config (master)

Reviewed: https://review.opendev.org/702930
Committed: https://git.openstack.org/cgit/starlingx/config/commit/?id=b27ae6b348fdd03d83859e7c1a21baf828859328
Submitter: Zuul
Branch: master

commit b27ae6b348fdd03d83859e7c1a21baf828859328
Author: Thomas Gao <email address hidden>
Date: Thu Jan 16 11:21:30 2020 -0500

    Fixed semantic checks for SR-IOV VF parameters.

    Only interfaces of class pci-sriov may have numvfs and vf_driver.
    However, interfaces of class data attempting to add numvfs and
    vf_driver via the cli was able to pass the semantic check.
    Moreover, when an interface class changes from pci-sriov to data,
    the numvfs and vf_driver fields are not cleared.

    This fix tackles the above issues by altering the condition-
    check that resets the 2 fields before the semantic check such
    that faulty semantic will not pass the semantic check.
    This fix also ensures the 2 fields are permanently reset
    once interface class is changed from pci-sriov to data.

    Added several unit tests to verify all situations described
    above.

    Depends-On: https://review.opendev.org/#/c/705293

    Closes-Bug: 1855933

    Change-Id: I3c25c57edcdd50c5e76e17da658c7985821a3436
    Signed-off-by: Thomas Gao <email address hidden>

Changed in starlingx:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to config (f/centos8)

Fix proposed to branch: f/centos8
Review: https://review.opendev.org/716137

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to config (f/centos8)
Download full text (32.3 KiB)

Reviewed: https://review.opendev.org/716137
Committed: https://git.openstack.org/cgit/starlingx/config/commit/?id=cb4cf4299c2ec10fb2eb03cdee3f6d78a6413089
Submitter: Zuul
Branch: f/centos8

commit 16477935845e1c27b4c9d31743e359b0aa94a948
Author: Steven Webster <email address hidden>
Date: Sat Mar 28 17:19:30 2020 -0400

    Fix SR-IOV runtime manifest apply

    When an SR-IOV interface is configured, the platform's
    network runtime manifest is applied in order to apply the virtual
    function (VF) config and restart the interface. This results in
    sysinv being able to determine and populate the puppet hieradata
    with the virtual function PCI addresses.

    A side effect of the network manifest apply is that potentially
    all platform interfaces may be brought down/up if it is determined
    that their configuration has changed. This will likely be the case
    for a system which configures SR-IOV interfaces before initial
    unlock.

    A few issues have been encountered because of this, with some
    services not behaving well when the interface they are communicating
    over suddenly goes down.

    This commit makes the SR-IOV VF configuration much more targeted
    so that only the operation of setting the desired number of VFs
    is performed.

    Closes-Bug: #1868584
    Depends-On: https://review.opendev.org/715669
    Change-Id: Ie162380d3732eb1b6e9c553362fe68cbc313ae2b
    Signed-off-by: Steven Webster <email address hidden>

commit 45c9fe2d3571574b9e0503af108fe7c1567007db
Author: Zhipeng Liu <email address hidden>
Date: Thu Mar 26 01:58:34 2020 +0800

    Add ipv6 support for novncproxy_base_url.

    For ipv6 address, we need url with below format
    [ip]:port

    Partial-Bug: 1859641

    Change-Id: I01a5cd92deb9e88c2d31bd1e16e5bce1e849fcc7
    Signed-off-by: Zhipeng Liu <email address hidden>

commit d119336b3a3b24d924e000277a37ab0b5f93aae1
Author: Andy Ning <email address hidden>
Date: Mon Mar 23 16:26:21 2020 -0400

    Fix timeout waiting for CA cert install during ansible replay

    During ansible bootstrap replay, the ssl_ca_complete_flag file is
    removed. It expects puppet platform::config::runtime manifest apply
    during system CA certificate install to re-generate it. So this commit
    updated conductor manager to run that puppet manifest even if the CA cert
    has already installed so that the ssl_ca_complete_flag file is created
    and makes ansible replay to continue.

    Change-Id: Ic9051fba9afe5d5a189e2be8c8c2960bdb0d20a4
    Closes-Bug: 1868585
    Signed-off-by: Andy Ning <email address hidden>

commit 24a533d800b2c57b84f1086593fe5f04f95fe906
Author: Zhipeng Liu <email address hidden>
Date: Fri Mar 20 23:10:31 2020 +0800

    Fix rabbitmq could not bind port to ipv6 address issue

    When we use Armada to deploy openstack service for ipv6, rabbitmq
    pod could not start listen on [::]:5672 and [::]:15672.
    For ipv6, we need an override for configuration file.

    Upstream patch link is:
    https://review.opendev.org/#/c/714027/

    Test pass for deploying rabbitmq service on both ipv...

tags: added: in-f-centos8
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.