La Suite VortiQa di Freescale

La programmazione nel mondo del networking è un universo complesso e articolato. Freescale offre la suite di applicativi VortiQa per mettere a disposizione di tutti una serie completa ed efficace di strumenti per il networking. In questo articolo vedremo la struttura e alcuni dettagli di questo pacchetto software.

Freescale ha messo a punto la suite di applicazioni VortiQa per incentivare l’uso dei suoi processori che spaziano dal classico single chip alle più performanti piattaforme multicore. Inoltre, grazie alla sinergia che si può creare dove chi sviluppa software è a stretto contatto con chi progetta e realizza processori, in Freescale sono riusciti ad esaltare le caratteristiche peculiari di entrambi gli aspetti di una soluzione completa: l’hardware e il software di gestione, creando così oggetti particolarmente efficienti sia dal punto di vista della semplicità di utilizzo che dal punto di vista delle prestazioni.

CARATTERISTICHE GENERALI

Per descrivere la suite di cui stiamo parlando, può essere utile la dichiarazione di Christian Heidarson, un analista della Gartner (www.gartner.com) che ha detto: “Freescale, offrendo questo strumento, assume la posizione di leader del mercato e Intel potrà forse cercare di fare altrettanto mettendo a frutto l’acquisizione di Wind River”. Da questo si capisce che non stiamo parlando di una comune serie di programmi a supporto di qualche nuovo chip ma di una suite completa di strumenti per l’uso professionale di fascia alta con, però, una accessibilità tale da renderli disponibili anche agli utenti meno esigenti. Immaginiamo, quindi, di voler creare un dispositivo che utilizzando le caratteristiche di VortiQa e delle piattaforme messe a punto da Freescale, ci permetta di ottenere con una rapidità mai vista prima un complesso ed efficiente dispositivo di networking.

IL SOFTWARE

Il codice di VortiQa è ottimizzato per piattaforme QorIQ e per i processori PowerQUICC ed è costituito da moduli per i service provider, per le reti aziendali e per i gateway del mercato SOHO. Il codice è basato su IPsec per il VPN, adatto a un grande numero di sistemi, sono presenti firewall Stateful Packet Inspection per router e switch, filtri antivirus e antispam, e NAT per i gateway. Supporta una grande varietà di modelli multiprocessing simmetrici e asimmetrici. Per quanto riguarda il data plane, i moduli possono girare in un ambiente creato da Freescale, mentre per il control plane sono supportati Linux, OSE di Enea e VxWorks di Wind River. Uno dei partner più importanti di Freescale per il supporto data plane di VortiQa è senz’altro MontaVista, un leader nella commercializzazione di Linux che, grazie alla collaborazione con Freescale su VortiQa, ora detiene una posizione di dominio anche nel mercato delle distribuzioni Linux per piattaforme multicore. Questo pacchetto, quindi, nasce per esaltare le caratteristiche di processori ma gode anche del supporto e dell’appoggio di leader nel campo di sistemi operativi. Ha dunque tutte le carte in regola per garantire un servizio efficace e sicuro ad ogni livello. Passiamo quindi a una prima suddivisione delle varie versioni di VortiQa che sono disponibili. La prima è la versione per apparati service provider che fornisce altissime prestazioni (sia per il throughput dati che il numero di sessioni) per routers e switches, per metro carrier edge routers e per dispositivi UTM e controllori IMS. La seconda è la versione per apparati enterprise che utilizza un’architettura software SMP e fornisce prestazioni graduabili grazie ai molteplici cores. E’ utilizzato per firewalls SSL e IPSec, dispositivi UTM, gateways di accesso e multimedia. La terza è una versione per gateways small business che è ottimizzata sulle prestazioni della famiglia PowerQUICC per la realizzazione di routers per uffici e multi services gateway. Infine, la versione gateway SOHO/residenziali che è orientata ai gateways di fascia bassa con possibilità di configurazione da parte dei service providers. Esempi includono routers broadband e gateways per la casa digitale. In figura 1 uno schema che rappresenta la struttura di una versione SOHO di VortiQa.

Figura 1: struttura di una implementazione Enterprise di VortiQa

Figura 1: struttura di una implementazione Enterprise di VortiQa

