Networked Connectivity of MLE 1000 Series

This Technical Brief describes the capabilities of the Missing Link Electronics 1000 Series Rapid Prototyping System to connect to a corporate network or to the Internet. The integrated network connectivity enables sharing the prototyping system among multiple users over separate locations or to utilize other compute and storage resources within a corporate network.

Copyright © 2010 Missing Link Electronics, Inc. All rights reserved. Missing Link Electronics, the stylized Missing Link Electronics MLE logo are the service mark and/or trademark of Missing Link Electronics, Inc. All other product or service names and trademarks are the property of their respective owners.

 

Being able to share a design and verification tool such as the MLE 1000 Series Rapid Prototyping System (RPS) over a corporate network or over the Internet greatly increases its value. Over the next pages we will be describing the key functionality readily available in the MLE 1000 Series RPS when used, for example, as an application specific test and measurement device or as a system-level prototyping solution (see Figure 1).


PIC

Figure 1: MLE 1000 Series RPS – fully networked GNU/Linux workstation

Network connectivity in our view not only requires access to the system over a Local Area Network (LAN) to work on the software portion of the system but much more:

  • Remote access must be possible even via the Internet to support its use in field offices, remote test sites or to be useful in multi-site engineering and testing environments. Internet access must be reliable and secure especially when the MLE 1000 Series RPS is not protected by any firewall.
  • Users want to safely administer the hardware, firmware and the software portion all together. Programming the hardware includes the reconfigurability of the Field-Programmable Gate-Array (FPGA). Programming the firmware allows to change the boot mechanisms and programming the software means loading different kernel images and root file systems. Without the necessity to manually press a “reset” button the MLE 1000 Series RPS is fail-safe even if a tried hardware-firmware-software configuration may have rendered the system inoperable.
  • The liveliness of the MLE 1000 Series RPS can be monitored over the network to check the proper working of a remote measurement and data logging application, for example.

By utilizing embedded CPU technology within reconfigurable devices and by combining this with a powerful, customized GNU/Linux software stack the MLE 1000 Series RPS essentially becomes a fully integrated Linux workstation – inside a single FPGA device. This enables techniques for safe and secure remote access and administration the MLE 1000 Series RPS and offers a variety of network connectivity and remote access methods.

After giving a brief overview of the physical network interfaces offered by the MLE 1000 Series RPS and the essential protocols used on top of these interfaces, we discuss the general benefits of this rich networkedness.

Networkedness plays an important role in efficient hardware-software design. Please refer to [5] for utilizing the networkedness for application and kernel development. Please refer to [4] for utilizing the networkedness for hardware/FPGA development. Please refer to [3] for advanced development supporting facilities.

Figure 1 shows an overview of the various network interfaces implemented by the MLE 1000 Series RPS. Because it is an FPGA-based platform, all hardware controller functionality is implemented inside the FPGA fabric and may be changed. Due to the GNU/Linux system running on the PowerPC processor inside the FPGA, kernel driver and general software support is readily available.

The network interface of choice for the following sections is Ethernet. Besides this, the MLE 1000 Series RPS has other options for networking, such as native CAN interfaces. Access via other technologies, like Bluetooth, WLAN and even cellular phone networks (for example: UMTS, EDGE, GSM/GPRS) is supported via USB devices.

Countless protocols – the recipes of communication over physical network interfaces – do exist and are used depending on application and usecase. Besides many others the protocols, which are described in the following paragraphs, are fully implemented and ready for use on the MLE 1000 Series RPS. The protocols listed typically have a server and a client side. Unless explicitely mentioned, the MLE 1000 Series RPS has implemented the client side if the protocol, only.

Note that, in respect of the OSI Reference Model the term protocol in this section means Layer 3 and upwards, only. For further basic information on networking and protocols, start reading at Wikipedia’s page on Protocols in computing ([7]), for example. Or have a look at the book Internet Core Protocols ([2]).

