Skip to content

Commit

Permalink
Merge "Merge net branch into master"
Browse files Browse the repository at this point in the history
  • Loading branch information
Anas Nashif committed Feb 15, 2017
2 parents cdf754f + 77b387b commit e93216f
Show file tree
Hide file tree
Showing 14 changed files with 346 additions and 172 deletions.
4 changes: 2 additions & 2 deletions include/net/mqtt_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ enum mqtt_qos {
struct mqtt_connect_msg {
uint8_t clean_session:1;
char *client_id;
uint16_t client_id_len; /* only required for unpacking */
uint16_t client_id_len;
uint8_t will_flag:1;
enum mqtt_qos will_qos;
uint8_t will_retain:1;
Expand All @@ -66,7 +66,7 @@ struct mqtt_connect_msg {
uint16_t will_msg_len;
uint16_t keep_alive;
const char *user_name;
uint16_t user_name_len; /*only required for unpacking */
uint16_t user_name_len;
uint8_t *password;
uint16_t password_len;
};
Expand Down
2 changes: 1 addition & 1 deletion include/net/net_if.h
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ struct net_if {
ATOMIC_DEFINE(flags, NET_IF_NUM_FLAGS);

/** Interface's L2 layer */
const struct net_l2 const *l2;
const struct net_l2 * const l2;

/** Interface's private L2 data pointer */
void *l2_data;
Expand Down
4 changes: 2 additions & 2 deletions include/net/net_l2.h
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ struct net_l2 {

#define NET_L2_GET_NAME(_name) (__net_l2_##_name)
#define NET_L2_DECLARE_PUBLIC(_name) \
extern const struct net_l2 const NET_L2_GET_NAME(_name)
extern const struct net_l2 NET_L2_GET_NAME(_name)
#define NET_L2_GET_CTX_TYPE(_name) _name##_CTX_TYPE

extern struct net_l2 __net_l2_start[];
Expand Down Expand Up @@ -95,7 +95,7 @@ NET_L2_DECLARE_PUBLIC(IEEE802154_L2);
extern struct net_l2 __net_l2_end[];

#define NET_L2_INIT(_name, _recv_fn, _send_fn, _reserve_fn, _enable_fn) \
const struct net_l2 const (NET_L2_GET_NAME(_name)) __used \
const struct net_l2 (NET_L2_GET_NAME(_name)) __used \
__attribute__((__section__(".net_l2.init"))) = { \
.recv = (_recv_fn), \
.send = (_send_fn), \
Expand Down
89 changes: 0 additions & 89 deletions samples/net/README

This file was deleted.

98 changes: 98 additions & 0 deletions samples/net/echo_client/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
Echo Client
###########

Overview
********

The echo-client sample application for Zephyr implements a UDP/TCP client
that will send IPv4 or IPv6 packets, wait for the data to be sent back,
and then verify it matches the data that was sent.

The source code for this sample application can be found at:
:file:`samples/net/echo_client`.

Building and Running
********************

There are multiple ways to use this application. One of the most common
usage scenario is to run echo-client application inside QEMU. This is
described in :ref:`networking with QEMU <networking_with_qemu>`.

There are configuration files for different boards and setups in the
echo-client directory:

- :file:`prj_arduino_101_cc2520.conf`
Use this for Arduino 101 with external IEEE 802.15.4 cc2520 board.

- :file:`prj_arduino_101.conf`
Use this for Arduino 101 with external enc28j60 ethernet board.

- :file:`prj_bt.conf`
Use this for Bluetooth IPSP connectivity.

- :file:`prj_cc2520.conf`
Use this for devices that have support for IEEE 802.15.4 cc2520 chip.

- :file:`prj_frdm_k64f_cc2520.conf`
Use this for FRDM-K64F board with external IEEE 802.15.4 cc2520 board.

- :file:`prj_frdm_k64f.conf`
Use this for FRDM-K64F board with built-in ethernet.

- :file:`prj_frdm_k64f_mcr20a.conf`
Use this for FRDM-K64F board with IEEE 802.15.4 mcr20a board.

- :file:`prj_qemu_802154.conf`
Use this when simulating IEEE 802.15.4 network using two QEMU's that
are connected together.

- :file:`prj_qemu_cortex_m3.conf`
Use this for ARM QEMU.

- :file:`prj_qemu_x86.conf`
Use this for x86 QEMU.

- :file:`prj_sam_e70_xplained.conf`
Use this for Atmel SMART SAM E70 Xplained board with ethernet.

Build echo-client sample application like this:

.. code-block:: console
$ cd $ZEPHYR_BASE/samples/net/echo_client
$ make pristine && make CONF_FILE=<your desired conf file> \
BOARD=<board to use>
Make can select the default configuration file based on the BOARD you've
specified automatically so you might not always need to mention it.

Running echo-server Linux Host
==============================

There is one useful testing scenario that can be used with Linux host.
Here echo-client is run in QEMU and echo-server is run in Linux host.

Run 'loop_socat' and 'loop-slip-tap' scripts from net-tools in Linux host.

.. code-block:: console
$ ./loop_socat.sh
In another window:

.. code-block:: console
$ sudo ./loop-slip-tap.sh
In third window:

.. code-block:: console
$ sudo ./echo-server -i tap0
Run echo-client application in QEMU:

.. code-block:: console
$ cd $ZEPHYR_BASE/samples/net/echo-client
$ make pristine && make qemu
26 changes: 0 additions & 26 deletions samples/net/echo_client/prj_slip.conf

This file was deleted.

102 changes: 102 additions & 0 deletions samples/net/echo_server/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
Echo Server
###########

Overview
********

The echo-server sample application for Zephyr implements a UDP/TCP server
that complements the echo-client sample application: the echo-server listens
for incoming IPv4 or IPv6 packets (sent by the echo client) and simply sends
them back.

The source code for this sample application can be found at:
:file:`samples/net/echo_server`.

Building and Running
********************

There are multiple ways to use this application. One of the most common
usage scenario is to run echo-server application inside QEMU. This is
described in :ref:`networking with QEMU <networking_with_qemu>`.

There are configuration files for different boards and setups in the
echo-server directory:

- :file:`prj_arduino_101_cc2520.conf`
Use this for Arduino 101 with external IEEE 802.15.4 cc2520 board.

- :file:`prj_arduino_101.conf`
Use this for Arduino 101 with external enc28j60 ethernet board.

- :file:`prj_bt.conf`
Use this for Bluetooth IPSP connectivity.

- :file:`prj_cc2520.conf`
Use this for devices that have support for IEEE 802.15.4 cc2520 chip.

- :file:`prj_frdm_k64f_cc2520.conf`
Use this for FRDM-K64F board with external IEEE 802.15.4 cc2520 board.

- :file:`prj_frdm_k64f.conf`
Use this for FRDM-K64F board with built-in ethernet.

- :file:`prj_frdm_k64f_mcr20a.conf`
Use this for FRDM-K64F board with IEEE 802.15.4 mcr20a board.

- :file:`prj_qemu_802154.conf`
Use this when simulating IEEE 802.15.4 network using two QEMU's that
are connected together.

- :file:`prj_qemu_cortex_m3.conf`
Use this for ARM QEMU.

- :file:`prj_qemu_x86.conf`
Use this for x86 QEMU.

- :file:`prj_sam_e70_xplained.conf`
Use this for Atmel SMART SAM E70 Xplained board with ethernet.

Build echo-server sample application like this:

.. code-block:: console
$ cd $ZEPHYR_BASE/samples/net/echo_server
$ make pristine && make CONF_FILE=<your desired conf file> \
BOARD=<board to use>
Make can select the default configuration file based on the BOARD you've
specified automatically so you might not always need to mention it.

Running echo-client in Linux Host
=================================

There is one useful testing scenario that can be used with Linux host.
Here echo-server is run in QEMU and echo-client is run in Linux host.

Run 'loop_socat' and 'loop-slip-tap' scripts from net-tools in Linux host.

.. code-block:: console
$ ./loop_socat.sh
In another window:

.. code-block:: console
$ sudo ./loop-slip-tap.sh
Run echo-server application in QEMU:

.. code-block:: console
$ cd $ZEPHYR_BASE/samples/net/echo-server
$ make pristine && make qemu
In third window:

.. code-block:: console
$ sudo ./echo-client -i tap0 2001:db8::1
Note that echo-server must be running in QEMU before you start the
echo-client application in host terminal window.
6 changes: 6 additions & 0 deletions samples/net/mqtt_publisher/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,12 @@ Max number of MQTT PUBLISH iterations
#define APP_MAX_ITERATIONS 5
IBM BlueMix IoT Watson topic format

.. code block:: c
#define ENABLE_BLUEMIX_TOPIC 0
On your Linux host computer, open a terminal window, locate the source code
of this sample application (i.e. :file:`samples/net/mqtt_publisher`) and type:

Expand Down
Loading

0 comments on commit e93216f

Please sign in to comment.