def compute_path_intents(self, fs):
intent_list = []
fs.path = nx.shortest_path(self.network_graph.graph,
source=fs.ng_src_host.node_id,
target=fs.ng_dst_host.node_id,
weight='weight')
# Get the port where the host connects at the first switch in the path
link_ports_dict = self.network_graph.get_link_ports_dict(fs.ng_src_host.node_id, fs.ng_src_host.sw.node_id)
in_port = link_ports_dict[fs.ng_src_host.sw.node_id]
# This loop always starts at a switch
for i in range(1, len(fs.path) - 1):
link_ports_dict = self.network_graph.get_link_ports_dict(fs.path[i], fs.path[i+1])
fwd_flow_match = deepcopy(fs.flow_match)
mac_int = int(fs.ng_src_host.mac_addr.replace(":", ""), 16)
fwd_flow_match["ethernet_source"] = int(mac_int)
mac_int = int(fs.ng_dst_host.mac_addr.replace(":", ""), 16)
fwd_flow_match["ethernet_destination"] = int(mac_int)
intent = Intent("primary",
fwd_flow_match,
in_port,
link_ports_dict[fs.path[i]],
True)
# Store the switch id in the intent
intent.switch_id = fs.path[i]
intent_list.append(intent)
in_port = link_ports_dict[fs.path[i+1]]
return intent_list
simple_mac_synthesis.py 文件源码
python
阅读 30
收藏 0
点赞 0
评论 0
评论列表
文章目录