>[оверквотинг удален]
>>ipfw add pipe tablearg all from table(1) to any
>>
>>иначе была бы портянка вида
>>ipfw add pipe 1 all from 1.2.4.0/24 to any
>>ipfw add pipe 2 all from 1.2.6.0/24 to any
>>...
>
>Это уже отдаёт самоцелью. Даже теоретически не могу представить зачем это нужно.
>А даже если это и нужно, то это как разгребать спагетти
>бейсика с его goto. Как раз-таки наоборот. Линейная последовательность правил - это пачка if'ов и goto. А tablearg - это диспетчеризация вызова функции по указателю. ОДНО правило вместо пачки - это гораздо понятнее и эффективнее.
Что же касается того, зачем это нужно - тренируйте воображение, что ли. Одно из применений этой штуки (люди реально пользуются) - есть семейство тарифов (полос), клиентов много, каждый купил один из тарифов, нужно шейпить соответственно. Чтобы не писать по правилу на каждого клиента - мы вгоняем их адреса в таблицу с указанием номера. И всё!
>>из-за чего админам иногда приходится эмулировать его руками
>>(вспоминается DoS башорга).
>
>Кстати, даже для эмуляции у iptables средства не так уж и плохи.
>Цепочки по сути являются подпрограммами обработки трафика и позволяют писать довольно
>сложные, но ТЕМ НЕ МЕНЕЕ гораздо более понятные правила, чем конструкции
>вида
>>ipfw add pipe tablearg all from table(1) to any
Как средство эмуляции оно хуже - внутри подпрограммы поиск всё равно линейный. Очень странно, если вы приводите аналогии из програмирования, и не понимаете, чем одна строка с индексацией по таблице (массиву) лучше и _понятнее_, чем пачка if-else if для каждого варианта значения индекса.