draft-ietf-shim6-multihome-shim-api-15.txt | draft-ietf-shim6-multihome-shim-api-16.txt | |||
---|---|---|---|---|
SHIM6 Working Group M. Komu | SHIM6 Working Group M. Komu | |||
Internet-Draft HIIT | Internet-Draft HIIT | |||
Intended status: Informational M. Bagnulo | Intended status: Informational M. Bagnulo | |||
Expires: May 3, 2011 UC3M | Expires: August 16, 2011 UC3M | |||
K. Slavov | K. Slavov | |||
S. Sugimoto, Ed. | S. Sugimoto, Ed. | |||
Ericsson | Ericsson | |||
October 30, 2010 | February 12, 2011 | |||
Socket Application Program Interface (API) for Multihoming Shim | Socket Application Program Interface (API) for Multihoming Shim | |||
draft-ietf-shim6-multihome-shim-api-15 | draft-ietf-shim6-multihome-shim-api-16 | |||
Abstract | Abstract | |||
This document specifies sockets API extensions for the multihoming | This document specifies sockets API extensions for the multihoming | |||
shim layer. The API aims to enable interactions between applications | shim layer. The API aims to enable interactions between applications | |||
and the multihoming shim layer for advanced locator management, and | and the multihoming shim layer for advanced locator management, and | |||
access to information about failure detection and path exploration. | access to information about failure detection and path exploration. | |||
This document is based on an assumption that a multihomed host is | This document is based on an assumption that a multihomed host is | |||
equipped with a conceptual sub-layer (hereafter "shim") inside the IP | equipped with a conceptual sub-layer (hereafter "shim") inside the IP | |||
skipping to change at page 1, line 42 | skipping to change at page 1, line 42 | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on May 3, 2011. | This Internet-Draft will expire on August 16, 2011. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2010 IETF Trust and the persons identified as the | Copyright (c) 2011 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
skipping to change at page 3, line 48 | skipping to change at page 3, line 48 | |||
8.2. Path Exploration Parameter . . . . . . . . . . . . . . . 33 | 8.2. Path Exploration Parameter . . . . . . . . . . . . . . . 33 | |||
8.3. Feedback Information . . . . . . . . . . . . . . . . . . 34 | 8.3. Feedback Information . . . . . . . . . . . . . . . . . . 34 | |||
9. System Requirements . . . . . . . . . . . . . . . . . . . . . 35 | 9. System Requirements . . . . . . . . . . . . . . . . . . . . . 35 | |||
10. Relation to Existing Sockets API Extensions . . . . . . . . . 35 | 10. Relation to Existing Sockets API Extensions . . . . . . . . . 35 | |||
11. Operational Considerations . . . . . . . . . . . . . . . . . . 36 | 11. Operational Considerations . . . . . . . . . . . . . . . . . . 36 | |||
11.1. Conflict Resolution . . . . . . . . . . . . . . . . . . . 36 | 11.1. Conflict Resolution . . . . . . . . . . . . . . . . . . . 36 | |||
11.2. Incompatibility between IPv4 and IPv6 . . . . . . . . . . 37 | 11.2. Incompatibility between IPv4 and IPv6 . . . . . . . . . . 37 | |||
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 37 | 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 37 | |||
13. Protocol Constants and Variables . . . . . . . . . . . . . . . 37 | 13. Protocol Constants and Variables . . . . . . . . . . . . . . . 37 | |||
14. Security Considerations . . . . . . . . . . . . . . . . . . . 37 | 14. Security Considerations . . . . . . . . . . . . . . . . . . . 37 | |||
14.1. Treatment of Unknown Locator . . . . . . . . . . . . . . 37 | 14.1. Treatment of Unknown Locator . . . . . . . . . . . . . . 38 | |||
14.1.1. Treatment of Unknown Source Locator . . . . . . . . . 38 | 14.1.1. Treatment of Unknown Source Locator . . . . . . . . . 38 | |||
14.1.2. Treatment of Unknown Destination Locator . . . . . . . 38 | 14.1.2. Treatment of Unknown Destination Locator . . . . . . . 38 | |||
15. Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 | 15. Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 | |||
15.1. Changes from version 00 to version 01 . . . . . . . . . . 38 | 15.1. Changes from version 00 to version 01 . . . . . . . . . . 38 | |||
15.2. Changes from version 01 to version 02 . . . . . . . . . . 39 | 15.2. Changes from version 01 to version 02 . . . . . . . . . . 39 | |||
15.3. Changes from version 02 to version 03 . . . . . . . . . . 39 | 15.3. Changes from version 02 to version 03 . . . . . . . . . . 39 | |||
15.4. Changes from version 03 to version 04 . . . . . . . . . . 39 | 15.4. Changes from version 03 to version 04 . . . . . . . . . . 39 | |||
15.5. Changes from version 04 to version 05 . . . . . . . . . . 39 | 15.5. Changes from version 04 to version 05 . . . . . . . . . . 39 | |||
15.6. Changes from version 05 to version 06 . . . . . . . . . . 39 | 15.6. Changes from version 05 to version 06 . . . . . . . . . . 39 | |||
15.7. Changes from version 06 to version 07 . . . . . . . . . . 39 | 15.7. Changes from version 06 to version 07 . . . . . . . . . . 39 | |||
15.8. Changes from version 07 to version 08 . . . . . . . . . . 39 | 15.8. Changes from version 07 to version 08 . . . . . . . . . . 39 | |||
15.9. Changes from version 08 to version 09 . . . . . . . . . . 39 | 15.9. Changes from version 08 to version 09 . . . . . . . . . . 39 | |||
15.10. Changes from version 09 to version 10 . . . . . . . . . . 40 | 15.10. Changes from version 09 to version 10 . . . . . . . . . . 40 | |||
15.11. Changes from version 10 to version 11 . . . . . . . . . . 40 | 15.11. Changes from version 10 to version 11 . . . . . . . . . . 40 | |||
15.12. Changes from version 11 to version 12 . . . . . . . . . . 40 | 15.12. Changes from version 11 to version 12 . . . . . . . . . . 40 | |||
15.13. Changes from version 12 to version 13 . . . . . . . . . . 40 | 15.13. Changes from version 12 to version 13 . . . . . . . . . . 40 | |||
15.14. Changes from version 13 to version 14 . . . . . . . . . . 40 | 15.14. Changes from version 13 to version 14 . . . . . . . . . . 40 | |||
15.15. Changes from version 14 to version 15 . . . . . . . . . . 40 | 15.15. Changes from version 14 to version 15 . . . . . . . . . . 40 | |||
16. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 40 | 15.16. Changes from version 15 to version 16 . . . . . . . . . . 41 | |||
16. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 41 | ||||
17. References . . . . . . . . . . . . . . . . . . . . . . . . . . 41 | 17. References . . . . . . . . . . . . . . . . . . . . . . . . . . 41 | |||
17.1. Normative References . . . . . . . . . . . . . . . . . . 41 | 17.1. Normative References . . . . . . . . . . . . . . . . . . 41 | |||
17.2. Informative References . . . . . . . . . . . . . . . . . 41 | 17.2. Informative References . . . . . . . . . . . . . . . . . 42 | |||
Appendix A. Context Forking . . . . . . . . . . . . . . . . . . . 42 | Appendix A. Context Forking . . . . . . . . . . . . . . . . . . . 43 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 44 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 44 | |||
1. Introduction | 1. Introduction | |||
This document defines socket API extensions by which upper layer | This document defines socket API extensions by which upper layer | |||
protocols may be informed about and control the way in which a | protocols may be informed about and control the way in which a | |||
multihoming shim sub-layer in the IP layer manages the dynamic choice | multihoming shim sub-layer in the IP layer manages the dynamic choice | |||
of locators. Initially it applies to SHIM6 and HIP, but it is | of locators. Initially it applies to SHIM6 and HIP, but it is | |||
defined generically. | defined generically. | |||
skipping to change at page 29, line 9 | skipping to change at page 29, line 9 | |||
only peer's locator. | only peer's locator. | |||
7. Ancillary Data for Multihoming Shim Sub-layer | 7. Ancillary Data for Multihoming Shim Sub-layer | |||
This section provides definitions of ancillary data to be used for | This section provides definitions of ancillary data to be used for | |||
locator management and notification from/to the shim sub-layer to/ | locator management and notification from/to the shim sub-layer to/ | |||
from application. | from application. | |||
When the application performs locator management by sendmsg() or | When the application performs locator management by sendmsg() or | |||
recvmsg(), a member of the msghdr structure (given in Figure 3) | recvmsg(), a member of the msghdr structure (given in Figure 3) | |||
called msg_control holds a pointer to the buffer in which one ore | called msg_control holds a pointer to the buffer in which one or more | |||
more shim specific ancillary data objects may be stored. An | shim specific ancillary data objects may be stored. An ancillary | |||
ancillary data object can store a single locator. It should be | data object can store a single locator. It should be possible to | |||
possible to process the shim specific ancillary data object by the | process the shim specific ancillary data object by the existing | |||
existing macros defined in the Posix standard and [RFC3542]. | macros defined in the Posix standard and [RFC3542]. | |||
struct msghdr { | struct msghdr { | |||
caddr_t msg_name; /* optional address */ | caddr_t msg_name; /* optional address */ | |||
u_int msg_namelen; /* size of address */ | u_int msg_namelen; /* size of address */ | |||
struct iovec *msg_iov; /* scatter/gather array */ | struct iovec *msg_iov; /* scatter/gather array */ | |||
u_int msg_iovlen; /* # elements in msg_iov */ | u_int msg_iovlen; /* # elements in msg_iov */ | |||
caddr_t msg_control; /* ancillary data, see below */ | caddr_t msg_control; /* ancillary data, see below */ | |||
u_int msg_controllen; /* ancillary data buffer len */ | u_int msg_controllen; /* ancillary data buffer len */ | |||
int msg_flags; /* flags on received message */ | int msg_flags; /* flags on received message */ | |||
}; | }; | |||
skipping to change at page 34, line 6 | skipping to change at page 34, line 6 | |||
8.2. Path Exploration Parameter | 8.2. Path Exploration Parameter | |||
As defined in Section 6, SHIM_PATHEXPLORE allows application to set | As defined in Section 6, SHIM_PATHEXPLORE allows application to set | |||
or read the parameters for path exploration and failure detection. A | or read the parameters for path exploration and failure detection. A | |||
new data structure called shim_pathexplore is defined to store the | new data structure called shim_pathexplore is defined to store the | |||
necessary parameters. Figure 6 illustrates the data structure. The | necessary parameters. Figure 6 illustrates the data structure. The | |||
data structure can be passed to getsockopt() or setsockopt() as an | data structure can be passed to getsockopt() or setsockopt() as an | |||
argument. | argument. | |||
struct shim_pathexplore { | struct shim_pathexplore { | |||
uint8_t pe_probenum; /* # of initial probes */ | uint16_t pe_probenum; /* # of initial probes */ | |||
uint8_t pe_keepaliveto; /* Keepalive Timeout */ | uint16_t pe_keepaliveto; /* Keepalive Timeout */ | |||
uint16_t pe_keepaliveint /* Keepalive Interval */ | ||||
uint16_t pe_initprobeto; /* Initial Probe Timeout */ | uint16_t pe_initprobeto; /* Initial Probe Timeout */ | |||
uint32_t pe_reserved; /* reserved */ | uint32_t pe_reserved; /* reserved */ | |||
}; | }; | |||
Figure 6: path explore structure | Figure 6: path explore structure | |||
pe_probenum | pe_probenum | |||
Indicates the number of initial probe messages to be sent. | Indicates the number of initial probe messages to be sent. | |||
Default value of this parameter should follow what is specified in | Default value of this parameter should follow what is specified in | |||
[RFC5534]. | [RFC5534]. | |||
pe_keepaliveto | pe_keepaliveto | |||
Indicates timeout value for detecting a failure when the host does | Indicates timeout value in seconds for detecting a failure when | |||
not receive any packets for a certain period of time while there | the host does not receive any packets for a certain period of time | |||
is outbound traffic. When the timer expires, path exploration | while there is outbound traffic. When the timer expires, path | |||
procedure will be carried out by sending a REAP Probe message. | exploration procedure will be carried out by sending a REAP Probe | |||
Default value of this parameter should follow what is specified in | message. Default value of this parameter should follow what is | |||
[RFC5534]. | specified in [RFC5534]. | |||
pe_keepaliveint | ||||
Indicates interval of REAP keepalive messages in seconds to be | ||||
sent by the host when there is no outbound traffic to the peer | ||||
host. The value shall be set according to the recommendation | ||||
given in [RFC5534]. | ||||
pe_initprobeto | pe_initprobeto | |||
Indicates retransmission timer of REAP Probe message in | Indicates retransmission timer of REAP Probe message in | |||
milliseconds. Note that this timer is applied before exponential | milliseconds. Note that this timer is applied before exponential | |||
back-off is started. A REAP Probe message for the same locator | back-off is started. A REAP Probe message for the same locator | |||
pair may be retransmitted. Default value of this parameter should | pair may be retransmitted. Default value of this parameter should | |||
follow what is specified in [RFC5534]. | follow what is specified in [RFC5534]. | |||
pe_reserved | pe_reserved | |||
A reserved field for future extension. By default, the field | A reserved field for future extension. By default, the field | |||
should be initialized to zero. | should be initialized to zero. | |||
skipping to change at page 40, line 43 | skipping to change at page 41, line 4 | |||
15.14. Changes from version 13 to version 14 | 15.14. Changes from version 13 to version 14 | |||
o No change was made. The draft was re-submitted to avoid | o No change was made. The draft was re-submitted to avoid | |||
expiration. | expiration. | |||
15.15. Changes from version 14 to version 15 | 15.15. Changes from version 14 to version 15 | |||
o Addressed the difference between SHIM_LOC_PEER_SEND and | o Addressed the difference between SHIM_LOC_PEER_SEND and | |||
SHIM_LOC_PEER_PREF. | SHIM_LOC_PEER_PREF. | |||
o Made clear distinction between validation of locator and | o Made clear distinction between validation of locator and | |||
verification of locator, and introduced two errors: | verification of locator, and introduced two errors: | |||
EUNVERIFIEDLOCATOR and EUNREACHABLELOCATOR. | EUNVERIFIEDLOCATOR and EUNREACHABLELOCATOR. | |||
o Addressed exceptional case for HIP in handling of unknown | o Addressed exceptional case for HIP in handling of unknown | |||
destination locator. | destination locator. | |||
15.16. Changes from version 15 to version 16 | ||||
Updated the documents reflecting the comments received during the | ||||
IETF Last Call. | ||||
o Added Keepalive Interval (pe_keepaliveint) as a member of the | ||||
shim_pathexplore{} data structure. | ||||
o Addressed the unit of pe_keepaliveto. | ||||
o Rephrased the last sentence in Appendix A to make it clear that | ||||
the addressed issue is for further study. | ||||
o Corrected a typo. | ||||
16. Acknowledgments | 16. Acknowledgments | |||
Authors would like to thank Jari Arkko who participated in the | Authors would like to thank Jari Arkko who participated in the | |||
discussion that lead to the first version of this document, and | discussion that lead to the first version of this document, and | |||
Tatuya Jinmei who thoroughly reviewed the early version of this draft | Tatuya Jinmei who thoroughly reviewed the early version of this draft | |||
and provided detailed comments on sockets API related issues. Thomas | and provided detailed comments on sockets API related issues. Thomas | |||
Henderson provided valuable comments especially from HIP | Henderson provided valuable comments especially from HIP | |||
perspectives. | perspectives. | |||
Authors sincerely thank to the following people for their helpful | Authors sincerely thank to the following people for their helpful | |||
comments to the document: Samu Varjonen, Dmitriy Kuptsov, Brian | comments to the document: Samu Varjonen, Dmitriy Kuptsov, Brian | |||
Carpenter, Michael Scharf, and Sebastien Barre | Carpenter, Michael Scharf, Sebastien Barre, and Roni Even. | |||
17. References | 17. References | |||
17.1. Normative References | 17.1. Normative References | |||
[POSIX] "IEEE Std. 1003.1-2001 Standard for Information Technology | [POSIX] "IEEE Std. 1003.1-2001 Standard for Information Technology | |||
-- Portable Operating System Interface (POSIX). Open group | -- Portable Operating System Interface (POSIX). Open group | |||
Technical Standard: Base Specifications, Issue 6, | Technical Standard: Base Specifications, Issue 6, | |||
http://www.opengroup.org/austin", December 2001. | http://www.opengroup.org/austin", December 2001. | |||
skipping to change at page 44, line 5 | skipping to change at page 44, line 33 | |||
|| || || || | || || || || | |||
|| || || || | || || || || | |||
\..............||....................../| || | \..............||....................../| || | |||
\.............||......................./ || | \.............||......................./ || | |||
|| || | || || | |||
\|...................................../| | \|...................................../| | |||
\....................................../ | \....................................../ | |||
Figure 8: context forking | Figure 8: context forking | |||
Any solution is needed to overcome the problem mentioned above. | It is for further study how to solve the issue described above. | |||
Authors' Addresses | Authors' Addresses | |||
Miika Komu | Miika Komu | |||
Helsinki Institute for Information Technology | Helsinki Institute for Information Technology | |||
Tammasaarenkatu 3 | Tammasaarenkatu 3 | |||
Helsinki | Helsinki | |||
Finland | Finland | |||
Phone: +358503841531 | Phone: +358503841531 | |||
End of changes. 15 change blocks. | ||||
24 lines changed or deleted | 43 lines changed or added | |||
This html diff was produced by rfcdiff 1.40. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |