cvs commit: src/sys/netinet ip_fw.h ip_fw2.c src/sbin/ipfw ipfw.8 ipfw2.c

Luigi Rizzo rizzo at
Wed May 24 16:20:29 PDT 2006

On Wed, May 24, 2006 at 10:26:34PM +0200, Andre Oppermann wrote:
> I understand your rationale.  OTOH I think it's a logical blunder and allows
> some quite confusing rule sets.  What I always liked about ipfw was the simple
> and obvious logic in the statements.  Over time it becomes more and more over-
> loaded with more stuff and also more stuff breaking the beautiful simplicity
> and clarity the original ipfw design had.  ipfw rules used to read like normal
> sentences and were really simple to write and understand.  But then I'm just
> ranting...

It is probably true that most of the times, when you tag/untag a packet
you also need to do further processing on the packet. However, this means
that the associated action will be a 'skipto'. But in this case, if you want to
implement tag/untag as an action, the syntax becomes quite confusing because
you need to specify the jump target, and the action name (tag/untag) doesn't
properly reflect the fact that there is an implicit skipto.

Given this, i think the current implementation of tag/untag is the most
natural way to do it, and not too different from the "keep-state" option
(which also has some side effects, namely creates a state record for
the flow and has been in use for ages now)


More information about the cvs-src mailing list