Commit 55e5e202 authored by Valerie Aurora's avatar Valerie Aurora
Browse files

Fill in product overview and architecture

parent 8c9f4f0a
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
@@ -218,6 +218,33 @@ _List uses/environments covered by other legislation or standards (critical, ind

_Explain the overall architecture and relationship among the parts of the products. Use diagrams if that is helpful._

A physical network interface consists of:

* A communications bus to the host
* A hardware transmission adapter
* Hardware and firmware to process incoming signals and host commands

It also includes the following parts if they are sold with the interface:

* Device driver
* Removable/changable antenna
* Daughter boards/add-on hardware modules

A physical network interface connects via its communications bus to the host. The host transmits and receives data to the network by means of the I/O interface provided by the network interface.

A device driver is the host software that takes host-provided network data in host memory and issues the appropriate I/O requests to the network interface to transmit that data over the network. It also reads received network data via the I/O interface and and transfers it to host memory. Network interfaces often have many configuraton options for how the host and network interface interact.

The device driver usually must be able to read and write to/from:

* at least some parts of host memory
* address space mapped to the network interface's control registers
* the host interrupt controller

This usually requires that the device driver have a high degree of host access (usually kernel level).

The device driver communicates with the rest of the host software by means of a network device driver interface that abstracts the details of using the underlying network interface. This network device driver interface is typically defined by the host operating system and used by its network stack to send or receive data through any device driver that supports this interface.

A virtual interface emulates the device driver interface of a network interface to the host operating system. Instead of a physical network interface, it may send and receive packets to a hypervisor, a container, another device driver, another part of the network stack, or an application.

FIXME make some nice diagrams