Media Gateway Control Protocol (MGCP) Lockstep State Reporting Mechanism
RFC 3992
Document | Type | RFC - Informational (February 2005) | |
---|---|---|---|
Authors | Bill Foster , Flemming Andreasen | ||
Last updated | 2013-03-02 | ||
RFC stream | Independent Submission | ||
Formats | |||
IESG | Responsible AD | Jon Peterson | |
Send notices to | (None) |
RFC 3992
Network Working Group B. Foster Request for Comments: 3992 F. Andreasen Category: Informational Cisco Systems February 2005 Media Gateway Control Protocol (MGCP) Lockstep State Reporting Mechanism Status of This Memo This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited. Copyright Notice Copyright (C) The Internet Society (2005). IESG Note This document is being published for the information of the community. It describes a non-IETF protocol that is currently being deployed in a number of products. Implementers should be aware of RFC 3015, which was developed in the IETF Megaco Working Group and the ITU-T SG16, and which is considered the standards-based (including reviewed security considerations) way to meet the needs that MGCP was designed to address by the IETF and the ITU-T. Abstract A Media Gateway Control Protocol (MGCP) endpoint that has encountered an adverse failure condition (such as being involved in a transient call when a Call Agent failover occurred) could be left in a lockstep state whereby events are quarantined but not notified. The MGCP package described in this document provides a mechanism for reporting these situations so that the new Call Agent can take the necessary fault recovery procedures. 1. Introduction In the Media Gateway Control Protocol (MGCP) [2], when an endpoint operating in "step" mode generates a Notify, it will enter the notification state, where it waits for a response to the Notify. Furthermore, the endpoint must wait for a new NotificationRequest before it can resume event processing. As long as the endpoint is waiting for this NotificationRequest, we say that it is in the lockstep state. Foster & Andreasen Informational [Page 1] RFC 3992 MGCP Lockstep State Reporting Mechanism February 2005 An endpoint that is in the lockstep state cannot perform any event processing and therefore also cannot generate a new Notify. Endpoints should only be in the lockstep state for a very short time. However, in adverse conditions, an endpoint could potentially end in the lockstep state without the Call Agent realizing it. Clearly, this could have very negative consequences in terms of the service provided. The Lockstep package defined in this document defines extensions to the EndpointConfiguration and RestartInProgress commands that allow a Call Agent to request an endpoint to inform it when the endpoint is in the lockstep state for a specified period of time. 1.1. Conventions Used in This Document The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14, RFC 2119 [1]. 2. Lockstep Package Package Name: LCK Version: 0 Package Description: The purpose of this package is to provide a mechanism for reporting a condition in which an endpoint has been in the "lockstep state" for a specified period of time. There are two aspects of this package: * The ability for a Call Agent to request endpoints to report if they are in lockstep state for a specified period of time. This is done with the EndpointConfiguration command, as described in section 2.1. * The reporting mechanism itself, which is done with a new "lockstep" RestartMethod for the RSIP command as described in section 2.2. 2.1. Request to Report Lockstep State The new "LCK/LST" EndpointConfiguration parameter is used by the Call Agent to request the reporting of "lockstep" state. It uses the following ABNF: "LCK/LST:" 0*WSP LSTIME LSTIME = 1*(4DIGIT) Foster & Andreasen Informational [Page 2] quot; elements SHOULD be provided. 4.1.2. Expiry Time on Location-Related Measurement Data A Device is able to indicate an expiry time in the location measurement using the "expires" attribute. Nominally, this attribute indicates how long information is expected to be valid for, but it can also indicate a time limit on the retention and use of the measurement data. A Device can use this attribute to prevent the LIS from retaining measurement data or limit the time that a LIS retains this information. Note: Movement of a Device might result in the measurement data being invalidated before the expiry time. The LIS MUST NOT keep location-related measurement data beyond the time indicated in the "expires" attribute. Thomson & Winterbottom Expires April 30, 2012 [Page 9] Internet-Draft Location Measurements October 2011 4.2. RMS Error and Number of Samples Often a measurement is taken more than once over a period of time. Reporting the average of a number of measurement results mitigates the effects of random errors that occur in the measurement process. Reporting each measurement individually can be the most effective method of reporting multiple measurements. This is achieved by providing multiple "measurement" elements for different times. The alternative is to aggregate multiple measurements and report a mean value across the set of measurements. Additional information about the distribution of the results can be useful in determining location uncertainty. Two optional attributes are provided for certain measurement values: rmsError: The root-mean-squared (RMS) error of the set of measurement values used in calculating the result. RMS error is expressed in the same units as the measurement, unless otherwise stated. If an accurate value for RMS error is not known, this value can be used to indicate an upper bound or estimate for the RMS error. samples: The number of samples that were taken in determining the measurement value. If omitted, this value can be assumed to be a very large value, so that the RMS error is an indication of the standard deviation of the sample set. For some measurement techniques, measurement error is largely dependent on the measurement technique employed. In these cases, measurement error is largely a product of the measurement technique and not the specific circumstances, so RMS error does not need to be actively measured. A fixed value MAY be provided for RMS error where appropriate. The "rmsError" and "samples" elements are added as attributes of specific measurement data types. 4.2.1. Time RMS Error Measurement of time can be significant in certain circumstances. The GNSS measurements included in this document are one such case where a small error in time can result in a large error in location. Factors such as clock drift and errors in time sychronization can result in small, but significant, time errors. Including an indication of the quality of the time can be helpful. Thomson & Winterbottom Expires April 30, 2012 [Page 10] Internet-Draft Location Measurements October 2011 An optional "timeError" attribute can be added to the "measurement" element to indicate the RMS error in time. "timeError" indicates an upper bound on the time RMS error in seconds. The "timeError" attribute does not apply where multiple samples of a measurement is taken over time. If multiple samples are taken, each SHOULD be included in a different "measurement" element. 4.3. Measurement Request A measurement request is used by a protocol peer to describe a set of measurement data that it desires. A "measurementRequest" element is defined that can be included in a protocol exchange. For instance, a LIS can use a measurement request in HELD responses. If the LIS is unable to provide location information, but it believes that a particular measurement type would enable it to provide a location, it can include a measurement request in an error response. The "measurement" element of the measurement request identifies the type of measurement that is requested. The "type" attribute of this element indicates the type of measurement, as identified by an XML qualified name. An optional "samples" attribute indicates how many samples of the identified measurement are requested. The "measurement" element can be repeated to request multiple (or alternative) measurement types. Additional XML content might be defined for a particular measurement type that is used to further refine a request. These elements either constrain what is requested or specify optional components of the measurement data that are needed. These are defined along with the specific measurement type. In the HELD protocol, the inclusion of a measurement request in a error response with a code of "locationUnknown" indicates that the LIS believes that providing the indicated measurements would increase the likelihood of a subsequent request being successful. Thomson & Winterbottom Expires April 30, 2012 [Page 11] Internet-Draft Location Measurements October 2011 The following example shows a HELD error response that indicates that WiFi measurement data would be useful if a later request were made. Additional elements indicate that received signal strength for an 802.11n access point is requested. <error xmlns="urn:ietf:params:xml:ns:geopriv:held" code="locationUnknown"> <message xml:lang="en">Insufficient measurement data</message> <measurementRequest xmlns="urn:ietf:params:xml:ns:geopriv:lm" xmlns:wifi="urn:ietf:params:xml:ns:geopriv:lm:wifi"> <measurement type="wifi:wifi"> <wifi:type>n</wifi:type> <wifi:parameter context="ap">wifi:rcpi</wifi:parameter> </measurement> </measurementRequest> </error> Figure 3: HELD Error Requesting Measurement Data A measurement request that is included in other HELD messages has undefined semantics and can be safely ignored. Other specifications might define semantics for measurement requests under other conditions. 4.4. Identifying Location Provenance An extension is made to the PIDF-LO [RFC4119] that allows a location recipient to identify the source (or sources) of location information and the measurement data that was used to determine that location information. The "source" element is added to the "geopriv" element of the PIDF-LO. This element does not identify specific entities. Instead, it identifies the type of source. The following types of measurement source are identified: lis: Location information is based on measurement data that the LIS or sources that it trusts have acquired. This label might be used if measurement data provided by the Device has been completely validated by the LIS. device: Location information is based on measurement data that the Device has provided to the LIS. Thomson & Winterbottom Expires April 30, 2012 [Page 12] Internet-Draft Location Measurements October 2011 other: Location information is based on measurement data that a third party has provided. This might be an authorized third party that uses identity parameters [I-D.ietf-geopriv-held-identity-extensions] or any other entity. No assertion is made about the veracity of the measurement data from sources other than the LIS. A combination of tags MAY be included to indicate that measurement data from both sources was used. Thomson & Winterbottom Expires April 30, 2012 [Page 13] Internet-Draft Location Measurements October 2011 For example, the first tuple of the following PIDF-LO indicates that measurement data from a LIS and a device was combined to produce the result, the second tuple was produced by the LIS alone. <presence xmlns="urn:ietf:params:xml:ns:pidf" xmlns:gp="urn:ietf:params:xml:ns:pidf:geopriv10" xmlns:gml="http://www.opengis.net/gml" xmlns:gs="http://www.opengis.net/pidflo/1.0" xmlns:lmsrc="urn:ietf:params:xml:ns:pidf:geopriv10:lmsrc" entity="pres:lm@example.com"> <tuple id="deviceLoc"> <status> <gp:geopriv> <gp:location-info> <gs:Circle srsName="urn:ogc:def:crs:EPSG::4326"> <gml:pos>7.34324 134.47162</gml:pos> <gs:radius uom="urn:ogc:def:uom:EPSG::9001"> 850.24 </gs:radius> </gs:Circle> </gp:location-info> <gp:usage-rules/> <gp:method>OTDOA</gp:method> <lmsrc:source>lis device</lmsrc:source> </gp:geopriv> </status> </tuple> <tuple id="lisLoc"> <status> <gp:geopriv> <gp:location-info> <gs:Circle srsName="urn:ogc:def:crs:EPSG::4326"> <gml:pos>7.34379 134.46484</gml:pos> &RFC 3992 MGCP Lockstep State Reporting Mechanism February 2005 where LSTIME is expressed in seconds, with a value ranging from 0 to 9999. A value greater than 2*T-HIST (refer to [2]) is RECOMMENDED. LSTIME is the amount of time the endpoint is in the lockstep state before reporting. The timer starts when the endpoint enters the lockstep state and is canceled if the endpoint leaves the lockstep state before the timeout occurs. The value provided remains in effect until explicitly changed (or a restart occurs). If the endpoint is already in the lockstep state when a non-zero timer value is provided, the lockstep timer is simply started with the value provided; any existing lockstep timer is cancelled. The value zero is used to turn off reporting. This parameter can be audited by using the AuditEndpoint command. The value returned is the last configured value, or the value zero when no value was configured. 2.2. Lockstep Restart Method A new "lockstep" restart method is defined in the "LCK" package. A RestartInProgress (RSIP) will be sent with this RestartMethod if the endpoint has been configured with a non-zero value for LSTIME and that timer has expired. Note that once the lockstep timer has been set, it can fire only once per Notify command; however it is possible to set the timer more than once while an endpoint is in lockstep state (and hence rearm it for that particular Notify). The syntax of the restart method is as per [2]: "RM" ":" 0*(WSP) "LCK/lockstep" RestartDelay (see [2]) is not used with the "lockstep" RestartMethod. Also, the "lockstep" RestartMethod does not define a service-state, and thus it will never be returned when auditing the RestartMethod. 3. IANA Considerations The MGCP package title "Lockstep" with the name "LCK" and version number zero has been registered with IANA as indicated in Appendix C.1 in [2]. 4. Security Considerations Section 5 of the base MGCP specification [2] discusses security requirements for the base MGCP protocol that apply equally to the package defined in this document. Use of a security Protocol such as IPsec (RFC 2401, RFC 2406) that provides per message authentication and integrity services is required to ensure that requests and responses are obtained from authenticated sources and that messages Foster & Andreasen Informational [Page 3] RFC 3992 MGCP Lockstep State Reporting Mechanism February 2005 have not been modified. Without these services, gateways and Call Agents are open to attacks. 5. Normative References [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [2] Andreasen, F. and B. Foster, "Media Gateway Control Protocol (MGCP) Version 1.0", RFC 3435, January 2003. Authors' Addresses Bill Foster Phone: +1 250 758 9418 EMail: bfoster@cisco.com Flemming Andreasen Cisco Systems 499 Thornall Street, 8th Floor Edison, NJ 08837 EMail: fandreas@cisco.com Foster & Andreasen Informational [Page 4] RFC 3992 MGCP Lockstep State Reporting Mechanism February 2005 Full Copyright Statement Copyright (C) The Internet Society (2005). This document is subject to the rights, licenses and restrictions contained in BCP 78, and at www.rfc-editor.org, and except as set forth therein, the authors retain all their rights. This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Intellectual Property The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the ISOC's procedures with respect to rights in ISOC Documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf- ipr@ietf.org. Acknowledgement Funding for the RFC Editor function is currently provided by the Internet Society. Foster & Andreasen Informational [Page 5]