diff --git a/sysinv/sysinv/sysinv/etc/sysinv/profileSchema.xsd b/sysinv/sysinv/sysinv/etc/sysinv/profileSchema.xsd index 5dfdbddd2f..c8aee238bf 100644 --- a/sysinv/sysinv/sysinv/etc/sysinv/profileSchema.xsd +++ b/sysinv/sysinv/sysinv/etc/sysinv/profileSchema.xsd @@ -163,6 +163,7 @@ + diff --git a/sysinv/sysinv/sysinv/sysinv/api/controllers/v1/profile.py b/sysinv/sysinv/sysinv/sysinv/api/controllers/v1/profile.py index 66ddf6d93a..7fc7514bee 100644 --- a/sysinv/sysinv/sysinv/sysinv/api/controllers/v1/profile.py +++ b/sysinv/sysinv/sysinv/sysinv/api/controllers/v1/profile.py @@ -79,7 +79,7 @@ INTERFACE_PROFILE_FIELDS = ['ifname', 'iftype', 'imtu', 'networktype', 'txhashpolicy', 'forihostid', 'datanetworks', 'vlan_id', 'ipv4_mode', 'ipv6_mode', 'ipv4_pool', 'ipv6_pool', - 'sriov_numvfs', 'sriov_vf_driver'] + 'sriov_numvfs', 'sriov_vf_driver', 'max_tx_rate'] class Profile(base.APIBase): @@ -1355,6 +1355,7 @@ def _create_if_profile(profile_name, profile_node): 'ipv6_pool': ipv6_mode['pool'], 'sriov_numvfs': ethIf.virtualFunctions, 'sriov_vf_driver': ethIf.virtualFunctionDriver, + 'max_tx_rate': ethIf.maxTxRate, 'interface_profile': True } newIf = interface_api._create(idict, from_profile=True) @@ -1397,6 +1398,7 @@ def _create_if_profile(profile_name, profile_node): 'imtu': aeIf.mtu, 'sriov_numvfs': ethIf.virtualFunctions, 'sriov_vf_driver': ethIf.virtualFunctionDriver, + 'max_tx_rate': ethIf.maxTxRate, 'interface_profile': True } @@ -1425,6 +1427,7 @@ def _create_if_profile(profile_name, profile_node): 'imtu': vlanIf.mtu, 'sriov_numvfs': ethIf.virtualFunctions, 'sriov_vf_driver': ethIf.virtualFunctionDriver, + 'max_tx_rate': ethIf.maxTxRate, 'interface_profile': True } diff --git a/sysinv/sysinv/sysinv/sysinv/api/controllers/v1/profile_utils.py b/sysinv/sysinv/sysinv/sysinv/api/controllers/v1/profile_utils.py index 67c5073958..b42fc68375 100644 --- a/sysinv/sysinv/sysinv/sysinv/api/controllers/v1/profile_utils.py +++ b/sysinv/sysinv/sysinv/sysinv/api/controllers/v1/profile_utils.py @@ -136,6 +136,7 @@ class PciSriov(Network): super(PciSriov, self).__init__(node, constants.NETWORK_TYPE_PCI_SRIOV) self.virtualFunctions = int(node.get('virtualFunctions')) self.virtualFunctionDriver = node.get('virtualFunctionDriver') + self.maxTxRate = node.get('maxTxRate') class Interface(object): @@ -150,6 +151,7 @@ class Interface(object): self.routes = [] self.virtualFunctions = 0 self.virtualFunctionDriver = None + self.maxTxRate = None networksNode = ifNode.find('networks') if networksNode is not None: for netNode in networksNode: @@ -171,6 +173,7 @@ class Interface(object): elif network.networkType == constants.NETWORK_TYPE_PCI_SRIOV: self.virtualFunctions = network.virtualFunctions self.virtualFunctionDriver = network.virtualFunctionDriver + self.maxTxRate = network.maxTxRate if isinstance(network, Network): self.providerNetworks = network.providerNetworks