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

Subversion Repositories openrisc

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

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 786 skrzyp
# ====================================================================
2
#
3
#      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, 2009 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 {
31
    display       "Basic networking framework"
32
    doc           ref/net-common-tcpip.html
33
    include_dir   .
34
    requires      CYGPKG_IO
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
    description   "Basic networking support, including TCP/IP."
43
 
44
    cdl_interface     CYGPKG_NET_DRIVER_FRAMEWORK {
45
        display   "Suitable driver framework interface, used by network package"
46
        description "
47
          In order to decouple the network stack from driver specifics, the
48
          driver framework must be defined in a separate package."
49
    }
50
 
51
    # Commonly exported infrastructure
52
    implements    CYGINT_ISO_NETDB_PROTO
53
    implements    CYGINT_ISO_NETDB_SERV
54
    requires      { CYGBLD_ISO_NETDB_PROTO_HEADER == "" }
55
    requires      { CYGBLD_ISO_NETDB_SERV_HEADER == "" }
56
 
57
    cdl_interface CYGPKG_NET_STACK {
58
        display   "Suitable network stack implementation, used by network package"
59
        description "
60
          In order to decouple the network support from most stack specifics, the
61
          actual stack implementation must be defined in a separate package."
62
    }
63
    requires      { CYGPKG_NET_STACK == 1 }
64
    define_proc {
65
        puts $::cdl_header "#include "
66
        puts $::cdl_header "#include CYGDAT_NET_STACK_CFG"
67
    }
68
 
69
    cdl_interface CYGPKG_NET_STACK_INET {
70
        display   "Network stack support for IPv4"
71
    }
72
    cdl_interface CYGPKG_NET_STACK_INET6 {
73
        display   "Network stack support for IPv6"
74
    }
75
    cdl_interface CYGPKG_NET_STACK_IPSEC {
76
        display   "Network stack support for IPSEC"
77
    }
78
 
79
    cdl_component CYGPKG_NET_INET {
80
        display       "INET support"
81
        active_if     CYGPKG_NET_STACK_INET
82
        flavor        bool
83
        no_define
84
        default_value 1
85
        description   "
86
            This option enables support for INET (IP) network processing."
87
        define INET
88
        compile \
89
            inet_addr.c \
90
            inet_ntoa.c \
91
            inet_ntop.c \
92
            inet_pton.c \
93
            bootp_support.c \
94
            dhcp_support.c \
95
            dhcp_prot.c \
96
            network_support.c \
97
            getproto.c \
98
            getserv.c
99
        compile   getaddrinfo.c \
100
            ifaddrs.c
101
 
102
        cdl_option CYGPKG_NET_INET6 {
103
            display       "IPv6 support"
104
            active_if     CYGPKG_NET_STACK_INET6
105
            requires      CYGINT_IO_ETH_MULTICAST
106
            flavor        bool
107
            default_value 0
108
            description   "
109
                This option enables support for IPv6 networks."
110
            define INET6
111
        }
112
 
113
        cdl_option CYGPKG_NET_IPSEC {
114
            display       "IPSEC support"
115
            active_if     CYGPKG_NET_STACK_IPSEC
116
            flavor        bool
117
            default_value 1
118
            description   "
119
                This option enables support for IPSEC"
120
            define IPSEC
121
            define IPSEC_ESP
122
        }
123
        cdl_option CYGSEM_NET_ROUTING {
124
            display "Multicast routing support"
125
            flavor  bool
126
            no_define
127
            default_value 0
128
            description   "
129
                This option enables support for packet routing."
130
            define MROUTING
131
        }
132
 
133
        cdl_option CYGSEM_NET_RANDOMID {
134
            display "Use random sequence for IP packet identifiers"
135
            flavor  bool
136
            no_define
137
            default_value 0
138
            description   "
139
                This option enables the use of random IP packet sequence
140
            identifiers, rather than a purely sequential sequence.  It is
141
            believed that use of random identifiers improves security, at
142
            a fairly substantial computational overhead."
143
            define RANDOM_IP_ID
144
        }
145
 
146
    }
