26
26
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
/** @addtogroup net_il
29
/** @addtogroup libnet
34
* Internetwork layer module interface for the underlying network interface layer.
35
* This interface is always called by the remote modules.
34
* Internetwork layer module interface for the underlying network interface
35
* layer. This interface is always called by the remote modules.
38
#ifndef __NET_IL_INTERFACE_H__
39
#define __NET_IL_INTERFACE_H__
38
#ifndef LIBNET_IL_REMOTE_H_
39
#define LIBNET_IL_REMOTE_H_
43
41
#include <ipc/services.h>
42
#include <sys/types.h>
45
#include <net_messages.h>
46
#include <net_device.h>
47
#include <packet/packet.h>
48
#include <packet/packet_client.h>
49
#include <il_messages.h>
44
#include <net/device.h>
45
#include <net/packet.h>
51
47
/** @name Internetwork layer module interface
52
48
* This interface is used by other modules.
56
/** Notify the internetwork layer modules about the device state change.
58
* @param[in] il_phone The internetwork layer module phone used for
60
* @param[in] device_id The device identifier.
61
* @param[in] state The new device state.
62
* @param[in] target The target internetwork module service to be
65
* @return EOK on success.
68
static inline int il_device_state_msg(int il_phone, device_id_t device_id,
69
device_state_t state, services_t target)
71
return generic_device_state_msg_remote(il_phone, NET_IL_DEVICE_STATE,
72
device_id, state, target);
75
/** Notify the internetwork layer modules about the received packet/s.
77
* @param[in] il_phone The internetwork layer module phone used for
79
* @param[in] device_id The device identifier.
80
* @param[in] packet The received packet or the received packet queue.
81
* @param[in] target The target internetwork module service to be
84
* @return EOK on success.
87
inline static int il_received_msg(int il_phone, device_id_t device_id,
88
packet_t packet, services_t target)
90
return generic_received_msg_remote(il_phone, NET_IL_RECEIVED, device_id,
91
packet_get_id(packet), target, 0);
94
/** Notify the internetwork layer modules about the mtu change.
96
* @param[in] il_phone The internetwork layer module phone used for
98
* @param[in] device_id The device identifier.
99
* @param[in] mtu The new mtu value.
100
* @param[in] target The target internetwork module service to be
103
* @return EOK on success.
106
inline static int il_mtu_changed_msg(int il_phone, device_id_t device_id,
107
size_t mtu, services_t target)
109
return generic_device_state_msg_remote(il_phone, NET_IL_MTU_CHANGED,
110
device_id, (int) mtu, target);
52
extern int il_device_state_msg(int, device_id_t, device_state_t, services_t);
53
extern int il_received_msg(int, device_id_t, packet_t *, services_t);
54
extern int il_mtu_changed_msg(int, device_id_t, size_t, services_t);