freebsd-dev/sbin/ipfw
Alexander V. Chernikov 1940fa7727 Change tablearg value to be 0 (try #2).
Most of the tablearg-supported opcodes does not accept 0 as valid value:
 O_TAG, O_TAGGED, O_PIPE, O_QUEUE, O_DIVERT, O_TEE, O_SKIPTO, O_CALLRET,
 O_NETGRAPH, O_NGTEE, O_NAT treats 0 as invalid input.

The rest are O_SETDSCP and O_SETFIB.
'Fix' them by adding high-order bit (0x8000) set for non-tablearg values.
Do translation in kernel for old clients (import_rule0 / export_rule0),
teach current ipfw(8) binary to add/remove given bit.

This change does not affect handling SETDSCP values, but limit
O_SETFIB values to 32767 instead of 65k. Since currently we have either
old (16) or new (2^32) max fibs, this should not be a big deal:
we're definitely OK for former and have to add another opcode to deal
with latter, regardless of tablearg value.
2014-08-12 15:51:48 +00:00
..
altq.c Suppord showing named tables in ipfw(8) rule listing. 2014-06-28 23:20:24 +00:00
dummynet.c Suppord showing named tables in ipfw(8) rule listing. 2014-06-28 23:20:24 +00:00
ipfw2.c Change tablearg value to be 0 (try #2). 2014-08-12 15:51:48 +00:00
ipfw2.h Change tablearg value to be 0 (try #2). 2014-08-12 15:51:48 +00:00
ipfw.8 ECN marking implenetation for dummynet. 2014-06-01 07:28:24 +00:00
ipv6.c Implement buffer size checking in ipfw(8) add cmd. 2013-03-03 14:05:03 +00:00
main.c * Move "talist" and "iflist" cmds into newly-create "internal" ipfw(8) cmd. 2014-08-03 16:22:14 +00:00
Makefile Move further to eliminate next pieces of number-assuming code inside tables. 2014-06-14 22:47:25 +00:00
nat.c Remove unused values 2012-09-11 07:54:41 +00:00
tables.c * Add the abilify to lock/unlock given table from changes. 2014-08-11 18:09:37 +00:00