как смоделировать цепочку сервисных функций (SF C) на физических узлах с python? - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь смоделировать среду, чтобы использовать ее для размещения 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
  

Мой вопрос в том, знает ли кто-нибудь лучший способ симуляции этого? и каковы ваши предложения об алгоритмах или некоторых библиотеках, которые я мог бы использовать?

...