idnits 2.17.1 draft-ietf-babel-information-model-00.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 : ---------------------------------------------------------------------------- ** The document seems to lack a Security Considerations section. ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) == 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 119 has weird spacing: '...nts-obj babe...' == Line 120 has weird spacing: '...ces-obj babel...' == Line 174 has weird spacing: '...ors-obj babel...' == Line 203 has weird spacing: '... format babel...' -- The document date (July 3, 2017) is 2488 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- -- Obsolete informational reference (is this intentional?): RFC 6126 (Obsoleted by RFC 8966) -- Obsolete informational reference (is this intentional?): RFC 7298 (Obsoleted by RFC 8967) Summary: 2 errors (**), 0 flaws (~~), 7 warnings (==), 3 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 July 3, 2017 5 Expires: January 4, 2018 7 Babel Information Model 8 draft-ietf-babel-information-model-00 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 http://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 4, 2018. 35 Copyright Notice 37 Copyright (c) 2017 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 (http://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. The Information Model . . . . . . . . . . . . . . . . . . . . 3 56 2.1. Definition of babel-information . . . . . . . . . . . . . 3 57 2.2. Definition of babel-constants . . . . . . . . . . . . . . 4 58 2.3. Definition of babel-interfaces . . . . . . . . . . . . . 4 59 2.4. Definition of babel-neighbors . . . . . . . . . . . . . . 5 60 2.5. Definition of babel-csa . . . . . . . . . . . . . . . . . 5 61 2.6. Definition of babel-sources . . . . . . . . . . . . . . . 6 62 2.7. Definition of babel-routes . . . . . . . . . . . . . . . 6 63 3. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 7 64 4. References . . . . . . . . . . . . . . . . . . . . . . . . . 7 65 4.1. Normative References . . . . . . . . . . . . . . . . . . 7 66 4.2. Informative References . . . . . . . . . . . . . . . . . 7 67 Appendix A. Open Issues . . . . . . . . . . . . . . . . . . . . 8 68 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 8 70 1. Introduction 72 Babel is a loop-avoiding distance-vector routing protocol defined in 73 RFC 6126 [RFC6126] and draft-ietf-babel-rfc6126bis 74 [babel-rfc6126bis]. Babel Hashed Message Authentication Code (HMAC) 75 Cryptographic Authentication, defined in RFC 7298 [RFC7298], 76 describes a cryptographic authentication mechanism for the Babel 77 routing protocol. This document describes an information model for 78 Babel (including HMAC) that can be used to created management 79 protocol data models (such as a netconf [RFC6241] YANG data model). 80 Other Babel extensions may be included in this document when they 81 become working group drafts. 83 Due to the simplicity of the Babel protocol and the fact that it is 84 designed to be used in non-professionally administered environments 85 (such as home networks), most of the information model is focused on 86 reporting status of the Babel protocol, and very little of that is 87 considered mandatory to implement (conditional on a management 88 protocol with Babel support being implemented). Some parameters may 89 be configurable; however, it is up to the Babel implementation 90 whether to allow any of these to be configured within its 91 implementation. Where the implementation does not allow 92 configuration of these parameters, it may still choose to expose them 93 as read-only. 95 1.1. Requirements Language 97 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 98 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 99 document are to be interpreted as described in RFC 2119 [RFC2119]. 101 1.2. Notation 103 This document uses a programming language-like notation to define the 104 properties of the objects of the information model. An optional 105 property is enclosed by square brackets, [ ], and a list property is 106 indicated by two numbers in angle brackets, , where m indicates 107 the minimal number of values, and n is the maximum. The symbol * for 108 n means no upper bound. 110 2. The Information Model 112 2.1. Definition of babel-information 114 object { 115 string babel-implementation-version; 116 int babel-self-router-id; 117 [int babel-self-seqno;] 118 string babel-cost-comp-algorithms<1..*>; 119 babel-constants-obj babel-constants; 120 babel-interfaces-obj babel-interfaces<0..*>; 121 babel-sources-obj babel-sources<0..*>; 122 babel-routes-obj babel-routes<0..*>; 123 }babel-information-obj; 125 babel-version: the version of this implementation of the Babel 126 protocol 128 babel-self-router-id: the router-id used by this instance of the 129 Babel protocol to identify itself 131 babel-self-seqno: the current sequence number included in route 132 updates for routes originated by this node 134 babel-cost-comp-algorithm: a set of names of supported cost 135 computation algorithms; possible values include "k-out-of-j", 136 "ETX" 138 babel-constants: a babel-constants object 140 babel-interfaces: a set of babel-interface objects 142 babel-sources: a set of babel-source objects 143 babel-routes: a set of babel-route objects 145 2.2. Definition of babel-constants 147 object { 148 int babel-udp-port; 149 [int babel-multicast-group-ipv6;] 150 [int babel-multicast-group-ipv4;] 151 }babel-constants-obj; 153 babel-udp-port: UDP port for sending and listening for Babel 154 messages; default is 6696; MAY be configurable 156 babel-multicast-group-ipv6: multicast group for sending and 157 listening to multicast announcements on IPv6; default is 158 ff02:0:0:0:0:0:1:6; MAY be configurable 160 babel-multicast-group-ipv4: multicast group for sending and 161 listening to multicast announcements on IPv4; default is 162 224.0.0.111; MAY be configurable 164 2.3. Definition of babel-interfaces 166 object { 167 uri babel-interface-reference; 168 [int babel-interface-seqno;] 169 [int babel-interface-hello-interval;] 170 [int babel-interface-update-interval;] 171 boolean babel-request-trigger-ack; 172 boolean babel-lossy-link; 173 [int babel-external-cost;] 174 babel-neighbors-obj babel-neighbors<1..*>; 175 [babel-csa-obj babel-csa<1..*>;] 176 }babel-interfaces-obj; 178 babel-interface-reference: reference to an interface object as 179 defined by the data model 181 babel-interface-seqno: the current sequence number in use for this 182 interface 184 babel-interface-hello-interval: the current hello interval in use 185 for this interface 187 babel-interface-update-interval: the current update interval in 188 use for this interface 189 babel-request-trigger-ack: requests acknowledgement of triggered 190 updates (if number of neighbors less than babel-ack-limit); MAY be 191 configurable 193 babel-lossy-link: indicates (if true) that the link of this 194 interface is considered lossy; MAY be configurable 196 babel-external-cost: external input to cost of link of this 197 interface (need to determine how to express this);MUST be 198 configurable if implemented 200 2.4. Definition of babel-neighbors 202 object { 203 some address format babel-neighbor-address; 204 string babel-hello-history; 205 int babel-txcost; 206 int babel-hello-seqno; 207 int babel-neighbor-ihu-interval; 208 [int babel-rxcost] 209 }babel-neighbors-obj; 211 babel-neighbor-address: (IPv4 or v6) address the neighbor sends 212 messages from 214 babel-hello-history: the Hello history (do we want a human 215 readable format?) 217 babel-txcost: transmission cost value from the last IHU packet 218 received from this neighbor, or FFFF hexadecimal (infinity) if the 219 IHU hold timer for this neighbor has expired 221 babel-hello-seqno: expected Hello sequence number 223 babel-neighbor-ihu-interval: current IHU interval for this 224 neighbor 226 babel-router-id: router-id of the neighbor 228 babel-rxcost: reception cost calculated for this neighbor 230 2.5. Definition of babel-csa 232 object { 233 string placeholder; 234 }babel-csa-obj; 236 placeholder: this section to be filled in, in the future 238 2.6. Definition of babel-sources 240 object { 241 (prefix, plen) babel-source-prefix; 242 int babel-source-router-id; 243 int babel-source-seqno; 244 int babel-source-metric; 245 [int babel-source-garbage-collection-time;] 246 }babel-sources-obj; 248 babel-source-prefix: Prefix (with prefix length) 250 babel-source-router-id: router-id of the router originating this 251 prefix 253 babel-source-seqno: last sequence number used by this source 255 babel-source-metric: this source's feasibility distance 257 babel-source-garbage-collection-time: garbage-collection timer for 258 this source 260 2.7. Definition of babel-routes 262 object { 263 (prefix, plen) babel-route-prefix; 264 int babel-route-router-id; 265 int babel-route-neighbor; 266 int babel-route-metric; 267 int babel-route-seqno; 268 ip address babel-route-next-hop; 269 boolean babel-route-selected; 270 }babel-routes-obj; 272 babel-route-prefix: Prefix (with prefix length) for which this 273 route is advertised 275 babel-route-router-id: router-id of the router originating this 276 prefix 278 babel-route-neighbor: neighbor that advertised this route (is this 279 a router-id ?) 281 babel-route-metric: the metric with which this route was 282 advertised by the neighbor, or FFFF hexadecimal (infinity) for a 283 recently retracted route 284 babel-route-seqno: the sequence number with which this route was 285 advertised 287 babel-route-next-hop: the next-hop address of this route 289 babel-route-selected: a boolean flag indicating whether this route 290 is selected, i.e., whether it is currently being used for 291 forwarding and is being advertised 293 3. Acknowledgements 295 This information model was originally derived from RFC 6126 296 [RFC6126]. That model is being modified according to draft-ietf- 297 babel-rfc6126bis [babel-rfc6126bis]. Juliusz Chroboczek review has 298 been very helpful in refing this information model. 300 4. References 302 4.1. Normative References 304 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 305 Requirement Levels", BCP 14, RFC 2119, 306 DOI 10.17487/RFC2119, March 1997, 307 . 309 4.2. Informative References 311 [babel-rfc6126bis] 312 Chroboczek, J., "The Babel Routing Protocol", Work in 313 Progress, draft-ietf-babel-rfc6126bis, May 2017. 315 [RFC6126] Chroboczek, J., "The Babel Routing Protocol", RFC 6126, 316 DOI 10.17487/RFC6126, April 2011, 317 . 319 [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., 320 and A. Bierman, Ed., "Network Configuration Protocol 321 (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, 322 . 324 [RFC7298] Ovsienko, D., "Babel Hashed Message Authentication Code 325 (HMAC) Cryptographic Authentication", RFC 7298, 326 DOI 10.17487/RFC7298, July 2014, 327 . 329 Appendix A. Open Issues 331 This draft must be reviewed against draft-ietf-babel-rfc6126bis. 333 Following are some issues where a conscious decision may be useful: 335 babel-self-router-id: Should this be an opaque 64-bit value 336 instead of int? 338 Would it be useful to define any of the following as per-interface 339 constants: hello-interval-lossy, hello-interval-lossless, ihu- 340 interval, update-interval, ihu-hold-time, route-expiry-time, 341 garbage-collection-time, max-trigger-delay, max-normal-delay, ack- 342 limit, resend-trigger-lossy-limit, resend-trigger-lossless-limit, 343 resend-normal-lossy-limit, resend-normal-lossless-limit 345 babel-interfaces-obj: "This needs further discussion, I fear some 346 of these are implementation details." 348 Would it be useful to define some parameters for reporting 349 statistics or logs? 351 Would it be useful to define some parameters specifically for 352 security anomalies? 354 Author's Address 356 Barbara Stark 357 AT&T 358 Atlanta, GA 359 US 361 Email: barbara.stark@att.com