ALCUNI DETTAGLI SUL CODICE

E’ interessante notare come tutte le caratteristiche di questo software siano state implementate seguendo precise regole formali che ne massimizzano l’efficienza, l’utilizzazione e la personalizzazione. Molte di queste caratteristiche sono disponibili anche in altre piattaforme SW o stack ma raramente compaiono tutte insieme in un unico pacchetto e raramente strutturate in modo da essere coerenti dagli strati più bassi fino agli strati più alti del software. Passiamo quindi alla descrizione di qualche interessante dettaglio. Sono state implementate apposite strutture dati per le operazioni di ricerca (ricerca di particolari elementi nel codice o di particolari situazioni durante la fase operativa) che rendono più agevoli le suddette operazioni. Per la ricerca relativa a sessioni (ed il debug di particolari funzionalità) sono disponibili le classiche hash lists, la configurabilità del numero di bucket (una sorta di classificazione del traffico IP basato su tabelle associate a ogni interfaccia), liste linkate e alberi binari per la gestione dei collision elements. Per la ricerca su istanze, invece, è possibile una ricerca indicizzata (sono state evitate le liste linkate o le ricerche su array). Nel campo dell’IPS, sono state usate regole per la definizione della struttura del codice basate sul trasporto, sul protocollo applicazione e sui vari stadi del protocollo. Sono invece state evitate le copie di buffer (fonte di disallineamenti temporali e non), al posto delle poll o select, a volte usate nelle applicazioni basate su socket, è stata invece usata la ePoll che è una variante della poll triggerata sia sul fronte che sul livello (per maggiori dettagli, vedere il man di Linux). Dove possibile, il codice è organizzato in macchine a stati per rendere facilmente gestibili sessioni multiple nell’ambito dello stesso thread. Questo permette anche di evitare allocazioni di memoria nei data path, di massimizzare l’efficienza del codice e dell’uso della cache e l’uso del processing simmetrico (SMP). A proposito dell’SMP, va notato che è stato minimizzato il numero dei locks nei data path per una ottimale granularità del codice. La parallelizzazione delle sessioni è stata organizzata in modo da permettere a un solo processore alla volta di elaborare sessioni firewall, IPS o VPN. I pacchetti elaborati da altri processi durante questa fase, sono accodati nella coda di backlog di ogni sessione, aumentando così la sicurezza intrinseca del processamento. Ovviamente, sono stati applicati anche i normali criteri della buona programmazione che prevedono di evitare il binding di processori alle sessioni e di effettuare la maggior parte del processing dei pacchetti all’interno di softirq (interrupt software e quindi gestiti secondo criteri stabiliti dal programma) piuttosto che all’interno di interrupt hardware. Questo al fine di minimizzare il tempo speso in context switch.

LA SICUREZZA

