Skip to main content

Creazione Fibre Logiche

Generazione delle Fibre di Secondaria

Il metodo generateNewSecondaryFibers crea nuove fibre logiche madri di secondaria e, se necessario, esegue controlli sugli Splitter secondari.

private CalcFibLogicalSupport generateNewSecondaryFibers(CalcFibersLogicalConfig calcFibersLogicalConfig) throws GisfoException {
    CalcFibLogicalSupport calcFibLogicalSupport = new CalcFibLogicalSupport(null, calcFibersLogicalConfig);
    
    if (serviceApplicationType.isAB() || serviceApplicationType.isGP())
        serviceSplitterSecondario.checkSecondarySplittersByConfig(calcFibersLogicalConfig);
    
    if (calcFibersLogicalConfig.hasToSkipPrePhase()) return calcFibLogicalSupport;
    
    createNewFibersLogical(calcFibersLogicalConfig);
    return calcFibLogicalSupport;
}

Creazione di Nuove Fibers Logical

Metodo: createNewFibersLogical

  • Registra un messaggio di log sulla creazione delle fibers logical.

  • Recupera i nodi per cui creare nuove fibers logical.

  • Avvia la creazione delle fibers logical utilizzando createNewFibersLogicalForFibPcabNodes.

Questo documento descrive il processo di creazione delle connessioni delle Fibre Logiche per i FibPcabNodes all'interno di un sistema di rete. L'implementazione garantisce che vengano elaborati solo i nodi validi, ignorando quelli non necessari, e gestisce eventuali eccezioni.

Il metodo createNewFibersLogicalForFibPcabNodes inizializza il processo di creazione delle fibre logiche e itera attraverso un elenco di FibPcabNodes. Applica controlli specifici per determinare se un nodo debba essere ignorato e procede con la creazione delle connessioni delle Fibre Logiche per i nodi validi.

Parametri

  • calcFibersLogicalConfig: Oggetto di configurazione per il calcolo fibre.

  • listFibPcabNodes: Elenco di nodi (FibPcabNodes) da elaborare.

  1. Inizializza il componente CreateNewFibersLogical.

  2. Itera attraverso listFibPcabNodes e determina se un nodo debba essere ignorato.

  3. Se valido, chiama createNewFibersLogicalByFibPcabNode().


nodeNeedToBeSkipped determina se un FibPcabNode debba essere ignorato in base alle condizioni derivate da CalcFibersLogicalConfig e dal tipo di nodo.

Condizioni

  • I nodi con isCnoNode() vengono ignorati se isAreaPFSCNOCalc() e isAreaPfsCnoScp() sono entrambi true.

  • I nodi con isGcNode() vengono ignorati se serviceApplicationType.isAB() è true.


createNewFibersLogical.createNewFibersLogical elabora un determinato FibPcabNode per determinare i tipi di fibra applicabili e tenta di creare le corrispondenti connessioni con le Fibre Logiche.

  1. Recupera i tipi di fibra utilizzando getFibersTypesForNode().

  2. Itera attraverso i tipi di fibra:

    • Crea una nuova istanza di Fibra Logica.

    • Gestisce eccezioni specifiche (es. NoTypeFiberException).


createFiberLogicalByNodeAType tenta di stabilire una nuova connessione logica delle fibre tra un nodo e il suo percorso più breve.

  1. Ordina l'elenco dei nodi slave.

  2. Controlla se il NodeZ richiede la creazione di nuove Fibre Logiche.

  3. Itera attraverso i nodi slave:

    • Determina il percorso più breve.

    • Valida la classificazione del nodo.

    • Se trova un nodo valido, inserisce la Fibra logica.


getNodeAForNewFiberLogical finalizza la creazione della fibra logica determinando unNodeA e inserendo poi la nuova fibra in una lista contenuta nell'oggetto di supporto, un secondo metodo inserirà poi tutte le fibre nel database.

  1. Identifica NodeA.

  2. Se NodeA è valido, inserisce la fibra logica nella lista.

  3. Restituisce true se l'operazione ha successo, false altrimenti.


getNewFibersLogicalByTypeCrea un'istanza di NewFiberLogical in base al tipo di fibra.


Al ternine del ciclo di creazione vengono inserite le fibre madri con il seguente metodo:

public void insertFiberLogicalList(List<FibersLogical> fibersLogicals, ProjectClaimedArea claimedArea) {
Lists.partition(fibersLogicals, PARTITION_SIZE)
.forEach(fiberList -> mapperFiberLogical.insertFibersLogicalList(fiberList));

insertEntitiesIfNeeded(fibersLogicals, claimedArea);
}

Tipologie supportate

  • S_FIBER_TYPE_SPLITTER

  • S_FIBER_TYPE_GPON

  • S_FIBER_TYPE_BU

  • S_FIBER_TYPE_SPARE_FOR_CARDS

  • S_FIBER_TYPE_GPON_U

  • S_FIBER_TYPE_P2P_PAC

  • S_FIBER_TYPE_P2P_POI

  • S_FIBER_TYPE_SPARE_CNO

  • S_FIBER_TYPE_SPARE_ROE

  • S_FIBER_TYPE_BUSINESS

  • S_FIBER_TYPE_DARK_FIBER

  • S_FIBER_TYPE_LAN_TO_LAN

  • S_FIBER_TYPE_OLT_ODF

  • S_FIBER_TYPE_POP_SP

  • S_FIBER_TYPE_SP_SS

  • S_FIBER_TYPE_SS_BUSINESS

Se viene fornito un tipo non supportato, viene lanciata un'eccezione NoTypeFiberException.


Gestione delle Eccezioni

  • Registrazione degli errori tramite log.error().

  • Aggiunta dei messaggi di errore a reportManager.

  • Gestione dei casi specifici in cui la creazione della fibra logica non è possibile.

L'errore più comune è:

S_ERROR_ROUTING_FOR_FIBERSINGLE = Non è stato possibile individuare la routing del nodo X

questo errore viene mostrato se tutta la procedura precedentemente spiegata non riesce ad individuare un nodo A valido per il nodo X.

Vedi anche Lezione 3 Creazione nuove fibre logiche e aggregazioni