aboutsummaryrefslogtreecommitdiff
path: root/sbin/ipf/libipf/icmptypes.c
diff options
context:
space:
mode:
Diffstat (limited to 'sbin/ipf/libipf/icmptypes.c')
-rw-r--r--sbin/ipf/libipf/icmptypes.c107
1 files changed, 107 insertions, 0 deletions
diff --git a/sbin/ipf/libipf/icmptypes.c b/sbin/ipf/libipf/icmptypes.c
new file mode 100644
index 000000000000..c1123ff5e04d
--- /dev/null
+++ b/sbin/ipf/libipf/icmptypes.c
@@ -0,0 +1,107 @@
+/*
+ * Copyright (C) 2012 by Darren Reed.
+ *
+ * See the IPFILTER.LICENCE file for details on licencing.
+ *
+ * $Id$
+ */
+#include "ipf.h"
+
+#ifndef USE_INET6
+# undef ICMP6_ECHO_REQUEST
+# define ICMP6_ECHO_REQUEST 0
+# undef ICMP6_ECHO_REPLY
+# define ICMP6_ECHO_REPLY 0
+# undef ICMP6_NI_QUERY
+# define ICMP6_NI_QUERY 0
+# undef ICMP6_NI_REPLY
+# define ICMP6_NI_REPLY 0
+# undef ICMP6_PARAM_PROB
+# define ICMP6_PARAM_PROB 0
+# undef ND_ROUTER_ADVERT
+# define ND_ROUTER_ADVERT 0
+# undef ND_ROUTER_SOLICIT
+# define ND_ROUTER_SOLICIT 0
+# undef ICMP6_TIME_EXCEEDED
+# define ICMP6_TIME_EXCEEDED 0
+# undef ICMP6_DST_UNREACH
+# define ICMP6_DST_UNREACH 0
+# undef ICMP6_PACKET_TOO_BIG
+# define ICMP6_PACKET_TOO_BIG 0
+# undef MLD_LISTENER_QUERY
+# define MLD_LISTENER_QUERY 0
+# undef MLD_LISTENER_REPORT
+# define MLD_LISTENER_REPORT 0
+# undef MLD_LISTENER_DONE
+# define MLD_LISTENER_DONE 0
+# undef ICMP6_MEMBERSHIP_QUERY
+# define ICMP6_MEMBERSHIP_QUERY 0
+# undef ICMP6_MEMBERSHIP_REPORT
+# define ICMP6_MEMBERSHIP_REPORT 0
+# undef ICMP6_MEMBERSHIP_REDUCTION
+# define ICMP6_MEMBERSHIP_REDUCTION 0
+# undef ND_NEIGHBOR_ADVERT
+# define ND_NEIGHBOR_ADVERT 0
+# undef ND_NEIGHBOR_SOLICIT
+# define ND_NEIGHBOR_SOLICIT 0
+# undef ICMP6_ROUTER_RENUMBERING
+# define ICMP6_ROUTER_RENUMBERING 0
+# undef ICMP6_WRUREQUEST
+# define ICMP6_WRUREQUEST 0
+# undef ICMP6_WRUREPLY
+# define ICMP6_WRUREPLY 0
+# undef ICMP6_FQDN_QUERY
+# define ICMP6_FQDN_QUERY 0
+# undef ICMP6_FQDN_REPLY
+# define ICMP6_FQDN_REPLY 0
+#else
+# if !defined(MLD_LISTENER_QUERY)
+# define MLD_LISTENER_QUERY 130
+# endif
+# if !defined(MLD_LISTENER_REPORT)
+# define MLD_LISTENER_REPORT 131
+# endif
+# if !defined(MLD_LISTENER_DONE)
+# define MLD_LISTENER_DONE 132
+# endif
+# if defined(MLD_LISTENER_REDUCTION) && !defined(MLD_LISTENER_DONE)
+# define MLD_LISTENER_DONE MLD_LISTENER_REDUCTION
+# endif
+#endif
+
+icmptype_t icmptypelist[] = {
+ { "echo", ICMP_ECHO, ICMP6_ECHO_REQUEST },
+ { "echorep", ICMP_ECHOREPLY, ICMP6_ECHO_REPLY },
+ { "fqdnquery", -1, ICMP6_FQDN_QUERY },
+ { "fqdnreply", -1, ICMP6_FQDN_REPLY },
+ { "infoqry", -1, ICMP6_NI_QUERY },
+ { "inforeq", ICMP_IREQ, ICMP6_NI_QUERY },
+ { "inforep", ICMP_IREQREPLY, ICMP6_NI_REPLY },
+ { "listendone", -1, MLD_LISTENER_DONE },
+ { "listenqry", -1, MLD_LISTENER_QUERY },
+ { "listenrep", -1, MLD_LISTENER_REPORT },
+ { "maskrep", ICMP_MASKREPLY, -1 },
+ { "maskreq", ICMP_MASKREQ, -1 },
+ { "memberqry", -1, ICMP6_MEMBERSHIP_QUERY },
+ { "memberred", -1, ICMP6_MEMBERSHIP_REDUCTION },
+ { "memberreply",-1, ICMP6_MEMBERSHIP_REPORT },
+ { "neighadvert", -1, ND_NEIGHBOR_ADVERT },
+ { "neighborsol", -1, ND_NEIGHBOR_SOLICIT },
+ { "neighborsolicit", -1, ND_NEIGHBOR_SOLICIT },
+ { "paramprob", ICMP_PARAMPROB, ICMP6_PARAM_PROB },
+ { "redir", ICMP_REDIRECT, ND_REDIRECT },
+ { "renumber", -1, ICMP6_ROUTER_RENUMBERING },
+ { "routerad", ICMP_ROUTERADVERT, ND_ROUTER_ADVERT },
+ { "routeradvert",ICMP_ROUTERADVERT, ND_ROUTER_ADVERT },
+ { "routersol", ICMP_ROUTERSOLICIT, ND_ROUTER_SOLICIT },
+ { "routersolcit",ICMP_ROUTERSOLICIT, ND_ROUTER_SOLICIT },
+ { "squench", ICMP_SOURCEQUENCH, -1 },
+ { "timest", ICMP_TSTAMP, -1 },
+ { "timestrep", ICMP_TSTAMPREPLY, -1 },
+ { "timex", ICMP_TIMXCEED, ICMP6_TIME_EXCEEDED },
+ { "toobig", -1, ICMP6_PACKET_TOO_BIG },
+ { "unreach", ICMP_UNREACH, ICMP6_DST_UNREACH },
+ { "whorep", -1, ICMP6_WRUREPLY },
+ { "whoreq", -1, ICMP6_WRUREQUEST },
+ { NULL, -1, -1 }
+};