"""
RdmaConfig - file ``/etc/rdma/rdma.conf``
=========================================
"""
from insights.core import LegacyItemAccess, Parser
from insights.core.exceptions import SkipComponent
from insights.core.plugins import parser
from insights.parsers import get_active_lines, split_kv_pairs
from insights.specs import Specs
[docs]@parser(Specs.rdma_conf)
class RdmaConfig(Parser, LegacyItemAccess):
"""
This class will parse the output of file ``/etc/rdma/rdma.conf``.
The rdma service reads /etc/rdma/rdma.conf file to find out which
kernel-level and user-level RDMA protocols the administrator
wants to be loaded by default.
Attributes:
data (dict): Dictionary of keys with values in dict.
Sample configuration file::
IPOIB_LOAD=yes
# Load SRP (SCSI Remote Protocol initiator support) module
SRP_LOAD=yes
# Load SRPT (SCSI Remote Protocol target support) module
SRPT_LOAD=yes
# Load iSER (iSCSI over RDMA initiator support) module
ISER_LOAD=yes
# Load iSERT (iSCSI over RDMA target support) module
ISERT_LOAD=yes
# Load RDS (Reliable Datagram Service) network protocol
RDS_LOAD=no
# Load NFSoRDMA client transport module
XPRTRDMA_LOAD=yes
# Load NFSoRDMA server transport module
SVCRDMA_LOAD=no
# Load Tech Preview device driver modules
TECH_PREVIEW_LOAD=no
# Should we modify the system mtrr registers? We may need to do this if you
# get messages from the ib_ipath driver saying that it couldn't enable
# write combining for the PIO buffs on the card.
#
# Note: recent kernels should do this for us, but in case they don't, we'll
# leave this option
FIXUP_MTRR_REGS=no
Examples:
>>> rdma_conf['IPOIB_LOAD']
'yes'
>>> rdma_conf["SRP_LOAD"]
'yes'
>>> rdma_conf["SVCRDMA_LOAD"]
'no'
"""
[docs] def parse_content(self, content):
_content = get_active_lines(content)
if not _content:
raise SkipComponent("Empty content.")
self.data = split_kv_pairs(_content)