Skip to content

Commit

Permalink
Network: L2: remove IPSP
Browse files Browse the repository at this point in the history
Remove IPSP support from the tree.

It has no maintainers, and is regularly broken. The fact that it's
nontrivial to set-up in linux makes it hard to fix reported issues.

Signed-off-by: Jonathan Rico <jonathan.rico@nordicsemi.no>
  • Loading branch information
jori-nordic authored and carlescufi committed Apr 11, 2024
1 parent 5997815 commit e3ff993
Show file tree
Hide file tree
Showing 54 changed files with 20 additions and 2,046 deletions.
31 changes: 0 additions & 31 deletions boards/96boards/carbon/Kconfig.defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -20,37 +20,6 @@ endchoice

endif # BT

if NETWORKING

# Re-create the NET_L2_BT dependencies here
config BT
default y

config BT_PERIPHERAL
default BT

config BT_CENTRAL
default BT

config BT_SMP
default BT

config BT_L2CAP_DYNAMIC_CHANNEL
default BT

# BT is the only onboard network iface, so use it for IP networking
# if it's enabled

config NET_L2_BT
depends on NET_IPV6
default BT

config NET_L2_BT_ZEP1656
depends on NET_IPV6
default BT

endif # NETWORKING

endif # BOARD_96B_CARBON_STM32F401XE

if BOARD_96B_CARBON_NRF51822
Expand Down
6 changes: 3 additions & 3 deletions boards/96boards/carbon/doc/stm32f401xe.rst
Original file line number Diff line number Diff line change
Expand Up @@ -338,16 +338,16 @@ in general, see :ref:`build_an_application`.

#. Install the dfu-util flashing app, as described above.

#. Build and flash the ``samples/bluetooth/ipsp`` application for
#. Build and flash the ``samples/bluetooth/peripheral_hr`` application for
96b_carbon. See the instructions above for how to put your board
into DFU mode if you haven't done this before:

.. zephyr-app-commands::
:zephyr-app: samples/bluetooth/ipsp
:zephyr-app: samples/bluetooth/peripheral_hr
:board: 96b_carbon/stm32f401xe
:goals: build flash

#. Refer to the instructions in :ref:`bluetooth-ipsp-sample` for how
#. Refer to the instructions in :ref:`peripheral_hr` for how
to verify functionality.

Congratulations! Your 96Boards Carbon now has Bluetooth
Expand Down
4 changes: 0 additions & 4 deletions doc/connectivity/bluetooth/features.rst
Original file line number Diff line number Diff line change
Expand Up @@ -78,10 +78,6 @@ grown to be mature and feature-rich, as can be seen in the section below.
* Foundation Models included
* Highly configurable, fits as small as 16k RAM devices

* IPSP/6LoWPAN for IPv6 connectivity over Bluetooth LE

* IPSP node sample application

* Basic Bluetooth BR/EDR (Classic) support

* Generic Access Profile (GAP)
Expand Down
4 changes: 2 additions & 2 deletions doc/connectivity/networking/api/ieee802154.rst
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ specified.

Zephyr supports both, native IEEE 802.15.4 and Thread, with 6LoWPAN. Zephyr's
:ref:`thread_protocol_interface` implementation is based on `OpenThread
<https://openthread.io/>`_. The IPv6 header compression in 6LoWPAN is shared
among native IEEE 802.15.4 and the Bluetooth IPSP (IP support profile).
<https://openthread.io/>`_. The IPv6 header compression in 6LoWPAN is used for
native IEEE 802.15.4.

API Reference
*************
Expand Down
3 changes: 0 additions & 3 deletions doc/connectivity/networking/api/net_config.rst
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,6 @@ setup the system:
this option tells that the network application needs IPv6 router to exists
before continuing. This means in practice that the application wants to wait
until it receives IPv6 router advertisement message before continuing."
":kconfig:option:`CONFIG_NET_CONFIG_BT_NODE`", "Enables application to operate in
Bluetooth node mode which requires GATT service to be registered and start
advertising as peripheral."

Sample usage
************
Expand Down
7 changes: 3 additions & 4 deletions doc/connectivity/networking/api/net_l2.rst
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,9 @@ object. The L2 layer dictates the API provided by the device driver,
specific for that device, and optimized for working together.

Currently, there are L2 layers for :ref:`Ethernet <ethernet_interface>`,
:ref:`IEEE 802.15.4 Soft-MAC <ieee802154_interface>`,
:ref:`Bluetooth IPSP <bluetooth-ipsp-sample>`, :ref:`CANBUS <can_api>`,
:ref:`OpenThread <thread_protocol_interface>`, Wi-Fi, and a dummy layer
example that can be used as a template for writing a new one.
:ref:`IEEE 802.15.4 Soft-MAC <ieee802154_interface>`, :ref:`CANBUS <can_api>`,
:ref:`OpenThread <thread_protocol_interface>`, Wi-Fi, and a dummy layer example
that can be used as a template for writing a new one.

