samples: net: Add DHCPv4 sample application README file
Instructions to verify DHCPv4 client functionality in QEMU and FRDM_K64F. Change-Id: I623128186387c0c3237c8e759b949a3d0fde0993 Signed-off-by: Ravi kumar Veeramally <ravikumar.veeramally@linux.intel.com>
This commit is contained in:
parent
9e092b02e2
commit
395ad208b1
1 changed files with 161 additions and 0 deletions
161
samples/net/dhcpv4_client/README.rst
Normal file
161
samples/net/dhcpv4_client/README.rst
Normal file
|
@ -0,0 +1,161 @@
|
|||
Sample DHCPv4 client application
|
||||
################################
|
||||
|
||||
Overview
|
||||
********
|
||||
|
||||
This application starts a DHCPv4 client, gets an IPv4 address from the
|
||||
DHCPv4 server, and prints address, lease time, netmask and router
|
||||
information to a serial console.
|
||||
|
||||
Requirements
|
||||
************
|
||||
|
||||
- net_tools:
|
||||
|
||||
https://wiki.zephyrproject.org/view/Networking-with-Qemu
|
||||
|
||||
Building and Running
|
||||
********************
|
||||
|
||||
QEMU x86
|
||||
========
|
||||
|
||||
These are instructions for how to use this sample application using
|
||||
QEMU on a Linux host to negotiate IP address from DHCPv4 server running
|
||||
on Linux host.
|
||||
|
||||
Follow readme from:
|
||||
|
||||
Run 'loop_socat' and 'loop-slip-tap' scripts from net-tools.
|
||||
|
||||
https://gerrit.zephyrproject.org/r/gitweb?p=net-tools.git;a=blob;f=README
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ ./loop_socat.sh
|
||||
|
||||
In another window:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ sudo ./loop-slip-tap.sh
|
||||
|
||||
Here's a sample server configuration file '/etc/dhcpd/dhcp.conf'
|
||||
used to configure the DHCPv4 server:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
log-facility local7;
|
||||
default-lease-time 600;
|
||||
max-lease-time 7200;
|
||||
|
||||
subnet 192.0.2.0 netmask 255.255.255.0 {
|
||||
range 192.0.2.10 192.0.2.100;
|
||||
}
|
||||
|
||||
Use another terminal window to start up a DHCPv4 server on the Linux host,
|
||||
using this conf file:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ sudo dhcpd -d -4 -cf /etc/dhcp/dhcpd.conf -lf /var/lib/dhcp/dhcpd.leases tap0
|
||||
|
||||
Run Zephyr samples/net/dhcpv4_client application in QEMU:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ cd $ZEPHYR_BASE/samples/net/dhcpv4_client
|
||||
$ make pristine && make qemu
|
||||
|
||||
Once DHCPv4 client address negotiation completed with server, details
|
||||
are shown like this:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
[dhcpv4] [INF] main: In main
|
||||
[dhcpv4] [INF] main_thread: Run dhcpv4 client
|
||||
[dhcpv4] [INF] handler: Your address: 192.0.2.10
|
||||
[dhcpv4] [INF] handler: Lease time: 600
|
||||
[dhcpv4] [INF] handler: Subnet: 255.255.255.0
|
||||
[dhcpv4] [INF] handler: Router: 0.0.0.0
|
||||
|
||||
To verify the Zephyr application client is running and has received
|
||||
an ip address by typing:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ ping -I tap0 192.0.2.10
|
||||
|
||||
|
||||
FRDM_K64F
|
||||
=========
|
||||
|
||||
These are instructions for how to use this sample application running in FRDM_K64F
|
||||
board to negotiate IP address from DHCPv4 server running on Linux host.
|
||||
|
||||
Instructions to follow building, flashing and observe serial console logs:
|
||||
|
||||
https://wiki.zephyrproject.org/view/NXP_FRDM-K64F#Quick_Start
|
||||
|
||||
Connect ethernet cable from frdm board to Linux host machine and check
|
||||
for new interfaces:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ ifconfig
|
||||
|
||||
Add ip address and routing information to interface:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ sudo ip addr add 192.0.2.2 dev eth1
|
||||
$ sudo ip route add 192.0.2.0/24 dev eth1
|
||||
|
||||
Here's a sample server configuration file '/etc/dhcpd/dhcp.conf'
|
||||
used to configure the DHCPv4 server:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
log-facility local7;
|
||||
default-lease-time 600;
|
||||
max-lease-time 7200;
|
||||
|
||||
subnet 192.0.2.0 netmask 255.255.255.0 {
|
||||
range 192.0.2.10 192.0.2.100;
|
||||
}
|
||||
|
||||
Use another terminal window to start up a DHCPv4 server on the Linux host,
|
||||
using this conf file:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ sudo dhcpd -d -4 -cf /etc/dhcp/dhcpd.conf -lf /var/lib/dhcp/dhcpd.leases eth1
|
||||
|
||||
Run Zephyr samples/net/dhcpv4_client application in QEMU:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ cd $ZEPHYR_BASE/samples/net/dhcpv4_client
|
||||
$ make pristine && make BOARD=frdm_k64f
|
||||
$ cp outdir/frdm_k64f/zephyr.bin /media/rveerama/MBED/
|
||||
|
||||
Once DHCPv4 client address negotiation completed with server, details
|
||||
are shown like this:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ sudo screen /dev/ttyACM0 115200
|
||||
[dhcpv4] [INF] main: In main
|
||||
[dhcpv4] [INF] main_thread: Run dhcpv4 client
|
||||
[dhcpv4] [INF] handler: Your address: 192.0.2.10
|
||||
[dhcpv4] [INF] handler: Lease time: 600
|
||||
[dhcpv4] [INF] handler: Subnet: 255.255.255.0
|
||||
[dhcpv4] [INF] handler: Router: 0.0.0.0
|
||||
|
||||
To verify the Zephyr application client is running and has received
|
||||
an ip address by typing:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ ping -I eth1 192.0.2.10
|
Loading…
Add table
Add a link
Reference in a new issue