Internet Engineering Task Force                                 Authors:
INTERNET DRAFT                                        R. Rajan, S. Kamat
                                                                     IBM
                                                         P. Bhattacharya
                                                                   Cisco
                                                        26/February/1999


             Networking Policy Condition Information Model
                  draft-ietf-policy-conditions-00.txt

   Status of Memo

      This document is an Internet-Draft and is in full
      conformance with all the provisions of Section 10 of RFC2026
      except for the right to produce derivative works.

      Internet-Drafts are working documents of the Internet
      Engineering Task Force (IETF), its areas, and its working
      groups.  Note that other groups may also distribute working
      documents as Internet- Drafts.

      Internet-Drafts are draft documents valid for a maximum of
      six months and may be updated, replaced, or obsoleted by
      other documents at any time.  It is inappropriate to use
      Internet-Drafts as reference material or to cite them other
      than as "work in progress."

      The list of current Internet-Drafts can be accessed at
      http://www.ietf.org/ietf/1id-abstracts.txt

      The list of Internet-Draft Shadow Directories can be
      accessed at http://www.ietf.org/shadow.html

   Copyright Notice

    Copyright (C) The Internet Society (1999).  All Rights Reserved.

   Abstract

      This document defines an information model for
      networking policy conditions as part of the general
      information model for representing networking policy
      defined in draft-ietf-policy-core-schema-02.txt.  The
      information model described in this document is focussed
      on the structural class networkingPolicyCondition
      that extends the class policyCondition described
      draft-ietf-policy-core-schema-02.txt.  Five auxiliary






rajan,kamat,bhattacharya         Expires 25/August/1999         [Page i]


Internet Draft     draft-ietf-policy-conditions-00      26/February/1999


      classes are defined to describe conditions that refer to
      (1) the communicating hosts, (2) the communicating users
      (3) application data (4) routing information at the device
      enforcing the policy and (5) layer 2 or data link layer
      information of the device.  This document is based on the
      QoS and IPSec schema first described in [3] and [4].













































rajan,kamat,bhattacharya        Expires 25/August/1999         [Page ii]


Internet Draft     draft-ietf-policy-conditions-00      26/February/1999


1. Introduction

   This document extends the Policy Framework Core Information
   Model Class Hierarchy (PFCIM)[1] which presents a schema for
   representing networking policies.  The schema contains five core
   classes:  policyGroup, policyRule, policyCondtion, policyAction, and
   policyValidityPeriodCondition.  The classes comprising the PFCIM
   are intended to serve as an extensible class hierarchy (through
   specialization) for defining policy objects that enable application
   developers, network administrators, and policy administrators to
   represent policies of different types.  Please refer to [1] for
   details on the classes and their relationships to one another.
   Policy conditions are meant to represent criteria that administrators
   use in enforcing control over behavior of devices or users in a
   network.  This document is NOT concerned with all possible conditions
   that may arise with respect to computing and communication devices.
   It is particularly targeted at the needs of controlling resource
   usage and securing communication between users in an IP network.
   As mandated by the policy working group, the ability to represent
   policy requirements of integrated services with RSVP, differentiated
   services and IPSec are the first targets of this effort.

   In keeping with the focus of this effort, we identify 5
   conditional categories that are commonly used by administrators
   in controlling access to network resources and services.  These
   are host, user, application and routing and layer 2 or data
   link layer information.  We extend the class policyCondition to
   the subclass networkingPolicyCondition, and define 5 auxiliary
   classes:  hostConditionAuxClass, userConditionAuxClass,
   applicationConditionAuxClass, routeConditionAuxClass and
   layer2ConditionAuxclass.  The auxiliary classes may be attached to
   networkingPolicyCondition in order to create fully formed conditional
   statements that are appropriately structured for the purpose at hand.

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119, reference
   [5].


2. Extending policyCondition

2.1. The Class Hierarchy

   As defined in [1] the class policyCondition inherits from the
   class top.  We extend the class policyCondition to the subclass
   netwokingPolicyCondition.  The class netwokingPolicyCondition has 5
   auxiliary classes:  hostConditionAuxClass, userConditionAuxClass,



