netconfcentral logo

openconfig-openflow

HTML

openconfig-openflow@2018-11-21



  module openconfig-openflow {

    yang-version 1;

    namespace
      "http://openconfig.net/yang/openflow";

    prefix openflow;

    import openconfig-extensions {
      prefix oc-ext;
    }
    import openconfig-inet-types {
      prefix oc-inet;
    }
    import openconfig-interfaces {
      prefix oc-if;
    }
    import openconfig-openflow-types {
      prefix of-types;
    }
    import openconfig-system {
      prefix oc-sys;
    }

    organization "OpenConfig working group";

    contact
      "OpenConfig working group
    www.openconfig.net";

    description
      "This module defines configuration and operational state data for
    Openflow.";

    revision "2018-11-21" {
      description
        "Add OpenConfig module metadata extensions.";
      reference
        "0.1.2";

    }

    revision "2017-08-24" {
      description
        "Minor formatting fixes.Initial revision";
      reference
        "0.1.1";

    }

    revision "2017-06-01" {
      description "Initial revision";
      reference
        "0.1.0";

    }

    oc-ext:openconfig-version "0.1.2";
    oc-ext:regexp-posix;
    oc-ext:catalog-organization "openconfig";
    oc-ext:origin "openconfig";

    grouping openflow-controller-config {
      description
        "Openflow controller config";
      leaf name {
        type string;
        description
          "Name of this Openflow controller. All connections
      for the same controller need to have the same name.";
      }
    }  // grouping openflow-controller-config

    grouping openflow-controller-state {
      description
        "Openflow controller state";
    }  // grouping openflow-controller-state

    grouping openflow-controllers-top {
      description
        "Top-level for the Openflow controllers model";
      container controllers {
        description
          "Container for the Openflow controllers model";
        list controller {
          key "name";
          description
            "The Openflow Switch connects to all Openflow controllers
          configured";
          leaf name {
            type leafref {
              path "../config/name";
            }
            description
              "The name identifies the controller.";
          }

          container config {
            description
              "Container for the Openflow controller config.";
            uses openflow-controller-config;
          }  // container config

          container state {
            config false;
            description
              "Container for the Openflow controller state.";
            uses openflow-controller-config;

            uses openflow-controller-state;
          }  // container state

          uses openflow-connections-top;
        }  // list controller
      }  // container controllers
    }  // grouping openflow-controllers-top

    grouping openflow-connections-config {
      description
        "Configuration data for OpenFlow controller connections";
      leaf aux-id {
        type of-types:auxiliary-id;
        description
          "Controller auxiliary ID. Must be 0 for the main controller.
        One controller may have multiple auxiliary connections as
        specified by the Openflow protocol. Besides configuring the
        main controller, it is also possible to configure auxiliary
        connections. The main controller must have the aux-id
        set to zero. All others must have an aux-id different
        from 0.";
      }

      leaf priority {
        type uint8;
        description
          "Optional value for servicing auxiliary connections with
        different priorities.";
      }

      leaf address {
        type oc-inet:ip-address;
        description
          "The IP address of the controller.";
      }

      leaf port {
        type oc-inet:port-number;
        default '6653';
        description
          "Controller port to use.";
      }

      leaf transport {
        type of-types:transport;
        default 'TCP';
        description
          "Controller transport protocol used.";
      }

      leaf certificate-id {
        type string;
        description
          "Certificate ID is used for TLS connections. When installed,
        certificates are associated with an ID. This ID specifies the
        certificate to use in a TLS connection.";
      }

      leaf source-interface {
        type oc-if:base-interface-ref;
        description
          "Optionally specify the source interface for the
        controller connection.";
      }
    }  // grouping openflow-connections-config

    grouping openflow-connections-state {
      description
        "Operational state data for OpenFlow controller connections";
      leaf connected {
        type boolean;
        description
          "When set to true, indicates the connection between the
        switch and controller is established.";
      }
    }  // grouping openflow-connections-state

    grouping openflow-connections-top {
      description
        "Top-level grouping for OpenFlow controller connections";
      container connections {
        description
          "Enclosing container for list of controller connections";
        list connection {
          key "aux-id";
          description
            "List of connections to the OpenFlow controller.
          The Openflow switch always connects to configured Openflow
          controllers. Each controller can have more than one
          connection, called auxiliary Openflow connections.";
          leaf aux-id {
            type leafref {
              path "../config/aux-id";
            }
            description
              "Reference to auxiliary id list key";
          }

          container config {
            description
              "Configuration data for OpenFlow controller connections";
            uses openflow-connections-config;
          }  // container config

          container state {
            config false;
            description
              "Operational state data for OpenFlow controller
            connections";
            uses openflow-connections-config;

            uses openflow-connections-state;
          }  // container state
        }  // list connection
      }  // container connections
    }  // grouping openflow-connections-top

    grouping openflow-agent-config {
      description "Openflow agent config";
      leaf datapath-id {
        type of-types:datapath-id;
        description
          "Datapath unique ID. The lower 48-bits are for
        a MAC address, while the upper 16-bits are
        implementer-defined.";
      }

      leaf failure-mode {
        type of-types:failure-mode;
        description
          "Failure mode for Openflow.";
      }

      leaf backoff-interval {
        type uint32;
        units "seconds";
        description
          "Openflow agent connection backoff interval.";
      }

      leaf max-backoff {
        type uint32;
        units "seconds";
        description
          "Openflow agent max backoff time.";
      }

      leaf inactivity-probe {
        type uint32;
        units "seconds";
        description
          "Openflow agent inactivity probe period.";
      }
    }  // grouping openflow-agent-config

    grouping openflow-agent-state {
      description "Openflow agent state";
    }  // grouping openflow-agent-state

    grouping openflow-agent-top {
      description
        "Top-level for the Openflow agent model";
      container agent {
        description
          "Container for the Openflow agent model.";
        container config {
          description
            "Container for the Openflow agent config.";
          uses openflow-agent-config;
        }  // container config

        container state {
          config false;
          description
            "Container for the Openflow agent state.";
          uses openflow-agent-config;

          uses openflow-agent-state;
        }  // container state
      }  // container agent
    }  // grouping openflow-agent-top

    grouping openflow-top {
      description
        "Top-level for the Openflow model";
      container openflow {
        description
          "Container for Openflow model";
        uses openflow-controllers-top;

        uses openflow-agent-top;
      }  // container openflow
    }  // grouping openflow-top

    augment /oc-sys:system {
      description
        "Adding OpenConfig data to the system model";
      uses openflow-top;
    }
  }  // module openconfig-openflow

