A network interface for secure virtual interface data communication
includes a doorbell circuit, a processor, memory, and a bridge circuit.
The doorbell circuit responds to physical I/O addresses of the host that
are mapped by a memory management unit by a registration process. An
application program seeking to use a channel of a virtual interface must
register the virtual address of host memory where data for communication
is or will be stored and register the virtual address of a page of I/O
addresses. Access to the doorbell functions and to the host memory via the
memory management unit are therefore denied when the requesting process
identifier does not successfully compare with the process identifier for
the process that performed the registrations. A password may be stored in
the network interface in association with a virtual interface (VI) channel
identifier and stored in association with the virtual to physical map used
for VI communication. The network interface may abandon a requested or
implied data communication function when passwords so not successfully
compare. Methods for virtual interface (VI) communication performed by an
application program may include one or more of the steps of (a)
establishing a VI channel where physical I/O addresses of a network
controller are secured; (b) registering host memory for use with a VI
channel where physical memory addresses are secured; (c) describing blocks
of host memory with reference to a memory handle; and (d) accomplishing
data communication of a described block of host memory via an established
VI channel where the data and controls of the VI channel are secured and
the data and controls of other VI channels are secured. Security is
provided against both erroneous operations and operations intentionally
effected by rouge processes.
Un'interfaccia della rete per la comunicazione di dati virtuale sicura dell'interfaccia include un circuito del campanello, un processor, la memoria e un circuito di ponticello. Il circuito del campanello risponde agli indirizzi fisici di I/O dell'ospite che sono tracciati da un'unità dell'amministrazione di memoria tramite un processo di registro. Un programma di applicazione che cerca di utilizzare una scanalatura di un'interfaccia virtuale deve registrare l'indirizzo virtuale della memoria ospite dove i dati per la comunicazione sono o saranno immagazzinati e registrare l'indirizzo virtuale di una pagina degli indirizzi di I/O. L'accesso alle funzioni del campanello ed alla memoria ospite via l'unità dell'amministrazione di memoria quindi è negato quando il contrassegno trattato di richiesta non paragona con successo al contrassegno trattato per il processo che ha realizzato i registri. Una parola d'accesso può essere immagazzinata nell'interfaccia della rete in collaborazione con un contrassegno virtuale della scanalatura dell'interfaccia (vi) ed essere immagazzinata in collaborazione con il virtuale al programma fisico usato per VI la comunicazione. L'interfaccia della rete può abbandonare una funzione chiesta o implicita di comunicazione di dati quando parole d'accesso così non con successo da confrontare. I metodi per la comunicazione virtuale dell'interfaccia (vi) effettuata da un programma di applicazione possono includere uno o più dei punti (a) che stabiliscono di una scanalatura VI in cui gli indirizzi fisici di I/O di un regolatore della rete sono assicurati; (b) registrare memoria ospite per uso con una scanalatura VI in cui gli indirizzi di memoria fisici sono assicurati; (c) descrivere i blocchi della memoria ospite per quanto riguarda una maniglia di memoria; e (d) compiendo la comunicazione di dati di un blocco descritto della memoria ospite via una scanalatura stabilita VI in cui i dati ed i comandi della scanalatura VI sono assicurati ed i dati ed i comandi di altre scanalature VI sono fissati. La sicurezza è fornita contro entrambi i funzionamenti errati ed i funzionamenti effettuati intenzionalmente tramite i processi del rossetto.