rajan,kamat,bhattacharya        Expires 25/August/1999        [Page iii]


Internet Draft     draft-ietf-policy-conditions-00      26/February/1999


   applicationConditionAuxClass, routeConditionAuxClass and
   layer2ConditionAuxclass.

       top
        |
        |
        |----policyCondition
        |      |
        |     networkingPolicyCondition ~~~~~
        |                                   |(auxiliary classes)
        |-----------------hostConditionAuxClass
        |---------------- userConditionAuxClass
        |-----------------applicationConditionAuxClass
        |-----------------routeConditionAuxClass
        |-----------------layer2ConditionAuxClass


2.2. Class Definitions

   The class definition of policyCondition, repeated from [1] is as
   follows:

NAME            policyCondition
DESCRIPTION     A class representing a condition to be evaluated
                in conjunction with a policy rule.
DERIVED FROM    top
TYPE            structural
AUXILIARY CLASSES       none
POSSIBLE SUPERIORS      policyRule
OID             <to be assigned>
MUST    cn
        PolicyConditionName
MAY

   The class policyCondition is specialized to networkingPolicyCondition
   for extensibility.  The class definition is as follows:

NAME            networkingPolicyCondition
DESCRIPTION     A class representing a networking condition to be
                evaluated in conjunction with a policy rule.
DERIVED FROM    policyCondition
TYPE            structural
AUXILIARY CLASSES     hostConditionAuxClass
                      userConditionAuxClass
                      applicationConditionAuxClass
                      routeConditionAuxClass
                      layer2ConditionAuxClass
POSSIBLE SUPERIORS    policyRule



rajan,kamat,bhattacharya        Expires 25/August/1999         [Page iv]


Internet Draft     draft-ietf-policy-conditions-00      26/February/1999


OID                   <to be assigned>
MUST
MAY

   The following auxiliary classes are used to append attributes to the
   class networkingPolicyCondition.

NAME            hostConditionAuxClass
DESCRIPTION     An auxiliary class representing a condition to be
                evaluated in conjunction with a policy rule. The
                condition is based on the communicating end hosts.
DERIVED FROM    top
TYPE            auxiliary
AUXILIARY CLASSES     none
POSSIBLE SUPERIORS    networkingPolicyCondition
OID                   <to be assigned>
MUST
MAY                   sourceIPAddressRange
                      destinationIPAddressRange
                    sourceHostID
                    destinationHostID

NAME                userConditionAuxClass
DESCRIPTION         An auxiliary class representing a condition to be
                    evaluated in conjunction with a policy rule. The
                    condition is based on the communicating users.
DERIVED FROM        top
TYPE                auxiliary
AUXILIARY CLASSES   none
POSSIBLE SUPERIORS  networkingPolicyCondition
OID                 <to be assigned>
MUST
MAY                 senderID
                    receiverID


NAME                applicationConditionAuxClass
DESCRIPTION         An auxiliary class representing a condition to be
                    evaluated in conjunction with a policy rule. The
                    condition is based on the nature of traffic, the
                    transport layer in use and the application.
DERIVED FROM        top
TYPE                auxiliary
AUXILIARY CLASSES   none
POSSIBLE SUPERIORS  networkingPolicyCondition
OID                 <to be assigned>
MUST
MAY                  applicationName



rajan,kamat,bhattacharya         Expires 25/August/1999         [Page v]


Internet Draft     draft-ietf-policy-conditions-00      26/February/1999


                     sourcePortRange,
                     destinationPortRange,
                     protocolNumberRange,
                     receivedTOSByteCheck


NAME                 routeConditionAuxClass
DESCRIPTION          An auxiliary class representing a condition to be
                     evaluated in conjunction with a policy rule. The
                     condition is based on the routing of the packet
                     through a device e.g. incoming and outgoing
                     interfaces.
DERIVED FROM         top
TYPE                 auxiliary
AUXILIARY CLASSES    none
POSSIBLE SUPERIORS   networkingPolicyCondition
OID                  <to be assigned>
MUST
MAY                  interface


NAME                layer2ConditionAuxClass
DESCRIPTION         An auxiliary class representing a condition to be
                    evaluated in conjunction with a policy rule. The
                    condition is based on the nature of traffic, the
                    transport layer in use and the application
                    generating data.
