1 .\" Copyright (c) 2008, Sun Microsystems, Inc. All Rights Reserved
2 .\" Copyright (c) 2017, Joyent, Inc.
3 .\" The contents of this file are subject to the terms of the
4 .\" Common Development and Distribution License (the "License").
5 .\" You may not use this file except in compliance with the License.
6 .\"
7 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8 .\" or http://www.opensolaris.org/os/licensing.
9 .\" See the License for the specific language governing permissions
10 .\" and limitations under the License.
11 .\"
12 .\" When distributing Covered Code, include this CDDL HEADER in each
13 .\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14 .\" If applicable, add the following below this CDDL HEADER, with the
15 .\" fields enclosed by brackets "[]" replaced with your own identifying
16 .\" information: Portions Copyright [yyyy] [name of copyright owner]
17 .Dd October 23, 2017
18 .Dt IPNAT 7I
19 .Os
20 .Sh NAME
21 .Nm ipnat
22 .Nd IP Filter/NAT module interface
23 .Sh DESCRIPTION
24 The
25 .Sy ipnat
26 device provides interfaction with the NAT features of the Solaris IPFilter.
27 .Sh APPLICATION PROGRAMMING INTERFACE
28 The NAT features programming model is a component of the Solaris IP Filter and
29 is accessed via the NAT device file
30 .Pa /dev/ipnat .
31 Opening the device for
32 reading or writing determines which ioctl calls can be successfully made.
33 .Sh IOCTLS
34 The caller must construct a
35 .Vt ipfobj
36 structure when issuing a
37 .Sy SIOCGNATL
38 or
39 SIOCSTPUT
40 ioctl.
41 The
42 .Vt ipfobj
43 structure is then passed
44 to the ioctl call and is filled out with
45 .Fa ipfo_type
46 set to
47 .Dv IPFOBJ_ Ns value .
48 .Dv IPFOBJ_ Ns value
404 .It Er ENOMEM
405 More memory was allocated than the kernel can provide.
406 The call may also be returned if the application inserts a NAT entry that
407 exceeds the hash bucket chain's maximum length.
408 .It Er EFAULT
409 The calling process specified an invalid pointer in the ipfobj structure.
410 .It Er EINVAL
411 The calling process detected a parameter or field set to an unacceptable value.
412 .It Er EEXIST
413 The calling process, via
414 .Dv SIOCSTPUT ,
415 attempted to add a NAT entry that already exists in the NAT table.
416 .It Er ESRCH
417 The calling process called
418 .Dv SIOCSTPUT
419 before setting the
420 .Dv SI_NEWFR
421 flag and providing a pointer in the
422 .Fa nat_fr
423 field that cannot be found in the current rule set.
424 .It Er EACESS
425 The calling process issued a
426 .Dv SIOCSTPUT
427 before issuing a
428 .Dv SIOCSTLCK .
429 .El
430 .Sh INTERFACE STABILITY
431 Committed
432 .Sh SEE ALSO
433 .Xr ipfs 1M ,
434 .Xr ipnat 1M ,
435 .Xr ioctl 2 ,
436 .Xr attributes 5
|
1 .\" Copyright (c) 2008, Sun Microsystems, Inc. All Rights Reserved
2 .\" Copyright (c) 2017, Joyent, Inc.
3 .\" The contents of this file are subject to the terms of the
4 .\" Common Development and Distribution License (the "License").
5 .\" You may not use this file except in compliance with the License.
6 .\"
7 .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8 .\" or http://www.opensolaris.org/os/licensing.
9 .\" See the License for the specific language governing permissions
10 .\" and limitations under the License.
11 .\"
12 .\" When distributing Covered Code, include this CDDL HEADER in each
13 .\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14 .\" If applicable, add the following below this CDDL HEADER, with the
15 .\" fields enclosed by brackets "[]" replaced with your own identifying
16 .\" information: Portions Copyright [yyyy] [name of copyright owner]
17 .Dd February 17, 2020
18 .Dt IPNAT 7I
19 .Os
20 .Sh NAME
21 .Nm ipnat
22 .Nd IP Filter/NAT module interface
23 .Sh DESCRIPTION
24 The
25 .Sy ipnat
26 device provides interaction with the NAT features of the illumos IP Filter.
27 .Sh APPLICATION PROGRAMMING INTERFACE
28 The NAT features programming model is a component of the illumos IP Filter and
29 is accessed via the NAT device file
30 .Pa /dev/ipnat .
31 Opening the device for
32 reading or writing determines which ioctl calls can be successfully made.
33 .Sh IOCTLS
34 The caller must construct a
35 .Vt ipfobj
36 structure when issuing a
37 .Sy SIOCGNATL
38 or
39 SIOCSTPUT
40 ioctl.
41 The
42 .Vt ipfobj
43 structure is then passed
44 to the ioctl call and is filled out with
45 .Fa ipfo_type
46 set to
47 .Dv IPFOBJ_ Ns value .
48 .Dv IPFOBJ_ Ns value
404 .It Er ENOMEM
405 More memory was allocated than the kernel can provide.
406 The call may also be returned if the application inserts a NAT entry that
407 exceeds the hash bucket chain's maximum length.
408 .It Er EFAULT
409 The calling process specified an invalid pointer in the ipfobj structure.
410 .It Er EINVAL
411 The calling process detected a parameter or field set to an unacceptable value.
412 .It Er EEXIST
413 The calling process, via
414 .Dv SIOCSTPUT ,
415 attempted to add a NAT entry that already exists in the NAT table.
416 .It Er ESRCH
417 The calling process called
418 .Dv SIOCSTPUT
419 before setting the
420 .Dv SI_NEWFR
421 flag and providing a pointer in the
422 .Fa nat_fr
423 field that cannot be found in the current rule set.
424 .It Er EACCES
425 The calling process issued a
426 .Dv SIOCSTPUT
427 before issuing a
428 .Dv SIOCSTLCK .
429 .El
430 .Sh INTERFACE STABILITY
431 Committed
432 .Sh SEE ALSO
433 .Xr ipfs 1M ,
434 .Xr ipnat 1M ,
435 .Xr ioctl 2 ,
436 .Xr attributes 5
|