Open PeterPitterling opened 5 months ago
def validateNetwork(self):
if self.ARCHITECTURE != "ppc64" and self.ARCHITECTURE != "ppc64le":
# check defined only on ppc64
return ("CHECK_NETWORK",self.hostname,"network","",0,'')
try:
import re, os
MEMInformationContainer = self.getNetworkInfo()
mtu_warning = 0
tso_warning = 0
linkspeed_10g_possible = 0;
linkspeed_10g_avail = 0
for n in self.net:
eth = self.net[n]
driver = eth["driver"]
speed = int(eth["Speed"].split('M',1)[0])
if driver == "ibmveth":
# ibm driver does not know about vio link speed
linkspeed_10g_possible = 1
else:
# non ibmveth driver, we have linkspeed information
if (speed > 1000):
linkspeed_10g_avail = 1
mtu = int(eth["MTU"])
tso = eth["tcp-segmentation-offload"]
if mtu < 9000:
mtu_warning = 1
if tso == "off":
tso_warning = 1
if tso_warning == 1 or mtu_warning == 1:
# neither tso nor mtu problem found
if linkspeed_10g_avail == 1:
# generate error message
reason = "\nYou are running a 10 Gb Ethernet Network, but the network settings do not allow maximum performance. Please consult the implementation guide for setting up 10 Gbit Ethernet correctly"
self.exceptions["validateNetwork"] = self.exceptionInfo("WARNING",reason)
self.report["validateNetwork"] = self.reportInfo("FAILED")
return ("CHECK_NETWORK",self.hostname,"network","",1,reason)
if linkspeed_10g_possible == 1:
reason = "\nIf you are running in a 1 Gb ethernet environment please ignore this warning.\n If you are running in a 10 Gb ethernet network environment your network settings do not allow maximum performance. Please consult the implementation guide for setting up 10 Gbit Ethernet correctly"
self.exceptions["validateNetwork"] = self.exceptionInfo("WARNING",reason)
self.report["validateNetwork"] = self.reportInfo("FAILED")
return ("CHECK_NETWORK",self.hostname,"network","",1,reason)
# generate warning
self.report["validateNetwork"] = self.reportInfo("SUCESS")
return ("CHECK_NETWORK",self.hostname,"network","",0,"" )
except Exception,e:
return ("CHECK_NETWORK",self.hostname,"","",5,"" )
pass
atgls90010:~ # grep . -r /sys/class/net/**/operstate -r /sys/class/net/**/mtu -r /sys/class/net/**/speed
/sys/class/net/bond0/operstate:up
/sys/class/net/eth0/operstate:up
/sys/class/net/eth1/operstate:down
/sys/class/net/eth2/operstate:down
/sys/class/net/eth3/operstate:up
/sys/class/net/eth4/operstate:down
/sys/class/net/eth5/operstate:up
/sys/class/net/lo/operstate:unknown
/sys/class/net/usb0/operstate:down
/sys/class/net/vlan2/operstate:up
/sys/class/net/vlan3/operstate:up
/sys/class/net/vlan4/operstate:up
/sys/class/net/bond0/mtu:9000
/sys/class/net/eth0/mtu:1500
/sys/class/net/eth1/mtu:1500
/sys/class/net/eth2/mtu:1500
/sys/class/net/eth3/mtu:9000
/sys/class/net/eth4/mtu:1500
/sys/class/net/eth5/mtu:9000
/sys/class/net/lo/mtu:65536
/sys/class/net/usb0/mtu:1500
/sys/class/net/vlan2/mtu:9000
/sys/class/net/vlan3/mtu:9000
/sys/class/net/vlan4/mtu:1500
/sys/class/net/bond0/speed:20000
/sys/class/net/eth0/speed:1000
grep: /sys/class/net/eth1/speed: Invalid argument
grep: /sys/class/net/eth2/speed: Invalid argument
/sys/class/net/eth3/speed:10000
grep: /sys/class/net/eth4/speed: Invalid argument
/sys/class/net/eth5/speed:10000
grep: /sys/class/net/lo/speed: Invalid argument
grep: /sys/class/net/usb0/speed: Invalid argument
/sys/class/net/vlan2/speed:20000
/sys/class/net/vlan3/speed:20000
/sys/class/net/vlan4/speed:20000
at least 1 ethX device should have MTU=9000 and 10G speed