1 /***************************************************************************
2  * Copyright (c) 2024 Microsoft Corporation
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the MIT License which is available at
6  * https://opensource.org/licenses/MIT.
7  *
8  * SPDX-License-Identifier: MIT
9  **************************************************************************/
10 
11 
12 /**************************************************************************/
13 /**************************************************************************/
14 /**                                                                       */
15 /** NetX Component                                                        */
16 /**                                                                       */
17 /**   Internet Control Message Protocol (ICMP)                            */
18 /**                                                                       */
19 /**************************************************************************/
20 /**************************************************************************/
21 
22 
23 /**************************************************************************/
24 /*                                                                        */
25 /*  COMPONENT DEFINITION                                   RELEASE        */
26 /*                                                                        */
27 /*    nx_icmp.h                                           PORTABLE C      */
28 /*                                                           6.1.9        */
29 /*  AUTHOR                                                                */
30 /*                                                                        */
31 /*    Yuxin Zhou, Microsoft Corporation                                   */
32 /*                                                                        */
33 /*  DESCRIPTION                                                           */
34 /*                                                                        */
35 /*    This file defines the NetX Internet Control Message Protocol (ICMP) */
36 /*    component, including all data types and external references.  It is */
37 /*    assumed that nx_api.h and nx_port.h have already been included.     */
38 /*                                                                        */
39 /*  RELEASE HISTORY                                                       */
40 /*                                                                        */
41 /*    DATE              NAME                      DESCRIPTION             */
42 /*                                                                        */
43 /*  05-19-2020     Yuxin Zhou               Initial Version 6.0           */
44 /*  09-30-2020     Yuxin Zhou               Modified comment(s),          */
45 /*                                            resulting in version 6.1    */
46 /*  10-15-2021     Yuxin Zhou               Modified comment(s), included */
47 /*                                            necessary header file,      */
48 /*                                            resulting in version 6.1.9  */
49 /*                                                                        */
50 /**************************************************************************/
51 
52 #ifndef NX_ICMP_H
53 #define NX_ICMP_H
54 
55 #include "nx_api.h"
56 
57 VOID _nx_icmp_packet_receive(NX_IP *ip_ptr, NX_PACKET *packet_ptr);
58 VOID _nx_icmp_cleanup(TX_THREAD *thread_ptr NX_CLEANUP_PARAMETER);
59 
60 UINT _nxd_icmp_ping(NX_IP *ip_ptr, NXD_ADDRESS *ip_address,
61                     CHAR *data_ptr, ULONG data_size,
62                     NX_PACKET **response_ptr, ULONG wait_option);
63 UINT _nxd_icmp_source_ping(NX_IP *ip_ptr, NXD_ADDRESS *ip_address,
64                            UINT address_index, CHAR *data_ptr, ULONG data_size,
65                            NX_PACKET **response_ptr, ULONG wait_option);
66 
67 UINT _nxd_icmp_enable(NX_IP *ip_ptr);
68 
69 UINT _nxde_icmp_ping(NX_IP *ip_ptr, NXD_ADDRESS *ip_address,
70                      CHAR *data_ptr, ULONG data_size,
71                      NX_PACKET **response_ptr, ULONG wait_option);
72 UINT _nxde_icmp_source_ping(NX_IP *ip_ptr, NXD_ADDRESS *ip_address,
73                             UINT address_index, CHAR *data_ptr, ULONG data_size,
74                             NX_PACKET **response_ptr, ULONG wait_option);
75 UINT _nxde_icmp_enable(NX_IP *ip_ptr);
76 
77 #include "nx_icmpv4.h"
78 #include "nx_icmpv6.h"
79 
80 #endif
81 
82