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
..
2013-07-28 18:44:17 +00:00
2012-11-29 05:16:50 +00:00
2014-06-06 00:22:19 +00:00
2014-01-13 17:14:10 +00:00
2014-01-22 17:15:17 +00:00
2014-05-18 21:16:59 +00:00
2013-07-18 05:46:33 +00:00
2013-01-01 18:28:21 +00:00
2013-05-08 21:04:19 +00:00
2014-06-06 19:00:43 +00:00
2013-05-13 18:13:50 +00:00
2013-03-19 21:40:14 +00:00
2013-05-16 21:04:56 +00:00
2012-11-15 15:06:21 +00:00