netconfcentral logo

ietf-notification-messages

HTML

ietf-notification-messages@2019-10-10



  module ietf-notification-messages {

    yang-version 1.1;

    namespace
      "urn:ietf:params:xml:ns:yang:ietf-notification-messages";

    prefix nm;

    import ietf-yang-types {
      prefix yang;
    }
    import ietf-yang-structure-ext {
      prefix sx;
    }

    organization "IETF";

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

     Editor:   Eric Voit
               <mailto:evoit@cisco.com>

     Editor:   Henk Birkholz
               <mailto:henk.birkholz@sit.fraunhofer.de>

     Editor:   Alexander Clemm
               <mailto:ludwig@clemm.org>

     Editor:   Andy Bierman
               <mailto:andy@yumaworks.com>

     Editor:   Tim Jenkins
               <mailto:timjenki@cisco.com>";

    description
      "This module contains conceptual YANG specifications for
    messages carrying notifications with well-known header objects.";

    revision "2019-10-10" {
      description "Initial version.";
      reference
        "draft-ietf-netconf-notification-messages-08";

    }

    sx:structure "message" {
      container "message-header" {
        description "Header info for messages.";
        uses "message-header";
      }
      list "notifications" {
        description "Set of notifications to a receiver.";
        container "notification-header" {
          description "Header info for a notification.";
          uses "notification-header";
        }
        anydata "notification-contents" {
          description "Encapsulates objects following YANG's notification-stmt
grammar of RFC-7950 section 14.  Within are the notified
objects the publisher actually generated in order to be
passed to a receiver after all filtering has completed.";
        }
        container "notification-footer" {
          presence "Indicates attempt to secure a notification.";
          description "Signature and evidence for messages.";
          uses "security-footer";
        }
      }
      container "message-footer" {
        presence "Indicates attempt to secure the entire message.";
        description "Signature and evidence for messages.";
        uses "security-footer";
      }
    }

    feature publisher {
      description
        "This feature indicates that support for both publisher and
      receiver of messages complying to the specification.";
    }

    identity common-header {
      base 
      description
        "A well-known header which can be included somewhere within a
      message.";
    }

    identity message-time {
      base common-header;
      description
        "Header information consisting of time the message headers were
      generated prior to being sent to transport";
    }

    identity subscription-id {
      base common-header;
      description
        "Header information consisting of the identifier of the
      subscription associated with the notification being
      encapsulated.";
    }

    identity notification-count {
      base common-header;
      description
        "Header information consisting of the quantity of notifications in
      a bundled-message for a specific receiver.";
    }

    identity optional-header {
      base common-header;
      description
        "A well-known header which an application may choose to include
      within a message.";
    }

    identity message-id {
      base optional-header;
      description
        "Header information that identifies a message to a specific
      receiver";
    }

    identity message-generator-id {
      base optional-header;
      description
        "Header information consisting of an identifier for a software
      entity which created the message (e.g., linecard 1).";
    }

    identity message-signature {
      base optional-header;
      description
        "Identifies two elements of header information consisting of a
      signature and the signature type for the contents of a message.
      Signatures can be useful for originating applications to
      verify record contents even when shipping over unsecure
      transport.";
    }

    identity message-integrity-evidence {
      base optional-header;
      description
        "Header information consisting of the information which backs up
      the assertions made as to the validity of the information
      provided within the message.";
    }

    identity optional-notification-header {
      base optional-header;
      description
        "A well-known header which an application may choose to include
      within a message.";
    }

    identity notification-time {
      base optional-notification-header;
      description
        "Header information consisting of the time an originating process
      created the notification.";
    }

    identity notification-id {
      base optional-notification-header;
      description
        "Header information consisting of an identifier for an instance
      of a notification. If access control based on a message's receiver may
      strip information from within the notification, this notification-id MUST
      allow the identification of the specific contents of notification as it
      exits the publisher.";
    }

    identity observation-domain-id {
      base optional-notification-header;
      description
        "Header information identifying the software entity which created
      the notification (e.g., process id).";
    }

    identity notification-signature {
      base optional-notification-header;
      description
        "Header information consisting of a signature which can be used to prove
      the authenticity that some asserter validates over the information
      provided within the notification.";
    }

    identity notification-integrity-evidence {
      base optional-notification-header;
      description
        "Header information consisting of the information which backs up
      the assertions made as to the validity of the information
      provided within the notification.";
    }

    typedef optional-header {
      type identityref {
        base optional-header;
      }
      description
        "Type of header object which may be included somewhere within a
      message.";
    }

    typedef optional-notification-header {
      type identityref {
        base optional-notification-header;
      }
      description
        "Type of header object which may be included somewhere within a
      message.";
    }

    typedef notification-type {
      type string {
        pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*';
      }
      description
        "The name of a notification within a YANG module.";
      reference
        "RFC-7950 Section 7.16";

    }

    grouping message-header {
      description
        "Header information included with a message.";
      leaf message-time {
        type yang:date-and-time;
        mandatory true;
        description
          "Time the message was generated prior to being sent to
        transport.";
      }

      leaf message-id {
        type uint32;
        description
          "Id for a message going to a receiver from a message
        generator.  The id will increment by one with each message sent
        from a particular message generator, allowing the message-id
        to be used as a sequence number.";
      }

      leaf message-generator-id {
        type string;
        description
          "Software entity which created the message (e.g., linecard 1).
         The combination of message-id and message-generator-id must be
         unique until reset or a roll-over occurs.";
      }

      leaf notification-count {
        type uint16;
        description
          "Quantity of notifications in a bundled-message to a
        specific receiver.";
      }
    }  // grouping message-header

    grouping notification-header {
      description
        "Common informational objects which might help a receiver
      interpret the meaning, details, or importance of a notification.";
      leaf notification-time {
        type yang:date-and-time;
        mandatory true;
        description
          "Time the system recognized the occurrence of an event.";
      }

      leaf yang-module {
        type yang:yang-identifier;
        description
          "Name of the YANG module supported by the publisher.";
      }

      leaf-list subscription-id {
        type uint32;
        description
          "Id of the subscription which led to the notification being
        generated.";
      }

      leaf notification-id {
        type uint32;
        description
          "Identifier for the notification record.";
      }

      leaf observation-domain-id {
        type string;
        description
          "Software entity which created the notification record (e.g.,
        process id).";
      }
    }  // grouping notification-header

    grouping security-footer {
      description
        "Reusable grouping for common objects which apply to the signing of
      notifications or messages.";
      leaf signature-algorithm {
        type string;
        mandatory true;
        description
          "The technology with which an originator signed of some
        delineated contents.";
      }

      leaf signature-value {
        type string;
        mandatory true;
        description
          "Any originator signing of the contents of a header and
        content.  This is useful for verifying contents even when
        shipping over unsecure transport.";
      }

      leaf integrity-evidence {
        type string;
        description
          "This mechanism allows a verifier to ensure that the use of the
        private key, represented by the corresponding public key
        certificate, was performed with a TCG compliant TPM
        environment.  This evidence is never included in within any
        signature.";
        reference
          "TCG Infrastructure Workgroup, Subject Key Attestation Evidence
          Extension, Specification Version 1.0, Revision 7.";

      }
    }  // grouping security-footer

    container additional-default-headers {
      if-feature publisher;
      description
        "This container maintains a list of which additional notifications
      should use which optional headers if the receiver supports this
      specification.";
      leaf-list additional-headers {
        type optional-header;
        description
          "This list contains the identities of the optional header types
        which are to be included within each message from this
        publisher.";
      }

      list yang-notification-specific-default {
        key "yang-module yang-notification-name";
        description
          "For any included YANG notifications, this list provides
        additional optional headers which should be placed within the
        container notification-header if the receiver supports this
        specification.  This list incrementally adds to any headers
        indicated within the leaf-list 'additional-headers'.";
        leaf yang-module {
          type yang:yang-identifier;
          description
            "Name of the YANG module supported by the publisher.";
        }

        leaf yang-notification-name {
          type notification-type;
          description
            "The name of a notification within a YANG module.";
        }

        leaf-list additional-notification-headers {
          type optional-notification-header;
          description
            "The set of additional default headers which will be sent
           for a specific notification.";
        }
      }  // list yang-notification-specific-default
    }  // container additional-default-headers
  }  // module ietf-notification-messages