147
 
148
    cdl_component CYGPKG_NET_TFTP {
149
        display        "TFTP (RFC-1350) support"
150
        requires       CYGPKG_NET_INET
151
        flavor         bool
152
        default_value  1
153
        compile        tftp_client.c \
154
                       tftp_server.c
155
        description    "
156
          This option provides additional library support for
157
          the TFTP (Trivial File Transfer Protocol)."
158
 
159
        cdl_option CYGPKG_NET_TFTPD_THREAD_PRIORITY {
160
            display "Priority level for TFTP daemon thread."
161
            flavor  data
162
            default_value 10
163
            description   "
164
            This option allows the thread priority level used by the
165
            TFTP server thread to be adjusted by the user.  It should be set
166
            high enough that sufficient CPU resources are available to
167
            process network data, but may be adjusted so that application
168
            threads can have precedence over TFTP server processing."
169
        }
170
 
171
                cdl_component CYGPKG_NET_TFTPD_CLIENT_BIG_PACKET {
172
                      display "Extension to allow negotiation of big packets"
173
                      requires CYGINT_ISO_STDIO_FORMATTED_IO
174
                      flavor bool
175
                      default_value 0
176
                      description   "
177
                          Implements RFC 2348, an optional extension
178
                          to the TFTP protocol to allow the client and
179
                          server to negotiate to use bigger
180
                          packets. This can make upload/download
181
                          faster"
182
 
183
                      cdl_option  CYGPKG_NET_TFTPD_CLIENT_BIG_PACKET_SIZE {
184
                          display  "Packet size to negotiate"
185
                          flavor    data
186
                          default_value 512
187
                          legal_values 512 to 65464
188
                          description "
189
                              Size of the packets to negotiate. In an error
190
                              free environment, bigger packets will result
191
                              in faster transfers."
192
                      }
193
                }
194
 
195
 
196
        cdl_option CYGPKG_NET_TFTPD_THREAD_STACK_SIZE {
197
            display "Stack size for TFTP threads."
198
            flavor  data
199
            default_value { "(CYGNUM_HAL_STACK_SIZE_TYPICAL+(3*(SEGSIZE+4)))" }
200
            description   "
201
               This option controls the size of the stack used for the
202
               TFTP server. The default should be sufficient for most cases
203
               but some applications my require bigger stacks when the
204
               implementation of file operations are complex."
205
        }
206
 
207
        cdl_component CYGSEM_NET_TFTPD_MULTITHREADED {
208
            display "Multiple TFTPD server threads on the same port."
209
            flavor  bool
210
            default_value 1
211
            description "
212
                This option controls the tftp server ability to be
213
                multi-threaded. When enabled, multiple server can be
214
                started on the same port number. This allows multiple
215
                concurrent transfers to be active. When this option is
216
                not enabled, while one transfer is active, other
217
                requests will be delayed or even ignored."
218
 
219
            cdl_option CYGNUM_NET_TFTPD_MULTITHREADED_PORTS {
220
                display "Number of different ports with servers"
221
                flavor data
222
                default_value 1
223
                description "
224
                   Each set of servers running on the same port number
225
                   require a semaphore to synchronise there operation. This option
226
                   controls the number of semaphores and so the number
227
                   of port numbers multithreaded servers which can be
228
                   running on."
229
            }
230
        }
231
 
232
        cdl_option CYGPKG_NET_TFTP_FILE_ACCESS {
233
            display       "File I/O functions for TFTP server"
234
            flavor        bool
235
            default_value 1
236
            compile       tftp_dummy_file.c
237
            description   "
238
              Minimal in-memory file I/O support for TFTP server."
239
        }
240
    }
241
 
