From: Gurucharan Shetty Date: Fri, 19 Jul 2013 19:37:03 +0000 (-0700) Subject: ovs-bugtool: Separate capability for general network info. X-Git-Tag: sliver-openvswitch-2.0.90-1~34^2~39 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=eb6f3089276fefe62e5f8cc138afcbf09e655085;p=sliver-openvswitch.git ovs-bugtool: Separate capability for general network info. Current situation is that CAP_NETWORK_STATUS has a max size of 50 MB. When we have around 100,000 openflow flows, we over-run that size by just running the "ovs-ofctl dump-flows" command. All the openvswitch commands run through the plugin scripts in this repo won't have its data stored in the debug bundle in this case as they are part of CAP_NETWORK_STATUS too. One option to correct this is to increase the CAP_NETWORK_STATUS max size to a higher number. But CAP_NETWORK_STATUS also includes a bunch of general network related information collected by running commands like ethtool, tc etc. and we probably want to limit the data collected through those commands. With this commit, we create a new capability called CAP_NETWORK_INFO and collect general network related information through them. For OVS related information, we continue to use CAP_NETWORK_STATUS, but remove the maximum size restriction. One rationale to keep OVS related information in CAP_NETWORK_STATUS is because xen-bugtool probably expects OVS information in that capability. Signed-off-by: Gurucharan Shetty --- diff --git a/utilities/bugtool/ovs-bugtool.in b/utilities/bugtool/ovs-bugtool.in index aa5b960db..854dfa10b 100755 --- a/utilities/bugtool/ovs-bugtool.in +++ b/utilities/bugtool/ovs-bugtool.in @@ -204,6 +204,7 @@ CAP_KERNEL_INFO = 'kernel-info' CAP_LOSETUP_A = 'loopback-devices' CAP_MULTIPATH = 'multipath' CAP_NETWORK_CONFIG = 'network-config' +CAP_NETWORK_INFO = 'network-info' CAP_NETWORK_STATUS = 'network-status' CAP_OPENVSWITCH_LOGS = 'ovs-system-logs' CAP_PROCESS_LIST = 'process-list' @@ -241,7 +242,9 @@ cap(CAP_MULTIPATH, PII_MAYBE, max_size=20*KB, max_time=10) cap(CAP_NETWORK_CONFIG, PII_IF_CUSTOMIZED, min_size=0, max_size=40*KB) -cap(CAP_NETWORK_STATUS, PII_YES, max_size=50*MB, +cap(CAP_NETWORK_INFO, PII_YES, max_size=50*MB, + max_time=30) +cap(CAP_NETWORK_STATUS, PII_YES, max_size=-1, max_time=30) cap(CAP_OPENVSWITCH_LOGS, PII_MAYBE, max_size=-1, max_time=5) @@ -542,14 +545,14 @@ exclude those logs from the archive. file_output(CAP_NETWORK_CONFIG, [NTP_CONF, IPTABLES_CONFIG, HOSTS_ALLOW, HOSTS_DENY]) file_output(CAP_NETWORK_CONFIG, [OPENVSWITCH_CONF_DB]) - cmd_output(CAP_NETWORK_STATUS, [IFCONFIG, '-a']) - cmd_output(CAP_NETWORK_STATUS, [ROUTE, '-n']) - cmd_output(CAP_NETWORK_STATUS, [ARP, '-n']) - cmd_output(CAP_NETWORK_STATUS, [NETSTAT, '-an']) + cmd_output(CAP_NETWORK_INFO, [IFCONFIG, '-a']) + cmd_output(CAP_NETWORK_INFO, [ROUTE, '-n']) + cmd_output(CAP_NETWORK_INFO, [ARP, '-n']) + cmd_output(CAP_NETWORK_INFO, [NETSTAT, '-an']) for dir in DHCP_LEASE_DIR: - tree_output(CAP_NETWORK_STATUS, dir) + tree_output(CAP_NETWORK_INFO, dir) for table in ['filter', 'nat', 'mangle', 'raw', 'security']: - cmd_output(CAP_NETWORK_STATUS, [IPTABLES, '-t', table, '-nL']) + cmd_output(CAP_NETWORK_INFO, [IPTABLES, '-t', table, '-nL']) for p in os.listdir('/sys/class/net/'): try: f = open('/sys/class/net/%s/type' % p, 'r') @@ -557,21 +560,21 @@ exclude those logs from the archive. f.close() if os.path.islink('/sys/class/net/%s/device' % p) and int(t) == 1: # ARPHRD_ETHER - cmd_output(CAP_NETWORK_STATUS, [ETHTOOL, '-S', p]) + cmd_output(CAP_NETWORK_INFO, [ETHTOOL, '-S', p]) if not p.startswith('vif') and not p.startswith('tap'): - cmd_output(CAP_NETWORK_STATUS, [ETHTOOL, p]) - cmd_output(CAP_NETWORK_STATUS, [ETHTOOL, '-k', p]) - cmd_output(CAP_NETWORK_STATUS, [ETHTOOL, '-i', p]) - cmd_output(CAP_NETWORK_STATUS, [ETHTOOL, '-c', p]) + cmd_output(CAP_NETWORK_INFO, [ETHTOOL, p]) + cmd_output(CAP_NETWORK_INFO, [ETHTOOL, '-k', p]) + cmd_output(CAP_NETWORK_INFO, [ETHTOOL, '-i', p]) + cmd_output(CAP_NETWORK_INFO, [ETHTOOL, '-c', p]) if int(t) == 1: - cmd_output(CAP_NETWORK_STATUS, + cmd_output(CAP_NETWORK_INFO, [TC, '-s', '-d', 'class', 'show', 'dev', p]) except: pass - tree_output(CAP_NETWORK_STATUS, PROC_NET_BONDING_DIR) - tree_output(CAP_NETWORK_STATUS, PROC_NET_VLAN_DIR) - cmd_output(CAP_NETWORK_STATUS, [TC, '-s', 'qdisc']) - file_output(CAP_NETWORK_STATUS, [PROC_NET_SOFTNET_STAT]) + tree_output(CAP_NETWORK_INFO, PROC_NET_BONDING_DIR) + tree_output(CAP_NETWORK_INFO, PROC_NET_VLAN_DIR) + cmd_output(CAP_NETWORK_INFO, [TC, '-s', 'qdisc']) + file_output(CAP_NETWORK_INFO, [PROC_NET_SOFTNET_STAT]) if os.path.exists(OPENVSWITCH_VSWITCHD_PID): cmd_output(CAP_NETWORK_STATUS, [OVS_DPCTL, 'show', '-s']) for d in dp_list():