Project

General

Profile

Actions

action #102176

closed

Test the feature "Enable Installer to Configure VLAN on s390x"

Added by oorlov over 2 years ago. Updated about 2 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Target version:
Start date:
2021-12-17
Due date:
% Done:

100%

Estimated time:
(Total: 0.00 h)

Description

Motivation

It is not clear on how to test the feature.

Task

  1. Get familiar with the https://jira.suse.com/browse/SLE-18631
  2. Clarify if we can have a setup that will allow to test the feature;
  3. Specify in the ticket how to use the setup, or specify impediments that do not allow to do so.

  4. Assign QA ticket in JIRA, assign it to yourself and mark as Done as soon as it will be tested: https://jira.suse.com/browse/SLE-19611


Subtasks 5 (0 open5 closed)

action #104151: Implement a simple module to join vlan on s390Rejected2021-12-17

Actions
action #104154: Validate joining vlan at startup on s390Rejected2021-12-17

Actions
action #104289: Implement a simple module to join vlan on s390Rejected2021-12-17

Actions
action #104292: Validate joining vlan at startup on s390Rejected2021-12-17

Actions
action #104295: Validate joining vlan at startup on s390Rejected2021-12-17

Actions
Actions #1

Updated by oorlov over 2 years ago

  • Tags deleted (qe-yast-refinement)
  • Subject changed from Investigate how to test the feature "Enable Installer to Configure VLAN on s390x" to [16h] Investigate how to test the feature "Enable Installer to Configure VLAN on s390x"
Actions #2

Updated by oorlov over 2 years ago

  • Status changed from New to Workable
Actions #3

Updated by JRivrain over 2 years ago

  • Status changed from Workable to In Progress
  • Assignee set to JRivrain
Actions #4

Updated by JRivrain over 2 years ago

Assuming the feature is to have a command-line menu before the installer starts on s390, that lets us setup a VLAN device and ID (even though the UI also allows it...).
It depends how deeply we want to test the feature. If we just want to probe that the VLAN dialog appears on s390 by default, that will be piece of cake, as it will be shown by default as soon as it's implemented. Meanwhile, and on other architectures, It can already be tested by adding netsetup=vlanid linemode=1 to the linuxrc command line, in grub.

It is possible to use openvswitch, which is already what we use for multi-machine tests. It is not without risk as we have to bind a bridge device to an actual interface. DON'T MESS UP PRODUCTION SERVERS BEFORE READING THE INSTRUCTIONS CAREFULLY !

EDIT: this setup does not work but some of it could still be useful.

Simple way, if you have a machine accessing internet with eth0 and another dedicated to vlan on eth1 and you're doing a bare-metal install:
$ ovs-vsctl add-br br0
$ ovs-vsctl add-port br0 eth1
$ ovs-vsctl add-port br0 tap0 tag=1
$ ovs-vsctl add-port br0 tap1 tag=1
Then when we install the OS on the VM, we select eth1, vlan 1.

but if we have only one interface and use libvirt (eg on a laptop) the instructions are a bit more tricky. here is what I figured out:

1 - Setup a bridge device

(imagine the bridge device as a physical network switch)

ovs-vsctl add-br br0

if we get "database connection failed", we may need the following command first:

/usr/share/openvswitch/scripts/ovs-ctl start

Then:
AFTER THAT POINT THE IP OF WLAN0 IS NO LONGER AVAILABLE (think about it before implementing on production!)

ovs-vsctl add-port br0 wlan0

this is pretty much like plugging wlan0 to a network switch called br0.

2 - Set up an IP :

If we want to access the external network, we need to transfer the IP to the bridge:

