Deleted Added
full compact
pf.4 (150673) pf.4 (171172)
1.\" $OpenBSD: pf.4,v 1.54 2004/12/22 17:17:55 dhartmei Exp $
1.\" $OpenBSD: pf.4,v 1.58 2007/02/09 11:39:06 henning Exp $
2.\"
3.\" Copyright (C) 2001, Kjell Wooding. All rights reserved.
4.\"
5.\" Redistribution and use in source and binary forms, with or without
6.\" modification, are permitted provided that the following conditions
7.\" are met:
8.\" 1. Redistributions of source code must retain the above copyright
9.\" notice, this list of conditions and the following disclaimer.

--- 11 unchanged lines hidden (view full) ---

21.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27.\" SUCH DAMAGE.
28.\"
2.\"
3.\" Copyright (C) 2001, Kjell Wooding. All rights reserved.
4.\"
5.\" Redistribution and use in source and binary forms, with or without
6.\" modification, are permitted provided that the following conditions
7.\" are met:
8.\" 1. Redistributions of source code must retain the above copyright
9.\" notice, this list of conditions and the following disclaimer.

--- 11 unchanged lines hidden (view full) ---

21.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27.\" SUCH DAMAGE.
28.\"
29.\" $FreeBSD: head/contrib/pf/man/pf.4 150673 2005-09-28 08:11:15Z mlaier $
29.\" $FreeBSD: head/contrib/pf/man/pf.4 171172 2007-07-03 12:30:03Z mlaier $
30.\"
31.Dd February 7, 2005
32.Dt PF 4
33.Os
34.Sh NAME
35.Nm pf
36.Nd packet filter
37.Sh SYNOPSIS

--- 143 unchanged lines hidden (view full) ---

181.Va rule
182by its number
183.Va nr
184using the
185.Va ticket
186obtained through a preceding
187.Dv DIOCGETRULES
188call.
30.\"
31.Dd February 7, 2005
32.Dt PF 4
33.Os
34.Sh NAME
35.Nm pf
36.Nd packet filter
37.Sh SYNOPSIS

--- 143 unchanged lines hidden (view full) ---

181.Va rule
182by its number
183.Va nr
184using the
185.Va ticket
186obtained through a preceding
187.Dv DIOCGETRULES
188call.
189If
190.Va action
191is set to
192.Dv PF_GET_CLR_CNTR ,
193the per-rule statistics on the requested rule are cleared.
189.It Dv DIOCGETADDRS Fa "struct pfioc_pooladdr *pp"
190Get a
191.Va ticket
192for subsequent
193.Dv DIOCGETADDR
194calls and the number
195.Va nr
196of pool addresses in the rule specified with

--- 146 unchanged lines hidden (view full) ---

343 u_int64_t stateid;
344 u_int32_t running;
345 u_int32_t states;
346 u_int32_t src_nodes;
347 u_int32_t since;
348 u_int32_t debug;
349 u_int32_t hostid;
350 char ifname[IFNAMSIZ];
194.It Dv DIOCGETADDRS Fa "struct pfioc_pooladdr *pp"
195Get a
196.Va ticket
197for subsequent
198.Dv DIOCGETADDR
199calls and the number
200.Va nr
201of pool addresses in the rule specified with

--- 146 unchanged lines hidden (view full) ---

