78 lines
1.9 KiB
ReStructuredText
78 lines
1.9 KiB
ReStructuredText
.. 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 :zephyr:board:`frdm_k64f` board to configure a link local IPv4 address and
|
|
connect to a Linux host.
|
|
|
|
Connect ethernet cable from a :zephyr:board:`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
|
|
|
|
Wi-Fi
|
|
=====
|
|
|
|
The IPv4 Wi-Fi support can be enabled in the sample with
|
|
:ref:`Wi-Fi snippet <snippet-wifi-ipv4>`.
|