module ietf-taps-api { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-taps-api"; prefix "taps"; import ietf-yang-types { prefix "yang"; reference "[RFC6991] Section 3"; } import ietf-inet-types { prefix "inet"; reference "[RFC6991] Section 4"; } import ietf-interfaces { prefix "if"; reference "[RFC8343] Section 5"; } organization "IETF"; contact "Author: Jake Holland "; description "This module contains the definition for the TAPS interface. Copyright (c) 2018 IETF Trust and the persons identified as authors of the code. All rights reserved. Redistribution and use in source and binary forms, with or without modification, is permitted pursuant to, and subject to the license terms contained in, the Simplified BSD License set forth in Section 4.c of the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info). This version of this YANG module is part of draft-jholland-taps-api-yang, see the internet draft itself for full legal notices."; revision 2019-02-26 { description "Initial revision."; reference "draft-jholland-taps-api-yang"; } typedef preference-level { type enumeration { enum require { description "select only options providing this property, fail otherwise"; } enum prefer { description "prefer options providing this property, proceed otherwise"; } enum ignore { description "cancel any system default preference for this property"; } enum avoid { description "prefer options not providing the property, proceed otherwise"; } enum prohibit { description "select only options not proiding ths property, fail otherwise"; } } description "This value represents the preference level of a property."; } container preconnection { description "preconnection config for a taps connection"; container local-endpoint { description "local-endpoint config for a preconnection"; list addresses { key "address"; leaf address { type inet:ip-address; mandatory true; description "address option for the local endpoint"; } leaf preference { type preference-level; default require; description "preference level for the address"; } description "list of address constrants for the local endpoint"; } list ports { key "port"; leaf port { type inet:port-number; mandatory true; description "port option for the local endpoint"; } leaf preference { type preference-level; default require; description "preference level for the port"; } description "list of port constrants for the local endpoint"; } list interfaces { key "interface"; leaf interface { type if:interface-ref; mandatory true; description "interface option for the local endpoint"; } leaf preference { type preference-level; default require; description "preference level for the interface"; } description "list of interface constrants for the local endpoint"; } } container remote-endpoint { description "remote-endpoint config for a preconnection"; list hosts { key "host"; leaf host { type inet:host; mandatory true; description "host property for remote endpoint"; } leaf preference { type preference-level; default require; description "preference level for the host"; } description "list of host constraints for the remote endpoint"; } list ports { key "port"; leaf port { type inet:port-number; mandatory true; description "port number property for remote endpoint"; } leaf preference { type preference-level; default require; description "preference level for the port"; } description "list of port constraints for the remote endpoint"; } } container transport-properties { list properties { key "property"; leaf property { type enumeration { enum reliable { description "reliable transport"; } enum per-message-reliable { description "per message reliability"; } enum preserve-order { description "preserve data ordering"; } } mandatory true; description "transport property for a preconnection"; } leaf preference { type preference-level; default require; description "preference level for the transport property"; } description "list of transport property constraints."; } description "Transport properties for the preconnection"; } } }