242
    cdl_component CYGPKG_NET_DHCP {
243
        display "Use full DHCP instead of BOOTP"
244
        requires       CYGPKG_NET_INET
245
        active_if (CYGHWR_NET_DRIVERS > 0)
246
        flavor bool
247
        default_value 1
248
        description "
249
            Provide DHCP for initializing the IP address
250
            of network interfaces.  The DHCP client is capable of falling
251
            back to BOOTP usage if the server does not support DHCP, so it
252
            should never be necessary to disable this option.  However,
253
            depending on other configuration the DHCP client may provide or
254
            require a kernel thread of its own; this consumes quite a lot
255
            of resource which a BOOTP solution does not require."
256
 
257
        cdl_option CYGOPT_NET_DHCP_DHCP_THREAD {
258
            display "DHCP management thread"
259
            flavor bool
260
            default_value 1
261
            description "
262
                Provide a separate thread to renew DHCP leases; otherwise
263
                the application MUST periodically examine the semaphore
264
                dhcp_needs_attention and call dhcp_bind() if it is
265
                signalled.  If enabled, this thread does all that for you.
266
                Independent of this option, initialization of the
267
                interfaces still occurs in init_all_network_interfaces()
268
                and your startup code must call that.  It will start the
269
                DHCP management thread if necessary.  If a lease fails to
270
                be renewed, the management thread will shut down all
271
                interfaces and attempt to initialize all the interfaces
272
                again from scratch.  This may cause application problems,
273
                in which case managing the DHCP state in an application
274
                aware thread is recommended.  See comments in dhcp.h"
275
        }
276
 
277
        cdl_option CYGOPT_NET_DHCP_DHCP_THREAD_PARAM {
278
            display "DHCP management thread loops forever"
279
            flavor  data
280
            default_value 1
281
            active_if CYGOPT_NET_DHCP_DHCP_THREAD
282
            description "
283
                If the parameter is nonzero, it loops forever; if zero,
284
                the thread exits if a lease expires, and the application
285
                must detect this and tidy up or reboot the whole machine."
286
        }
287
 
288
        cdl_option CYGPKG_NET_DHCP_THREAD_PRIORITY {
289
            display "DHCP management thread priority"
290
            flavor  data
291
            default_value CYGPKG_NET_THREAD_PRIORITY + 1
292
            active_if CYGOPT_NET_DHCP_DHCP_THREAD
293
            description "
294
            This option sets the thread priority level used by the DHCP
295
            management thread.  It should be high enough that it can run
296
            when necessary, but it does not need to be as high as the
297
            network thread itself."
298
        }
299
 
300
        cdl_option CYGPKG_NET_DHCP_THREAD_STACK_SIZE {
301
            display "Stack size for DHCP management threads."
302
            flavor  data
303
            default_value { "(CYGNUM_HAL_STACK_SIZE_TYPICAL+sizeof(struct bootp))" }
304
            description   "
305
               This option controls the size of the stack used for the
306
               DHCP mamagement thread. The default should be
307
               sufficient for most cases but some applications my
308
               require bigger stacks when using for example diag_printf."
309
        }
310
 
311
        cdl_option CYGOPT_NET_DHCP_PARM_REQ_LIST_REPLACE {
312
            display "Replace DHCP request options"
313
            flavor  booldata
314
            default_value 0
315
            active_if CYGOPT_NET_DHCP_DHCP_THREAD
316
            description "
317
                This option replaces the default list of requested
318
                options in the DHCP/BOOTP request list.  These are a
319
                comma separated list of TAG_xxx values."
320
        }
321
 
322
        cdl_option CYGOPT_NET_DHCP_PARM_REQ_LIST_ADDITIONAL {
323
            display "Additional DHCP request options"
324
            flavor  booldata
325
            default_value 0
326
            active_if CYGOPT_NET_DHCP_DHCP_THREAD
327
            description "
328
                This option adds additional options to the list of
329
                requested options in the DHCP/BOOTP request list.
330
                These are a comma separated list of TAG_xxx values."
331
        }
332
 
333
        cdl_component CYGOPT_NET_DHCP_OPTION_HOST_NAME {
334
            display "DHCP host name option"
335
            flavor  bool
336
            default_value 0
337
            active_if CYGOPT_NET_DHCP_DHCP_THREAD
338
            description "
339
                This option adds the TAG_HOST_NAME option to the DHCP/BOOTP
340
                requests.  The host name is defined by calling the function
341
                dhcp_set_hostname(), prior to calling init_all_network_interfaces()."
342
 
343
            cdl_option CYGNUM_NET_DHCP_OPTION_HOST_NAME_LEN {
344
                display "DHCP host name maximum length"
345
                flavor  data
346
                default_value 60
347
                legal_values 0 to 255
348
                active_if CYGOPT_NET_DHCP_OPTION_HOST_NAME
349
                description "
350
                    This option defines the maximum length allowed for the
351
                    host name set by dhcp_set_hostname()."
352
            }
353
        }
354
 
355
        cdl_option CYGOPT_NET_DHCP_OPTION_DHCP_CLIENTID_MAC {
356
            display "DHCP client ID option"
357
            flavor  bool
358
            default_value 0
359
            active_if CYGOPT_NET_DHCP_DHCP_THREAD
360
            description "
361
                This option adds the TAG_DHCP_CLIENTID option to the DHCP/BOOTP
362
                requests.  It uses the interface MAC address for the identifier."
363
        }
364
 
365
        cdl_option CYGNUM_NET_DHCP_MIN_RETRY_TIME {
366
            display "DHCP minimum retry time"
367
            flavor        data
368
            legal_values  0 to 100
369
            default_value 100
370
            description "
371
               This option allows the application to specify the
372
               minimum number of seconds for DHCP discovery. If DHCP
373
               discovery fails, the action to be taken is application
374
               specific. Multiple discovery attempts are made during
375
               the time specified with each subsequent attempt having
376
               a longer timeout. Attempts begin at approximately 1, 5,
377
               15, 35, and 65 seconds with the last attempt timing out
378
               after the total of 125 seconds. A new attempt will not
379
               begin if the minimum time has been reached. Although,
380
               an attempt in progress will run past the minimum time
381
               specified. For example: Specifying 30 seconds would
382
               timeout at 35 seconds. Specifying 70 seconds has the
383
               same effect as specifying 100 seconds where it would
384
               run for the total of 125 seconds."
385
        }
386
    }
