I2RS working group S. Hares
Internet-Draft Q. Wu
Intended status: Standards Track Huawei
Expires: September 9, 2015 J. Tantsura
R. White
Ericsson
March 8, 2015

An Information Model for Basic Network Policy and Filter Rules
draft-hares-i2rs-bnp-info-model-02

Abstract

This document contains the Basic Network Policy and Filters (BNP IM) Information Model which provides a generic model for representing an ordered list of routing policy or filter rules. Filter rules which combine match-condition with action (forwarding or sets) are supported by this policy.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.

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."

This Internet-Draft will expire on September 9, 2015.

Copyright Notice

Copyright (c) 2015 IETF Trust and the persons identified as the document authors. All rights reserved.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.


Table of Contents

1. Introduction

This generic network policy provide a model to support an ordered list of routing policy or an ordered list of filter rule. An ordered list of policy can be used in protocols such as BGP. An ordered list of filters can be used in filtering for routing data traffic or flows. Two examples of the ordered-based filters is the I2RS Filter-based RIBS or flow specification filtering. This generic model can be used to combine filter rules such as: ACLs, Prefix-filtering, and complex filter match-actions rules (match, set, modify, set).

This generic model combines rules for filter/policy into groups of groups. project.

Antecedents to this generic policy are the generic policy work done in PCIM WG. The PCIM work contains a Policy Core Information Model (PCIM) [RFC3060], Policy Core Informational Model Extensions [RFC3460] and the Quality of Service (QoS) Policy Information Model (QPIM) ([RFC3644]) From PCIM comes the concept that policy rules which are combined into policy groups. PCIM also refined a concept of policy sets that allowed the nesting and aggregation of policy groups. This generic model did not utilize the concept of sets of groups, but could be expanded to include sets of gorups in the future.

Policy rules may include specific filters such as ACL or prefix filters by simple reference. The following drafts provide these more specific filters;

2. Definitions and Acronyms

3. Generic Route Filters/Policy Overview

This generic policy model represents filter or routing policies as rules and groups of rules.

The basic concept are:

Rule Group


A rule group is is an ordered set of rules .
Rule


A Rule is represented by the semantics “If Condition then Action”. A Rule may have a priority assigned to it.

 
	+-----------+     +------------+		
	|Rule Group |     | Rule Group |
    +-----------+     +------------+					
       	 ^                  ^                +----------------+
         |                  |             ---| ACL Rules      |
         |                  |             |  |   Additions    |
         |                  |             |  +----------------+
         |                  |             |  +----------------+
+--------^-------+   +-------^-------+    |--|Prefix  Rule    |
|      Rule      |   |     Rule      |<----|  Additions    |
+----------------+   +---------------+    |  +----------------+
                       :          :       |      . . .
                       :          :       |  +----------------+
                 ......:          :.....  ---|Other Rules     |
                 :                     :     | Additions      |
                 :                     :     +----------------+
                 :                     :
       +---------V---------+         +-V-------------+
       |  Rule Condition   |         |  Rule Action  |
       +-------------------+         +---------------+
           :     :    :                 :     :    :
      .....:     .    :.....       .....:     .    :.....
      :          :         :       :          :         :
 +----V---+  +---V----+ +--V---+ +-V------++--V-----++--V---+
 |  Match |  | match  | |match | | Action || action ||action|
 |Operator|  |Variable| |Value | |Operator||Variable|| Value|
 +--------+  +--------+ +------+ +--------++--------++------+

           Figure 1: BNP structure
		

4. BNP Rule Groups

Rule groups have the following elements:

The rule has the following elements: name, order, status, priority, reference cnt, and match-action as shown as shown in figure 2. The order indicates the order of the rule within the list. The status of the rule is (active, inactive). The priority is the priority within a specific order of policy/filter rules. A reference count (refcnt) indicates the number of entities (E.g. network modules) using this policy. The generic rule match-action conditions have match operator, a match variable and a match value. The rule actions have an action operator, action variable, and an action value.

