Merge net branch into master

Main changes:

- Documentation enhancements and fixes
- TCP fixes
- MQTT fixes
- HTTP server sample application
- IRC sample application
- DNS sample application fixes
- Zperf sample application fixes
- IEEE 802.15.4 fixes
- ZoAP server fixes
- BT IPSP fixes

----------------------------------------------------------------
Anas Nashif (3):
      doc: update networking with Qemu section
      doc: net: use Qemu setup section in current documentation
      doc: net: restructure networking documentation

Andy Ross (5):
      net: tcp: Clean up net_context lifecycle
      net: tcp: Don't send active close FIN packets synchronously
      net: tcp: Clean up FIN handling
      net: net_context: Drop callbacks in net_context_put()
      net: tcp: Add optional TIME_WAIT support

Flavio Santes (11):
      net/mqtt: Move upwards buffer size validation
      net/mqtt: Simplify the MQTT high-level API
      net/mqtt: Add the "malformed" callback to the MQTT ctx structure
      net/mqtt: Validate null or app level zero-length rx buffers
      net/mqtt: Add the MQTT Publisher sample application
      net/mqtt: Remove redundant line
      samples/net/dns: Add the FRDM_K64F board to the testcase.ini file
      samples/net/dns: Move conf variables to config.h and delete unused defines
      samples/net/dns: Improve network configuration
      samples/net/dns: Update README file
      samples/net/http: Add the HTTP server sample application

Jorge Ramirez-Ortiz (1):
      net/mqtt: Check function return value

Jukka Rissanen (16):
      net: tcp: Call connect callback later
      net: Increasing the default number of network contexts
      samples: zperf: Use native IP stack for TCP support
      samples: zperf: Enable TCP for zperf configuration
      doc: net: Migrate from Zephyr 1.6 to 1.7
      net: nbuf: Removing dead code from net_nbuf_compact()
      net: tests: Add unit tests for net_nbuf_compact()
      tests: net: rpl: Fix unicast NS sending
      tests: net: Add tests for network interface
      net: nbuf: Do no use timeout if called from isr
      net: stats: Collect bytes sent and received
      net: ipv6: Use the nexthop when sending the packet
      samples: net: zperf: Initialize address family properly
      samples: net: zperf: Fix udp.upload command
      samples: net: zperf: Fix compiler warnings
      samples: net: zperf: Set the proper UDP payload

Julien Chevrier (1):
      net: iface: Fix bad comparisons in net_if

Kumar Gala (1):
      net: ip: stat: fix typo in rpl.dio.sent stat

Leandro Pereira (1):
      samples: net: Add IRC bot example

Luiz Augusto von Dentz (5):
      net: bt: Fix failing to resolve link-local address
      net: Add ll addresses on net_if_send_data
      net: Introduce NET_IF_POINTOPOINT flag
      net: bt: Add Kconfig to interoperate with Linux
      net: samples: Add CONFIG_NET_L2_BLUETOOTH_ZEP1656

Michael Scott (24):
      net: correct in*_addr parameter of net_addr_pton()
      samples: net: irc_bot: run sample process as a thread
      samples: net: irc_bot: establish privmsg callback typedef
      samples: net: irc_bot: release net_context reference upon error
      samples: net: irc_bot: remove unneeded typecasts and extra var
      samples: net: irc_bot: add helper function in_addr_set()
      samples: net: irc_bot: remove sockaddr globals
      samples: net: irc_bot: make panic() more accessible
      samples: net: irc_bot: use #defines for server and port
      samples: net: irc_bot: make some functions more accessible
      samples: net: irc_bot: simplify connect path
      samples: net: irc_bot: expand some char buffers
      samples: net: irc_bot: fix null pointer deref
      samples: net: irc_bot: use irc parameter's connection
      samples: net: irc_bot: dont hardcode NET_SYS_LOG_LEVEL
      samples: net: irc_bot: modify disco check in on_context_recv()
      samples: net: irc_bot: create semi-unique IRC user names
      samples: net: irc_bot: handle messages across multiple fragments
      samples: net: irc_bot: add Linaro copyright
      samples: net: irc_bot: add FRDM K64F project .conf
      samples: net: irc_bot: add IPv4 support
      samples: net: irc_bot: add DNS support
      samples: net: irc_bot: add DHCPv4 support
      net: tcp: Only return -ETIMEDOUT if timeout!=0 in connect

