A rules engine for the examination of selected fields in an addressed data
packet has an access control list table of which the entries each define
an access control list rule, an action and a chain identifier. The access
control list rule may be a basic rule which refers to network addresses
and transport layer port numbers. The rules engine also has an extension
rule table of which the entries each define an extension rule, a
respective action and a respective rule identifier. The extension rule
may refer to a particular TCP flag. When a packet arrives, the engine
searches both tables. This search is made independently of the ordinary
network layer or link layer address lookup. If there is a match in both
tables, and the chain identifier matches the extension rule identifier,
the rules engine prescribes the action associated with the extension
rule. If the chain identifier of a matched access control list rule does
not match a rule identifier of a matched extension rule the rules engine
prescribes the action associated with the basic rule. In the absence of a
match with any access control list rule the action on a packet is based
on the result from the ordinary address lookup.