# neutron_lib.placement.utils module

neutron_lib.placement.utils.agent_resource_provider_uuid(namespace, host)

  Generate a stable UUID for an agent.

  Parameters:

    - namespace – A UUID object identifying a mechanism driver (including its agent).

    - host – The hostname of the agent.

  Returns:

    A unique and stable UUID identifying an agent.

neutron_lib.placement.utils.device_resource_provider_uuid(namespace, host, device, separator=':')

  Generate a stable UUID for a physical network device.

  Parameters:

    - namespace – A UUID object identifying a mechanism driver (including its agent).

    - host – The hostname of the agent.

    - device – A host-unique name of the physical network device.

    - separator – A string used in assembling a name for uuid5(). Choose one that cannot occur either in ‘host’ or ‘device’. Optional.

  Returns:

    A unique and stable UUID identifying a physical network device.

neutron_lib.placement.utils.parse_rp_bandwidths(bandwidths)

  Parse and validate config option: resource_provider_bandwidths.

  Input in the config:

      resource_provider_bandwidths = eth0:10000:10000,eth1::10000,eth2::,eth3

  Input here:

      ['eth0:10000:10000', 'eth1::10000', 'eth2::', 'eth3']

  Output:

      {
          'eth0': {'egress': 10000, 'ingress': 10000},
          'eth1': {'egress': None, 'ingress': 10000},
          'eth2': {'egress': None, 'ingress': None},
          'eth3': {'egress': None, 'ingress': None},
      }

  Parameters:

    bandwidths – The list of ‘interface:egress:ingress’ bandwidth config options as pre-parsed by oslo_config.

  Raises:

    ValueError on invalid input.

  Returns:

    The fully parsed bandwidth config as a dict of dicts.

neutron_lib.placement.utils.parse_rp_inventory_defaults(inventory_defaults)

  Parse and validate config option: parse_rp_inventory_defaults.

  Cast the dict values to the proper numerical types.

  Input in the config:

      resource_provider_inventory_defaults = allocation_ratio:1.0,min_unit:1

  Input here:

      {
          'allocation_ratio': '1.0',
          'min_unit': '1',
      }

  Output here:

      {
          'allocation_ratio': 1.0,
          'min_unit': 1,
      }

  Parameters:

    inventory_defaults – The dict of inventory parameters and values (as strings) as pre-parsed by oslo_config.

  Raises:

    ValueError on invalid input.

  Returns:

    The fully parsed inventory parameters and values (as numerical values) as a dict.

neutron_lib.placement.utils.parse_rp_pp_with_direction(pkt_rates, host)

  Parse and validate: resource_provider_packet_processing_with_direction.

  Input in the config:

      resource_provider_packet_processing_with_direction =
          host0:10000:10000,host1::10000,host2::,host3,:0:0

  Input here:

      ['host0:10000:10000', 'host1::10000', 'host2::', 'host3', ':0:0']

  Output:

      {
          'host0': {'egress': 10000, 'ingress': 10000},
          'host1': {'egress': None, 'ingress': 10000},
          'host2': {'egress': None, 'ingress': None},
          'host3': {'egress': None, 'ingress': None},
          '<host>': {'egress': 0, 'ingress': 0},
      }

  Parameters:

    - pkt_rates – The list of ‘hypervisor:egress:ingress’ pkt rate config options as pre-parsed by oslo_config.

    - host – Hostname that will be used as a default key value if the user did not provide hypervisor name.

  Raises:

    ValueError on invalid input.

  Returns:

    The fully parsed pkt rate config as a dict of dicts.

neutron_lib.placement.utils.parse_rp_pp_without_direction(pkt_rates, host)

  Parse: resource_provider_packet_processing_without_direction.

  Input in the config:

      resource_provider_packet_processing_without_direction =
          host0:10000,host1:,host2,:0

  Input here:

      ['host0:10000', 'host1:', 'host2', ':0']

  Output:

      {
          'host0': {'any': 10000},
          'host1': {'any': None},
          'host2': {'any': None},
          '<DEFAULT.host>': {'any': 0},
      }

  Parameters:

    - pkt_rates – The list of ‘hypervisor:pkt_rate’ config options as pre-parsed by oslo_config.

    - host – Hostname that will be used as a default key value if the user did not provide hypervisor name.

  Raises:

    ValueError on invalid input.

  Returns:

    The fully parsed pkt rate config as a dict of dicts.

neutron_lib.placement.utils.physnet_trait(physnet)

  A Placement trait name to represent being connected to a physnet.

  Parameters:

    physnet – The physnet name.

  Returns:

    The trait name representing the physnet.

neutron_lib.placement.utils.resource_request_group_uuid(namespace, qos_rules, separator=':')

  Generate a stable UUID for a resource request group.

  Parameters:

    - namespace – A UUID object identifying a port.

    - qos_rules – A list of QoS rules contributing to the group.

    - separator – A string used in assembling a name for uuid5(). Optional.

  Returns:

    A unique and stable UUID identifying a resource request group.

neutron_lib.placement.utils.six_uuid5(namespace, name)

  A uuid.uuid5 variant that takes utf-8 ‘name’ both in Python 2 and 3.

  Parameters:

    - namespace – A UUID object used as a namespace in the generation of a v5 UUID.

    - name – Any string (either bytecode or unicode) used as a name in the generation of a v5 UUID.

  Returns:

    A v5 UUID object.

neutron_lib.placement.utils.vnic_type_trait(vnic_type)

  A Placement trait name to represent support for a vnic_type.

  Parameters:

    physnet – The vnic_type.

  Returns:

    The trait name representing the vnic_type.

this page last updated: 2026-08-15 12:38:23

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.

found an error? report a bug