ArvernOS
|
This module defines network interfaces and drivers. More...
#include <stdbool.h>
#include <stdint.h>
Data Structures | |
struct | net_driver_t |
struct | net_interface_t |
Functions | |
void | net_interface_init (uint8_t interface_id, net_driver_t *driver, bool prefer_dhcp, uint8_t ip[4], uint8_t gateway_ip[4], uint8_t dns_ip[4]) |
net_interface_t * | net_get_interface (uint8_t interface_id) |
This module defines network interfaces and drivers.
In this project, a network driver is an abstraction of a physical device, like an Ethernet card for instance. A network driver defines a set of functions to transmit and receive Layer 2 frames.
A network interface bridges a network driver and configuration together. The current configuration that is needed for a network interface is:
Yep, it is very IP oriented but that's how we can show nice things :)
net_interface_t * net_get_interface | ( | uint8_t | interface_id | ) |
Returns the network interface for the given ID.
interface_id | an interface ID |
NULL
otherwise void net_interface_init | ( | uint8_t | interface_id, |
net_driver_t * | driver, | ||
bool | prefer_dhcp, | ||
uint8_t | ip[4], | ||
uint8_t | gateway_ip[4], | ||
uint8_t | dns_ip[4] ) |
Initializes a network interface.
When prefer_dhcp
is set to true
, DHCP is used. If it fails, the static configuration will be used instead.
interface_id | an interface ID |
driver | a network driver |
prefer_dhcp | whether to use DHCP |
ip | a static IPv4 address for the host |
gateway_ip | a static IPv4 address for the gateway |
dns_ip | a static IPv4 address for the primary DNS server |