DERIVED FROM        top
TYPE                auxiliary
AUXILIARY CLASSES   none
POSSIBLE SUPERIORS  networkingPolicyCondition
OID                 <to be assigned>
MUST
MAY                  sourceMACAddress
                     destinationMACAddress
                     802.1QVLANId
                     SNAPHeaderValue
                     etherTypeValue
                     DSAP
                     SSAP
                     encapsulationType
                     encapsualtionValue









rajan,kamat,bhattacharya        Expires 25/August/1999         [Page vi]


Internet Draft     draft-ietf-policy-conditions-00      26/February/1999


2.3. Rationale behind the class structure

   There are two design choices that we need to justify in the manner
   of extending policyCondition.  First, the decision to choose
   particular condition categories and the second the choice of class
   structures, especially the use of auxiliary classes.  The three
   categories - users, hosts and applications - are very natural to
   administrative decision making.  The need to define policies in terms
   of a dynamic category such as routing requires some explanation,
   however.  Consider, for instance, a corporation that has its
   campuses connected by a leased line infrastructure with a backup
   connection over the internet.  When the primary network is down, it
   is prudent policy to require that inter-campus traffic be encrypted.
   There are many ways to enforce this, for instance instruct access
   routers to encrypt traffic based on the destination as well as the
   outgoing interface.  Similar examples may be considered for QoS as
   well, where a high grade reservation is made over a primary ISP
   backbone, with a lower grade backup reservation triggered by routing
   changes.  A number of different class hierarchies are feasible
   even when we have determined the categories we wish to represent,
   and their attributes.  For instance, one choice would have been to
   associate all the attributes of users, applications, hosts, etc,
   to the class policyCondition.  Why subclass at all?  The answer
   is extensibility.  Suppose the same information model is used to
   represent policy conditions for DHCP. While we would like to have
   host attributes to express this condition, layer 2 attributes may
   be totally irrelevant.  The subclass networkingPolicyCondition
   allows us to group all the conditions required for the purpose of
   expressing networking policy without requiring that all extensions
   have the same condition attributes.  Now the design choice that
   comes directly from the above is to associate all attributes we
   want - those of users, hosts, applications, etc - all the class
   networkingPolicyCondition (as optional attributes, say).  Will this
   not have the same result as the structure presented above?  The issue
   again is extensibility.  If one vendor desires to extend the category
   application, a second only wants to represent users in greater
   depth, and a third wants to do both, then they dont have to extend
   networkingPolicyCondition in slightly different ways.  Further,
   the auxiliary classes hostPolicyAuxClass, etc, may be associated
   with other subclasses of policyCondition, DHCPpolicyCondition for
   instance, in a selective manner.  Finally, the advantage of auxiliary
   classes is that they allow us to mix and match attributes creating
   fewer objects, when compared to subclasses.


3. Attributes of HostConditionAuxClass

NAME            sourceIPAddressRange



rajan,kamat,bhattacharya        Expires 25/August/1999        [Page vii]


Internet Draft     draft-ietf-policy-conditions-00      26/February/1999


DESC            Source IP addresses to which the policy applies
SYNTAX          IA5String
EQUALITY        caseExactIA5Match
MULTI-VALUED
FORMAT          sourceIPAddressRange may be described in any of the
                following formats.
         1    The string ``1''
                Indicates policy applies to locally generated packets.

         2-<IPv4Address>-<CIDRPrefixLength>
                        Three dash (-) seperated strings. The IP-v4
                        address is in dotted decimal format. The
                        CIDRPrefixLength is the number of unmasked leading
                        bits. A packet matches the condition if the
                        unmasked bits on the packet are identical to the
                        unmasked bits on the condition.

         3-<IPv4Address>-<IPv4Address>
                        IP-v4 addresses in dotted decimal format. The
                        second address must be no smaller than the first.
                        The first denotes the start of the range, and the
                        second denotes the end of the range. A packet
                        matches the condition if its source address is no
                        smaller than the first IP address in the
                        condition, and no larger than the second.

         4-<IPv6Address>-<IPv6Address>
                        IP-v6 addresses in any of the formats supported in
                        RFC 2373. The second address must be no smaller
                        than the first. The first denotes the start of the
                        range, and the second denotes the end of the
                        range. A packet matches the condition if its
                        source address is no smaller than the first
                        address in the condition, and no larger than the
                        second.

