1 # ====================================================================
5 # Networking configuration data
7 # ====================================================================
8 #####ECOSPDCOPYRIGHTBEGIN####
10 # Copyright (C) 2000, 2001, 2002 Red Hat, Inc.
11 # All Rights Reserved.
13 # Permission is granted to use, copy, modify and redistribute this
16 #####ECOSPDCOPYRIGHTEND####
17 # ====================================================================
18 ######DESCRIPTIONBEGIN####
21 # Original data: gthomas
25 #####DESCRIPTIONEND####
27 # ====================================================================
29 cdl_package CYGPKG_NET_FREEBSD_STACK {
30 display "FreeBSD networking stack"
32 doc ref/tcpip-freebsd.html
35 requires CYGPKG_ISOINFRA
36 requires CYGINT_ISO_C_TIME_TYPES
37 requires CYGINT_ISO_STRERROR
38 requires CYGINT_ISO_ERRNO
39 requires CYGINT_ISO_ERRNO_CODES
40 requires CYGINT_ISO_MALLOC
41 requires CYGINT_ISO_STRING_BSD_FUNCS
42 requires CYGPKG_IO_FILEIO
43 description "Basic networking support, including TCP/IP."
45 cdl_interface CYGINT_NET_IPSEC_BSD_CRYPTO {
46 display "Implementation of BSD CRYPTO functions"
48 In order to avoid potential export problems of crypto
49 functions, they are distributed in a separate package which
50 must implement this interface"
53 implements CYGPKG_NET_STACK
54 implements CYGPKG_NET_STACK_INET
55 implements CYGPKG_NET_STACK_INET6
57 # Note: separating the stack implementation from the common support leads
58 # to some rather incestious config file relationships.
60 puts $::cdl_system_header "/***** Networking stack proc output start *****/"
61 puts $::cdl_header "#include <pkgconf/net.h>"
62 puts $::cdl_system_header "#define CYGDAT_NET_STACK_CFG <pkgconf/net_freebsd_stack.h>"
63 puts $::cdl_system_header "/***** Networking stack proc output end *****/"
67 # Export our types to <sys/types.h>
68 implements CYGINT_ISO_BSDTYPES
69 requires { CYGBLD_ISO_BSDTYPES_HEADER == "<sys/bsdtypes.h>" }
71 # These files are unique to eCos
72 compile ecos/support.c \
76 compile -library=libextras.a sys/kern/sockio.c
78 # These files were derived from FreeBSD and carry their copyright
79 compile sys/net/if.c \
82 sys/net/raw_usrreq.c \
85 sys/net/if_ethersubr.c \
88 sys/netinet/raw_ip.c \
90 sys/netinet/in_cksum.c \
91 sys/netinet/in_pcb.c \
92 sys/netinet/in_proto.c \
93 sys/netinet/in_rmx.c \
94 sys/netinet/ip_encap.c \
96 sys/netinet/ip_icmp.c \
97 sys/netinet/ip_flow.c \
98 sys/netinet/ip_input.c \
99 sys/netinet/ip_output.c \
100 sys/netinet/ip_mroute.c \
101 sys/netinet/if_ether.c \
102 sys/netinet/udp_usrreq.c \
103 sys/netinet/tcp_input.c \
104 sys/netinet/tcp_output.c \
105 sys/netinet/tcp_debug.c \
106 sys/netinet/tcp_usrreq.c \
107 sys/netinet/tcp_timer.c \
108 sys/netinet/tcp_subr.c \
110 sys/kern/uipc_domain.c \
111 sys/kern/uipc_socket.c \
112 sys/kern/uipc_socket2.c \
113 sys/kern/uipc_mbuf.c \
114 sys/kern/uipc_mbuf2.c \
115 sys/kern/uipc_accf.c \
118 cdl_component CYGPKG_NET_FREEBSD_INET {
119 display "INET support"
120 active_if CYGPKG_NET_INET
125 This option enables support for INET (IPv4) network processing."
127 cdl_option CYGPKG_NET_FREEBSD_INET6 {
128 display "IPv6 support"
129 active_if CYGPKG_NET_INET6
133 This option enables support for new IPv6."
134 # These files were derived from FreeBSD and carry their copyright
136 sys/netinet6/dest6.c \
137 sys/netinet6/frag6.c \
138 sys/netinet6/icmp6.c \
140 sys/netinet6/in6_cksum.c \
141 sys/netinet6/in6_ifattach.c \
142 sys/netinet6/in6_pcb.c \
143 sys/netinet6/in6_proto.c \
144 sys/netinet6/in6_rmx.c \
145 sys/netinet6/in6_src.c \
146 sys/netinet6/ip6_forward.c \
147 sys/netinet6/ip6_input.c \
148 sys/netinet6/ip6_mroute.c \
149 sys/netinet6/ip6_output.c \
150 sys/netinet6/mld6.c \
152 sys/netinet6/nd6_nbr.c \
153 sys/netinet6/nd6_rtr.c \
154 sys/netinet6/raw_ip6.c \
155 sys/netinet6/route6.c \
156 sys/netinet6/scope6.c \
157 sys/netinet6/udp6_output.c \
158 sys/netinet6/udp6_usrreq.c \
160 ## Only if firewall enabled
161 ## sys/netinet6/ip6_fw.c \
164 cdl_option CYGPKG_NET_FREEBSD_IPSEC {
165 display "IPSEC support"
166 requires CYGPKG_COMPRESS_ZLIB
167 implements CYGPKG_NET_STACK_IPSEC
170 default_value CYGPKG_NET_IPSEC_BSD_CRYPTO
173 This option enables support for IPSEC."
174 # These files were derived from FreeBSD/KAME and carry their copyright
177 sys/netkey/key_debug.c \
179 sys/netkey/keysock.c \
180 sys/netinet6/ipsec.c \
181 sys/netinet6/ah_core.c \
182 sys/netinet6/ah_input.c \
183 sys/netinet6/ah_output.c \
184 sys/netinet6/ipcomp_core.c \
185 sys/netinet6/esp_core.c \
186 sys/netinet6/esp_output.c \
187 sys/netinet6/esp_input.c \
188 sys/netinet6/esp_rijndael.c \
189 sys/netinet6/esp_twofish.c \
190 sys/netinet6/ipcomp_core.c \
191 sys/netinet6/ipcomp_output.c \
192 sys/netinet6/ipcomp_input.c \
195 cdl_option CYGPKG_NET_FREEBSD_IPSEC6 {
196 display "IPSEC support for IPv6"
197 active_if CYGPKG_NET_INET6
198 active_if CYGPKG_NET_FREEBSD_IPSEC
203 This option enables support for IPSEC with IPv6"
205 sys/netinet6/in6_gif.c
208 cdl_option CYGPKG_NET_FREEBSD_SYSCTL {
209 display "sysctl support"
213 This option enables support for the system call sysctl used
214 to configure options/variables in the stack and retrieve statistics. "
215 # This file was derived from FreeBSD and carries that copyright
217 sys/kern/kern_sysctl.c
219 cdl_option CYGPKG_NET_RANDOM_PORTS {
220 display "Random source ports"
224 This option enables support for random source ports when the source
225 port is not specified. This option is useful when connecting
230 cdl_option CYGPKG_NET_NGIF {
231 display "Number of GIF things"
235 This option controls the number of active GIF things."
239 cdl_option CYGPKG_NET_NLOOP {
240 display "Number of loopback interfaces"
244 This option controls the number of loopback, i.e. local, interfaces.
245 There is seldom need for this value to be anything other than one."
249 cdl_option CYGPKG_NET_FREEBSD_LOGGING {
250 display "Error and warning log control"
254 This option controls the type and amount of information
255 printed by the networking code. Different logging
256 facilities may be enabled by bitwise or-ing:
257 LOG_ERR 0x0001 - error conditions
258 LOG_WARNING 0x0002 - interesting, but not errors
259 LOG_NOTICE 0x0004 - things to look out for
260 LOG_INFO 0x0008 - generic comments
261 LOG_DEBUG 0x0010 - for finding obscure problems
262 LOG_MDEBUG 0x0020 - additional information about memory allocations
263 LOG_IOCTL 0x0040 - information about ioctl calls
264 LOG_INIT 0x0080 - information as system initializes
265 LOG_ADDR 0x0100 - information about IPv6 addresses
266 LOG_FAIL 0x0200 - why packets (IPv6) are ignored, etc.
267 LOG_EMERG 0x4000 - emergency conditions
268 LOG_CRIT 0x8000 - critical error
272 cdl_option CYGPKG_NET_FORCE_SERIAL_CONSOLE {
273 display "Force use of serial console during initialization"
277 Trying to print initialization messages can fail if the
278 console channel is a network connection (via RedBoot).
279 Use of this option forces the stack to use a serial
280 port during this phase for safety. It can be used
281 if the network drivers are unstable at this point."
284 cdl_option CYGPKG_NET_MEM_USAGE {
285 display "Memory designated for networking buffers."
287 default_value (256*1024)+(CYGPKG_NET_MAXSOCKETS*1024)
289 This option controls the amount of memory pre-allocated
290 for buffers used by the networking code. The number is an
291 upper limit, with at least enough space to get the stack
292 initialized. Tip: setting a breakpoint at cyg_memalloc_alloc_fail()
293 is an especially useful tool in establishing when there is too
294 little memory for an application. "
297 cdl_option CYGPKG_NET_MEMPOOL_SIZE {
298 display "Memory designated for network dynamically allocated memory"
300 default_value CYGPKG_NET_MEM_USAGE/4
302 Controls the amount of memory in the pool used for dynamically
303 allocated memory. This does not include mbufs or clusters."
306 cdl_option CYGPKG_NET_MBUFS_SIZE {
307 display "MBUFs memory size"
309 default_value CYGPKG_NET_MEM_USAGE/4
314 cdl_option CYGPKG_NET_CLUSTERS_SIZE {
315 display "Clusters size"
317 default_value CYGPKG_NET_MEM_USAGE/2
322 cdl_option CYGPKG_NET_MAXSOCKETS {
323 display "Max number of open sockets"
325 default_value CYGNUM_FILEIO_NFILE
327 This option controls the amount of memory pre-allocated
328 for socket buffers used by the networking code."
331 cdl_option CYGPKG_NET_NUM_WAKEUP_EVENTS {
332 display "Number of supported pending network events"
336 This option controls the number of pending network events
337 used by the networking code."
340 cdl_component CYGPKG_NET_THREAD {
341 display "Background network processing thread options"
345 cdl_option CYGPKG_NET_THREAD_PRIORITY {
346 display "Priority level for background network processing"
350 This option allows the thread priority level used by the
351 networking stack to be adjusted by the user. It should be set
352 high enough that sufficient CPU resources are available to
353 process network data, but may be adjusted so that application
354 threads can have precedence over network processing."
357 cdl_option CYGNUM_NET_THREAD_STACKSIZE {
358 display "Stack size for backgound network processing"
360 default_value { (CYGPKG_NET_INET6 ?
361 "CYGNUM_HAL_STACK_SIZE_TYPICAL+2048" :
362 "CYGNUM_HAL_STACK_SIZE_TYPICAL") }
364 This option allows the thread stack allocated for the
365 networking stack to be adjusted by the user. "
369 cdl_component CYGPKG_NET_FAST_THREAD {
370 display "Fast network processing thread options"
374 cdl_option CYGPKG_NET_FAST_THREAD_PRIORITY {
375 display "Priority level for fast network processing"
377 default_value CYGPKG_NET_THREAD_PRIORITY - 1
379 This option sets the thread priority level used by the fast
380 network thread. The fast network thread runs often but briefly, to
381 service network device interrupts and network timeout events. This
382 thread should have higher priority than the background network
383 thread. It is reasonable to set this thread's priority higher than
384 application threads for best network throughput, or to set it lower
385 than application threads for best latency for those application
386 threads themselves, potentially at a cost to network throughput."
389 cdl_option CYGNUM_NET_FAST_THREAD_STACKSIZE {
390 display "Stack size for fast network processing"
392 default_value { "CYGNUM_HAL_STACK_SIZE_TYPICAL" }
394 This option allows the thread stack allocated for the
395 fast networking stack to be adjusted by the user. "
399 cdl_component CYGPKG_NET_FAST_THREAD_TICKLE_DEVS {
400 display "Fast network processing thread 'tickles' drivers"
403 If this is enabled, the fast network thread will tickle the
404 device(s) periodically, to unblock them when the hardware has
405 become wedged due to a lost interrupt or other hardware
406 race-condition type problem.
407 This is not necessary if a networked app is running which sends
408 packets itself often - or
409 uses TCP, or any similar protocol which exchanges keep-alive
410 packets periodically and often enough.
411 Trying to send a packet passes control into the driver; this is
412 sufficient to detect and unblock jammed hardware."
414 cdl_option CYGNUM_NET_FAST_THREAD_TICKLE_DEVS_DELAY {
415 display "Delay in kernel clocks of tickle loop"
419 The default is 50, which will usually mean a delay between
420 tests for 'stuck' devices of 500mS, that is half a second.
421 The overhead only applies if no network activity occurred,
422 so it may be acceptable to make this value very small,
423 where high CPU load does not matter during network idle
424 periods, or very large if your application tries often to
425 send packets itself."
429 cdl_component CYGPKG_NET_FREEBSD_STACK_OPTIONS {
430 display "Networking support build options"
434 cdl_option CYGOPT_NET_FREEBSD_STACK_ACCEPT_UNICAST {
435 display "Accept unicast packets on INADDR_ANY interfaces"
440 description "This option enables passing of unicast
441 IP packets to the application, when the interface
442 IP address is configured as INADDR_ANY (0.0.0.0).
443 This option is useful for some applications that
444 need to receive unicast IP packets when the interface
445 address is unknown. Such an application is bootp."
448 cdl_option CYGPKG_NET_FREEBSD_STACK_CFLAGS_ADD {
449 display "Additional compiler flags"
452 default_value { "-D_KERNEL" }
454 This option modifies the set of compiler flags for
455 building the networking package.
456 These flags are used in addition
457 to the set of global flags."
460 cdl_option CYGPKG_NET_FREEBSD_STACK_CFLAGS_REMOVE {
461 display "Suppressed compiler flags"
466 This option modifies the set of compiler flags for
467 building the networking package. These flags are removed from
468 the set of global flags if present."
471 cdl_option CYGPKG_NET_FREEBSD_STACK_TESTS {
472 display "FreeBSD network stack tests"
475 calculated { CYGPKG_NET_FREEBSD_SYSCTL ? "tests/sysctl1" : "" }
477 These are test specifically for the FreeBSD stack. These test features
478 which only the FreeBSD stack has"