annotate packages/net/tcpip/current/doc/openbsd.sgml @ 2729:74dbf4c3f2e1 after-copyright-change-20090129

Update all copyright banners to reflect FSF ownership; fix and improve licence text.
author jlarmour
date Thu, 29 Jan 2009 17:47:46 +0000
parents ea17952ce26b
children a98ace8abb52
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
333
26852e80cb37 Update documentation licenses to remove restriction on redistributing
bartv
parents: 208
diff changeset
1 <!-- {{{ Banner -->
26852e80cb37 Update documentation licenses to remove restriction on redistributing
bartv
parents: 208
diff changeset
2
26852e80cb37 Update documentation licenses to remove restriction on redistributing
bartv
parents: 208
diff changeset
3 <!-- =============================================================== -->
26852e80cb37 Update documentation licenses to remove restriction on redistributing
bartv
parents: 208
diff changeset
4 <!-- -->
26852e80cb37 Update documentation licenses to remove restriction on redistributing
bartv
parents: 208
diff changeset
5 <!-- openbsd.sgml -->
26852e80cb37 Update documentation licenses to remove restriction on redistributing
bartv
parents: 208
diff changeset
6 <!-- -->
26852e80cb37 Update documentation licenses to remove restriction on redistributing
bartv
parents: 208
diff changeset
7 <!-- eCos TCP/IP Stacks -->
26852e80cb37 Update documentation licenses to remove restriction on redistributing
bartv
parents: 208
diff changeset
8 <!-- -->
26852e80cb37 Update documentation licenses to remove restriction on redistributing
bartv
parents: 208
diff changeset
9 <!-- =============================================================== -->
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1408
diff changeset
10 <!-- ####ECOSDOCCOPYRIGHTBEGIN#### -->
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1408
diff changeset
11 <!-- =============================================================== -->
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1408
diff changeset
12 <!-- Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc. -->
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1408
diff changeset
13 <!-- This material may be distributed only subject to the terms -->
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1408
diff changeset
14 <!-- and conditions set forth in the Open Publication License, v1.0 -->
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1408
diff changeset
15 <!-- or later (the latest version is presently available at -->
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1408
diff changeset
16 <!-- http://www.opencontent.org/openpub/) -->
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1408
diff changeset
17 <!-- Distribution of the work or derivative of the work in any -->
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1408
diff changeset
18 <!-- standard (paper) book form is prohibited unless prior -->
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1408
diff changeset
19 <!-- permission obtained from the copyright holder -->
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1408
diff changeset
20 <!-- =============================================================== -->
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 1408
diff changeset
21 <!-- ####ECOSDOCCOPYRIGHTEND#### -->
333
26852e80cb37 Update documentation licenses to remove restriction on redistributing
bartv
parents: 208
diff changeset
22 <!-- =============================================================== -->
26852e80cb37 Update documentation licenses to remove restriction on redistributing
bartv
parents: 208
diff changeset
23 <!-- #####DESCRIPTIONBEGIN#### -->
26852e80cb37 Update documentation licenses to remove restriction on redistributing
bartv
parents: 208
diff changeset
24 <!-- -->
26852e80cb37 Update documentation licenses to remove restriction on redistributing
bartv
parents: 208
diff changeset
25 <!-- ####DESCRIPTIONEND#### -->
26852e80cb37 Update documentation licenses to remove restriction on redistributing
bartv
parents: 208
diff changeset
26 <!-- =============================================================== -->
26852e80cb37 Update documentation licenses to remove restriction on redistributing
bartv
parents: 208
diff changeset
27
26852e80cb37 Update documentation licenses to remove restriction on redistributing
bartv
parents: 208
diff changeset
28 <!-- }}} -->
26852e80cb37 Update documentation licenses to remove restriction on redistributing
bartv
parents: 208
diff changeset
29
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
30 <PART id="tcpip-openbsd">
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
31 <TITLE>OpenBSD TCP/IP Stack port for eCos</TITLE>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
32 <PARTINTRO>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
33 <PARA> <productname>TCP/IP Networking for eCos</productname>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
34 now provides a complete
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
35 TCP/IP networking stack, which is derived from a recent
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
36 stable release of OpenBSD. The networking support is
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
37 fully featured and well tested within the eCos environment.
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
38 </PARA>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
39 </PARTINTRO>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
40
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
41 <CHAPTER id="tcpip-openbsd-networking-stack-features">
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
42 <TITLE>Networking Stack Features</TITLE>
1408
ea17952ce26b * src/sys/net/bridgestp.c: Code for Spanning Tree Protocol (STP).
asl
parents: 333
diff changeset
43 <SECT1 id="tcpip-openbsd-tcpip-features">
ea17952ce26b * src/sys/net/bridgestp.c: Code for Spanning Tree Protocol (STP).
asl
parents: 333
diff changeset
44 <TITLE>Introduction</TITLE>
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
45 <PARA>Since this networking package is based on BSD code, it is
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
46 very complete and robust. The eCos implementation includes support
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
47 for the following protocols: </PARA>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
48 <itemizedlist>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
49 <LISTITEM><PARA>IPv4</para></listitem>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
50 <LISTITEM><PARA>UDP</para></listitem>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
51 <LISTITEM><PARA>TCP</para></listitem>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
52 <LISTITEM><PARA>ICMP</para></listitem>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
53 <LISTITEM><PARA>raw packet interface</para></listitem>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
54 </itemizedlist>
1408
ea17952ce26b * src/sys/net/bridgestp.c: Code for Spanning Tree Protocol (STP).
asl
parents: 333
diff changeset
55 <PARA>Along with support for the above mentioned protocols, the OpenBSD
ea17952ce26b * src/sys/net/bridgestp.c: Code for Spanning Tree Protocol (STP).
asl
parents: 333
diff changeset
56 stack also supports ethernet bridging.
ea17952ce26b * src/sys/net/bridgestp.c: Code for Spanning Tree Protocol (STP).
asl
parents: 333
diff changeset
57 </PARA>
ea17952ce26b * src/sys/net/bridgestp.c: Code for Spanning Tree Protocol (STP).
asl
parents: 333
diff changeset
58 <PARA>The following additional features are also present in the package,
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
59 but are not supported:</PARA>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
60 <itemizedlist>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
61 <LISTITEM><PARA>Berkeley Packet Filter </PARA></LISTITEM>
1408
ea17952ce26b * src/sys/net/bridgestp.c: Code for Spanning Tree Protocol (STP).
asl
parents: 333
diff changeset
62 <LISTITEM><PARA>Multi-cast and uni-cast support, including multi-cast
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
63 routing </PARA></LISTITEM>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
64 <LISTITEM><PARA>IPv6 </PARA></LISTITEM>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
65 </itemizedlist>
1408
ea17952ce26b * src/sys/net/bridgestp.c: Code for Spanning Tree Protocol (STP).
asl
parents: 333
diff changeset
66 </SECT1>
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
67 </CHAPTER>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
68 <CHAPTER id="tcpip-openbsd-stack-port">
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
69 <TITLE>OpenBSD TCP/IP stack port</TITLE>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
70 <PARA>This document describes how to get started with the OpenBSD
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
71 TCP/IP network stack. </PARA>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
72 <SECT1 id="tcpip-openbsd-tcpip-targets">
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
73 <TITLE>Targets</TITLE>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
74 <PARA>A number of ethernet devices may be supported. The default configuration
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
75 supports two instances of the interface by default,
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
76 and you will need to write your own driver instantiation code,
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
77 and supplemental startup and initialization code,
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
78 if you should add additional ones.</PARA>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
79 <PARA>The target for your board will normally be supplied with an
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
80 ethernet driver, in which case including the network stack and
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
81 generic ethernet driver package to your build will automatically
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
82 enable usage of the ethernet device driver.
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
83 If your target is not supplied with an ethernet
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
84 driver, you will need to use loopback (see
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
85 <xref linkend="net-common-loopback-tests">).</PARA>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
86 </SECT1>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
87 <SECT1 id="tcpip-openbsd-building-the-network-stack">
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
88 <TITLE><!--<conditionaltext>-->Building the Network Stack</TITLE>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
89 <PARA>Using the <EMPHASIS>Build-&gt;Packages</EMPHASIS> dialog,
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
90 add the packages &ldquo;Networking&rdquo;,
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
91 &ldquo;OpenBSD TCP/IP Stack&rdquo;
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
92 and &ldquo;Common Ethernet Support&rdquo;
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
93 to your configuration. Their package names
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
94 are CYGPKG_NET, CYGPKG_NET_OPENBSD_STACK and CYGPKG_NET_ETH_DRIVERS
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
95 respectively.</PARA>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
96 <para>A short-cut way to do this is by
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
97 using the &ldquo;net&rdquo; <emphasis>template</emphasis>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
98 if it is available for your platform.</para>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
99 <PARA>The platform-specific ethernet device driver for your platform
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
100 will be added as part of the target selection (in the
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
101 <EMPHASIS>Build-&gt;Templates</EMPHASIS> &ldquo;Hardware&rdquo; item),
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
102 along with the
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
103 PCI I/O subsystem (if relevent) and the appropriate serial device driver.
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
104 </para><para>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
105 For example, the PowerPC MBX target selection adds the package
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
106 PKG_NET_QUICC_ETH_DRIVERS,
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
107 and the Cirrus Logic EDB7xxx target selection adds the package
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
108 CYGPKG_NET_EDB7XXX_ETH_DRIVERS.
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
109 After this, eCos and its tests can be built exactly as usual.</PARA>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
110 <NOTE>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
111 <PARA>By default, most of the network tests are not built. This
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
112 is because some of them require manual intervention, i.e. they are
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
113 to be run &ldquo;by hand&rdquo;, and are not suitable for
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
114 automated testing. To build the full set of network tests, set
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
115 the configuration option CYGPKG_NET_BUILD_TESTS &ldquo;Build
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
116 networking tests (demo programs)&rdquo; within &ldquo;Networking
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
117 support build options&rdquo;.</PARA>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
118 </NOTE>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
119 </SECT1>
1408
ea17952ce26b * src/sys/net/bridgestp.c: Code for Spanning Tree Protocol (STP).
asl
parents: 333
diff changeset
120 <SECT1 id="tcpip-openbsd-building-the-bridge-code">
ea17952ce26b * src/sys/net/bridgestp.c: Code for Spanning Tree Protocol (STP).
asl
parents: 333
diff changeset
121 <TITLE>Inclusion of bridge code</TITLE>
ea17952ce26b * src/sys/net/bridgestp.c: Code for Spanning Tree Protocol (STP).
asl
parents: 333
diff changeset
122
ea17952ce26b * src/sys/net/bridgestp.c: Code for Spanning Tree Protocol (STP).
asl
parents: 333
diff changeset
123 <PARA>The OpenBSD stack does not by default result in the inclusion of
ea17952ce26b * src/sys/net/bridgestp.c: Code for Spanning Tree Protocol (STP).
asl
parents: 333
diff changeset
124 the bridge code. To include bridging functionality the CDL option
ea17952ce26b * src/sys/net/bridgestp.c: Code for Spanning Tree Protocol (STP).
asl
parents: 333
diff changeset
125 CYGPKG_NET_BRIDGE must be enable . It is also possible to enable more
ea17952ce26b * src/sys/net/bridgestp.c: Code for Spanning Tree Protocol (STP).
asl
parents: 333
diff changeset
126 than one concurrent bridge. The number of bridges active in a device
ea17952ce26b * src/sys/net/bridgestp.c: Code for Spanning Tree Protocol (STP).
asl
parents: 333
diff changeset
127 is configured by the CDL option CYGNUM_NET_BRIDGES, which has a
ea17952ce26b * src/sys/net/bridgestp.c: Code for Spanning Tree Protocol (STP).
asl
parents: 333
diff changeset
128 default value of 1.</PARA>
ea17952ce26b * src/sys/net/bridgestp.c: Code for Spanning Tree Protocol (STP).
asl
parents: 333
diff changeset
129
ea17952ce26b * src/sys/net/bridgestp.c: Code for Spanning Tree Protocol (STP).
asl
parents: 333
diff changeset
130 <PARA>The default behavior of a bridge is to operate without the
ea17952ce26b * src/sys/net/bridgestp.c: Code for Spanning Tree Protocol (STP).
asl
parents: 333
diff changeset
131 spanning tree protocol. When devices are operated in this default mode
ea17952ce26b * src/sys/net/bridgestp.c: Code for Spanning Tree Protocol (STP).
asl
parents: 333
diff changeset
132 it must be ensured the network topology is loop-free. Any loops will
ea17952ce26b * src/sys/net/bridgestp.c: Code for Spanning Tree Protocol (STP).
asl
parents: 333
diff changeset
133 cause broadcast storms and general mayhem on the network. Including
ea17952ce26b * src/sys/net/bridgestp.c: Code for Spanning Tree Protocol (STP).
asl
parents: 333
diff changeset
134 spanning tree code during the build process will allow the bridge to
ea17952ce26b * src/sys/net/bridgestp.c: Code for Spanning Tree Protocol (STP).
asl
parents: 333
diff changeset
135 communicate with other bridges. They can then detect such loops and by
ea17952ce26b * src/sys/net/bridgestp.c: Code for Spanning Tree Protocol (STP).
asl
parents: 333
diff changeset
136 disabling selected interfaces break the loop. To enable spanning tree enable
ea17952ce26b * src/sys/net/bridgestp.c: Code for Spanning Tree Protocol (STP).
asl
parents: 333
diff changeset
137 the CDL option CYGPKG_NET_BRIDGE_STP_CODE.</PARA>
ea17952ce26b * src/sys/net/bridgestp.c: Code for Spanning Tree Protocol (STP).
asl
parents: 333
diff changeset
138 </SECT1>
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
139 </CHAPTER>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
140 <CHAPTER id="tcpip-openbsd-tcpip-apis">
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
141 <TITLE>APIs</TITLE>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
142 <SECT1 id="tcpip-openbsd-standard-networking-api">
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
143 <TITLE>Standard networking</TITLE>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
144 <PARA>The APIs for the standard networking calls such as
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
145 <FUNCTION>socket()</FUNCTION>, <FUNCTION>recv()</FUNCTION> and so on, are
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
146 in header files relative to the top-level
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
147 include directory, within the standard subdirectories as conventionally
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
148 found in <FILENAME>/usr/include</FILENAME>. For example:
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
149 <PROGRAMLISTING>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
150 install/include/arpa/tftp.h
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
151 install/include/netinet/tcpip.h
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
152 install/include/sys/socket.h
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
153 install/include/sys/socketvar.h
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
154 install/include/sys/sockio.h
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
155 </PROGRAMLISTING>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
156 </PARA><PARA>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
157 <filename>network.h</filename> at the top level
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
158 defines various extensions, for example the API
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
159 <function>init_all_network_interfaces(void)</function>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
160 described
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
161 above. We advise including <filename>network.h</filename> whether
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
162 you use these features or not.</PARA>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
163 <PARA>In general, using the networking code may require definition
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
164 of two symbols: _KERNEL and __ECOS. _KERNEL
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
165 is not normally required; __ECOS is normally required.
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
166 So add this to your compile lines for files which use the network
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
167 stack:</PARA>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
168 <PROGRAMLISTING> -D__ECOS</PROGRAMLISTING>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
169 <PARA>To expand a little, it&rsquo;s like this because this is
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
170 a port of a standard distribution external to Red Hat. One goal
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
171 is to perturb the sources as little as possible, so that upgrading
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
172 and maintenance from the external distribution is simplified. The __ECOS
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
173 symbol marks out Red Hat&rsquo;s additions in making the port.
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
174 The _KERNEL symbol is traditional UNIX practice: it distinguishes
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
175 a compilation which is to be linked into the kernel from one which
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
176 is part of an application. eCos applications are fully linked,
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
177 so this distinction does not apply. _KERNEL can however
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
178 be used to control the visibility of the internals of the stack,
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
179 so depending on what features your application uses, it may or may
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
180 not be necessary.</PARA>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
181 <PARA>The include file <filename>network.h</filename> undefines _KERNEL
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
182 unconditionally, to provide an application-like compilation environment.
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
183 If you were writing code which, for example,
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
184 enumerates the stack&rsquo;s internal
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
185 structures, that is a kernel-like compilation environment, so you
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
186 would need to define _KERNEL (in addition to __ECOS)
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
187 and avoid including <filename>network.h</filename>.</PARA>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
188 </SECT1>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
189 <SECT1 id="tcpip-openbsd-enhanced-select">
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
190 <TITLE>Enhanced Select()</TITLE>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
191 <PARA>The network stack supports an extension to the standard select
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
192 semantics which allows all threads that are waiting to be restarted
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
193 even if the select conditions are not satisfied.</PARA>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
194 <PARA>The standard select() API: </PARA>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
195 <PROGRAMLISTING>int
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
196 <function>select</function>(int nfd,
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
197 fd_set &ast;in, fd_set &ast;out, fd_set &ast;ex,
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
198 struct timeval &ast;tv); </PROGRAMLISTING>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
199 <PARA>does not support the restart.</PARA>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
200 <PARA>The additional API: </PARA>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
201 <PROGRAMLISTING>int
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
202 <function>cyg_select_with_abort</function>(int nfd,
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
203 fd_set &ast;in, fd_set &ast;out, fd_set &ast;ex,
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
204 struct timeval &ast;tv)
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
205 </PROGRAMLISTING>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
206 <PARA>behaves exactly as select() with the additional feature that
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
207 a call to</PARA>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
208 <PROGRAMLISTING>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
209 void <function>cyg_select_abort</function>(void)
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
210 </PROGRAMLISTING>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
211 <PARA>will cause all threads waiting in any
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
212 <function>cyg_select_with_abort()</function> call
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
213 to cease waiting and continue execution.</PARA>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
214 </SECT1>
1408
ea17952ce26b * src/sys/net/bridgestp.c: Code for Spanning Tree Protocol (STP).
asl
parents: 333
diff changeset
215 &net-tcpip-openbsd-manpages-netintro-sgml
ea17952ce26b * src/sys/net/bridgestp.c: Code for Spanning Tree Protocol (STP).
asl
parents: 333
diff changeset
216 &net-tcpip-openbsd-manpages-bridge-sgml
ea17952ce26b * src/sys/net/bridgestp.c: Code for Spanning Tree Protocol (STP).
asl
parents: 333
diff changeset
217 &net-tcpip-openbsd-manpages-stp-sgml
208
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
218 </CHAPTER>
e0c0827131d1 Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff changeset
219 </PART>