IP module interface. More...
#include <async.h>#include <ipc/services.h>#include "../include/device.h"#include "../structures/packet/packet.h"#include "in.h"#include "ip_codes.h"#include "socket_codes.h"

IP module interface | |
This interface is used by other modules. | |
| typedef void * | ip_pseudo_header_ref |
| Type definition of the internet pseudo header pointer. | |
| typedef int(* | tl_received_msg_t )(device_id_t device_id, packet_t packet, services_t receiver, services_t error) |
| The transport layer notification function type definition. | |
| int | ip_bind_service (services_t service, int protocol, services_t me, async_client_conn_t receiver, tl_received_msg_t tl_received_msg) |
| Creates bidirectional connection with the ip module service and registers the message receiver. | |
| int | ip_device_req (int ip_phone, device_id_t device_id, services_t netif) |
| Registers the new device. | |
| int | ip_send_msg (int ip_phone, device_id_t device_id, packet_t packet, services_t sender, services_t error) |
| Sends the packet queue. | |
| int | ip_connect_module (services_t service) |
| Connects to the IP module. | |
| int | ip_add_route_req (int ip_phone, device_id_t device_id, in_addr_t address, in_addr_t netmask, in_addr_t gateway) |
| Adds a route to the device routing table. | |
| int | ip_set_gateway_req (int ip_phone, device_id_t device_id, in_addr_t gateway) |
| Sets the default gateway. | |
| int | ip_packet_size_req (int ip_phone, device_id_t device_id, packet_dimension_ref packet_dimension) |
| Returns the device packet dimension for sending. | |
| int | ip_received_error_msg (int ip_phone, device_id_t device_id, packet_t packet, services_t target, services_t error) |
| Notifies the IP module about the received error notification packet. | |
| int | ip_get_route_req (int ip_phone, ip_protocol_t protocol, const struct sockaddr *destination, socklen_t addrlen, device_id_t *device_id, ip_pseudo_header_ref *header, size_t *headerlen) |
| Returns the device identifier and the IP pseudo header based on the destination address. | |
IP module interface.
The same interface is used for standalone remote modules as well as for bundle modules. The standalone remote modules have to be compiled with the ip_remote.c source file. The bundle modules with the ip.c source file.
1.6.1