One document matched: draft-hares-i2rs-fb-rib-data-model-00.xml


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC0768 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.0768.xml">
<!ENTITY RFC0791 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.0791.xml">
<!ENTITY RFC0792 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.0792.xml">
<!ENTITY RFC0793 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.0793.xml">
<!ENTITY RFC2460 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2460.xml">
<!ENTITY RFC2460 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2460.xml">
<!ENTITY RFC3060 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3060.xml">
<!ENTITY RFC3460 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3460.xml">
<!ENTITY RFC3644 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3644.xml">
<!ENTITY RFC4960 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4960.xml">
<!ENTITY RFC5575 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5575.xml">
<!ENTITY I-D.ietf-i2rs-architecture SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-i2rs-architecture.xml">
<!ENTITY I-D.ietf-i2rs-rib-info-model SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-i2rs-rib-info-model.xml">
<!ENTITY I-D.ietf-i2rs-rib-data-model SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-i2rs-rib-data-model.xml">
<!ENTITY I-D.ietf-netmod-acl-model SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-netmod-acl-model.xml">
<!ENTITY I-D.hares-i2rs-bnp-info-model SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.hares-i2rs-bnp-info-model.xml">
<!ENTITY I-D.ietf-i2rs-usecase-reqs-summary SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-i2rs-usecase-reqs-summary.xml">
<!ENTITY I-D.kini-i2s-fb-rib-info-model SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.kini-i2rs-fb-rib-info-model.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<?rfc iprnotified="no" ?>
<?rfc strict="no" ?>
<rfc category="std" docName="draft-hares-i2rs-fb-rib-data-model-00"  ipr="trust200902">
  <front>
    <title abbrev="Filter-Base RIB DM">Filter-Based RIB Data Model </title>
	 <author fullname="Susan Hares" initials="S." surname="Hares">
      <organization>Huawei</organization>
      <address>
        <postal>
          <street>7453 Hickory Hill</street>
          <city>Saline</city>
          <region>MI</region>
          <code>48176</code>
          <country>USA</country>
        </postal>
        <email>shares@ndzh.com</email>
      </address>
    </author>
	<author fullname="Sriganesh Kini" initials="S." surname="Kini">
      <organization>Ericsson</organization>
      <address>
        <postal>
          <street></street>
          <city> </city>
          <country></country>
        </postal>
        <email>sriganesh.kini@ericsson.com</email>
      </address>
    </author>

	    <author fullname="Linda Dunbar" initials="L." surname="Dunbar">
      <organization>Huawei</organization>
      <address>
        <postal>
          <street> </street>
          <city> </city>
          <region> </region>
          <code> </code>
          <country>USA</country>
        </postal>
        <email>linda.dunbar@huawei.com</email>
      </address>
    </author>

    <author fullname="Anoop Ghanwani" initials="A." surname="Ghanwani">
      <organization>Dell</organization>
      <address>
        <postal>
          <street></street>
          <city> </city>
          <country></country>
        </postal>
        <email>anoop@alumni.duke.edu</email>
      </address>
    </author>
    <author fullname="Ram Krishnan" initials="R." surname="Krishnan">
      <organization>Dell</organization>
      <address>
        <postal>
          <street></street>
          <city></city>
          <country></country>
        </postal>
        <email>Ramkri123@gmail.com</email>
      </address>
    </author>
    <author fullname="Dean Bogdanovic" initials="D." surname="Bogdanovic">
      <organization>Juniper Networks</organization>
      <address>
        <postal>
          <street></street>
          <city>Westford, MA</city>
          <country></country>
        </postal>
        <email>deanb@juniper.net</email>
      </address>
    </author>
    <author fullname="Jeff Tantsura" initials="J." surname="Tantsura">
      <organization>Ericsson</organization>
      <address>
        <postal>
          <street></street>
          <city></city>
          <country></country>
        </postal>
        <email>jeff.tantsura@ericsson.com</email>
      </address>
    </author>
	    <author fullname="Russ White" initials="R." surname="White">
      <organization>Ericsson</organization>
      <address>
        <postal>
          <street></street>
          <city></city>
          <country></country>
        </postal>
        <email>russ@riw.us</email>
      </address>
    </author>
    <date year="2015" />
    <area>Routing Area</area>
    <workgroup>I2RS working group</workgroup>
    <keyword>RFC</keyword>
    <keyword>Request for Comments</keyword>
    <keyword>I-D</keyword>
    <keyword>Internet-Draft</keyword>
    <keyword>I2RS</keyword>
    <abstract>
	<t>This document defines a data model for the I2RS 
	Filter-based Routing Information Base (RIB) Yang data model. A routing system uses
	the Filter-based RIBto program FIB entries that process incoming
	packets by matching on multiple fields within the packet and then performing
	a specified action on it.  The FB-RIB can also specify an action to forward 
	the packet according to the FIB entries programmed
	 using the RIBs of its routing instance.</t>
	 </abstract>
  </front>
  <middle>
    <section anchor="intro" title="Introduction">
      <t>The Interface to the Routing System (I2RS) <xref target="I-D.ietf-i2rs-architecture"></xref> 
	  architecture provides dynamic read and write access to the information and state within the routing
      elements. The I2RS client interacts with the I2RS agent in one or more network routing systems. 
	  </t>
     <t> This document provides a yang module for the I2RS filter Based Routing Information Base
	 (FB-RIB) and describes the I2RS interaction with routing filters within a routing element. 
	 The informational model for the FB-RIB is in 
	 <xref target="I-D.kini-i2rs-fb-rib-info-model"></xref>
	 </t>
	 <section title="Definition of I2RS Filter Based RIB">
	 <t>Filter-based routing is a technique used to make packet forwarding decisions
     based on a filter that is matched to the incoming packets and the specified action.
	 It should be noted that that this is distinct from the static routes in the RIB
	 <xref target="I-D.ietf-i2rs-rib-info-model"></xref> where the routing is destination 
	 ddress based.  
	 </t>
	<t> A Filter-Based RIB (Routing Information Base) is contained in a routing
	  instance (defined in <xref target="I-D.ietf-i2rs-rib-info-model"></xref>). 
	  It contains a list of filters (match-action conditions), a list of interface the filter-based
      forwarding operates on. Filter-based RIBs (FB-RIBs) operate only on the interface the
       FB-RIB are configured on.
	  </t> 
	<t>A Filter Based RIB uses Event-Condition-Action policy.
	A Filter-based RIB entry specifies matches
	 on fields in a packet (which may include layer 2 fields, IP header fields, transport or 
	 application fields) or size of the packet or interface received on. 
	The matches are contained in an ordered list of filters which 
	contain pairs of match condition-action (aka event-condition-action).
	</t>
	<t>
	If all matches fail, default action is to forward the packet using 
	FIB entries that were programmed by the Routing Informational Base
	(RIB) manager described
	in <xref target="I-D.ietf-i2rs-rib-info-model"></xref>. 
	</t>
	<t>	Actions in the condition-action pair may impact forwarding or 
	set something in the packet that will impact forwarding.
	Policy actions are typically applied before applying QoS constraints
    since policy actions may override QoS constraint.
	 </t>
	<t>
    The Filter-Based RIB resides in ephemeral state as does the I2RS RIB and I2RS
	topology models.
	 </t>
	 </section>
	</section>
	<section title="Requirements Language">
	<t>   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 [RFC2119].
   </t>
	<t> In this document, these words will appear with that interpretation
   only when in ALL CAPS.  Lower case uses of these words are not to be
   interpreted as carrying RFC-2119 significance.
	</t>
	</section>
    <section title="Definitions and Acronyms">
	      <t>
		  <list style="hanging"> 
          <t hangText="CLI"><vspace blankLines="1" /> Command Line Interface</t>
	      <t hangText="FB-RIB"><vspace blankLines="1" /> Filter-Based Routing Information Base</t> 
		  <t hangText="FB-Route"><vspace blankLines="1" />  
	      The policy rules in the  filter-based RIB are prescriptive of the Event-Condition-Action
		  form which is often represented by if Condition then action". </t>
		  <t hangText="Policy Group"><vspace blankLines="1" /> Policy Groups are groups of
		  policy rules. The groups of policy in the basic network policy
		  <xref target="I-D.hares-i2rs-bnp-info-model"></xref> allow grouping
		  of policy by name. This name allow easier management of 
		  customer-based or provider based filters. 
		  </t>
		  <t hangText="RIB IM "><vspace blankLines="1" /> RIB Informational Model (RIB IM) 
		  <xref target="I-D.ietf-i2rs-rib-info-model"></xref>   </t>
		  <t hangText="Routing instance"><vspace blankLines="1" /> A routing instance, 
		  in the context of the FB-FIB is a
           collection of RIBs, interfaces, and routing parameters.  A routing
           instance creates a logical slice of the router and allows different
           logical slices; across a set of routers; to communicate with each
           other.  </t>
        </list>
		</t>
    </section>
  <section title="The Top-level Yang structure for the FB-RIB">
  <t>
 <figure>
 <artwork>
 module: FB-RIB
 +--FB-RIB-module
    +--rw FB-RIB-instance-name 
    +--rw RB-RIB-router-id 
       uses rt:router-id
    +--rw FB-RIB*  [rib-name]
	|  +--rw rib-Name
	|  +--rw rib-afi
    |  +--rw fb-rib-intf* if:inteface-ref
	|  +--rw I2RS-default-RIB
	|  |  +--rw RIB-name
	|  |    uses i2rs-rib:name 
	|  +--rw fb-rib-status-info
	|  |  +--rw fb-rib-update-ref uint64
	|  +--rw fb-rib-Group* 
          +-rw filter-type  // for group
          +-rw order-number // for group 	
            + choice (filter-type)	
              +-case: acl
               uses: acl: access_lists: access-list-entries
			  // operational status augment to group  
               augments: access_lists: access-list-entries
               uses fb-rib-group-order_status;
				
           // operational status augment to individual ACL 
               augments: access_lists:access-list-entries:
			             access-list-entry
			    uses fb-rib-rule-order-status;        			
				
            +--case: bnp-eca Rules 
               uses bnp-eca: bnp-policy-set
                 augments bnp-eca:bnp-policy-set:group-list:group
                     uses fb-rib-group-order_status
                 augment bnp-eca:bnp-policy-set:group-list:group:rule
                     uses fb-rib-rule-order_status				 
			
		  Figure 4: FB RIB Yang Structure   
 </artwork>
 </figure>
 </t> 
	</section> 
    <section title="yang models">
	<section title="Filter-Based RIB types">
	<t>
	<figure>
	<artwork>
	//<CODE BEGINS> file "i2rs fb-rib-types@2015-10-17.yang"
 module i2rs-fb-rib-types {

  yang-version "1";

  // namespace
  namespace "urn:TBD1:params:xml:ns:yang:rt:i2rs:fb-rib-types";
    // replace with iana namespace when assigned
    prefix "i2rs-fbrib-t";

  // meta
  organization
    "IETF";

  contact
     "email: sriganesh.kini@ericsson.com
      email: cengiz@packetdesign.com
      email: anoop@ieee.duke.edu
      email: ivandean@gmal.org
      email: shares@ndzh.com;	 
      email: linda.dunbar@huawei.com;
      email: russ@riw.com;
      email: Jeff.Tantsura@ericsson.com;	  
	 ";

  description
    "This module describes a YANG model for the I2RS 
    Filter-based RIB Types.  These types 
    specify types for the Filter-Based RIB.  
	
	Copyright (c) 2015 IETF Trust and the persons identified as
    the document authors.  All rights reserved.

    Redistribution and use in source and binary forms, with or
    without modification, is permitted pursuant to, and subject
    to the license terms contained in, the Simplified BSD
    License set forth in Section 4.c of the IETF Trust's Legal
    Provisions Relating to IETF Documents
    (http://trustee.ietf.org/license-info).";

   
  revision "2015-06-20" {
      description
        "I2RS Filter-Based RIB protocol ";
      reference "draft-hares-i2rs-fb-rib-data-model-00";
  }
  
    typedef fb-rib-policy-type-def {
	   type identityref {
	     base "fb-rib-policy-type";
		 }
		description 
		"This type is used to refer to FB-RIB type";
     }
	   identity fb-rib-policy-type {
	     description 
	     "Types of filter-based policies: 
		  acl and eca";
	   }
	  
	   identity fb-rib-acl {
	   	  base fb-rib-policy-type;
	      description  
          "filter based policy based on access-lists";
	    }
				
  	   identity fb-bnp-eca-rules {
	   	  base fb-rib-policy-type;
	      description  
          "filter based policy based on qos forwarding rules";
	    }
		
	typedef fb-rules-status  {
	   type identityref {
	     base "fb-rule-opstat";
		 }
		description 
		"This type is used to refer to FB-RIB type";
	 }
	 
	  identity fb-rule-opstat {
		description 
		"operational statues for filter rules
		 inactive and active";
		 }
	 
	  identity fb-rule-inactive {
		base fb-rule-opstat;
		description
		"policy rule is inactive";
	   }
		
	  identity fb-rule-active {
		base fb-rule-opstat;
		description
		"policy rule is active";
	   }
		
	  grouping fb-rib-rule-order-status {
	  leaf statement-order {
	  	  description "order identifier";
		  type uint16;
	   }
	   leaf statement-oper_status {
		   description "status of rule";
		   type fb-rules-status;
		}
	}
	
     grouping fb-rib-group-order-status {
	  leaf group-order{ 
	    type uint16;
	    description "default group order";
	   }
	  leaf group-refcnt {
	    type uint16; 
	    description "refcnt for this group";
		}
	   leaf group-installed {
	    type uint16;
	    description "number of rules installed";
		}
	  }
	  
	  grouping fb-rib-status-info {
	   leaf fb-rib-update-ref {
	     description 
		 "number of updates to this FB RIB
		  since last reboot";
		 type uint64;
	   }
	 }
  }
  
// <CODE ENDS>

</artwork>
</figure>
</t>
</section>
<section  title="fb-fib yang module"> 
<t>
<figure>
<artwork> 
//<CODE BEGINS > file "i2rs fb-rib@2015-10-17.yang"
module i2rs-fb-rib {

  yang-version "1";

  // namespace
  namespace "urn:TBD1:params:xml:ns:yang:rt:i2rs:fbrib";
    // replace with iana namespace when assigned
    prefix "i2rs-fbrib";


  // import some basic inet types
  import ietf-interfaces { prefix "if";}
  import ietf-routing { prefix "rt"; }
  import i2rs-rib { prefix "i2rs-rib"; }
  import i2rs-fb-rib-types { prefix "i2rs-fbrib-t";}
  import i2rs-eca-policy { prefix "i2rs-eca";}
  
  // meta
  organization
    "IETF";

  contact
     "email: sriganesh.kini@ericsson.com
	  email: cengiz@packetdesign.com
      email: anoop@ieee.duke.edu
      email: ivandean@gmal.org
      email: shares@ndzh.com;	 
      email: linda.dunbar@huawei.com;	
      email: russ@riw.com;
      email: Jeff.Tantsura@ericsson.com;	  
	 ";

  description
    "This module describes a YANG model for the I2RS 
	Filter-based RIB which is a protocol independent I2RS module.";
	

     revision "2015-10-18" {
       description "initial revision";
       reference "draft-kini-i2rs-fb-rib-info-model-03";
     }

	  grouping fb-rib-group-list-entry  {
		description "lists of groups of ordered lists"; 
		    leaf group-name {
			description "policy-group name";
			type string;
			} 
			uses i2rs-fbrib-t:fb-rib-group-order-status;
			leaf fb-group-policy-type {
			  description "Policy type (acl/eca)";
			  type i2rs-fbrib-t:fb-rib-policy-type-def;
			}
			choice fb-rib-policy-type {
	         case fb-rib-acl {
	   // re-add when ietf-access-control-list works
	   // uses acl:access_lists;
		       uses i2rs-fbrib-t:fb-rib-group-order-status;
			}
			 case fb-eca-rules {
	    /// re-add i2rs-eca:bnp-ecap-policy-set:policy groups 
	     /// linked to this 
               uses i2rs-fbrib-t:fb-rib-group-order-status;
			 }
			}
			
		     container fb-rib_status {
		      leaf fb-rib-update-ref {
               type uint64;
               description "reference count for fb-rib";
		      }
			} 
		}
	 
		grouping I2RS-Default-RIB {
			 description "I2RS RIB which will be used
			   even if none of the policy match";
	     // problem with my use format - add back after fix 
		  //  uses i2rs-rib:rib-list:name;
			   uses i2rs-fbrib-t:fb-rib-status-info; 
		}
	
  /// top level FB-RIB structure 		
   container FB-RIB-routing-instance {
      description
      "Configuration of an 'i2rs' pseudo-protocol instance
       consists of a list of ribs.";
	   
       leaf FB-RIB-instance-name {
        description
          "A routing instance is identified by its name,
           INSTANCE_name.  This MUST be unique across all routing
           instances in a given network device.";
           type string ;
           mandatory true;
         }
         uses rt:router-id;
		 
		 list FB-RIB {
		   key rib-Name;   
		   leaf rib-Name {
		        description "RIB name";
		        type string;
			    mandatory true;
               }
			// fix the afi list to key point 
            leaf rib-afi {
			  description "RIB AFI";
			  type uint32;
			}			
	        list fb-rib-intf {
			description
			 "This represents the list of interfaces 
			 associated with this routing instance.  
			 The interface list helps constrain the 
			 boundaries of packet forwarding.
			 Packets coming on these interfaces are 
			 directly associated with the given routing 
			 instance. The interface list contains a 
			 list of identifiers, with each identifier 
			 uniquely identifying an interface.";
			 key "name";
			 leaf name {
				type if:interface-ref;
			    description
			     "A reference to the name of a 
				 configured network layer
			     interface.";
			  }
	        }
			uses I2RS-Default-RIB;
	
			list fb-rib-group {
			   description "list of policy groups ";
			   key grp-name;
			   uses i2rs-eca:rule-group;
			 }
		  }
	   }
   }
// <CODE ENDS>   


</artwork>
</figure>
</t>
</section>
</section>
    <section anchor="IANA" title="IANA Considerations">
      <t>TBD.</t>
    </section>
    <section title="Security Considerations">
      <t>A I2RS RIB is ephemeral data store that will 
 dyanamically change traffic paths set by the routing configuration.
 An I2RS FB-RIB provides dynamic Event-Condition-Action policy that
 will further change the operation of forwarding by allow dyanmic 
 policy and ephemeral RIBs to alter the traffic paths set by 
 routing configuration.  Care must be taken in deployments to
 use the appropriate security and operational control to make 
 use of the tools the I2RS RIB and I2RS FB-RIB provide. 
 </t>
    </section>
  </middle>
  <back>
    <references title="Normative References:">
	 &I-D.ietf-i2rs-architecture;
     &I-D.ietf-i2rs-rib-info-model;
	 &I-D.ietf-i2rs-rib-data-model;
	 &I-D.ietf-netmod-acl-model; 
	 &I-D.hares-i2rs-bnp-info-model;
	&I-D.kini-i2s-fb-rib-info-model;
	</references>
	
    <references title="Informative References">
      &RFC2119;
	  &I-D.ietf-i2rs-usecase-reqs-summary;
    </references>
  </back>
</rfc>

PAFTECH AB 2003-20262026-04-24 04:08:26