387
 
388
    cdl_component CYGPKG_NET_IPV6_ROUTING {
389
        display       "Options controlling IPv6 routing"
390
        active_if     CYGPKG_NET_INET6
391
        flavor        bool
392
        default_value 1
393
        description "
394
            Various options which control how routing is done for the
395
            IPv6 enabled interfaces."
396
 
397
        cdl_component CYGOPT_NET_IPV6_ROUTING_THREAD {
398
            display       "Thread for IPv6 routing"
399
            requires      CYGPKG_POSIX
400
            flavor        bool
401
            default_value 1
402
            description "
403
                Provide a separate thread to send router solicitation
404
                messages."
405
 
406
            compile ipv6_routing_thread.c
407
 
408
            cdl_option CYGINT_NET_IPV6_ROUTING_THREAD_PRIORITY {
409
                display       "IPv6 routing thread priority"
410
                flavor        data
411
                default_value CYGPKG_NET_THREAD_PRIORITY + 1
412
                description "
413
                    This option sets the thread priority level used by the IPv6
414
                    routing thread.  It should be high enough that it can run
415
                    when necessary, but it does not need to be as high as the
416
                    network thread itself."
417
            }
418
 
419
            cdl_option CYGINT_NET_IPV6_ROUTING_THREAD_PERIOD {
420
                display       "IPv6 routing thread rate"
421
                flavor        data
422
                default_value 5*60
423
                description "
424
                    This option sets the rate at which router solicitations will
425
                    be sent out by the routing thread (in seconds)."
426
            }
427
        }
428
    }
429
 
