idnits 2.17.1 draft-ietf-ecrit-lost-planned-changes-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 : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (October 23, 2018) is 2012 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) No issues found here. Summary: 0 errors (**), 0 flaws (~~), 1 warning (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 ecrit B. Rosen 3 Internet-Draft October 23, 2018 4 Intended status: Standards Track 5 Expires: April 26, 2019 7 Validation of Locations Around a Planned Change 8 draft-ietf-ecrit-lost-planned-changes-02 10 Abstract 12 This document defines an extension to LoST (RFC5222) that allows a 13 planned change to the data in the LoST server to occur. Records that 14 previously were valid will become invalid at a date in the future, 15 and new locations will become valid after the date. The extension 16 adds two elements to the request: A URI to be used to 17 inform the LIS that previously valid locations will be invalid after 18 the planned change date, and add a date which requests the server to 19 perform validation as of the date specified. It also adds an 20 optional Time-To-Live element to the response, which informs clients 21 about the current expected lifetime of the validation. This document 22 also provides a conventional XML schema for LoST, as backwards 23 compatible alternative to the RelaxNG schema in RFC5222 25 Status of This Memo 27 This Internet-Draft is submitted in full conformance with the 28 provisions of BCP 78 and BCP 79. 30 Internet-Drafts are working documents of the Internet Engineering 31 Task Force (IETF). Note that other groups may also distribute 32 working documents as Internet-Drafts. The list of current Internet- 33 Drafts is at https://datatracker.ietf.org/drafts/current/. 35 Internet-Drafts are draft documents valid for a maximum of six months 36 and may be updated, replaced, or obsoleted by other documents at any 37 time. It is inappropriate to use Internet-Drafts as reference 38 material or to cite them other than as "work in progress." 40 This Internet-Draft will expire on April 26, 2019. 42 Copyright Notice 44 Copyright (c) 2018 IETF Trust and the persons identified as the 45 document authors. All rights reserved. 47 This document is subject to BCP 78 and the IETF Trust's Legal 48 Provisions Relating to IETF Documents 49 (https://trustee.ietf.org/license-info) in effect on the date of 50 publication of this document. Please review these documents 51 carefully, as they describe your rights and restrictions with respect 52 to this document. Code Components extracted from this document must 53 include Simplified BSD License text as described in Section 4.e of 54 the Trust Legal Provisions and are provided without warranty as 55 described in the Simplified BSD License. 57 Table of Contents 59 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 60 2. Conventions used in this document . . . . . . . . . . . . . . 4 61 3. element . . . . . . . . . . . . . . . . . . . 4 62 4. object . . . . . . . . . . . . . . . . 4 63 5. URI Not Stored Warning . . . . . . . . . . . . . . . . . . . 5 64 6. Time-To-Live (TTL) in Response . . . . . . . . . . . . . . . 5 65 7. Replacement XML schema . . . . . . . . . . . . . . . . . . . 6 66 8. Extension XML schema . . . . . . . . . . . . . . . . . . . . 14 67 9. Security Considerations . . . . . . . . . . . . . . . . . . . 15 68 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 16 69 10.1. Replacement Schema Registration . . . . . . . . . . . . 16 70 10.2. Replacement Schema Registration . . . . . . . . . . . . 16 71 10.3. LoST Namespace Registration . . . . . . . . . . . . . . 16 72 11. Normative References . . . . . . . . . . . . . . . . . . . . 17 73 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 17 75 1. Introduction 77 This document describes an update to the LoST protocol + which allows 78 a request to optionally add a URI and a date to be used 79 with planned changes to the underlying location information in the 80 server. The URI is retained by the LoST server, associated with the 81 data record that was validated, and used to notify the LIS (the LoST 82 client) when a location which was previously valid will become 83 invalid. The date is used by the client to ask the server to perform 84 validation as of a future date. In addition to this mechanism, the 85 is also extended to provide a Time-To-Live 86 (TTL) for validation, after which the client should revalidate the 87 location. 89 Validation of civic locations involves dealing with data that changes 90 over time. A typical example is a portion of a county or province 91 that was not part of a municipality is "annexed" to a municipality. 92 Prior to the change, the content of the PIDF-LO A3 element would be 93 blank, or represent some other value and after the change would be 94 the municipality that annexed that part of the county/province. This 95 kind of annexation has an effective date and time (typically 00:00 on 96 the first or last day of a month). 98 Records in a LIS must change around these kinds of events. The old 99 record must be discarded, and a new, validated record must be loaded 100 into the LIS. It is often difficult for the LIS operator to know 101 that records must be changed around such events. There are other 102 circumstances where locations that were previously valid become 103 invalid, such as a street renaming or renumbering event. As RFC5222 104 defines validation, the only way for a LIS to discover such changes 105 was to periodically revalidate its entire database. Of course, this 106 would not facilitate timely changes, is not coordinated with the 107 actual change event, and also adds significant load to the LoST 108 server. Even if re-validation is contemplated, the server has no 109 mechanism to control, or even suggest the time period for 110 revalidation 112 This extension allows the client to provide a stable URI that is 113 retained by the server associated with the location information used 114 in the request. In the event of a planned change, or any other 115 circumstance where the location becomes invalid, the server sends a 116 notification to the URI informing it of a change. The notification 117 contains the date and time when the location becomes invalid. 119 Ideally, following such a notification, the LIS will prepare a new 120 record to be inserted in its active database, that becomes active at 121 the precise planned event date and time, at which point it would also 122 delete the old record. However, the new record has to be valid, and 123 the LIS would like to validate it prior to the planned change event. 124 If it requests validation before the planned event, the server 125 (without this extension) would inform the client that the location 126 was invalid. This extension includes an optional "as of" date and 127 time in the request that allows the LoST server to provide validation 128 as of the date and time specified, as opposed to the "as of now" 129 implied in the current LoST protocol. 131 When it is not practical or advisable for the LIS to maintain stable 132 URIs for all of its records, periodic revalidation can be still used 133 to maintain the data in the LIS. However, the server should be able 134 to control the rate of such revalidation. For this purpose, a new 135 TTL element is included in the which provides 136 advice from the server to the LIS of when validation is suggested. 138 There are quite a few implementations of LoST. Experience with these 139 implementations indicates that the RelaxNG schema is very difficult 140 to deal with, because the tools that the implementors use don't 141 support it, and their staff is unfamiliar with it. Alternative 142 schemas have been circulated, which is undesirable, as they may not 143 be in conformance to the RelaxNG schema in [RFC5222]. This document 144 provides an XML schema that replaces the RelaxNG schema. It can be 145 used by any implementation interchangeably with the RelaxNG schema. 147 2. Conventions used in this document 149 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 150 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 151 document are to be interpreted as described in [RFC2119]. 153 "Server" in this document refers to the LoST server and "Client" is 154 the LoST client, even when the server is performing an operation on 155 the client. 157 3. element 159 This document defines a new element to called 160 "plannedChange". This element contains two attributes: 'uri' and 161 'asOf'. The 'uri' attribute MUST be a URI with a scheme of HTTPS. 162 The URI will be stored by the server against the location in the 163 request for subsequent use with the notification function defined 164 below. To minimize storage requirements of at the server, the length 165 of the URI MUST be 256 bytes or less. Each client of the server may 166 only store one URI against a location, where "location" is defined by 167 policy at the server, since a given unique location may have many 168 combinations of location elements that resolve to the same location. 169 If the server receives a 'uri' for the same location from the same 170 client, the URI in the request replaces the URI it previously 171 retained. Policy at the server may limit how many URIs it retains 172 for a given location. A new warning is defined below to be used to 173 indicate that the URI has not been stored. If the location in the 174 request is invalid, the URI will not be stored and the warning will 175 be returned. 177 The 'asOf' attribute contains a date and time. The server will 178 validate the location in the request as of the date specified, taking 179 into account planned changes. This allows the client to verify that 180 it can make changes in the LIS commensurate with changes in the LoST 181 server by validating locations in advance of a change. 183 4. object 185 When the server needs to invalidate a location where the client 186 provided a URI in , the server executes an HTTPS POST 187 containing to the URI previously provided. 188 This is the notice from the server to the client that the location 189 may be invalid and should be revalidated. 190 contains an 'invalidAsOf' attribute that specifies when the location 191 may become invalid. If the date/time in 'invalidAsOf' is earlier 192 than the time the was sent, the location may 193 already be invalid and the LIS should take immediate action. If the 194 POST operation fails, the server MAY retry the operation immediately, 195 and if it fails again, retry the operation at a later time. 197 5. URI Not Stored Warning 199 A new warning is added to the exceptionContainer, 'uriNotStored'. 200 This warning MUST NOT be returned unless the element 201 was found in the corresponding request. The warning is returned when 202 the server decides not to store the URI found in the 203 element. As discussed above, this may occur because, among other 204 reasons, the policy at the server limits how many URIs will be stored 205 against a specific location, the URI is not well formed or the policy 206 at the server has some other restriction on the feature. 208 6. Time-To-Live (TTL) in Response 210 A new element is added to the . The 211 element contains a date and time after which the client may wish to 212 revalidate the location at the server. This element MAY be added by 213 the server if validation is requested in the response. The form of 214 the element is the 'expires' attribute pattern, which allows explicit 215 'NO CACHE' and 'NO EXPIRATION' values to be returned in the 216 element. 'NO CACHE' has no meaning and MUST NOT be returned in TTL. 217 'NO EXPIRATION' means the server does not have any suggested 218 revalidation period. 220 Selecting a revalidation interval is a complex balancing of 221 timeliness, server load, stability of the underlying data, and policy 222 of the LoST server. Too short, and load on the server may overwhelm 223 it. Too long and invalid data may persist in the server for too 224 long. The URI mechanism provides timely notice to coordinate 225 changes, but even with it, it is often advisable to revalidate data 226 eventually. 228 In areas that have little change in data, such as fully built out, 229 stable communities already part of a municipality, it may be 230 reasonable to set revalidation periods of 6 months or longer, 231 especially if the URI mechanism is widely deployed at both the server 232 and the clients. In areas that are quickly growing, 20-30 day 233 revalidation may be more appropriate even though such revalidation 234 would be the majority of the traffic on the LoST server. 236 When a planned change is made, typically the TTL value for the 237 affected records is lowered, so that revalidation is forced soon 238 after the change is implemented. It is not advisable to set the 239 expiration precisely at the planned change time if a large number of 240 records will be changed, since that would cause a large spike in 241 traffic at the change time. Rather, the expiration time should have 242 a random additional time added to it to spread out the load. 244 7. Replacement XML schema 246 The Relax NG schema in [RFC5222] is replaced with the following XML 247 schema: 249 250 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 274 275 276 277 278 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 296 297 298 299 300 301 302 303 304 305 307 308 309 310 311 312 313 314 316 317 318 319 320 321 322 323 324 326 327 328 329 330 331 332 333 335 336 337 338 339 340 341 343 344 345 346 347 348 349 351 352 353 354 355 357 358 359 360 361 362 363 364 365 367 368 369 370 372 373 374 375 376 378 380 381 382 383 384 386 387 389 390 391 393 394 395 396 397 398 399 401 402 403 404 405 406 408 409 410 411 412 414 415 416 417 418 420 421 422 423 424 425 426 427 428 429 430 431 432 433 435 436 437 438 440 441 442 444 445 446 447 449 450 451 452 453 454 456 457 458 459 460 462 463 465 466 467 469 470 471 472 473 474 475 476 477 479 481 482 483 484 485 486 487 489 490 491 492 493 494 495 496 497 498 500 502 504 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 527 529 530 531 532 533 Exception pattern. 534 535 536 537 538 540 542 544 546 548 550 552 554 556 558 560 562 565 566 567 568 569 571 572 573 574 576 577 578 579 581 582 583 584 586 587 588 589 591 592 593 594 595 597 599 600 601 602 603 605 606 607 609 610 611 612 613 615 616 617 618 Any element not in the LoST namespace. 619 620 621 622 623 624 625 626 627 628 629 A wildcard pattern for including any element 630 from any other namespace. 631 632 633 634 636 637 639 640 641 642 A wildcard pattern for including any element 643 from any other namespace. 644 645 646 647 649 650 651 652 A point where future extensions 653 (elements from other namespaces) 654 can be added. 655 656 657 658 660 661 663 665 8. Extension XML schema 667 This schema provides the extension to the prior section schema for 668 planned changes: 670 671 675 676 677 679 xs:group ref="plannedChange" minOccurs="1"/> 681 682 683 684 685 686 688 689 691 693 694 696 697 698 699 701 703 9. Security Considerations 705 As an extension to LoST, this document inherits the security issues 706 raised in [RFC5222]. The server could be tricked into storing a 707 malicious URI which, when sent the locationInvalidated object could 708 trigger something untoward. The server MUST NOT accept any data from 709 the client in response to POSTing the locationInvalidated. 711 The server is subject to abuse by clients because it is being asked 712 to store something and may need to send data to an uncontrolled URI. 713 Clients could request many URIs for the same location for example. 714 The server MUST have policy that limits use of this mechanism by a 715 given client. If the policy is exceeded, the server returns the 716 'uriNotStored' warning. The server MUST validate that the content of 717 the 'uri' attribute sent is syntactically valid and meets the 256 718 bytes limit. When sending the locationInvalidated object to the URI 719 stored, the server MUST protect itself against common HTTP 720 vulnerabilities. 722 The mutual authentication between client and server is RECOMMENDED 723 for both the initial operation that requests storing 724 the URI and the sending of the 'locationInvalidated' object. The 725 server should be well known to the client, and its credential should 726 be learned in a reliable way. For example, a public safety system 727 operating the LoST server may have a credential traceable to a well 728 known Certificate Authority known to provide credentials for public 729 safety agencies. Many of the clients will be operated by local ISPs 730 or other service providers where the server operator can reasonably 731 obtain a good credential to use for the URI. Where the server does 732 not recognize the client, its policy MAY limit the use of this 733 feature beyond what it would limit a client it recognized. 735 10. IANA Considerations 737 10.1. Replacement Schema Registration 739 URI: urn:ietf:params:xml:schema:lost3 740 Registrant Contact: IETF ECRIT Working Group, Brian Rosen 741 (br@brianrosen.net). 743 The XML Schema is found in . 745 10.2. Replacement Schema Registration 747 URI: urn:ietf:params:xml:schema:lostPlannedChange1 748 Registrant Contact: IETF ECRIT Working Group, Brian Rosen 749 (br@brianrosen.net). 751 The XML Schema is found in . 753 10.3. LoST Namespace Registration 754 URI: urn:ietf:params:xml:ns:lost-plannedChange1 756 Registrant Contact: IETF ECRIT Working Group, Brian Rosen 757 (br@brianrosen.net). 759 XML: 761 BEGIN 762 763 765 766 767 769 LoST Planned Change Namespace 770 771 772

Namespace for LoST Planned Change extension

773

urn:ietf:params:xml:ns:lost-plannedChange1

774

See 775 RFC????.

776 777 778 END 780 11. Normative References 782 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 783 Requirement Levels", BCP 14, RFC 2119, 784 DOI 10.17487/RFC2119, March 1997, 785 . 787 [RFC5222] Hardie, T., Newton, A., Schulzrinne, H., and H. 788 Tschofenig, "LoST: A Location-to-Service Translation 789 Protocol", RFC 5222, DOI 10.17487/RFC5222, August 2008, 790 . 792 Author's Address 794 Brian Rosen 795 470 Conrad Dr 796 Mars, PA 16046 797 US 799 EMail: br@brianrosen.net