OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [packages/] [net/] [bsd_tcpip/] [current/] [cdl/] [freebsd_net.cdl] - Blame information for rev 786

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 786 skrzyp
# ====================================================================
2
#
3
#      freebsd_net.cdl
4
#
5
#      Networking configuration data
6
#
7
# ====================================================================
8
# ####ECOSPDCOPYRIGHTBEGIN####
9
# -------------------------------------------
10
# This file is part of eCos, the Embedded Configurable Operating System.
11
# Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
12
#
13
# Permission is granted to use, copy, modify and redistribute this
14
# file.
15
#
16
# -------------------------------------------
17
# ####ECOSPDCOPYRIGHTEND####
18
# ====================================================================
19
######DESCRIPTIONBEGIN####
20
#
21
# Author(s):      gthomas
22
# Original data:  gthomas
23
# Contributors:
24
# Date:           1999-11-29
25
#
26
#####DESCRIPTIONEND####
27
#
28
# ====================================================================
29
 
30
cdl_package CYGPKG_NET_FREEBSD_STACK {
31
    display       "FreeBSD networking stack"
32
    parent        CYGPKG_NET
33
    doc           ref/tcpip-freebsd.html
34
    include_dir   .
35
    requires      CYGPKG_IO
36
    requires      CYGPKG_ISOINFRA
37
    requires      CYGINT_ISO_C_TIME_TYPES
38
    requires      CYGINT_ISO_STRERROR
39
    requires      CYGINT_ISO_ERRNO
40
    requires      CYGINT_ISO_ERRNO_CODES
41
    requires      CYGINT_ISO_MALLOC
42
    requires      CYGINT_ISO_STRING_BSD_FUNCS
43
    requires      CYGPKG_IO_FILEIO
44
    description   "Basic networking support, including TCP/IP."
45
 
46
    cdl_interface CYGINT_NET_IPSEC_BSD_CRYPTO {
47
        display   "Implementation of BSD CRYPTO functions"
48
        description "
49
          In order to avoid potential export problems of crypto
50
          functions, they are distributed in a separate package which
51
          must implement this interface"
52
    }
53
 
54
    implements    CYGPKG_NET_STACK
55
    implements    CYGPKG_NET_STACK_INET
56
    implements    CYGPKG_NET_STACK_INET6
57
 
58
    # Note: separating the stack implementation from the common support leads
59
    # to some rather incestious config file relationships.
60
    define_proc {
61
        puts $::cdl_system_header "/***** Networking stack proc output start *****/"
62
        puts $::cdl_header "#include "
63
        puts $::cdl_system_header "#define CYGDAT_NET_STACK_CFG "
64
        puts $::cdl_system_header "/***** Networking stack proc output end *****/"
65
    }
66
 
67
 
68
    # Export our types to 
69
    implements    CYGINT_ISO_BSDTYPES
70
    requires      { CYGBLD_ISO_BSDTYPES_HEADER == "" }
71
 
72
    # These files are unique to eCos
73
    compile ecos/support.c \
74
        ecos/synch.c \
75
        ecos/timeout.c \
76
        ecos/init.cxx
77
    compile -library=libextras.a sys/kern/sockio.c
78
 
79
    # These files were derived from FreeBSD and carry their copyright
80
    compile sys/net/if.c \
81
        sys/net/rtsock.c \
82
        sys/net/raw_cb.c \
83
        sys/net/raw_usrreq.c \
84
        sys/net/route.c \
85
        sys/net/radix.c \
86
        sys/net/if_ethersubr.c \
87
        sys/net/if_loop.c \
88
        sys/netinet/igmp.c \
89
        sys/netinet/raw_ip.c \
90
        sys/netinet/in.c  \
91
        sys/netinet/in_cksum.c \
92
        sys/netinet/in_pcb.c \
93
        sys/netinet/in_proto.c \
94
        sys/netinet/in_rmx.c \
95
        sys/netinet/ip_encap.c \
96
        sys/netinet/ip_id.c \
97
        sys/netinet/ip_icmp.c \
98
        sys/netinet/ip_flow.c \
99
        sys/netinet/ip_input.c \
100
        sys/netinet/ip_output.c \
101
        sys/netinet/ip_mroute.c \
102
        sys/netinet/if_ether.c \
103
        sys/netinet/udp_usrreq.c \
104
        sys/netinet/tcp_input.c \
105
        sys/netinet/tcp_output.c \
106
        sys/netinet/tcp_debug.c \
107
        sys/netinet/tcp_usrreq.c \
108
        sys/netinet/tcp_timer.c \
109
        sys/netinet/tcp_subr.c \
110
        sys/kern/md5c.c \
111
        sys/kern/uipc_domain.c \
112
        sys/kern/uipc_socket.c \
113
        sys/kern/uipc_socket2.c \
114
        sys/kern/uipc_mbuf.c \
115
        sys/kern/uipc_mbuf2.c \
116
        sys/kern/uipc_accf.c \
117
        sys/kern/kern_subr.c
118
 
119
    cdl_component CYGPKG_NET_FREEBSD_INET {
120
        display       "INET support"
121
        active_if     CYGPKG_NET_INET
122
        flavor        bool
123
        no_define
124
        default_value 1
125
        description   "
126
            This option enables support for INET (IPv4) network processing."
127
 
128
        cdl_option CYGPKG_NET_FREEBSD_INET6 {
129
            display       "IPv6 support"
130
            active_if     CYGPKG_NET_INET6
131
            flavor        bool
132
            default_value 1
133
            description   "
134
                This option enables support for new IPv6."
135
            # These files were derived from FreeBSD and carry their copyright
136
            compile \
137
              sys/netinet6/dest6.c \
138
              sys/netinet6/frag6.c \
139
              sys/netinet6/icmp6.c \
140
              sys/netinet6/in6.c \
141
              sys/netinet6/in6_cksum.c \
142
              sys/netinet6/in6_ifattach.c \
143
              sys/netinet6/in6_pcb.c \
144
              sys/netinet6/in6_proto.c \
145
              sys/netinet6/in6_rmx.c \
146
              sys/netinet6/in6_src.c \
147
              sys/netinet6/ip6_forward.c \
148
              sys/netinet6/ip6_input.c \
149
              sys/netinet6/ip6_mroute.c \
150
              sys/netinet6/ip6_output.c \
151
              sys/netinet6/mld6.c \
152
              sys/netinet6/nd6.c \
153
              sys/netinet6/nd6_nbr.c \
154
              sys/netinet6/nd6_rtr.c \
155
              sys/netinet6/raw_ip6.c \
156
              sys/netinet6/route6.c \
157
              sys/netinet6/scope6.c \
158
              sys/netinet6/udp6_output.c \
159
              sys/netinet6/udp6_usrreq.c \
160
 
161
## Only if firewall enabled
162
##              sys/netinet6/ip6_fw.c \
163
##
164
        }
165
        cdl_option CYGPKG_NET_FREEBSD_IPSEC {
166
            display       "IPSEC support"
167
            requires      CYGPKG_COMPRESS_ZLIB
168
            implements    CYGPKG_NET_STACK_IPSEC
169
 
170
            flavor        bool
171
            default_value CYGPKG_NET_IPSEC_BSD_CRYPTO
172
 
173
            description   "
174
                This option enables support for IPSEC."
175
            # These files were derived from FreeBSD/KAME and carry their copyright
176
            compile \
177
              sys/netkey/key.c \
178
              sys/netkey/key_debug.c \
179
              sys/netkey/keydb.c\
180
              sys/netkey/keysock.c \
181
              sys/netinet6/ipsec.c \
182
              sys/netinet6/ah_core.c \
183
              sys/netinet6/ah_input.c \
184
              sys/netinet6/ah_output.c \
185
              sys/netinet6/ipcomp_core.c \
186
              sys/netinet6/esp_core.c \
187
              sys/netinet6/esp_output.c \
188
              sys/netinet6/esp_input.c \
189
              sys/netinet6/esp_rijndael.c \
190
              sys/netinet6/esp_twofish.c \
191
              sys/netinet6/ipcomp_core.c \
192
              sys/netinet6/ipcomp_output.c \
193
              sys/netinet6/ipcomp_input.c \
194
              sys/netinet/ip_ecn.c
195
        }
196
        cdl_option CYGPKG_NET_FREEBSD_IPSEC6 {
197
            display       "IPSEC support for IPv6"
198
            active_if     CYGPKG_NET_INET6
199
            active_if     CYGPKG_NET_FREEBSD_IPSEC
200
 
201
            flavor        bool
202
            default_value 1
203
            description   "
204
                This option enables support for IPSEC with IPv6"
205
            compile \
206
              sys/netinet6/in6_gif.c
207
 
208
        }
209
        cdl_option CYGPKG_NET_FREEBSD_SYSCTL {
210
            display       "sysctl support"
211
            flavor        bool
212
            default_value 0
213
            description   "
214
                This option enables support for the system call sysctl used
215
            to configure options/variables in the stack and retrieve statistics. "
216
            # This file was derived from FreeBSD and carries that copyright
217
            compile \
218
              sys/kern/kern_sysctl.c
219
        }
220
        cdl_option CYGPKG_NET_RANDOM_PORTS {
221
            display       "Random source ports"
222
            flavor        bool
223
            default_value 0
224
            description   "
225
                This option enables support for random source ports when the source
226
            port is not specified.  This option is useful when connecting
227
            through firewalls."
228
        }
229
    }
230
 
231
    cdl_option CYGPKG_NET_NGIF {
232
        display "Number of GIF things"
233
        flavor  data
234
        default_value 0
235
        description   "
236
            This option controls the number of active GIF things."
237
        define NGIF
238
    }
239
 
240
    cdl_option CYGPKG_NET_NLOOP {
241
        display "Number of loopback interfaces"
242
        flavor  data
243
        default_value 1
244
        description   "
245
            This option controls the number of loopback, i.e. local, interfaces.
246
            There is seldom need for this value to be anything other than one."
247
        define NLOOP
248
    }
249
 
250
    cdl_option CYGPKG_NET_FREEBSD_LOGGING {
251
        display       "Error and warning log control"
252
        flavor        booldata
253
        default_value 0xC08F
254
        description   "
255
            This option controls the type and amount of information
256
            printed by the networking code.  Different logging
257
            facilities may be enabled by bitwise or-ing:
258
              LOG_ERR     0x0001 - error conditions
259
              LOG_WARNING 0x0002 - interesting, but not errors
260
              LOG_NOTICE  0x0004 - things to look out for
261
              LOG_INFO    0x0008 - generic comments
262
              LOG_DEBUG   0x0010 - for finding obscure problems
263
              LOG_MDEBUG  0x0020 - additional information about memory allocations
264
              LOG_IOCTL   0x0040 - information about ioctl calls
265
              LOG_INIT    0x0080 - information as system initializes
266
              LOG_ADDR    0x0100 - information about IPv6 addresses
267
              LOG_FAIL    0x0200 - why packets (IPv6) are ignored, etc.
268
              LOG_EMERG   0x4000 - emergency conditions
269
              LOG_CRIT    0x8000 - critical error
270
            "
271
    }
272
 
273
    cdl_option CYGPKG_NET_FORCE_SERIAL_CONSOLE {
274
        display "Force use of serial console during initialization"
275
        flavor  bool
276
        default_value 0
277
        description   "
278
            Trying to print initialization messages can fail if the
279
            console channel is a network connection (via RedBoot).
280
            Use of this option forces the stack to use a serial
281
            port during this phase for safety.  It can be used
282
            if the network drivers are unstable at this point."
283
    }
284
 
285
    cdl_option CYGPKG_NET_MEM_USAGE {
286
        display "Memory designated for networking buffers."
287
        flavor  data
288
        default_value (256*1024)+(CYGPKG_NET_MAXSOCKETS*1024)
289
        description   "
290
            This option controls the amount of memory pre-allocated
291
        for buffers used by the networking code.  The number is an
292
        upper limit, with at least enough space to get the stack
293
        initialized. Tip: setting a breakpoint at cyg_memalloc_alloc_fail()
294
        is an especially useful tool in establishing when there is too
295
        little memory for an application. "
296
    }
297
 
298
    cdl_option CYGPKG_NET_MEMPOOL_SIZE {
299
        display "Memory designated for network dynamically allocated memory"
300
        flavor  data
301
        default_value CYGPKG_NET_MEM_USAGE/4
302
        description   "
303
            Controls the amount of memory in the pool used for dynamically
304
            allocated memory. This does not include mbufs or clusters."
305
    }
306
 
307
    cdl_option CYGPKG_NET_MBUFS_SIZE {
308
        display "MBUFs memory size"
309
        flavor  data
310
        default_value CYGPKG_NET_MEM_USAGE/4
311
        description   "
312
            Size of MBUFs pool."
313
    }
314
 
315
    cdl_option CYGPKG_NET_CLUSTERS_SIZE {
316
        display "Clusters size"
317
        flavor  data
318
        default_value CYGPKG_NET_MEM_USAGE/2
319
        description   "
320
            Clusters size."
321
    }
322
 
323
    cdl_option CYGNUM_NET_TCP_REASS_DIVISOR {
324
        display       "Max TCP reassembly queue fraction"
325
        flavor         booldata
326
        default_value 0
327
        description   "
328
            Enabling this option puts a maximum limit on the number of TCP
329
            segments which can be queued for reassembly. The value of this
330
            option gives the maximum proportion of clusters that can be used
331
            for TCP reassembly. The maximum number of segments is given
332
            by the total number of clusters available divided by the value of
333
            this option (in other words,
334
            nmbclusters / CYGNUM_NET_TCP_REASS_DIVISOR). So for example,
335
            setting this option to 16 will means that no more than 1/16 of
336
            the total number of clusters will be used for TCP reassembly."
337
    }
338
 
339
    cdl_option CYGPKG_NET_MAXSOCKETS {
340
        display "Max number of open sockets"
341
        flavor  data
342
        default_value CYGNUM_FILEIO_NFILE
343
        description   "
344
            This option controls the amount of memory pre-allocated
345
        for socket buffers used by the networking code."
346
    }
347
 
348
    cdl_option CYGPKG_NET_NUM_WAKEUP_EVENTS {
349
        display "Number of supported pending network events"
350
        flavor  data
351
        default_value 8
352
        description   "
353
            This option controls the number of pending network events
354
        used by the networking code."
355
    }
356
 
357
    cdl_component CYGPKG_NET_THREAD {
358
        display        "Background network processing thread options"
359
        flavor        none
360
        no_define
361
 
362
     cdl_option CYGPKG_NET_THREAD_PRIORITY {
363
            display "Priority level for background network processing"
364
            flavor  data
365
            default_value 7
366
            description   "
367
                This option allows the thread priority level used by the
368
            networking stack to be adjusted by the user.  It should be set
369
            high enough that sufficient CPU resources are available to
370
            process network data, but may be adjusted so that application
371
            threads can have precedence over network processing."
372
        }
373
 
374
        cdl_option CYGNUM_NET_THREAD_STACKSIZE {
375
            display "Stack size for backgound network processing"
376
            flavor  data
377
            default_value { (CYGPKG_NET_INET6 ?
378
                             "CYGNUM_HAL_STACK_SIZE_TYPICAL+2048" :
379
                             "CYGNUM_HAL_STACK_SIZE_TYPICAL") }
380
            description   "
381
                This option allows the thread stack allocated for the
382
            networking stack to be adjusted by the user. "
383
        }
384
    }
385
 
386
    cdl_component CYGPKG_NET_FAST_THREAD {
387
        display       "Fast network processing thread options"
388
        flavor        none
389
        no_define
390
 
391
        cdl_option CYGPKG_NET_FAST_THREAD_PRIORITY {
392
            display       "Priority level for fast network processing"
393
            flavor        data
394
            default_value CYGPKG_NET_THREAD_PRIORITY - 1
395
            description   "
396
                This option sets the thread priority level used by the fast
397
            network thread.  The fast network thread runs often but briefly, to
398
            service network device interrupts and network timeout events.  This
399
            thread should have higher priority than the background network
400
            thread.  It is reasonable to set this thread's priority higher than
401
            application threads for best network throughput, or to set it lower
402
            than application threads for best latency for those application
403
            threads themselves, potentially at a cost to network throughput."
404
        }
405
 
406
        cdl_option CYGNUM_NET_FAST_THREAD_STACKSIZE {
407
            display       "Stack size for fast network processing"
408
            flavor        data
409
            default_value { "CYGNUM_HAL_STACK_SIZE_TYPICAL" }
410
            description   "
411
                This option allows the thread stack allocated for the
412
            fast networking stack to be adjusted by the user. "
413
        }
414
    }
415
 
416
    cdl_component CYGPKG_NET_FAST_THREAD_TICKLE_DEVS {
417
        display "Fast network processing thread 'tickles' drivers"
418
        default_value 1
419
        description "
420
            If this is enabled, the fast network thread will tickle the
421
            device(s) periodically, to unblock them when the hardware has
422
            become wedged due to a lost interrupt or other hardware
423
            race-condition type problem.
424
            This is not necessary if a networked app is running which sends
425
            packets itself often - or
426
            uses TCP, or any similar protocol which exchanges keep-alive
427
            packets periodically and often enough.
428
            Trying to send a packet passes control into the driver; this is
429
            sufficient to detect and unblock jammed hardware."
430
 
431
        cdl_option CYGNUM_NET_FAST_THREAD_TICKLE_DEVS_DELAY {
432
            display "Delay in kernel clocks of tickle loop"
433
            flavor data
434
            default_value 50
435
            description "
436
                The default is 50, which will usually mean a delay between
437
                tests for 'stuck' devices of 500mS, that is half a second.
438
                The overhead only applies if no network activity occurred,
439
                so it may be acceptable to make this value very small,
440
                where high CPU load does not matter during network idle
441
                periods, or very large if your application tries often to
442
                send packets itself."
443
        }
444
    }
445
 
446
    cdl_component CYGPKG_NET_FREEBSD_STACK_OPTIONS {
447
        display "Networking support build options"
448
        flavor  none
449
        no_define
450
 
451
        cdl_option CYGOPT_NET_FREEBSD_STACK_ACCEPT_UNICAST {
452
            display "Accept unicast packets on INADDR_ANY interfaces"
453
            flavor  bool
454
            no_define
455
            define        BOOTP_COMPAT
456
            default_value 0
457
            description   "This option enables passing of unicast
458
                IP packets to the application, when the interface
459
                IP address is configured as INADDR_ANY (0.0.0.0).
460
                This option is useful for some applications that
461
                need to receive unicast IP packets when the interface
462
                address is unknown.  Such an application is bootp."
463
        }
464
 
465
        cdl_option CYGPKG_NET_FREEBSD_STACK_CFLAGS_ADD {
466
            display "Additional compiler flags"
467
            flavor  data
468
            no_define
469
            default_value { "-D_KERNEL -fno-strict-aliasing" }
470
            description   "
471
                This option modifies the set of compiler flags for
472
                building the networking package.
473
                These flags are used in addition
474
                to the set of global flags."
475
        }
476
 
477
        cdl_option CYGPKG_NET_FREEBSD_STACK_CFLAGS_REMOVE {
478
            display "Suppressed compiler flags"
479
            flavor  data
480
            no_define
481
            default_value { "" }
482
            description   "
483
                This option modifies the set of compiler flags for
484
                building the networking package. These flags are removed from
485
                the set of global flags if present."
486
        }
487
    }
488
    cdl_option CYGPKG_NET_FREEBSD_STACK_TESTS {
489
        display       "FreeBSD network stack tests"
490
        flavor        data
491
        no_define
492
        calculated { CYGPKG_NET_FREEBSD_SYSCTL ? "tests/sysctl1" : "" }
493
        description  "
494
            These are test specifically for the FreeBSD stack. These test features
495
            which only the FreeBSD stack has"
496
    }
497
 
498
    cdl_option CYGOPT_NET_FREEBSD_FORCE_DIRECTED_BROADCAST {
499
        display       "Convert limited broadcast addresses into directed broadcasts"
500
        flavor        bool
501
        default_value 1
502
        description   "
503
            In line with other IP stack implementations, the BSD
504
            network stack has historically converted packets sent to
505
            the INADDR_BROADCAST destination addresses
506
            (255.255.255.255) into a more specific directed broadcast
507
            address according to the address configuration of the
508
            primary network interface. For example if your network
509
            interface is configured as 192.168.100.33/24 and you send
510
            a UDP broadcast packet to 255.255.255.255, it will
511
            actually be sent with a destination IP address of
512
            192.168.100.255. Over time, this behavior has been
513
            criticized for various reasons.  The primary reason is
514
            that it becomes impossible to send UDP packets to
515
            255.255.255.255 once the primary network (broadcast)
516
            interface is configured with address information. For this
517
            reason, it is possible to disable this behavior with this
518
            option so that packets will be sent explicitly to
519
            INADDR_BROADCAST when that destination address is
520
            specified."
521
    }
522
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.