430
    cdl_component CYGPKG_NET_DEBUG {
431
        display       "Debug output"
432
        default_value 0
433
        description   "
434
                This component controls whether there is diagnostic output
435
                for stack operations. Options within this component allow
436
                even more verbose output for certain areas."
437
 
438
        cdl_option CYGDBG_NET_DHCP_CHATTER {
439
                display       "Extra debug output for DHCP"
440
                default_value 0
441
        }
442
    }
443
 
444
    cdl_option CYGDBG_NET_TIMING_STATS {
445
        display       "Network timing statistics"
446
        default_value 0
447
        description   "
448
                This component controls whether there is diagnostic
449
                information about how long memcpy, malloc, mbuf_alloc
450
                etc take to perform."
451
    }
452
 
453
    cdl_option CYGDBG_NET_SHOW_MBUFS {
454
        display       "Network MBUF diagnostics"
455
        default_value 0
456
        description   "
457
                This option controls whether diagnostic
458
                information about the state of all mbufs is collected.
459
                This information will be displayed whenever the network
460
                stack runs out of mbufs."
461
    }
462
 
463
    cdl_component CYGPKG_NET_OPTIONS {
464
        display "Networking support build options"
465
        flavor  none
466
        no_define
467
 
468
        cdl_option CYGPKG_NET_CFLAGS_ADD {
469
            display "Additional compiler flags"
470
            flavor  data
471
            no_define
472
            default_value { "-D_KERNEL -D__ECOS -D__INSIDE_NET" }
473
            description   "
474
                This option modifies the set of compiler flags for
475
                building the networking package.
476
                These flags are used in addition
477
                to the set of global flags."
478
        }
479
 
480
        cdl_option CYGPKG_NET_CFLAGS_REMOVE {
481
            display "Suppressed compiler flags"
482
            flavor  data
483
            no_define
484
            default_value { "" }
485
            description   "
486
                This option modifies the set of compiler flags for
487
                building the networking package. These flags are removed from
488
                the set of global flags if present."
489
        }
490
    }
491
 
492
    cdl_component CYGPKG_NET_BUILD_TESTS {
493
        display "Testing options"
494
        flavor  none
495
        no_define
496
        description "
497
                This component contains options related to testing the network
498
                stack."
499
 
500
        cdl_option CYGPKG_NET_BUILD_HW_TESTS {
501
            display "Build hardware networking tests (demo programs)"
502
            flavor  bool
503
            no_define
504
            requires { CYGHWR_NET_DRIVER_ETH0_SETUP || CYGHWR_NET_DRIVER_ETH1_SETUP }
505
            default_value 0
506
            description   "
507
             This option enables the building of additional network tests
508
             that use real ethernet devices. At this time these are just
509
             demos. With this option disabled, only loopback
510
             interface tests will be built."
511
        }
512
 
513
        cdl_option CYGPKG_NET_TESTS {
514
            display "Networking tests"
515
            flavor  data
516
            no_define
517
            calculated { CYGPKG_NET_BUILD_HW_TESTS ? \
518
                    "tests/mbuf_test \
519
                    tests/socket_test \
520
                    tests/ftp_test \
521
                    tests/server_test \
522
                    tests/nc_test_slave \
523
                    tests/tftp_client_test \
524
                    tests/tftp_server_test \
525
                    tests/tcp_echo \
526
                    tests/set_mac_address \
527
                    tests/bridge \
528
                    tests/flood \
529
                    tests/ping_test \
530
                    tests/dhcp_test \
531
                    tests/dhcp_test2 \
532
                    tests/ping_lo_test \
533
                    tests/tcp_lo_test \
534
                    tests/udp_lo_test \
535
                    tests/multi_lo_select \
536
                    tests/tcp_lo_select \
537
                    tests/addr_test"
538
            :
539
                    "tests/ping_lo_test \
540
                    tests/tcp_lo_test \
541
                    tests/udp_lo_test \
542
                    tests/multi_lo_select \
543
                    tests/tcp_lo_select"
544
            }
545
            description   "
546
             This option specifies the set of tests
547
             for the networking package."
548
        }
549
 
550
        cdl_option CYGPKG_NET_TESTS_USE_RT_TEST_HARNESS {
551
            display "Use real-time response test harness (if available)"
552
            default_value 0
553
            description "
554
                    Platform and/or ethernet device driver packages may
555
                    provide a test harness to verify that interrupts are
556
                    not disabled or flooded for too long during a test.  If
557
                    such is provided, CYGTST_DEVS_ETH_TEST_NET_REALTIME is
558
                    defined and can be #include'd to acquire the support.
559
                    Some tests in the TCP/IP stack can use this harness;
560
                    this option controls whether they do.  The StrongARM
561
                    EBSA285 Ethernet device driver is one package that
562
                    provides such a harness.  See the file
563
                    tests/test_net_realtime.h in there for details."
564
        }
565
    }
