.. zephyr:code-sample:: ipv4-autoconf
:name: IPv4 autoconf client
:relevant-api: networking net_if net_context net_mgmt
Perform IPv4 autoconfiguration and self-assign a random IPv4 address
Overview
********
This sample application starts a IPv4 autoconf and self-assigns
a random IPv4 address in the 169.254.0.0/16 range, it defends
the IPv4 address and resolves IPv4 conflicts if multiple
parties try to allocate an identical address.
Requirements
************
- :ref:`networking_with_host`
Building and Running
********************
These are instructions for how to use this sample application running
on a :ref:`frdm_k64f` board to configure a link local IPv4 address and
connect to a Linux host.
Connect ethernet cable from a :ref:`Freedom-K64F board <frdm_k64f>` to a Linux
host machine and check for new interfaces.
Running Avahi client in Linux Host
==================================
Assign a IPv4 link local address to the interface in the Linux system
.. code-block:: console
$ avahi-autoipd --force-bind -D eth0
FRDM_K64F
=========
Build Zephyr the ``samples/net/ipv4_autoconf`` application using these
steps:
.. zephyr-app-commands::
:zephyr-app: samples/net/ipv4_autoconf
:host-os: unix
:board: frdm_k64f
:goals: build flash
:compact:
Once IPv4 LL has completed probing and announcement, details are shown like this:
.. code-block:: console
$ sudo screen /dev/ttyACM0 115200
.. code-block:: console
[ipv4ll] [INF] main: Run ipv4 autoconf client
[ipv4ll] [INF] handler: Your address: 169.254.218.128
Note that the IP address may change at each self assignment.
To verify the Zephyr application is running and has configured an IP address
type:
.. code-block:: console
$ ping -I eth1 169.254.218.128