Chapter 35. configuring ip addresses, Configuring ip addresses – Comtrol eCos User Manual

Page 497

Advertising
background image

Chapter 35. Configuring IP Addresses

Each interface (“eth0” and “eth1”) has independent configuration of its setup. Each can be set up manually (in
which case you must write code to do this), or by using BOOTP/DHCP, or explicitly, with configured values. If
additional interfaces are added, these must be configured manually.

The configurable values are:

IP address

netmask

broadcast address

gateway/router

server address.

Server address is the DHCP server if applicable, but in addition, many test cases use it as “the machine to talk to”
in whatever manner the test exercises the protocol stack.

The initialization is invoked by calling the C routine

void

init_all_network_interfaces

(void);

Additionally, if the system is configured to support IPv6 then each interface may have an address assigned which
is a composite of a 64 bit prefix and the 32 bit IPv4 address for that interface. The prefix is controlled by the CDL
setting CYGHWR_NET_DRIVER_ETH0_IPV6_PREFIX for “eth0”, etc. This is a CDL booldata type, allowing
this address to be suppressed if not desired.

Refer to the test cases,

.../packages/net/common/VERSION /tests/ftp_test.c

for example usage, and the

source files in

.../packages/net/common/VERSION /src/bootp_support.c

and

network_support.c

to see

what that call does.

This assumes that the MAC address (also known as ESA or Ethernet Station Address) is already defined in the
serial EEPROM or however the particular target implements this; support for setting the MAC address is hardware
dependent.

DHCP support is active by default, and there are configuration options to control it. Firstly, in the top level of the
“Networking” configuration tree, “Use full DHCP instead of BOOTP” enables DHCP, and it contains an option
to have the system provide a thread to renew DHCP leases and manage lease expiry. Secondly, the individual
interfaces “eth0” and “eth1” each have new options within the “Use BOOTP/DHCP to initialize ‘ethX’” to select
whether to use DHCP rather than BOOTP.

Note that you are completely at liberty to ignore this startup code and its configuration in building your application.

init_all_network_interfaces()

is provided for three main purposes:

For use by Red Hat’s own test programs.

As an easy “get you going” utility for newcomers to eCos.

393

Advertising