348 u_int64_t stateid;
349 u_int32_t running;
350 u_int32_t states;
351 u_int32_t src_nodes;
352 u_int32_t since;
353 u_int32_t debug;
354 u_int32_t hostid;
355 char ifname[IFNAMSIZ];
356 u_int8_t pf_chksum[MD5_DIGEST_LENGTH];
351};
352.Ed
353.It Dv DIOCCLRSTATUS
354Clear the internal packet filter statistics.
355.It Dv DIOCNATLOOK Fa "struct pfioc_natlook *pnl"
356Look up a state table entry by source and destination addresses and ports.
357.Bd -literal
358struct pfioc_natlook {

--- 27 unchanged lines hidden (view full) ---

386 } ps_u;
387#define ps_buf ps_u.psu_buf
388#define ps_states ps_u.psu_states
389};
390.Ed
391.Pp
392If
393.Va ps_len
357};
358.Ed
359.It Dv DIOCCLRSTATUS
360Clear the internal packet filter statistics.
361.It Dv DIOCNATLOOK Fa "struct pfioc_natlook *pnl"
362Look up a state table entry by source and destination addresses and ports.
363.Bd -literal
364struct pfioc_natlook {

--- 27 unchanged lines hidden (view full) ---

392 } ps_u;
393#define ps_buf ps_u.psu_buf
394#define ps_states ps_u.psu_states
395};
396.Ed
397.Pp
398If
399.Va ps_len
394is zero, all states will be gathered into
395.Va pf_states
396and
400is non-zero on entry, as many states as possible that can fit into this
401size will be copied into the supplied buffer
402.Va ps_states .
403On exit,
397.Va ps_len
404.Va ps_len
398will be set to the size they take in memory (i.e.,
405is always set to the total size required to hold all state table entries
406(i.e., it is set to
399.Li sizeof(struct pf_state) * nr ) .
407.Li sizeof(struct pf_state) * nr ) .
400If
401.Va ps_len
402is non-zero, as many states that can fit into
403.Va ps_len
404as possible will be gathered, and
405.Va ps_len
406will be updated to the size those rules take in memory.
407.It Dv DIOCCHANGERULE Fa "struct pfioc_rule *pcr"
408Add or remove the
409.Va rule
410in the ruleset specified by
411.Va rule.action .
412.Pp
413The type of operation to be performed is indicated by
414.Va action ,

--- 65 unchanged lines hidden (view full) ---

480.It Dv DIOCSETLIMIT Fa "struct pfioc_limit *pl"
481Set the hard limits on the memory pools used by the packet filter.
482.Bd -literal
483struct pfioc_limit {
484 int index;
485 unsigned limit;
486};
487
408.It Dv DIOCCHANGERULE Fa "struct pfioc_rule *pcr"
409Add or remove the
410.Va rule
411in the ruleset specified by
412.Va rule.action .
413.Pp
414The type of operation to be performed is indicated by
415.Va action ,

--- 65 unchanged lines hidden (view full) ---

481.It Dv DIOCSETLIMIT Fa "struct pfioc_limit *pl"
482Set the hard limits on the memory pools used by the packet filter.
483.Bd -literal
484struct pfioc_limit {
485 int index;
486 unsigned limit;
487};
488
488enum { PF_LIMIT_STATES, PF_LIMIT_SRC_NODES, PF_LIMIT_FRAGS };
489enum { PF_LIMIT_STATES, PF_LIMIT_SRC_NODES, PF_LIMIT_FRAGS,
490 PF_LIMIT_TABLES, PF_LIMIT_TABLE_ENTRIES, PF_LIMIT_MAX };
489.Ed
490.It Dv DIOCGETLIMIT Fa "struct pfioc_limit *pl"
491Get the hard
492.Va limit
493for the memory pool indicated by
494.Va index .
495.It Dv DIOCRCLRTABLES Fa "struct pfioc_table *io"
496Clear all tables.

--- 21 unchanged lines hidden (view full) ---

518#define pfrio_nmatch pfrio_nadd
519#define pfrio_naddr pfrio_size2
520#define pfrio_setflag pfrio_size2
521#define pfrio_clrflag pfrio_nadd
522.Ed
523.It Dv DIOCRADDTABLES Fa "struct pfioc_table *io"
524Create one or more tables.
525On entry,
491.Ed
492.It Dv DIOCGETLIMIT Fa "struct pfioc_limit *pl"
493Get the hard
494.Va limit
495for the memory pool indicated by
496.Va index .
497.It Dv DIOCRCLRTABLES Fa "struct pfioc_table *io"
498Clear all tables.

