ModInfo - Commands modinfo <module_name>

Parsers to parse the output of modinfo <module_name> commands.

ModInfoI40e - Command modinfo i40e

ModInfoVmxnet3 - Command modinfo vmxnet3

ModInfoIgb - Command modinfo igb

ModInfoIxgbe - Command modinfo ixgbe

ModInfoVeth - Command modinfo veth

ModInfoEach - Command modinfo *

for any module listed by lsmod

ModInfoAll - Command modinfo *(all modules)

for all modules listed by lsmod

class insights.parsers.modinfo.ModInfo[source]

Bases: dict

Base class for the information about a kernel module, the module info will be stored in dictionary format. Besides of that, the following utility properties are provided as well.

classmethod from_content(content)[source]

A classmethod to generated a ModInfo object from the given content list. Two more keys module_name and module_deps will be created as well per the content.

Raises

SkipException -- When nothing need to check to a dict.

property module_alias

This will return the list of alias to this kernel module when set, else [].

Type

(list)

property module_deps

This will return the list of kernel modules depend on the kernel module when set, else [].

Type

(list)

property module_details

This will return the kernel module details when set.

Type

(dict)

property module_firmware

This will return the list of firmwares used by this module when set, else [].

Type

(list)

property module_name

This will return kernel module name when set, else empty str.

Type

(str)

property module_parm

This will return the list of parms for this kernel module when set, else [].

Type

(list)

property module_path

This will return kernel module path when set, else None.

Type

(str)

property module_signer

This will return the signer of kernel module when set, else empty string.

Type

(str)

property module_version

This will return the kernel module version when set, else empty string.

Type

(str)

class insights.parsers.modinfo.ModInfoAll(context, extra_bad_lines=None)[source]

Bases: insights.core.CommandParser, dict

Class to parse the information about all kernel modules, the module info will be stored in dictionary format.

Sample output:

filename:       /lib/modules/3.10.0-957.10.1.el7.x86_64/kernel/drivers/net/vmxnet3/vmxnet3.ko.xz
version:        1.4.14.0-k
license:        GPL v2
description:    VMware vmxnet3 virtual NIC driver
author:         VMware, Inc.
retpoline:      Y
rhelversion:    7.6
srcversion:     7E672688ACACBDD2E363B63
alias:          pci:v000015ADd000007B0sv*sd*bc*sc*i*
depends:
intree:         Y
vermagic:       3.10.0-957.10.1.el7.x86_64 SMP mod_unload modversions
signer:         Red Hat Enterprise Linux kernel signing key
sig_key:        A5:70:18:DF:B6:C9:D6:1F:CF:CE:0A:3D:02:8B:B3:69:BD:76:CA:ED
sig_hashalgo:   sha256