Summary

  
  
Organization IETF
  
Module ietf-notification-messages
Version 2019-10-10
File ietf-notification-messages@2019-10-10.yang
  
Prefix nm
Namespace urn:ietf:params:xml:ns:yang:ietf-notification-messages
  
Cooked /cookedmodules/ietf-notification-messages/2019-10-10
YANG /src/ietf-notification-messages@2019-10-10.yang
XSD /xsd/ietf-notification-messages@2019-10-10.xsd
  
Abstract This module contains conceptual YANG specifications for messages carrying notifications with well-known header objects.
  
Contact
WG Web:   <http://tools.ietf.org/wg/netconf/>
WG List:  <mailto:netconf@ietf.org>

Editor:   Eric Voit
	  <mailto:evoit@cisco.com>

Editor:   Henk Birkholz
	  <mailto:henk.birkholz@sit.fraunhofer.de>

Editor:   Alexander Clemm
	  <mailto:ludwig@clemm.org>

Editor:   Andy Bierman
	  <mailto:andy@yumaworks.com>

Editor:   Tim Jenkins
	  <mailto:timjenki@cisco.com>

Description

 
This module contains conceptual YANG specifications for
messages carrying notifications with well-known header objects.

Typedefs

Typedef Base type Abstract
notification-type string The name of a notification within a YANG module.
optional-header identityref Type of header object which may be included somewhere within a message.
optional-notification-header identityref Type of header object which may be included somewhere within a message.

Groupings

Grouping Objects Abstract
message-header message-time message-id message-generator-id notification-count Header information included with a message.
notification-header notification-time yang-module subscription-id notification-id observation-domain-id Common informational objects which might help a receiver interpret the meaning, details, or importance of a notification.
security-footer signature-algorithm signature-value integrity-evidence Reusable grouping for common objects which apply to the signing of notifications or messages.

Objects

Type Key
Mandatory config
Optional config
Not config
Object Type Abstract
additional-default-headers container This container maintains a list of which additional notifications should use which optional headers if the receiver supports this specification.
   additional-headers leaf-list This list contains the identities of the optional header types which are to be included within each message from this publisher.
   yang-notification-specific-default list For any included YANG notifications, this list provides additional optional headers which should be placed within the container notification-header if the receiver supports this specification. This list incrementally adds to any headers indicated within ...
      additional-notification-headers leaf-list The set of additional default headers which will be sent for a specific notification.
      yang-module leaf Name of the YANG module supported by the publisher.
      yang-notification-name leaf The name of a notification within a YANG module.