Subversion Repositories HelenOS

Rev

Rev 4351 | Rev 4558 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4351 Rev 4505
Line 36... Line 36...
36
 
36
 
37
#ifndef __NET_IP_H__
37
#ifndef __NET_IP_H__
38
#define __NET_IP_H__
38
#define __NET_IP_H__
39
 
39
 
40
#include <ipc/ipc.h>
40
#include <ipc/ipc.h>
-
 
41
#include <ipc/services.h>
41
 
42
 
42
#include "../../include/sockaddr.h"
43
#include "../../include/sockaddr.h"
43
#include "../../include/device.h"
44
#include "../../include/device.h"
-
 
45
#include "../../include/ip_interface.h"
44
 
46
 
-
 
47
#include "../../structures/int_map.h"
-
 
48
#include "../../structures/generic_field.h"
45
#include "../../structures/module_map.h"
49
#include "../../structures/module_map.h"
46
 
50
 
47
typedef struct ip_netif ip_netif_t;
51
typedef struct ip_netif ip_netif_t;
48
typedef ip_netif_t *    ip_netif_ref;
52
typedef ip_netif_t *    ip_netif_ref;
49
 
53
 
50
typedef struct ip_proto ip_proto_t;
54
typedef struct ip_proto ip_proto_t;
51
typedef ip_proto_t *    ip_proto_ref;
55
typedef ip_proto_t *    ip_proto_ref;
52
 
56
 
-
 
57
typedef struct ip_route ip_route_t;
-
 
58
typedef ip_route_t *    ip_route_ref;
-
 
59
 
53
typedef struct ip_globals   ip_globals_t;
60
typedef struct ip_globals   ip_globals_t;
54
 
61
 
55
DEVICE_MAP_DECLARE( ip_netifs, ip_netif_t )
62
DEVICE_MAP_DECLARE( ip_netifs, ip_netif_t )
56
 
63
 
57
INT_MAP_DECLARE( ip_protos, ip_proto_t )
64
INT_MAP_DECLARE( ip_protos, ip_proto_t )
58
 
65
 
-
 
66
GENERIC_FIELD_DECLARE( ip_routes, ip_route_t )
-
 
67
 
59
struct  ip_netif{
68
struct  ip_netif{
60
    device_id_t device_id;
69
    device_id_t device_id;
-
 
70
    services_t  service;
61
    int         phone;
71
    int         phone;
62
    module_ref  arp;
72
    module_ref  arp;
63
    int         ipv;
73
    int         ipv;
64
    int         dhcp;
74
    int         dhcp;
65
    in_addr_t   address;
-
 
66
    in_addr_t   netmask;
-
 
67
    in_addr_t   gateway;
75
    device_state_t  state;
68
    in_addr_t   broadcast;
76
    in_addr_t   broadcast;
69
    in_addr_t   dns1;
77
    in_addr_t   dns1;
70
    in_addr_t   dns2;
78
    in_addr_t   dns2;
71
    // TODO modules
79
    ip_routes_t routes;
-
 
80
    /** Reserved packet prefix length.
-
 
81
     */
-
 
82
    size_t              prefix;
-
 
83
    /** Maximal packet content length.
-
 
84
     */
-
 
85
    size_t              content;
-
 
86
    /** Reserved packet suffix length.
-
 
87
     */
-
 
88
    size_t              suffix;
-
 
89
    /** Packet address length.
-
 
90
     *  The hardware address length is used.
-
 
91
     */
-
 
92
    size_t              addr_len;
72
};
93
};
73
 
94
 
74
struct ip_proto{
95
struct ip_proto{
75
    int protocol;
96
    int protocol;
-
 
97
    services_t service;
76
    int phone;
98
    int phone;
-
 
99
    tl_received_msg_t tl_received_msg;
-
 
100
};
-
 
101
 
-
 
102
struct ip_route{
-
 
103
    in_addr_t       address;
-
 
104
    in_addr_t       netmask;
-
 
105
    in_addr_t       gateway;
-
 
106
    ip_netif_ref    netif;
77
};
107
};
78
 
108
 
79
struct  ip_globals{
109
struct  ip_globals{
80
    int     net_phone;
110
    int         net_phone;
81
    ip_netifs_t netifs;
111
    ip_netifs_t netifs;
82
    ip_protos_t protos;
112
    ip_protos_t protos;
-
 
113
    ip_route_t  gateway;
83
    modules_t   modules;
114
    modules_t   modules;
84
    async_client_conn_t client_connection;
115
    async_client_conn_t client_connection;
-
 
116
    uint16_t    packet_counter;
85
};
117
};
86
 
118
 
87
#endif
119
#endif
88
 
120
 
89
/** @}
121
/** @}