Summary

  
  
Organization OpenConfig working group
  
Module openconfig-openflow
Version 2018-11-21
File openconfig-openflow.yang
  
Prefix openflow
Namespace http://openconfig.net/yang/openflow
  
Cooked /cookedmodules/openconfig-openflow/2018-11-21
YANG /src/openconfig-openflow@2018-11-21.yang
XSD /xsd/openconfig-openflow@2018-11-21.xsd
  
Abstract This module defines configuration and operational state data for Openflow.
  
Contact
OpenConfig working group
www.openconfig.net

Description

 
This module defines configuration and operational state data for
Openflow.

Groupings

Grouping Objects Abstract
openflow-agent-config datapath-id failure-mode backoff-interval max-backoff inactivity-probe Openflow agent config
openflow-agent-state Openflow agent state
openflow-agent-top agent Top-level for the Openflow agent model
openflow-connections-config aux-id priority address port transport certificate-id source-interface Configuration data for OpenFlow controller connections
openflow-connections-state connected Operational state data for OpenFlow controller connections
openflow-connections-top connections Top-level grouping for OpenFlow controller connections
openflow-controller-config name Openflow controller config
openflow-controller-state Openflow controller state
openflow-controllers-top controllers Top-level for the Openflow controllers model
openflow-top openflow Top-level for the Openflow model