IPv6 Prefix Meta-data and Usage
Author(s): Cisco Systems, Maico Le Pape, Ian Farrer
This document presents a method for applications to influence the IPv6 source selection algorithm used by the IP stack in a host. To do so, IPv6 prefixes are associated with meta-data when configured by the network. This meta-data...
Internet Engineering Task Force M. Le Pape Internet-Draft S. Bhandari Intended status: Informational Cisco Systems Expires: January 16, 2014 I. Farrer Deutsche Telekom AG July 15, 2013 IPv6 Prefix Meta-data and Usage draft-lepape-6man-prefix-metadata-00 Abstract This document presents a method for applications to influence the IPv6 source selection algorithm used by the IP stack in a host. To do so, IPv6 prefixes are associated with meta-data when configured by the network. This meta-data allows the network to describe the purpose and properties of the prefix enabling applications to make intelligent decision when selecting a prefix. Requirements Language 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 RFC 2119 [RFC 2119]. Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on January 16, 2014. Le Pape, et al. Expires January 16, 2014 [Page 1] Internet-Draft IPv6 Prefix Meta-data and Usage July 2013 Copyright Notice Copyright (c) 2013 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Motivation . . . . . . . . . . . . . . . . . . . . . . . 3 1.1.1. Home networks . . . . . . . . . . . . . . . . . . . . 3 1.1.2. Mobile networks . . . . . . . . . . . . . . . . . . . 4 2. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3. Considerations . . . . . . . . . . . . . . . . . . . . . . . 7 3.1. Prefix meta-data propogation . . . . . . . . . . . . . . 7 3.2. Configuring Applications . . . . . . . . . . . . . . . . 7 3.3. Application to network stack communication . . . . . . . 8 3.4. Default Address Selection . . . . . . . . . . . . . . . . 8 3.5. Scope of Prefix Color . . . . . . . . . . . . . . . . . . 8 3.5.1. Local scoping . . . . . . . . . . . . . . . . . . . . 9 3.5.2. Local scoping with fuzzy matching . . . . . . . . . . 9 3.5.3. Global scoping . . . . . . . . . . . . . . . . . . . 9 3.6. Compatibility with Existing Implementations . . . . . . . 9 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 5. Security Considerations . . . . . . . . . . . . . . . . . . . 10 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10 7. Change History (to be removed prior to publication as an RFC) 10 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 8.1. Normative References . . . . . . . . . . . . . . . . . . 10 8.2. Informative References . . . . . . . . . . . . . . . . . 10 Appendix A. Prototype notes . . . . . . . . . . . . . . . . . . 12 A.1. Homenet prototype implementation notes . . . . . . . . . 12 A.1.1. Video provider service . . . . . . . . . . . . . . . 12 A.1.2. Prefix Color delegation . . . . . . . . . . . . . . . 12 A.1.3. Configuring Applications . . . . . . . . . . . . . . 13 A.1.4. Android DHCPv6 . . . . . . . . . . . . . . . . . . . 14 A.1.5. Application to network stack communication . . . . . 14 A.1.6. Android kernel . . . . . . . . . . . . . . . . . . . 15 A.1.7. Limitations of the current prototype . . . . . . . . 16 Le Pape, et al. Expires January 16, 2014 [Page 2] Internet-Draft IPv6 Prefix Meta-data and Usage July 2013 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 1. Introduction IPv6 provides not only a larger address space than IPv4, but also allows host interfaces to have more than one IPv6 address of the same or different scope(s). When multiple prefixes are assigned to one or more network interfaces each of the prefixes can have a specific property and purpose associated with it. For example: In a mobile network, a mobile device can be assigned a prefix from its home network and another from the visiting network that it is currently attached to. Another example is a public WLAN hotspot configured with two prefixes offering Internet access. One is free, but low- quality, whilst the other is charged and offers service level guarantees. A prefix may have well defined properties that are universal and have additional meta-data associated with it in order to communicate the prefixes local significance. When multiple prefixes are provisioned to the host, this additional information allows the host and applications to make more intelligent decisions about the best IPv6 address to select when sourcing connections. This document introduces the motivations and considerations for having additional meta-data associated with a prefix and also proposes a format for the meta-data itself. The underlying assumption is that a endpoint or an application has multiple prefixes to choose from. Typically this means either the endpoint has multiple interfaces or an interface has been configured with multiple prefixes. This specification does not make a distinction between these alternatives. 1.1. Motivation In this section, the motivation for attaching meta-data to IPv6 prefixes is described in the context of both mobile and home networks. The meta-data helps to distinguish an IPv6 prefix and aids with the selection of the prefix by different applications. 1.1.1. Home networks In a fixed network environment, the homenet CPE may also function as both a DHCPv6 client (requesting IA_PD(s)) and a DHCPv6 server allocating prefixes from delegated prefix(es) to downstream home network hosts. Some service providers may wish to delegate multiple globally unique prefixes to the CPE for use by different services classes and traffic types. Le Pape, et al. Expires January 16, 2014 [Page 3] Internet-Draft IPv6 Prefix Meta-data and Usage July 2013 Motivations for this include: o Using source prefix to identify the service class / traffic type that is being transported. The source prefix may then reliably be used as a parameter for differentiated services or other purposes. E.g. [I-D.jiang-v6ops-semantic-prefix] o Using the specific source prefix as a host identifier for other services. o In multi-homed environments, a single homenet LAN may have multiple globally unique prefixes provided by the different service providers. In this scenario, correct source address selection is fundamental to successfully establishing connections. E.g. [I-D.troan-homenet-sadr] Any host which is configured with multiple prefixes must perform a source address selection process when initiating a connection. Any client that has multiple globally unique prefixes only has source and destination longest-prefix matching policy [RFC6724] in order to make this selection. For cases such as those listed above, longest-prefix matching can not assist the client in selecting the correct source address to use. Addition information is needed to assist the client in making the correct source address selection. 1.1.2. Mobile networks In mobile network architecture, a mobile node can be associated with multiple IPv6 prefixes belonging to different domains. E.g. home address prefix, care of address prefix (as specified in [RFC3775]). The delegated prefixes may be topologically local and some may be remote prefixes anchored on a global anchor, but available to the local anchor by means of tunnel setup in the network between the local and global anchor. Some prefixes may be local with low latency characteristics suitable for voice call break-out, some may have global mobility support. So, the prefixes have different properties and it is necessary for the application using the prefix to learn about this property in order to use it intelligently. An example is determining if the prefix is a home address or care of address or other network characteristics that can be offered. Le Pape, et al. Expires January 16, 2014 [Page 4] Internet-Draft IPv6 Prefix Meta-data and Usage July 2013 2. Overview The mechanism that is described in this document describes two different types of meta data which can be used in different ways: Prefix Properties Provides a method for an application to "hint" required source address properties to the kernel. These properties are universal and expressed as a set of flags. Prefix Color Provides an arbitrary color value to prefixes (of local significance) enabling an application to request a source prefix with a specific color. These two meta data types are described in more detail below. Prefix Properties functions as follows: o The client receives multiple prefixes, with relevant Prefix Property meta-data attached to each prefix o Prefix property aware applications running on the client have a policy defining that they prefer prefixes that have specific properties. o On initiating a connection, the Prefix Property aware application passes the required prefix properties to the kernel along with the connect request o The kernel checks the requested properties against the available prefixes. If a match is found, the matching prefix is passed back to the application o The application uses the returned prefix when making the call to the socket API to create the connection o If no prefix matching the requested properties is available, then the kernel uses [RFC6724] for source address selection as normal Prefix property offers well defined universally understood information about the prefix. Example properties include whether a prefix can provide Internet reachability, if the prefix offers application specific Internet service level, if the prefix usage is free/charged, if the prefix offers security guarantees etc. This is maintained as a global registry. Prefix Coloring functions as follows: Le Pape, et al. Expires January 16, 2014 [Page 5] Internet-Draft IPv6 Prefix Meta-data and Usage July 2013 o The client receives multiple prefixes, with relevant meta-data attached o Color aware applications running on the client are provisioned with policy telling them which prefix color to request o On initiating a connection, the meta data aware application passes the required prefix color to the kernel along with the connect request o The kernel takes this color and selects the prefix matching the requested color and passes this back to the application o The application uses the returned prefix when making the call to the socket API to create the connection Prefix colour conveys information of the prefix that is of relevance to the network where the prefix is provisioned and application using it. Example usage of prefix color include color that is provisioned to offer better video application experience. The prefix color is defined as a 16 bit numerical value. Figure 1 illustrates a typical network with different components that can add, understand and use the meta-data attached to a prefix. o Mobile or ISP Network - Provisioned with prefixes that offer specific network characteristic. e.g. prefixes that do not have internet reach but can offer quality of service required for better video application experience. Includes address delegation server that associate prefixes with this information, selects and offers this information during prefix delegation o Home/Mobile gateway - Learns or determines characteristic of the prefix and propagates it along with prefix delegation. e.g. Determines if the prefix is locally anchored or learns the prefix meta-data from the ISP prefix delegation server and includes this information in prefix delegation to endpoints o Endpoint network stack - Learns the additional information associated with the prefix and offers interface to applications for listing and selecting the available prefixes o Prefix selection policy - Either embedded in the application/ endpoint or learnt from a server that helps choose the prefix with specific characteristic for the application based on predetermined service agreement between the application/endpoint/application service provider and network service provider Le Pape, et al. Expires January 16, 2014 [Page 6] Internet-Draft IPv6 Prefix Meta-data and Usage July 2013 o Applications - That can utilize the prefix with specific characteristic for enhanced application user experience e.g. On demand video application, by choosing the prefix with appropriate prefix selection policy while connecting and delivering the application over the network This prefix meta-data could be further extended to have more attributes such as the administrative domain of the prefix. +----------------------+ +------------------------+ | | | | | Application | | | | prefix | | ISP 1, ..., n | | policy | | | | | | | +----------------------+ +------------------------+ : | | : | | : |---n---| +--------------+ | | | Endpoint | | | | application | | | +- - - - - - - + +------------------+ | Endpoint | | | | networking |---------------| Home Gateway/ | | stack | | Mobile Gateway | +--------------+ +------------------+ Figure 1 3. Considerations 3.1. Prefix meta-data propogation The prefix meta-data can be delivered using DHCPv6 prefix delegation and address allocation as elaborated in [I-D.bhandari-dhc-class-based-prefix] or via IPv6 Neighbour discovery (ND) as defined in [I-D.korhonen-6man-prefix-properties]. 3.2. Configuring Applications Applications supporting multiple prefixes obtain the prefixes from the host kernel along with their meta-data. The policy can then be contained either locally (e.g. If the application is intended only for use within a specific network, linked to a particular ISP comes prepackages with prefix color to Le Pape, et al. Expires January 16, 2014 [Page 7] Internet-Draft IPv6 Prefix Meta-data and Usage July 2013 use), or be contained on a remote policy server. The mechanism used to exchange the meta-data information and selection between application/host with a remote server is beyond the scope of this document. 3.3. Application to network stack communication Once an application has determined the appropriate property and color for its use it has to communicate with the network stack to select the prefix. The host internal data structures need to be extended with the 'prefix property' and the 'prefix color' information associated to the learnt prefix and configured addresses. How this is accomplished is host implementation specific. It is also a host implementation issue how an application can learn or query both properties and color of an address or a prefix. One possibility is to provide such information through the socket API extensions. Other possibilities include the use of e.g., ioctl() or NetLink [RFC3549] extensions or by using the IPv6 address scope [RFC4007]. Discussion point: Should prefix property and color be mutually exclusive? This would avoid complexities which takes precedence when one prefix matches color and another matches property. Possibly a prefix may be advertised with both, but the application can only request property or color. 3.4. Default Address Selection [RFC6724] provides a mechanism for selecting which source address to use, in the absence of an application or upper layer protocol's explicit choice of a legal destination or source address. The use of prefix meta-data allows an application to express property preferences through socket API extensions, meaning that when used for creating a socket, [RFC6724] source address selection is not required. If a higher layer protocol or application does not include a prefix property preference when making a create socket request, then source address selection according to [RFC6724] is followed as normal. 3.5. Scope of Prefix Color Since a home can be connected to multiple ISPs, it is possible that it receives multiple prefixes with the same color from different ISPs. Since the application coloring policy is not received with the color, multiple ISPs may use different coloring policy for a single color. For example: One ISP could use color 50 for video whilst a second ISP is using color 50 for audio. Le Pape, et al. Expires January 16, 2014 [Page 8] Internet-Draft IPv6 Prefix Meta-data and Usage July 2013 This section presents some alternatives to handle this problem. 3.5.1. Local scoping A locally scoped color is a value which is selected by the network and application providers with no central registry. In a multi homed network, this may result in two providers selecting the same color for different behaviors. A color translation could be performed to ensure unique color at the device that connects to multiple providers. 3.5.2. Local scoping with fuzzy matching To avoid having to maintain multiple colors for each prefix for translating the color, a specific algorithm can be used to determine the new color from the old one on conflict. For example, when a collision is detected, the new color value may be incremented. Further, colors could be defined to be equally spaced (e.g., 10s or 100s). Many other encodings are possible as well, as long as obtaining the original color communicated by the ISP may be recovered in the event the application policy server requires this. 3.5.3. Global scoping A globally scoped color avoids the need for responding to collisions. This can be achieved by disambiguating the color by attaching the domain that provisions the color to the prefix meta-data or by assigning colors from a global registry that comes with the overhead of maintaining such a registry. 3.6. Compatibility with Existing Implementations The prefix meta-data mechanism that is described in this document provides a way of improving source address selection over the longest-prefix matching method used by [RFC6724]. However, all IPv6 capable hosts deployed at the time of writing do not have the capability of understanding and processing prefix meta- data. This means that any new mechanism must be backwards compatible with existing implementations. Also, clients which understand prefix meta-data need to support applications which do not have meta-data awareness. There are a number of possible approaches that could be taken here. The following list is included as ideas for further development: Le Pape, et al. Expires January 16, 2014 [Page 9] Internet-Draft IPv6 Prefix Meta-data and Usage July 2013 o In DHCPv6 only clients which request prefixes with meta-data (e.g. signalled through OPTION_ORO in the IA_NA or IA_PD request) will receive them. o In case of prefix delegated using IPv6 Neighbour discovery (ND) both forms of prefix i.e with and without meta-data can be offered. o If an application makes a socket API request and does not include meta-data as part of the request, follow [RFC6724] source address selection, but remove any prefixes that have meta-data from the list of candidate addresses. It follows that there should be a GU prefix advertised that does not have any meta-data associated that would act as the default choice for non prefix meta-data aware clients and applications. 4. IANA Considerations Should the global scoping for prefix color be chosen, a new registry should be created by IANA to store colors. 5. Security Considerations TBD 6. Acknowledgements The authors would like to acknowledge review and guidance received from 7. Change History (to be removed prior to publication as an RFC) 8. References 8.1. Normative References [RFC 2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. 8.2. Informative References [I-D.bhandari-dhc-class-based-prefix] Systems, C., Halwasia, G., Gundavelli, S., Deng, H., Thiebaut, L., and J. Korhonen, "DHCPv6 class based prefix", draft-bhandari-dhc-class-based-prefix-04 (work in progress), February 2013. [I-D.ietf-dhc-dhcpv4-over-ipv6] Le Pape, et al. Expires January 16, 2014 [Page 10] Internet-Draft IPv6 Prefix Meta-data and Usage July 2013 Cui, Y., Wu, P., Wu, J., and T. Lemon, "DHCPv4 over IPv6 Transport", draft-ietf-dhc-dhcpv4-over-ipv6-06 (work in progress), March 2013. [I-D.jiang-v6ops-semantic-prefix] Jiang, S., Sun, Q., Farrer, I., and Y. Bo, "A Framework for Semantic IPv6 Prefix", draft-jiang-v6ops-semantic- prefix-03 (work in progress), May 2013. [I-D.korhonen-6man-prefix-properties] Korhonen, J., Patil, B., Gundavelli, S., Seite, P., and D. Liu, "IPv6 Prefix Properties", draft-korhonen-6man-prefix- properties-02 (work in progress), July 2013. [I-D.troan-homenet-sadr] Troan, O. and L. Colitti, "IPv6 Multihoming with Source Address Dependent Routing (SADR)", draft-troan-homenet- sadr-00 (work in progress), February 2013. [RFC3549] Salim, J., Khosravi, H., Kleen, A., and A. Kuznetsov, "Linux Netlink as an IP Services Protocol", RFC3549, July 2003. [RFC3633] Troan, O. and R. Droms, "IPv6 Prefix Options for Dynamic Host Configuration Protocol (DHCP) version 6", RFC3633, December 2003. [RFC3775] Johnson, D., Perkins, C., and J. Arkko, "Mobility Support in IPv6", RFC3775, June 2004. [RFC4007] Deering, S., Haberman, B., Jinmei, T., Nordmark, E., and B. Zill, "IPv6 Scoped Address Architecture", RFC4007, March 2005. [RFC4191] Draves, R. and D. Thaler, "Default Router Preferences and More-Specific Routes", RFC4191, November 2005. [RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless Address Autoconfiguration", RFC4862, September 2007. [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC5226, May 2008. [RFC6724] Thaler, D., Draves, R., Matsumoto, A., and T. Chown, "Default Address Selection for Internet Protocol Version 6 (IPv6)", RFC6724, September 2012. Le Pape, et al. Expires January 16, 2014 [Page 11] Internet-Draft IPv6 Prefix Meta-data and Usage July 2013 Appendix A. Prototype notes A.1. Homenet prototype implementation notes This section provides the implementation details of a prototype video application on Android for a Galaxy Nexus device developed for the home network. A.1.1. Video provider service A possible use of this prefix coloring is a video service, which requires the network to guarantee a minimal throughput for streaming video. A prefix could be colored by the ISP to indicate that traffic sourced from that prefix will have a certain service level. Using prefix coloring avoids having to set up a separate network for this usage, or implement QoS traffic identification, classification and marking. An agreement could then be established between the video service provider and the ISP, telling the video provider to use the specific color when streaming video. In the following example, the color 50 was used. A.1.2. Prefix Color delegation The CPE routers request prefixes using prefix delegation [RFC3633] with the OPTION_PREFIX_CLASS option [I-D.bhandari-dhc-class-based-prefix]. This informs the upstream provider that the CPE supports colored prefixes. If an ISP does not support this option, it will be ignored, and the CPE will only get colorless prefixes. Otherwise, the ISP returns multiple prefixes each with their associated color. A color of '0' is identical to an uncolored prefix, for application compatibility, as explained in Appendix A.1.5. If the CPE does not support colored prefixes, the ISP could decide to delegate a normally colored prefix as an colorless one, though this means hosts will use this prefix according to the default source address selection algorithm, and will not associate any meaning to it. Le Pape, et al. Expires January 16, 2014 [Page 12] Internet-Draft IPv6 Prefix Meta-data and Usage July 2013 Once the CPE receives those prefixes, it distributes them, along with their color, using OSPF and the homenet protocols. [I-D.troan-homenet-sadr] defines "Source Address Dependent Routing" (SADR) which ensures that packets are routed based on their destination as well as source address. SADR is necessary to ensure that a multihomed network using provider aggregatable addresses will send the packet out the right path to avoid violating the provider's ingress filtering.To ensure that those prefixes keep their meaning, Source Address Dependent Routing [I-D.troan-homenet-sadr] is implemented and used. Colored addresses are advertised to hosts through DHCPv6, to associate the color to the address. Colorless addresses may be distributed through DHCPv6 or through Router Advertisements. Hosts supporting colored prefixes include the OPTION_PREFIX_CLASS, and receive colored addresses. For legacy hosts, who do not include this option, there are two possibilities : o Those hosts can receive all available prefixes, including colored ones, as uncolored. This allows a legacy host in a fully colored homenet to still have access to IPv6. However, those hosts may use prefixes for the wrong purposes. o Those hosts can receive only colorless prefixes. This ensures that a prefix will not be used for the wrong purpose. However, hosts in a fully colored environment will not get access to IPv6. This can however be what the ISP originally intended, for example if the ISP does not provide access to the IPv6 Internet, but uses IPv6 for wall gardened services, which their specific devices know how to use. A.1.3. Configuring Applications Applications supporting multiple prefixes obtain the prefixes from the host kernel, along with their color. The policy can be contained either in a local database (e.g. If the application is intended only for use within a specific network, linked to a particular ISP), or be contained on a distant server. For applications that do not contain a local database, an HTTP POST request is sent to a predefined server using a colorless prefix. This server, through means that are out of the scope of this document, selects the most appropriate color for the URIs used by the application. It then returns an XML document containing the mapping between the URIs and the colors. URIs in this document MAY use wild cards. Le Pape, et al. Expires January 16, 2014 [Page 13] Internet-Draft IPv6 Prefix Meta-data and Usage July 2013 When the application is started, it sends the available prefixes and their color to the video provider server which answers with a wild card URI videos.example.com associated to color 50. In this example application it receives: <?xml version="1.0" encoding="UTF-8"?> <mappings> <mapping> <URI>*://audio.example.com/*</URI> <color>40</color> </mapping> <mapping> <URI>rtsp://video.example.com/*</URI> <color>50</color> </mapping> </mappings> The server is expected to know the application, and thus to list all URIs that could be of use to the application. The application will not ask the server if it has to contact an address not in the list and will use the colorless prefix. This avoids an additional delay when trying to contact an unlisted URI. Example: While the application is browsing the video list, it is using www.example.com, and thus the colorless prefix. However as soon as a video is chosen, it starts streaming from videos.example.com, and asks to connect to host videos.example.com with color 50, indicating that it wishes to use the colored prefix. A.1.4. Android DHCPv6 Considering that this prototype is being implemented on Android, the first step is to get a running DHCPv6 client on Android, with support for the OPTION_PREFIX_CLASS option. The odhcp6c client, which already supports OPTION_PREFIX_CLASS, has been ported to Android, and is set to run in parallel to the dhcpcd client used for DHCP. The success of any of the two clients results in the success of the WiFi connection, so as to support IPv6 only networks. This client configures the IPv6 addresses using calls to IP address, which is modified to support the addition of a class option to set the prefix color. A.1.5. Application to network stack communication Le Pape, et al. Expires January 16, 2014 [Page 14] Internet-Draft IPv6 Prefix Meta-data and Usage July 2013 Once an application has received the appropriate color for its use, in this prototype it specifies the prefix it wishes to use by using the IPv6 address scope [RFC4007]. When resolving this address, the standard library then adds this information in the address information it returns, using the scope field, allowing the kernel to appropriately select the source IP when connecting. For this reason, a color of 0 is identical to an colorless prefix. In the example, when downloading from video.example.com, the application would request a connection to video.example.com%50. This allows the user to override the application's default simply by specifying a color in the scope of the URI it is trying to access, and requires little to no change in applications to support it. Applications that allow scope ids do not need to be modified in order to allow the user to use multiple prefixes (though it is then up to the user to select its color). A web browser that allows scope id would allow the user to add a color to the URI, without requiring any modifications. A.1.6. Android kernel To reduce the amount of modifications needed by the applications to support this prefix coloring, we need to avoid having to bind to the address in the colored prefix before initiating the connection. The kernel is expected to choose the correct source address when a colored destination is used. This implies storing the color in the kernel, along with the address, which is done using a new attribute IFA_color to the netlink message RTM_NEWADDR, used by ip address. Setting a colored prefix using ioctls is not supported. Since colors are put in the scope id part of the destination address, we continue to use the scope element of the sockaddr_in6 structure to store the color when sending connect messages to the kernel. The scope is only used when considering local addresses, so we interpret the presence of a scope on a non link-local address to be a color. Colors can not be assigned to link-local addresses, but since they are on the same link, source address shouldn't impact how the network treats packets. When selecting the source address, we then discard all addresses which do not have the correct color. Le Pape, et al. Expires January 16, 2014 [Page 15] Internet-Draft IPv6 Prefix Meta-data and Usage July 2013 A.1.7. Limitations of the current prototype It does not implement any duplicate color detection. Colors are considered to be unique within the home, and to correspond to the original color provided by the ISP. This is compatible with Global scoping. No changes would be required to the host in order to support Local scoping with fuzzy matching, but OSPF would need to detect collisions, and the server would need to recalculate the original color before making a decision. In this implementation, hosts that do not support colors do not receive colored prefixes. Authors' Addresses Maico Le Pape Cisco Systems Paris FR Email: email@example.com Shwetha Bhandari Cisco Systems Cessna Business Park, Sarjapura Marathalli Outer Ring Road Bangalore, KARNATAKA 560 087 India Email: firstname.lastname@example.org Ian Farrer Deutsche Telekom AG GTN-FM4, Landgrabenweg 151 Bonn 53227 Germany Email: email@example.com Le Pape, et al. Expires January 16, 2014 [Page 16]