Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 4504 → Rev 4505

/branches/network/uspace/srv/net/il/ip/ip.h
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