Per tutte le versioni sono disponibili le caratteristiche qui sotto elencate che possono essere configurate a seconda delle specifiche esigenze della applicazione che stiamo creando. Per la sicurezza del nostro sistema (o di ciò che è a valle del nostro sistema) possiamo fare affidamento su di un Firewall Stateful Packet Inspection e NAT che permette di difendersi da un ampio spettro di attacchi quali IP address spoofing, distributed denial of service (DDoS), syn-foods, re-assembly, attacchi del tipo IP fragmentation nonché funzionalità di port triggering e un logging / reporting completo. Un altro fronte sul quale possiamo lavorare per garantire la sicureza della nostra applicazione e di chi la  userà, è la possibilità di creare e configurare una IPSec Virtual Private Network (VPN). Questo approccio consente l’uso di IKEv1 e IKEv2 (tutti i dettagli su RFC4945) per la negoziazione automatica delle chiavi di accesso e il controllo di accessi da remoto raggiungendo così livelli di sicurezza elevatissimi. In questo caso le performances sono esaltate dal supporto nativo dato dagli appositi “acceleration engines” hardware. Sono disponibili, a carico di apposite risorse HW, algoritmi multipli di cifratura e integrità pacchetti quali DES, 3DES, AES (CBC,CTR, XCBC), HMAC-SHA1 e HMAC-MD5. Senza dimenticare funzionalità quali Dead Peer Detection (DPD) e Dead Peer Tunnel Detection (DPTD). Col diffondersi di interconnettività e interoperabilità dei più svariati dispositivi (smartphones, telefonia, home automation, metodi di pagamento ecc.) la sicurezza delle comunicazioni sta diventando uno dei task più “pesanti” per qualunque apparato di networking. Ecco che VortiQa mette a disposizione una apposita serie di caratteristiche, raggruppate sotto le voce Intrusion Prevention System (IPS) e Deep Packet Inspection. La IPS rileva e previene gli attacchi utilizzando regole basate sulle anomalie di protocollo / traffico / autenticazione. Il database delle firme di VortiQa contiene migliaia di identificativi di sorgenti di attacchi e viene regolarmente aggiornato. Il tutto realizzato mediante un supporto nativo per l’acceleratore di pattern matching (PME) che sgrava così il core processor(s) da questo incarico. E’ importante un accenno alle funzionalità di Anti-Virus e Anti-Spam volte al rilevamento e alla prevenzione (AntiX) che sono integrate nel software VortiQa e implementate con l’uso intensivo del pattern matching acceleration engine (PME). Sono attivi supporti a proxy per SMTP/S, POP3/S, HTTP, Clam AV, Spam assassin completi di logging e reporting. Nell’ambito della ricerca sulla protezione, è da sottolineare che Freescale è un partner MAPP e aggiorna costantemente, come membro di tale associazione, tutti i suoi software dedicati alla protezione. MAPP (Microsoft Active Protection Program) è un programma fornito dal Microsoft Security Response Center (MSRC) attraverso il quale le informazioni e le scoperte nel campo della vulnerabilità sono condivise tra tutti i partner MAPP prima che queste stesse informazioni siano poi pubblicate sull’aggiornamento mensile di Microsoft sulla sicurezza.

FUNZIONALITÀ BASE

Per quanto riguarda le funzionalità di base del nostro apparato di networking, sono disponibili i supporti per la maggior parte dei protocolli di rete per LAN e WAN quali: DHCP-Client, server e relay, DNS relay, dynamic DNS client, Network time protocol (NTP), RIP v1/v2 e static routing, connettività WAN con IP statico, DHCP, PPPoE e PPTP, supporto di WAN multiple, autenticazione del client basata su RADIUS e LDAP/S e molte altre caratteristiche.

GESTIONE DEL TRAFFICO

In un mondo in cui le comunicazioni audio e video passano sempre più attraverso la rete digitale, è assolutamente prioritaria una corretta gestione dei pacchetti e delle loro prerogative. VortiQa integra, una avanzata gestione del Quality of Service (QoS) e del traffic shaping. Sono così automaticamente implementate la classificazione del traffico Layer 3 e Layer 4, Ingress e Egress traffic metering, policing e DSCP marking, con la possibilità di utilizzare algoritmi di pianificazione priority based, CBQ e round robin.

GESTIONE REMOTA

Tutte queste caratteristiche possono essere configurate in modo locale per apparati embedded oppure da remoto grazie al Web server integrato (accessibile con GUI o da linea di comando) che consente di gestire e configurare la maggior parte delle funzionalità della macchina e del software. La generazione automatica di logs permette di redirigere il tracciato delle attività ad un server syslog esterno o inviarlo via e-mail. Ovviamente, sono disponibili le funzionalità di Firmware upgrade, Debug trace support, protocolli quali TR-069 e TR-098 e molte altre. Altra caratteristica interessante, è quella di poter creare un Virtual Security Gateway (VSG) ovvero più gateways virtuali con piena operatività all’interno di uno stesso dispositivo. In pratica, un insieme completo di caratteristiche, testate e subito utilizzabili che possiamo scaricare dal sito Freescale in un pacchetto costituito da: codice sorgente (codice ed eseguibili), documenti di Release (istruzioni per la compilazione e configurazione), Toolkit (integrazione e uso delle API) ed una completa guida per l’amministratore di sistema.

LE PIATTAFORME HARDWARE

