netconfcentral logo

ietf-traffic-selector-types

HTML

ietf-traffic-selector-types@2016-01-14



  module ietf-traffic-selector-types {

    yang-version 1;

    namespace
      "urn:ietf:params:xml:ns:yang:ietf-traffic-selector-types";

    prefix traffic-selectors;

    import ietf-inet-types {
      prefix inet;
      revision-date "2013-07-15";
    }

    organization
      "IETF Distributed Mobility Management (DMM)
 Working Group";

    contact
      "WG Web: <http://tools.ietf.org/wg/netmod/>
 WG List: <mailto:netmod@ietf.org>

 WG Chair: Dapeng Liu
 <mailto:maxpassion@gmail.com>

 WG Chair: Jouni Korhonen
 <mailto:jouni.nospam@gmail.com>

 Editor: Satoru Matsushima
 <mailto:satoru.matsushima@g.softbank.co.jp>

 Editor: Lyle Bertz
 <mailto:lylebe551144@gmail.com>";

    description
      "This module contains a collection of YANG definitions for
 traffic selectors for flow bindings.

 Copyright (c) 2016 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.";

    revision "2016-01-14" {
      description
        "Updated for IETF-PACKET-FIELDS module alignment";
      reference
        "draft-ietf-netmod-acl-model-06";

    }

    revision "2016-01-12" {
      description "Initial revision";
      reference
        "RFC 6088: Traffic Selectors for Flow Bindings";

    }


    identity traffic-selector-format {
      base 
      description
        "The base type for Traffic-Selector Formats";
    }

    identity ipv4-binary-selector-format {
      base traffic-selector-format;
      description
        "IPv4 Binary Traffic Selector Format";
    }

    identity ipv6-binary-selector-format {
      base traffic-selector-format;
      description
        "IPv6 Binary Traffic Selector Format";
    }

    typedef ipsec-spi {
      type uint32;
      description
        "This type defines the first 32-bit IPsec
             Security Parameter Index (SPI) value on data
             packets sent from a corresponding node to the
       mobile node as seen by the home agent. This field
       is defined in [RFC4303].";
      reference
        "RFC 4303: IP Encapsulating Security
        Payload (ESP)";

    }

    grouping traffic-selector-base {
      description
        "A grouping of the commen leaves between the
       v4 and v6 Traffic Selectors";
      container ipsec-spi-range {
        presence
          "Enables setting ipsec spi range";
        description
          "Inclusive range representing IPSec Security Parameter
       Indices to be used. When only start-spi is present, it
       represents a single spi.";
        leaf start-spi {
          type ipsec-spi;
          mandatory true;
          description
            "This field identifies the first 32-bit IPsec SPI value,
         from the range of SPI values to be matched, on data
         packets sent from a corresponding node to the mobile
         node as seen by the home agent.
         This field is defined in [RFC4303].";
        }

        leaf end-spi {
          type ipsec-spi;
          must ". >= ../start-spi" {
            error-message
              "The end-spi must be greater than or equal
                   to start-spi";
          }
          description
            "If more than one contiguous SPI value needs to be matched,
        then this field can be used to indicate the end value of
        a range starting from the value of the Start SPI field.
        This field MUST NOT be included unless the Start SPI
        field is included and has a value less than or equal to
        this field.

        When this field is included, the receiver will match all
        of the SPI values between fields start-spi and end-spi,
        inclusive of start-spi and end-spi.";
        }
      }  // container ipsec-spi-range

      container source-port-range {
        presence
          "Enables setting source port range";
        description
          "Inclusive range representing source ports to be used.
        When only start-port is present, it represents a single
              port.";
        leaf start-port {
          type inet:port-number;
          mandatory true;
          description
            "This field identifies the first 16-bit source port number,
         from the range of port numbers to be matched, on data
         packets sent from a corresponding node to the mobile node
         as seen by the home agent.
         This is from the range of port numbers defined by IANA
               (http://www.iana.org).";
        }

        leaf end-port {
          type inet:port-number;
          must ". >= ../start-port" {
            error-message
              "The end-port must be greater than or equal to start-port";
          }
          description
            "If more than one contiguous source port number needs to be
          matched, then this field can be used to indicate the end
          value of a range starting from the value of the Start
          Port field. This field MUST NOT be included unless the
          Start Port field is included and has a value less than
          or equal to this field.

          When this field is included, the receiver will match
          all of the port numbers between fields start-port and
          end-port, inclusive of start-port and end-port.";
        }
      }  // container source-port-range

      container destination-port-range {
        presence
          "Enables setting destination port range";
        description
          "Inclusive range representing destination ports to be used.
       When only start-port is present, it represents a single
       port.";
        leaf start-port {
          type inet:port-number;
          mandatory true;
          description
            "This field identifies the first 16-bit destination port
          number, from the range of port numbers to be matched, on
          data packets sent from a corresponding node to the mobile
          node as seen by the home agent.";
        }

        leaf end-port {
          type inet:port-number;
          must ". >= ../start-port" {
            error-message
              "The end-port must be greater than or equal to
          start-port";
          }
          description
            "If more than one contiguous destination port number needs
        to be matched, then this field can be used to indicate
        the end value of a range starting from the value of the
        Start Destination Port field. This field MUST NOT be
        included unless the Start Port field is included and has
        a value less than or equal to this field.

        When this field is included, the receiver will match
        all of the port numbers between fields start-port and
        end-port, inclusive of start-port and end-port.";
        }
      }  // container destination-port-range
    }  // grouping traffic-selector-base

    grouping ipv4-binary-traffic-selector {
      description
        "ipv4 binary traffic selector";
      container source-address-range-v4 {
        presence
          "Enables setting source IPv4 address range";
        description
          "Inclusive range representing IPv4 addresses to be used. When
       only start-address is present, it represents a single
       address.";
        leaf start-address {
          type inet:ipv4-address;
          mandatory true;
          description
            "This field identifies the first source address, from the range
        of 32-bit IPv4 addresses to be matched, on data packets sent
        from a corresponding node to the mobile node as seen by the
        home agent. In other words, this is one of the addresses of
        the correspondent node.";
        }

        leaf end-address {
          type inet:ipv4-address;
          description
            "If more than one contiguous source address needs to be
         matched, then this field can be used to indicate the end
         value of a range starting from the value of the Start
         Address field. This field MUST NOT be included unless the
         Start Address field is included. When this field is
         included, the receiver will match all of the addresses
         between fields start-address and end-address, inclusive of
         start-address and end-address.";
        }
      }  // container source-address-range-v4

      container destination-address-range-v4 {
        presence
          "Enables setting destination IPv4 address range";
        description
          "Inclusive range representing IPv4 addresses to be used.
        When only start-address is present, it represents a
        single address.";
        leaf start-address {
          type inet:ipv4-address;
          mandatory true;
          description
            "This field identifies the first destination address, from the
         range of 32-bit IPv4 addresses to be matched, on data packets
         sent from a corresponding node to the mobile node as seen by
         the home agent. In other words, this is one of the registered
         home addresses of the mobile node.";
        }

        leaf end-address {
          type inet:ipv4-address;
          description
            "If more than one contiguous destination address needs to be
         matched, then this field can be used to indicate the end
         value of a range starting from the value of the Start
         Destination Address field. This field MUST NOT be included
         unless the Start Address field is included. When this field
         is included, the receiver will match all of the addresses
         between fields start-address and end-address, inclusive of
         start-address and end-address.";
        }
      }  // container destination-address-range-v4

      container ds-range {
        presence
          "Enables setting dscp range";
        description
          "Inclusive range representing DiffServ Codepoints to be used.
       When only start-ds is present, it represents a single
       Codepoint.";
        leaf start-ds {
          type inet:dscp;
          mandatory true;
          description
            "This field identifies the first differential service value,
         from the range of differential services values to be
         matched, on data packets sent from a corresponding node to
         the mobile node as seen by the home agent. Note that this
         field is called a 'Type of Service field' in [RFC0791].
         [RFC3260] then clarified that the field has been redefined
         as a 6-bit DS field with 2 bits reserved, later claimed by
         Explicit Congestion Notification (ECN) [RFC3168]. For the
         purpose of this specification, the Start DS field is 8 bits
         long, where the 6 most significant bits indicate the DS field
         to be matched and the 2 least significant bits' values MUST be
         ignored in any comparison.";
        }

        leaf end-ds {
          type inet:dscp;
          must ". >= ../start-ds" {
            error-message
              "The end-ds must be greater than or equal to start-ds";
          }
          description
            "If more than one contiguous DS value needs to be matched, then
       this field can be used to indicate the end value of a range
       starting from the value of the Start DS field. This field MUST
       NOT be included unless the Start DS field is included. When this
       field is included, it MUST be coded the same way as defined for
       start-ds. When this field is included, the receiver will match
       all of the values between fields start-ds and end-ds, inclusive
       of start-ds and end-ds.";
        }
      }  // container ds-range

      container protocol-range {
        presence
          "Enables setting protocol range";
        description
          "Inclusive range representing IP protocol(s) to be used. When
       only start-protocol is present, it represents a single
       protocol.";
        leaf start-protocol {
          type uint8;
          mandatory true;
          description
            "This field identifies the first 8-bit protocol value, from the
         range of protocol values to be matched, on data packets sent
         from a corresponding node to the mobile node as seen by the
         home agent.";
        }

        leaf end-protocol {
          type uint8;
          must ". >= ../start-protocol" {
            error-message
              "The end-protocol must be greater than or equal to
          start-protocol";
          }
          description
            "If more than one contiguous protocol value needs to be matched,
       then this field can be used to indicate the end value of a range
       starting from the value of the Start Protocol field. This field
       MUST NOT be included unless the Start Protocol field is
       included. When this field is included, the receiver will match
       all of the values between fields start-protocol and
       end-protocol, inclusive of start-protocol and end-protocol.";
        }
      }  // container protocol-range
    }  // grouping ipv4-binary-traffic-selector

    grouping ipv6-binary-traffic-selector {
      description
        "ipv6 binary traffic selector";
      container source-address-range-v6 {
        presence
          "Enables setting source IPv6 address range";
        description
          "Inclusive range representing IPv6 addresses to be used.
       When only start-address is present, it represents a
       single address.";
        leaf start-address {
          type inet:ipv6-address;
          mandatory true;
          description
            "This field identifies the first source address, from the
        range of 128-bit IPv6 addresses to be matched, on data
        packets sent from a corresponding node to the mobile node as
        seen by the home agent. In other words, this is one of the
        addresses of the correspondent node.";
        }

        leaf end-address {
          type inet:ipv6-address;
          description
            "If more than one contiguous source address needs to be
         matched, then this field can be used to indicate the end
         value of a range starting from the value of the Start
         Address field. This field MUST NOT be included unless the
         Start Address field is included. When this field is
         included, the receiver will match all of the addresses
         between fields start-address and end-address, inclusive of
         start-address and end-address .";
        }
      }  // container source-address-range-v6

      container destination-address-range-v6 {
        presence
          "Enables setting destination IPv6 address range";
        description
          "Inclusive range representing IPv6 addresses to be used.
        When only start-address is present, it represents a
        single address.";
        leaf start-address {
          type inet:ipv6-address;
          mandatory true;
          description
            "This field identifies the first destination address, from
         the range of 128-bit IPv6 addresses to be matched, on data
         packets sent from a corresponding node to the mobile node as
         seen by the home agent. In other words, this is one of the
         registered home addresses of the mobile node.";
        }

        leaf end-address {
          type inet:ipv6-address;
          description
            "If more than one contiguous destination address needs to be
          matched, then this field can be used to indicate the end
          value of a range starting from the value of the Start
          Address field. This field MUST NOT be included unless the
          Start Address field is included. When this field is
          included, the receiver will match all of the addresses
          between fields start-address and end-address, inclusive of
          start-address and end-address.";
        }
      }  // container destination-address-range-v6

      container flow-label-range {
        presence
          "Enables setting Flow Label range";
        description
          "Inclusive range representing IPv4 addresses to be used. When
       only start-flow-label is present, it represents a single
       flow label.";
        leaf start-flow-label {
          type inet:ipv6-flow-label;
          description
            "This field identifies the first flow label value, from the
        range of flow label values to be matched, on data packets
        sent from a corresponding node to the mobile node as seen
        by the home agent. According to [RFC2460], the flow label
        is 24 bits long. For the purpose of this specification, the
        sender of this option MUST prefix the flow label value with
        8 bits of '0' before inserting it in the start-flow-label
        field. The receiver SHOULD ignore the first 8 bits of this
        field before using it in comparisons with flow labels in
        packets.";
        }

        leaf end-flow-label {
          type inet:ipv6-flow-label;
          must ". >= ../start-flow-label" {
            error-message
              "The end-flow-lable must be greater than or equal to
           start-flow-label";
          }
          description
            "If more than one contiguous flow label value needs to be
         matched, then this field can be used to indicate the end
         value of a range starting from the value of the Start Flow
         Label field. This field MUST NOT be included unless the
         Start Flow Label field is included. When this field is
         included, the receiver will match all of the flow label
         values between fields start-flow-label and end-flow-label,
         inclusive of start-flow-label and end-flow-label. When this
         field is included, it MUST be coded the same way as defined
         for end-flow-label.";
        }
      }  // container flow-label-range

      container traffic-class-range {
        presence
          "Enables setting the traffic class range";
        description
          "Inclusive range representing IPv4 addresses to be used. When
      only start-traffic-class is present, it represents a single
      traffic class.";
        leaf start-traffic-class {
          type inet:dscp;
          description
            "This field identifies the first traffic class value, from the
        range of traffic class values to be matched, on data packets
        sent from a corresponding node to the mobile node as seen by
        the home agent. This field is equivalent to the Start DS field
        in the IPv4 traffic selector in Figure 1. As per RFC 3260, the
        field is defined as a 6-bit DS field with 2 bits reserved,
        later claimed by Explicit Congestion Notification (ECN)
        RFC 3168. For the purpose of this specification, the
        start-traffic-class field is 8 bits long, where the 6 most
        significant bits indicate the DS field to be matched and the 2
        least significant bits' values MUST be ignored in any
        comparison.";
          reference
            "RFC 3260: New Terminology and Clarifications for Diffserv
             RFC 3168: The Addition of Explicit Congestion Notification
            (ECN) to IP";

        }

        leaf end-traffic-class {
          type inet:dscp;
          must ". >= ../start-traffic-class" {
            error-message
              "The end-traffic-class must be greater than or equal to
           start-traffic-class";
          }
          description
            "If more than one contiguous TC value needs to be matched,
       then this field can be used to indicate the end value of a
       range starting from the value of the Start TC field. This
       field MUST NOT be included unless the Start TC field is
       included. When this field is included, it MUST be coded the
       same way as defined for start-traffic-class. When this field
       is included, the receiver will match all of the values
       between fields start-traffic-class and end-traffic-class,
       inclusive of start-traffic-class and end-traffic-class.";
        }
      }  // container traffic-class-range

      container next-header-range {
        presence
          "Enables setting Next Header range";
        description
          "Inclusive range representing Next Headers to be used. When
      only start-next-header is present, it represents a
      single Next Header.";
        leaf start-next-header {
          type uint8;
          description
            "This field identifies the first 8-bit next header value, from
       the range of next header values to be matched, on data packets
       sent from a corresponding node to the mobile node as seen by
       the home agent.";
        }

        leaf end-next-header {
          type uint8;
          must ". >= ../start-next-header" {
            error-message
              "The end-next-header must be greater than or equal to
          start-next-header";
          }
          description
            "If more than one contiguous next header value needs to be
       matched, then this field can be used to indicate the end value
       of a range starting from the value of the Start NH field. This
       field MUST NOT be included unless the Start next header field
       is included. When this field is included, the receiver will
       match all of the values between fields start-next-header and
       end-next-header, inclusive of start-next-header and
       end-next-header.";
        }
      }  // container next-header-range
    }  // grouping ipv6-binary-traffic-selector

    grouping traffic-selector {
      description
        "The traffic selector includes the parameters used to match
             packets for a specific flow binding.";
      reference
        "RFC 6089: Flow Bindings in Mobile IPv6 and Network
         Mobility (NEMO) Basic Support";

      leaf ts-format {
        type identityref {
          base traffic-selector-format;
        }
        description
          "Traffic Selector Format";
      }

      uses traffic-selector-base {
        when
          "boolean(../ts-format/text() ="
            + "'ipv6-binary-selector-format') |"
            + " boolean(../ts-format/text() ="
            + " 'ipv4-binary-selector-format')";
      }

      uses ipv4-binary-traffic-selector {
        when
          "boolean(../ts-format/text() ="
            + " 'ipv4-binary-selector-format')";
      }

      uses ipv6-binary-traffic-selector {
        when
          "boolean(../ts-format/text() = "
            + "'ipv6-binary-selector-format')";
      }
    }  // grouping traffic-selector

    grouping ts-list {
      description "traffic selector list";
      list selectors {
        key "index";
        description "traffic selectors";
        leaf index {
          type uint64;
          description "index";
        }

        uses traffic-selector;
      }  // list selectors
    }  // grouping ts-list
  }  // module ietf-traffic-selector-types

Summary

  
  
Organization IETF Distributed Mobility Management (DMM) Working Group
  
Module ietf-traffic-selector-types
Version 2016-01-14
File ietf-traffic-selector-types@2016-01-14.yang
  
Prefix traffic-selectors
Namespace urn:ietf:params:xml:ns:yang:ietf-traffic-selector-types
  
Cooked /cookedmodules/ietf-traffic-selector-types/2016-01-14
YANG /src/ietf-traffic-selector-types@2016-01-14.yang
XSD /xsd/ietf-traffic-selector-types@2016-01-14.xsd
  
Abstract This module contains a collection of YANG definitions for traffic selectors for flow bindings. Copyright (c) 2016 IETF Trust an...
  
Contact
WG Web: <http://tools.ietf.org/wg/netmod/>
WG List: <mailto:netmod@ietf.org>

WG Chair: Dapeng Liu
<mailto:maxpassion@gmail.com>

WG Chair: Jouni Korhonen
<mailto:jouni.nospam@gmail.com>

Editor: Satoru Matsushima
<mailto:satoru.matsushima@g.softbank.co.jp>

Editor: Lyle Bertz
<mailto:lylebe551144@gmail.com>

Description

 
This module contains a collection of YANG definitions for
traffic selectors for flow bindings.

Copyright (c) 2016 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.

Typedefs

Typedef Base type Abstract
ipsec-spi uint32 This type defines the first 32-bit IPsec Security Parameter Index (SPI) value on data packets sent from a corresponding node to the mobile node as seen by the home agent. This field is defined in [RFC4303].

Groupings

Grouping Objects Abstract
ipv4-binary-traffic-selector source-address-range-v4 destination-address-range-v4 ds-range protocol-range ipv4 binary traffic selector
ipv6-binary-traffic-selector source-address-range-v6 destination-address-range-v6 flow-label-range traffic-class-range next-header-range ipv6 binary traffic selector
traffic-selector ts-format ipsec-spi-range source-port-range destination-port-rangesource-address-range-v4 destination-address-range-v4 ds-range protocol-rangesource-address-range-v6 destination-address-range-v6 flow-label-range traffic-class-range next-header-range The traffic selector includes the parameters used to match packets for a specific flow binding.
traffic-selector-base ipsec-spi-range source-port-range destination-port-range A grouping of the commen leaves between the v4 and v6 Traffic Selectors
ts-list selectors traffic selector list