@@ -10,6 +10,8 @@ module ietf-telemetry-message {
10
10
}
11
11
import ietf-inet-types {
12
12
prefix inet;
13
+ reference
14
+ "RFC 6991: Common YANG Data Types" ;
13
15
}
14
16
import ietf-platform-manifest {
15
17
prefix p-mf;
@@ -27,8 +29,9 @@ module ietf-telemetry-message {
27
29
Thomas Graf
28
30
29
31
description
30
- "This YANG modules defines a model for a telemetry collector to send
31
- collected YANG data from the network.
32
+ "This YANG module defines an extensible message schema to be used at
33
+ the data collection to transform Network Telemetry messages into
34
+ external systems such as Message Brokers.
32
35
33
36
Copyright (c) 2025 IETF Trust and the persons identified as
34
37
authors of the code. All rights reserved.
@@ -42,7 +45,7 @@ module ietf-telemetry-message {
42
45
This version of this YANG module is part of RFC XXXX; see the RFC
43
46
itself for full legal notices." ;
44
47
45
- revision 2025 -04 - 17 {
48
+ revision 2025 -06 - 10 {
46
49
description
47
50
"Initial revision." ;
48
51
reference
@@ -79,6 +82,16 @@ module ietf-telemetry-message {
79
82
"RFC 8040." ;
80
83
}
81
84
85
+ feature network-node-manifest {
86
+ description
87
+ "This feature indicates the network node manifest support." ;
88
+ }
89
+
90
+ feature data-collection-manifest {
91
+ description
92
+ "This feature indicates the data collection manifest support." ;
93
+ }
94
+
82
95
typedef telemetry-notification-event-type {
83
96
type enumeration {
84
97
enum log {
@@ -108,78 +121,86 @@ module ietf-telemetry-message {
108
121
base session-protocol;
109
122
}
110
123
description
111
- "Notification protocol used to deliver the notification to the
112
- data collection." ;
124
+ "Network Telemetry protocol used to deliver the notification
125
+ between the network node and the data collection." ;
113
126
}
114
127
115
128
container message {
116
129
config false ;
117
130
description
118
- "Telemetry message used in Data Mesh" ;
119
- leaf timestamp {
120
- type yang:date-and-time;
121
- mandatory true ;
122
- description
123
- "Timestamp when the data collection collected the payload
124
- from the network element or an update or delete event is
125
- triggered." ;
126
- }
127
- leaf session-protocol {
128
- type telemetry-session-protocol-type;
129
- mandatory true ;
130
- description
131
- "Session protocol used to collect the payload of this message
132
- from the network" ;
133
- }
131
+ "Telemetry message used within the Data Mesh" ;
134
132
container network-node-manifest {
133
+ if-feature "network-node-manifest" ;
135
134
description
136
- "Address of network element from which the payload is
137
- collected." ;
138
- uses p-mf:platform-details;
139
- }
140
- container data-collection-manifest {
141
- description
142
- "Address of the telemetry data collection." ;
135
+ "Contains the Data Manifest about the network node that
136
+ exported Network Telemetry data." ;
143
137
uses p-mf:platform-details;
144
138
}
145
139
container telemetry-message-metadata {
146
140
description
147
- "Extensible message and protocol specific metadata" ;
148
- leaf event-time {
141
+ "contains the session information about the session between the
142
+ collector and the network node." ;
143
+ leaf node-export-timestamp {
149
144
type yang:date-and-time;
150
145
description
151
- "NETCONF eventTime. Redefined in here since NETCONF header is
152
- XML not YANG ." ;
146
+ "Timestamp when the Network Telemetry data has been exported
147
+ from network element ." ;
153
148
}
154
- }
155
- container data-collection-metadata {
156
- description
157
- "Metadata added by data collection." ;
158
- leaf remote-address {
149
+ leaf collection-timestamp {
150
+ type yang:date-and-time;
151
+ mandatory true ;
152
+ description
153
+ "Timestamp when the data collection collected the Network
154
+ Telemetry data from the network element." ;
155
+ }
156
+ leaf session-protocol {
157
+ type telemetry-session-protocol-type;
158
+ mandatory true ;
159
+ description
160
+ "Session protocol used to collect the Network Telemetry data
161
+ from the network node." ;
162
+ }
163
+ leaf export-address {
159
164
type inet:host;
160
165
mandatory true ;
161
166
description
162
- "Network node IP address." ;
167
+ "Network node IP address from where the Network Telemetry data
168
+ was exported from." ;
163
169
}
164
- leaf remote -port {
170
+ leaf export -port {
165
171
type inet:port-number;
166
172
description
167
- "Network node transport port number." ;
173
+ "Network node transport port number from where the Network
174
+ Telemetry data was exported." ;
168
175
}
169
- leaf local -address {
176
+ leaf collection -address {
170
177
type inet:host;
171
178
description
172
- "Data collection IP address." ;
179
+ "Data collection IP address at which the Network Telemetry
180
+ data was collected." ;
173
181
}
174
- leaf local -port {
182
+ leaf collection -port {
175
183
type inet:port-number;
176
184
description
177
- "Data collection transport port number." ;
185
+ "Data collection transport port number at which the Network
186
+ Telemetry data was collected." ;
178
187
}
188
+ }
189
+ container data-collection-manifest {
190
+ if-feature "data-collection-manifest" ;
191
+ description
192
+ "Contains the Data Manifest of the data collection which
193
+ collected the Network Telemetry data." ;
194
+ uses p-mf:platform-details;
195
+ }
196
+ container network-operator-metadata {
197
+ description
198
+ "Network operator specific metadata added by the Network
199
+ Telemetry data collection." ;
179
200
list labels {
180
201
key "name" ;
181
202
description
182
- "Arbiterary labels assinged by the data collection." ;
203
+ "Abritrary labels assinged by the data collection." ;
183
204
leaf name {
184
205
type string {
185
206
length "1..max" ;
0 commit comments