Bug 675560

Summary: [vdsm] vdsm should monitor bond interfaces, sub-interfaces and bridges status
Product: Red Hat Enterprise Virtualization Manager Reporter: David Naori <dnaori>
Component: vdsmAssignee: lpeer <lpeer>
Status: CLOSED ERRATA QA Contact: Martin Pavlik <mpavlik>
Severity: high Docs Contact:
Priority: medium    
Version: 2.3.0CC: acathrow, bazulay, danken, gcheresh, gklein, iheim, jkt, knesenko, lbopf, lpeer, masayag, mpavlik, myakove, nyechiel, yeylon
Target Milestone: ---Keywords: Reopened, SubFeature
Target Release: 3.4.0Flags: sgrinber: Triaged+
nyechiel: Triaged+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: network
Fixed In Version: ovirt-3.4.0-alpha1 Doc Type: Enhancement
Doc Text:
VDSM now provides data about bonds, bond slaves, bridges, and VLANs.
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-06-09 13:24:21 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Network RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 996678, 1078909, 1142926    

Description David Naori 2011-02-06 17:10:09 UTC
Description of problem: VDSM is not monitoring sub-interfaces and bridges.
in this situation sub-interface maybe down- the VMs connected to it wont have connectivity to the network and RHEVM is not notified.

Comment 2 David Naori 2011-02-07 15:08:41 UTC
same issue with bond interfaces.

Comment 4 lpeer 2012-07-10 10:17:55 UTC
*** Bug 653423 has been marked as a duplicate of this bug. ***

Comment 5 psebek 2013-07-16 08:48:21 UTC
It seems that this change would have no real-life use case. All nics are already monitored. There is no need to monitor VLANs because it shouldn't change the state without admins intervention.

Comment 6 Moti Asayag 2013-09-30 07:31:00 UTC
The bug is reopened so 
Bug 996678 - "Admin Portal (and REST API) not reporting the data used to generate the network graph" could be addressed.

Comment 7 GenadiC 2013-10-02 14:42:22 UTC
Additonal scenario that should be checked:
1) Create VLAN network
2) Choose Hosts under specific network in network tab
3) Check that Network device status for vlan device is up

Comment 9 Andrew Cathrow 2013-12-11 08:26:03 UTC
Livnat,

IIUC we don't monitor the physical interfaces in a bond, so if I have a bond with em1 and em2 and em1 goes down is there a way of knowing this in ovirt?

Comment 10 Dan Kenigsberg 2013-12-15 23:10:11 UTC
Andrew, in 3.4 vdsm would report the state of the bond device. Engine already collects and reports it if it is available.

Comment 13 Martin Pavlik 2014-02-07 11:44:07 UTC
VERIFIED

works with:
oVirt Engine Version: 3.4.0-0.5.beta1.el6 
vdsm-4.14.1-2.el6.x86_64

data about: bonds, bond slaves, bridges, VLANs are provided by VDSM

