idnits 2.17.1 draft-ietf-ecrit-lost-planned-changes-04.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: ---------------------------------------------------------------------------- == There is 1 instance of lines with non-ascii characters in the document. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- == The 'Updates: ' line in the draft header should list only the _numbers_ of the RFCs which will be updated by this document (if approved); it should not include the word 'RFC' in the list. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The exact meaning of the all-uppercase expression 'NOT REQUIRED' is not defined in RFC 2119. If it is intended as a requirements expression, it should be rewritten using one of the combinations defined in RFC 2119; otherwise it should not be all-uppercase. -- The document date (19 August 2021) is 974 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 (~~), 3 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 ecrit B. Rosen 3 Internet-Draft 19 August 2021 4 Updates: RFC5222 (if approved) 5 Intended status: Standards Track 6 Expires: 20 February 2022 8 Validation of Locations Around a Planned Change 9 draft-ietf-ecrit-lost-planned-changes-04 11 Abstract 13 This document defines an extension to LoST (RFC5222) that allows a 14 planned change to the data in the LoST server to occur. Records that 15 previously were valid will become invalid at a date in the future, 16 and new locations will become valid after the date. The extension 17 adds two elements to the request: A URI to be used to 18 inform the LIS that previously valid locations will be invalid after 19 the planned change date, and add a date which requests the server to 20 perform validation as of the date specified. It also adds an 21 optional Time-To-Live element to the response, which informs clients 22 about the current expected lifetime of the validation. This document 23 also provides a conventional XML schema for LoST, as backwards 24 compatible alternative to the RelaxNG schema in RFC5222 26 Status of This Memo 28 This Internet-Draft is submitted in full conformance with the 29 provisions of BCP 78 and BCP 79. 31 Internet-Drafts are working documents of the Internet Engineering 32 Task Force (IETF). Note that other groups may also distribute 33 working documents as Internet-Drafts. The list of current Internet- 34 Drafts is at https://datatracker.ietf.org/drafts/current/. 36 Internet-Drafts are draft documents valid for a maximum of six months 37 and may be updated, replaced, or obsoleted by other documents at any 38 time. It is inappropriate to use Internet-Drafts as reference 39 material or to cite them other than as "work in progress." 41 This Internet-Draft will expire on 20 February 2022. 43 Copyright Notice 45 Copyright (c) 2021 IETF Trust and the persons identified as the 46 document authors. All rights reserved. 48 This document is subject to BCP 78 and the IETF Trust's Legal 49 Provisions Relating to IETF Documents (https://trustee.ietf.org/ 50 license-info) in effect on the date of publication of this document. 51 Please review these documents carefully, as they describe your rights 52 and restrictions with respect to this document. Code Components 53 extracted from this document must include Simplified BSD License text 54 as described in Section 4.e of the Trust Legal Provisions and are 55 provided without warranty as 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 . . . . . . . . . . . . . . . . 5 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 . . . . . . . . . . . . . . . . . . . . 15 67 9. locationInvalidated Schema . . . . . . . . . . . . . . . . . 16 68 10. Security Considerations . . . . . . . . . . . . . . . . . . . 16 69 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 17 70 11.1. Replacement XML Schema Registration . . . . . . . . . . 17 71 11.2. Planned Change Extension XML Schema Registration . . . . 17 72 11.3. locationInvalidated XML Schema Registration . . . . . . 18 73 12. Normative References . . . . . . . . . . . . . . . . . . . . 19 74 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 19 76 1. Introduction 78 This document describes an update to the LoST protocol + which allows 79 a request to optionally add a URI and a date to be used 80 with planned changes to the underlying location information in the 81 server. The URI is retained by the LoST server, associated with the 82 data record that was validated, and used to notify the LIS (the LoST 83 client) when a location which was previously valid will become 84 invalid. The date is used by the client to ask the server to perform 85 validation as of a future date. In addition to this mechanism, the 86 is also extended to provide a Time-To-Live 87 (TTL) for validation, after which the client should revalidate the 88 location. 90 Validation of civic locations involves dealing with data that changes 91 over time. A typical example is a portion of a county or province 92 that was not part of a municipality is "annexed" to a municipality. 93 Prior to the change, the content of the PIDF-LO A3 element would be 94 blank, or represent some other value and after the change would be 95 the municipality that annexed that part of the county/province. This 96 kind of annexation has an effective date and time (typically 00:00 on 97 the first or last day of a month). 99 Records in a LIS must change around these kinds of events. The old 100 record must be discarded, and a new, validated record must be loaded 101 into the LIS. It is often difficult for the LIS operator to know 102 that records must be changed around such events. There are other 103 circumstances where locations that were previously valid become 104 invalid, such as a street renaming or renumbering event. As RFC5222 105 defines validation, the only way for a LIS to discover such changes 106 was to periodically revalidate its entire database. Of course, this 107 would not facilitate timely changes, is not coordinated with the 108 actual change event, and also adds significant load to the LoST 109 server. Even if re-validation is contemplated, the server has no 110 mechanism to control, or even suggest the time period for 111 revalidation 113 This extension allows the client to provide a stable URI that is 114 retained by the server associated with the location information used 115 in the request. In the event of a planned change, or any other 116 circumstance where the location may become invalid, the server sends 117 a notification to the URI informing it of a change. The notification 118 contains the date and time when the location may become invalid. 120 Ideally, following such a notification, the LIS will prepare a new 121 record to be inserted in its active database, that becomes active at 122 the precise planned event date and time, at which point it would also 123 delete the old record. However, the new record has to be valid, and 124 the LIS would like to validate it prior to the planned change event. 125 If it requests validation before the planned event, the server 126 (without this extension) would inform the client that the location 127 was invalid. This extension includes an optional "as of" date and 128 time in the request that allows the LoST server to provide validation 129 as of the date and time specified, as opposed to the "as of now" 130 implied in the current LoST protocol. 132 When it is not practical or advisable for the LIS to maintain stable 133 URIs for all of its records, periodic revalidation can be still used 134 to maintain the data in the LIS. However, the server should be able 135 to control the rate of such revalidation. For this purpose, a new 136 TTL element is included in the which provides 137 advice from the server to the LIS of when revalidation is suggested. 139 There are quite a few implementations of LoST. Experience with these 140 implementations indicates that the RelaxNG schema is very difficult 141 to deal with, because the tools that the implementors use don't 142 support it, and their staff is unfamiliar with it. Alternative 143 schemas have been circulated, which is undesirable, as they may not 144 be in conformance to the RelaxNG schema in [RFC5222]. This document 145 provides an XML schema that replaces the RelaxNG schema. It can be 146 used by any implementation interchangeably with the RelaxNG schema. 148 2. Conventions used in this document 150 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 151 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 152 document are to be interpreted as described in [RFC2119]. 154 "Server" in this document refers to the LoST server and "Client" is 155 the LoST client, even when the server is performing an operation on 156 the client. 158 3. element 160 This document defines a new element to called 161 "plannedChange". This element contains two attributes: 'uri' and 162 'asOf'. The 'uri' attribute MUST be a URI with a scheme of HTTPS. 163 The URI will be stored by the server against the location in the 164 request for subsequent use with the notification function defined 165 below. To minimize storage requirements of at the server, the length 166 of the URI MUST be 256 bytes or less. Each client of the server may 167 only store one URI against a location, where "location" is defined by 168 policy at the server, since a given unique location may have many 169 combinations of location elements that resolve to the same location. 170 If the server receives a 'uri' for the same location from the same 171 client, the URI in the request replaces the URI it previously 172 retained. Policy at the server may limit how many URIs it retains 173 for a given location. A new warning is defined below to be used to 174 indicate that the URI has not been stored. If the location in the 175 request is invalid, the URI will not be stored and the warning will 176 be returned. 178 The 'asOf' attribute contains a date and time. The server will 179 validate the location in the request as of the date specified, taking 180 into account planned changes. This allows the client to verify that 181 it can make changes in the LIS commensurate with changes in the LoST 182 server by validating locations in advance of a change. 184 4. object 186 When the server needs to invalidate a location where the client 187 provided a URI in , the server executes an HTTPS POST 188 containing , with a Content-Type of 189 'application/xml' to the URI previously provided. This is the notice 190 from the server to the client that the location may be invalid and 191 should be revalidated. contains an 192 'invalidAsOf' attribute that specifies when the location may become 193 invalid. If the date/time in 'invalidAsOf' is earlier than the time 194 the was sent, the location may already be 195 invalid and the LIS should take immediate action. If the POST 196 operation fails, the server MAY retry the operation immediately, and 197 if it fails again, retry the operation at a later time. 199 The LoST server is NOT REQUIRED to store the Location Information 200 supplied in the original findService request. This means the server 201 may not know if a planned change will in fact invalidate the location 202 stored in the LoST client, because changes could be made in the LoST 203 server that do not affect validation of the Location Information. 204 The LoST client may find that upon revalidation with the changed 205 server state, the validation data is the same as it was before the 206 notification was received. 208 5. URI Not Stored Warning 210 A new warning is added to the exceptionContainer, 'uriNotStored'. 211 This warning MUST NOT be returned unless the element 212 was found in the corresponding request. The warning is returned when 213 the server decides not to store the URI found in the 214 element. As discussed above, this may occur because, among other 215 reasons, the policy at the server limits how many URIs will be stored 216 against a specific location, the URI is not well formed or the policy 217 at the server has some other restriction on the feature. 219 6. Time-To-Live (TTL) in Response 221 A new element is added to the . The 222 element contains a date and time after which the client may wish to 223 revalidate the location at the server. This element MAY be added by 224 the server if validation is requested in the response. The form of 225 the element is the 'expires' attribute pattern, which allows explicit 226 'NO CACHE' and 'NO EXPIRATION' values to be returned in the 227 element. 'NO CACHE' has no meaning and MUST NOT be returned in TTL. 228 'NO EXPIRATION' means the server does not have any suggested 229 revalidation period. 231 Selecting a revalidation interval is a complex balancing of 232 timeliness, server load, stability of the underlying data, and policy 233 of the LoST server. Too short, and load on the server may overwhelm 234 it. Too long and invalid data may persist in the server for too 235 long. The URI mechanism provides timely notice to coordinate 236 changes, but even with it, it is often advisable to revalidate data 237 eventually. 239 In areas that have little change in data, such as fully built out, 240 stable communities already part of a municipality, it may be 241 reasonable to set revalidation periods of 6 months or longer, 242 especially if the URI mechanism is widely deployed at both the server 243 and the clients. In areas that are quickly growing, 20-30 day 244 revalidation may be more appropriate even though such revalidation 245 would be the majority of the traffic on the LoST server. 247 When a planned change is made, typically the TTL value for the 248 affected records is lowered, so that revalidation is forced soon 249 after the change is implemented. It is not advisable to set the 250 expiration precisely at the planned change time if a large number of 251 records will be changed, since that would cause a large spike in 252 traffic at the change time. Rather, the expiration time should have 253 a random additional time added to it to spread out the load. 255 7. Replacement XML schema 257 This schema is an informative alternative to The Relax NG schema in 258 [RFC5222] 260 261 266 267 268 269 270 271 272 273 274 275 276 277 278 280 281 282 283 284 286 287 288 289 290 292 293 294 295 296 297 298 299 300 302 303 304 305 306 307 309 310 311 312 313 314 315 316 317 318 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 338 339 340 341 342 343 344 345 347 348 349 350 351 352 353 355 356 357 358 359 360 361 363 364 365 366 367 369 370 371 372 373 374 375 377 378 380 381 382 383 385 386 387 388 389 391 393 394 395 396 397 398 399 401 402 403 405 406 407 408 409 410 411 413 414 415 416 417 418 420 421 422 423 424 425 426 427 428 429 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 450 451 452 454 455 456 457 459 460 461 462 463 464 466 467 468 469 470 472 473 475 476 477 479 480 481 482 483 484 485 486 487 489 491 492 493 494 495 496 497 499 500 501 502 503 504 505 506 507 508 510 512 514 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 537 539 541 542 543 544 Exception pattern. 545 546 547 548 549 551 553 555 557 559 561 563 565 567 568 570 572 574 577 578 type="basicException"/> 580 581 582 583 585 586 587 588 590 591 592 593 595 596 597 598 599 601 603 604 605 606 607 609 610 611 613 614 615 617 618 620 621 622 623 Any element not in the LoST namespace. 624 625 626 627 628 629 630 632 633 634 635 A wildcard pattern for including any element 636 from any other namespace. 637 638 639 640 642 643 645 646 647 648 A wildcard pattern for including any element 649 from any other namespace. 650 651 652 653 655 656 657 658 A point where future extensions 659 (elements from other namespaces) 660 can be added. 661 662 663 664 666 667 669 671 8. Extension XML Schema 673 This schema provides the extension to the prior section schema for 674 planned changes: 676 677 681 682 683 685 xs:group ref="plannedChange" minOccurs="1"/> 687 688 689 690 691 692 694 695 697 699 700 702 703 704 705 707 708 9. locationInvalidated Schema 710 This schema defines the object used for the notification of 711 (potential) invalidated location by the LoST server to a client that 712 requested it. 714 715 719 720 721 722 A point where future extensions 723 (elements from other namespaces) 724 can be added. 725 726 727 728 729 731 732 734 736 10. Security Considerations 738 As an extension to LoST, this document inherits the security issues 739 raised in [RFC5222]. The server could be tricked into storing a 740 malicious URI which, when sent the locationInvalidated object could 741 trigger something untoward. The server MUST NOT accept any data from 742 the client in response to POSTing the locationInvalidated. 744 The server is subject to abuse by clients because it is being asked 745 to store something and may need to send data to an uncontrolled URI. 746 Clients could request many URIs for the same location for example. 747 The server MUST have policy that limits use of this mechanism by a 748 given client. If the policy is exceeded, the server returns the 749 'uriNotStored' warning. The server MUST validate that the content of 750 the 'uri' attribute sent is syntactically valid and meets the 256 751 bytes limit. When sending the locationInvalidated object to the URI 752 stored, the server MUST protect itself against common HTTP 753 vulnerabilities. 755 The mutual authentication between client and server is RECOMMENDED 756 for both the initial operation that requests storing 757 the URI and the sending of the 'locationInvalidated' object. The 758 server should be well known to the client, and its credential should 759 be learned in a reliable way. For example, a public safety system 760 operating the LoST server may have a credential traceable to a well 761 known Certificate Authority known to provide credentials for public 762 safety agencies. Many of the clients will be operated by local ISPs 763 or other service providers where the server operator can reasonably 764 obtain a good credential to use for the URI. Where the server does 765 not recognize the client, its policy MAY limit the use of this 766 feature beyond what it would limit a client it recognized. 768 11. IANA Considerations 770 11.1. Replacement XML Schema Registration 772 URI: urn:ietf:params:xml:schema:lost3 773 Registrant Contact: IETF ECRIT Working Group, Brian Rosen 774 (br@brianrosen.net). 775 XML: 776 BEGIN 777 778 780 781 782 784 LoST Namespace 785 786 787