IP (Internet Protocol)
The MLE 1000 Series RPS implements IP version 4 (IPv4) as described in IETF’s Internet Standard RFC-791. It is the dominant internetworking protocol in Local Area Networks (LAN) and the Internet itself, being responsible for addressing and routing of data packets even in heterogeneous networks. On top of IP the MLE 1000 Series RPS mainly supports: TCP for reliable stateful connections and UDP for datagram service. Both provide the foundation for following protocols.
DNS (Domain Name Service)
Most recently described in IETF’s Internet Standard RFC-1035, its purpose is to have a hierarchical system of domain and host names. Each name like www.missinglinkelectronics.com has the corresponding IP address attached to it. The MLE 1000 Series RPS implements a DNS client. By talking to a DNS server it is able to translate names into IP addresses and vice versa.
DHCP (Dynamic Host Configuration Protocol)
Initially described in IETF’s Internet Standard RFC-1531 and updated in RFC-2131, it is the successor of BOOTP (Bootstrap Protocol) and provides automatic network interface configuration in IPv4-based networks. A DHCP client comes pre-installed on the MLE 1000 Series RPS. It is able to utilize a central DHCP server by asking for it’s unique IP, gateway and DNS server address within a particular network. Further optional configuration items may be provided, too.
TFTP (Trivial File Transfer Protocol, Client and Server)
Most recently described in IETF’s Internet Standard RFC-2348. Due to its simplicity, this protocol is used for network booting by boot loaders. Files like firmware or operating system kernel images can be fetched from remote TFTP servers. The MLE 1000 Series RPS also supports this technique. Optional DHCP configuration items usually specify the IP address of such a TFTP server to a client.

Besides being a TFTP client, the rescue system of the MLE 1000 Series RPS implements a TFTP server, too. To update onboard flash memory, files can be uploaded via TFTP.

NFS (Network File System)
Originally developed by Sun Microsystems, Version 3 (NFSv3) as described in ITEF’s Internet Standard RFC-1813 provides access to files on a remote NFS server, as if they were local files. The MLE 1000 Series RPS comes with support for running a NFS client. It is able to mount a remote filesystem. The implementation includes support for TCP as transport protocol.
SSH (Secure SHell, Client and Server)
The MLE 1000 Series RPS implements client and server for version 2 as described by IETF’s secsh working group and corresponding Internet Standard documents. SSH provides an encrypted secure access to shell accounts (command line based) on a remote system. It also offers secure port forwarding (tunneling) for arbitrary TCP-based communication.
VNC (Virtual Network Computing, Server)
The principle of VNC is also known as remote desktop or desktop sharing. It is based on the RFB (Remote FrameBuffer) protocol by ORL (Olivetti Research Laboratory) and RealVNC Ltd. The MLE 1000 Series RPS offers VNC support through the x11vnc tool. It is similar to the above mentioned remote shell access, but provides the means to view the graphical user interface (GUI) remotely, as if it was local. VNC can be combined with SSH port forwarding to secure the communication.
VPN (Virtual Private Network, Client and Server)
is a generic term for securely connecting two or more network clients, which are usually not in the same physical network, but may reside in geographically different locations. Depending on the concrete VPN technology used these clients appear in a new, virtual network secured by encryption.

By using the MLE 1000 Series RPS’ SSH port forwarding capability basic VPN functionality can be realized. A network service running on the MLE 1000 Series RPS may be securely tunneled to a workstation as if it was local and vice versa.

TIME and NTP (Network Time Protocol)
handle date and time synchronization, as described in IETF’s Internet Standard RFC-868 (TIME) and RFC-1305 (NTP). TIME provides very basic synchronization, whereas NTP is a more advanced synchronization protocol, which compensate for the effects of variable latency and achieves high accuracies. The MLE 1000 Series RPS implements clients for these protocols, since time synchronization is especially important in NFS usage to produce correct file meta data (time stamps).

The above mentioned protocols are an excerpt of the most important protocols supported by the MLE 1000 Series RPS. They are the key features which constitute the networkedness of the MLE 1000 Series RPS.

The MLE 1000 Series RPS can be regarded as a networked workstation. This is mainly due to its various network interfaces and the FPGA configured with a complex System-on-Chip (SoC) design which is capable of running a GNU/Linux system. Linux novices, please see [6], especially chapters 4 to 8.

Figure 2 shows a typical networked setup. Besides one or more workstations for developers on the left side, a MLE 1000 Series RPS appears on the right side.


PIC

Figure 2: MLE 1000 Series RPS – a typical networked setup

The networkedness entails several features which are common to a workstation. Firstly, the MLE 1000 Series RPS is usable remotely, which means it does not have to reside on your desk. Instead it may be placed in a remote location. Figure 2 shows this by the cloud symbol. It represents any network and could be your office’s LAN or even the Internet. So the MLE 1000 Series RPS may be installed in a field office across town which has an Internet connection.

