freebsd-dev/sbin/ipfw
Alexander V. Chernikov f8bee51a69 - Add ipfw eXtended tables permitting radix to be used for any kind of keys.
- Add support for IPv6 and interface extended tables
- Make number of tables to be loader tunable in range 0..65534.
- Use IP_FW3 opcode for all new extended table cmds

No ABI changes are introduced. Old userland will see valid tables for
IPv4 tables and no entries otherwise. Flush works for any table.

IP_FW3 socket option is used to encapsulate all new opcodes:
 /* IP_FW3 header/opcodes */
 typedef struct _ip_fw3_opheader {
        uint16_t opcode;        /* Operation opcode */
        uint16_t reserved[3];   /* Align to 64-bit boundary */
 } ip_fw3_opheader;

New opcodes added:
 IP_FW_TABLE_XADD, IP_FW_TABLE_XDEL, IP_FW_TABLE_XGETSIZE, IP_FW_TABLE_XLIST

ipfw(8) table argument parsing behavior is changed:
 'ipfw table 999 add host' now assumes 'host' to be interface name instead of
 hostname.

New tunable:
 net.inet.ip.fw.tables_max controls number of table supported by ipfw in given
 VNET instance. 128 is still the default value.

New syntax:
ipfw add skipto tablearg ip from any to any via table(42) in
ipfw add skipto tablearg ip from any to any via table(4242) out

This is a bit hackish, special interface name '\1' is used to signal interface
table number is passed in p.glob field.

Sponsored by Yandex LLC

Reviewed by:    ae
Approved by:    ae (mentor)

MFC after:      4 weeks
2012-03-12 14:07:57 +00:00
..
altq.c Whitespace fixes. 2011-04-18 21:18:22 +00:00
dummynet.c remove some write-only variables. 2012-03-01 17:35:16 +00:00
ipfw2.c - Add ipfw eXtended tables permitting radix to be used for any kind of keys. 2012-03-12 14:07:57 +00:00
ipfw2.h Add new rule actions "call" and "return" to ipfw. They make 2011-06-29 10:06:58 +00:00
ipfw.8 - Add ipfw eXtended tables permitting radix to be used for any kind of keys. 2012-03-12 14:07:57 +00:00
ipv6.c Whitespace fixes. 2011-04-18 21:18:22 +00:00
main.c Spelling fixes for sbin/ 2012-01-07 16:09:33 +00:00
Makefile add back DPADD (removed by mistake in a previous commit) 2010-03-08 14:43:55 +00:00
nat.c Fix parsing of redirect_addr argument. 2011-11-23 18:38:08 +00:00