566
 
567
# Description and control over different interfaces
568
 
569
    cdl_interface CYGHWR_NET_DRIVER_ETH0 {
570
        display "Does the hardware provide an 'eth0' device?"
571
        requires { CYGHWR_NET_DRIVER_ETH0 <= 1 }
572
        flavor   bool
573
    }
574
 
575
    cdl_component CYGHWR_NET_DRIVER_ETH0_SETUP_OPTIONS {
576
        display "Initialization options for 'eth0'"
577
        active_if (CYGHWR_NET_DRIVER_ETH0 == 1)
578
        flavor none
579
        no_define
580
 
581
        cdl_interface CYGHWR_NET_DRIVER_ETH0_SETUP {
582
            display "Initialization options for 'eth0'"
583
            requires 1 == CYGHWR_NET_DRIVER_ETH0_SETUP
584
            no_define
585
        }
586
 
587
        cdl_component CYGHWR_NET_DRIVER_ETH0_MANUAL {
588
            display "Initialize 'eth0' manually?"
589
            default_value 0
590
            implements CYGHWR_NET_DRIVER_ETH0_SETUP
591
            description "
592
                If this option is selected, the eCos library provides no
593
                initialization code for this interface; you must perform
594
                all the initialization in the application, by means of
595
                appropriate ioctl() calls, or by calling init_net() with an
596
                appropriate bootp record you have constructed yourself."
597
        }
598
 
599
        cdl_component CYGHWR_NET_DRIVER_ETH0_BOOTP {
600
            display "Use BOOTP/DHCP to initialize 'eth0'?"
601
            default_value 1
602
            implements CYGHWR_NET_DRIVER_ETH0_SETUP
603
            description "
604
                If this option is selected, init_all_network_interfaces()
605
                will use DHCP or BOOTP to acquire initialization data for
606
                this interface, and then set it up accordingly."
607
 
608
            cdl_option CYGHWR_NET_DRIVER_ETH0_DHCP {
609
                display "Use DHCP rather than BOOTP for 'eth0'?"
610
                flavor  bool
611
                default_value 1
612
                active_if CYGPKG_NET_DHCP
613
            }
614
 
615
            cdl_option CYGHWR_NET_DRIVER_ETH0_BOOTP_SHOW {
616
                display "Show BOOTP/DHCP initialization values?"
617
                flavor  bool
618
                default_value 1
619
            }
620
        }
621
 
622
        cdl_option CYGHWR_NET_DRIVER_ETH0_IPV6_PREFIX {
623
            display "Static IPv6 address prefix for 'eth0'"
624
            flavor  booldata
625
            active_if CYGPKG_NET_INET6
626
            default_value { "3ffe:302:11:2" }
627
            description "
628
               This option allows a specific, static address prefix to be set
629
               for an interface running IPv6.  When used, the lower 64 bits
630
               of the address will be set to the IPv4 IP address.  Note: this
631
               should not be confused with the standard IPv4->IPv6 mapped
632
               addresses, but rather just a simple way to assign addresses
633
               to nodes within an IPv6 network."
634
        }
635
 
636
        cdl_component CYGHWR_NET_DRIVER_ETH0_ADDRS {
637
            display "Address setups for 'eth0'"
638
            implements CYGHWR_NET_DRIVER_ETH0_SETUP
639
            no_define
640
 
641
            description "
642
                These options let you configure all the initialization data
643
                that init_all_network_interfaces() will use
644
                for 'eth0' statically.  Be careful when doing this, because
645
                if you run the same application image on multiple boards,
646
                they will have identical IP addresses and so on; this is a
647
                Bad Thing.
648
                The values you set are inserted in a bootp-style record
649
                that is fed into a common setup routine to configure the
650
                interface.  That routine does not in fact use the 'Server
651
                IP address' field.
652
                The bootp record is also available to application code, and
653
                some eCos networking test programs use the 'Server IP
654
                address' field to mean 'a machine we can interact with' for
655
                example to ping or perform ftp with.  That is the rationale
656
                for its inclusion here.
657
                The gateway address is used to set up a default route if
658
                nonzero.  If you have more than one interface, setting up
659
                more than one default route is will cause malfunctions.  A
660
                gateway address of 0.0.0.0 can be set to prevent that route
661
                setup.  Of course, your application can add real routes
662
                once the interface(s) initialization is complete."
663
 
664
            cdl_option CYGHWR_NET_DRIVER_ETH0_ADDRS_IP {
665
                display "IP address for 'eth0'"
666
                flavor  data
667
                default_value { "192.168.1.2" }
668
            }
669
 
670
            cdl_option CYGHWR_NET_DRIVER_ETH0_ADDRS_NETMASK {
671
                display "Network mask address for 'eth0'"
672
                flavor  data
673
                default_value { "255.255.255.0" }
674
            }
675
 
676
            cdl_option CYGHWR_NET_DRIVER_ETH0_ADDRS_BROADCAST {
677
                display "Broadcast address for 'eth0'"
678
                flavor  data
679
                default_value { "192.168.1.255" }
680
            }
681
 
682
            cdl_option CYGHWR_NET_DRIVER_ETH0_ADDRS_GATEWAY {
683
                display "Gateway/router IP address for 'eth0'"
684
                flavor  data
685
                default_value { "192.168.1.1" }
686
            }
687
 
688
            cdl_option CYGHWR_NET_DRIVER_ETH0_ADDRS_SERVER {
689
                display "Server IP address for 'eth0'"
690
                flavor  data
691
                default_value { "192.168.1.101" }
692
            }
693
        }
694
    }