[root@dell-r210ii-07 ~]# vdsClient -s 0 getVdsStats
<snip>
	network = {';vdsmdummy;': {'name': ';vdsmdummy;',
	                           'rxDropped': '0',
	                           'rxErrors': '0',
	                           'rxRate': '0.0',
	                           'speed': '1000',
	                           'state': 'down',
	                           'txDropped': '0',
	                           'txErrors': '0',
	                           'txRate': '0.0'},
	           'NET1': {'name': 'NET1',
	                    'rxDropped': '0',
	                    'rxErrors': '0',
	                    'rxRate': '0.0',
	                    'speed': '1000',
	                    'state': 'down',
	                    'txDropped': '0',
	                    'txErrors': '0',
	                    'txRate': '0.0'},
	           'VLAN1': {'name': 'VLAN1',
	                     'rxDropped': '0',
	                     'rxErrors': '0',
	                     'rxRate': '0.0',
	                     'speed': '1000',
	                     'state': 'up',
	                     'txDropped': '0',
	                     'txErrors': '0',
	                     'txRate': '0.0'},
	           'VLAN2': {'name': 'VLAN2',
	                     'rxDropped': '0',
	                     'rxErrors': '0',
	                     'rxRate': '0.0',
	                     'speed': '1000',
	                     'state': 'down',
	                     'txDropped': '0',
	                     'txErrors': '0',
	                     'txRate': '0.0'},
	           'bond0': {'name': 'bond0',
	                     'rxDropped': '0',
	                     'rxErrors': '0',
	                     'rxRate': '0.0',
	                     'speed': '2000',
	                     'state': 'up',
	                     'txDropped': '0',
	                     'txErrors': '0',
	                     'txRate': '0.0'},
	           'bond0.172': {'name': 'bond0.172',
	                         'rxDropped': '0',
	                         'rxErrors': '0',
	                         'rxRate': '0.0',
	                         'speed': '1000',
	                         'state': 'up',
	                         'txDropped': '0',
	                         'txErrors': '0',
	                         'txRate': '0.0'},
	           'bond0.173': {'name': 'bond0.173',
	                         'rxDropped': '0',
	                         'rxErrors': '0',
	                         'rxRate': '0.0',
	                         'speed': '1000',
	                         'state': 'up',
	                         'txDropped': '0',
	                         'txErrors': '0',
	                         'txRate': '0.0'},
	           'bond1': {'name': 'bond1',
	                     'rxDropped': '0',
	                     'rxErrors': '0',
	                     'rxRate': '0.0',
	                     'speed': '1000',
	                     'state': 'down',
	                     'txDropped': '0',
	                     'txErrors': '0',
	                     'txRate': '0.0'},
	           'bond2': {'name': 'bond2',
	                     'rxDropped': '0',
	                     'rxErrors': '0',
	                     'rxRate': '0.0',
	                     'speed': '1000',
	                     'state': 'down',
	                     'txDropped': '0',
	                     'txErrors': '0',
	                     'txRate': '0.0'},
	           'bond3': {'name': 'bond3',
	                     'rxDropped': '0',
	                     'rxErrors': '0',
	                     'rxRate': '0.0',
	                     'speed': '1000',
	                     'state': 'down',
	                     'txDropped': '0',
	                     'txErrors': '0',
	                     'txRate': '0.0'},
	           'bond4': {'name': 'bond4',
	                     'rxDropped': '0',
	                     'rxErrors': '0',
	                     'rxRate': '0.0',
	                     'speed': '1000',
	                     'state': 'down',
	                     'txDropped': '0',
	                     'txErrors': '0',
	                     'txRate': '0.0'},
	           'em1': {'name': 'em1',
	                   'rxDropped': '0',
	                   'rxErrors': '0',
	                   'rxRate': '0.0',
	                   'speed': '1000',
	                   'state': 'up',
	                   'txDropped': '0',
	                   'txErrors': '0',
	                   'txRate': '0.0'},
	           'em2': {'name': 'em2',
	                   'rxDropped': '0',
	                   'rxErrors': '0',
	                   'rxRate': '0.0',
	                   'speed': '1000',
	                   'state': 'up',
	                   'txDropped': '0',
	                   'txErrors': '0',
	                   'txRate': '0.0'},
	           'lo': {'name': 'lo',
	                  'rxDropped': '0',
	                  'rxErrors': '0',
	                  'rxRate': '0.0',
	                  'speed': '1000',
	                  'state': 'up',
	                  'txDropped': '0',
	                  'txErrors': '0',
	                  'txRate': '0.0'},
	           'ovirtmgmt': {'name': 'ovirtmgmt',
	                         'rxDropped': '0',
	                         'rxErrors': '0',
	                         'rxRate': '0.0',
	                         'speed': '1000',
	                         'state': 'up',
	                         'txDropped': '0',
	                         'txErrors': '0',
	                         'txRate': '0.0'},
	           'p1p1': {'name': 'p1p1',
	                    'rxDropped': '0',
	                    'rxErrors': '0',
	                    'rxRate': '0.0',
	                    'speed': '1000',
	                    'state': 'up',
	                    'txDropped': '0',
	                    'txErrors': '0',
	                    'txRate': '0.0'},
	           'p1p2': {'name': 'p1p2',
	                    'rxDropped': '0',
	                    'rxErrors': '0',
	                    'rxRate': '0.0',
	                    'speed': '1000',
	                    'state': 'up',
	                    'txDropped': '0',
	                    'txErrors': '0',
	                    'txRate': '0.0'}}
</snip>

Comment 15 errata-xmlrpc 2014-06-09 13:24:21 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHBA-2014-0504.html