ip addr flush dev wlan0
ps -ef |grep dhclient
kill -9 (dhclient's PID)
ip link set br0 up
dhclient br0

3 - If we're using QEMU (NOT for libvirt, see 3 bis below if you use it)

let's create the device for the VM and add it to vlan 1:

tunctl -t tap0
ip link set tap0 up
ovs-vsctl add-port br0 tap0 tag=1

3 bis - If we're using libvirt

Method 1:
This would be the more robust than method 2 way but requires altering the libvirt's virtual network config.
Follow the instructions here: https://blog.scottlowe.org/2012/11/07/using-vlans-with-ovs-and-libvirt/.

Method 2:
Advantage of this method: could probably be used on production without altering the virtual network configuration.
we need to edit the VM NIC's xml as explained here: https://docs.openvswitch.org/en/latest/howto/libvirt/ (they use the name "ovsbr" for the bridge name, in our example we are using br0 instead as "source bridge")
Once we start the VM, we should see a new interface popping up if we type "ip a". We can also see it if we type "ovs-vsctl show". For example if the new interface is vnet3, add it to the vlan 1:

ovs-vsctl set port vnet3 tag=1

5 - Once the installer started

Now in the installer if we are on s390, we should see the menu as here, allowing us to set the vlan ID: https://jira.suse.com/secure/attachment/160830/netsetup-vlanid-linemode.png
Set it to "1". If we are simulating this on an x86 laptop, we need to enter "netsetup=vlanid linemode=1" as command-line argument in grub to access it.

Open some terminal.
"ip a" should show an interface called eth0.1 (or so, depending on the interface's name:

3: eth0.1@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 52:54:00:6c:6c:b5 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::5054:ff:fe6c:6cb5/64 scope link 
       valid_lft forever preferred_lft forever

and the file /proc/net/vlan/config should show it as well:

LAN Dev name     | VLAN ID
Name-Type: VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD
eth0.1          | 1  | eth0

2 - Verify that the vlan actually works
(still WIP: it does not seem to really work,I don't know how to setup the environment to properly mimic a 802.1q vlan: vlan IDs set in Yast do not seem to have any effect).

Repeat the point 3 or 3bis on a different VM.
Then allow communication between the two VMS:

iptables -A FORWARD -i br0 -o br0 -j ACCEPT

For more instructions on how to create a VLAN for with openvswitch see here: https://docs.openvswitch.org/en/latest/howto/vlan/ and here: https://docs.openvswitch.org/en/latest/faq/vlan

Actions #5

Updated by oorlov over 2 years ago

  • Description updated (diff)
Actions #6

Updated by JRivrain over 2 years ago

  • Status changed from In Progress to Blocked

I do not really know how to set-up an environment that would reproduce a 802.1q VLAN. I think it would be valuable to test this in "real" context, and would allow to set-up a multi-machine test in openQA, but I just don't have the knowledge to set this up. I asked some questions to a few persons, if I get some answers we could unblock this ticket, or we can just consider that only verifying the the config files are altered as expected is "good enough".

Actions #7

Updated by JERiveraMoya over 2 years ago

  • Subject changed from [16h] Investigate how to test the feature "Enable Installer to Configure VLAN on s390x" to Test the feature "Enable Installer to Configure VLAN on s390x"
  • Status changed from Blocked to Feedback

As agreed, this ticket become the real testing of the feature and not just the investigation.
As suggested by @oorlov and according to description in this ticket, please @JRivrain, assign the QA Jira ticket to yourself (maybe you have done that already and it is not visible for the rest, that is fine) and add your findings in the Dev ticket (not the QA one).

Actions #8

Updated by JRivrain over 2 years ago

  • Status changed from Feedback to In Progress
Actions #9

Updated by JRivrain over 2 years ago

  • Status changed from In Progress to Closed

follow-up tickets created

Actions #10

Updated by JRivrain about 2 years ago

  • Status changed from Closed to Workable
Actions #11

Updated by JERiveraMoya about 2 years ago

  • Status changed from Workable to In Progress
Actions #12

Updated by JRivrain about 2 years ago

  • Status changed from In Progress to Blocked

I still don't see the feature in the product, we should sort this out next week with Yast devs.

Actions #13

Updated by JERiveraMoya about 2 years ago

just saw your comment here, I moved the task in Jira to In-progress, perhaps too fast :)
Yes, let's check together as well.

Actions #14

Updated by JRivrain about 2 years ago

  • Status changed from Blocked to Feedback

I marked the task as done but with comments:

"I got confused by the feature request description, as it looks like this feature of having the vlan menu by default is wanted in a context of installing from local repository, which then requires to use install= option which makes the "vlan menu" not to appear.

But, as this vlan menu can be spawned by using netsetup=1, which is pretty straightforward, I don't see any quality problem here. I marked the QA task as done.
"

I validated the feature on SLE-15-SP4-Online-s390x-Snapshot-202203-2 as follows: start a s390 VM with virt-manager, booting from installation DVD. once the menu appear, enter a VLAN ID. Then see that ip a shows a device called eth0.1, and /proc/net/vlan/config shows the VLAN interface.

Actions #15

Updated by JRivrain about 2 years ago

  • Status changed from Feedback to Closed
Actions

Also available in: Atom PDF