| 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. | ||||