e, if the application implements or uses a protocol over the Internet, which exchanges literal IP addresses. In addition to internal data structures, applications that represent or expect as input literal IP addresses in the User Interface (UI), have to make sure it is actually possible to show and to take as input also literal IPv6 addresses. 5.6.2 Phone Vendor's Transition Plan The IPv6 capability of a mobile phone or similar device is determined by a multitude of factors. We have already described the application layer. In addition, the operating system and the middleware, which create the software platform for the device, have to support IPv6. Almost all modern operating systems used in the modern smartphones support IPv6. However, theoretical IPv6 support may not be adequate in practice. The IPv6 has to be compiled in and turned on as well. In addition, the middleware in the software platform has to be able to support IPv6. The operating system support is not very useful, if the applications cannot actually use IPv6. In addition to software, the hardware also has to be capable of supporting IPv6. The main component is the wireless modem - the part of the hardware and firmware that implements the 3GPP cellular technology, and actually connect a device to the network. As a sign of good progress, the support for IPv6 in the cellular chipsets has improved greatly in the last couple of years. Thus, in the phone the whole stack of software and hardware has to be prepared for IPv6. A couple of years ago, practically only one phone manufacturer supported IPv6 in their phones. At that time the whole stack from the software platform to the hardware of the wireless modem was under the control of that company, and hence it was easier to have IPv6 support early on. Today, the list of equipment and vendors supporting IPv6 has grown greatly. However, IPv6 is not necessarily a feature that phone vendors advertise, and hence it may be difficult to see which models support IPv6, and which do not. 5.6.3 Network Operator's Tran