Я пытаюсь смоделировать среду, чтобы использовать ее для размещения SF C на некоторых физических узлах в Python. Моя цель - создать среду Dynami c для изменения всех атрибутов узлов и ссылок, а также VNF и логических ссылок. Я пробовал использовать библиотеку Networkx для моделирования физических узлов, а также использовал простые пути графа как sf c.
class SFC:
def __init__(self, edge_weight , c_cap, mem_cap , st_cap , v_cpu , v_st , v_mem , num_node=10):
self.edge_weight = edge_weight
self.c_cap = c_cap
self.mem_cap = mem_cap
self.st_cap = st_cap
self.v_cpu = v_cpu
self.v_st = v_st
self.v_mem = v_mem
self.num_node = num_node
self.num_node = 0
def physical_node(self, num_node):
print(type(num_node))
phy_graph = nx.complete_graph(num_node)
for i in range(num_node):
phy_graph.nodes[i]['CPU'] = self.c_cap
phy_graph.nodes[i]['storage'] = self.st_cap
phy_graph.nodes[i]['memory'] = self.mem_cap
nx.draw(phy_graph, with_labels = True)
return phy_graph
def random_sfc(self,phy_graph, num_sfc = 2 , num_vnf = 3):
sg = list(nx.all_simple_paths(phy_graph , source = 0 , target=4))
_r=[]
for i in range(len(sg)):
if len(sg[i]) == num_vnf:
_r.append(sg[i])
rand_sfc = sample(_r,num_sfc)
return rand_sfc
Мой вопрос в том, знает ли кто-нибудь лучший способ симуляции этого? и каковы ваши предложения об алгоритмах или некоторых библиотеках, которые я мог бы использовать?