38,10 → 38,14 |
#define __NET_IP_H__ |
|
#include <ipc/ipc.h> |
#include <ipc/services.h> |
|
#include "../../include/sockaddr.h" |
#include "../../include/device.h" |
#include "../../include/ip_interface.h" |
|
#include "../../structures/int_map.h" |
#include "../../structures/generic_field.h" |
#include "../../structures/module_map.h" |
|
typedef struct ip_netif ip_netif_t; |
50,6 → 54,9 |
typedef struct ip_proto ip_proto_t; |
typedef ip_proto_t * ip_proto_ref; |
|
typedef struct ip_route ip_route_t; |
typedef ip_route_t * ip_route_ref; |
|
typedef struct ip_globals ip_globals_t; |
|
DEVICE_MAP_DECLARE( ip_netifs, ip_netif_t ) |
56,32 → 63,57 |
|
INT_MAP_DECLARE( ip_protos, ip_proto_t ) |
|
GENERIC_FIELD_DECLARE( ip_routes, ip_route_t ) |
|
struct ip_netif{ |
device_id_t device_id; |
services_t service; |
int phone; |
module_ref arp; |
int ipv; |
int dhcp; |
in_addr_t address; |
in_addr_t netmask; |
in_addr_t gateway; |
device_state_t state; |
in_addr_t broadcast; |
in_addr_t dns1; |
in_addr_t dns2; |
// TODO modules |
ip_routes_t routes; |
/** Reserved packet prefix length. |
*/ |
size_t prefix; |
/** Maximal packet content length. |
*/ |
size_t content; |
/** Reserved packet suffix length. |
*/ |
size_t suffix; |
/** Packet address length. |
* The hardware address length is used. |
*/ |
size_t addr_len; |
}; |
|
struct ip_proto{ |
int protocol; |
services_t service; |
int phone; |
tl_received_msg_t tl_received_msg; |
}; |
|
struct ip_route{ |
in_addr_t address; |
in_addr_t netmask; |
in_addr_t gateway; |
ip_netif_ref netif; |
}; |
|
struct ip_globals{ |
int net_phone; |
int net_phone; |
ip_netifs_t netifs; |
ip_protos_t protos; |
ip_route_t gateway; |
modules_t modules; |
async_client_conn_t client_connection; |
uint16_t packet_counter; |
}; |
|
#endif |