1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<HTML>
3<HEAD>
4<META http-equiv="Content-Type" content="text/html; charset=windows-1252">
5<META http-equiv="Content-Style-Type" content="text/css">
6<TITLE>SO API Introduction</TITLE>
7<LINK rel="stylesheet" type="text/css" href="../CSS/rex.css">
8</HEAD>
9<BODY>
10<H1>SO API Introduction</H1>
11
12<H2>Introduction</H2>
13<P>
14	The SO Library is used to access the Internet from the Wii system. APIs to control connection to and disconnection from the Internet are provided, but no functionality is offered to control communications once connected. To do this, a higher-level library should be used.
15</P>
16<P>
17	The SO Library assumes the use of LAN (Ethernet) and Internet protocol 4 (IPv4) network environments. Environments using point-to-point protocol (PPP), PPP over Ethernet (PPPoE) and Internet protocol 6 (IPv6) are not currently supported.<br>In addition, the SO Library accesses LANs and the Internet using the Wii internal Wi-Fi module or the external Wii LAN adapter (Ethernet). Multiple network interfaces cannot be used simultaneously. Please read the NCD Library descriptions for more on choosing a network interface.
18</P>
19<P>
20	To use the APIs included in the SO library, link <CODE>so[D].a</CODE>.<br>Place the following header file in an include statement in the program's source code:
21<PRE><CODE>#include &lt;revolution/so.h&gt;</CODE></PRE>
22</P>
23
24<H2>Overview</H2>
25<H3>Reserved Prefixes</H3>
26<P>
27	The following prefixes are reserved in the SO Library.<br>They include prefixes reserved for future functionality expansion.
28</P>
29<P>
30	<TABLE border="1" cellpadding="3" cellspacing="0.1">
31		<TR align="center">
32			<TD bgcolor="#e8e8e8" width="30%"><strong>Prefix</strong></TD>
33			<TD bgcolor="#e8e8e8" width="70%"><strong>Description</strong></TD>
34		</TR>
35		<TR>
36			<TH>ARP</TH>
37			<TD>Address Resolution Protocol</TD>
38		</TR>
39		<TR>
40			<TH>DHCP</TH>
41			<TD>Dynamic Host Configuration Protocol</TD>
42		</TR>
43		<TR>
44			<TH>DNS</TH>
45			<TD>Domain Name System</TD>
46		</TR>
47		<TR>
48			<TH>ICMP</TH>
49			<TD>Internet Control Message Protocol</TD>
50		</TR>
51		<TR>
52			<TH>IF</TH>
53			<TD>InterFace</TD>
54		</TR>
55		<TR>
56			<TH>IGMP</TH>
57			<TD>Internet Group Management Protocol</TD>
58		</TR>
59		<TR>
60			<TH>IP</TH>
61			<TD>Internet Protocol</TD>
62		</TR>
63		<TR>
64			<TH>IP6</TH>
65			<TD>Internet Protocol version 6</TD>
66		</TR>
67		<TR>
68			<TH>MLD</TH>
69			<TD>Multicast Listener Discovery ( IPv6 )</TD>
70		</TR>
71		<TR>
72			<TH>ND</TH>
73			<TD>Neighbor Discovery ( IPv6 )</TD>
74		</TR>
75		<TR>
76			<TH>PPPOE</TH>
77			<TD>Point-to-Point Protocol Over Ethernet</TD>
78		</TR>
79		<TR>
80			<TH>SO</TH>
81			<TD>SOcket</TD>
82		</TR>
83		<TR>
84			<TH>TCP</TH>
85			<TD>Transmission Control Protocol</TD>
86		</TR>
87		<TR>
88			<TH>UDP</TH>
89			<TD>User Datagram Protocol</TD>
90		</TR>
91	</TABLE>
92</P>
93<H3>State Transition Diagram</H3>
94<P>
95	The SO Library generally includes status monitoring for communication services performed by the system. Internal state transitions are as shown below:<br>
96</P>
97<P>
98	<img src="StateMachine.jpg">
99</P>
100
101<H3>Caution</H3>
102<P>
103	<UL>
104		<li style="padding-bottom:6px">Because the SO Library communicates with the firmware, <strong><font color=red>care is needed in the combination of the version of the linked so[D].a and that of the firmware</font></strong> within the application.<br>
105		<li style="padding-bottom:6px">Within the hardware, <strong><font color=red>a working buffer within MEM2 is needed</font></strong> for the communication between the SO Library and the firmware. See the description of the <CODE><a href="SOLibraryConfig.html#note">SOLibraryConfig</a></CODE> structure for more on the working buffer.
106		<li style="padding-bottom:6px">Functions such as <CODE><A href="SOStartup.html">SOStartup[Ex]</A></CODE> and <CODE><A href="SOCleanup.html">SOCleanup</A></CODE> may block for long periods of time before they finish processing. Consequently, we recommend that you prepare a thread for these functions separate from other processing such as rendering.
107	</UL>
108</P>
109
110
111<H2>Revision History</H2>
112<P>
1132007/08/06 Added Caution.<br> 2007/03/01 Corrected errors.<br>2007/01/31 Initial version.<br>
114</P>
115
116<hr><p>CONFIDENTIAL</p></body>
117</HTML>
118