Paul Sokolovsky (1):
      net: echo_server: Enable TCP for frdm_k64f

Ravi kumar Veeramally (5):
      net: tests: Add unit tests for net_addr_pton() utils function
      net: utils: Add net_addr_ntop() helper function
      net: tests: Add unit tests for net_addr_ntop() utils function
      net: context: Skip reserved ports
      net: context: Assign a random port number when context is created

Sergio Rodriguez (1):
      driver: ethernet: Fix typo on enc28j60 driver Kconfig

Tomasz Bursztyka (10):
      samples/net: Fix a tiny mistake in dhcpv4_client README.rst
      samples/net: Add a simple telnet sample
      doc: Include main Network APIs doxygen documentation
      doc/api/networking: Add existing network protocol libraries APIs
      net/ieee802154: Set IEEE extended address whatever runtime mode it is
      net/ieee802154: Setting short address is about local node
      net/ieee802154/mgmt: Add getters/setters for various radio network info
      net/ieee802154/shell: Add commands to set/get radio network info
      net/ieee802154: Fixing active scan buffer reference counting
      net/ipv6: Updating ll reserve should be done for all IPv6 packet.

Vinicius Costa Gomes (5):
      samples/zoap_server: Enable support for 802.15.4
      samples/zoap_server: Allow overriding the BOARD variable
      samples/zoap_server: Add a 802.15.4 case to the test suite
      iot/zoap: Fix the return value of zoap_packet_get_payload()
      samples/zoap_server: Fix errors for GET requests without payloads

 .known-issues/doc/networking.conf                |  49 ++
 doc/api/api.rst                                  |   1 +
 doc/api/networking.rst                           |  66 ++
 doc/subsystems/networking/ip-stack-migrate.rst   |  61 ++
 doc/subsystems/networking/networking.rst         |  61 +-
 doc/subsystems/networking/overview.rst           |  58 ++
 doc/subsystems/networking/qemu_setup.rst         | 158 ++++
 drivers/ethernet/Kconfig.enc28j60                |   2 +-
 include/net/dhcpv4.h                             |  10 +
 include/net/dns_client.h                         |  10 +
 include/net/ieee802154.h                         |  33 +-
 include/net/mqtt.h                               |  74 +-
 include/net/mqtt_types.h                         |  10 +
 include/net/net_context.h                        |  79 +-
 include/net/net_if.h                             |  20 +
 include/net/net_ip.h                             |  28 +-
 include/net/net_mgmt.h                           |  11 +
 include/net/net_stats.h                          |  17 +
 include/net/zoap.h                               |  15 +-
 include/net/zoap_link_format.h                   |  10 +
 samples/bluetooth/ipsp/prj.conf                  |   1 +
 samples/bluetooth/ipsp/src/main.c                |   2 +-
 samples/net/coaps_client/README.rst              |   4 -
 samples/net/coaps_client/src/udp.c               |   2 +-
 samples/net/coaps_server/README.rst              |   1 -
 samples/net/coaps_server/src/coaps_server.c      |   2 +-
 samples/net/dhcpv4_client/README.rst             |  19 +-
 samples/net/dns_client/README.rst                |  44 +-
 samples/net/dns_client/prj_arduino_101.conf      |  11 +-
 samples/net/dns_client/prj_frdm_k64f.conf        |  10 +-
 samples/net/dns_client/prj_qemu_x86.conf         |  10 +-
 samples/net/dns_client/src/config.h              |  29 +-
 samples/net/dns_client/src/main.c                | 170 ++--
 samples/net/dns_client/testcase.ini              |   2 +-
 samples/net/echo_client/src/echo-client.c        |   8 +-
 samples/net/echo_server/prj_bt.conf              |   1 +
 samples/net/echo_server/prj_frdm_k64f.conf       |   1 +
 samples/net/echo_server/src/echo-server.c        |   4 +-
 samples/net/http_server/Makefile                 |  13 +
 samples/net/http_server/README.rst               | 232 ++++++
 samples/net/http_server/prj_frdm_k64f.conf       |  29 +
 samples/net/http_server/src/Makefile             |  10 +
 samples/net/http_server/src/config.h             |  28 +
 samples/net/http_server/src/http_server.c        | 409 ++++++++++
 samples/net/http_server/src/http_server.h        |  51 ++
 samples/net/http_server/src/http_types.h         |  98 +++
 samples/net/http_server/src/http_utils.c         |  51 ++
 samples/net/http_server/src/http_utils.h         |  18 +
 samples/net/http_server/src/http_write_utils.c   | 183 +++++
 samples/net/http_server/src/http_write_utils.h   |  63 ++
 samples/net/http_server/src/main.c               | 142 ++++
 samples/net/http_server/testcase.ini             |   4 +
 samples/net/irc_bot/Makefile                     |  24 +
 samples/net/irc_bot/prj_frdm_k64f.conf           |  36 +
 samples/net/irc_bot/prj_qemu_x86.conf            |  33 +
 samples/net/irc_bot/src/Makefile                 |   1 +
 samples/net/irc_bot/src/irc-bot.c                | 940 +++++++++++++++++++++++
 samples/net/mbedtls_dtlsclient/README.rst        |   4 -
 samples/net/mbedtls_dtlsclient/src/dtls_client.c |   4 +-
 samples/net/mbedtls_dtlsclient/src/udp.c         |   4 +-
 samples/net/mbedtls_dtlsserver/README.rst        |   1 -
 samples/net/mbedtls_dtlsserver/src/dtls_server.c |   4 +-
 samples/net/mqtt_publisher/Makefile              |  14 +
 samples/net/mqtt_publisher/README.rst            | 236 ++++++
 samples/net/mqtt_publisher/prj_frdm_k64f.conf    |  36 +
 samples/net/mqtt_publisher/src/Makefile          |   8 +
 samples/net/mqtt_publisher/src/config.h          |  37 +
 samples/net/mqtt_publisher/src/main.c            | 410 ++++++++++
 samples/net/mqtt_publisher/testcase.ini          |   4 +
 samples/net/net.rst                              |   1 -
 samples/net/qemu_setup.rst                       |  31 -
 samples/net/telnet/Makefile                      |  14 +
 samples/net/telnet/README.rst                    | 137 ++++
 samples/net/telnet/prj_frdm_k64f.conf            |  44 ++
 samples/net/telnet/prj_qemu_x86.conf             |  43 ++
 samples/net/telnet/prj_qemu_x86_iamcu.conf       |  43 ++
 samples/net/telnet/src/Makefile                  |   2 +
 samples/net/telnet/src/telnet.c                  | 150 ++++
 samples/net/telnet/testcase.ini                  |   5 +
 samples/net/zoap_client/prj_bt.conf              |   1 +
 samples/net/zoap_server/Makefile                 |   2 +-
 samples/net/zoap_server/README.rst               |   7 +
 samples/net/zoap_server/prj_bt.conf              |   1 +
 samples/net/zoap_server/prj_cc2520.conf          |  15 +
 samples/net/zoap_server/src/zoap-server.c        |  30 +-
 samples/net/zoap_server/testcase.ini             |   6 +
 samples/net/zperf/README.rst                     |  38 +-
 samples/net/zperf/prj_bt.conf                    |   1 +
 samples/net/zperf/prj_frdm_k64f.conf             |   2 +-
 samples/net/zperf/src/zperf.h                    |   1 +
 samples/net/zperf/src/zperf_internal.h           |   1 +
 samples/net/zperf/src/zperf_shell.c              | 141 +++-
 samples/net/zperf/src/zperf_tcp_receiver.c       | 282 +++++--
 samples/net/zperf/src/zperf_tcp_uploader.c       |  89 ++-
 samples/net/zperf/src/zperf_udp_uploader.c       |  28 +-
 subsys/net/ip/Kconfig                            |  14 +-
 subsys/net/ip/ipv6.c                             | 106 ++-
 subsys/net/ip/l2/Kconfig                         |  11 +
 subsys/net/ip/l2/bluetooth.c                     |  41 +-
 subsys/net/ip/l2/ethernet.c                      |  63 +-
 subsys/net/ip/l2/ieee802154/ieee802154.c         |  24 +-
 subsys/net/ip/l2/ieee802154/ieee802154_mgmt.c    |  80 +-
 subsys/net/ip/l2/ieee802154/ieee802154_shell.c   | 101 +++
 subsys/net/ip/nbuf.c                             |  19 +-
 subsys/net/ip/net_context.c                      | 467 +++++------
 subsys/net/ip/net_core.c                         |  12 +-
 subsys/net/ip/net_if.c                           |  45 +-
 subsys/net/ip/net_private.h                      |  25 +-
 subsys/net/ip/net_shell.c                        |  11 +-
 subsys/net/ip/net_stats.c                        |  11 +-
 subsys/net/ip/net_stats.h                        |  12 +
 subsys/net/ip/tcp.c                              |  65 +-
 subsys/net/ip/tcp.h                              |  11 +-
 subsys/net/ip/utils.c                            |  44 +-
 subsys/net/lib/mqtt/mqtt.c                       |  53 +-
 subsys/net/lib/zoap/zoap.c                       |   7 +-
 tests/net/iface/Makefile                         |   4 +
 tests/net/iface/prj.conf                         |  22 +
 tests/net/iface/src/Makefile                     |   4 +
 tests/net/iface/src/main.c                       | 376 +++++++++
 tests/net/iface/testcase.ini                     |   4 +
 tests/net/nbuf/src/main.c                        | 172 +++++
 tests/net/rpl/src/main.c                         |  18 +-
 tests/net/utils/src/main.c                       | 377 ++++++++-
 124 files changed, 6560 insertions(+), 975 deletions(-)
 create mode 100644 .known-issues/doc/networking.conf
 create mode 100644 doc/api/networking.rst
 create mode 100644 doc/subsystems/networking/ip-stack-migrate.rst
 create mode 100644 doc/subsystems/networking/overview.rst
 create mode 100644 doc/subsystems/networking/qemu_setup.rst
 create mode 100644 samples/net/http_server/Makefile
 create mode 100644 samples/net/http_server/README.rst
 create mode 100644 samples/net/http_server/prj_frdm_k64f.conf
 create mode 100644 samples/net/http_server/src/Makefile
 create mode 100644 samples/net/http_server/src/config.h
 create mode 100644 samples/net/http_server/src/http_server.c
 create mode 100644 samples/net/http_server/src/http_server.h
 create mode 100644 samples/net/http_server/src/http_types.h
 create mode 100644 samples/net/http_server/src/http_utils.c
 create mode 100644 samples/net/http_server/src/http_utils.h
 create mode 100644 samples/net/http_server/src/http_write_utils.c
 create mode 100644 samples/net/http_server/src/http_write_utils.h
 create mode 100644 samples/net/http_server/src/main.c
 create mode 100644 samples/net/http_server/testcase.ini
 create mode 100644 samples/net/irc_bot/Makefile
 create mode 100644 samples/net/irc_bot/prj_frdm_k64f.conf
 create mode 100644 samples/net/irc_bot/prj_qemu_x86.conf
 create mode 100644 samples/net/irc_bot/src/Makefile
 create mode 100644 samples/net/irc_bot/src/irc-bot.c
 create mode 100644 samples/net/mqtt_publisher/Makefile
 create mode 100644 samples/net/mqtt_publisher/README.rst
 create mode 100644 samples/net/mqtt_publisher/prj_frdm_k64f.conf
 create mode 100644 samples/net/mqtt_publisher/src/Makefile
 create mode 100644 samples/net/mqtt_publisher/src/config.h
 create mode 100644 samples/net/mqtt_publisher/src/main.c
 create mode 100644 samples/net/mqtt_publisher/testcase.ini
 delete mode 100644 samples/net/qemu_setup.rst
 create mode 100644 samples/net/telnet/Makefile
 create mode 100644 samples/net/telnet/README.rst
 create mode 100644 samples/net/telnet/prj_frdm_k64f.conf
 create mode 100644 samples/net/telnet/prj_qemu_x86.conf
 create mode 100644 samples/net/telnet/prj_qemu_x86_iamcu.conf
 create mode 100644 samples/net/telnet/src/Makefile
 create mode 100644 samples/net/telnet/src/telnet.c
 create mode 100644 samples/net/telnet/testcase.ini
 create mode 100644 samples/net/zoap_server/prj_cc2520.conf
 create mode 100644 tests/net/iface/Makefile
 create mode 100644 tests/net/iface/prj.conf
 create mode 100644 tests/net/iface/src/Makefile
 create mode 100644 tests/net/iface/src/main.c
 create mode 100644 tests/net/iface/testcase.ini

Change-Id: Ie477c0aed33d281319afa27c10ec7d42a84346b8
Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>