openconfig-packet-match-types

This module defines common types for use in models requiring data definitions related to packet matches.

  • Version: 2017-05-26

    openconfig-packet-match-types@2017-05-26


    
      module openconfig-packet-match-types {
    
        yang-version 1;
    
        namespace
          "http://openconfig.net/yang/packet-match-types";
    
        prefix oc-pkt-match-types;
    
        import openconfig-inet-types {
          prefix oc-inet;
        }
        import openconfig-extensions {
          prefix oc-ext;
        }
    
        organization "OpenConfig working group";
    
        contact
          "OpenConfig working group
    www.openconfig.net";
    
        description
          "This module defines common types for use in models requiring
    data definitions related to packet matches.";
    
        revision "2017-05-26" {
          description
            "Separated IP matches into AFs";
          reference
            "1.0.0";
    
        }
    
        revision "2016-08-08" {
          description
            "OpenConfig public release";
          reference
            "0.2.0";
    
        }
    
        revision "2016-04-27" {
          description "Initial revision";
          reference
            "TBD";
    
        }
    
        oc-ext:openconfig-version "1.0.0";
    
        identity ETHERTYPE {
          description
            "Base identity for commonly used Ethertype values used
    in packet header matches on Ethernet frames.  The Ethertype
    indicates which protocol is encapsulated in the Ethernet
    payload.";
          reference
            "IEEE 802.3";
    
        }
    
        identity ETHERTYPE_IPV4 {
          base ETHERTYPE;
          description "IPv4 protocol (0x0800)";
        }
    
        identity ETHERTYPE_ARP {
          base ETHERTYPE;
          description
            "Address resolution protocol (0x0806)";
        }
    
        identity ETHERTYPE_VLAN {
          base ETHERTYPE;
          description
            "VLAN-tagged frame (as defined by IEEE 802.1q) (0x8100). Note
    that this value is also used to represent Shortest Path
    Bridging (IEEE 801.1aq) frames.";
        }
    
        identity ETHERTYPE_IPV6 {
          base ETHERTYPE;
          description "IPv6 protocol (0x86DD)";
        }
    
        identity ETHERTYPE_MPLS {
          base ETHERTYPE;
          description "MPLS unicast (0x8847)";
        }
    
        identity ETHERTYPE_LLDP {
          base ETHERTYPE;
          description
            "Link Layer Discovery Protocol (0x88CC)";
        }
    
        identity ETHERTYPE_ROCE {
          base ETHERTYPE;
          description
            "RDMA over Converged Ethernet (0x8915)";
        }
    
        identity IP_PROTOCOL {
          description
            "Base identity for commonly used IP protocols used in
    packet header matches";
          reference
            "IANA Assigned Internet Protocol Numbers";
    
        }
    
        identity IP_TCP {
          base IP_PROTOCOL;
          description
            "Transmission Control Protocol (6)";
        }
    
        identity IP_UDP {
          base IP_PROTOCOL;
          description
            "User Datagram Protocol (17)";
        }
    
        identity IP_ICMP {
          base IP_PROTOCOL;
          description
            "Internet Control Message Protocol (1)";
        }
    
        identity IP_IGMP {
          base IP_PROTOCOL;
          description
            "Internet Group Membership Protocol (2)";
        }
    
        identity IP_PIM {
          base IP_PROTOCOL;
          description
            "Protocol Independent Multicast (103)";
        }
    
        identity IP_RSVP {
          base IP_PROTOCOL;
          description
            "Resource Reservation Protocol (46)";
        }
    
        identity IP_GRE {
          base IP_PROTOCOL;
          description
            "Generic Routing Encapsulation (47)";
        }
    
        identity IP_AUTH {
          base IP_PROTOCOL;
          description
            "Authentication header, e.g., for IPSEC (51)";
        }
    
        identity IP_L2TP {
          base IP_PROTOCOL;
          description
            "Layer Two Tunneling Protocol v.3 (115)";
        }
    
        identity TCP_FLAGS {
          description
            "Common TCP flags used in packet header matches";
          reference
            "IETF RFC 793 - Transmission Control Protocol
            IETF RFC 3168 - The Addition of Explicit Congestion
            Notification (ECN) to IP";
    
        }
    
        identity TCP_SYN {
          base TCP_FLAGS;
          description "TCP SYN flag";
        }
    
        identity TCP_FIN {
          base TCP_FLAGS;
          description "TCP FIN flag";
        }
    
        identity TCP_RST {
          base TCP_FLAGS;
          description "TCP RST flag";
        }
    
        identity TCP_PSH {
          base TCP_FLAGS;
          description "TCP push flag";
        }
    
        identity TCP_ACK {
          base TCP_FLAGS;
          description "TCP ACK flag";
        }
    
        identity TCP_URG {
          base TCP_FLAGS;
          description "TCP urgent flag";
        }
    
        identity TCP_ECE {
          base TCP_FLAGS;
          description
            "TCP ECN-Echo flag.  If the SYN flag is set, indicates that
    the TCP peer is ECN-capable, otherwise indicates that a
    packet with Congestion Experienced flag in the IP header
    is set";
        }
    
        identity TCP_CWR {
          base TCP_FLAGS;
          description
            "TCP Congestion Window Reduced flag";
        }
    
        typedef port-num-range {
          type union {
            type string {
              pattern
                '^(6[0-5][0-5][0-3][0-5]|[0-5]?[0-9]?[0-9]?[0-9]?[0-9]?)\.\.(6[0-5][0-5][0-3][0-5]|[0-5]?[0-9]?[0-9]?[0-9]?[0-9]?)$';
            }
            type oc-inet:port-number;
            type enumeration {
              enum "ANY" {
                value 0;
                description
                  "Indicates any valid port number (e.g., wildcard)";
              }
            }
          }
          description
            "Port numbers may be represented as a single value,
    an inclusive range as <lower>..<higher>, or as ANY to
    indicate a wildcard.";
        }
    
        typedef ip-protocol-type {
          type union {
            type uint8 {
              range "0..254";
            }
            type identityref {
              base IP_PROTOCOL;
            }
          }
          description
            "The IP protocol number may be expressed as a valid protocol
    number (integer) or using a protocol type defined by the
    IP_PROTOCOL identity";
        }
    
        typedef ethertype-type {
          type union {
            type uint16 {
              range "1..65535";
            }
            type identityref {
              base ETHERTYPE;
            }
          }
          description
            "The Ethertype value may be expressed as a 16-bit number in
    hexadecimal notation, or using a type defined by the
    ETHERTYPE identity";
        }
      }  // module openconfig-packet-match-types
    

© 2023 YumaWorks, Inc. All rights reserved.