Namespace for LoST

788

urn:ietf:params:xml:ns:lost3

789

See 790 RFC????.

791 792 793 END 795 The XML Schema is found in Section 7. 797 11.2. Planned Change Extension XML Schema Registration 798 URI: urn:ietf:params:xml:schema:lostPlannedChange1 799 Registrant Contact: IETF ECRIT Working Group, Brian Rosen 800 (br@brianrosen.net). 801 XML: 803 BEGIN 804 805 807 808 809 811 LoST Planned Change Namespace 812 813 814

Namespace for LoST

815

urn:ietf:params:xml:ns:lostPlannedChange1

816

See 817 RFC????.

818 819 820 END 822 The XML Schema is found in Section 8. 824 11.3. locationInvalidated XML Schema Registration 825 URI: urn:ietf:params:xml:schema:lostLocationInvalidated1 826 Registrant Contact: IETF ECRIT Working Group, Brian Rosen 827 (br@brianrosen.net). 828 XML: 830 BEGIN 831 832 834 835 836 838 LoST Location Invalided Namespace 839 840 841

Namespace for LoST Location Invalidated notification

842

urn:ietf:params:xml:ns:lostLocationInvalidated1

843

See 844 RFC????.

845 846 847 END 849 The XML Schema is found in Section 9. 851 12. Normative References 853 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 854 Requirement Levels", BCP 14, RFC 2119, 855 DOI 10.17487/RFC2119, March 1997, 856 . 858 [RFC5222] Hardie, T., Newton, A., Schulzrinne, H., and H. 859 Tschofenig, "LoST: A Location-to-Service Translation 860 Protocol", RFC 5222, DOI 10.17487/RFC5222, August 2008, 861 . 863 Author's Address 865 Brian Rosen 866 470 Conrad Dr 867 Mars, PA 16046 868 United States of America 870 Email: br@brianrosen.net