Subject: Generic Access Interfaces for the RTFM Meter

From: Marcelo Pias <[email-masked]>
Date: Thu, 11 May 2000 18:24:09 -0300

Hello Nevil (and list)!

	I'm sending some ideas about two access interfaces for the RTFM Meter:

	1. Generic Manager Interface (GMI) - high level interface for controlling
the meter using the RTFM rulesets.

	2. Generic Reader Interface (GRI) - high level interface for getting
measurement data from the RTFM meter.

	My idea is to define the common operations that should be provided by each
interface according to its functionality. This would mean using GMI for
controlling the RTFM meter and the GRI for getting data from it.

	For each interface we do have requirements. However, I'd like to start
this discussion with the GMI.

	Following some ideas I had about all this...

	I would appreciate comments on this. 

Cheers. Marcelo

-----------------------------------------------------------------------------
3. Metering Layer

      To introduce some motivation for this work we could begin with a
specification of the RTFM Meter Layer. This layer would provide two service
interfaces: one for control and another for data.

               Control Interface   Data Interface
                   (GMI)            (GRI)
                  --------         ------
                     ^                ^  
                     |                |
              ---------------  ---------------   
              | GMI Implem. |  | GRI Implem. |
              ---------------  ---------------
                     |                |
                     V                V  
		+----------------------------+
		|     RTFM Metering Layer    |
              +----------------------------+
                       --------------
                       | RTFM Meter |
                       --------------

4. Generic Manager Interface (GMI): Control Interface

4.1. Requirements

	In order to cope with a diversity of applications the Generic Manager
Interface (GMI) should be able to:

	(a) Provide a high level set of operations to control the Meter;

	(b) Upload a new ruleset into the Meter;

	(c) Change specific rules within the ruleset quite often although a
minimum time interval since the last modification may be specified. This
change would be required when adding, deleting a rule or modifying a rule.
The latter one may be implemented as a delete followed by a add operation.
However, this will be a choice of implementation.

	(d) Minor modification in the RTFM Meter in order to support changing
rules on the fly. This also means putting the core knowleadge into the GMI
implementation.

	(e) Change the status of a specific ruleset;

4.2. Operations

	The GMI may have six recommended operations with all of them matching the
requirements described in section 4.1. In this section we do not make any
implementation assumption, only describe the interface. The operations are
defined as:

 (a)  RuleSet granularity:
   
	(1) addRuleSet(MeterID, RuleSet_Record):

		 this operation uploads a RuleSet into the Meter. The initial status of
the RuleSet will be 'activate but not running'.

	(2) deleteRuleSet(MeterID, RuleSetName):

		deactivates the RuleSet with the name "RuleSetName". 

	(3) RuleSetMetaData getRuleSetMetaData(MeterID, RuleSetName):
	       get meta data for this RuleSet containing useful information such
as: number of rules, owner, status... (attributes of the flowRuleSetInfoEntry)

  (b) Rule granularity:

	(4) addRule(MeterID, RuleSetName, RuleNumber, RuleSet_Row):

	       add a new rule (RuleSet_Row) within the ruleset with the name
"RuleSetName" in the position "RuleNumber". Depending on the "RuleNumber"
it might be added in the beginning, end or after a specific point.

	(5) deleteRule(MeterID, RuleSetName, RuleNumber):

		delete the rule "RuleNumber" of the ruleset "RuleSetName" in the meter
"MeterID". 

	(6) changeRule(MeterID, RuleSetName, RuleNumber, RuleSet_Row)

		change the rule "RuleNumber" of a ruleset with the "RuleSet_Row".

	Description of data structures used:

	MeterID - identification of the meter. It is likely to be the IP address
or other.

	RuleSetName - object value as described in the Meter MIB. Main ruleset ID.

	RuleNumber - index of rule within the ruleset

	RuleSet_Row - Meter MIB object FlowRuleEntry.

	RuleSet_Record - a list of RuleSet_Row.

4.3. Implementation Considerations
 
	We could provide here implementation guidelines for each of the operation
proposed in the section 4.2.

-------------------------------------------------------------------
   Marcelo Pias, PhD Student funded by British Telecom Labs
   University College London (UCL), Department of Computer Science 
   URL: http://www.cs.ucl.ac.uk/staff/M.Pias/
-------------------------------------------------------------------