DEFAULT                 Defaults to the entire address range, i.e., every
                        packet matches the source address range condition.
EXAMPLES        2-83.23.23.1-24
                A packet with source address 83.23.23.5 matches.
                A packet with source address 83.23.24.1 does not.

                3-83.23.23.0-83.28.28.0
                A packet with source address 83.23.23.5 matches.
                A packet with source address 83.29.24.1 does not.


NAME            destinationIPAddressRange



rajan,kamat,bhattacharya       Expires 25/August/1999        [Page viii]


Internet Draft     draft-ietf-policy-conditions-00      26/February/1999


DESC            destination IP addresses to which policy applies
SYNTAX          IA5String
EQUALITY        caseExactIA5Match
MULTI-VALUED
FORMAT          Identical to that of sourceIPAddressRange above.
                The value of ``1''indicates a locally destined
                packet.
DEFAULT         Defaults to the entire address range, i.e., every
                packet matches the destination address range
                condition.

NAME            sourceHostID
DESC            Source Host Identifier
SYNTAX          IA5String
EQUALITY        caseExact1A5Match
MULTI-VALUED
FORMAT          Two strings, colon (`:) seperated, the first
                describing the ID type and the second the ID
                value. The following IdTypes and their
                corresponding values are as defined in [2].
                Host-FQDN:<ID>
                X500-DN:<ID>
                X500-GN:<ID>
                Key-Id:<ID>
DEFAULT         Any ID is considered valid.

NAME            destinationHostID
DESC            Destination Host Identifier
SYNTAX         IA5String
EQUALITY        caseExact1A5Match
MULTI-VALUED
DEFAULT         Any ID is considered valid.
FORMAT          Same as SourceHostID.


4. Attributes of UserConditionAuxClass

NAME            senderID
DESC            Source User Identifier
SYNTAX          IA5String
EQUALITY        caseExact1A5Match
MULTI-VALUED
FORMAT          Two strings colon (:) seperated, the first
                describing the ID type and the second the ID
                value. The following ID Types and their
                corresponding values are as defined in [2].
                User-FQDN:<ID>
                X500-DN:<ID>



rajan,kamat,bhattacharya        Expires 25/August/1999         [Page ix]


Internet Draft     draft-ietf-policy-conditions-00      26/February/1999


                X500-GN:<ID>
                Key-Id:<ID>
DEFAULT         Any ID is considered valid.

NAME            receiverID
DESC            Destination User Identifier
SYNTAX          IA5String
EQUALITY        caseExact1A5Match
MULTI-VALUED
DEFAULT         Any ID is considered valid.
FORMAT          Same as SourceHostID.


5. Attributes of ApplicationConditionAuxClass

NAME            sourcePortRange
DESC            Source Ports to which policy applies
SYNTAX          IA5String
EQUALITY        caseExactIA5Match
MULTI-VALUED
FORMAT          String consisting of two colon separated positive
                integers, the second no smaller than the first, or
                one positive integer.
DEFAULT         Defaults to the entire port range 0 to 65535, i.e.
                every packet matches the destination address range
                condition.
EXAMPLE         8000:8080 (ports 8000 to 8080),
                8000 (only port 8000)

NAME            destinationPortRange
DESC            Destination Ports to which policy applies
SYNTAX          IA5String
EQUALITY        caseExactIA5Match
MULTI-VALUED
FORMAT          String consisting of two colon separated positive
                integers, the second no smaller than the first, or
                one positive integer.
DEFAULT        Defaults to the entire port range 0 to 65535, i.e.
                every packet matches the source address range
                condition.

NAME            protocolNumberRange
DESC            Protocol numbers to which policy applies
SYNTAX          INTEGER
EQUALITY        integerMatch
MULTI-VALUED
FORMAT          String consisting of two colon separated positive
                integers, the second no smaller than the first, or



rajan,kamat,bhattacharya         Expires 25/August/1999         [Page x]


Internet Draft     draft-ietf-policy-conditions-00      26/February/1999


                one positive integer.
DEFAULT         Defaults to the entire protocol range 0 to 255,
                i.e., every packet matches the ip protocol range
                condition.
EXAMPLE         50:51 (protocol 50 to 51),
                50 (only protocol 50)

NAME            receivedTOSByteCheck
DESC            A condition attribute used to select traffic based
                on the contents of the TOS byte of the received
                packet's IP header
SYNTAX          IA5String
EQUALITY        caseExactIA5Match
MULTI-VALUED
FORMAT          String of the form xxxxxxxx:xxxxxxxx, where each
                of the x's is either 0 or 1.
SEMANTICS       Each of the substrings is treated as specifying an
                8-bit field. The left substring is termed Mask and
                the right substring Match. The TOS byte of the
                received packet's IP header is ANDed with Mask and
                the result is compared against Match. The
                combination of Mask and Match allows definition of
                TOS byte based conditions where certain bits in
                the TOS byte may be ignored for the purpose of
                comparison. Note that <Mask> is superior to
                <Match> in that TOS bit positions corresponding to
                a Mask bit of 0 are ignored irrespective of the
                corresponding <Match> bit.
EXAMPLE         An incoming packet with TOS byte 11001010 matches
                the condition specified by a value of
                00111100:00001000 for receivedTOSByte.


6. Attributes of RouteConditionAuxClass

NAME            interface
DESC            An attribute that limits the scope of the policy
                to packets on specified  interface(s) and the
                direction(s) of traffic on these.
SYNTAX          IA5String
EQUALITY        caseExactIA5Match
MULTI-VALUED
FORMAT          Three colon separated strings. The left-most
                string is a numeral denoting the type of the
                specification, followed by the incoming and
                outgoing interface identifiers. Currently defined
                type/value formats are




rajan,kamat,bhattacharya        Expires 25/August/1999         [Page xi]


Internet Draft     draft-ietf-policy-conditions-00      26/February/1999


                1-<IPv4Address>-<IPv4Address>
                2-<IPv6Address>-<IPv6Address>
                3-<InterfaceID>-<InterfaceID>

                The IP addresses are in dotted decimal notation.
                The interface IDs are integers unique to the host
                device. The first address string specifies a
                restriction of the rule to traffic inbound on the
                interface, and the rightmost string specifies a
                corresponding restriction of the rule to traffic
                outbound from that interface.  An unspecified
                interface(s) defaults to all interfaces on the
                device that this rule applies to.
DEFAULTS        Defaults to traffic inbound on all interfaces,
                outbound on all interfaces.

EXAMPLE         1-9.3.1.52-9.2.1.54
               (Applies to traffic inbound on 9.3.1.52
                and outbound on 9.3.1.54)

                1-9.3.1.32-
                (Applies to traffic inbound on 9.3.1.52 outbound
                on any interface)

                1- -3
                (Applies to traffic outbound on interface 3 and
                inbound on any interface)


7. Attributes of Layer2ConditionAuxClass

NAME            sourceMACAddress
DESC            The sourceMACAddress(es) to which the  policy
                applies.
EQUALITY        CaseIgnoreIA5String
SYNTAX          IA5String
MULTI-VALUED
FORMAT          The IEEE Canonical representation of the MAC
                address.
Default         Entire range of values

NAME            destinationMACAddress
DESC            The destination MAC Address(es) to which the
                policy applies.
EQUALITY        CaseIgnoreIA5String
SYNTAX          IA5String
MULTI-VALUED
FORMAT          Same as sourceMACAddress



rajan,kamat,bhattacharya        Expires 25/August/1999        [Page xii]


Internet Draft     draft-ietf-policy-conditions-00      26/February/1999


Default         Entire range of values

NAME             802.1QVLANID
DESC             The VLAN identified by the value in the 802.1Q
                 VLAN tag.
EQUALITY         IntegerMAtch
SYNTAX           Integer
MULTI-VALUED
FORMAT           The VLAN id in the 802.1Q defined header.
Default          Entire range of values

NAME             SNAPHeaderValue
DESC             The value contained in the SNAP header that
                 identifies the protocol contained in the frame.
EQUALITY         caseIgnoreIA5Match
SYNTAX           IA5String
MULTI-VALUED
FORMAT          A string representing the hexadecimal value that
                would appear in the SNAP header to identify the
                protocol.

Default         Entire range of values

NAME            ethertypeValue
DESC           The value contained in the ethertype portion of
               the frame header identifying the protocol
               contained in the frame.
EQUALITY        caseIgnoreIA5Match
SYNTAX          IA5String
MULTI-VALUED
FORMAT          A string representing the hexadecimal value that
                would appear in the ethertype header to identify
                the protocol.

NAME            DSAP
DESC            The value contained in the destination SAP of
                the frame that can be used to identify the frame
                e.g. a DSAP value of 0x04 identifies SNA frames.
EQUALITY        caseIgnoreIA5Match
SYNTAX          IA5String
MULTI-VALUED
FORMAT          A string representing the hexadecimal value that
                would appear in the DSAP header to identify the
                protocol.

NAME            SSAP
DESC            The value contained in the source SAP of the frame
                that can be used to identify the frame



rajan,kamat,bhattacharya       Expires 25/August/1999        [Page xiii]


Internet Draft     draft-ietf-policy-conditions-00      26/February/1999


                e.g a SSAP value of 0x04 identifies SNA frames.
EQUALITY        caseIgnoreIA5Match
SYNTAX          IA5String
MULTI-VALUED
FORMAT          A string representing the hexadecimal value that
                would appear in the SSAP header to identify the
                protocol.


8. Security Considerations

   There are two potential security considerations, both of which may
   be addressed through standards compliant mechanisms.  The first
   is the unauthorized access to read or change policy rules and
   related objects in the directory repository.  The schema in this
   document SHOULD be used in conjunction with an LDAP access control
   mechanisms.  The second exposure for violation of security lies in
   the communication between policy decision point and the directory
   repository.  Such communication SHOULD be secured, with both ends
   mutually authenticated using SSL/TLS or IPSec.


Acknowledgments

   We would like to acknowledge Debasish Biswas for his original
   suggestion to use auxiliary classes in this context.  We would like
   to also thank Jean Christophe Martin, Michael See and Skip Booth for
   many useful suggestions.


References

    [1] J. Strassner and E. Ellesson, Policy Framework Core Information
        Model", draft-ietf-policy-core-schema-01.txt, February 1999.

    [2] D. Piper, ``The Internet IP Security Domain Of Interpretation
        for ISAKMP'', draft-ietf-ipsec-doi-07

    [3] Bhattacharya, P., and R. Adams, W. Dixon, R. Pereira, R. Rajan,
        "An LDAP Schema for Configuration and Administration of IPSec
        based Virtual Private Networks (VPNs)", Internet-Draft work in
        progress, October 1998

    [4] Rajan, R., and J. C. Martin, S. Kamat, M. See, R. Chaudhury,
        D. Verma, G. Powers, R. Yavatkar, "Schema for Differentiated
        Services and Integrated Services in Networks", Internet-Draft
        work in progress, October 1998




rajan,kamat,bhattacharya        Expires 25/August/1999        [Page xiv]


Internet Draft     draft-ietf-policy-conditions-00      26/February/1999


    [5] Bradner, S., "Key words for use in RFCs to Indicate Requirement
        Levels", BCP 14, RFC 2119, March 1997.


AUTHOR'S ADDRESS

   Raju Rajan IBM Research 30 Saw Mill River Road Hawthorne, NY 10532
   email:  raju@watson.ibm.com


Full Copyright Statement

   Copyright (C) The Internet Society (1997).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph
   are included on all such copies and derivative works.  However,
   this document itself may not be modified in any way, such as by
   removing the copyright notice or references to the Internet Society
   or other Internet organizations, except as needed for the purpose
   of developing Internet standards in which case the procedures
   for copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.  The limited permissions granted above are perpetual and
   will not be revoked by the Internet Society or its successors or
   assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.















rajan,kamat,bhattacharya        Expires 25/August/1999         [Page xv]