Changes in uspace/srv/net/il/ip/ip.h [88a1bb9:e526f08] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/net/il/ip/ip.h
r88a1bb9 re526f08 28 28 29 29 /** @addtogroup ip 30 * @{30 * @{ 31 31 */ 32 32 33 33 /** @file 34 * IP module.35 */ 36 37 #ifndef NET_IP_H_38 #define NET_IP_H_34 * IP module. 35 */ 36 37 #ifndef __NET_IP_H__ 38 #define __NET_IP_H__ 39 39 40 40 #include <fibril_synch.h> … … 50 50 51 51 /** Type definition of the IP global data. 52 * @see ip_globals53 */ 54 typedef struct ip_globals 52 * @see ip_globals 53 */ 54 typedef struct ip_globals ip_globals_t; 55 55 56 56 /** Type definition of the IP network interface specific data. 57 * @see ip_netif 58 */ 59 typedef struct ip_netif ip_netif_t; 57 * @see ip_netif 58 */ 59 typedef struct ip_netif ip_netif_t; 60 61 /** Type definition of the IP network interface specific data pointer. 62 * @see ip_netif 63 */ 64 typedef ip_netif_t * ip_netif_ref; 60 65 61 66 /** Type definition of the IP protocol specific data. 62 * @see ip_proto 63 */ 64 typedef struct ip_proto ip_proto_t; 67 * @see ip_proto 68 */ 69 typedef struct ip_proto ip_proto_t; 70 71 /** Type definition of the IP protocol specific data pointer. 72 * @see ip_proto 73 */ 74 typedef ip_proto_t * ip_proto_ref; 65 75 66 76 /** Type definition of the IP route specific data. … … 69 79 typedef struct ip_route ip_route_t; 70 80 81 /** Type definition of the IP route specific data pointer. 82 * @see ip_route 83 */ 84 typedef ip_route_t * ip_route_ref; 85 71 86 /** IP network interfaces. 72 * Maps devices to the IP network interface specific data.73 * @see device.h74 */ 75 DEVICE_MAP_DECLARE(ip_netifs, ip_netif_t) ;87 * Maps devices to the IP network interface specific data. 88 * @see device.h 89 */ 90 DEVICE_MAP_DECLARE(ip_netifs, ip_netif_t) 76 91 77 92 /** IP registered protocols. 78 * Maps protocols to the IP protocol specific data.79 * @see int_map.h80 */ 81 INT_MAP_DECLARE(ip_protos, ip_proto_t) ;93 * Maps protocols to the IP protocol specific data. 94 * @see int_map.h 95 */ 96 INT_MAP_DECLARE(ip_protos, ip_proto_t) 82 97 83 98 /** IP routing table. 84 * @see generic_field.h 85 */ 86 GENERIC_FIELD_DECLARE(ip_routes, ip_route_t); 87 88 /** IP network interface specific data. */ 89 struct ip_netif { 90 /** ARP module. Assigned if using ARP. */ 91 module_t *arp; 92 /** Broadcast address. */ 99 * @see generic_field.h 100 */ 101 GENERIC_FIELD_DECLARE(ip_routes, ip_route_t) 102 103 /** IP network interface specific data. 104 */ 105 struct ip_netif{ 106 /** ARP module. 107 * Assigned if using ARP. 108 */ 109 module_ref arp; 110 /** Broadcast address. 111 */ 93 112 in_addr_t broadcast; 94 /** Device identifier. */ 113 /** Device identifier. 114 */ 95 115 device_id_t device_id; 96 /** Indicates whether using DHCP. */ 116 /** Indicates whether using DHCP. 117 */ 97 118 int dhcp; 98 /** IP version. */ 119 /** IP version. 120 */ 99 121 int ipv; 100 /** Packet dimension. */ 122 /** Packet dimension. 123 */ 101 124 packet_dimension_t packet_dimension; 102 /** Netif module phone. */ 125 /** Netif module phone. 126 */ 103 127 int phone; 104 /** Routing table. */ 128 /** Routing table. 129 */ 105 130 ip_routes_t routes; 106 /** Indicates whether IP routing is enabled. */ 131 /** Indicates whether IP routing is enabled. 132 */ 107 133 int routing; 108 /** Netif module service. */ 134 /** Netif module service. 135 */ 109 136 services_t service; 110 /** Device state. */ 137 /** Device state. 138 */ 111 139 device_state_t state; 112 140 }; 113 141 114 /** IP protocol specific data. */ 115 struct ip_proto { 116 /** Protocol module phone. */ 142 /** IP protocol specific data. 143 */ 144 struct ip_proto{ 145 /** Protocol module phone. 146 */ 117 147 int phone; 118 /** Protocol number. */ 148 /** Protocol number. 149 */ 119 150 int protocol; 120 /** Protocol packet receiving function. */ 151 /** Protocol packet receiving function. 152 */ 121 153 tl_received_msg_t received_msg; 122 /** Protocol module service. */ 154 /** Protocol module service. 155 */ 123 156 services_t service; 124 157 }; 125 158 126 /** IP route specific data. */ 127 struct ip_route { 128 /** Target address. */ 159 /** IP route specific data. 160 */ 161 struct ip_route{ 162 /** Target address. 163 */ 129 164 in_addr_t address; 130 /** Gateway. */ 165 /** Gateway. 166 */ 131 167 in_addr_t gateway; 132 /** Parent netif. */ 133 ip_netif_t *netif; 134 /** Target network mask. */ 168 /** Parent netif. 169 */ 170 ip_netif_ref netif; 171 /** Target network mask. 172 */ 135 173 in_addr_t netmask; 136 174 }; 137 175 138 /** IP global data. */ 139 struct ip_globals { 140 /** Default client connection function for support modules. */ 176 /** IP global data. 177 */ 178 struct ip_globals{ 179 /** Default client connection function for support modules. 180 */ 141 181 async_client_conn_t client_connection; 142 /** Default gateway. */ 182 /** Default gateway. 183 */ 143 184 ip_route_t gateway; 144 /** Safety lock. */ 185 /** Safety lock. 186 */ 145 187 fibril_rwlock_t lock; 146 /** Known support modules. */ 188 /** Known support modules. 189 */ 147 190 modules_t modules; 148 /** Networking module phone. */ 191 /** Networking module phone. 192 */ 149 193 int net_phone; 150 /** Registered network interfaces. */ 194 /** Registered network interfaces. 195 */ 151 196 ip_netifs_t netifs; 152 /** Netifs safeyt lock. */ 197 /** Netifs safeyt lock. 198 */ 153 199 fibril_rwlock_t netifs_lock; 154 /** Packet counter. */ 200 /** Packet counter. 201 */ 155 202 uint16_t packet_counter; 156 /** Registered protocols. */ 203 /** Registered protocols. 204 */ 157 205 ip_protos_t protos; 158 /** Protocols safety lock. */ 206 /** Protocols safety lock. 207 */ 159 208 fibril_rwlock_t protos_lock; 160 209 };
Note:
See TracChangeset
for help on using the changeset viewer.