695
 
696
    cdl_interface CYGHWR_NET_DRIVER_ETH1 {
697
        display "Does the hardware provide an 'eth1' device?"
698
        requires { CYGHWR_NET_DRIVER_ETH1 <= 1 }
699
        flavor   bool
700
    }
701
 
702
    cdl_component CYGHWR_NET_DRIVER_ETH1_SETUP_OPTIONS {
703
        display "Initialization options for 'eth1'"
704
        active_if (CYGHWR_NET_DRIVER_ETH1 == 1)
705
        flavor none
706
        no_define
707
 
708
        cdl_interface CYGHWR_NET_DRIVER_ETH1_SETUP {
709
            display "Initialization options for 'eth1'"
710
            requires 1 == CYGHWR_NET_DRIVER_ETH1_SETUP
711
            no_define
712
        }
713
 
714
        cdl_component CYGHWR_NET_DRIVER_ETH1_MANUAL {
715
            display "Initialize 'eth1' manually?"
716
            default_value 0
717
            implements CYGHWR_NET_DRIVER_ETH1_SETUP
718
            description "
719
                If this option is selected, the eCos library provides no
720
                initialization code for this interface; you must perform
721
                all the initialization in the application, by means of
722
                appropriate ioctl() calls, or by calling init_net() with an
723
                appropriate bootp record you have constructed yourself."
724
        }
725
 
726
        cdl_component CYGHWR_NET_DRIVER_ETH1_BOOTP {
727
            display "Use BOOTP/DHCP to initialize 'eth1'?"
728
            default_value 1
729
            implements CYGHWR_NET_DRIVER_ETH1_SETUP
730
            description "
731
                If this option is selected, init_all_network_interfaces()
732
                will use DHCP or BOOTP to acquire initialization data for
733
                this interface, and then set it up accordingly."
734
 
735
            cdl_option CYGHWR_NET_DRIVER_ETH1_DHCP {
736
                display "Use DHCP rather than BOOTP for 'eth1'?"
737
                flavor  bool
738
                default_value 1
739
                active_if CYGPKG_NET_DHCP
740
            }
741
 
742
            cdl_option CYGHWR_NET_DRIVER_ETH1_BOOTP_SHOW {
743
                display "Show BOOTP/DHCP initialization values?"
744
                flavor  bool
745
                default_value 1
746
            }
747
        }
748
 
749
        cdl_option CYGHWR_NET_DRIVER_ETH1_IPV6_PREFIX {
750
            display "Static IPv6 address prefix for 'eth1'"
751
            flavor  booldata
752
            active_if CYGPKG_NET_INET6
753
            default_value { "3ffe:302:12:2" }
754
            description "
755
               This option allows a specific, static address prefix to be set
756
               for an interface running IPv6.  When used, the lower 64 bits
757
               of the address will be set to the IPv4 IP address.  Note: this
758
               should not be confused with the standard IPv4->IPv6 mapped
759
               addresses, but rather just a simple way to assign addresses
760
               to nodes within an IPv6 network."
761
        }
762
 
763
        cdl_component CYGHWR_NET_DRIVER_ETH1_ADDRS {
764
            display "Address setups for 'eth1'"
765
            implements CYGHWR_NET_DRIVER_ETH1_SETUP
766
            no_define
767
 
768
            description "
769
                These options let you configure all the initialization data
770
                that init_all_network_interfaces() will use
771
                for 'eth1' statically.  Be careful when doing this, because
772
                if you run the same application image on multiple boards,
773
                they will have identical IP addresses and so on; this is a
774
                Bad Thing.
775
                The values you set are inserted in a bootp-style record
776
                that is fed into a common setup routine to configure the
777
                interface.  That routine does not in fact use the 'Server
778
                IP address' field.
779
                The bootp record is also available to application code, and
780
                some eCos networking test programs use the 'Server IP
781
                address' field to mean 'a machine we can interact with' for
782
                example to ping or perform ftp with.  That is the rationale
783
                for its inclusion here.
784
                The gateway address is used to set up a default route if
785
                nonzero.  If you have more than one interface, setting up
786
                more than one default route is will cause malfunctions.  A
787
                gateway address of 0.0.0.0 can be set to prevent that route
788
                setup.  Of course, your application can add real routes
789
                once the interface(s) initialization is complete.
790
                This interface 'eth1' has no route set up in the default
791
                configuration."
792
 
793
            cdl_option CYGHWR_NET_DRIVER_ETH1_ADDRS_IP {
794
                display "IP address for 'eth1'"
795
                flavor  data
796
                default_value { "192.168.1.2" }
797
            }
798
 
799
            cdl_option CYGHWR_NET_DRIVER_ETH1_ADDRS_NETMASK {
800
                display "Network mask address for 'eth1'"
801
                flavor  data
802
                default_value { "255.255.255.0" }
803
            }
804
 
805
            cdl_option CYGHWR_NET_DRIVER_ETH1_ADDRS_BROADCAST {
806
                display "Broadcast address for 'eth1'"
807
                flavor  data
808
                default_value { "192.168.1.255" }
809
            }
810
 
811
            cdl_option CYGHWR_NET_DRIVER_ETH1_ADDRS_GATEWAY {
812
                display "Gateway/router IP address for 'eth1'"
813
                flavor  data
814
                default_value { "0.0.0.0" }
815
            }
816
 
817
            cdl_option CYGHWR_NET_DRIVER_ETH1_ADDRS_SERVER {
818
                display "Server IP address for 'eth1'"
819
                flavor  data
820
                default_value { "192.168.1.101" }
821
            }
822
        }
823
    }
824
}

powered by: WebSVN 2.1.0

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