The setup in Figure 2 shows three of the most important services to which the MLE 1000 Series RPS can be a client to: DHCP, TFTP and NFS. In case of network booting all three are usually needed. However, there are alternatives and thus the services can be optional. DHCP is used for auto-configuration of the network interface. Instead you can also store all configuration items, such as the IP address, on the MLE 1000 Series RPS. A local USB memory stick can be used instead of a remote filesystem mounted via NFS. And the boot loader can also fetch the operating system kernel from local flash memory instead of loading it from a TFTP server.

Obviously, these services may run on one single physical server instead of the indicated three. This single machine might even be the developer’s workstation. From the MLE 1000 Series RPS point of view this is a matter of configuration and using the right network addresses and paths – just like with any other network device.


PIC

Figure 3: Example – Data logging using remote storage

The capability to mount arbitrary remote filesystems via NFS is a very advantageous feature. Consider a data logging application – illustrated in Figure 3. It writes all records directly into files on a central server. There is no need to have physical access to the MLE 1000 Series RPS to fetch the logged data which may reside on local storage media. Via NFS you can have immediate access to the data – from your desk’s workstation to the very same server. And the data is safe – independent of the physical location of the MLE 1000 Series RPS.


PIC

Figure 4: Example – Software development

As a second example, consider the more general case of application software development for the target. Figure 4 shows the recommended flow. Compilation of a program or operating system kernel module under development is done on the your desktop workstation. The result is immediately stored on the NFS server. The MLE 1000 Series RPS is then able to access the new binary for testing as if it was local.

Another important feature is that even sharing one MLE 1000 Series RPS among multiple developers is supported. This is mainly due to Linux being a multiuser and multitasking operating system. Thus the SSH service allows multiple logins from different developers using different user names. This allows sharing for application software development, like in any other workstation. For kernel and hardware (i.e. FPGA) development usually exclusive access is needed. However, sharing is still possible: If you do not need the MLE 1000 Series RPS one day, your co-worker may use it – without interfering with your work and without even disturbing you at your desk, since the MLE 1000 Series RPS may reside in a central location! This is due to the MLE 1000 Series RPS’ capability to load and use multiple independent configurations – similar to the Dual- or Multi-Boot principle.

Last but not least, having networked workstations on any network and on the Internet in particular means one should have good measures for secure communication. Due to the support for the SSH protocol and it’s tunneling capability this is realizable for most otherwise unencrypted services. On the MLE 1000 Series RPS no services other than SSH are open by default, so a firewall is not necessary. However, if you feel the need for even more security such as a stateful firewall (Netfilter, iptables in Linux) please contact us at Missing Link Electronics.

For more information on Linux system administration see the book Essential System Administration ([1]).

In this paper we have shown, that the MLE 1000 Series RPS is a fully networked system, which can be operated, controlled and maintained from a remote location. Development can be done without having a MLE 1000 Series RPS on your desk. Physical access is really limited to the initial setup.

The networking features mentioned apply to all network interfaces supported by the MLE 1000 Series RPS: Ethernet, Bluetooth, WLAN and cellular phone networks (for example: UMTS, EDGE, GSM/GPRS). Especially the wireless ones become relevant in mobile scenarios, when the operating system of the MLE 1000 Series RPS is running from local mass storage and there is no Ethernet connection available.

Networkedness plays an important role in efficient hardware-software design. Please refer to other relevant MLE Technical Briefs for further information [5], [4], and [3].

 

References

[1]    FRISCH , A. Essential System Administration. O’Reilly Media, August 2002.

[2]    HALL , E. Internet Core Protocols: The Definitive Guide. O’Reilly Media, February
         2000.

[3]    MLE TECHNICAL BRIEF 20100817. Advanced Programmable System Configuration
         Management, 2010..
         http://www.missinglinkelectronics.com/MLE-TB20100817

[4]    MLE TECHNICAL BRIEF 20100818. Advanced Programmable System Hardware
         Design, 2010..
         http://www.missinglinkelectronics.com/MLE-TB20100818

[5]    MLE TECHNICAL BRIEF 20100819. Advanced Programmable System Software
         Development, 2010.
         http://www.missinglinkelectronics.com/MLE-TB20100819

[6]    SHARMA , K. Introduction to linux – a beginners guide, October 2006.
         http://www.linux4biz.net/articles/Introduction_to_Linux___beginners_level_v1.pdf

[7]    WIKIPEDIA - THE FREE ENCYCLOPEDIA. Protocol (computing).
         http://en.wikipedia.org/wiki/Protocol_(computing)