Prusa MINI Firmware overview
Main Page
Modules
Classes
Files
File List
File Members
icmp.h
Go to the documentation of this file.
1
/**
2
* @file
3
* ICMP protocol definitions
4
*/
5
6
/*
7
* Copyright (c) 2001-2004 Swedish Institute of Computer Science.
8
* All rights reserved.
9
*
10
* Redistribution and use in source and binary forms, with or without modification,
11
* are permitted provided that the following conditions are met:
12
*
13
* 1. Redistributions of source code must retain the above copyright notice,
14
* this list of conditions and the following disclaimer.
15
* 2. Redistributions in binary form must reproduce the above copyright notice,
16
* this list of conditions and the following disclaimer in the documentation
17
* and/or other materials provided with the distribution.
18
* 3. The name of the author may not be used to endorse or promote products
19
* derived from this software without specific prior written permission.
20
*
21
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
22
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
23
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
24
* SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
26
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
29
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
30
* OF SUCH DAMAGE.
31
*
32
* This file is part of the lwIP TCP/IP stack.
33
*
34
* Author: Adam Dunkels <adam@sics.se>
35
*
36
*/
37
#ifndef LWIP_HDR_PROT_ICMP_H
38
#define LWIP_HDR_PROT_ICMP_H
39
40
#include "
lwip/arch.h
"
41
42
#ifdef __cplusplus
43
extern
"C"
{
44
#endif
45
46
#define ICMP_ER 0
/* echo reply */
47
#define ICMP_DUR 3
/* destination unreachable */
48
#define ICMP_SQ 4
/* source quench */
49
#define ICMP_RD 5
/* redirect */
50
#define ICMP_ECHO 8
/* echo */
51
#define ICMP_TE 11
/* time exceeded */
52
#define ICMP_PP 12
/* parameter problem */
53
#define ICMP_TS 13
/* timestamp */
54
#define ICMP_TSR 14
/* timestamp reply */
55
#define ICMP_IRQ 15
/* information request */
56
#define ICMP_IR 16
/* information reply */
57
#define ICMP_AM 17
/* address mask request */
58
#define ICMP_AMR 18
/* address mask reply */
59
60
#ifdef PACK_STRUCT_USE_INCLUDES
61
# include "
arch/bpstruct.h
"
62
#endif
63
/** This is the standard ICMP header only that the u32_t data
64
* is split to two u16_t like ICMP echo needs it.
65
* This header is also used for other ICMP types that do not
66
* use the data part.
67
*/
68
PACK_STRUCT_BEGIN
69
struct
icmp_echo_hdr
{
70
PACK_STRUCT_FLD_8
(
u8_t
type
);
71
PACK_STRUCT_FLD_8
(
u8_t
code
);
72
PACK_STRUCT_FIELD
(
u16_t
chksum);
73
PACK_STRUCT_FIELD
(
u16_t
id
);
74
PACK_STRUCT_FIELD
(
u16_t
seqno);
75
}
PACK_STRUCT_STRUCT
;
76
PACK_STRUCT_END
77
#ifdef PACK_STRUCT_USE_INCLUDES
78
# include "
arch/epstruct.h
"
79
#endif
80
81
/* Compatibility defines, old versions used to combine type and code to an u16_t */
82
#define ICMPH_TYPE(hdr) ((hdr)->type)
83
#define ICMPH_CODE(hdr) ((hdr)->code)
84
#define ICMPH_TYPE_SET(hdr, t) ((hdr)->type = (t))
85
#define ICMPH_CODE_SET(hdr, c) ((hdr)->code = (c))
86
87
#ifdef __cplusplus
88
}
89
#endif
90
91
#endif
/* LWIP_HDR_PROT_ICMP_H */
PACK_STRUCT_BEGIN
#define PACK_STRUCT_BEGIN
Definition:
arch.h:242
bpstruct.h
u16_t
uint16_t u16_t
Definition:
arch.h:121
type
uint8_t type
Definition:
UsbCore.h:184
icmp_echo_hdr
Definition:
icmp.h:69
arch.h
u8_t
uint8_t u8_t
Definition:
arch.h:119
PACK_STRUCT_END
#define PACK_STRUCT_END
Definition:
arch.h:251
icmp_echo_hdr::PACK_STRUCT_FIELD
PACK_STRUCT_FIELD(u16_t chksum)
PACK_STRUCT_STRUCT
PACK_STRUCT_BEGIN struct icmp_echo_hdr PACK_STRUCT_STRUCT
code
Definition:
inftrees.h:24
epstruct.h
icmp_echo_hdr::PACK_STRUCT_FLD_8
PACK_STRUCT_FLD_8(u8_t type)
Prusa-Firmware-Buddy-Private1
lib
Middlewares
Third_Party
LwIP
src
include
lwip
prot
icmp.h
Generated by
1.8.16