root/src/add-ons/kernel/network/protocols/icmp/icmp.h
/*
 * Copyright 2006-2010, Haiku, Inc. All Rights Reserved.
 * Distributed under the terms of the MIT License.
 */
#ifndef ICMP_H
#define ICMP_H


// ICMP types

// RFC 792
#define ICMP_TYPE_ECHO_REPLY                            0
#define ICMP_TYPE_UNREACH                                       3
#define ICMP_TYPE_SOURCE_QUENCH                         4
#define ICMP_TYPE_REDIRECT                                      5
#define ICMP_TYPE_ECHO_REQUEST                          8
#define ICMP_TYPE_TIME_EXCEEDED                         11
#define ICMP_TYPE_PARAMETER_PROBLEM                     12
#define ICMP_TYPE_TIMESTAMP_REQUEST                     13
#define ICMP_TYPE_TIMESTAMP_REPLY                       14
#define ICMP_TYPE_INFO_REQUEST                          15
#define ICMP_TYPE_INFO_REPLY                            16
// RFC 950
#define ICMP_TYPE_ADDR_MASK_REQUEST                     17
#define ICMP_TYPE_ADDR_MASK_REPLY                       18


// ICMP codes

// ICMP_TYPE_TIME_EXCEEDED codes
#define ICMP_CODE_TIME_EXCEEDED_IN_TRANSIT      0
#define ICMP_CODE_REASSEMBLY_TIME_EXCEEDED      1

// ICMP_TYPE_PARAMETER_PROBLEM codes
#define ICMP_CODE_INVALID_PARAMETER                     0
#define ICMP_CODE_PARAMETER_MISSING                     1

// ICMP_TYPE_UNREACH codes
#define ICMP_CODE_UNREACH_NET                           0
#define ICMP_CODE_UNREACH_HOST                          1
#define ICMP_CODE_UNREACH_PROTOCOL                      2
#define ICMP_CODE_UNREACH_PORT                          3
#define ICMP_CODE_UNREACH_FRAGMENTATION_NEEDED          4
#define ICMP_CODE_UNREACH_SOURCE_ROUTE_FAIL                     5
#define ICMP_CODE_UNREACH_NET_UNKNOWN           6
#define ICMP_CODE_UNREACH_HOST_UNKNOWN          7
#define ICMP_CODE_UNREACH_ISOLATED                      8
#define ICMP_CODE_UNREACH_NET_PROHIBITED        9
#define ICMP_CODE_UNREACH_HOST_PROHIBITED       10
#define ICMP_CODE_UNREACH_NET_TOS                       11
#define ICMP_CODE_UNREACH_HOST_TOS                      12
#define ICMP_CODE_UNREACH_FILTER_PROHIBITED     13
#define ICMP_CODE_UNREACH_HOST_PRECEDENCE       14
#define ICMP_CODE_UNREACH_PRECEDENCE_CUTOFF     15


// ICMP_TYPE_REDIRECT codes
#define ICMP_CODE_REDIRECT_NET                          0
#define ICMP_CODE_REDIRECT_HOST                         1
#define ICMP_CODE_REDIRECT_TOS_NET                      2
#define ICMP_CODE_REDIRECT_TOS_HOST                     3


#endif  // ICMP_H