PK œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
Dir : /proc/self/root/opt/saltstack/salt/extras-3.10/pyroute2/netlink/generic/ |
Server: Linux ngx353.inmotionhosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 IP: 209.182.202.254 |
Dir : //proc/self/root/opt/saltstack/salt/extras-3.10/pyroute2/netlink/generic/ethtool.py |
from pyroute2.netlink import ( NLA_F_NESTED, NLM_F_ACK, NLM_F_REQUEST, genlmsg, nla, ) from pyroute2.netlink.exceptions import NetlinkError from pyroute2.netlink.generic import GenericNetlinkSocket ETHTOOL_GENL_NAME = "ethtool" ETHTOOL_GENL_VERSION = 1 ETHTOOL_MSG_USER_NONE = 0 ETHTOOL_MSG_STRSET_GET = 1 ETHTOOL_MSG_LINKINFO_GET = 2 ETHTOOL_MSG_LINKINFO_SET = 3 ETHTOOL_MSG_LINKMODES_GET = 4 ETHTOOL_MSG_LINKMODES_SET = 5 ETHTOOL_MSG_LINKSTATE_GET = 6 ETHTOOL_MSG_DEBUG_GET = 7 ETHTOOL_MSG_DEBUG_SET = 8 ETHTOOL_MSG_WOL_GET = 9 ETHTOOL_MSG_WOL_SET = 10 ETHTOOL_MSG_FEATURES_GET = 11 ETHTOOL_MSG_FEATURES_SET = 12 ETHTOOL_MSG_PRIVFLAGS_GET = 13 ETHTOOL_MSG_PRIVFLAGS_SET = 14 ETHTOOL_MSG_RINGS_GET = 15 ETHTOOL_MSG_RINGS_SET = 16 class ethtoolheader(nla): nla_flags = NLA_F_NESTED nla_map = ( ('ETHTOOL_A_HEADER_UNSPEC', 'none'), ('ETHTOOL_A_HEADER_DEV_INDEX', 'uint32'), ('ETHTOOL_A_HEADER_DEV_NAME', 'asciiz'), ('ETHTOOL_A_HEADER_FLAGS', 'uint32'), ) class ethtoolbitset(nla): nla_flags = NLA_F_NESTED nla_map = ( ("ETHTOOL_A_BITSET_UNSPEC", 'none'), ("ETHTOOL_A_BITSET_NOMASK", "flag"), ("ETHTOOL_A_BITSET_SIZE", 'uint32'), ("ETHTOOL_A_BITSET_BITS", 'bitset_bits'), ("ETHTOOL_A_BITSET_VALUE", 'hex'), ("ETHTOOL_A_BITSET_MASK", 'hex'), ) class bitset_bits(nla): nla_flags = NLA_F_NESTED nla_map = ( ('ETHTOOL_A_BITSET_BIT_UNSPEC', 'none'), ('ETHTOOL_A_BITSET_BITS_BIT', 'bitset_bits_bit'), ) class bitset_bits_bit(nla): nla_flags = NLA_F_NESTED nla_map = ( ('ETHTOOL_A_BITSET_BIT_UNSPEC', 'none'), ('ETHTOOL_A_BITSET_BIT_INDEX', 'uint32'), ('ETHTOOL_A_BITSET_BIT_NAME', 'asciiz'), ('ETHTOOL_A_BITSET_BIT_VALUE', 'flag'), ) class ethtool_strset_msg(genlmsg): nla_map = ( ('ETHTOOL_A_STRSET_UNSPEC', 'none'), ('ETHTOOL_A_STRSET_HEADER', 'ethtoolheader'), ('ETHTOOL_A_STRSET_STRINGSETS', 'strings_sets'), ('ETHTOOL_A_STRSET_COUNTS_ONLY', 'flag'), ) ethtoolheader = ethtoolheader class strings_sets(nla): nla_flags = NLA_F_NESTED nla_map = ( ('ETHTOOL_A_STRINGSETS_UNSPEC', 'none'), ('ETHTOOL_A_STRINGSETS_STRINGSET', 'string_set'), ) class string_set(nla): nla_flags = NLA_F_NESTED nla_map = ( ('ETHTOOL_A_STRINGSET_UNSPEC', 'none'), ('ETHTOOL_A_STRINGSET_ID', 'uint32'), ('ETHTOOL_A_STRINGSET_COUNT', 'uint32'), ('ETHTOOL_A_STRINGSET_STRINGS', 'stringset_strings'), ) class stringset_strings(nla): nla_flags = NLA_F_NESTED nla_map = ( ('ETHTOOL_A_STRINGS_UNSPEC', 'none'), ('ETHTOOL_A_STRINGS_STRING', 'strings_string'), ) class strings_string(nla): nla_flags = NLA_F_NESTED nla_map = ( ('ETHTOOL_A_STRING_UNSPEC', 'none'), ('ETHTOOL_A_STRING_INDEX', 'uint32'), ('ETHTOOL_A_STRING_VALUE', 'asciiz'), ) class ethtool_linkinfo_msg(genlmsg): nla_map = ( ('ETHTOOL_A_LINKINFO_UNSPEC', 'none'), ('ETHTOOL_A_LINKINFO_HEADER', 'ethtoolheader'), ('ETHTOOL_A_LINKINFO_PORT', 'uint8'), ('ETHTOOL_A_LINKINFO_PHYADDR', 'uint8'), ('ETHTOOL_A_LINKINFO_TP_MDIX', 'uint8'), ('ETHTOOL_A_LINKINFO_TP_MDIX_CTR', 'uint8'), ('ETHTOOL_A_LINKINFO_TRANSCEIVER', 'uint8'), ) ethtoolheader = ethtoolheader class ethtool_linkmode_msg(genlmsg): nla_map = ( ('ETHTOOL_A_LINKMODES_UNSPEC', 'none'), ('ETHTOOL_A_LINKMODES_HEADER', 'ethtoolheader'), ('ETHTOOL_A_LINKMODES_AUTONEG', 'uint8'), ('ETHTOOL_A_LINKMODES_OURS', 'ethtoolbitset'), ('ETHTOOL_A_LINKMODES_PEER', 'ethtoolbitset'), ('ETHTOOL_A_LINKMODES_SPEED', 'uint32'), ('ETHTOOL_A_LINKMODES_DUPLEX', 'uint8'), ) ethtoolheader = ethtoolheader ethtoolbitset = ethtoolbitset class ethtool_linkstate_msg(genlmsg): nla_map = ( ('ETHTOOL_A_LINKSTATE_UNSPEC', 'none'), ('ETHTOOL_A_LINKSTATE_HEADER', 'ethtoolheader'), ('ETHTOOL_A_LINKSTATE_LINK', 'uint8'), ) ethtoolheader = ethtoolheader class ethtool_wol_msg(genlmsg): nla_map = ( ('ETHTOOL_A_WOL_UNSPE', 'none'), ('ETHTOOL_A_WOL_HEADER', 'ethtoolheader'), ('ETHTOOL_A_WOL_MODES', 'ethtoolbitset'), ('ETHTOOL_A_WOL_SOPASS', 'hex'), ) ethtoolheader = ethtoolheader ethtoolbitset = ethtoolbitset class ethtool_rings_msg(genlmsg): nla_map = ( ('ETHTOOL_A_RINGS_UNSPEC', 'none'), ('ETHTOOL_A_RINGS_HEADER', 'ethtoolheader'), ('ETHTOOL_A_RINGS_RX_MAX', 'uint32'), ('ETHTOOL_A_RINGS_RX_MINI_MAX', 'uint32'), ('ETHTOOL_A_RINGS_RX_JUMBO_MAX', 'uint32'), ('ETHTOOL_A_RINGS_TX_MAX', 'uint32'), ('ETHTOOL_A_RINGS_RX', 'uint32'), ('ETHTOOL_A_RINGS_RX_MINI', 'uint32'), ('ETHTOOL_A_RINGS_RX_JUMBO', 'uint32'), ('ETHTOOL_A_RINGS_TX', 'uint32'), ('ETHTOOL_A_RINGS_RX_BUF_LEN', 'uint32'), ('ETHTOOL_A_RINGS_TCP_DATA_SPLIT', 'uint8'), ('ETHTOOL_A_RINGS_CQE_SIZE', 'uint32'), ('ETHTOOL_A_RINGS_TX_PUSH', 'uint8'), ('ETHTOOL_A_RINGS_RX_PUSH', 'uint8'), ('ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN', 'uint32'), ('ETHTOOL_A_RINGS_TX_PUSH_BUF_LEN_MAX', 'uint32'), ) ethtoolheader = ethtoolheader class NlEthtool(GenericNetlinkSocket): def _do_request(self, msg, msg_flags=NLM_F_REQUEST): return self.nlm_request(msg, msg_type=self.prid, msg_flags=msg_flags) def is_nlethtool_in_kernel(self): try: self.bind(ETHTOOL_GENL_NAME, ethtool_linkinfo_msg) except NetlinkError: return False return True def _get_dev_header(self, ifname=None, ifindex=None): if ifindex is not None: return {'attrs': [['ETHTOOL_A_HEADER_DEV_INDEX', ifindex]]} elif ifname is not None: return {'attrs': [['ETHTOOL_A_HEADER_DEV_NAME', ifname]]} else: raise ValueError("Need ifname or ifindex") def get_linkinfo(self, ifname=None, ifindex=None): msg = ethtool_linkinfo_msg() msg["cmd"] = ETHTOOL_MSG_LINKINFO_GET msg['version'] = ETHTOOL_GENL_VERSION msg["attrs"].append( ( 'ETHTOOL_A_LINKINFO_HEADER', self._get_dev_header(ifname, ifindex), ) ) self.bind(ETHTOOL_GENL_NAME, ethtool_linkinfo_msg) return self._do_request(msg) def get_linkmode(self, ifname=None, ifindex=None): msg = ethtool_linkmode_msg() msg["cmd"] = ETHTOOL_MSG_LINKMODES_GET msg['version'] = ETHTOOL_GENL_VERSION msg["attrs"].append( ( 'ETHTOOL_A_LINKMODES_HEADER', self._get_dev_header(ifname, ifindex), ) ) self.bind(ETHTOOL_GENL_NAME, ethtool_linkmode_msg) return self._do_request(msg) def get_stringset(self, ifname=None, ifindex=None): msg = ethtool_strset_msg() msg["cmd"] = ETHTOOL_MSG_STRSET_GET msg['version'] = ETHTOOL_GENL_VERSION msg["attrs"].append( ('ETHTOOL_A_STRSET_HEADER', self._get_dev_header(ifname, ifindex)) ) self.bind(ETHTOOL_GENL_NAME, ethtool_strset_msg) return self._do_request(msg) def get_linkstate(self, ifname=None, ifindex=None): msg = ethtool_linkstate_msg() msg["cmd"] = ETHTOOL_MSG_LINKSTATE_GET msg['version'] = ETHTOOL_GENL_VERSION msg["attrs"].append( ( 'ETHTOOL_A_LINKSTATE_HEADER', self._get_dev_header(ifname, ifindex), ) ) self.bind(ETHTOOL_GENL_NAME, ethtool_linkstate_msg) return self._do_request(msg) def get_wol(self, ifname=None, ifindex=None): msg = ethtool_wol_msg() msg["cmd"] = ETHTOOL_MSG_WOL_GET msg['version'] = ETHTOOL_GENL_VERSION msg["attrs"].append( ('ETHTOOL_A_WOL_HEADER', self._get_dev_header(ifname, ifindex)) ) self.bind(ETHTOOL_GENL_NAME, ethtool_wol_msg) return self._do_request(msg) def get_rings(self, ifname=None, ifindex=None): msg = ethtool_rings_msg() msg["cmd"] = ETHTOOL_MSG_RINGS_GET msg["version"] = ETHTOOL_GENL_VERSION msg["attrs"].append( ('ETHTOOL_A_RINGS_HEADER', self._get_dev_header(ifname, ifindex)) ) self.bind(ETHTOOL_GENL_NAME, ethtool_rings_msg) return self._do_request(msg) def set_rings(self, rings, ifname=None, ifindex=None): rings["cmd"] = ETHTOOL_MSG_RINGS_SET rings["version"] = ETHTOOL_GENL_VERSION rings["attrs"].append( ('ETHTOOL_A_RINGS_HEADER', self._get_dev_header(ifname, ifindex)) ) self.bind(ETHTOOL_GENL_NAME, ethtool_rings_msg) return self._do_request(rings, msg_flags=NLM_F_REQUEST | NLM_F_ACK)