minisfc.mano package

Submodules

minisfc.mano.mano module

@File : nfv_mano.py @Time : 2024/06/18 17:51:03 @Author : Wang Xi @Version : 0.0 @Contact : wangxi_chn@foxmail.com @License : (C)Copyright 2023-2024, Wang Xi @Desc : None

class minisfc.mano.mano.NfvMano(vnfManager: VnfManager, sfcSolver: Solver, ueManager: UeManager | None = None)

基类:object

ending()
handle(event: Event)
ready(substrateTopo: SubstrateTopo, containernet_handle: Containernet)

minisfc.mano.nfvo module

@File : nfv_orchestrator.py @Time : 2024/06/18 19:57:29 @Author : Wang Xi @Version : 0.0 @Contact : wangxi_chn@foxmail.com @License : (C)Copyright 2023-2024, Wang Xi @Desc : None

class minisfc.mano.nfvo.NfvOrchestrator(vnfManager: VnfManager, nfvVim: NfvVim, sfcSolver: Solver, ueManager: UeManager | None = None)

基类:object

handle(event: Event) SubstrateTopo
ready()

Initialize the NFV Orchestrator, mainly ready for SFC solver.

class minisfc.mano.nfvo.VnffgManager(solver: Solver, nfvVim: NfvVim, vnfManager: VnfManager, ueManager: UeManager | None = None)

基类:object

handle_arrive(event: Event) Tuple[SubstrateTopo, list[Solution]]
handle_ending(event: Event) Tuple[SubstrateTopo, list[Solution]]
handle_topochange(event: Event) Tuple[SubstrateTopo, list[Solution]]

minisfc.mano.uem module

uem.py

Introduction

This module implements ue management functionality, primarily used in SFC applications. It provides the following features:

  • Supports UE management operations (e.g., registration, deregistration, etc.).

Version

  • Version 1.0 (2025/03/13): Initial version

class minisfc.mano.uem.Ue(**kwargs)

基类:object

check_cmd_param_exists()
check_image_exists()
config_network()
get_self_control_url()
get_self_service_url()
ready()
start_trasport(ueServiceDict: dict)
stop_trasport()
update_ue_info(**kwargs)
class minisfc.mano.uem.UeManager

基类:object

add_ue_into_pool(ue_template: Ue)
add_ue_service_into_pool(ue_id_1: int, ue_id_2: int, **kwargs)
get_ue_from_pool(ue_id: int) Ue
ready(nfvVim: NfvVim)

minisfc.mano.vim module

@File : nfv_vim.py @Time : 2024/01/14 21:37:19 @Author : Wang Xi @Version : 0.0 @Contact : wangxi_chn@foxmail.com @License : (C)Copyright 2023-2024, Wang Xi @Desc : None

class minisfc.mano.vim.NfvInstance(node_id, name, cpu: float, ram: float, rom: float, switch_container_handle: Switch | None = None, ip=None, ip_control=None, port=None)

基类:object

access_ue(ue: Ue, containernet_handle: Containernet | None = None)
deploy_VNF(vnf_em: VnfEm, containernet_handle: Containernet | None = None)
get_accessed_ues() list[str]
get_deployed_vnfs()
get_vailable_ip()
unaccess_ue(ue: Ue, containernet_handle: Containernet | None = None)
undeploy_VNF(vnf_em: VnfEm, containernet_handle: Containernet | None = None)
class minisfc.mano.vim.NfvVim(name='NFV-VIM')

基类:object

access_ue_on_NFVI(ue: Ue, NFVI_node_id: int)
add_NFVInstance(node_id, name, cpu: float, ram: float, rom: float, switch_container_handle: Switch | None = None, ip=None, ip_control=None, port=None)
del_NFVInstance(node_id)
deploy_VNF_on_NFVI(vnf_em: VnfEm, NFVI_node_id)
deploy_service(NFVI_node_id_1: int, NFVI_node_id_2: int, service_bw: float)
get_all_NFVIs_info(nfvi_attr: str, default=None)

Get all NFVIs information.

参数:
  • nfvi_attr (str) -- NFVI attribute name.

  • default (_type_, optional) -- Default value if attribute is not found. Defaults to None.

返回:

Dictionary of NFVIs' attribute value.

返回类型:

dict[str, _type_]

get_curent_substrate_topo()
get_vailable_NFVI_ip()
ready(substrateTopo: SubstrateTopo, containernet_handle: Containernet | None = None)
unaccess_ue_on_NFVI(ue_name: str, NFVI_node_id: int)
undeploy_VNF_on_NFVI(vnf_em_name: str, NFVI_node_id)
undeploy_service(NFVI_node_id_1: int, NFVI_node_id_2: int, service_bw: float)
update_substrate_topo(substrateTopo: SubstrateTopo)

minisfc.mano.vnfm module

@File : nfv_manager.py @Time : 2024/06/18 15:15:00 @Author : Wang Xi @Version : 0.0 @Contact : wangxi_chn@foxmail.com @License : (C)Copyright 2023-2024, Wang Xi @Desc : None

class minisfc.mano.vnfm.VnfEm(**kwargs)

基类:object

check_cmd_param_exists()
check_image_exists()
check_resource_availability()
config_network()
get_self_control_url()
get_self_service_url()
ready()
set_forward_route(traffic_from_ue: Ue, traffic_to_url: str, max_retries=5, retry_delay=1)
update_vnf_param(**kwargs)
class minisfc.mano.vnfm.VnfManager

基类:object

add_vnf_into_pool(vnfEm_template: VnfEm)
add_vnf_service_into_pool(vnf_id_1: int, vnf_id_2: int, **kwargs)
get_vnf_from_pool(vnf_id: int) VnfEm
ready(nfvVim: NfvVim)
set_vnfs_forward_route(vnfs: list[VnfEm], ues: list[Ue])

Module contents