Ovviamente, la massima espressione di un software come VortiQa si ottiene con l’utilizzo delle piattaforme su cui è nato e per le quali è stato appositamente ottimizzato. Freescale, nell’ottica di soddisfare le esigenze di una fascia di mercato più ampia possibile, ha messo a punto una serie di soluzioni che permettono di spaziare dalle piattaforme più economiche a quelle estremamente performanti. Identificate col nome del processore principale, le piattaforme descritte in seguito partono dalla più “piccola” per arrivare a quelle dedicate alle grandi prestazioni.

IL PROCESORE QORIQ P1010

Il P1010 (ed il suo omologo dual core P1014) è un processore dedicato ad applicazioni in cui l’energia utilizzate è un elemento sensibile. Opera fino a 800 MHz ma consuma 1.1 W. Il dispositivo offre una architettura che facilita la protezione da intrusioni software e la clonazione stessa del SW grazie a tecniche di identificazione end-to-end del codice. Alcuni costruttori di board (come Aewin e Atheros) rendono disponibili sul mercato apparati di networking, basati su questo processore, con 4 porte ethernet, 2 porte USB, espansioni PCI, slot per SD, DRAM, alimentatore ed i necessari cavi, il tutto per meno di 100$. In figura 2 la struttura dei processori della serie P101X.

Figura 2: struttura dei processori P101X.

Figura 2: struttura dei processori P101X.

IL PROCESORE QORIQ P2020

Il P2020 (pin to pin compatibile con i suoi “fratelli minori”) è processore dual core, realizzato con tecnologia 45nm, che opera a 1.2 GHz. Apposite periferiche interne supportano i più diffusi algoritmi per la sicurezza nel networking e nelle applicazioni wireless quali IPSec e Kasumi. Un controller per memorie a 64 bit garantisce la compatibilità con le memorie del futuro e le attuali DDR2 eDDR3. In figura 3 la struttura della reference board sviluppata per dimostrare le caratteristiche di questo processore.

Figura 3: P2020 reference board.

Figura 3: P2020 reference board.

I TOP DELLA GAMMA

Freescale ha anche messo a punto la piattaforma QorIQ serie P4 che include il P4080: un processore eight-core a 1.5 Ghz, L3 cache e DPAA avanzato. Grazie alla architettura interna, se necessario, ogni core può operare indipendentemente dagli altri. Infatti, l’accesso alle memorie, agli acceleratori e alle interfacce di rete è mantenuto completamente separato ed è quindi possibile la concorrenza contemporanea di sistemi operativi multipli e indipendenti in assoluta sicurezza. La serie P5 è basata su core e5500 a 64 bit operante a 2.5 GHz. Questo processore ha lo stesso case (ed è quindi compatibile) di quelli della serie P3 e P4. Il P5 vanta anche un controller per DDR3 a 1.3 GHz, 18 linee SerDes per il networking e altre risorse all’altezza di un processore come questo che è commercializzato in versione single core (P5010) e in versione dual core (P5020) con case da 30 W.

APPLICAZIONI TIPICHE

L’IDE per elaborare e configurare VortiQa, secondo le esigenze della nostra applicazione, è generalmente una distribuzione Linux. Nel box approfondimenti un link a un interessante documento che descrive come installare VortiQa su di una Ubuntu 8.0.4 dove viene emulato un processore P4080. Per il debug su HW reale, invece, può essere usato CodeWarrior che in molte versioni è valutabile, gratuitamente, per 30 giorni. Data l’ampia offerta di HW sul quale è possibile far girare VortiQa e le caratteristiche del pacchetto SW garantite da Freescale, è facile immaginare che le potenziali applicazioni siano moltissime. Tra le tante, alcune di quelle che possono offrire uno sviluppo futuro molto promettente e interessante sono quelle legate al networking wireless. Possiamo analizzarne alcune per capire meglio quali siano le potenzialità.

DALLA FEMTOCELLA ALLA MACROCELLA

