+ def port_num(self, port):
+ # we need interface name -> DPDK port num (PMD ID) -> LINK ID
+ # LINK ID -> PMD ID is governed by the port mask
+ """
+
+ :rtype: int
+ :type port: str
+ """
+ if isinstance(port, dict):
+ intf = port
+ else:
+ intf = self.find_interface(name=port)
+ return self._port_num_map.setdefault(intf["name"],
+ int(intf["virtual-interface"]["dpdk_port_num"]))
+
+ def port_nums(self, intfs):
+ return [self.port_num(i) for i in intfs]
+
+ def ports_iter(self):
+ for port_name in self.port_pairs.all_ports:
+ port_num = self.port_num(port_name)
+ yield port_name, port_num