ietf-ioam@2024-07-12.yang | ietf-ioam@2024-07-12.formatted.yang | |||
---|---|---|---|---|
module ietf-ioam { | module ietf-ioam { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-ioam"; | namespace "urn:ietf:params:xml:ns:yang:ietf-ioam"; | |||
prefix "ioam"; | prefix ioam; | |||
import ietf-access-control-list { | import ietf-access-control-list { | |||
prefix "acl"; | prefix acl; | |||
reference | reference | |||
"RFC 8519: YANG Data Model for Network Access Control | "RFC 8519: YANG Data Model for Network Access Control | |||
Lists (ACLs)"; | Lists (ACLs)"; | |||
} | } | |||
import ietf-interfaces { | import ietf-interfaces { | |||
prefix "if"; | prefix if; | |||
reference | reference | |||
"RFC 8343: A YANG Data Model for Interface Management"; | "RFC 8343: A YANG Data Model for Interface Management"; | |||
} | } | |||
import ietf-lime-time-types { | import ietf-lime-time-types { | |||
prefix "lime"; | prefix lime; | |||
reference | reference | |||
"RFC 8532: Generic YANG Data Model for the Management of | "RFC 8532: Generic YANG Data Model for the Management of | |||
Operations, Administration, and Maintenance (OAM) Protocols | Operations, Administration, and Maintenance (OAM) Protocols | |||
That Use Connectionless Communications"; | That Use Connectionless Communications"; | |||
} | } | |||
organization | organization | |||
"IETF IPPM (IP Performance Measurement) Working Group"; | "IETF IPPM (IP Performance Measurement) Working Group"; | |||
contact | contact | |||
"WG Web: <https://datatracker.ietf.org/wg/ippm> | "WG Web: <https://datatracker.ietf.org/wg/ippm> | |||
WG List: <mailto:ippm@ietf.org> | WG List: <mailto:ippm@ietf.org> | |||
Editor: Tianran Zhou | Editor: Tianran Zhou | |||
<mailto:zhoutianran@huawei.com> | <mailto:zhoutianran@huawei.com> | |||
Editor: Jim Guichard | Editor: Jim Guichard | |||
<mailto:james.n.guichard@futurewei.com> | <mailto:james.n.guichard@futurewei.com> | |||
Editor: Frank Brockners | Editor: Frank Brockners | |||
<mailto:fbrockne@cisco.com> | <mailto:fbrockne@cisco.com> | |||
Editor: Srihari Raghavan | Editor: Srihari Raghavan | |||
skipping to change at line 74 ¶ | skipping to change at line 70 ¶ | |||
RFC itself for full legal notices."; | RFC itself for full legal notices."; | |||
revision 2024-07-12 { | revision 2024-07-12 { | |||
description | description | |||
"Initial revision."; | "Initial revision."; | |||
reference | reference | |||
"RFC 9617: A YANG Data Model for In Situ Operations, | "RFC 9617: A YANG Data Model for In Situ Operations, | |||
Administration, and Maintenance (IOAM)"; | Administration, and Maintenance (IOAM)"; | |||
} | } | |||
/* | /* | |||
* FEATURES | * FEATURES | |||
*/ | */ | |||
feature incremental-trace | feature incremental-trace { | |||
{ | ||||
description | description | |||
"This feature indicates that the incremental tracing option | "This feature indicates that the incremental tracing option | |||
is supported."; | is supported."; | |||
reference | reference | |||
"RFC 9197: Data Fields for In Situ Operations, | "RFC 9197: Data Fields for In Situ Operations, | |||
Administration, and Maintenance (IOAM)"; | Administration, and Maintenance (IOAM)"; | |||
} | } | |||
feature preallocated-trace | feature preallocated-trace { | |||
{ | ||||
description | description | |||
"This feature indicates that the pre-allocated tracing | "This feature indicates that the pre-allocated tracing | |||
option is supported."; | option is supported."; | |||
reference | reference | |||
"RFC 9197: Data Fields for In Situ Operations, | "RFC 9197: Data Fields for In Situ Operations, | |||
Administration, and Maintenance (IOAM)"; | Administration, and Maintenance (IOAM)"; | |||
} | } | |||
feature direct-export | feature direct-export { | |||
{ | ||||
description | description | |||
"This feature indicates that the direct export option is | "This feature indicates that the direct export option is | |||
supported."; | supported."; | |||
reference | reference | |||
"RFC 9326: In Situ Operations, Administration, and | "RFC 9326: In Situ Operations, Administration, and | |||
Maintenance (IOAM) Direct Exporting"; | Maintenance (IOAM) Direct Exporting"; | |||
} | } | |||
feature proof-of-transit | feature proof-of-transit { | |||
{ | ||||
description | description | |||
"This feature indicates that the proof of transit option is | "This feature indicates that the proof of transit option is | |||
supported."; | supported."; | |||
reference | reference | |||
"RFC 9197: Data Fields for In Situ Operations, | "RFC 9197: Data Fields for In Situ Operations, | |||
Administration, and Maintenance (IOAM)"; | Administration, and Maintenance (IOAM)"; | |||
} | } | |||
feature edge-to-edge | feature edge-to-edge { | |||
{ | ||||
description | description | |||
"This feature indicates that the edge-to-edge option is | "This feature indicates that the edge-to-edge option is | |||
supported."; | supported."; | |||
reference | reference | |||
"RFC 9197: Data Fields for In Situ Operations, | "RFC 9197: Data Fields for In Situ Operations, | |||
Administration, and Maintenance (IOAM)"; | Administration, and Maintenance (IOAM)"; | |||
} | } | |||
/* | /* | |||
* IDENTITIES | * IDENTITIES | |||
*/ | */ | |||
identity filter { | identity filter { | |||
description | description | |||
"Base identity to represent a filter. A filter is used to | "Base identity to represent a filter. A filter is used to | |||
specify the flow to apply the IOAM profile."; | specify the flow to apply the IOAM profile."; | |||
} | } | |||
identity acl-filter { | identity acl-filter { | |||
base filter; | base filter; | |||
description | description | |||
"Apply Access Control List (ACL) rules to specify the | "Apply Access Control List (ACL) rules to specify the | |||
skipping to change at line 160 ¶ | skipping to change at line 152 ¶ | |||
identity ipv6 { | identity ipv6 { | |||
base protocol; | base protocol; | |||
description | description | |||
"The described IOAM data is embedded in IPv6."; | "The described IOAM data is embedded in IPv6."; | |||
reference | reference | |||
"RFC 9486: IPv6 Options for In Situ Operations, | "RFC 9486: IPv6 Options for In Situ Operations, | |||
Administration, and Maintenance (IOAM)"; | Administration, and Maintenance (IOAM)"; | |||
} | } | |||
identity nsh { | identity nsh { | |||
base protocol; | base protocol; | |||
description | description | |||
"The described IOAM data is embedded in the Network Service | "The described IOAM data is embedded in the Network Service | |||
Header (NSH)."; | Header (NSH)."; | |||
reference | reference | |||
"RFC 9452: Network Service Header (NSH) Encapsulation for | "RFC 9452: Network Service Header (NSH) Encapsulation for | |||
In Situ OAM (IOAM) Data"; | In Situ OAM (IOAM) Data"; | |||
} | } | |||
identity node-action { | identity node-action { | |||
skipping to change at line 229 ¶ | skipping to change at line 221 ¶ | |||
Administration, and Maintenance (IOAM)"; | Administration, and Maintenance (IOAM)"; | |||
} | } | |||
identity trace-timestamp-seconds { | identity trace-timestamp-seconds { | |||
base trace-type; | base trace-type; | |||
description | description | |||
"This identity indicates the presence of timestamp seconds | "This identity indicates the presence of timestamp seconds | |||
in the node data."; | in the node data."; | |||
} | } | |||
identity trace-timestamp-fraction { | identity trace-timestamp-fraction { | |||
base trace-type; | base trace-type; | |||
description | description | |||
"This identity indicates the presence of a timestamp | "This identity indicates the presence of a timestamp | |||
fraction in the node data."; | fraction in the node data."; | |||
} | } | |||
identity trace-transit-delay { | identity trace-transit-delay { | |||
base trace-type; | base trace-type; | |||
description | description | |||
"This identity indicates the presence of transit delay in | "This identity indicates the presence of transit delay in | |||
skipping to change at line 364 ¶ | skipping to change at line 356 ¶ | |||
} | } | |||
identity default-namespace { | identity default-namespace { | |||
base namespace; | base namespace; | |||
description | description | |||
"The Namespace-ID value of 0x0000 is defined as the | "The Namespace-ID value of 0x0000 is defined as the | |||
Default-Namespace-ID and MUST be known to all the nodes | Default-Namespace-ID and MUST be known to all the nodes | |||
implementing IOAM."; | implementing IOAM."; | |||
} | } | |||
/* | /* | |||
* TYPE DEFINITIONS | * TYPE DEFINITIONS | |||
*/ | */ | |||
typedef ioam-filter-type { | typedef ioam-filter-type { | |||
type identityref { | type identityref { | |||
base filter; | base filter; | |||
} | } | |||
description | description | |||
"This type specifies a known type of filter."; | "This type specifies a known type of filter."; | |||
} | } | |||
typedef ioam-protocol-type { | typedef ioam-protocol-type { | |||
type identityref { | type identityref { | |||
skipping to change at line 424 ¶ | skipping to change at line 417 ¶ | |||
} | } | |||
typedef ioam-namespace { | typedef ioam-namespace { | |||
type identityref { | type identityref { | |||
base namespace; | base namespace; | |||
} | } | |||
description | description | |||
"This type specifies the supported namespace."; | "This type specifies the supported namespace."; | |||
} | } | |||
/* | /* | |||
* GROUP DEFINITIONS | * GROUP DEFINITIONS | |||
*/ | */ | |||
grouping ioam-filter { | grouping ioam-filter { | |||
description | description | |||
"A grouping for IOAM filter definitions."; | "A grouping for IOAM filter definitions."; | |||
leaf filter-type { | leaf filter-type { | |||
type ioam-filter-type; | type ioam-filter-type; | |||
description | description | |||
"Filter type."; | "Filter type."; | |||
} | } | |||
leaf ace-name { | leaf ace-name { | |||
when "derived-from-or-self(../filter-type, 'ioam:acl-filter')"; | when "derived-from-or-self(../filter-type, 'ioam:acl-filter')"; | |||
type leafref { | type leafref { | |||
path "/acl:acls/acl:acl/acl:aces/acl:ace/acl:name"; | path "/acl:acls/acl:acl/acl:aces/acl:ace/acl:name"; | |||
} | } | |||
description | description | |||
"The Access Control Entry name is used to refer to an ACL | "The Access Control Entry name is used to refer to an ACL | |||
specification."; | specification."; | |||
} | } | |||
} | } | |||
skipping to change at line 453 ¶ | skipping to change at line 444 ¶ | |||
description | description | |||
"The Access Control Entry name is used to refer to an ACL | "The Access Control Entry name is used to refer to an ACL | |||
specification."; | specification."; | |||
} | } | |||
} | } | |||
grouping encap-tracing { | grouping encap-tracing { | |||
description | description | |||
"A grouping for the generic configuration for the | "A grouping for the generic configuration for the | |||
tracing profile."; | tracing profile."; | |||
container trace-types { | container trace-types { | |||
description | description | |||
"This container provides the list of trace types for | "This container provides the list of trace types for | |||
encapsulation."; | encapsulation."; | |||
leaf use-namespace { | leaf use-namespace { | |||
type ioam-namespace; | type ioam-namespace; | |||
default default-namespace; | default "default-namespace"; | |||
description | description | |||
"This object indicates the namespace used for | "This object indicates the namespace used for | |||
encapsulation."; | encapsulation."; | |||
} | } | |||
leaf-list trace-type { | leaf-list trace-type { | |||
type ioam-trace-type; | type ioam-trace-type; | |||
description | description | |||
"The trace type is only defined at the encapsulation | "The trace type is only defined at the encapsulation | |||
node."; | node."; | |||
} | } | |||
} | } | |||
leaf max-length { | leaf max-length { | |||
when "derived-from-or-self(../node-action, | when "derived-from-or-self(../node-action, | |||
'ioam:action-encapsulate')"; | 'ioam:action-encapsulate')"; | |||
type uint32; | type uint32; | |||
units bytes; | units "bytes"; | |||
description | description | |||
"This field specifies the maximum length of the node data | "This field specifies the maximum length of the node data | |||
list in octets. 'max-length' is only defined at the | list in octets. 'max-length' is only defined at the | |||
encapsulation node."; | encapsulation node."; | |||
} | } | |||
} | } | |||
grouping ioam-incremental-tracing-profile { | grouping ioam-incremental-tracing-profile { | |||
description | description | |||
"A grouping for the Incremental Tracing Profile."; | "A grouping for the Incremental Tracing Profile."; | |||
skipping to change at line 490 ¶ | skipping to change at line 477 ¶ | |||
description | description | |||
"This field specifies the maximum length of the node data | "This field specifies the maximum length of the node data | |||
list in octets. 'max-length' is only defined at the | list in octets. 'max-length' is only defined at the | |||
encapsulation node."; | encapsulation node."; | |||
} | } | |||
} | } | |||
grouping ioam-incremental-tracing-profile { | grouping ioam-incremental-tracing-profile { | |||
description | description | |||
"A grouping for the Incremental Tracing Profile."; | "A grouping for the Incremental Tracing Profile."; | |||
leaf node-action { | leaf node-action { | |||
type ioam-node-action; | type ioam-node-action; | |||
default action-transit; | default "action-transit"; | |||
description | description | |||
"This object indicates the action the node needs to | "This object indicates the action the node needs to | |||
take, e.g., encapsulation."; | take, e.g., encapsulation."; | |||
} | } | |||
uses encap-tracing { | uses encap-tracing { | |||
when "derived-from-or-self(node-action, | when "derived-from-or-self(node-action, | |||
'ioam:action-encapsulate')"; | 'ioam:action-encapsulate')"; | |||
} | } | |||
} | } | |||
grouping ioam-preallocated-tracing-profile { | grouping ioam-preallocated-tracing-profile { | |||
description | description | |||
"A grouping for the Pre-allocated Tracing Profile."; | "A grouping for the Pre-allocated Tracing Profile."; | |||
leaf node-action { | leaf node-action { | |||
type ioam-node-action; | type ioam-node-action; | |||
default action-transit; | default "action-transit"; | |||
description | description | |||
"This object indicates the action the node needs to | "This object indicates the action the node needs to | |||
take, e.g., encapsulation."; | take, e.g., encapsulation."; | |||
} | } | |||
uses encap-tracing { | uses encap-tracing { | |||
when "derived-from-or-self(node-action, | when "derived-from-or-self(node-action, | |||
'ioam:action-encapsulate')"; | 'ioam:action-encapsulate')"; | |||
} | } | |||
} | } | |||
grouping ioam-direct-export-profile { | grouping ioam-direct-export-profile { | |||
description | description | |||
"A grouping for the Direct Export Profile."; | "A grouping for the Direct Export Profile."; | |||
leaf node-action { | leaf node-action { | |||
type ioam-node-action; | type ioam-node-action; | |||
default action-transit; | default "action-transit"; | |||
description | description | |||
"This object indicates the action the node needs to | "This object indicates the action the node needs to | |||
take, e.g., encapsulation."; | take, e.g., encapsulation."; | |||
} | } | |||
uses encap-tracing { | uses encap-tracing { | |||
when "derived-from-or-self(node-action, | when "derived-from-or-self(node-action, | |||
'ioam:action-encapsulate')"; | 'ioam:action-encapsulate')"; | |||
} | } | |||
leaf flow-id { | leaf flow-id { | |||
when "derived-from-or-self(../node-action, | when "derived-from-or-self(../node-action, | |||
'ioam:action-encapsulate')"; | 'ioam:action-encapsulate')"; | |||
type uint32; | type uint32; | |||
description | description | |||
"A 32-bit flow identifier. The field is set at the | "A 32-bit flow identifier. The field is set at the | |||
encapsulating node. The Flow ID can be uniformly | encapsulating node. The Flow ID can be uniformly | |||
assigned by a central controller or algorithmically | assigned by a central controller or algorithmically | |||
generated by the encapsulating node. The latter approach | generated by the encapsulating node. The latter approach | |||
cannot guarantee the uniqueness of the Flow ID, yet the | cannot guarantee the uniqueness of the Flow ID, yet the | |||
probability of conflict is small due to the large Flow ID | probability of conflict is small due to the large Flow ID | |||
space. 'flow-id' is used to correlate the exported data | space. 'flow-id' is used to correlate the exported data | |||
of the same flow from multiple nodes and from multiple | of the same flow from multiple nodes and from multiple | |||
skipping to change at line 555 ¶ | skipping to change at line 535 ¶ | |||
"A 32-bit flow identifier. The field is set at the | "A 32-bit flow identifier. The field is set at the | |||
encapsulating node. The Flow ID can be uniformly | encapsulating node. The Flow ID can be uniformly | |||
assigned by a central controller or algorithmically | assigned by a central controller or algorithmically | |||
generated by the encapsulating node. The latter approach | generated by the encapsulating node. The latter approach | |||
cannot guarantee the uniqueness of the Flow ID, yet the | cannot guarantee the uniqueness of the Flow ID, yet the | |||
probability of conflict is small due to the large Flow ID | probability of conflict is small due to the large Flow ID | |||
space. 'flow-id' is used to correlate the exported data | space. 'flow-id' is used to correlate the exported data | |||
of the same flow from multiple nodes and from multiple | of the same flow from multiple nodes and from multiple | |||
packets."; | packets."; | |||
} | } | |||
leaf enable-sequence-number { | leaf enable-sequence-number { | |||
when "derived-from-or-self(../node-action, | when "derived-from-or-self(../node-action, | |||
'ioam:action-encapsulate')"; | 'ioam:action-encapsulate')"; | |||
type boolean; | type boolean; | |||
default false; | default "false"; | |||
description | description | |||
"This boolean value indicates whether the sequence number | "This boolean value indicates whether the sequence number | |||
is used in the direct export option's 32-bit flow | is used in the direct export option's 32-bit flow | |||
identifier. If this value is set to 'true', the sequence | identifier. If this value is set to 'true', the sequence | |||
number is used. It is turned off by default."; | number is used. It is turned off by default."; | |||
} | } | |||
} | } | |||
grouping ioam-e2e-profile { | grouping ioam-e2e-profile { | |||
description | description | |||
skipping to change at line 572 ¶ | skipping to change at line 551 ¶ | |||
"This boolean value indicates whether the sequence number | "This boolean value indicates whether the sequence number | |||
is used in the direct export option's 32-bit flow | is used in the direct export option's 32-bit flow | |||
identifier. If this value is set to 'true', the sequence | identifier. If this value is set to 'true', the sequence | |||
number is used. It is turned off by default."; | number is used. It is turned off by default."; | |||
} | } | |||
} | } | |||
grouping ioam-e2e-profile { | grouping ioam-e2e-profile { | |||
description | description | |||
"A grouping for the Edge-to-Edge Profile."; | "A grouping for the Edge-to-Edge Profile."; | |||
leaf node-action { | leaf node-action { | |||
type ioam-node-action; | type ioam-node-action; | |||
default action-transit; | default "action-transit"; | |||
description | description | |||
"This object indicates the action the node needs to | "This object indicates the action the node needs to | |||
take, e.g., encapsulation."; | take, e.g., encapsulation."; | |||
} | } | |||
container e2e-types { | container e2e-types { | |||
when "derived-from-or-self(../node-action, | when "derived-from-or-self(../node-action, | |||
'ioam:action-encapsulate')"; | 'ioam:action-encapsulate')"; | |||
description | description | |||
"This container provides the list of edge-to-edge types | "This container provides the list of edge-to-edge types | |||
for encapsulation."; | for encapsulation."; | |||
leaf use-namespace { | leaf use-namespace { | |||
type ioam-namespace; | type ioam-namespace; | |||
default default-namespace; | default "default-namespace"; | |||
description | description | |||
"This object indicates the namespace used for | "This object indicates the namespace used for | |||
encapsulation."; | encapsulation."; | |||
} | } | |||
leaf-list e2e-type { | leaf-list e2e-type { | |||
type ioam-e2e-type; | type ioam-e2e-type; | |||
description | description | |||
"The edge-to-edge type is only defined at the | "The edge-to-edge type is only defined at the | |||
encapsulation node."; | encapsulation node."; | |||
} | } | |||
} | } | |||
} | } | |||
grouping ioam-admin-config { | grouping ioam-admin-config { | |||
skipping to change at line 609 ¶ | skipping to change at line 583 ¶ | |||
description | description | |||
"The edge-to-edge type is only defined at the | "The edge-to-edge type is only defined at the | |||
encapsulation node."; | encapsulation node."; | |||
} | } | |||
} | } | |||
} | } | |||
grouping ioam-admin-config { | grouping ioam-admin-config { | |||
description | description | |||
"IOAM top-level administrative configuration."; | "IOAM top-level administrative configuration."; | |||
leaf enabled { | leaf enabled { | |||
type boolean; | type boolean; | |||
default false; | default "false"; | |||
description | description | |||
"This object is used to control the availability of | "This object is used to control the availability of | |||
configuration. It MUST be set to 'true' before anything | configuration. It MUST be set to 'true' before anything | |||
in the /ioam/profiles/profile subtree can be edited. | in the /ioam/profiles/profile subtree can be edited. | |||
If 'false', any configuration in place is not used."; | If 'false', any configuration in place is not used."; | |||
} | } | |||
} | } | |||
/* | /* | |||
* DATA NODES | * DATA NODES | |||
*/ | */ | |||
container ioam { | container ioam { | |||
description | description | |||
"IOAM top-level container."; | "IOAM top-level container."; | |||
container info { | container info { | |||
config false; | config false; | |||
description | description | |||
"Describes information, such as units or timestamp format, | "Describes information, such as units or timestamp format, | |||
that assists monitoring systems in the interpretation of | that assists monitoring systems in the interpretation of | |||
the IOAM data."; | the IOAM data."; | |||
leaf timestamp-type { | leaf timestamp-type { | |||
type identityref { | type identityref { | |||
base lime:timestamp-type; | base lime:timestamp-type; | |||
} | } | |||
description | description | |||
"Type of timestamp, such as Truncated PTP (Precision | "Type of timestamp, such as Truncated PTP (Precision | |||
Time Protocol) or NTP."; | Time Protocol) or NTP."; | |||
} | } | |||
list available-interface { | list available-interface { | |||
key "if-name"; | key "if-name"; | |||
description | description | |||
"A list of available interfaces that support IOAM."; | "A list of available interfaces that support IOAM."; | |||
leaf if-name { | leaf if-name { | |||
type if:interface-ref; | type if:interface-ref; | |||
description | description | |||
"This is a reference to the interface name."; | "This is a reference to the interface name."; | |||
} | } | |||
} | } | |||
skipping to change at line 656 ¶ | skipping to change at line 626 ¶ | |||
key "if-name"; | key "if-name"; | |||
description | description | |||
"A list of available interfaces that support IOAM."; | "A list of available interfaces that support IOAM."; | |||
leaf if-name { | leaf if-name { | |||
type if:interface-ref; | type if:interface-ref; | |||
description | description | |||
"This is a reference to the interface name."; | "This is a reference to the interface name."; | |||
} | } | |||
} | } | |||
} | } | |||
container admin-config { | container admin-config { | |||
description | description | |||
"Contains all the administrative configurations related to | "Contains all the administrative configurations related to | |||
the IOAM functionalities and all the IOAM profiles."; | the IOAM functionalities and all the IOAM profiles."; | |||
uses ioam-admin-config; | uses ioam-admin-config; | |||
} | } | |||
container profiles { | container profiles { | |||
description | description | |||
"Contains a list of IOAM profiles."; | "Contains a list of IOAM profiles."; | |||
list profile { | list profile { | |||
key "profile-name"; | key "profile-name"; | |||
description | description | |||
"A list of IOAM profiles that are configured on the | "A list of IOAM profiles that are configured on the | |||
node. There is no mandatory type of profile (e.g., | node. There is no mandatory type of profile (e.g., | |||
'incremental-trace', 'preallocated-trace') in the list. | 'incremental-trace', 'preallocated-trace') in the list. | |||
But at least one profile should be added."; | But at least one profile should be added."; | |||
leaf profile-name { | leaf profile-name { | |||
type string{ | type string { | |||
length "1..300"; | length "1..300"; | |||
} | } | |||
description | description | |||
"Unique identifier for each IOAM profile."; | "Unique identifier for each IOAM profile."; | |||
} | } | |||
container filter { | container filter { | |||
uses ioam-filter; | uses ioam-filter; | |||
description | description | |||
"The filter that is used to indicate the flow to apply | "The filter that is used to indicate the flow to apply | |||
IOAM."; | IOAM."; | |||
} | } | |||
leaf protocol-type { | leaf protocol-type { | |||
type ioam-protocol-type; | type ioam-protocol-type; | |||
description | description | |||
"This object is used to indicate the carrier protocol | "This object is used to indicate the carrier protocol | |||
where IOAM is applied."; | where IOAM is applied."; | |||
} | } | |||
container incremental-tracing-profile { | container incremental-tracing-profile { | |||
if-feature incremental-trace; | if-feature "incremental-trace"; | |||
presence "Enables the incremental tracing option."; | presence "Enables the incremental tracing option."; | |||
description | description | |||
"This container describes the profile for the | "This container describes the profile for the | |||
incremental tracing option."; | incremental tracing option."; | |||
uses ioam-incremental-tracing-profile; | uses ioam-incremental-tracing-profile; | |||
} | } | |||
container preallocated-tracing-profile { | container preallocated-tracing-profile { | |||
if-feature preallocated-trace; | if-feature "preallocated-trace"; | |||
presence "Enables the pre-allocated tracing option."; | presence "Enables the pre-allocated tracing option."; | |||
description | description | |||
"This container describes the profile for the | "This container describes the profile for the | |||
pre-allocated tracing option."; | pre-allocated tracing option."; | |||
uses ioam-preallocated-tracing-profile; | uses ioam-preallocated-tracing-profile; | |||
} | } | |||
container direct-export-profile { | container direct-export-profile { | |||
if-feature direct-export; | if-feature "direct-export"; | |||
presence "Enables the direct export option."; | presence "Enables the direct export option."; | |||
description | description | |||
"This container describes the profile for the | "This container describes the profile for the | |||
direct export option."; | direct export option."; | |||
uses ioam-direct-export-profile; | uses ioam-direct-export-profile; | |||
} | } | |||
container pot-profile { | container pot-profile { | |||
if-feature proof-of-transit; | if-feature "proof-of-transit"; | |||
presence "Enables the proof of transit (POT) option."; | presence "Enables the proof of transit (POT) option."; | |||
description | description | |||
"This container describes the profile for the | "This container describes the profile for the | |||
POT option."; | POT option."; | |||
leaf use-namespace { | leaf use-namespace { | |||
type ioam-namespace; | type ioam-namespace; | |||
default default-namespace; | default "default-namespace"; | |||
description | description | |||
"This object indicates the namespace used for the | "This object indicates the namespace used for the | |||
POT types."; | POT types."; | |||
} | } | |||
leaf pot-type { | leaf pot-type { | |||
type ioam-pot-type; | type ioam-pot-type; | |||
description | description | |||
"The type of a particular POT variant that specifies | "The type of a particular POT variant that specifies | |||
the POT data that is included."; | the POT data that is included."; | |||
} | } | |||
} | } | |||
container e2e-profile { | container e2e-profile { | |||
if-feature edge-to-edge; | if-feature "edge-to-edge"; | |||
presence "Enables the edge-to-edge option."; | presence "Enables the edge-to-edge option."; | |||
description | description | |||
"This container describes the profile for the | "This container describes the profile for the | |||
edge-to-edge option."; | edge-to-edge option."; | |||
uses ioam-e2e-profile; | uses ioam-e2e-profile; | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
} | } | |||
End of changes. 81 change blocks. | ||||
97 lines changed or deleted | 50 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |