zephyr/samples/net/ipv4_autoconf
Gerard Marull-Paretas c7b5b3c419 samples: migrate includes to contain <zephyr/...> prefix
In order to bring consistency in-tree, migrate all samples to the use
the new prefix <zephyr/...>. Note that the conversion has been scripted:

```python
from pathlib import Path
import re

EXTENSIONS = ("c", "h", "cpp", "rst")

for p in Path(".").glob("samples/**/*"):
    if not p.is_file() or p.suffix and p.suffix[1:] not in EXTENSIONS:
        continue

    content = ""
    with open(p) as f:
        for line in f:
            m = re.match(r"^(.*)#include <(.*)>(.*)$", line)
            if (m and
                not m.group(2).startswith("zephyr/") and
                (Path(".") / "include" / "zephyr" / m.group(2)).exists()):
                content += (
                    m.group(1) +
                    "#include <zephyr/" + m.group(2) +">" +
                    m.group(3) + "\n"
                )
            else:
                content += line

    with open(p, "w") as f:
        f.write(content)
```

Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
2022-05-06 11:29:59 +02:00
..
boards
src samples: migrate includes to contain <zephyr/...> prefix 2022-05-06 11:29:59 +02:00
CMakeLists.txt
prj.conf
README.rst
sample.yaml

.. _ipv4-autoconf-sample:

IPv4 autoconf client application
################################

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