Mercurial > ecos
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 |
| 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->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 “Networking”, |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
91 “OpenBSD TCP/IP Stack” |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
92 and “Common Ethernet Support” |
|
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 “net” <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->Templates</EMPHASIS> “Hardware” 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 “by hand”, 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 “Build |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
116 networking tests (demo programs)” within “Networking |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
117 support build options”.</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’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’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’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 *in, fd_set *out, fd_set *ex, |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
198 struct timeval *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 *in, fd_set *out, fd_set *ex, |
|
e0c0827131d1
Merge from eCos master repository on 2002-05-20-20:11:54-BST
jlarmour
parents:
diff
changeset
|
204 struct timeval *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> |