The generic rules can be included with other types of rules as figure 2 shows.

                  Figure 2 - Rule Group 
     +-------------------------------------+ (optional) 
     |             Rule Group              |....
     +--------------------------------------+   :
       *      *                   *        ^    :
       |      |                   |        :....:
       |      |                   |        
       |      |                   |        
  +------+ +-----+   +-------------------+
  | Name | |Role |   |     Rule_list     |
  |      | |     |   |                   |
  +------+ +-----+   +------|------------+
            *   *    +------|-----------+
            |   |    |   rule           |
            |   |    +--|---------------+			
            |   |       |                     
         +--+   |       | +----------+   
         |       |-|   Name   |      
         |      |       | +----------+      
    +----+---+ ++----+  | +----------+
    |Resource  |Scope|  | | + Rule   |
    +--------+ +-----+  |-| order    |
                        | +----------+   
                        | +----------+ 
                        |-| Status   |
                        | +----------+
                        | +----------+				
                        |-| priority |  
                        | +----------+   
                        | +----------+   
                        |-| refcnt   |
                        | +----------+ 
                        | +--------------+
                        |-|    Rule      |
                          | match/action |					   
                          +-----|--------+
                                |
       +----|--------------|----|-----------+	
            |              |	            | 
    +-------|-------+ +----|---------+ +----|---------+  . . . 
    |  bnp generic  | | Access rule  | | Prefix-list  | 
    |  match/action | | match/action | | rule         |				   
    +---------------+ +--------------+ +--------------+
					 
      

		  
		  Figure 3 - Rule's match-condition

            +----------------+
            |     Rule       |
            | Match/action   |  
            +----------------+    
              *           *   
              |           |   
              |           |
     +---------+        +--------+
 ...>|Condition|<.......| Action |<...
 :   +---------+<.......+--------+   :
 :    :   *                *    :    :
 :.....   |                :    :... :
          |                :
     +--------+...........:
     |Operator|
     +--------+
		

The conditions in one rule may cause actions to set values (E.g. BGP communities) that are examined in a second rule as shown in figure 3.