L2 layer API
************
Expand Down
11 changes: 5 additions & 6 deletions doc/connectivity/networking/overview.rst
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,12 @@ can be disabled if not needed.
* Multicast Listener Discovery v2 support
(`RFC 3810 <https://tools.ietf.org/html/rfc3810>`_) is enabled by default.
* IPv6 header compression (6lo) is available for IPv6 connectivity for
Bluetooth IPSP (`RFC 7668 <https://tools.ietf.org/html/rfc7668>`_) and
IEEE 802.15.4 networks (`RFC 4944 <https://tools.ietf.org/html/rfc4944>`_).

* **IPv4** The legacy IPv4 is supported by the networking stack. It cannot be
used by IEEE 802.15.4 or Bluetooth IPSP as those network technologies support
only IPv6. IPv4 can be used in Ethernet based networks. By default IPv4
support is disabled.
* **IPv4** The legacy IPv4 is supported by the networking stack. It
cannot be used by IEEE 802.15.4 as this network technology supports
only IPv6. IPv4 can be used in Ethernet based networks. By default
IPv4 support is disabled.

* DHCP (Dynamic Host Configuration Protocol) client is supported
(`RFC 2131 <https://tools.ietf.org/html/rfc2131>`_).
Expand Down Expand Up @@ -154,7 +153,7 @@ The networking stack source code tree is organized as follows:

``subsys/net/l2/``
This is where the IP stack layer 2 code is located. This includes generic
support for Bluetooth IPSP adaptation, Ethernet, IEEE 802.15.4 and Wi-Fi.
support for Ethernet, IEEE 802.15.4 and Wi-Fi.

``subsys/net/lib/``
Application-level protocols (DNS, MQTT, etc.) and additional stack
Expand Down
4 changes: 4 additions & 0 deletions doc/releases/release-notes-3.7.rst
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,10 @@ Networking

* :c:func:`lwm2m_set_bulk`

* IPSP:

* Removed IPSP support. ``CONFIG_NET_L2_BT`` does not exist anymore.

USB
***

Expand Down
68 changes: 0 additions & 68 deletions include/zephyr/net/bt.h

This file was deleted.

23 changes: 0 additions & 23 deletions include/zephyr/net/net_ip.h
Original file line number Diff line number Diff line change
Expand Up @@ -1385,15 +1385,6 @@ static inline void net_ipv6_addr_create_iid(struct in6_addr *addr,
addr->s6_addr[12] = 0xfe;
memcpy(&addr->s6_addr[13], lladdr->addr + 3, 3);

#if defined(CONFIG_NET_L2_BT_ZEP1656)
/* Workaround against older Linux kernel BT IPSP code.
* This will be removed eventually.
*/
if (lladdr->type == NET_LINK_BLUETOOTH) {
addr->s6_addr[8] ^= 0x02;
}
#endif

if (lladdr->type == NET_LINK_ETHERNET) {
addr->s6_addr[8] ^= 0x02;
}
Expand Down Expand Up @@ -1439,20 +1430,6 @@ static inline bool net_ipv6_addr_based_on_ll(const struct in6_addr *addr,
(addr->s6_addr[8] ^ 0x02) == lladdr->addr[0]) {
return true;
}
} else if (lladdr->type == NET_LINK_BLUETOOTH) {
if (!memcmp(&addr->s6_addr[9], &lladdr->addr[1], 2) &&
!memcmp(&addr->s6_addr[13], &lladdr->addr[3], 3) &&
addr->s6_addr[11] == 0xff &&
addr->s6_addr[12] == 0xfe
#if defined(CONFIG_NET_L2_BT_ZEP1656)
/* Workaround against older Linux kernel BT IPSP
* code. This will be removed eventually.
*/
&& (addr->s6_addr[8] ^ 0x02) == lladdr->addr[0]
#endif
) {
return true;
}
}

break;
Expand Down
6 changes: 0 additions & 6 deletions include/zephyr/net/net_l2.h
Original file line number Diff line number Diff line change
Expand Up @@ -116,12 +116,6 @@ NET_L2_DECLARE_PUBLIC(PPP_L2);
NET_L2_DECLARE_PUBLIC(IEEE802154_L2);
#endif /* CONFIG_NET_L2_IEEE802154 */

#ifdef CONFIG_NET_L2_BT
#define BLUETOOTH_L2 BLUETOOTH
#define BLUETOOTH_L2_CTX_TYPE void*
NET_L2_DECLARE_PUBLIC(BLUETOOTH_L2);
#endif /* CONFIG_NET_L2_BT */

#ifdef CONFIG_NET_L2_OPENTHREAD
#define OPENTHREAD_L2 OPENTHREAD
NET_L2_DECLARE_PUBLIC(OPENTHREAD_L2);
Expand Down
9 changes: 0 additions & 9 deletions samples/bluetooth/ipsp/CMakeLists.txt

This file was deleted.

Loading

0 comments on commit e3ff993

Please sign in to comment.