filename:       /lib/modules/3.10.0-993.el7.x86_64/kernel/drivers/net/ethernet/intel/i40e/i40e.ko.xz
firmware:       i40e/i40e-e2-7.13.1.0.fw
firmware:       i40e/i40e-e1h-7.13.1.0.fw
version:        2.3.2-k
license:        GPL
description:    Intel(R) Ethernet Connection XL710 Network Driver
author:         Intel Corporation, <e1000-devel@lists.sourceforge.net>
retpoline:      Y
rhelversion:    7.7
srcversion:     DC5C250666ADD8603966656
alias:          pci:v00008086d0000158Bsv*sd*bc*sc*i*
alias:          pci:v00008086d0000158Asv*sd*bc*sc*i*
depends:        ptp
intree:         Y
vermagic:       3.10.0-993.el7.x86_64 SMP mod_unload modversions
signer:         Red Hat Enterprise Linux kernel signing key
sig_key:        81:7C:CB:07:72:4E:7F:B8:15:24:10:F9:27:2D:AA:CF:80:3E:CE:59
sig_hashalgo:   sha256
parm:           debug:Debug level (0=none,...,16=all), Debug mask (0x8XXXXXXX) (uint)
parm:           int_mode: Force interrupt mode other than MSI-X (1 INT#x; 2 MSI) (int)
Raises

SkipException -- When nothing need to parse.

Examples

>>> type(modinfo_all)
<class 'insights.parsers.modinfo.ModInfoAll'>
>>> 'i40e' in modinfo_all
True
>>> modinfo_all['i40e'].module_version
'2.3.2-k'
>>> modinfo_all['i40e'].module_path
'/lib/modules/3.10.0-993.el7.x86_64/kernel/drivers/net/ethernet/intel/i40e/i40e.ko.xz'
>>> sorted(modinfo_all['i40e'].module_firmware)
['i40e/i40e-e1h-7.13.1.0.fw', 'i40e/i40e-e2-7.13.1.0.fw']
>>> sorted(modinfo_all['i40e'].module_alias)
['pci:v00008086d0000158Asv*sd*bc*sc*i*', 'pci:v00008086d0000158Bsv*sd*bc*sc*i*']
>>> sorted(modinfo_all['i40e'].module_parm)
['debug:Debug level (0=none,...,16=all), Debug mask (0x8XXXXXXX) (uint)', 'int_mode: Force interrupt mode other than MSI-X (1 INT#x; 2 MSI) (int)']
>>> 'vmxnet3' in modinfo_all
True
retpoline_y

A set of names of the modules with the attribute “retpoline: Y”.

Type

set

retpoline_n

A set of names of the modules with the attribute “retpoline: N”.

Type

set

parse_content(content)[source]

This method must be implemented by classes based on this class.

class insights.parsers.modinfo.ModInfoEach(context, extra_bad_lines=None)[source]

Bases: insights.core.CommandParser, insights.parsers.modinfo.ModInfo

Parses the output of modinfo %s command, where %s is any of the loaded modules.

Sample output:

filename:       /lib/modules/3.10.0-993.el7.x86_64/kernel/drivers/net/ethernet/intel/i40e/i40e.ko.xz
firmware:       i40e/i40e-e2-7.13.1.0.fw
firmware:       i40e/i40e-e1h-7.13.1.0.fw
version:        2.3.2-k
license:        GPL
description:    Intel(R) Ethernet Connection XL710 Network Driver
author:         Intel Corporation, <e1000-devel@lists.sourceforge.net>
retpoline:      Y
rhelversion:    7.7
srcversion:     DC5C250666ADD8603966656
alias:          pci:v00008086d0000158Bsv*sd*bc*sc*i*
alias:          pci:v00008086d0000158Asv*sd*bc*sc*i*
depends:        ptp
intree:         Y
vermagic:       3.10.0-993.el7.x86_64 SMP mod_unload modversions
signer:         Red Hat Enterprise Linux kernel signing key
sig_key:        81:7C:CB:07:72:4E:7F:B8:15:24:10:F9:27:2D:AA:CF:80:3E:CE:59
sig_hashalgo:   sha256
parm:           debug:Debug level (0=none,...,16=all), Debug mask (0x8XXXXXXX) (uint)
parm:           int_mode: Force interrupt mode other than MSI-X (1 INT#x; 2 MSI) (int)
Raises

SkipException -- When nothing is need to parse

Examples

>>> type(modinfo_obj)
<class 'insights.parsers.modinfo.ModInfoEach'>
>>> modinfo_obj.module_name
'i40e'
>>> modinfo_obj.module_version
'2.3.2-k'
>>> modinfo_obj.module_path
'/lib/modules/3.10.0-993.el7.x86_64/kernel/drivers/net/ethernet/intel/i40e/i40e.ko.xz'
>>> sorted(modinfo_obj.module_firmware)
['i40e/i40e-e1h-7.13.1.0.fw', 'i40e/i40e-e2-7.13.1.0.fw']
>>> sorted(modinfo_obj.module_alias)
['pci:v00008086d0000158Asv*sd*bc*sc*i*', 'pci:v00008086d0000158Bsv*sd*bc*sc*i*']
>>> sorted(modinfo_obj.module_parm)
['debug:Debug level (0=none,...,16=all), Debug mask (0x8XXXXXXX) (uint)', 'int_mode: Force interrupt mode other than MSI-X (1 INT#x; 2 MSI) (int)']
property data

This will return the kernel module details when set.

Type

(dict)

parse_content(content)[source]

This method must be implemented by classes based on this class.

class insights.parsers.modinfo.ModInfoI40e(context, extra_bad_lines=None)[source]

Bases: insights.parsers.modinfo.ModInfoEach

Parses output of modinfo i40e command. Sample modinfo i40e output:

filename:       /lib/modules/3.10.0-993.el7.x86_64/kernel/drivers/net/ethernet/intel/i40e/i40e.ko.xz
firmware:       i40e/i40e-e2-7.13.1.0.fw
firmware:       i40e/i40e-e1h-7.13.1.0.fw
version:        2.3.2-k
license:        GPL
description:    Intel(R) Ethernet Connection XL710 Network Driver
author:         Intel Corporation, <e1000-devel@lists.sourceforge.net>
retpoline:      Y
rhelversion:    7.7
srcversion:     DC5C250666ADD8603966656
alias:          pci:v00008086d0000158Bsv*sd*bc*sc*i*
alias:          pci:v00008086d0000158Asv*sd*bc*sc*i*
depends:        ptp
intree:         Y
vermagic:       3.10.0-993.el7.x86_64 SMP mod_unload modversions
signer:         Red Hat Enterprise Linux kernel signing key
sig_key:        81:7C:CB:07:72:4E:7F:B8:15:24:10:F9:27:2D:AA:CF:80:3E:CE:59
sig_hashalgo:   sha256
parm:           debug:Debug level (0=none,...,16=all), Debug mask (0x8XXXXXXX) (uint)
parm:           int_mode: Force interrupt mode other than MSI-X (1 INT#x; 2 MSI) (int)

Examples

>>> type(modinfo_i40e)
<class 'insights.parsers.modinfo.ModInfoI40e'>
>>> modinfo_i40e.module_name
'i40e'
>>> modinfo_i40e.module_version
'2.3.2-k'
>>> modinfo_i40e.module_path
'/lib/modules/3.10.0-993.el7.x86_64/kernel/drivers/net/ethernet/intel/i40e/i40e.ko.xz'
>>> 'firmware' in modinfo_i40e
True
>>> sorted(modinfo_i40e.module_firmware) == sorted(['i40e/i40e-e2-7.13.1.0.fw', 'i40e/i40e-e1h-7.13.1.0.fw'])
True
>>> sorted(modinfo_i40e.module_alias) == sorted(['pci:v00008086d0000158Asv*sd*bc*sc*i*', 'pci:v00008086d0000158Bsv*sd*bc*sc*i*'])
True
>>> sorted(modinfo_i40e.module_parm) == sorted(['debug:Debug level (0=none,...,16=all), Debug mask (0x8XXXXXXX) (uint)', 'int_mode: Force interrupt mode other than MSI-X (1 INT#x; 2 MSI) (int)'])
True
class insights.parsers.modinfo.ModInfoIgb(context, extra_bad_lines=None)[source]

Bases: insights.parsers.modinfo.ModInfoEach

Parses output of modinfo igb command. Sample modinfo igb output:

filename:       /lib/modules/3.10.0-327.10.1.el7.jump7.x86_64/kernel/drivers/net/ethernet/intel/igb/igb.ko
version:        5.2.15-k
license:        GPL
description:    Intel(R) Gigabit Ethernet Network Driver
author:         Intel Corporation, <e1000-devel@lists.sourceforge.net>
rhelversion:    7.2
srcversion:     9CF4D446FA2E882F6BA0A17
alias:          pci:v00008086d000010D6sv*sd*bc*sc*i*
depends:        i2c-core,ptp,dca,i2c-algo-bit
intree:         Y
vermagic:       3.10.0-327.10.1.el7.jump7.x86_64 SMP mod_unload modversions
signer:         Red Hat Enterprise Linux kernel signing key
sig_key:        C9:10:C7:BB:C3:C7:10:A1:68:A6:F3:6D:45:22:90:B7:5A:D4:B0:7A
sig_hashalgo:   sha256
parm:           max_vfs:Maximum number of virtual functions to allocate per physical function (uint)
parm:           debug:Debug level (0=none,...,16=all) (int)

Examples

>>> type(modinfo_igb)
<class 'insights.parsers.modinfo.ModInfoIgb'>
>>> modinfo_igb.module_name
'igb'
>>> modinfo_igb.module_version
'5.2.15-k'
>>> modinfo_igb.module_signer
'Red Hat Enterprise Linux kernel signing key'
>>> modinfo_igb.module_alias
'pci:v00008086d000010D6sv*sd*bc*sc*i*'
class insights.parsers.modinfo.ModInfoIxgbe(context, extra_bad_lines=None)[source]

Bases: insights.parsers.modinfo.ModInfoEach

Parses output of modinfo ixgbe command. Sample modinfo ixgbe output:

filename:       /lib/modules/3.10.0-514.6.1.el7.jump3.x86_64/kernel/drivers/net/ethernet/intel/ixgbe/ixgbe.ko
version:        4.4.0-k-rh7.3
license:        GPL
description:    Intel(R) 10 Gigabit PCI Express Network Driver
author:         Intel Corporation, <linux.nics@intel.com>
rhelversion:    7.3
srcversion:     24F0195E8A357701DE1B32E
alias:          pci:v00008086d000015CEsv*sd*bc*sc*i*
depends:        i2c-core,ptp,dca,i2c-algo-bit
intree:         Y
vermagic:       3.10.0-514.6.1.el7.jump3.x86_64 SMP mod_unload modversions
signer:         Red Hat Enterprise Linux kernel signing key
sig_key:        69:10:6E:D5:83:0D:2C:66:97:41:91:7B:0F:57:D4:1D:95:A2:8A:EB
sig_hashalgo:   sha256
parm:           max_vfs:Maximum number of virtual functions to allocate per physical function (uint)
parm:           debug:Debug level (0=none,...,16=all) (int)

Examples

>>> type(modinfo_ixgbe)
<class 'insights.parsers.modinfo.ModInfoIxgbe'>
>>> modinfo_ixgbe.module_name
'ixgbe'
>>> modinfo_ixgbe.module_version
'4.4.0-k-rh7.3'
>>> modinfo_ixgbe.module_signer
'Red Hat Enterprise Linux kernel signing key'
>>> modinfo_ixgbe.module_alias
'pci:v00008086d000015CEsv*sd*bc*sc*i*'
class insights.parsers.modinfo.ModInfoVeth(context, extra_bad_lines=None)[source]

Bases: insights.parsers.modinfo.ModInfoEach

Parses output of modinfo veth command. Sample modinfo veth output:

filename:       /lib/modules/3.10.0-327.el7.x86_64/kernel/drivers/net/veth.ko
alias:          rtnl-link-veth
license:        GPL v2
description:    Virtual Ethernet Tunnel
rhelversion:    7.2
srcversion:     25C6BF3D2F35CAF3A252F12
depends:
intree:         Y
vermagic:       3.10.0-327.el7.x86_64 SMP mod_unload modversions
signer:         Red Hat Enterprise Linux kernel signing key
sig_key:        BC:73:C3:CE:E8:9E:5E:AE:99:4A:E5:0A:0D:B1:F0:FE:E3:FC:09:13
sig_hashalgo:   sha256

Examples

>>> type(modinfo_veth)
<class 'insights.parsers.modinfo.ModInfoVeth'>
>>> modinfo_veth.module_name
'veth'
>>> modinfo_veth.module_signer
'Red Hat Enterprise Linux kernel signing key'
class insights.parsers.modinfo.ModInfoVmxnet3(context, extra_bad_lines=None)[source]

Bases: insights.parsers.modinfo.ModInfoEach

Parses output of modinfo vmxnet3 command. Sample modinfo vmxnet3 output:

filename:       /lib/modules/3.10.0-957.10.1.el7.x86_64/kernel/drivers/net/vmxnet3/vmxnet3.ko.xz
version:        1.4.14.0-k
license:        GPL v2
description:    VMware vmxnet3 virtual NIC driver
author:         VMware, Inc.
retpoline:      Y
rhelversion:    7.6
srcversion:     7E672688ACACBDD2E363B63
alias:          pci:v000015ADd000007B0sv*sd*bc*sc*i*
depends:
intree:         Y
vermagic:       3.10.0-957.10.1.el7.x86_64 SMP mod_unload modversions
signer:         Red Hat Enterprise Linux kernel signing key
sig_key:        A5:70:18:DF:B6:C9:D6:1F:CF:CE:0A:3D:02:8B:B3:69:BD:76:CA:ED
sig_hashalgo:   sha256

Examples

>>> type(modinfo_drv)
<class 'insights.parsers.modinfo.ModInfoVmxnet3'>
>>> modinfo_drv.module_name
'vmxnet3'
>>> modinfo_drv.module_version
'1.4.14.0-k'
>>> modinfo_drv.module_signer
'Red Hat Enterprise Linux kernel signing key'
>>> modinfo_drv.module_alias
'pci:v000015ADd000007B0sv*sd*bc*sc*i*'