<?xml version="1.0" encoding="iso-8859-1"?>
<!--
     vim: set softtabstop=2 shiftwidth=2 expandtab
     version=20150108
-->
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc strict="no" ?>
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes" ?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC7491 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7491.xml">
]>
<rfc category="info"
     docName="draft-kumar-i2nsf-client-facing-interface-im-00"
     ipr="trust200902">
  <front>
    <title abbrev="Client Interface Information Model">Information model for
    Client-Facing Interface to Security Controller</title>

    <author fullname="Rakesh Kumar" initials="R." surname="Kumar">
      <organization>Juniper Networks</organization>

      <address>
        <postal>
          <street>1133 Innovation Way</street>

          <city>Sunnyvale</city>

          <region>CA</region>

          <country>US</country>

          <code>94089</code>
        </postal>

        <email>rkkumar@juniper.net</email>
      </address>
    </author>

    <author fullname="Anil Lohiya" initials="A." surname="Lohiya">
      <organization>Juniper Networks</organization>

      <address>
        <postal>
          <street>1133 Innovation Way</street>

          <city>Sunnyvale</city>

          <region>CA</region>

          <country>US</country>

          <code>94089</code>
        </postal>

        <email>alohiya@juniper.net</email>
      </address>
    </author>

    <author fullname="Dave Qi" initials="D." surname="Qi">
      <organization>Bloomberg</organization>

      <address>
        <postal>
          <street>731 Lexington Avenue</street>

          <city>New York</city>

          <region>NY</region>

          <country>US</country>

          <code>10022</code>
        </postal>

        <email>DQI@bloomberg.net</email>
      </address>
    </author>

    <author fullname="Nabil Bitar" initials="N." surname="Bitar">
      <organization>Nokia</organization>

      <address>
        <postal>
          <street>755 Ravendale Drive</street>

          <city>Mountain View</city>

          <region>CA</region>

          <country>US</country>

          <code>94043</code>
        </postal>

        <email>nabil.bitar@nokia.com</email>
      </address>
    </author>

    <author fullname="Senad Palislamovic" initials="S." surname="Palislamovic">
      <organization>Nokia</organization>

      <address>
        <postal>
          <street>755 Ravendale Drive</street>

          <city>Mountain View</city>

          <region>CA</region>

          <country>US</country>

          <code>94043</code>
        </postal>

        <email>senad.palislamovic@nokia.com</email>
      </address>
    </author>

    <author fullname="Liang Xia" initials="L." surname="Xia">
      <organization>Huawei</organization>

      <address>
        <postal>
          <street>101 Software Avenue</street>

          <city>Nanjing</city>

          <region>Jiangsu</region>

          <country>China</country>

          <code>210012</code>
        </postal>

        <email>Frank.Xialiang@huawei.com</email>
      </address>
    </author>

    <date year="2016"/>

    <area>Security</area>

    <workgroup>I2NSF Working Group</workgroup>

    <keyword>I2NSF</keyword>

    <abstract>
      <t>This document defines information model for the client-facing
      interface to security controller based on the requirements identfied
      in the <xref target="I-D.kumar-i2nsf-client-facing-interface-req"/>.
      The information model defines various managed objects and the
      relationship among these objects needed to build the client interfaces.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="introduction" title="Introduction">
      <t>The security controller's client-facing interfaces would be built
      using a set of objects, with each object capturing a unique set of
      information from security admin. The objects may have relationship
      with other objects to express complete requirement. An information
      model captures the managed objects and relationship among these. The
      information model proposed in this draft is in accordance with the
      client interface requirements as defined in <xref
      target="I-D.kumar-i2nsf-client-facing-interface-req"/>.</t>

      <t>The <xref target="RFC3444"/> explains the difference between
      information and data model. This draft use those guidlines to define the
      information model in this draft. A data model, that represents an
      implementation of this proposed information model in a specific data
      representation language, will be defined in a separate draft.</t>
    </section>

    <section anchor="conventions" title="Conventions Used in this Document">
      <t><list style="hanging">
          <t hangText="BSS:">Business Support System</t>

          <t hangText="CLI:">Command Line Interface</t>

          <t hangText="CMDB:">Configuration Management Database</t>

          <t hangText="Controller:">Used interchangeably with Service Provider
          Security Controller or management system throughout this
          document</t>

          <t hangText="CRUD:">Create, Retrieve, Update, Delete</t>

          <t hangText="FW:">Firewall</t>

          <t hangText="GUI:">Graphical User Interface</t>

          <t hangText="IDS:">Intrusion Detection System</t>

          <t hangText="IPS:">Intrusion Protection System</t>

          <t hangText="LDAP:">Lightweight Directory Access Protocol</t>

          <t hangText="NSF:">Network Security Function, defined by <xref
          target="I-D.ietf-i2nsf-problem-and-use-cases"/></t>

          <t hangText="OSS:">Operation Support System</t>

          <t hangText="RBAC:">Role Based Access Control</t>

          <t hangText="SIEM:">Security Information and Event Management</t>

          <t hangText="URL:">Universal Resource Locator</t>

          <t hangText="vNSF:">Refers to NSF being instantiated on Virtual
          Machines</t>
        </list></t>
    </section>

    <section anchor="multi-tenancy"
             title="Information Model for Multi Tenancy">
      <t>The multi-tenancy is an important aspect of any application that
      enables multiple administrative domains for managing the application
      resources. An oganization may have multiple tenants or departments
      such as HR, Finance, Legal, with each tenant having a need to manage
      its own security policies.</t>

      <t>There are multiple managed objects that constitute multi-tenancy aspects.
      This section lists these objects and any relationship among these objects.</t>

      <section anchor="policy-domain" title="Policy-Domain">
        <t>This object defines an oragnization boundary for the purpose of
        policy management. This may vary based on how security controller is
        deployed and hosted. For example, if an Enterprise host a security controller
        in their network; the domain in this case could just be the one that
        reperesents that Enterprise. But if a cloud service provider host
        managed services, then a domain could represent a single customer of
        the service provider. The multi-tenancy model should be applicable
        in all such environments.</t>

        <t>The domain object SHALL have following infomation: <list
            style="hanging">
            <t hangText="Name:"> Name of the organization or customer representing
            this domain </t>

            <t hangText="Address:"> Address of the organization or customer </t>

            <t hangText="Contact:"> Contact information of the organization or
            customer </t>
            
            <t hangText="Date:"> Date this account was created or last modified </t>

            <t hangText="Authentication Method:">  Authentication method to be
            used for this domain. It should be reference to a 'policy-management-auth-method'
            object </t>
          </list></t>
      </section>

      <section anchor="policy-tenant" title="Policy-Tenant">
        <t>This object defines an entity within an organization that wants to
        manage its own security posture. The entity could be a department or
        a division that manages its own security policies  due to regulatory
        compliance or organizational structure.</t>

        <t>The tenant object SHALL have the following information: <list
            style="hanging">
            <t hangText="Name:"> Name of the department or division within an
            organization </t>

            <t hangText="Date:"> Date this account was created or last modified </t>

            <t hangText="Domain:"> This field identifies the domain to which this
            tenent belongs. This should be reference to a 'policy-domain' object </t>
          </list></t>
      </section>

      <section anchor="policy-role" title="Policy-Role">
        <t>This object defines a set of permissions assigned to a user in an
        organization that want to manage its own security posture. It provides
        a convenient way to assign policy users to a job function or set of
        permissions within the organization.</t>

        <t>The role object SHALL have following information: <list
            style="hanging">
            <t hangText="Name:"> This field identifies the name of the role </t>

            <t hangText="Date:"> Date this role was created or last modified </t>

            <t hangText="Access Profile:"> This field identifies the access
            profile for the role. The profile grants or denies access
            to policy objects. Multiple access profiles can be concatenated
            together </t>
          </list></t>
      </section>

      <section anchor="policy-user" title="Policy-User">
        <t>This object represents a unique identity within an organization. This
        identity authenticates with the security controller using credentials
        such as a password or token in order to do policy management. A user may
        be an individual, system, or application requiring access to security
        controller.</t>

        <t>The user object SHALL have following information: <list
            style="hanging">
            <t hangText="Name:"> Name of the user</t>

            <t hangText="Date:"> Date this user was created or last modified </t>

            <t hangText="Password:"> User password for basic authentication </t>

            <t hangText="Email:"> E-mail address of the user </t>

            <t hangText="Scope Type:"> This field identifies whether the user
            has domain-wide or tenent-wide privileges </t>

            <t hangText="Scope Reference:"> This field should be reference to either
            a 'policy-domain' or a 'policy-tenant' object </t>

            <t hangText="Role:"> This field should be reference to a 'policy-role'
            object that defines the specific permissions </t>
          </list></t>
      </section>

      <section anchor="policy-management-auth-method"
               title="Policy-Management-Authentication-method">
        <t>This object represents authentication schemes supported by security
        controller.</t>

        <t>This object SHALL have following information: <list
            style="hanging">
            
            <t hangText="Name:"> This field identifies the name of this object </t>
            
            <t hangText="Date:"> Date this object was created or last modified </t>

            <t hangText="Authentication Method:"> This field identifies the
            authentication methods. It could be a password based, token based,
            certificate based or single sign-on authentication </t>
            
            <t hangText="Mutual Authentication:"> This field indicates whether mutual
            authentication is mandatory or not</t>

            <t hangText="Token Server:"> This field stores the information about
            server that validates the token submitted as credentials </t>

            <t hangText="Certificate Server:"> This field stores the infromation
            about server that validates certificates submitted as credentials </t>

            <t hangText="Single Sign-on Server:"> This field stores the infromation
            about server that validates user credentials</t>
          </list></t>
      </section>
    </section>

    <section anchor="Policy-endpoint-group"
             title="Information Model for Policy Endpoint Groups">
      <t>The policy endpoint groups are very important part of building user-construct
      policy. The security admins could use these objects to represent a logical entity
      in their business enviroment, where a security policy is to be applied. </t>

      <t>There are multiple managed objects that constitute policy endpoint
      groups. This section lists these objects and relationship among these
      objects.</t>

      <section anchor="meta-data-source" title="Meta Data Source">
        <t>This object represents information source for the meta-data or tag.
        The meta-data in a group must be mapped to corresponding contents to
        enforce a security policy.</t>

        <t>The meta data source object SHALL have following information: <list
            style="hanging">
            
            <t hangText="Name:"> This field identifies the name of this object </t>
            
            <t hangText="Date:"> Date this object was created or last modified </t>

            <t hangText="Tag Type:"> This field identifies the Endpoint group
            type. It can be either a 'User' group or 'App' group or
            'Device' group, or 'Location' group based policy </t>

            <t hangText="Tag Server Information:"> This field identifies the information
            related to the source of the tag such as IP address and UDP/TCP
            port information </t>

            <t hangText="Tag Application Protocol:"> This filed identifies the protocol
            e.g. LDAP, Active Directory, or CMDB </t>
            
            <t hangText="Tag Server Credentials:"> This field identifies the
            credential information needed to access the tag server </t>
          </list></t>
      </section>

      <section anchor="user-group" title="User-Group">
        <t>This object represents a user group based on either tag or other
        information. </t>

        <t>The user-group object SHALL have following information: <list
            style="hanging">
            
            <t hangText="Name:"> This field identifies the name of this object </t>
            
            <t hangText="Date:"> Date this object was created or last modified </t>

            <t hangText=" Group Type:"> This field identifies whether the user
            group is based on 'User-tag', 'User-names', or 'IP-addresses' </t>

            <t hangText="Meta-data Server:"> This field should be reference to
            a 'meta-data-source' object </t>

            <t hangText="Group Member:"> This field is the 'User-tag, or
            'User-names', or IP addresses based on the 'Group Type' </t>

            <t hangText="Risk Level:">This field represents the threat level;
            valid range may be 0 to 9 </t>
          </list></t>
      </section>

      <section anchor="device-group" title="Device-Group">
        <t>This object represents a device group based on either tag or other
        information.</t>

        <t>The device-group object SHALL have following information: <list
            style="hanging">
            
            <t hangText="Name:"> This field identifies the name of this object </t>
            
            <t hangText="Date:"> Date this object was created or last modified </t>

            <t hangText=" Group Type:"> This field identifies whether the device
            group is based on 'Device-tag' or 'Device-names', or IP addresses </t>
            
            <t hangText="Meta-data Server:"> This field should be reference to
            a 'meta-data-source' object </t>
            
            <t hangText="Group Member:"> This field is the 'Device-tag, or
            'Device-names', or IP addresses based on the 'Group Type' </t>

            <t hangText="Risk Level:">This field represents the threat level;
            valid range may be 0 to 9 </t>
          </list></t>
      </section>

      <section anchor="application-group" title="Application-Group">
        <t>This object represents an application group based on either tag or
        other information.</t>

        <t>The application-group object SHALL have following information: <list
            style="hanging">
            
            <t hangText="Name:"> This field identifies the name of this object </t>
            
            <t hangText="Date:"> Date this object was created or last modified </t>

            <t hangText=" Group Type:"> This field identifies whether the device
            group is based on 'App-tag' or 'App-names', or IP addresses </t>
            
            <t hangText="Meta-data Server:"> This field should be reference to
            a 'meta-data-source' object </t>
            
            <t hangText="Group Member:"> This field is the 'Device-tag, or
            'Device-names', or IP addresses and port information based on the
            'Group Type' </t>
            
            <t hangText="Risk Level:">This field represents the threat level;
            valid range may be 0 to 9 </t>
          </list></t>
      </section>

      <section anchor="location-group-object" title="Location-Group">
        <t>This object represents an location group based on either tag or
        other information.</t>

        <t>The location-group object SHALL have following information: <list
            style="hanging">
            
            <t hangText="Name:"> This field identifies the name of this object </t>
            
            <t hangText="Date:"> Date this object was created or last modified </t>

            <t hangText=" Group Type:"> This field identifies whether the location
            group is based on 'Location-tag' or 'Location-names', or IP addresses </t>
            
            <t hangText="Meta-data Server:"> This field should be reference to
            a 'meta-data-source' object </t>
            
            <t hangText="Group Member:"> This field is the 'Location-tag, or
            'Location-names', or IP addresses based on the 'Group Type' </t>
            
            <t hangText="Risk Level:">This field represents the threat level;
            valid range may be 0 to 9 </t>
          </list></t>
      </section>
    </section>

    <section anchor="threat-prevention"
             title="Information Model for Threat Prevention">
      <t>The threat prevention plays an important part in the overall security
      posture by reducing the attack surface. This information could come in
      the form of threat feeds such as Botnet, GeoIP usually from a third party
      or external service. </t>

      <t>There are multiple managed objects that constitute this category.
      This section lists these objects and relationship among these
      objects.</t>

      <section anchor="threat-feed" title="Threat-Feed">
        <t>This object represents threat feed such as Botnet servers and
        GeoIP.</t>

        <t>The threat-feed object SHALL have following information: <list
            style="hanging">
            
            <t hangText="Name:"> This field identifies the name of this object </t>
            
            <t hangText="Date:"> Date this object was created or last modified </t>

            <t hangText="Feed Type:"> This field identifies whether a feed type
            is IP address based or URL based.</t>

            <t hangText="Feed Server:"> This field identifies the information
            about the feed provider, it may be an external service or local
            server </t>

            <t hangText="Feed Priority:"> This field represents the feed
            priority level to resolve conflict if there are multiple feed
            sources; valid range may be 0 to 9 </t>
          </list></t>
      </section>

      <section anchor="custom-list" title="Custom-List">
        <t>This object represents custom list created for the purpose of
        defining exception to threat feeds. An organization may want to
        allow certain exception to threat feeds obtained from a third party</t>

        <t>The custom-list object SHALL have following information: <list
            style="hanging">
            
            <t hangText="Name:"> This field identifies the name of this object </t>
            
            <t hangText="Date:"> Date this object was created or last modified </t>

            <t hangText="List Type:"> This field identifies whether the list
            type is IP address based or URL based.</t>

            <t hangText="List Property:"> This field identifies the attributes
            of the list property e.g. Blacklist or Whitelist.</t>

            <t hangText="List Content:"> This field contains the blacklist or
            whitelist contents such as IP addresses or URL names.</t>
          </list></t>
      </section>

      <section anchor="malware-scan-group" title="Malware-Scan-Group">
        <t>This object represents information needed to detect malware. This
        information could come from a local server or uploaded periodically
        from third party. </t>

        <t>The malware-scan-group object SHALL have following information:
        <list style="hanging">
            
            <t hangText="Name:"> This field identifies the name of this object </t>
            
            <t hangText="Date:"> Date this object was created or last modified </t>
            
            <t hangText="Signature Server:"> This field contains information about
            the server from where signatures can be downloaded periodically as
            updates become available </t>

            <t hangText="File Types:"> This field contains list of file types
            needed to be scanned for the virus </t>

            <t hangText="Malware Signatures:"> This field contains list of malware
            signatures or hash </t>
          </list></t>
      </section>

      <section anchor="event-map-group" title="Event-Map-Group">
        <t>This object represents an event map containing security events and
        threat levels used for dyanmic policy enforcement.</t>

        <t>The event-map-group object SHALL have following information: <list
            style="hanging">
            
            <t hangText="Name:"> This field identifies the name of this object </t>
            
            <t hangText="Date:"> Date this object was created or last modified </t>

            <t hangText="Secuirty Events:"> This contains a list of security
            events </t>

            <t hangText="Threat Map:"> This contains a list of threat levels </t>
          </list></t>
      </section>
    </section>

    <section anchor="telemetry-collection"
             title="Information Model for Telemetry Data">
      <t>Telemetry provides visibility into the network activities which can be
      tapped for further security analytics e.g. detecting potential
      vulnerabilities, malicious activities etc. </t>

      <section anchor="telemetry-data" title="Telemetry-Data">
        <t>This object contains information collected for telemetry.</t>

        <t>The telemetry-data object SHALL have following information: <list
            style="hanging">
            
            <t hangText="Name:"> This field identifies the name of this object </t>
            
            <t hangText="Date:"> Date this object was created or last modified </t>

            <t hangText="Logs:"> This field  identifies whether 'Logs' need to
            be collected </t>

            <t hangText="Syslogs"> This field  identifies whether 'Syslogs' need
            to be collected </t>
        
            <t hangText="SNMP:"> This field  identifies whether 'SNMP traps' and
            'SNMP alarms' need to be collected </t>

            <t hangText="sFlow:"> This field identifies whether 'sFlow' data need
            to be collected </t>

            <t hangText="NetFlow:"> This field identifies whether 'NetFlow' data
            need to be collected </t>

            <t hangText="Interface Stats:"> This field identifies whether 'Interface'
            data such as packet bytes and counts need to be collected </t>
          </list></t>
      </section>

      <section anchor="telemetry-source" title="Telemetry-Source">
        <t>This object contains information related to telemetry source. The source
        would be a NSF element in the network.</t>

        <t>The telemetry-source object SHALL have following information: <list
            style="hanging">
            
            <t hangText="Name:"> This field identifies the name of this object </t>
            
            <t hangText="Date:"> Date this object was created or last modified </t>

            <t hangText="Source Type:"> This field contains type of the NSF telemetry
            source: "NETWORK-NSF", "FIREWALL-NSF", "IDS-NSF", "IPS-NSF",
            "PROXY-NSF", "VPN-NSF", "DNS", "ACTIVE-DIRECTORY","IP Reputation
            Authority", "Web Reputation Authority", "Anti-Malware Sandbox",
            "Honey Pot", "DHCP", "Other Third Party", "ENDPOINT" </t>

            <t hangText="NSF Access Parameters:"> This field contains information
            such as IP address and protocol (UDP or TCP) port number of the NSF
            providing telemetry data </t>

            <t hangText="NSF Access Credentials:"> This field contains
            username and passwod to authenticate with the NSF </t>

            <t hangText="Collection Interval:">This field contains time in
            milliseconds between data collections. For example, value of 5000
            means data is streamed to collector every 5 seconds. Value of 0
            means data streaming is event-based.</t>

            <t hangText="Collection Method:">This field contains method of
            collection whether it is PUSH-based or PULL-based </t>

            <t hangText="Heartbeat Interval:">This field contains time in
            seconds the source must send telemetry heartbeat </t>

            <t hangText="QoS Marking:">This field contains DSCP value source
            MUST mark on its generated telemetry packets </t>
          </list></t>
      </section>

      <section anchor="telemetry-destination" title="Telemetry-Destination">
        <t>This object contains information related to telemetry destination.
        The destination is usually a collector which is either a part of
        security controller or external system such as SIEM.</t>

        <t>The telemetry-destination object SHALL have following information:
        <list style="hanging">
            
            <t hangText="Name:"> This field identifies the name of this object </t>
            
            <t hangText="Date:"> Date this object was created or last modified </t>

            <t hangText="Collector State:"> This field contains the state info
            regarding the collector </t>

            <t hangText="Collector Access Parameter:"> This field contains the
            infromation such as IP address and protocol (UDP or TCP) port number
            for the collector's destination </t>

            <t hangText="Collector Access Credentials:"> This field contains the
            username and passwod for the collector </t>

            <t hangText="Data Encoding:"> This field contains the telemetry data
            encoding, which could in the form of a schema </t>

            <t hangText="Data Transport:"> This field contains streaming
            telemetry data protocols: whether it is gRPC, protocol buffer over
            UDP, etc.</t>
          </list></t>
      </section>
    </section>

    <section anchor="policy-definition"
             title="Information Model for Policy Instance">
      <t>In order to enforce a security policy, a policy instance must have complete
      information such as where and when a policy need to be applied. The policy
      instantination is done by combining the managed objects described so far and a
      few others listed below. </t>

      <section anchor="policy-calendar" title="Policy-Calendar">
        <t>This object contains information related to scheduling a policy. The policy
        could be activated based on a time calendar or security event including threat
        level changes.</t>

        <t>The Policy Calendar object SHALL have following information: <list
            style="hanging">
            
            <t hangText="Name:"> This field identifies the name of this object </t>
            
            <t hangText="Date:"> Date this object was created or last modified </t>

            <t hangText="Enforecment Type:"> This field identifies whether the policy
            enforcement is 'ADMIN-ENFORCED' or 'TIME-ENFORCED', or 'EVENT-ENFORCED' </t>

            <t hangText="Time Information:"> This field contains time calendar such as
            'BEGIN-TIME' and 'END-TIME' for one time enforcement or recurring time
            calendar for periodic enforcement </t>

            <t hangText="Event Map:"> This field contains security events and threat map
            when this policy need to be activated </t>
          </list></t>
      </section>

      <section anchor="policy-action" title="Policy-Action">
        <t>This object represents actions that a security admin want to perform based on
        certain traffic class.</t>

        <t>The action object SHALL have following information: <list
            style="hanging">
            
            <t hangText="Name:"> This field identifies the name of this object </t>
            
            <t hangText="Date:"> Date this object was created or last modified </t>

            <t hangText="Primary Action:"> This field identifies the action when a
            policy rule is matched by NSF. The action could be one of 'PERMIT', 'DENY',
            'RATE-LIMIT', 'TRAFFIC-CLASS', 'AUTHENTICATE-SESSION', 'IPS, 'APP-FIREWALL' </t>

            <t hangText="Secondary Action:"> The security admin can also specify
            additional action if a rule is matched. This could be one of 'LOG', 'SYSLOG',
            'SESSION-LOG' </t>
          </list></t>
      </section>

      <section anchor="policy-rule" title="Policy-Rule">
        <t>This object represents rules that a security admin want to define in order
        to express its business objectives through a security policy.</t>

        <t>The policy-rule object SHALL have following information: <list
            style="hanging">
            
            <t hangText="Name:"> This field identifies the name of this object </t>
            
            <t hangText="Date:"> Date this object was created or last modified </t>

            <t hangText="Source:"> This field identfies the source of the traffic.
            This could be reference to either 'Policy Endpoint Group' or 'threat-feed'
            or 'custom-list' if security admin wants to specify the source otherwise
            the default is to match all traffic </t>

            <t hangText="Destination:"> This field identfies the destination of the traffic.
            This could be reference to either 'Policy Endpoint Group' or 'threat-feed'
            or 'custom-list' if security admin wants to specify the destination otherwise
            the default is to match all traffic </t>

            <t hangText="Exception:"> This field identifies the exception consideration
            when 'Source' and 'Destination' are matched for a given communication. This
            should be reference to 'Policy Endpoint Group' object </t>

            <t hangText="Action:"> This field identifies the action taken when 'Source'
            and 'Destination' are matched for a given communication </t>

            <t hangText="Precedence:"> This field identifies the precedence assigned to
            this rule by security admin. This is helpful in conflict resolution when two
            or more rules match a given traffic class </t>
          </list></t>
      </section>

      <section anchor="policy-instance" title="Policy-Instance">
        <t>This object represents a security policy expressed by security admin that
        would be taken by security controller and enforced on NSF as per the instructions
        specfied in policy instance.</t>

        <t>The policy-instance object SHALL have following information: <list
            style="hanging">
            
            <t hangText="Name:"> This field identifies the name of this object </t>
            
            <t hangText="Date:"> Date this object was created or last modified </t>

            <t hangText="Rules:"> This field contains list of rules. If the rule does
            not have a user defined precedence, then any conflict must be manually
            resolved </t>

            <t hangText="Scheduling Type:"> This field specifies when this policy should be
            scheduled. The policy could be scheduled based on time calendar or event-map </t>
            
            <t hangText="Scheduling Information:"> This field contanins either the 'Calendar' or
            'Event-map' based on 'Schedule type' </t>

            <t hangText="Owner:"> This field defines the owner of this policy. Only the
            owner is authrozied to modify the the contents of the policy </t>
          </list></t>
      </section>
    </section>

    <section anchor="iana" title="IANA Considerations">
      <t>This document requires no IANA actions. RFC Editor: Please remove
      this section before publication.</t>
    </section>

    <section anchor="acks" title="Acknowledgements">
        <t>The authors would like to thank Kunal Modasiya, Prakash T. Sehsadri and Srinivas
        Nimmagadda from Juniper Networks for helpful discussions. </t>
    </section>
  </middle>

  <back>
    <references title="Informative References">
      <?rfc include="reference.RFC.3444"?>
      
      <?rfc include="reference.I-D.ietf-i2nsf-terminology"?>

      <?rfc include="reference.I-D.ietf-i2nsf-problem-and-use-cases"?>

      <?rfc include="reference.I-D.kumar-i2nsf-client-facing-interface-req"?>
    </references>
  </back>
</rfc>
