Toronto IETF, July 1994 Presentation presented by Timon Sloane and Karl Auerbach on possible changes to the filter mechanism for RMON. Today we have the following relationship: filter \ --> bufferControl --> captureBuffer \ / filter ----> channel---/ | | | v event generation Propose that a new filtering type be added (filter'), and that a new backend processing be added (storage point capture). filter \ --> bufferControl --> captureBuffer \ / filter ----> channel---/ / | \ filter'/ | --> sPointControl ---> sPointCapture | v event generation filter' is designed to provide faster and more flexible filtering. storage point capture is designed to save arbitrary values that were saved during the processing of filter'. The new filter types (filter') will use the stack processing model proposed by Karl. The mechanism will be augmented with commands to save values as "storage points". This are like registers, but they are variable length. filter'ControlEntry ::= SEQUENCE { filter'Index INTEGER, filter'ChannelIndex INTEGER, filter'Instructions OCTET STRING (SIZE (1..255)) filter'Owner OwnerString, filter'Status rowStatus } -- -- sPoint -> Storage Point -- sPointControlEntry ::= SEQUENCE { sPointControlIndex INTEGER, sPointControlChannelIndex INTEGER, -- ptr to channel sPointControlFullAction INTEGER, sPointControlFullStatus INTEGER, sPointControlRequestedRows INTEGER, sPointControlGrantedRows INTEGER, sPointControlRowsGenerated INTEGER, sPointControlOwner OwnerString, sPointControlStatus rowStatus } -- -- sPoint[1-15] are generated by the filter' processing, and are -- dumped into a row of the following table. -- -- Note Well: Very often the manager will find that the -- following table is sparse. -- sPointCaptureEntry ::= SEQUENCE { sPointCaptureIndex sPointCaptureControlIndex INTEGER, -- ptr to sPointControl sPoint1 OCTET STRING (SIZE (0..16)), sPoint2 OCTET STRING (SIZE (0..16)), sPoint3 OCTET STRING (SIZE (0..16)), sPoint4 OCTET STRING (SIZE (0..16)), sPoint5 OCTET STRING (SIZE (0..16)), sPoint6 OCTET STRING (SIZE (0..16)), sPoint7 OCTET STRING (SIZE (0..16)), sPoint8 OCTET STRING (SIZE (0..16)), sPoint9 OCTET STRING (SIZE (0..16)), sPoint10 OCTET STRING (SIZE (0..16)), sPoint11 OCTET STRING (SIZE (0..16)), sPoint12 OCTET STRING (SIZE (0..16)), sPoint13 OCTET STRING (SIZE (0..16)), sPoint14 OCTET STRING (SIZE (0..16)), sPoint15 OCTET STRING (SIZE (0..16)), sPoint16 OCTET STRING (SIZE (0..16)) }