Packet Filter Examples A-11
Source Address and
Type Filter
This filter operates on the source address and type fields of a frame. It
allows XNS packets to be forwarded that are from stations with an OUI of
08-00-02. To customize this filter to another OUI value, change the literal
value loaded in the last
pushLiteral.l instruction. Note that the OUI must be
padded with an additional 00 to fill out the literal to 4 bytes. To customize
this filter to another type value, change the literal value loaded into the
pushLiteral.w instruction.
name “XNS from 08-00-02”
pushField.w 12 # Get type field
pushLiteral.w 0x0600 # Load type value
ne # Check for mis-match
reject # Toss any non-XNS frames
pushLiteral.l 0xffffff00 # Set up mask to isolate first 3
# bytes
pushField.l 6 # Get first 4 bytes of source
# address
and # Top of stack now has OUI
pushLiteral.l 0x09000200 # Load OUI value
eq # Check for match
Accept XNS or IP
Filter
This filter operates on the type field of a frame. It allows packets to be
forwarded that are XNS or IP frame. Note the use of the
pushTop instruction
to make a copy of the type field.
name “Forward IP or XNS”
pushField.w 12 # Get type field
pushTop # Push copy of type
pushLiteral.w 0x0800 # Load IP type value
eq # Check for match
pushLiteral.w 0x0600 # Load XNS type value
eq # Check for match
XNS Routing Filter This filter operates on the type and data fields of a frame. It discards all XNS
Routing packets.
name “Drop XNS Routing”
pushField.w 12 # Get type field
pushLiteral.w 0x0600 # Load XNS type value
ne # Check for non-XNS packet
accept # Forward if non-XNS packet
pushLiteral.b 0x01 # Load XNS routing type
pushField.b 19 # Get XNS type
ne # Check for non-XNS routing
# packet