The generic match conditions are specific to a particular layer are refined by matches to a specific layer (as figure 4 shows), and figure 5's high-level yang defines. The general actions may be generic actions that are specific to a particular layer (L1, L2, L3, service layer) or general forwarding by interface or nexthop. The high-level yang diagram for the matches in figure 5.

	   Figure 4 
                 +-------------+
                 |  Match      |
                 |  Condition  |
                 +-------|-----+
                         |
         +-------------+-|-----------+-----------+
         |             |             |           |
         V             V             V           V
   ............  ............  ............ ...........
   :    L1    :  :    L2    :  :    L3    : : Service :  
   :  match   :  :   match  :  :   match  : : match   :
   ''''''''''''  ''''''''''''  '''''''''''' '''''''''''
   

5. BNP Generic Info Model in High Level Yang

 
   Figure 5 
	module:bnp-generic-rules
	  import ietf-acl 
	  import ietf-interface
	  +-rw rule-group* [group-name]
	    +--rw group-name
	    +--rw group-scope
	    |  +--resource  tree-identity 
	    |  +--access    access-identity
        +--rw group-installer install-identity		
        +--rw rule*  [rule-name]
           +--rw rule-name string
           +--rw order unit16
		   +--rw installer 
           +--rw status enumeration
           |  +--ro rules-status
           |  +--ro rule-inactive-reason
           |  +--ro rule-installer 		   
           +--rw priority unit16
           +--rw refcnt unit16 
           +--rw rule-match-act
              +--rw match-act-type match-act-type-identity 
                 +--case: BNP-GENERIC-MATCH-ACTION
                 |  +--rw bnp-term-match 
                 |  |  +--case: interface-match
                 |  |  +--case: L1-header-match 
                 |  |  +--case: L2-header-match
                 |  |  +--case: L3-header-match
                 |  |  +--case: L4-header-match
                 |  |  +--case: Service-header-match
                 |  +--rw bnp-action 
                 |  |  +--rw genric-actions [nbr-act]
                 |  |  |  +--rw n-acts
                 |  |  |  +--rw qos-action
                 |  |  |  |  +--case L1-action
                 |  |  |  |  +--case L2-action
                 |  |  |  |  +--case L3-action
                 |  |  |  |  +--case L4-action
                 |  |  |  |  +--case service-action
    	         |  +--rw bnp-forward 
                 |  |  +--rw forward
                 |  |  |  +--rw interface interface-ref
                 |  |  |  +--rw next-hop  rib-nexthop-ref
                 |  |  |  +--rw route-attributes
                 |  |  |  +--rw rib-route-attributes-ref 				 
                 |  |  +--rw fb-std-drop
                 +--case: ACL-MATCH-ACTION     
                    +--rw acl-match-act acl-list-entry-name
	  

Below is the high level yang diagram for the

6. Example of use in filters

The following is an example is an example structure for the rrule match-condition applied to Filter-Based RIB containing a list of routes

 
	figure 6
   module: FB-RIB
    +--rw FB-RIB-instance-name 
    +--rw RB-RIB-router-id  uint32
	   +--rw FB-RIB-interface* 
	   |  +--rw FB-RIB-interface interface-ref-id
	   +--rw FB-Default-RIB rib-ref 
       +--rw FB-RIB
	      +--rw FB-RIB-Name
	  	  +--rw FB-RIB-AFI
		  +--rw FB-RIB-intf* 
		  +--rw FB-FIB-status-info
		  |  +--rw fb-rib-update-ref uint64
		  +--rw FB-RIB-Ordered-Filters  rule-group-list-ref
	         uses /nt:bnp-generic-rules 
		
	rule-group-list-ref points to rule-group-list 
      		
   

7. IANA Considerations

This draft includes no request to IANA.

8. Security Considerations

These generic filters are used in the I2RS FB-RIBs to filter packets in a traffic stream, act to modify packets, and forward data packets. These I2RS filters operate dynamically at same level as currently deployed configured filter-based RIBs to filter, change, and forward traffic. The dynamic nature of this protocol requires that I2RS Filters track the installer of group information and rules.

This section will be augmented after a discussion with security experts.

9. Informative References

[I-D.hares-i2rs-usecase-reqs-summary] Hares, S., "Summary of I2RS Use Case Requirements", Internet-Draft draft-hares-i2rs-usecase-reqs-summary-00, July 2014.
[I-D.ietf-i2rs-architecture] Atlas, A., Halpern, J., Hares, S., Ward, D. and T. Nadeau, "An Architecture for the Interface to the Routing System", Internet-Draft draft-ietf-i2rs-architecture-00, August 2013.
[I-D.ietf-i2rs-rib-info-model] Bahadur, N., Folkes, R., Kini, S. and J. Medved, "Routing Information Base Info Model", Internet-Draft draft-ietf-i2rs-rib-info-model-01, October 2013.
[I-D.ietf-netconf-restconf] Bierman, A., Bjorklund, M., Watsen, K. and R. Fernando, "RESTCONF Protocol", Internet-Draft draft-ietf-netconf-restconf-00, March 2014.
[I-D.ietf-netmod-acl-model] Bogdanovic, D., Sreenivasa, K., Huang, L. and D. Blair, "Network Access Control List (ACL) YANG Data Model", Internet-Draft draft-ietf-netmod-acl-model-02, March 2015.
[I-D.zhdankin-idr-bgp-cfg] Alex, A., Patel, K., Clemm, A., Hares, S., Jethanandani, M. and X. Liu, "Yang Data Model for BGP Protocol", Internet-Draft draft-zhdankin-idr-bgp-cfg-00, January 2015.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3060] Moore, B., Ellesson, E., Strassner, J. and A. Westerinen, "Policy Core Information Model -- Version 1 Specification", RFC 3060, February 2001.
[RFC3460] Moore, B., "Policy Core Information Model (PCIM) Extensions", RFC 3460, January 2003.
[RFC3644] Snir, Y., Ramberg, Y., Strassner, J., Cohen, R. and B. Moore, "Policy Quality of Service (QoS) Information Model", RFC 3644, November 2003.
[RFC5511] Farrel, A., "Routing Backus-Naur Form (RBNF): A Syntax Used to Form Encoding Rules in Various Routing Protocol Specifications", RFC 5511, April 2009.

Authors' Addresses

Susan Hares Huawei 7453 Hickory Hill Saline, MI 48176 USA EMail: shares@ndzh.com
Qin Wu Huawei 101 Software Avenue, Yuhua District Nanjing, Jiangsu 210012 China EMail: bill.wu@huawei.com
Jeff Tantsura Ericsson EMail: Jeff Tantsura jeff.tantsura@ericsson.com
Russ White Ericsson EMail: russw@riw.us