All Downloads are FREE. Search and download functionalities are using the official Maven repository.

[email protected] Maven / Gradle / Ivy

There is a newer version: 0.16.4
Show newest version
/*
 * Copyright (c) 2016 Brocade Communications Systems, Inc. and others. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
 * and is available at http://www.eclipse.org/legal/epl-v10.html
 */
 module neutron-sfc {

     yang-version 1;

     namespace "urn:opendaylight:neutron-sfc";

     prefix neutron-sfc;

     import ietf-yang-types { prefix "yang"; }
     import neutron-attrs { prefix "attrs"; }


     organization "OpenDaylight Neutron Northbound Project";

     contact "Anil Vishnoi ";

     description "This YANG module defines Openstack Neutron Service Function Chaining Models.These models are based on
                the API's exposed by the OpenStack Neutron Networking SFC (networking-sfc) project. List of SFC related
                APIs are listed at following URL (http://docs.openstack.org/developer/networking-sfc/api.html)";

     revision "2016-05-11" {
         description
                 "OpenStack Neutron Service Function Chaining Models - Version 1.";
     }

     grouping port-chain-attributes {
         description "Grouping of port chain attributes";

         leaf-list port-pair-groups {
             description "List of ID of Port pair groups that is part of the SF chain";
             type yang:uuid;
         }

         leaf-list flow-classifiers {
             description "List of ID of flow classifiers associated to the SF chain";
             type yang:uuid;
         }

         list chain-parameters {
             description "
                List of additional parameters related to the SF chain. Current only one parameter 'correlation' is
                defined. The 'correlation' parameter is used to specify the type of chain correlation mechanism. This
                parameter allows different correlation mechanism to be selected. This is currently set to 'mpls' as a
                default correlation mechanism because that's the only mechanism OpenStack SFC API's supports. If this
                parameter is not specified, it will default to 'mpls'";

             key "chain-parameter";

             leaf chain-parameter {
                 description "SF Chain parameter attribute name";
                 type string;
                 default "correlation";
             }

             leaf chain-parameter-value {
                 description "SF Chain parameter's value";
                 type string;
                 default "mpls";
             }
         }
     }

     grouping port-pair-group-attributes {
         description "Grouping of port pair group attributes";

         leaf-list port-pairs {
             description "List of the port pair's ID that is part of the port pair group";
             type yang:uuid;
         }
     }

     grouping port-pair-attributes {
         description "Grouping of port pair attributes";

         leaf ingress {
             description "Ingress neutron port ID of the Service Function";
             type yang:uuid;
         }

         leaf egress {
             description "Egress neutron port ID of the Service Function";
             type yang:uuid;
         }

         list service-function-parameters {
             description "
             Service Function specific parameters. These parameters are generally used to pass the SF specific parameter
             information to the data path. Currently OpenStack SFC defined only one parameter - 'correlation'. The
             'correlation' parameter is used to specify the type of chain correlation mechanism supported by a specific
             SF. This is needed by the data plane switch to determine how to associate a packet with a chain. Currently
             there is no default mechanism defined by OpenStack SFC API.";

             key "service-function-parameter";

             leaf service-function-parameter {
                 description "Name of parameter defined for service function ";
                 type string;
                 default "correlation";
             }

             leaf service-function-parameter-value {
                 description "Value of the service function parameter";
                 type string;
             }
         }
     }

     grouping sfc-attributes {

         container port-chains {
             description "List of Service Function Paths (Port Chain) created by OpenStack SFC";

             list port-chain {
                 description "
                    A Port Chain (Service Function Path) consists of (1) a set of Neutron ports, to define the sequence
                    of service functions and (2)a set of flow classifiers, to specify the classified traffic flows to
                    enter the chain. (1) is defined using the port pair groups. If a chain consists of a sequence of
                    different types of Service Functions, then the chain will have multiple 'port-pair-group's. There
                    must be at least one 'port-pair-group' in the Port Chain. Each port chain can be associated with
                    multiple flow classifiers";

                 key "uuid";
                 uses attrs:base-attributes;
                 uses port-chain-attributes;
             }
         }

         container port-pair-groups {
             description "List of group of Service Functions (Port Pair Groups) created by OpenStack SFC";

             list port-pair-group {
                 description "
                    Port Pair group defines the group of Service Fucntions (Port pair). Inside each 'port-pair-group',
                    there could be one or more port-pairs. Multiple port-pairs may be included in a 'port-pair-group to
                    allow the specification of a set of functionally equivalent SFs that can be be used for load
                    distribution, i.e., the 'port-pair' option may be repeated for multiple port-pairs of functionally
                    equivalent SFs.";

                 key "uuid";
                 uses attrs:base-attributes;
                 uses port-pair-group-attributes;
             }
         }

         container port-pairs {
             description "List of Service Function (Port Pair) created by OpenStack";

             list port-pair {
                 description "
                 A Port Pair represents a service function instance. The ingress port and the egress port of the service
                 function are defined separately but if the service function has one bidirectional port, the ingress
                 port will have the same value as the egress port. ";

                 key "uuid";
                 uses attrs:base-attributes;
                 uses port-pair-attributes;
             }
         }
     }
 }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy