xref: /illumos-gate/usr/src/man/man3socket/icmp6_filter.3socket (revision 763f1f5f97e4c16840af2ced98915f0ed0f46616)
te
Copyright 2003 AT&T
Copyright (C) 2003, Sun Microsystems, Inc. All Rights Reserved
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
ICMP6_FILTER 3SOCKET "Dec 13, 2003"
NAME
icmp6_filter - Variable allocation datatype
SYNOPSIS

void ICMP6_FILTER_SETPASSALL (struct icmp6_filter *);

void ICMP6_FILTER_SETBLOCKALL (struct icmp6_filter *);

void ICMP6_FILTER_SETPASS (int, struct icmp6_filter *);

void ICMP6_FILTER_SETBLOCK (int, struct icmp6_filter *);

int ICMP6_FILTER_WILLPASS (int, const struct icmp6_filter *);

int ICMP6_FILTER_WILLBLOCK (int, const struct icmp6_filter *);
DESCRIPTION

The icmp6_filter structure is similar to the fd_set datatype used with the select() function in the sockets API. The icmp6_filter structure is an opaque datatype and the application should not care how it is implemented. The application allocates a variable of this type, then passes a pointer to it. Next it passes a pointer to a variable of this type to getsockopt() and setsockopt() and operates on a variable of this type using the six macros defined below.

The SETPASSALL and SETBLOCKALL functions enable you to specify that all ICMPv6 messages are passed to the application or that all ICMPv6 messages are blocked from being passed.

The SETPASS and SETBLOCKALL functions enable you to specify that messages of a given ICMPv6 type should be passed to the application or not passed to the application (blocked).

The WILLPASS and WILLBLOCK return true or false depending whether the specified message type is passed to the application or blocked from being passed to the application by the filter pointed to by the second argument.

The pointer argument to all six icmp6_filter macros is a pointer to a filter that is modified by the first four macros and is examined by ICMP6_FILTER_SETBLOCK and ICMP6_FILTER_WILLBLOCK. The first argument, (an integer), to the ICMP6_FILTER_BLOCKALL, ICMP6_FILTER_SETPASS, ICMP6_FILTER_SETBLOCK, and ICMP6_FILTER_WILLBLOCK macros is an ICMPv6 message type, between 0 and 255.

The current filter is fetched and stored using getsockopt() and setsockopt() with a level of IPPROTO_ICMPV6 and an option name of ICMP6_FILTER.

ATTRIBUTES

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE ATTRIBUTE VALUE
MT-Level Safe
Interface Stability Standard