Bug 587599

Summary: lsqeth shows layer2 device with hw checksumming
Product: Red Hat Enterprise Linux 6 Reporter: IBM Bug Proxy <bugproxy>
Component: s390utilsAssignee: Dan HorĂ¡k <dhorak>
Status: CLOSED CURRENTRELEASE QA Contact: Alex Sersen <asersen>
Severity: medium Docs Contact:
Priority: low    
Version: 6.0CC: asersen, jkachuck, jwest, ohudlick, tao
Target Milestone: rc   
Target Release: ---   
Hardware: s390x   
OS: All   
Whiteboard:
Fixed In Version: s390utils-1.8.2-20.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-11-15 14:46:43 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
print array should be reinitialized if several devices are displayed none

Description IBM Bug Proxy 2010-04-30 11:00:37 UTC
=Comment: #0=================================================
Christian Ehrhardt <EHRHARDT.com> - 
---Problem Description---
When configuring a device as layer3 with hw_checksumming
and 128 buffers (I don't know if it happens without hwck
and buffers yet) two issues are occurring.

It seems to depend on the order these devices are initialized,
at least that is the assumption so far.

This Bug covers one of these two issues - the one in the lsqeth tool.

When this tool scans the cards for their features it finds eth1 with
layer3 and hw checksumming (ok) and afterwards eth0 with layer2 (ok),
but it still reports e.g. hw checksumming as activated.

This is just not possible as it is not supported in layer2 mode.
See dmesg output and the sysfs of eth0 in this Bug for more details.

Example lsqeth output showing eth0 as layer2 with hw checksumming -> impossible:
lsqeth
Device name                     : eth1
---------------------------------------------
        card_type               : OSD_10GIG
        cdev0                   : 0.0.1200
        cdev1                   : 0.0.1201
        cdev2                   : 0.0.1202
        chpid                   : 74
        online                  : 1
        portname                : OSAPORT
        portno                  : 0
        route4                  : no
        route6                  : no
        checksumming            : hw checksumming
        state                   : UP (LAN ONLINE)
        priority_queueing       : always queue 2
        fake_broadcast          : 0
        buffer_count            : 128
        layer2                  : 0
        large_send              : no
        isolation               : none
        sniffer                 : 0

Device name                     : eth0
---------------------------------------------
        card_type               : OSD_1000
        cdev0                   : 0.0.f200
        cdev1                   : 0.0.f201
        cdev2                   : 0.0.f202
        chpid                   : 6B
        online                  : 1
        portname                : OSAPORT
        portno                  : 0
        checksumming            : hw checksumming
        state                   : UP (LAN ONLINE)
        priority_queueing       : always queue 2
        buffer_count            : 128
        layer2                  : 1
        large_send              : no
        isolation               : none


Dmesg initialization:
qeth: loading core functions
qeth: register layer 2 discipline
qeth 0.0.f200: MAC address 02:00:00:b4:9b:d5 successfully registered on device eth0
qeth 0.0.f200: Device is a OSD Express card (level: 0751)
qeth 0.0.f200: QDIO data connection isolation is deactivated
qeth: register layer 3 discipline
qeth 0.0.1200: Device is a OSD Express card (level: 0751)
qeth 0.0.1200: QDIO data connection isolation is deactivated
qeth 0.0.1200: Hardware IP fragmentation not supported on eth1
qeth 0.0.1200: VLAN enabled
qeth 0.0.1200: Multicast enabled
qeth 0.0.1200: IPV6 enabled
qeth 0.0.1200: Broadcast enabled
qeth 0.0.1200: HW Checksumming (inbound) enabled
qeth 0.0.1200: Outbound TSO enabled



