idnits 2.17.1 draft-ietf-babel-information-model-06.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- == There are 1 instance of lines with non-RFC3849-compliant IPv6 addresses in the document. If these are example addresses, they should be changed. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 311 has weird spacing: '...nts-obj ro ba...' == Line 395 has weird spacing: '...address rw b...' == Line 426 has weird spacing: '...ats-obj ro b...' == Line 427 has weird spacing: '...ors-obj ro ba...' == Line 710 has weird spacing: '...eys-obj rw b...' == (1 more instance...) -- The document date (July 8, 2019) is 1754 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- == Missing Reference: '0-9a-fA-F' is mentioned on line 573, but not defined == Outdated reference: A later version (-20) exists of draft-ietf-babel-rfc6126bis-11 == Outdated reference: A later version (-10) exists of draft-ietf-babel-dtls-07 == Outdated reference: A later version (-12) exists of draft-ietf-babel-hmac-08 Summary: 0 errors (**), 0 flaws (~~), 12 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Babel routing protocol B. Stark 3 Internet-Draft AT&T 4 Intended status: Informational M. Jethanandani 5 Expires: January 9, 2020 VMware 6 July 8, 2019 8 Babel Information Model 9 draft-ietf-babel-information-model-06 11 Abstract 13 This Babel Information Model can be used to create data models under 14 various data modeling regimes. It allows a Babel implementation (via 15 a management protocol or interface) to report on its current state 16 and may allow some limited configuration of protocol constants. 18 Status of This Memo 20 This Internet-Draft is submitted in full conformance with the 21 provisions of BCP 78 and BCP 79. 23 Internet-Drafts are working documents of the Internet Engineering 24 Task Force (IETF). Note that other groups may also distribute 25 working documents as Internet-Drafts. The list of current Internet- 26 Drafts is at https://datatracker.ietf.org/drafts/current/. 28 Internet-Drafts are draft documents valid for a maximum of six months 29 and may be updated, replaced, or obsoleted by other documents at any 30 time. It is inappropriate to use Internet-Drafts as reference 31 material or to cite them other than as "work in progress." 33 This Internet-Draft will expire on January 9, 2020. 35 Copyright Notice 37 Copyright (c) 2019 IETF Trust and the persons identified as the 38 document authors. All rights reserved. 40 This document is subject to BCP 78 and the IETF Trust's Legal 41 Provisions Relating to IETF Documents 42 (https://trustee.ietf.org/license-info) in effect on the date of 43 publication of this document. Please review these documents 44 carefully, as they describe your rights and restrictions with respect 45 to this document. Code Components extracted from this document must 46 include Simplified BSD License text as described in Section 4.e of 47 the Trust Legal Provisions and are provided without warranty as 48 described in the Simplified BSD License. 50 Table of Contents 52 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 53 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 54 1.2. Notation . . . . . . . . . . . . . . . . . . . . . . . . 3 55 2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 4 56 3. The Information Model . . . . . . . . . . . . . . . . . . . . 7 57 3.1. Definition of babel-information-obj . . . . . . . . . . . 7 58 3.2. Definition of babel-constants-obj . . . . . . . . . . . . 9 59 3.3. Definition of babel-interfaces-obj . . . . . . . . . . . 9 60 3.4. Definition of babel-if-stats-obj . . . . . . . . . . . . 11 61 3.5. Definition of babel-neighbors-obj . . . . . . . . . . . . 12 62 3.6. Definition of babel-nbr-stats-obj . . . . . . . . . . . . 13 63 3.7. Definition of babel-routes-obj . . . . . . . . . . . . . 14 64 3.8. Definition of babel-hmac-obj . . . . . . . . . . . . . . 15 65 3.9. Definition of babel-hmac-keys-obj . . . . . . . . . . . . 16 66 3.10. Definition of babel-dtls-obj . . . . . . . . . . . . . . 16 67 3.11. Definition of babel-dtls-certs-obj . . . . . . . . . . . 17 68 4. Extending the Information Model . . . . . . . . . . . . . . . 18 69 5. Security Considerations . . . . . . . . . . . . . . . . . . . 18 70 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18 71 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 19 72 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 73 8.1. Normative References . . . . . . . . . . . . . . . . . . 20 74 8.2. Informative References . . . . . . . . . . . . . . . . . 20 75 Appendix A. Open Issues . . . . . . . . . . . . . . . . . . . . 21 76 Appendix B. Change Log . . . . . . . . . . . . . . . . . . . . . 24 77 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 27 79 1. Introduction 81 Babel is a loop-avoiding distance-vector routing protocol defined in 82 [I-D.ietf-babel-rfc6126bis]. [I-D.ietf-babel-hmac] defines a 83 security mechanism that allows Babel packets to be cryptographically 84 authenticated, and [I-D.ietf-babel-dtls] defines a security mechanism 85 that allows Babel packets to be encrypted. This document describes 86 an information model for Babel (including implementations using one 87 of these security mechanisms) that can be used to create management 88 protocol data models (such as a NETCONF [RFC6241] YANG [RFC7950] data 89 model). 91 Due to the simplicity of the Babel protocol, most of the information 92 model is focused on reporting Babel protocol operational state, and 93 very little of that is considered mandatory to implement (contingent 94 on a management protocol with Babel support being implemented). Some 95 parameters may be configurable. However, it is up to the Babel 96 implementation whether to allow any of these to be configured within 97 its implementation. Where the implementation does not allow 98 configuration of these parameters, it may still choose to expose them 99 as read-only. 101 The Information Model is presented using a hierarchical structure. 102 This does not preclude a data model based on this Information Model 103 from using a referential or other structure. 105 1.1. Requirements Language 107 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 108 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 109 document are to be interpreted as described in [RFC2119] and updated 110 by [RFC8174]. 112 1.2. Notation 114 This document uses a programming language-like notation to define the 115 properties of the objects of the information model. An optional 116 property is enclosed by square brackets, [ ], and a list property is 117 indicated by two numbers in angle brackets, , where m indicates 118 the minimal number of list elements, and n indicates the maximum 119 number of list elements. The symbol * for n means there are no 120 defined limits on the number of list elements. Each parameter and 121 object includes an indication of "ro" or "rw". "ro" means the 122 parameter or object is read-only. "rw" means it is read-write. For 123 an object, read-write means instances of the object can be created or 124 deleted. If an implementation is allowed to choose to implement a 125 "rw" parameter as read-only, this is noted in the parameter 126 description. 128 The object definitions use base types that are defined as follows: 130 binary A binary string (sequence of octets). 132 boolean A type representing a Boolean value. 134 counter A non-negative integer that monotonically increases. 135 Counters may have discontinuities and they are not 136 expected to persist across restarts. 138 datetime A type representing a date and time using the Gregorian 139 calendar. The datetime format MUST conform to RFC 3339 140 [RFC3339]. 142 ip-address A type representing an IP address. This type supports 143 both IPv4 and IPv6 addresses. 145 operation A type representing a remote procedure call or other 146 action that can be used to manipulate data elements or 147 system behaviors. 149 reference A type representing a reference to another information or 150 data model element or to some other device resource. 152 string A type representing a human-readable string consisting of 153 a (possibly restricted) subset of Unicode and ISO/IEC 154 10646 [ISO.10646] characters. 156 uint A type representing an unsigned integer number. This 157 information model does not define a precision. 159 2. Overview 161 The Information Model is hierarchically structured as follows: 163 +-- babel-information 164 +-- babel-implementation-version 165 +-- babel-enable 166 +-- router-id 167 +-- babel-supported-link-properties 168 +-- self-seqno 169 +-- babel-metric-comp-algorithms 170 +-- babel-security-supported 171 +-- babel-hmac-enable 172 +-- babel-hmac-algorithms 173 +-- babel-dtls-enable 174 +-- babel-dtls-cert-types 175 +-- babel-stats-enable 176 +-- babel-stats-reset 177 +-- babel-constants 178 | +-- babel-udp-port 179 | +-- babel-mcast-group 180 +-- babel-interfaces 181 | +-- babel-interface-reference 182 | +-- babel-interface-enable 183 | +-- babel-link-properties 184 | +-- babel-interface-metric-algorithm 185 | +-- babel-mcast-hello-seqno 186 | +-- babel-mcast-hello-interval 187 | +-- babel-update-interval 188 | +-- babel-interfaces-hmac-keys 189 | +-- babel-hmac-algorithm 190 | +-- babel-hmac-verify 191 | +-- babel-interfaces-dtls-certs 192 | +-- babel-dtls-cached-info 193 | +-- babel-dtls-cert-prefer 194 | +-- babel-packet-log-enable 195 | +-- babel-packet-log 196 | +-- babel-if-stats 197 | | +-- babel-sent-mcast-hello 198 | | +-- babel-sent-mcast-update 199 | | +-- babel-received-packets 200 | +-- babel-neighbors 201 | | +-- babel-neighbor-address 202 | | +-- babel-hello-mcast-history 203 | | +-- babel-hello-ucast-history 204 | | +-- babel-txcost 205 | | +-- babel-exp-mcast-hello-seqno 206 | | +-- babel-exp-ucast-hello-seqno 207 | | +-- babel-ucast-hello-seqno 208 | | +-- babel-ucast-hello-interval 209 | | +-- babel-rxcost 210 | | +-- babel-cost 211 | | +-- babel-nbr-stats 212 | | | +-- babel-sent-ucast-hello 213 | | | +-- babel-sent-ucast-update 214 | | | +-- babel-sent-IHU 215 | | | +-- babel-received-hello 216 | | | +-- babel-received-update 217 | | | +-- babel-received-IHU 218 +-- babel-routes 219 | +-- babel-route-prefix 220 | +-- babel-route-prefix-length 221 | +-- babel-route-router-id 222 | +-- babel-route-neighbor 223 | +-- babel-route-received-metric 224 | +-- babel-route-calculated-metric 225 | +-- babel-route-seqno 226 | +-- babel-route-next-hop 227 | +-- babel-route-feasible 228 | +-- babel-route-selected 229 +-- babel-hmac 230 | +-- babel-hmac-default-apply 231 | | +-- babel-hmac-key-name 232 | | +-- babel-hmac-key-use-sign 233 | | +-- babel-hmac-key-use-verify 234 | | +-- babel-hmac-key-value 235 +-- babel-dtls 236 | +-- babel-dtls-default-apply 237 | | +-- babel-cert-value 238 | | +-- babel-cert-type 239 | | +-- babel-cert-private-key 240 | | +-- babel-cert-test 242 Most parameters are read-only. Following is a descriptive list of 243 the parameters that are not required to be read-only: 245 o enable/disable Babel 247 o create/delete babel-hmac objects 249 o create/delete babel-dtls objects 251 o enable/disable statistics collection 253 o Constant: UDP port 255 o Constant: IPv6 multicast group 257 o Interface: Link type 259 o Interface: enable/disable Babel on this interface 261 o Interface: sets of HMAC keys 263 o Interface: HMAC algorithm 265 o Interface: verify received HMAC packets 267 o Interface: set of DTLS certificates 269 o Interface: use cached info extensions 271 o Interface: preferred order of certificate types 273 o Interface: enable/disable packet log 275 o HMAC-keys: create/delete entries 277 o HMAC-keys: use to sign packets 279 o HMAC-keys: use to verify packets 281 o DTLS-certs: create/delete entries 283 The following parameters are required to return no value when read: 285 o HMAC key values 287 o DTLS certificate values 288 Note that this overview is intended simply to be informative and is 289 not normative. If there is any discrepancy between this overview and 290 the detailed information model definitions in subsequent sections, 291 the error is in this overview. 293 3. The Information Model 295 3.1. Definition of babel-information-obj 297 object { 298 string ro babel-implementation-version; 299 boolean rw babel-enable; 300 binary ro babel-self-router-id; 301 string ro babel-supported-link-properties<1..*>; 302 [uint ro babel-self-seqno;] 303 string ro babel-metric-comp-algorithms<1..*>; 304 string ro babel-security-supported<0..*>; 305 [boolean ro babel-hmac-enable;] 306 [string ro babel-hmac-algorithms<1..*>;] 307 [boolean ro babel-dtls-enable;] 308 [string ro babel-dtls-cert-types<1..*>;] 309 [boolean rw babel-stats-enable;] 310 [operation babel-stats-reset;] 311 babel-constants-obj ro babel-constants; 312 babel-interfaces-obj ro babel-interfaces<0..*>; 313 babel-routes-obj ro babel-routes<0..*>; 314 [babel-hmac-obj rw babel-hmac<0..*>;] 315 [babel-dtls-obj rw babel-dtls<0..*>;] 316 } babel-information-obj; 318 babel-implementation-version: The name and version of this 319 implementation of the Babel protocol. 321 babel-enable: When written, it configures whether the protocol 322 should be enabled (true) or disabled (false). A read from the 323 running or intended datastore indicates the configured 324 administrative value of whether the protocol is enabled (true) or 325 not (false). A read from the operational datastore indicates 326 whether the protocol is actually running (true) or not (i.e., it 327 indicates the operational state of the protocol). A data model 328 that does not replicate parameters for running and operational 329 datastores can implement this as two separate parameters. An 330 implementation MAY choose to expose this parameter as read-only 331 ("ro"). 333 babel-self-router-id: The router-id used by this instance of the 334 Babel protocol to identify itself. [I-D.ietf-babel-rfc6126bis] 335 describes this as an arbitrary string of 8 octets. 337 babel-supported-link-properties: Lists the collections of link 338 properties supported by this instance of Babel. Valid enumeration 339 values are defined in the Babel Link Properties registry (see 340 Section 6). 342 babel-self-seqno: The current sequence number included in route 343 updates for routes originated by this node. This is a 16-bit 344 unsigned integer. 346 babel-metric-comp-algorithms: List of supported cost computation 347 algorithms. Possible values include "k-out-of-j", and "ETX". 349 babel-security-supported: List of supported security mechanisms. 350 Possible values include "HMAC" and "DTLS". 352 babel-hmac-enable: Indicates whether the HMAC security mechanism is 353 enabled (true) or disabled (false). An implementation MAY choose 354 to expose this parameter as read-only ("ro"). 356 babel-hmac-algorithms: List of supported HMAC computation 357 algorithms. Possible values include "HMAC-SHA256", "BLAKE2s". 359 babel-dtls-enable: Indicates whether the DTLS security mechanism is 360 enabled (true) or disabled (false). An implementation MAY choose 361 to expose this parameter as read-only ("ro"). 363 babel-dtls-cert-types: List of supported DTLS certificate types. 364 Possible values include "X.509" and "RawPublicKey". 366 babel-stats-enable: Indicates whether statistics collection is 367 enabled (true) or disabled (false) on all interfaces, including 368 neighbor-specific statistics (babel-nbr-stats). 370 babel-stats-reset: An operation that resets all babel-if-stats and 371 babel-nbr-stats parameters to zero. This operation has no input 372 or output parameters. 374 babel-constants: A babel-constants-obj object. 376 babel-interfaces: A set of babel-interface-obj objects. 378 babel-routes: A set of babel-route-obj objects. Contains the routes 379 known to this node. 381 babel-hmac: A babel-hmac-obj object. If this object is implemented, 382 it provides access to parameters related to the HMAC security 383 mechanism. An implementation MAY choose to expose this object as 384 read-only ("ro"). 386 babel-dtls: A babel-dtls-obj object. If this object is implemented, 387 it provides access to parameters related to the DTLS security 388 mechanism. An implementation MAY choose to expose this object as 389 read-only ("ro"). 391 3.2. Definition of babel-constants-obj 393 object { 394 uint rw babel-udp-port; 395 [ip-address rw babel-mcast-group;] 396 } babel-constants-obj; 398 babel-udp-port: UDP port for sending and listening for Babel 399 packets. Default is 6696. An implementation MAY choose to expose 400 this parameter as read-only ("ro"). This is a 16-bit unsigned 401 integer. 403 babel-mcast-group: Multicast group for sending and listening to 404 multicast announcements on IPv6. Default is ff02:0:0:0:0:0:1:6. 405 An implementation MAY choose to expose this parameter as read-only 406 ("ro"). 408 3.3. Definition of babel-interfaces-obj 410 object { 411 reference ro babel-interface-reference; 412 [boolean rw babel-interface-enable;] 413 string rw babel-link-properties; 414 string ro babel-interface-metric-algorithm; 415 [uint ro babel-mcast-hello-seqno;] 416 [uint ro babel-mcast-hello-interval;] 417 [uint ro babel-update-interval;] 418 [reference rw babel-interface-hmac-keys<0..*>;] 419 [string rw babel-hmac-algorithm;] 420 [boolean rw babel-hmac-verify;] 421 [reference rw babel-interface-dtls-certs<0..*>;] 422 [boolean rw babel-dtls-cached-info;] 423 [string rw babel-dtls-cert-prefer<0..*>;] 424 [boolean rw babel-packet-log-enable;] 425 [reference ro babel-packet-log;] 426 [babel-if-stats-obj ro babel-if-stats;] 427 babel-neighbors-obj ro babel-neighbors<0..*>; 428 } babel-interfaces-obj; 430 babel-interface-reference: Reference to an IPv6 interface object as 431 defined by the data model (e.g., YANG [RFC7950], BBF [TR-181]). 432 Referencing syntax will be specific to the data model. If there 433 is no set of interface objects available, this should be a string 434 that indicates the interface name used by the underlying operating 435 system. 437 babel-interface-enable: When written, it configures whether the 438 protocol should be enabled (true) or disabled (false) on this 439 interface. A read from the running or intended datastore 440 indicates the configured administrative value of whether the 441 protocol is enabled (true) or not (false). A read from the 442 operational datastore indicates whether the protocol is actually 443 running (true) or not (i.e., it indicates the operational state of 444 the protocol). A data model that does not replicate parameters 445 for running and operational datastores can implement this as two 446 separate parameters. An implementation MAY choose to expose this 447 parameter as read-only ("ro"). 449 babel-link-properties: Indicates the properties of the link. The 450 value MUST be one of those listed in the babel-supported-link- 451 properties parameter. Valid enumeration values are identified in 452 Babel Link Properties registry. An implementation MAY choose to 453 expose this parameter as read-only ("ro"). 455 babel-interface-metric-algorithm: Indicates the metric computation 456 algorithm used on this interface. The value MUST be one of those 457 listed in the babel-information-obj babel-metric-comp-algorithms 458 parameter. 460 babel-mcast-hello-seqno: The current sequence number in use for 461 multicast Hellos sent on this interface. This is a 16-bit 462 unsigned integer. 464 babel-mcast-hello-interval: The current interval in use for 465 multicast Hellos sent on this interface. Units are centiseconds. 466 This is a 16-bit unsigned integer. 468 babel-update-interval: The current interval in use for all updates 469 (multicast and unicast) sent on this interface. Units are 470 centiseconds. This is a 16-bit unsigned integer. 472 babel-interface-hmac-keys: List of references to the babel-hmac 473 entries that apply to this interface. When an interface instance 474 is created, all babel-hmac instances with babel-hmac-default-apply 475 "true" will be included in this list. An implementation MAY 476 choose to expose this parameter as read-only ("ro"). 478 babel-hmac-algorithm The name of the HMAC algorithm used on this 479 interface. The value MUST be the same as one of the enumerations 480 listed in the babel-hmac-algorithms parameter. An implementation 481 MAY choose to expose this parameter as read-only ("ro"). 483 babel-hmac-verify A Boolean flag indicating whether HMAC hashes in 484 incoming Babel packets are required to be present and are 485 verified. If this parameter is "true", incoming packets are 486 required to have a valid HMAC hash. An implementation MAY choose 487 to expose this parameter as read-only ("ro"). 489 babel-interface-dtls-certs: List of references to the babel-dtls 490 entries that apply to this interface. When an interface instance 491 is created, all babel-dtls instances with babel-dtls-default-apply 492 "true" will be included in this list. An implementation MAY 493 choose to expose this parameter as read-only ("ro"). 495 babel-dtls-cached-info: Indicates whether the cached_info extension 496 is included in ClientHello and ServerHello packets. The extension 497 is included if the value is "true". An implementation MAY choose 498 to expose this parameter as read-only ("ro"). 500 babel-dtls-cert-prefer: List of supported certificate types, in 501 order of preference. The values MUST be among those listed in the 502 babel-dtls-cert-types parameter. This list is used to populate 503 the server_certificate_type extension in a Client Hello. Values 504 that are present in at least one instance in the babel-dtls-certs 505 object of a referenced babel-dtls instance and that have a non- 506 empty babel-cert-private-key will be used to populate the 507 client_certificate_type extension in a Client Hello. 509 babel-packet-log-enable: Indicates whether packet logging is enabled 510 (true) or disabled (false) on this interface. 512 babel-packet-log: A reference or url link to a file that contains a 513 timestamped log of packets received and sent on babel-udp-port on 514 this interface. The [libpcap] file format with .pcap file 515 extension SHOULD be supported for packet log files. Logging is 516 enabled / disabled by babel-packet-log-enable. 518 babel-if-stats: Statistics collection object for this interface. 520 babel-neighbors: A set of babel-neighbors-obj objects. 522 3.4. Definition of babel-if-stats-obj 524 object { 525 uint ro babel-sent-mcast-hello; 526 uint ro babel-sent-mcast-update; 527 uint ro babel-received-packets; 528 } babel-if-stats-obj; 530 babel-sent-mcast-hello: A count of the number of multicast Hello 531 packets sent on this interface. 533 babel-sent-mcast-update: A count of the number of multicast update 534 packets sent on this interface. 536 babel-received-packets: A count of the number of Babel packets 537 received on this interface. 539 3.5. Definition of babel-neighbors-obj 541 object { 542 ip-address ro babel-neighbor-address; 543 [binary ro babel-hello-mcast-history;] 544 [binary ro babel-hello-ucast-history;] 545 uint ro babel-txcost; 546 uint ro babel-exp-mcast-hello-seqno; 547 uint ro babel-exp-ucast-hello-seqno; 548 [uint ro babel-ucast-hello-seqno;] 549 [uint ro babel-ucast-hello-interval;] 550 [uint ro babel-rxcost;] 551 [uint ro babel-cost;] 552 [babel-nbr-stats-obj ro babel-nbr-stats;] 553 } babel-neighbors-obj; 555 babel-neighbor-address: IPv4 or IPv6 address the neighbor sends 556 packets from. 558 babel-hello-mcast-history: The multicast Hello history of whether or 559 not the multicast Hello packets prior to babel-exp-mcast-hello- 560 seqno were received. A binary sequence where the most recently 561 received Hello is expressed as a "1" placed in the left-most bit, 562 with prior bits shifted right (and "0" bits placed between prior 563 Hello bits and most recent Hello for any not-received Hellos). 564 This value should be displayed using hex digits ([0-9a-fA-F]). 565 See [I-D.ietf-babel-rfc6126bis], section A.1. 567 babel-hello-ucast-history: The unicast Hello history of whether or 568 not the unicast Hello packets prior to babel-exp-ucast-hello-seqno 569 were received. A binary sequence where the most recently received 570 Hello is expressed as a "1" placed in the left-most bit, with 571 prior bits shifted right (and "0" bits placed between prior Hello 572 bits and most recent Hello for any not-received Hellos). This 573 value should be displayed using hex digits ([0-9a-fA-F]). See 574 [I-D.ietf-babel-rfc6126bis], section A.1. 576 babel-txcost: Transmission cost value from the last IHU packet 577 received from this neighbor, or maximum value to indicate the IHU 578 hold timer for this neighbor has expired. See 579 [I-D.ietf-babel-rfc6126bis], section 3.4.2. This is a 16-bit 580 unsigned integer. 582 babel-exp-mcast-hello-seqno: Expected multicast Hello sequence 583 number of next Hello to be received from this neighbor. If 584 multicast Hello packets are not expected, or processing of 585 multicast packets is not enabled, this MUST be 0. This is a 586 16-bit unsigned integer. 588 babel-exp-ucast-hello-seqno: Expected unicast Hello sequence number 589 of next Hello to be received from this neighbor. If unicast Hello 590 packets are not expected, or processing of unicast packets is not 591 enabled, this MUST be 0. This is a 16-bit unsigned integer. 593 babel-ucast-hello-seqno: The current sequence number in use for 594 unicast Hellos sent to this neighbor. This is a 16-bit unsigned 595 integer. 597 babel-ucast-hello-interval: The current interval in use for unicast 598 Hellos sent to this neighbor. Units are centiseconds. This is a 599 16-bit unsigned integer. 601 babel-rxcost: Reception cost calculated for this neighbor. This 602 value is usually derived from the Hello history, which may be 603 combined with other data, such as statistics maintained by the 604 link layer. The rxcost is sent to a neighbor in each IHU. See 605 [I-D.ietf-babel-rfc6126bis], section 3.4.3. This is a 16-bit 606 unsigned integer. 608 babel-cost: Link cost is computed from the values maintained in the 609 neighbor table: the statistics kept in the neighbor table about 610 the reception of Hellos, and the txcost computed from received IHU 611 packets. This is a 16-bit unsigned integer. 613 babel-nbr-stats: Statistics collection object for this neighbor. 615 3.6. Definition of babel-nbr-stats-obj 617 object { 618 uint ro babel-sent-ucast-hello; 619 uint ro babel-sent-ucast-update; 620 uint ro babel-sent-IHU; 621 uint ro babel-received-hello; 622 uint ro babel-received-update; 623 uint ro babel-received-IHU; 624 } babel-nbr-stats-obj; 626 babel-sent-ucast-hello: A count of the number of unicast Hello 627 packets sent to this neighbor. 629 babel-sent-ucast-update: A count of the number of unicast update 630 packets sent to this neighbor. 632 babel-sent-IHU: A count of the number of IHU packets sent to this 633 neighbor. 635 babel-received-hello: A count of the number of Hello packets 636 received from this neighbor. 638 babel-received-update: A count of the number of update packets 639 received from this neighbor. 641 babel-received-IHU: A count of the number of IHU packets received 642 from this neighbor. 644 3.7. Definition of babel-routes-obj 646 object { 647 ip-address ro babel-route-prefix; 648 uint ro babel-route-prefix-length; 649 binary ro babel-route-router-id; 650 string ro babel-route-neighbor; 651 uint ro babel-route-received-metric; 652 uint ro babel-route-calculated-metric; 653 uint ro babel-route-seqno; 654 ip-address ro babel-route-next-hop; 655 boolean ro babel-route-feasible; 656 boolean ro babel-route-selected; 657 } babel-routes-obj; 659 babel-route-prefix: Prefix (expressed in IP address format) for 660 which this route is advertised. 662 babel-route-prefix-length: Length of the prefix for which this route 663 is advertised. 665 babel-route-router-id: router-id of the source router for which this 666 route is advertised. 668 babel-route-neighbor: Reference to the babel-neighbors entry for the 669 neighbor that advertised this route. 671 babel-route-received-metric: The metric with which this route was 672 advertised by the neighbor, or maximum value to indicate the route 673 was recently retracted and is temporarily unreachable (see 674 Section 3.5.5 of [I-D.ietf-babel-rfc6126bis]). This metric will 675 be 0 (zero) if the route was not received from a neighbor but was 676 generated through other means. At least one of babel-route- 677 calculated-metric and babel-route-received-metric MUST be non- 678 zero. Having both be non-zero is expected for a route that is 679 received and subsequently advertised. This is a 16-bit unsigned 680 integer. 682 babel-route-calculated-metric: A calculated metric for this route. 683 How the metric is calculated is implementation-specific. Maximum 684 value indicates the route was recently retracted and is 685 temporarily unreachable (see Section 3.5.5 of 686 [I-D.ietf-babel-rfc6126bis]). At least one of babel-route- 687 calculated-metric and babel-route-received-metric MUST be non- 688 zero. Having both be non-zero is expected for a route that is 689 received and subsequently advertised. This is a 16-bit unsigned 690 integer. 692 babel-route-seqno: The sequence number with which this route was 693 advertised. This is a 16-bit unsigned integer. 695 babel-route-next-hop: The next-hop address of this route. This will 696 be empty if this route has no next-hop address. 698 babel-route-feasible: A Boolean flag indicating whether this route 699 is feasible, as defined in Section 3.5.1 of 700 [I-D.ietf-babel-rfc6126bis]). 702 babel-route-selected: A Boolean flag indicating whether this route 703 is selected (i.e., whether it is currently being used for 704 forwarding and is being advertised). 706 3.8. Definition of babel-hmac-obj 708 object { 709 boolean rw babel-hmac-default-apply; 710 babel-hmac-keys-obj rw babel-hmac-keys<0..*>; 711 } babel-hmac-obj; 713 babel-hmac-default-apply: A Boolean flag indicating whether this 714 babel-hmac instance is applied to all interfaces, by default. If 715 "true", this instance is applied to new babel-interfaces instances 716 at the time they are created, by including it in the babel- 717 interface-hmac-keys list. If "false", this instance is not 718 applied to new babel-interfaces instances when they are created. 719 An implementation MAY choose to expose this parameter as read-only 720 ("ro"). 722 babel-hmac-keys: A set of babel-hmac-keys-obj objects. 724 3.9. Definition of babel-hmac-keys-obj 726 object { 727 string ro babel-hmac-key-name; 728 boolean rw babel-hmac-key-use-sign; 729 boolean rw babel-hmac-key-use-verify; 730 binary -- babel-hmac-key-value; 731 [operation babel-hmac-key-test;] 732 } babel-hmac-keys-obj; 734 babel-hmac-key-name: A unique name for this HMAC key that can be 735 used to identify the key in this object instance, since the key 736 value is not allowed to be read. This value can only be provided 737 when this instance is created, and is not subsequently writable. 739 babel-key-use-sign: Indicates whether this key value is used to sign 740 sent Babel packets. Sent packets are signed using this key if the 741 value is "true". If the value is "false", this key is not used to 742 sign sent Babel packets. An implementation MAY choose to expose 743 this parameter as read-only ("ro"). 745 babel-key-use-verify: Indicates whether this key value is used to 746 verify incoming Babel packets. This key is used to verify 747 incoming packets if the value is "true". If the value is "false", 748 no HMAC is computed from this key for comparing an incoming 749 packet. An implementation MAY choose to expose this parameter as 750 read-only ("ro"). 752 babel-key-value: The value of the HMAC key. An implementation MUST 753 NOT allow this parameter to be read. This can be done by always 754 providing an empty string, or through permissions, or other means. 755 This value can only be provided when this instance is created, and 756 is not subsequently writable. 758 babel-hmac-test: An operation that allows the HMAC key and hash 759 algorithm to be tested to see if they produce an expected outcome. 760 Input to this operation is a binary string. The implementation is 761 expected to create a hash of this string using the babel-hmac-key- 762 value and the babel-hmac-algorithm. The output of this operation 763 is the resulting hash, as a binary string. 765 3.10. Definition of babel-dtls-obj 766 object { 767 boolean rw babel-dtls-default-apply; 768 babel-dtls-certs-obj rw babel-dtls-certs<0..*>; 769 } babel-dtls-obj; 771 babel-dtls-default-apply: A Boolean flag indicating whether this 772 babel-dtls instance is applied to all interfaces, by default. If 773 "true", this instance is applied to new babel-interfaces instances 774 at the time they are created, by including it in the babel- 775 interface-dtls-certs list. If "false", this instance is not 776 applied to new babel-interfaces instances when they are created. 777 An implementation MAY choose to expose this parameter as read-only 778 ("ro"). 780 babel-dtls-certs: A set of babel-dtls-keys-obj objects. This 781 contains both certificates for this implementation to present for 782 authentication, and to accept from others. Certificates with a 783 non-empty babel-cert-private-key can be presented by this 784 implementation for authentication. 786 3.11. Definition of babel-dtls-certs-obj 788 object { 789 string ro babel-cert-name; 790 string ro babel-cert-value; 791 string ro babel-cert-type; 792 binary -- babel-cert-private-key; 793 [operation babel-cert-test;] 794 } babel-dtls-certs-obj; 796 babel-cert-name: A unique name for this DTLS certificate that can be 797 used to identify the certificate in this object instance, since 798 the value is too long to be useful for identification. This value 799 can only be provided when this instance is created, and is not 800 subsequently writable. 802 babel-cert-value: The DTLS certificate in PEM format [RFC7468]. 803 This value can only be provided when this instance is created, and 804 is not subsequently writable. 806 babel-cert-type: The name of the certificate type of this object 807 instance. The value MUST be the same as one of the enumerations 808 listed in the babel-dtls-cert-types parameter. This value can 809 only be provided when this instance is created, and is not 810 subsequently writable. 812 babel-cert-private-key: The value of the private key. If this is 813 non-empty, this certificate can be used by this implementation to 814 provide a certificate during DTLS handshaking. An implementation 815 MUST NOT allow this parameter to be read. This can be done by 816 always providing an empty string, or through permissions, or other 817 means. This value can only be provided when this instance is 818 created, and is not subsequently writable. 820 babel-cert-test: An operation that allows a hash of the provided 821 input string to be created using the certificate public key and 822 the SHA-256 hash algorithm. Input to this operation is a binary 823 string. The output of this operation is the resulting hash, as a 824 binary string. 826 4. Extending the Information Model 828 Implementations MAY extend this information model with other 829 parameters or objects. For example, an implementation MAY choose to 830 expose Babel route filtering rules by adding a route filtering object 831 with parameters appropriate to how route filtering is done in that 832 implementation. The precise means used to extend the information 833 model would be specific to the data model the implementation uses to 834 expose this information. 836 5. Security Considerations 838 This document defines a set of information model objects and 839 parameters that may be exposed to be visible from other devices, and 840 some of which may be configured. Securing access to and ensuring the 841 integrity of this data is in scope of and the responsibility of any 842 data model derived from this information model. Specifically, any 843 YANG [RFC7950] data model is expected to define security exposure of 844 the various parameters, and a [TR-181] data model will be secured by 845 the mechanisms defined for the management protocol used to transport 846 it. 848 This information model defines objects that can allow credentials 849 (for this device, for trusted devices, and for trusted certificate 850 authorities) to be added and deleted. Public keys and shared secrets 851 may be exposed through this model. This model requires that private 852 keys never be exposed. The Babel security mechanisms that make use 853 of these credentials (e.g., [I-D.ietf-babel-dtls], 854 [I-D.ietf-babel-hmac]) are expected to define what credentials can be 855 used with those mechanisms. 857 6. IANA Considerations 859 This document defines a Babel Link Properties registry for the values 860 of the babel-link-properties and babel-supported-link-properties 861 parameters to be listed under the Babel Routing Protocol registry. 863 Valid Babel Link Properties names are normatively defined as 865 o MUST be at least 1 character and no more than 20 characters long 867 o MUST contain only US-ASCII [RFC0020] letters 'A' - 'Z' and 'a' - 868 'z', digits '0' - '9', and hyphens ('-', ASCII 0x2D or decimal 45) 870 o MUST contain at least one letter ('A' - 'Z' or 'a' - 'z') 872 o MUST NOT begin or end with a hyphen 874 o hyphens MUST NOT be adjacent to other hyphens 876 The rules for Link Properties names, excepting the limit of 20 877 characters maximum, are also expressed below (as a non-normative 878 convenience) using ABNF [RFC5234]. 880 SRVNAME = *(1*DIGIT [HYPHEN]) ALPHA *([HYPHEN] ALNUM) 881 ALNUM = ALPHA / DIGIT ; A-Z, a-z, 0-9 882 HYPHEN = %x2D ; "-" 883 ALPHA = %x41-5A / %x61-7A ; A-Z / a-z [RFC5234] 884 DIGIT = %x30-39 ; 0-9 [RFC5234] 886 The allocation policy of this registry is Specification Required 887 [RFC8126]. 889 The initial values in the "Babel Link Properties" registry are: 891 +----------+----------------------------------------+---------------+ 892 | Name | Describes Links with Properties | Reference | 893 +----------+----------------------------------------+---------------+ 894 | other | no link property information available | (this | 895 | | | document) | 896 | tunnel | a tunneled interface over unknown | (this | 897 | | physical link | document) | 898 | wired | | (this | 899 | | | document) | 900 | wireless | | (this | 901 | | | document) | 902 | exp-* | Reserved for Experimental Use | (this | 903 | | | document) | 904 +----------+----------------------------------------+---------------+ 906 7. Acknowledgements 908 Juliusz Chroboczek, Toke Hoeiland-Joergensen, David Schinazi, Acee 909 Lindem, and Carsten Bormann have been very helpful in refining this 910 information model. 912 The language in the Notation section was mostly taken from [RFC8193]. 914 8. References 916 8.1. Normative References 918 [I-D.ietf-babel-rfc6126bis] 919 Chroboczek, J. and D. Schinazi, "The Babel Routing 920 Protocol", draft-ietf-babel-rfc6126bis-11 (work in 921 progress), June 2019. 923 [libpcap] Wireshark, "Libpcap File Format", 2015, 924 . 927 [RFC0020] Cerf, V., "ASCII format for network interchange", STD 80, 928 RFC 20, DOI 10.17487/RFC0020, October 1969, 929 . 931 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 932 Requirement Levels", BCP 14, RFC 2119, 933 DOI 10.17487/RFC2119, March 1997, 934 . 936 [RFC7468] Josefsson, S. and S. Leonard, "Textual Encodings of PKIX, 937 PKCS, and CMS Structures", RFC 7468, DOI 10.17487/RFC7468, 938 April 2015, . 940 [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for 941 Writing an IANA Considerations Section in RFCs", BCP 26, 942 RFC 8126, DOI 10.17487/RFC8126, June 2017, 943 . 945 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 946 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 947 May 2017, . 949 8.2. Informative References 951 [I-D.ietf-babel-dtls] 952 Decimo, A., Schinazi, D., and J. Chroboczek, "Babel 953 Routing Protocol over Datagram Transport Layer Security", 954 draft-ietf-babel-dtls-07 (work in progress), July 2019. 956 [I-D.ietf-babel-hmac] 957 Do, C., Kolodziejak, W., and J. Chroboczek, "HMAC 958 authentication for the Babel routing protocol", draft- 959 ietf-babel-hmac-08 (work in progress), July 2019. 961 [ISO.10646] 962 International Organization for Standardization, 963 "Information Technology - Universal Multiple-Octet Coded 964 Character Set (UCS)", ISO Standard 10646:2014, 2014. 966 [RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet: 967 Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002, 968 . 970 [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax 971 Specifications: ABNF", STD 68, RFC 5234, 972 DOI 10.17487/RFC5234, January 2008, 973 . 975 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 976 and A. Bierman, Ed., "Network Configuration Protocol 977 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 978 . 980 [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", 981 RFC 7950, DOI 10.17487/RFC7950, August 2016, 982 . 984 [RFC8193] Burbridge, T., Eardley, P., Bagnulo, M., and J. 985 Schoenwaelder, "Information Model for Large-Scale 986 Measurement Platforms (LMAPs)", RFC 8193, 987 DOI 10.17487/RFC8193, August 2017, 988 . 990 [TR-181] Broadband Forum, "Device Data Model", 991 . 993 Appendix A. Open Issues 995 All open issues have been closed. 997 Closed Issues: 999 1. See minutes of IETF 104 for discussion of issues that led to 1000 changes noted for 2019-07-08 1002 2. HMAC spec adds other parameters to neighbor table. Check these 1003 to see if any need to be readable or writable. / None were 1004 identified. 1006 3. Actions to add and delete HMAC and DTLS credentials, and 1007 parameters that allow credential to be identified without 1008 allowing access to private credential info. Will have separate 1009 sub-tables for HMAC and DTLS credentials. / Instead, there is a 1010 normative statement that the parameter values must never be 1011 supplied when read. 1013 4. Consider the following statistics: under interface object: sent 1014 multicast Hello, sent updates, received Babel messages; under 1015 neighbor object: sent unicast Hello, sent updates, sent IHU, 1016 received Hello, received updates, received IHUs. Would also 1017 need to enable/disable stats and clear stats. 1019 5. Message log (optional to implement) is still in. Support for 1020 the libpcap file format is "SHOULD". 1022 6. Single security table with (optional) reference to interfaces 1023 that security mechanism applies to. / This actually became 1024 separate objects for DTLS and HMAC. 1026 7. Should ABNF be normative in IANA Considerations section? 1027 Decision was to leave it as is. 1029 8. I want to get rid of the security log, because all Babel 1030 messages (which should be defined as all messages to/from the 1031 udp-port) are be logged by message-log. I don't like message 1032 log as it is. I think if logging is enabled it should just 1033 write to a text file. This will mean there also needs to be a 1034 means of downloading/reading the log file. Closed by having 1035 single log for all messages to/from udp port and log is 1036 represented by a string that can be reference to filename or 1037 some other part of the overall data model (depends on data 1038 model). 1040 9. Check description of enable parameters to make sure ok for YANG 1041 and TR-181. Closed by updating description to be useful for 1042 YANG and TR-181, using language consistent with YANG 1043 descriptions. Done. 1045 10. Distinguish signed and unsigned integers? All integers are 1046 unsigned and size is mentioned in description of each uint 1047 parameter. 1049 11. Datatype of the router-id: Closed by introducing binary datatype 1050 and using that for router-id 1052 12. babel-neighbor-address as IPv6-only: Closed by leaving as is 1053 (IPv4 and IPv6) 1055 13. babel-implementation-version includes the name of the 1056 implementation: Closed by adding "name" to description 1058 14. Delete external-cost?: Closed by deleting. 1060 15. Would it be useful to define some parameters for reporting 1061 statistics or logs? [2 logs are now included. If others are 1062 needed they need to be proposed. See Open Issues for additional 1063 thoughts on logs and statistics.] 1065 16. Closed by defining base64 type and using it for all router IDs: 1066 "babel-self-router-id: Should this be an opaque 64-bit value 1067 instead of int?" 1069 17. Closed as "No": Do we need a registry for the supported security 1070 mechanisms? [Given the current limited set, and unlikelihood of 1071 massive expansion, I don't think so. But we can if someone 1072 wants it.] 1074 18. This draft must be reviewed against draft-ietf-babel-rfc6126bis. 1075 [I feel like this has been adequately done, but I could be 1076 wrong.] 1078 19. babel-interfaces-obj: Juliusz:"This needs further discussion, I 1079 fear some of these are implementation details." [In the absence 1080 of discussion, the current model stands. Note that all but 1081 link-type and the neighbors sub-object are optional. If an 1082 implementation does not have any of the optional elements then 1083 it simply doesn't have them and that's fine.] 1085 20. Would it be useful to define some parameters specifically for 1086 security anomalies? [The 2 logs should be useful in identifying 1087 security anomalies. If more is needed, someone needs to 1088 propose.] 1090 21. I created a basic security model. It's useful for single (or 1091 no) active security mechanism (e.g., just HMAC, just DTLS, or 1092 neither); but not multiple active (both HMAC and DTLS -- which 1093 is not the same as HMAC of DTLS and would just mean that HMAC 1094 would be used on all unencrypted messages -- but right now the 1095 model doesn't allow for configuring HMAC of unencrypted messages 1096 for routers without DTLS, while DTLS is used if possible). OK? 1097 [No-one said otherwise.] 1099 22. babel-external-cost may need more work. [if no comment, it will 1100 be left as is] 1102 23. babel-hello-[mu]cast-history: the Hello history is formated as 1103 16 bits, per A.1 of 6126bis. Is that a too implementation 1104 specific? [We also now have an optional-to-implement log of 1105 received messages, and I made these optional. So maybe this is 1106 ok?] 1108 24. rxcost, txcost, cost: is it ok to model as integers, since 1109 6126bis 2.1 says costs and metrics need not be integers. [I 1110 have them as integers unless someone insists on something else.] 1112 25. For the security log, should it also log whether the credentials 1113 were considered ok? [Right now it doesn't and I think that's ok 1114 because if you log Hellos it was ok and if you don't it wasn't.] 1116 26. Should Babel link types have an IANA registry? [Agreed to do 1117 this at IETF 102.] 1119 Appendix B. Change Log 1121 Individual Drafts: 1123 v00 2016-07-07 EBD: Initial individual draft version 1125 v01 2017-03-13: Addressed comments received in 2016-07-15 email from 1126 J. Chroboczek 1128 Working group drafts: 1130 v00 2017-07-03: Addressed points noted with "oops" in 1131 https://www.ietf.org/proceedings/98/slides/slides-98-babel-babel- 1132 information-model-00.pdf 1134 v01 2018-01-02: Removed item from issue list that was agreed (in 1135 Prague) not to be an issue. Added description of data types under 1136 Notation section, and used these in all data types. Added babel- 1137 security and babel-trust. 1139 v02 2018-04-05: 1141 * changed babel-version description to babel-implementation- 1142 version 1144 * replace optional babel-interface-seqno with optional babel- 1145 mcast-hello-seqno and babel-ucast-hello-seqno 1147 * replace optional babel-interface-hello-interval with optional 1148 babel-mcast-hello-interval and babel-ucast-hello-interval 1150 * remove babel-request-trigger-ack 1151 * remove "babel-router-id: router-id of the neighbor"; note that 1152 parameter had previously been removed but description had 1153 accidentally not been removed 1155 * added an optional "babel-cost" field to babel-neighbors object, 1156 since the spec does not define how exactly the cost is computed 1157 from rxcost/txcost 1159 * deleted babel-source-garbage-collection-time 1161 * change babel-lossy-link to babel-link-type and make this an 1162 enumeration; added at top level babel-supported-link-types so 1163 which are supported by this implementation can be reported 1165 * changes to babel-security-obj to allow self credentials to be 1166 one or more instances of a credential object. Allowed trusted 1167 credentials to include CA credentials; made some parameter name 1168 changes 1170 * updated references and Introduction 1172 * added Overview section 1174 * deleted babel-sources-obj 1176 * added feasible Boolean to routes 1178 * added section to briefly describe extending the information 1179 model. 1181 * deleted babel-route-neighbor 1183 * tried to make definition of babel-interface-reference clearer 1185 * added security and message logs 1187 v03 2018-05-31: 1189 * added reference to RFC 8174 (update to RFC 2119 on key words) 1191 * applied edits to Introduction text per Juliusz email of 1192 2018-04-06 1194 * Deleted sentence in definition of "int" data type that said it 1195 was also used for enumerations. Changed all enumerations to 1196 strings. The only enumerations were for link types, which are 1197 now "ethernet", "wireless", "tunnel", and "other". 1199 * deleted [ip-address babel-mcast-group-ipv4;] 1201 * babel-external-cost description changed 1203 * babel-security-self-cred: Added "any private key component of a 1204 credential MUST NOT be readable;" 1206 * hello-history parameters put recent Hello in most significant 1207 bit and length of parameter is not constrained. 1209 * babel-hello-seqno in neighbors-obj changed to babel-exp-mcast- 1210 hello-seqno and babel-exp-ucast-hello-seqno 1212 * added babel-route-neighbor back again. It was mistakenly 1213 deleted 1215 * changed babel-route-metric and babel-route-announced-metric to 1216 babel-route-received-metric and babel-route-calculated-metric 1218 * changed model of security object to put list of supported 1219 mechanisms at top level and separate security object per 1220 mechanism. This caused some other changes to the security 1221 object 1223 v04 2018-10-15: 1225 * changed babel-mcast-group-ipv6 to babel-mcast-group 1227 * link type parameters changed to point to newly defined registry 1229 * babel-ucast-hello-interval moved to neighbor object 1231 * babel-ucast-hello-seqno moved to neighbor object 1233 * babel-neighbor-ihu-interval deleted 1235 * in log descriptions, included statement that there SHOULD be 1236 ability to clear logs 1238 * added IANA registry for link types 1240 * added "ro" and "rw" to tables for read-write and read-only 1242 * added metric computation parameter to interface 1244 v05 2019-01-15: 1246 * security modeled with single table under information-obj and 1247 references to interfaces that instance applies to 1249 * changed int to uint because all integers in model were 1250 unsigned; added size of integer to description of each uint 1251 parameter 1253 * deleted log object and made single message log that points to 1254 file or other data model object used to maintain logs 1256 * deleted babel-credentials; there are no more "common" objects; 1257 hmac keys and DTLS certificates are more explicitly modeled 1259 * changed definition of babel-security-supported 1261 * added parameters for HMAC and DTLS 1263 * added statistics 1265 * changed all instances of "message" to "packet" 1267 v06 2019-07-08: 1269 * changed Link Type registry in IANA considerations to Lik 1270 Property Types 1272 * changed direction of reference for HMAC and DTLS objects to be 1273 from interface to these objects 1275 * provided DTLS certificate objects with a unique name 1277 * changed received and calculated metric descriptions to make 1278 clear that it is ok to have both 1280 * constrained interface reference to only IPv6 interfaces 1282 Authors' Addresses 1284 Barbara Stark 1285 AT&T 1286 Atlanta, GA 1287 US 1289 Email: barbara.stark@att.com 1290 Mahesh Jethanandani 1291 VMware 1292 California 1293 US 1295 Email: mjethanandani@gmail.com