idnits 2.17.1 draft-ietf-babel-information-model-02.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 multicast IPv4 addresses in the document. If these are generic example addresses, they should be changed to use the 233.252.0.x range defined in RFC 5771 == 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 225 has weird spacing: '...nts-obj babe...' == Line 226 has weird spacing: '...ces-obj babel...' == Line 228 has weird spacing: '...ity-obj bab...' == Line 270 has weird spacing: '...address babe...' == Line 271 has weird spacing: '...address babe...' == (4 more instances...) -- The document date (April 5, 2018) is 2207 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- -- Obsolete informational reference (is this intentional?): RFC 6347 (ref. 'BABEL-DTLS') (Obsoleted by RFC 9147) Summary: 0 errors (**), 0 flaws (~~), 9 warnings (==), 2 comments (--). 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 April 5, 2018 5 Expires: October 7, 2018 7 Babel Information Model 8 draft-ietf-babel-information-model-02 10 Abstract 12 This Babel Information Model can be used to create data models under 13 various data modeling regimes (e.g., YANG). It allows a Babel 14 implementation (via a management protocol such as netconf) to report 15 on its current state and may allow some limited configuration of 16 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 October 7, 2018. 35 Copyright Notice 37 Copyright (c) 2018 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 . . . . . . . . . . . . . . . . . . . . 5 57 3.1. Definition of babel-information-obj . . . . . . . . . . . 5 58 3.2. Definition of babel-constants-obj . . . . . . . . . . . . 6 59 3.3. Definition of babel-interfaces-obj . . . . . . . . . . . 7 60 3.4. Definition of babel-neighbors-obj . . . . . . . . . . . . 8 61 3.5. Definition of babel-security-obj . . . . . . . . . . . . 9 62 3.6. Definition of babel-routes-obj . . . . . . . . . . . . . 10 63 4. Common Objects . . . . . . . . . . . . . . . . . . . . . . . 11 64 4.1. Definition of babel-credential-obj . . . . . . . . . . . 11 65 4.2. Definition of babel-log-obj . . . . . . . . . . . . . . . 11 66 5. Extending the Information Model . . . . . . . . . . . . . . . 11 67 6. Security Considerations . . . . . . . . . . . . . . . . . . . 12 68 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 69 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 12 70 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 71 9.1. Normative References . . . . . . . . . . . . . . . . . . 12 72 9.2. Informative References . . . . . . . . . . . . . . . . . 12 73 Appendix A. Open Issues . . . . . . . . . . . . . . . . . . . . 13 74 Appendix B. Change Log . . . . . . . . . . . . . . . . . . . . . 14 75 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 16 77 1. Introduction 79 Babel is a loop-avoiding distance-vector routing protocol defined in 80 draft-ietf-babel-rfc6126bis [rfc6126bis]. draft-babel-7298bis 81 [BABEL-HMAC] defines a security mechanism that allows Babel messages 82 to be cryptographically authenticated, and draft-babel-dtls 83 [BABEL-DTLS] defines a security mechanism that allows Babel messages 84 to encrypted. This document describes an information model for Babel 85 (including implementations using one of these security mechanisms) 86 that can be used to created management protocol data models (such as 87 a netconf [RFC6241] YANG data model). 89 Due to the simplicity of the Babel protocol and the fact that it is 90 designed to be used in non-professionally administered environments 91 (such as home networks), most of the information model is focused on 92 reporting status of the Babel protocol, and very little of that is 93 considered mandatory to implement (conditional on a management 94 protocol with Babel support being implemented). Some parameters may 95 be configurable; however, it is up to the Babel implementation 96 whether to allow any of these to be configured within its 97 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 RFC 2119 [RFC2119]. 111 1.2. Notation 113 This document uses a programming language-like notation to define the 114 properties of the objects of the information model. An optional 115 property is enclosed by square brackets, [ ], and a list property is 116 indicated by two numbers in angle brackets, , where m indicates 117 the minimal number of values, and n is the maximum. The symbol * for 118 n means no upper bound. 120 The object definitions use base types that are defined as follows: 122 base64 An opaque array of bytes. 124 boolean A type representing a boolean value. 126 counter A non-negative integer that monotonically increases. 127 Counters may have discontinuities and they are not 128 expected to persist across restarts. 130 credentials An opaque type representing credentials needed by a 131 cryptographic mechanism to secure communication. Data 132 models must expand this opaque type as needed and 133 required by the security protocols utilized. 135 datetime A type representing a date and time using the Gregorian 136 calendar. The datetime format MUST conform to RFC 3339 137 [RFC3339]. 139 int A type representing signed or unsigned integer numbers. 140 This information model does not define a precision nor 141 does it make a distinction between signed and unsigned 142 number ranges. This type is also used to represent 143 enumerations. 145 ip-address A type representing an IP address. This type supports 146 both IPv4 and IPv6 addresses. 148 string A type representing a human-readable string consisting of 149 a (possibly restricted) subset of Unicode and ISO/IEC 150 10646 [ISO.10646] characters. 152 uri A type representing a Uniform Resource Identifier as 153 defined in STD 66 [RFC3986]. 155 2. Overview 157 The Information Model is hierarchically structured as follows: 159 information object 160 includes implementation version, router id, this node seqno, 161 enable flag parameters 162 constants object (exactly one per information object) 163 includes UDP port and optional multicast and unicast groups 164 parameters 165 interfaces object 166 includes interface reference, Hello seqno and intervals, 167 update interval, link type, external cost parameters 168 neighbors object 169 includes neighbor IP address, Hello history, cost 170 parameters 171 security object (per interface) 172 includes supported and enabled security mechanisms, self 173 credentials (credential object), trusted credentials 174 (credential object) 175 security object (common to all interfaces) 176 includes supported and enabled security mechanisms, self 177 credentials (credential object), trusted credentials 178 (credential object) 179 routes object 180 includes route prefix, source router, reference to 181 advertising neighbor, metric, sequence number, whether 182 route is feasible, whether route is selected 184 Following is a list of the data elements that an implementation can 185 choose to allow to be configurable: 187 o enable/disable babel 189 o Constant: UDP port 191 o Constant: IPv6 multicast group 192 o Constant: IPv4 multicast group 194 o Interface: Link type 196 o Interface: External cost (must be configurable if implemented, but 197 implementation is optional) 199 o Interface: enable/disable babel on this interface 201 o Interface: enable/disable message log 203 o Security: self credentials 205 o Security: trusted credentials 207 o Security: enable/disable security log 209 Note that this overview is intended simply to be informative and is 210 not normative. If there is any discrepancy between this overview and 211 the detailed information model definitions in subsequent sections, 212 the error is in this overview. 214 3. The Information Model 216 3.1. Definition of babel-information-obj 218 object { 219 string babel-implementation-version; 220 boolean babel-enable; 221 base64 babel-self-router-id; 222 string babel-supported-link-types<1..*>; 223 [int babel-self-seqno;] 224 string babel-metric-comp-algorithms<1..*>; 225 babel-constants-obj babel-constants; 226 babel-interfaces-obj babel-interfaces<0..*>; 227 babel-routes-obj babel-routes<0..*>; 228 [babel-security-obj babel-security;] 229 }babel-information-obj; 231 babel-implementation-version: the version of this implementation 232 of the Babel protocol 234 babel-enable: if true, the babel implementation is running; if 235 false, the babel implementation is not currently running; MAY be 236 configurable to allow babel to be started or stopped 237 babel-self-router-id: the router-id used by this instance of the 238 Babel protocol to identify itself; draft-ietf-babel-rfc6126bis 239 [rfc6126bis] describes this as an arbitrary string of 8 octets 241 babel-supported-link-types: set of values of supported link types 242 where the following enumeration values MUST be supported: 1 = 243 wireless, 2 = physical-layer ethernet, 99 = other 245 babel-self-seqno: the current sequence number included in route 246 updates for routes originated by this node 248 babel-metric-comp-algorithms: a set of names of supported cost 249 computation algorithms; possible values include "k-out-of-j", 250 "ETX" 252 babel-constants: a babel-constants object 254 babel-interfaces: a set of babel-interface objects 256 babel-security: a babel-security object that applies to all 257 interfaces; if this object is implemented, it allows a security 258 mechanism to be enabled or disabled in a manner that applies to 259 all Babel messages on all interfaces 261 babel-sources: a set of babel-source objects 263 babel-routes: a set of babel-route objects; includes received and 264 routes routes 266 3.2. Definition of babel-constants-obj 268 object { 269 int babel-udp-port; 270 [ip-address babel-mcast-group-ipv6;] 271 [ip-address babel-mcast-group-ipv4;] 272 }babel-constants-obj; 274 babel-udp-port: UDP port for sending and listening for Babel 275 messages; default is 6696; MAY be configurable 277 babel-mcast-group-ipv6: multicast group for sending and listening 278 to multicast announcements on IPv6; default is ff02:0:0:0:0:0:1:6; 279 MAY be configurable 281 babel-mcast-group-ipv4: multicast group for sending and listening 282 to multicast announcements on IPv4; default is 224.0.0.111; MAY be 283 configurable 285 3.3. Definition of babel-interfaces-obj 287 object { 288 string babel-interface-reference; 289 [boolean babel-interface-enable;] 290 int babel-link-type; 291 [int babel-mcast-hello-seqno;] 292 [int babel-ucast-hello-seqno;] 293 [int babel-mcast-hello-interval;] 294 [int babel-ucast-hello-interval;] 295 [int babel-update-interval;] 296 [int babel-external-cost;] 297 [boolean babel-message-log-enable;] 298 [babel-log-obj babel-message-log<0..*>;] 299 babel-neighbors-obj babel-neighbors<1..*>; 300 [babel-security-obj babel-interface-security;] 301 }babel-interfaces-obj; 303 babel-interface-reference: reference to an interface object as 304 defined by the data model (e.g., YANG, BBF TR-181); data model is 305 assumed to allow for referencing of interface objects which may be 306 at any layer (physical, Ethernet MAC, IP, tunneled IP, etc.); 307 referencing syntax will be specific to the data model; if there is 308 no set of interface objects available, this should be a string 309 that indicates the interface name used by the underlying operating 310 system 312 babel-interface-enable: if true, babel sends and receives messages 313 on this interface; if false, babel messages received on this 314 interface are ignored and none are sent; MAY be configurable 316 babel-link-type: indicates the type of link; integer values 317 specify an enumeration of a supported link type where the 318 following enumerations MUST be supported: 1 = wireless, 2 = 319 physical-layer ethernet, 99 = other; additional values MAY be 320 supported; MAY be configurable 322 babel-mcast-hello-seqno: the current sequence number in use for 323 multicast hellos on this interface 325 babel-ucast-hello-seqno: the current sequence number in use for 326 unicast hellos on this interface 328 babel-mcast-hello-interval: the current multicast hello interval 329 in use for this interface 331 babel-ucast-hello-interval: the current unicast hello interval in 332 use for this interface 333 babel-update-interval: the current update interval in use for this 334 interface 336 babel-external-cost: external input to cost of link of this 337 interface (need to determine how to express this);MUST be 338 configurable if implemented 340 babel-message-log-enable: if true, logging of babel messages 341 received on this interface is enabled; if false, babel messages 342 are not logged; MUST be configurable, if implemented 344 babel-message-log: log entries that have timestamp of a received 345 Babel message and the entire received Babel message, including 346 Ethernet frame and IP headers; an implementation must restrict the 347 size of this log, but how and what size is implementation-specific 349 babel-neighbors: a set of babel-neighbors objects 351 babel-interface-security: a babel-security object that applies to 352 this interface; if implemented, this allows security to be enabled 353 only on specific interfaces or allows different security 354 mechanisms to be enabled on different interfaces 356 3.4. Definition of babel-neighbors-obj 358 object { 359 ip-address babel-neighbor-address; 360 [string babel-hello-mcast-history;] 361 [string babel-hello-ucast-history;] 362 int babel-txcost; 363 int babel-hello-seqno; 364 int babel-neighbor-ihu-interval; 365 [int babel-rxcost] 366 [int babel-cost] 367 }babel-neighbors-obj; 369 babel-neighbor-address: (IPv4 or v6) address the neighbor sends 370 messages from 372 babel-hello-mcast-history: the multicast Hello history of whether 373 or not each of the 16 multicast Hello messages prior to babel- 374 hello-seqno was received; represented as a 16 bit (4 hex digits) 375 value where 1 = Hello received and 0 = Hello not received; see 376 draft-ietf-babel-rfc6126bis [rfc6126bis] section A.1 378 babel-hello-ucast-history: the unicast Hello history of whether or 379 not each of the 16 unicast Hello messages prior to babel-hello- 380 seqno was received; represented as a 16 bit (4 hex digits) value 381 where 1 = Hello received and 0 = Hello not received; see draft- 382 ietf-babel-rfc6126bis [rfc6126bis] section A.1 384 babel-txcost: transmission cost value from the last IHU packet 385 received from this neighbor, or maximum value (infinity) to 386 indicates the IHU hold timer for this neighbor has expired 388 babel-hello-seqno: expected Hello sequence number 390 babel-neighbor-ihu-interval: current IHU interval for this 391 neighbor 393 babel-rxcost: reception cost calculated for this neighbor; this 394 value is usually derived from the Hello history, which may be 395 combined with other data, such as statistics maintained by the 396 link layer; the rxcost is sent to a neighbour in each IHU 398 babel-cost: link cost is computed from the values maintained in 399 the neighbour table: the statistics kept in the neighbour table 400 about the reception of Hellos, and the txcost computed from 401 received IHU packets 403 3.5. Definition of babel-security-obj 405 object { 406 string babel-security-supported; 407 string babel-security-enabled-protocol; 408 babel-credential-obj babel-security-self-cred<1..*>; 409 babel-credential-obj babel-security-trust<1..*>; 410 [boolean babel-credvalid-log-enable;] 411 [babel-log-obj babel-credvalid-log<0..*>;] 412 }babel-security-obj; 414 babel-security-supported: list of supported security mechanisms 416 babel-security-enabled-protocol: the currently enabled security 417 protocol; empty if none is enabled 419 babel-security-self-cred: credentials this router presents to 420 participate in the enabled security protocol; ; adding and 421 deleting credentials MAY be allowed 423 babel-security-trust: a set of babel-credential-obj objects that 424 identify the credentials of routers whose babel messages may be 425 trusted or of a certificate authority (CA) whose signing of a 426 router's credentials implies the router credentials can be 427 trusted; how a security mechanism interacts with this list is 428 determined by the mechanism; a security algorithm may do 429 additional validation of credentials, such as checking validity 430 dates or revocation lists, so presence may not be sufficient to 431 determine trust; adding and deleting credentials MAY be allowed 433 babel-credvalid-log-enable: if true, logging of messages that 434 include credentials used for authentication is enabled; if false, 435 these messages are not logged; MUST be configurable, if 436 implemented 438 babel-credvalid-log: log entries that have the timestamp a message 439 containing credentials used for peer authentication (e.g., DTLS 440 Server Hello) was received on a Babel port, and the entire 441 received message (including Ethernet frame and IP headers); an 442 implementation must restrict the size of this log, but how and 443 what size is implementation-specific 445 3.6. Definition of babel-routes-obj 447 object { 448 ip-address babel-route-prefix; 449 int babel-route-prefix-length; 450 base64 babel-route-router-id; 451 [int babel-route-metric;] 452 [int babel-route-announced-metric;] 453 int babel-route-seqno; 454 ip-address babel-route-next-hop; 455 boolean babel-route-feasible; 456 boolean babel-route-selected; 457 }babel-routes-obj; 459 babel-route-prefix: Prefix (expressed in IP address format) for 460 which this route is advertised 462 babel-route-prefix-length: Length of the prefix for which this 463 route is advertised 465 babel-route-router-id: router-id of the source router for which 466 this route is advertised 468 babel-route-metric: the metric with which this route was 469 advertised by the neighbor, or maximum value (infinity) to 470 indicate a recently retracted route; this metric will be 0 (zero) 471 if the route was not received from a neighbor but was generated 472 through other means; either babel-route-announced-metric or babel- 473 route-metric MUST be provided 475 babel-route-announced-metric: a calculated metric for this route; 476 how the metric is calculated is implementation-specific; either 477 babel-route-announced-metric or babel-route-metric MUST be 478 provided 480 babel-route-seqno: the sequence number with which this route was 481 advertised 483 babel-route-next-hop: the next-hop address of this route; this 484 will be empty if this route has no next-hop address 486 babel-route-feasible: a boolean flag indicating whether this route 487 is known to work; a route that is not feasible will never be 488 selected 490 babel-route-selected: a boolean flag indicating whether this route 491 is selected, i.e., whether it is currently being used for 492 forwarding and is being advertised 494 4. Common Objects 496 4.1. Definition of babel-credential-obj 498 object { 499 credentials babel-cred; 500 }babel-credential-obj; 502 babel-cred: a credential, such as an X.509 certificate, a public 503 key, etc. used for signing and/or encrypting babel messages 505 4.2. Definition of babel-log-obj 507 object { 508 datetime babel-log-time; 509 string babel-log-entry; 510 }babel-log-obj; 512 babel-log-time: the date and time (according to the device 513 internal clock setting, which may be a time relative to boot time, 514 acquired from NTP, configured by the user, etc.) when this log 515 entry was created 517 babel-log-entry: the logged message, as a string of utf-8 encoded 518 hex characters 520 5. Extending the Information Model 522 Implementations MAY extend this information model with other 523 parameters or objects. For example, an implementation MAY choose to 524 expose babel route filtering rules by adding a route filtering object 525 with parameters appropriate to how route filtering is done in that 526 implementation. The precises means used to extend the information 527 model would be specific to the data model the implementation uses to 528 expose this information. 530 6. Security Considerations 532 This document defines a set of information model objects and 533 parameters that may be exposed to be visible from other devices, and 534 some of which may be configured. Any mechanism or protocol that is 535 used to transmit this information or allow for its configuration is 536 also responsible for ensuring this is done so in a secure manner. 538 7. IANA Considerations 540 This document makes no IANA requests. 542 8. Acknowledgements 544 Juliusz Chroboczek's review has been very helpful in refining this 545 information model. 547 The language in the Notation section was mostly taken from RFC 8193 548 [RFC8193]. 550 9. References 552 9.1. Normative References 554 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 555 Requirement Levels", BCP 14, RFC 2119, 556 DOI 10.17487/RFC2119, March 1997, 557 . 559 [rfc6126bis] 560 Chroboczek, J., "The Babel Routing Protocol", Work in 561 Progress, draft-ietf-babel-rfc6126bis, October 2017. 563 9.2. Informative References 565 [BABEL-DTLS] 566 Schinazi, D., "TBD", Work in Progress, rfc6347, March 567 2018. 569 [BABEL-HMAC] 570 Ovsienko, D., "Babel HMAC Cryptographic Authentication", 571 Work in Progress, draft-ovsienko-babel-rfc7298bis, March 572 2018. 574 [ISO.10646] 575 International Organization for Standardization, 576 "Information Technology - Universal Multiple-Octet Coded 577 Character Set (UCS)", ISO Standard 10646:2014, 2014. 579 [RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet: 580 Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002, 581 . 583 [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform 584 Resource Identifier (URI): Generic Syntax", STD 66, 585 RFC 3986, DOI 10.17487/RFC3986, January 2005, 586 . 588 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 589 and A. Bierman, Ed., "Network Configuration Protocol 590 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 591 . 593 [RFC8193] Burbridge, T., Eardley, P., Bagnulo, M., and J. 594 Schoenwaelder, "Information Model for Large-Scale 595 Measurement Platforms (LMAPs)", RFC 8193, 596 DOI 10.17487/RFC8193, August 2017, 597 . 599 Appendix A. Open Issues 601 This draft must be reviewed against draft-ietf-babel-rfc6126bis. [I 602 feel like this has been adequately done, but I could be wrong.] 604 Following are some issues where a conscious decision may be useful: 606 1. babel-interfaces-obj: Juliusz:"This needs further discussion, I 607 fear some of these are implementation details." [In the absence 608 of discussion, the current model stands. Note that all but 609 link-type and the neighbors sub-object are optional; if an 610 implementation does not have any of the optional elements then 611 it simply doesn't have them and that's fine.] 613 2. Would it be useful to define some parameters for reporting 614 statistics or logs? [2 logs are now included. If others are 615 needed they need to be proposed.] 617 3. Would it be useful to define some parameters specifically for 618 security anomalies? [The 2 logs should be useful in identifying 619 security anomalies. If more is needed, someone needs to 620 propose.] 622 4. I created a basic security model. It's useful for single (or 623 no) active security mechanism (e.g., just HMAC, just DTLS, or 624 neither); but not multiple active (both HMAC and DTLS -- which 625 is not the same as HMAC of DTLS and would just mean that HMAC 626 would be used on all unencrypted messages -- but right now the 627 model doesn't allow for configuring HMAC of unencrypted messages 628 for routers without DTLS, while DTLS is used if possible). OK? 630 5. Do we need a registry for the supported security mechanisms? 631 [Given the current limited set, and unlikelihood of massive 632 expansion, I don't think so. But we can if someone wants it.] 634 6. babel-external-cost may need more work. [if no comment, it will 635 be left as is] 637 7. babel-hello-[mu]cast-history: the Hello history is formated as 638 16 bits, per A.1 of 6126bis. Is that a too implementation 639 specific? [We also now have an optional-to-implement log of 640 received messages, and I made these optional. So maybe this is 641 ok?] 643 8. rxcost, txcost, cost: is it ok to model as integers, since 644 6126bis 2.1 says costs and metrics need not be integers. [I 645 have them as integers unless someone insists on something else.] 647 9. Should babel link types have an IANA registry? [Right now, none 648 is defined.] 650 10. For the security log, should it also log whether the credentials 651 were considered ok? [Right now it doesn't and I think that's ok 652 because if you log Hellos it was ok and if you don't it wasn't.] 654 Closed Issues: 656 Closed by defining base64 type and using it for all router IDs: 657 "babel-self-router-id: Should this be an opaque 64-bit value 658 instead of int?" 660 Appendix B. Change Log 662 Individual Drafts: 664 v00 2016-07-07 EBD Initial individual draft version 666 v01 2017-03-13 Addressed comments received in 2016-07-15 email 667 from J. Chroboczek 669 Working group drafts: 671 v00 2017-07-03 Addressed points noted with "oops" in 672 https://www.ietf.org/proceedings/98/slides/slides-98-babel-babel- 673 information-model-00.pdf 675 v01 2018-01-02 Removed item from issue list that was agreed (in 676 Prague) not to be an issue. Added description of data types under 677 Notation section, and used these in all data types. Added babel- 678 security and babel-trust. 680 v02 2018-mm-dd 682 - changed babel-version description to babel-implementation- 683 version 685 - replace optional babel-interface-seqno with optional babel- 686 mcast-hello-seqno and babel-ucast-hello-seqno 688 - replace optional babel-interface-hello-interval with optional 689 babel-mcast-hello-interval and babel-ucast-hello-interval 691 - remove babel-request-trigger-ack 693 - remove "babel-router-id: router-id of the neighbor"; note 694 that parameter had previously been removed but description had 695 accidentally not been removed 697 - added an optional "babel-cost" field to babel-neighbors 698 object, since the spec does not define how exactly the cost is 699 computed from rxcost/txcost 701 - deleted babel-source-garbage-collection-time 703 - change babel-lossy-link to babel-link-type and make this an 704 enumeration; added at top level babel-supported-link-types so 705 which are supported by this implementation can be reported 707 - changes to babel-security-obj to allow self credentials to be 708 one or more instances of a credential object; allowed trusted 709 credentials to include CA credentials; made some parameter name 710 changes 712 - updated references and Introduction 714 - added Overview section 716 - deleted babel-sources-obj 717 - added feasible Boolean to routes 719 - added section to briefly describe extending the information 720 model. 722 - deleted babel-route-neighbor 724 - tried to make definition of babel-interface-reference clearer 726 - added security and message logs 728 Author's Address 730 Barbara Stark 731 AT&T 732 Atlanta, GA 733 US 735 Email: barbara.stark@att.com