git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4006 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			100 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
| 
 | |
| Copyright (c) 2005 - 2006, Intel Corporation
 | |
| All rights reserved. This program and the accompanying materials
 | |
| are licensed and made available under the terms and conditions of the BSD License
 | |
| which accompanies this distribution.  The full text of the license may be found at
 | |
| http://opensource.org/licenses/bsd-license.php
 | |
| 
 | |
| THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
 | |
| WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 | |
| 
 | |
| 
 | |
| Module Name:
 | |
| 
 | |
|   Ip4Icmp.h
 | |
| 
 | |
| Abstract:
 | |
| 
 | |
|   Header file for ICMP protocol.
 | |
| 
 | |
| 
 | |
| **/
 | |
| 
 | |
| #ifndef __EFI_IP4_ICMP_H__
 | |
| #define __EFI_IP4_ICMP_H__
 | |
| 
 | |
| enum {
 | |
|   //
 | |
|   // ICMP type definations
 | |
|   //
 | |
|   ICMP_ECHO_REPLY           = 0,
 | |
|   ICMP_DEST_UNREACHABLE     = 3,
 | |
|   ICMP_SOURCE_QUENCH        = 4,
 | |
|   ICMP_REDIRECT             = 5,
 | |
|   ICMP_ECHO_REQUEST         = 8,
 | |
|   ICMP_TIME_EXCEEDED        = 11,
 | |
|   ICMP_PARAMETER_PROBLEM    = 12,
 | |
|   ICMP_TIMESTAMP            = 13,
 | |
|   ICMP_INFO_REQUEST         = 15,
 | |
|   ICMP_INFO_REPLY           = 16,
 | |
|   ICMP_TYPE_MAX             = ICMP_INFO_REPLY,
 | |
| 
 | |
|   ICMP_DEFAULT_CODE         = 0,
 | |
| 
 | |
|   //
 | |
|   // ICMP code definations for ICMP_DEST_UNREACHABLE
 | |
|   //
 | |
|   ICMP_NET_UNREACHABLE      = 0,
 | |
|   ICMP_HOST_UNREACHABLE     = 1,
 | |
|   ICMP_PROTO_UNREACHABLE    = 2,  // Host may generate
 | |
|   ICMP_PORT_UNREACHABLE     = 3,  // Host may generate
 | |
|   ICMP_FRAGMENT_FAILED      = 4,
 | |
|   ICMP_SOURCEROUTE_FAILED   = 5,  // Host may generate
 | |
|   ICMP_NET_UNKNOWN          = 6,
 | |
|   ICMP_HOST_UNKNOWN         = 7,
 | |
|   ICMP_SOURCE_ISOLATED      = 8,
 | |
|   ICMP_NET_PROHIBITED       = 9,
 | |
|   ICMP_HOST_PROHIBITED      = 10,
 | |
|   ICMP_NET_UNREACHABLE_TOS  = 11,
 | |
|   ICMP_HOST_UNREACHABLE_TOS = 12,
 | |
| 
 | |
|   //
 | |
|   // ICMP code definations for ICMP_TIME_EXCEEDED
 | |
|   //
 | |
|   ICMP_TIMEOUT_IN_TRANSIT   = 0,
 | |
|   ICMp_TIMEOUT_REASSEMBLE   = 1,  // Host may generate
 | |
| 
 | |
|   //
 | |
|   // ICMP code definations for ICMP_TIME_EXCEEDED
 | |
|   //
 | |
|   ICMP_NET_REDIRECT         = 0,
 | |
|   ICMP_HOST_REDIRECT        = 1,
 | |
|   ICMP_NET_TOS_REDIRECT     = 2,
 | |
|   ICMP_HOST_TOS_REDIRECT    = 3,
 | |
| 
 | |
|   //
 | |
|   // ICMP message classes, each class of ICMP message shares
 | |
|   // a common message format. INVALID_MESSAGE is only a flag.
 | |
|   //
 | |
|   ICMP_INVALID_MESSAGE      = 0,
 | |
|   ICMP_ERROR_MESSAGE        = 1,
 | |
|   ICMP_QUERY_MESSAGE        = 2
 | |
| };
 | |
| 
 | |
| typedef struct {
 | |
|   UINT8                   IcmpType;
 | |
|   UINT8                   IcmpClass;
 | |
| } IP4_ICMP_CLASS;
 | |
| 
 | |
| extern IP4_ICMP_CLASS     mIcmpClass[];
 | |
| extern EFI_IP4_ICMP_TYPE  mIp4SupportedIcmp[];
 | |
| 
 | |
| EFI_STATUS
 | |
| Ip4IcmpHandle (
 | |
|   IN IP4_SERVICE          *IpSb,
 | |
|   IN IP4_HEAD             *Header,
 | |
|   IN NET_BUF              *Packet
 | |
|   );
 | |
| #endif
 |