The /sys/class/net/eth0/device/ directory also doen't have a checksumming entry:
drwxr-xr-x 2 root root    0 Apr 28 16:04 blkt
-rw-r--r-- 1 root root 4096 Apr 28 16:03 buffer_count
-r--r--r-- 1 root root 4096 Apr 28 16:04 card_type
lrwxrwxrwx 1 root root    0 Apr 28 16:04 cdev0 -> ../../css0/0.0.13d3/0.0.f200
lrwxrwxrwx 1 root root    0 Apr 28 16:04 cdev1 -> ../../css0/0.0.13d4/0.0.f201
lrwxrwxrwx 1 root root    0 Apr 28 16:04 cdev2 -> ../../css0/0.0.13d5/0.0.f202
-r--r--r-- 1 root root 4096 Apr 28 16:04 chpid
lrwxrwxrwx 1 root root    0 Apr 28 16:03 driver -> ../../../bus/ccwgroup/drivers/qeth
-r--r--r-- 1 root root 4096 Apr 28 16:04 if_name
-r--r--r-- 1 root root 4096 Apr 28 16:04 inbuf_size
-rw-r--r-- 1 root root 4096 Apr 28 16:04 isolation
-rw-r--r-- 1 root root 4096 Apr 28 16:04 layer2
drwxr-xr-x 3 root root    0 Apr 28 16:03 net
-rw-r--r-- 1 root root 4096 Apr 28 16:03 online
-rw-r--r-- 1 root root 4096 Apr 28 16:04 performance_stats
-rw-r--r-- 1 root root 4096 Apr 28 16:03 portname
-rw-r--r-- 1 root root 4096 Apr 28 16:04 portno
drwxr-xr-x 2 root root    0 Apr 28 16:04 power
-rw-r--r-- 1 root root 4096 Apr 28 16:04 priority_queueing
--w------- 1 root root 4096 Apr 28 16:04 recover
-r--r--r-- 1 root root 4096 Apr 28 16:04 state
lrwxrwxrwx 1 root root    0 Apr 28 16:03 subsystem -> ../../../bus/ccwgroup
-rw-r--r-- 1 root root 4096 Apr 28 16:03 uevent
--w------- 1 root root 4096 Apr 28 16:04 ungroup

So I assume this is a bug in lsqeth somehow not clearing the old values properly
and then displaying data from eth1 in the eth0 output again.
 
Contact Information = ehrhardt.com 
 
---uname output---
Linux h37lp01 2.6.32-19.el6.s390x #1 SMP Tue Mar 9 19:03:48 EST 2010 s390x s390x s390x GNU/Linux
 
Machine Type = System z - z10 EC 
 
---Debugger---
A debugger is not configured
 
---Steps to Reproduce---
 To reproduce install a RHEL6 Beta image and copnfigure two network
devices to come up at boot time.
On the ifcfg-eth1 config file add the line:
  OPTIONS="layer2=0 checksumming=hw_checksumming buffer_count=128"
Then reboot your system.
 
---Device Driver Tools Component Data--- 
Userspace tool common name: lsqeth 
 
The userspace tool has the following bit modes: na 

Userspace rpm: s390utils-base-1.8.2-15.el6.s390x 

Userspace tool obtained from project website:  na
=========================================================
From Ursula Braun,

print array should be reinitialized if several devices are displayed

Problem occurs with upstream version of lsqeth as well, if more than 1 network
device is displayed with lsqeth, and display of a layer2-device follows display
of a layer3-device. Christian, this patch should solve your problem.

=Comment: #4=================================================
Christian Ehrhardt <EHRHARDT.com> - 
Yes the patch works fine.

Comment 1 IBM Bug Proxy 2010-04-30 11:00:43 UTC
Created attachment 410370 [details]
print array should be reinitialized if several devices are displayed

Comment 2 Ondrej Vasik 2010-04-30 11:43:31 UTC
Basesystem component has nothing to do with base system - it is just dependency metapackage. I'll reassign that to s390utils.

Comment 4 RHEL Program Management 2010-04-30 12:44:36 UTC
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux major release.  Product Management has requested further
review of this request by Red Hat Engineering, for potential inclusion in a Red
Hat Enterprise Linux Major release.  This request is not yet committed for
inclusion.

Comment 6 Ondrej Vasik 2010-05-03 14:48:19 UTC
*** Bug 588356 has been marked as a duplicate of this bug. ***

Comment 10 releng-rhel@redhat.com 2010-11-15 14:46:43 UTC
Red Hat Enterprise Linux 6.0 is now available and should resolve
the problem described in this bug report. This report is therefore being closed
with a resolution of CURRENTRELEASE. You may reopen this bug report if the
solution does not work for you.