xref: /netbsd-src/external/bsd/ipf/dist/lib/icmptypes.c (revision 13885a665959c62f13a82b3caedf986eaa17aa31)
1 /*	$NetBSD: icmptypes.c,v 1.2 2012/07/22 14:27:36 darrenr Exp $	*/
2 
3 /*
4  * Copyright (C) 2012 by Darren Reed.
5  *
6  * See the IPFILTER.LICENCE file for details on licencing.
7  *
8  * Id: icmptypes.c,v 1.1.1.2 2012/07/22 13:44:38 darrenr Exp $
9  */
10 #include "ipf.h"
11 
12 #ifndef USE_INET6
13 # undef		ICMP6_ECHO_REQUEST
14 # define	ICMP6_ECHO_REQUEST	0
15 # undef		ICMP6_ECHO_REPLY
16 # define	ICMP6_ECHO_REPLY	0
17 # undef		ICMP6_NI_QUERY
18 # define	ICMP6_NI_QUERY		0
19 # undef		ICMP6_NI_REPLY
20 # define	ICMP6_NI_REPLY		0
21 # undef		ICMP6_PARAM_PROB
22 # define	ICMP6_PARAM_PROB	0
23 # undef		ND_ROUTER_ADVERT
24 # define	ND_ROUTER_ADVERT	0
25 # undef		ND_ROUTER_SOLICIT
26 # define	ND_ROUTER_SOLICIT	0
27 # undef		ICMP6_TIME_EXCEEDED
28 # define	ICMP6_TIME_EXCEEDED	0
29 # undef		ICMP6_DST_UNREACH
30 # define	ICMP6_DST_UNREACH	0
31 # undef		ICMP6_PACKET_TOO_BIG
32 # define	ICMP6_PACKET_TOO_BIG	0
33 # undef		MLD_LISTENER_QUERY
34 # define	MLD_LISTENER_QUERY	0
35 # undef		MLD_LISTENER_REPORT
36 # define	MLD_LISTENER_REPORT	0
37 # undef		MLD_LISTENER_DONE
38 # define	MLD_LISTENER_DONE	0
39 # undef		ICMP6_MEMBERSHIP_QUERY
40 # define	ICMP6_MEMBERSHIP_QUERY	0
41 # undef		ICMP6_MEMBERSHIP_REPORT
42 # define	ICMP6_MEMBERSHIP_REPORT	0
43 # undef		ICMP6_MEMBERSHIP_REDUCTION
44 # define	ICMP6_MEMBERSHIP_REDUCTION	0
45 # undef		ND_NEIGHBOR_ADVERT
46 # define	ND_NEIGHBOR_ADVERT	0
47 # undef		ND_NEIGHBOR_SOLICIT
48 # define	ND_NEIGHBOR_SOLICIT	0
49 # undef		ICMP6_ROUTER_RENUMBERING
50 # define	ICMP6_ROUTER_RENUMBERING	0
51 # undef		ICMP6_WRUREQUEST
52 # define	ICMP6_WRUREQUEST	0
53 # undef		ICMP6_WRUREPLY
54 # define	ICMP6_WRUREPLY		0
55 # undef		ICMP6_FQDN_QUERY
56 # define	ICMP6_FQDN_QUERY	0
57 # undef		ICMP6_FQDN_REPLY
58 # define	ICMP6_FQDN_REPLY	0
59 #else
60 # if !defined(MLD_LISTENER_QUERY)
61 #  define	MLD_LISTENER_QUERY	130
62 # endif
63 # if !defined(MLD_LISTENER_REPORT)
64 #  define	MLD_LISTENER_REPORT	131
65 # endif
66 # if !defined(MLD_LISTENER_DONE)
67 #  define	MLD_LISTENER_DONE	132
68 # endif
69 # if defined(MLD_LISTENER_REDUCTION) && !defined(MLD_LISTENER_DONE)
70 #  define	MLD_LISTENER_DONE	MLD_LISTENER_REDUCTION
71 # endif
72 #endif
73 
74 icmptype_t icmptypelist[] = {
75 	{ "echo",	ICMP_ECHO,		ICMP6_ECHO_REQUEST },
76 	{ "echorep",	ICMP_ECHOREPLY,		ICMP6_ECHO_REPLY },
77 	{ "fqdnquery",	-1,			ICMP6_FQDN_QUERY },
78 	{ "fqdnreply",	-1,			ICMP6_FQDN_REPLY },
79 	{ "infoqry",	-1,			ICMP6_NI_QUERY },
80 	{ "inforeq",	ICMP_IREQ,		ICMP6_NI_QUERY },
81 	{ "inforep",	ICMP_IREQREPLY,		ICMP6_NI_REPLY },
82 	{ "listendone",	-1,			MLD_LISTENER_DONE },
83 	{ "listenqry",	-1,			MLD_LISTENER_QUERY },
84 	{ "listenrep",	-1,			MLD_LISTENER_REPORT },
85 	{ "maskrep",	ICMP_MASKREPLY,		-1 },
86 	{ "maskreq",	ICMP_MASKREQ,		-1 },
87 	{ "memberqry",	-1,			ICMP6_MEMBERSHIP_QUERY },
88 	{ "memberred",	-1,			ICMP6_MEMBERSHIP_REDUCTION },
89 	{ "memberreply",-1,			ICMP6_MEMBERSHIP_REPORT },
90 	{ "neighadvert",	-1,		ND_NEIGHBOR_ADVERT },
91 	{ "neighborsol",	-1,		ND_NEIGHBOR_SOLICIT },
92 	{ "neighborsolicit",	-1,		ND_NEIGHBOR_SOLICIT },
93 	{ "paramprob",	ICMP_PARAMPROB,		ICMP6_PARAM_PROB },
94 	{ "redir",	ICMP_REDIRECT,		ND_REDIRECT },
95 	{ "renumber",	-1,			ICMP6_ROUTER_RENUMBERING },
96 	{ "routerad",	ICMP_ROUTERADVERT,	ND_ROUTER_ADVERT },
97 	{ "routeradvert",ICMP_ROUTERADVERT,	ND_ROUTER_ADVERT },
98 	{ "routersol",	ICMP_ROUTERSOLICIT,	ND_ROUTER_SOLICIT },
99 	{ "routersolcit",ICMP_ROUTERSOLICIT,	ND_ROUTER_SOLICIT },
100 	{ "squench",	ICMP_SOURCEQUENCH,	-1 },
101 	{ "timest",	ICMP_TSTAMP,		-1 },
102 	{ "timestrep",	ICMP_TSTAMPREPLY,	-1 },
103 	{ "timex",	ICMP_TIMXCEED,		ICMP6_TIME_EXCEEDED },
104 	{ "toobig",	-1,			ICMP6_PACKET_TOO_BIG },
105 	{ "unreach",	ICMP_UNREACH,		ICMP6_DST_UNREACH },
106 	{ "whorep",	-1,			ICMP6_WRUREPLY },
107 	{ "whoreq",	-1,			ICMP6_WRUREQUEST },
108 	{ NULL,		-1,			-1 }
109 };
110