--- 21 unchanged lines hidden (view full) ---

520#define pfrio_nmatch pfrio_nadd
521#define pfrio_naddr pfrio_size2
522#define pfrio_setflag pfrio_size2
523#define pfrio_clrflag pfrio_nadd
524.Ed
525.It Dv DIOCRADDTABLES Fa "struct pfioc_table *io"
526Create one or more tables.
527On entry,
526.Va pfrio_buffer[pfrio_size]
527contains a table of
528.Vt pfr_table
529structures.
528.Va pfrio_buffer
529must point to an array of
530.Vt struct pfr_table
531containing at least
532.Vt pfrio_size
533elements.
534.Vt pfrio_esize
535must be the size of
536.Vt struct pfr_table .
530On exit,
531.Va pfrio_nadd
532contains the number of tables effectively created.
533.Bd -literal
534struct pfr_table {
535 char pfrt_anchor[MAXPATHLEN];
536 char pfrt_name[PF_TABLE_NAME_SIZE];
537 u_int32_t pfrt_flags;
538 u_int8_t pfrt_fback;
539};
540.Ed
541.It Dv DIOCRDELTABLES Fa "struct pfioc_table *io"
542Delete one or more tables.
543On entry,
537On exit,
538.Va pfrio_nadd
539contains the number of tables effectively created.
540.Bd -literal
541struct pfr_table {
542 char pfrt_anchor[MAXPATHLEN];
543 char pfrt_name[PF_TABLE_NAME_SIZE];
544 u_int32_t pfrt_flags;
545 u_int8_t pfrt_fback;
546};
547.Ed
548.It Dv DIOCRDELTABLES Fa "struct pfioc_table *io"
549Delete one or more tables.
550On entry,
544.Va pfrio_buffer[pfrio_size]
545contains a table of
546.Vt pfr_table
547structures.
551.Va pfrio_buffer
552must point to an array of
553.Vt struct pfr_table
554containing at least
555.Vt pfrio_size
556elements.
557.Vt pfrio_esize
558must be the size of
559.Vt struct pfr_table .
548On exit,
560On exit,
549.Va pfrio_nadd
561.Va pfrio_ndel
550contains the number of tables effectively deleted.
551.It Dv DIOCRGETTABLES Fa "struct pfioc_table *io"
552Get the list of all tables.
553On entry,
554.Va pfrio_buffer[pfrio_size]
555contains a valid writeable buffer for
556.Vt pfr_table
557structures.

--- 22 unchanged lines hidden (view full) ---

580 int pfrts_refcnt[PFR_REFCNT_MAX];
581};
582#define pfrts_name pfrts_t.pfrt_name
583#define pfrts_flags pfrts_t.pfrt_flags
584.Ed
585.It Dv DIOCRCLRTSTATS Fa "struct pfioc_table *io"
586Clear the statistics of one or more tables.
587On entry,
562contains the number of tables effectively deleted.
563.It Dv DIOCRGETTABLES Fa "struct pfioc_table *io"
564Get the list of all tables.
565On entry,
566.Va pfrio_buffer[pfrio_size]
567contains a valid writeable buffer for
568.Vt pfr_table
569structures.

--- 22 unchanged lines hidden (view full) ---

