Home | History | Annotate | Line # | Download | only in lib
      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