/**
 * @file icmp-light.h
 *
 * @brief Internet Control Message Protocol (ICMP) - minimal implemenation (header).
 *
 * Copyright 2007-2008, Freie Universitaet Berlin. All rights reserved.
 * Please refer to the COPYING file for detailed licensing information.
 *
 * @author Georg Wittenburg
 *
 * $Id: icmp-light.h 2685 2008-06-25 16:38:56Z wittenbu $
 */

#ifndef ICMP_LIGHT_H
#define ICMP_LIGHT_H

#include "../types.h"
#include "icmp-light_types.h"

// Interface to main module.
void ICMP_init();
void ICMP_start();
void ICMP_stop();
void ICMP_finalize();
void ICMP_recv(const packet_header_t* header, const void* payload);
bool ICMP_command(int argc, const char*const* argv);

// Interface provided by this module.
void ICMP_send_nop(C_addr_t to, ttl_t ttl);
void ICMP_send_echo_request(C_addr_t to, ttl_t ttl, callback_function_t function, ICMP_echo_request_result_t* echo_request_result);

#endif	// ICMP_LIGHT_H
