# Intelligent Platform Management Interface

La specifica Intelligent Platform Management Interface (IPMI) è uno standard il cui sviluppo è guidato da Intel e definisce un gruppo di interfacce comuni per l'amministrazione di un sistema informatico in modo da monitorare l'affidabilità e gestire alcune caratteristiche hardware. Più di 200 aziende supportano IPMI tra cui Dell, IBM, Hewlett-Packard, Intel e NEC. La tecnologia è ormai considerata uno standard de facto.

## Funzionalità

Un sottosistema IPMI opera indipendentemente dal sistema operativo e permette all'amministratore di sistema di gestire un sistema a distanza anche in assenza di un sistema operativo, del software di gestione oppure nel caso in cui il sistema da monitorare sia spento ma comunque alimentato. Il sistema IPMI può funzionare anche dopo che il sistema operativo si è avviato ed espone tutta una serie di dati e strutture al software di gestione. La specifica IPMI descrive solo la struttura e il formato delle interfacce con standard mentre le implementazioni nel dettaglio possono essere varie.
Una implementazione della versione 1.5 di IPMI permette di inviare degli eventi direttamente via connessione seriale o via connessione locale (LAN) ad un client remoto. La connessione LAN side-band utilizza la scheda di rete di sistema in quanto questa soluzione è più economica di una connessione LAN dedicata ma ha lo svantaggio di avere una larghezza di banda limitata. I sistemi compatibili con la versione 2.0 di IPMI possono anche inviare eventi via Serial over LAN. È possibile usare un sistema di messaggi per interrogare lo stato della piattaforma hardware, per visualizzare il registro hardware oppure per emettere altre richieste da una console remota attraverso le stesse connessioni. Lo standard definisce anche un meccanismo di notifica per inviare degli eventi trap (PET) del protocollo SNMP.

## Side-band e out-of-band

IPMI implementa quella che è chiamata una gestione "side-band" della connessione LAN. Questa connessione utilizza una interfaccia SMBus tra il BMC (Baseboard Management Controller) e la scheda di rete. Questa soluzione ha il vantaggio di ridurre i costi ma per contro fornisce una larghezza di banda limitata, sufficiente però a interagire con una console testuale. In altre parole, quando un computer remoto è spento o bloccato, l'amministratore può accederci tramite IPMI e usare una console testuale. Questo sarà sufficiente per alcune funzioni vitali come il controllo del registro degli eventi, l'accesso al BIOS ed eseguire l'accensione o lo spegnimento del sistema. Tuttavia, funzioni più avanzate come la reinstallazione remota del sistema operativo possono richiedere un approccio Out-of-band management che richiede l'utilizzo di una connessione LAN dedicata.

## Componenti IPMI
### Baseboard Management Controller

Un sottosistema IPMI consiste in un controller principale chiamato Baseboard Management Controller (BMC) e altri controller distribuiti tra diversi moduli indicati come controller "satellite". I controller satelliti dello stesso chassis sono connessi al BMC tramite una interfaccia chiamata IPMB (Intelligent Platform Management Bus/Bridge), una implementazione migliorata di I²C. Il BMC si connette con altri controller satelliti o altri BMC in altri chassis tramite un bus IPMC (Intelligent Platform Management Chassis), questo può essere gestito tramite un Remote Management Control Protocol (RMCP), un protocollo per cavi specializzato definito da questa specifica.
Molte aziende sviluppano e commercializzano chip BMC ma non tutti sono uguali in funzionalità. Un BMC utilizzato per applicazioni embedded avrà una memoria limitata e richiederà codice del firmware altamente ottimizzato per implementare le funzionalità IPMI complete. Nel lato opposto, BMC altamente integrati possono ospitare più istruzioni complesse e fornire le funzionalità out-of-band complete di un processore di servizio.

### Field Replaceable Unit

La Field Replaceable Unit (FRU) mantiene un inventario (come l'ID del produttore, numero seriale, ecc) di dispositivi sostituibili

### Sensor Data Record

La lista di Sensor Data Record (SDR) fornisce le proprietà di ogni singolo sensore presente sulla scheda. Per esempio la scheda può contenere sensori di temperatura, velocità delle ventole e tensioni.