Molti operatori di telefonia mobile hanno già attivato il supporto per le femtocelle che, in estrema sintesi, sono piccole stazioni base per telefonia cellulare con una portata molto ridotta e dedicate all’uso domestico o businnes. La portata per una microcella è meno di due Km di raggio, per una picocella si parla di 200m o meno e per una femtocella di 10m. Queste però non sono ancora definizioni standardizzate a livello internazionale, molti produttori che si affacciano a questo mercato ancora giovane, dichiarano prestazioni discordanti dai nomi dati ai loro dispositivi (picocelle con portate di Km e incongruenze simili). Il principio di funzionamento è basato su di un supporto radio per la connessione al telefono o apparto mobile in genere e la connessione di quest’ultimo alla rete telefonica/dati mediante apposito gateway. E’ proprio qui che VortiQa esprime bene la sua potenzialità e affidabilità. Ovviamente, la diversa configurazione di VortiQa permette di gestire agevolmente una semplice femtocella oppure una picocella o microcella e di salire fino alle metrocelle (uso cittadino) e stazioni base per macrocelle. Ognuna delle citate tipologie, sfrutta una connettività verso una linea dati che nel caso di una femtocella può essere una linea DSL mentre per una macrocella può essere un link in fibra con protocolli molto diversi da quelli usati su linee DSL. Le soluzioni che Freescale propone per le femtocelle sono soluzioni a basso consumo, larga banda, ottimizzate per  LTE  (FDD  e  TDD)  e  WCDMA (HSPA+). Per esempio, per LTE e WCDMA (HSPA+), la soluzione supporta da 8 a 16 utilizzatori  simultanei ed offre performances quali: un singolo settore LTE fino a 20 MHz che gestisce 100 Mbps in downlink e 50 Mbps in uplink oppure un doppio carrier da 5 MHz HSPA+, ognuno che gestisce 42 Mbps in downlink e 11.5 Mbps in uplink. In figura 4 la struttura di una femtocella che, secondo quanto già descritto, è realizzata quasi interamente da un processore Freescale e pochi altri dispositivi esterni, tutti coordinati da una implementazione di VortiQa. La soluzione tipica per le Picocelle (vedi figura 5), ottimizzata per LTE (FDD e TDD), WCDMA (HSPA+) e WiMAX, è in grado di gestire fino a 64 utilizzatori simultanei offrendo per un singolo settore LTE fino a 20 MHz la gestione di 150 Mbps in downlink e 75 Mbps in uplink oppure un doppio carrier da 5 MHz HSPA+, ognuno che gestisce 42 Mbps in downlink e 11.5 Mbps in uplink. Queste sono solo alcune delle possibilità che VortiQa offre nello specifico e promettente settore della telefonia mobile ma anche la home automation richiede sempre più spesso una attenta ed efficace gestione del networking. Per home automation non dobbiamo immaginare solo la connessione ad internet della singola abitazione ma anche la sempre più comune gestione remota di servizi legati all’energia, alla sicurezza, alla citofonia di interi stabili o quartieri residenziali. Superfluo l’accenno alle crescenti richieste di banda e connettività di ogni tipo di sito produttivo, di realtà del mondo accademico ed economico.

Figura 4: struttura di una femtocella.

Figura 4: struttura di una femtocella.

 

Figura 5: struttura di una picocella.

Figura 5: struttura di una picocella.

CONCLUSIONI

VortiQa mette a disposizione di sviluppatori e progettisti una quantità e una qualità di sapere che molto raramente si trova concentrata in un unico “pacchetto”. Questa offerta permette a un numero sempre crescente di realtà imprenditoriali di creare oggetti ed applicazioni legate al mondo networking senza dover affrontare i costi, di solito davvero imponenti, di sviluppo e debug di un software che può essere invece ottenuto gratuitamente e specialmente dalle funzionalità garantite. E’ questo, quindi, un altro passo verso la diffusione capillare della connettività che può essere realizzata in modo efficace, sicuro ed economico, l’inizio della fine di un monopolio che vedeva pochi colossi dominare un mondo col quale ormai tutti abbiamo a che fare: il networking. In conclusione, alla guida di mezzi tanto potenti occorre solo più porre la tipica fantasia imprenditorialità italiana che completeranno quella che potrebbe essere una squadra di sicuro successo. Citando il noto cestista Michael Jordan: “Il talento vince la partita ma la squadra vince il campionato”.

Scarica subito una copia gratis

Una risposta

  1. Avatar photo Giordana Francesca Brescia 6 Dicembre 2019

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend