# Target definition file fragment for ethernet devices. # # The target-side can instantiate up to four ethernet devices, # eth0 to eth3. Each instance requires an entry in the # target definition file specifying what underlying Linux # kernel facility should be used to implement the I/O. This # can take the following forms: # # 1) an existing ethernet device, e.g. # eth0 real eth1 # thus mapping the eCos device eth0 on to the Linux device eth1. # The latter network interface must not currently be in use # by Linux. Traffic will flow to and from the real ethernet, and # communication is possible with any machine on the LAN. # # 2) the Linux kernel's tap facility. # eth0 ethertap # This will result in a Linux ethernet interface such as # tap3 appearing. The interface can be configured like any # other network device, for example by using the ifconfig # command or by creating a configuration file # /etc/sysconfig/network-scripts/ifcfg-tap3 # The result is a virtual ethernet segment visible only # to the Linux host and eCos. Bridge software inside the # Linux host can be used to connect eCos to a larger network. # # Optionally a specific tap device can be configured, # eth0 ethertap tap3 # By default the code will pick up the next free tap device, # usually tap0. If the Linux interface should come up automatically # then this can be achieved with an ifcfg-tap?? configuration # file. Explicitly specifying the tap device can avoid some # confusion. # # Both the eCos and the Linux network interface need a unique # MAC address. There is no real ethernet hardware involved to # supply these addresses, so they have to be invented. The # Linux kernel will automatically invent one for its interface. # By default a random MAC address will also be generated for # the eCos interface, but to make the system more deterministic # it is possible to specify the MAC address to be used. This # facility is only available in conjunction with an explicit # tap device, e.g.: # eth0 ethertap tap3 00:01:02:03:04:05 # The MAC address should be in the usual format: six 2-digit # hexadecimal numbers separated by colons. It is the user's # responsibility to make sure that the address specified # does not match any other real or invented address visible # on the local network. # # It is possible that bursts of ethernet traffic occur, causing # packets to arrive faster than they can be forwarded to and # processed by eCos. It is desirable that some number of packets # be buffered, matching the behaviour of many ethernet devices # with built-in fifos. However the number of these packets should # be restricted: if eCos stops accepting ethernet packets or # cannot handle the data quickly enough, then it is possible that # an unlimited number of packets could accumulate in the I/O # auxiliary until all available memory and swap space is exhausted. # By default up to 16 packets will be buffered per device, but # this can be changes with the max_buffer option. # # The ethernet emulation code can perform logging and limited # analysis of each ethernet packet. For example if a particular # packet is an IPv4 ICMP request then details of the request # will be logged to the main text window. The appearance of the # various filters can be controlled here, using the usual # options such as -foreground, -background, and -hide. # # This logging of each ethernet frame can be somewhat time-consuming # and, for a long run, require a lot of memory. Logging can be # disabled by default if desired, and a button on the toolbar allows # this setting to be toggled. # # Ethernet packets can be up to 1514 bytes, so showing entire packets # on a single line can mean very wide lines. In practice the interesting # data is usually at the start, so the output can be truncated to a # maximum number of bytes. The data is displayed in hex so each byte # requires two columns, and some spacing will be added as well to # improve legibility. synth_device ethernet { ## Map eCos devices on to Linux ones. # eth0 real eth1 # eth0 ethertap # eth0 ethertap tap3 eth0 ethertap tap3 00:FE:42:63:84:A5 # eth1 ethertap tap4 00:FE:12:34:56:78 # eth2 ethertap tap5 00:FE:9A:BC:DE:F0 # eth3 real eth2 ## Maximum number of packets that should be buffered per interface. ## Default 16 max_buffer 32 ## Should packets be logged? The default is yes. # logging 0 ## Maximum number of data bytes to be shown. ## Default 64 # max_show 128 ## Filters for the various recognised protocols. ## By default all filters are visible and use standard colours. # filter ether -hide 0 # filter arp -hide 1 # filter ipv4 -hide 1 # filter ipv6 -hide 1 # filter icmpv4 -hide 1 # filter icmpv6 -hide 1 # filter udp -hide 1 # filter tcp -hide 1 # filter hexdata -hide 0 # filter asciidata -hide 0 }