592 int pfrts_refcnt[PFR_REFCNT_MAX];
593};
594#define pfrts_name pfrts_t.pfrt_name
595#define pfrts_flags pfrts_t.pfrt_flags
596.Ed
597.It Dv DIOCRCLRTSTATS Fa "struct pfioc_table *io"
598Clear the statistics of one or more tables.
599On entry,
588.Va pfrio_buffer[pfrio_size]
589contains a table of
590.Vt pfr_table
591structures.
600.Va pfrio_buffer
601must point to an array of
602.Vt struct pfr_table
603containing at least
604.Vt pfrio_size
605elements.
606.Vt pfrio_esize
607must be the size of
608.Vt struct pfr_table .
592On exit,
593.Va pfrio_nzero
594contains the number of tables effectively cleared.
595.It Dv DIOCRCLRADDRS Fa "struct pfioc_table *io"
596Clear all addresses in a table.
597On entry,
598.Va pfrio_table
599contains the table to clear.
600On exit,
601.Va pfrio_ndel
602contains the number of addresses removed.
603.It Dv DIOCRADDADDRS Fa "struct pfioc_table *io"
604Add one or more addresses to a table.
605On entry,
606.Va pfrio_table
607contains the table ID and
609On exit,
610.Va pfrio_nzero
611contains the number of tables effectively cleared.
612.It Dv DIOCRCLRADDRS Fa "struct pfioc_table *io"
613Clear all addresses in a table.
614On entry,
615.Va pfrio_table
616contains the table to clear.
617On exit,
618.Va pfrio_ndel
619contains the number of addresses removed.
620.It Dv DIOCRADDADDRS Fa "struct pfioc_table *io"
621Add one or more addresses to a table.
622On entry,
623.Va pfrio_table
624contains the table ID and
608.Va pfrio_buffer[pfrio_size]
609contains the list of
610.Vt pfr_addr
611structures to add.
625.Va pfrio_buffer
626must point to an array of
627.Vt struct pfr_addr
628containing at least
629.Vt pfrio_size
630elements to add to the table.
631.Vt pfrio_esize
632must be the size of
633.Vt struct pfr_addr .
612On exit,
613.Va pfrio_nadd
614contains the number of addresses effectively added.
615.Bd -literal
616struct pfr_addr {
617 union {
618 struct in_addr _pfra_ip4addr;
619 struct in6_addr _pfra_ip6addr;

--- 6 unchanged lines hidden (view full) ---

626#define pfra_ip4addr pfra_u._pfra_ip4addr
627#define pfra_ip6addr pfra_u._pfra_ip6addr
628.Ed
629.It Dv DIOCRDELADDRS Fa "struct pfioc_table *io"
630Delete one or more addresses from a table.
631On entry,
632.Va pfrio_table
633contains the table ID and
634On exit,
635.Va pfrio_nadd
636contains the number of addresses effectively added.
637.Bd -literal
638struct pfr_addr {
639 union {
640 struct in_addr _pfra_ip4addr;
641 struct in6_addr _pfra_ip6addr;

--- 6 unchanged lines hidden (view full) ---

648#define pfra_ip4addr pfra_u._pfra_ip4addr
649#define pfra_ip6addr pfra_u._pfra_ip6addr
650.Ed
651.It Dv DIOCRDELADDRS Fa "struct pfioc_table *io"
652Delete one or more addresses from a table.
653On entry,
654.Va pfrio_table
655contains the table ID and
634.Va pfrio_buffer[pfrio_size]
635contains the list of
636.Vt pfr_addr
637structures to delete.
656.Va pfrio_buffer
657must point to an array of
658.Vt struct pfr_addr
659containing at least
660.Vt pfrio_size
661elements to delete from the table.
662.Vt pfrio_esize
663must be the size of
664.Vt struct pfr_addr .
638On exit,
639.Va pfrio_ndel
640contains the number of addresses effectively deleted.
641.It Dv DIOCRSETADDRS Fa "struct pfioc_table *io"
642Replace the content of a table by a new address list.
643This is the most complicated command, which uses all the structure members.
644.Pp
645On entry,
646.Va pfrio_table
647contains the table ID and
665On exit,
666.Va pfrio_ndel
667contains the number of addresses effectively deleted.
668.It Dv DIOCRSETADDRS Fa "struct pfioc_table *io"
669Replace the content of a table by a new address list.
670This is the most complicated command, which uses all the structure members.
671.Pp
672On entry,
673.Va pfrio_table
674contains the table ID and
648.Va pfrio_buffer[pfrio_size]
649contains the new list of
650.Vt pfr_addr
651structures.
675.Va pfrio_buffer
676must point to an array of
677.Vt struct pfr_addr
678containing at least
679.Vt pfrio_size
680elements which become the new contents of the table.
681.Vt pfrio_esize
682must be the size of
683.Vt struct pfr_addr .
652Additionally, if
653.Va pfrio_size2
654is non-zero,
655.Va pfrio_buffer[pfrio_size..pfrio_size2]
656must be a writeable buffer, into which the kernel can copy the
657addresses that have been deleted during the replace operation.
658On exit,
659.Va pfrio_ndel ,

--- 38 unchanged lines hidden (view full) ---

698 long pfras_tzero;
699};
700.Ed
701.It Dv DIOCRCLRASTATS Fa "struct pfioc_table *io"
702Clear the statistics of one or more addresses.
703On entry,
704.Va pfrio_table
705contains the table ID and
684Additionally, if
685.Va pfrio_size2
686is non-zero,
687.Va pfrio_buffer[pfrio_size..pfrio_size2]
688must be a writeable buffer, into which the kernel can copy the
689addresses that have been deleted during the replace operation.
690On exit,
691.Va pfrio_ndel ,

--- 38 unchanged lines hidden (view full) ---

730 long pfras_tzero;
731};
732.Ed
733.It Dv DIOCRCLRASTATS Fa "struct pfioc_table *io"
734Clear the statistics of one or more addresses.
735On entry,
736.Va pfrio_table
737contains the table ID and
706.Va pfrio_buffer[pfrio_size]
707contains a table of
708.Vt pfr_addr
709structures to clear.
738.Va pfrio_buffer
739must point to an array of
740.Vt struct pfr_addr
741containing at least
742.Vt pfrio_size
743elements to be cleared from the table.
744.Vt pfrio_esize
745must be the size of
746.Vt struct pfr_addr .
710On exit,
711.Va pfrio_nzero
712contains the number of addresses effectively cleared.
713.It Dv DIOCRTSTADDRS Fa "struct pfioc_table *io"
714Test if the given addresses match a table.
715On entry,
716.Va pfrio_table
717contains the table ID and
747On exit,
748.Va pfrio_nzero
749contains the number of addresses effectively cleared.
750.It Dv DIOCRTSTADDRS Fa "struct pfioc_table *io"
751Test if the given addresses match a table.
752On entry,
753.Va pfrio_table
754contains the table ID and
718.Va pfrio_buffer[pfrio_size]
719contains a table of
720.Vt pfr_addr
721structures to test.
755.Va pfrio_buffer
756must point to an array of
757.Vt struct pfr_addr
758containing at least
759.Vt pfrio_size
760elements, each of which will be tested for a match in the table.
761.Vt pfrio_esize
762must be the size of
763.Vt struct pfr_addr .
722On exit, the kernel updates the
723.Vt pfr_addr
764On exit, the kernel updates the
765.Vt pfr_addr
724table by setting the
766array by setting the
725.Va pfra_fback
726member appropriately.
727.It Dv DIOCRSETTFLAGS Fa "struct pfioc_table *io"
728Change the
729.Dv PFR_TFLAG_CONST
730or
731.Dv PFR_TFLAG_PERSIST
732flags of a table.
733On entry,
767.Va pfra_fback
768member appropriately.
769.It Dv DIOCRSETTFLAGS Fa "struct pfioc_table *io"
770Change the
771.Dv PFR_TFLAG_CONST
772or
773.Dv PFR_TFLAG_PERSIST
774flags of a table.
775On entry,
734.Va pfrio_buffer[pfrio_size]
735contains a table of
736.Vt pfr_table
737structures, and
776.Va pfrio_buffer
777must point to an array of
778.Vt struct pfr_table
779containing at least
780.Vt pfrio_size
781elements.
782.Va pfrio_esize
783must be the size of
784.Vt struct pfr_table .
738.Va pfrio_setflag
785.Va pfrio_setflag
739contains the flags to add, while
786must contain the flags to add, while
740.Va pfrio_clrflag
787.Va pfrio_clrflag
741contains the flags to remove.
788must contain the flags to remove.
742On exit,
743.Va pfrio_nchange
744and
745.Va pfrio_ndel
746contain the number of tables altered or deleted by the kernel.
747Yes, tables can be deleted if one removes the
748.Dv PFR_TFLAG_PERSIST
749flag of an unreferenced table.
750.It Dv DIOCRINADEFINE Fa "struct pfioc_table *io"
751Defines a table in the inactive set.
752On entry,
753.Va pfrio_table
754contains the table ID and
755.Va pfrio_buffer[pfrio_size]
789On exit,
790.Va pfrio_nchange
791and
792.Va pfrio_ndel
793contain the number of tables altered or deleted by the kernel.
794Yes, tables can be deleted if one removes the
795.Dv PFR_TFLAG_PERSIST
796flag of an unreferenced table.
797.It Dv DIOCRINADEFINE Fa "struct pfioc_table *io"
798Defines a table in the inactive set.
799On entry,
800.Va pfrio_table
801contains the table ID and
802.Va pfrio_buffer[pfrio_size]
756contains the list of
803contains an array of
757.Vt pfr_addr
758structures to put in the table.
759A valid ticket must also be supplied to
760.Va pfrio_ticket .
761On exit,
762.Va pfrio_nadd
763contains 0 if the table was already defined in the inactive list
764or 1 if a new table has been created.

--- 185 unchanged lines hidden (view full) ---

950struct pfioc_iface {
951 char pfiio_name[IFNAMSIZ];
952 void *pfiio_buffer;
953 int pfiio_esize;
954 int pfiio_size;
955 int pfiio_nzero;
956 int pfiio_flags;
957};
804.Vt pfr_addr
805structures to put in the table.
806A valid ticket must also be supplied to
807.Va pfrio_ticket .
808On exit,
809.Va pfrio_nadd
810contains 0 if the table was already defined in the inactive list
811or 1 if a new table has been created.

--- 185 unchanged lines hidden (view full) ---

997struct pfioc_iface {
998 char pfiio_name[IFNAMSIZ];
999 void *pfiio_buffer;
1000 int pfiio_esize;
1001 int pfiio_size;
1002 int pfiio_nzero;
1003 int pfiio_flags;
1004};
958
959#define PFI_FLAG_GROUP 0x0001 /* gets groups of interfaces */
960#define PFI_FLAG_INSTANCE 0x0002 /* gets single interfaces */
961#define PFI_FLAG_ALLMASK 0x0003
962.Ed
963.Pp
964If not empty,
965.Va pfiio_name
966can be used to restrict the search to a specific interface or driver.
967.Va pfiio_buffer[pfiio_size]
968is the user-supplied buffer for returning the data.
969On entry,
970.Va pfiio_size
1005.Ed
1006.Pp
1007If not empty,
1008.Va pfiio_name
1009can be used to restrict the search to a specific interface or driver.
1010.Va pfiio_buffer[pfiio_size]
1011is the user-supplied buffer for returning the data.
1012On entry,
1013.Va pfiio_size
971represents the number of
972.Va pfi_if
1014contains the number of
1015.Vt pfi_kif
973entries that can fit into the buffer.
974The kernel will replace this value by the real number of entries it wants
975to return.
976.Va pfiio_esize
977should be set to
1016entries that can fit into the buffer.
1017The kernel will replace this value by the real number of entries it wants
1018to return.
1019.Va pfiio_esize
1020should be set to
978.Li sizeof(struct pfi_if) .
979.Va pfiio_flags
980should be set to
981.Dv PFI_FLAG_GROUP ,
982.Dv PFI_FLAG_INSTANCE ,
983or both, to tell the kernel to return a group of interfaces
984(drivers, like "fxp"), real interface instances (like "fxp1") or both.
1021.Li sizeof(struct pfi_kif) .
1022.Pp
985The data is returned in the
1023The data is returned in the
986.Vt pfi_if
1024.Vt pfi_kif
987structure described below:
988.Bd -literal
1025structure described below:
1026.Bd -literal
989struct pfi_if {
990 char pfif_name[IFNAMSIZ];
991 u_int64_t pfif_packets[2][2][2];
992 u_int64_t pfif_bytes[2][2][2];
993 u_int64_t pfif_addcnt;
994 u_int64_t pfif_delcnt;
995 long pfif_tzero;
996 int pfif_states;
997 int pfif_rules;
998 int pfif_flags;
1027struct pfi_kif {
1028 RB_ENTRY(pfi_kif) pfik_tree;
1029 char pfik_name[IFNAMSIZ];
1030 u_int64_t pfik_packets[2][2][2];
1031 u_int64_t pfik_bytes[2][2][2];
1032 u_int32_t pfik_tzero;
1033 int pfik_flags;
1034 struct pf_state_tree_lan_ext pfik_lan_ext;
1035 struct pf_state_tree_ext_gwy pfik_ext_gwy;
1036 TAILQ_ENTRY(pfi_kif) pfik_w_states;
1037 void *pfik_ah_cookie;
1038 struct ifnet *pfik_ifp;
1039 struct ifg_group *pfik_group;
1040 int pfik_states;
1041 int pfik_rules;
1042 TAILQ_HEAD(, pfi_dynaddr) pfik_dynaddrs;
999};
1043};
1000
1001#define PFI_IFLAG_GROUP 0x0001 /* group of interfaces */
1002#define PFI_IFLAG_INSTANCE 0x0002 /* single instance */
1003#define PFI_IFLAG_CLONABLE 0x0010 /* clonable group */
1004#define PFI_IFLAG_DYNAMIC 0x0020 /* dynamic group */
1005#define PFI_IFLAG_ATTACHED 0x0040 /* interface attached */
1006.Ed
1044.Ed
1007.It Dv DIOCICLRISTATS Fa "struct pfioc_iface *io"
1008Clear the statistics counters of one or more interfaces.
1009.Va pfiio_name
1010and
1011.Va pfiio_flags
1012can be used to select which interfaces need to be cleared.
1013The filtering process is the same as for
1014.Dv DIOCIGETIFACES .
1015.Va pfiio_nzero
1016will be set by the kernel to the number of interfaces and drivers
1017that have been cleared.
1018.It Dv DIOCSETIFFLAG Fa "struct pfioc_iface *io"
1045.It Dv DIOCSETIFFLAG Fa "struct pfioc_iface *io"
1019Set the user setable flags (described below) of the pf internal interface
1020description.
1046Set the user setable flags (described above) of the
1047.Nm
1048internal interface description.
1021The filtering process is the same as for
1022.Dv DIOCIGETIFACES .
1023.Bd -literal
1049The filtering process is the same as for
1050.Dv DIOCIGETIFACES .
1051.Bd -literal
1024#define PFI_IFLAG_SKIP 0x0100 /* skip interface */
1025#define PFI_IFLAG_SETABLE_MASK 0x0100 /* mask */
1052#define PFI_IFLAG_SKIP 0x0100 /* skip filtering on interface */
1026.Ed
1027.It Dv DIOCCLRIFFLAG Fa "struct pfioc_iface *io"
1028Works as
1029.Dv DIOCSETIFFLAG
1030above but clears the flags.
1031.El
1032.Sh FILES
1033.Bl -tag -width /dev/pf -compact

--- 83 unchanged lines hidden ---
1053.Ed
1054.It Dv DIOCCLRIFFLAG Fa "struct pfioc_iface *io"
1055Works as
1056.Dv DIOCSETIFFLAG
1057above but clears the flags.
1058.El
1059.Sh FILES
1060.Bl -tag -width /dev/pf -compact

--- 83 unchanged lines hidden ---