aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Tintel <stijn@linux-ipv6.be>2024-02-27 23:53:53 +0200
committerGitHub <noreply@github.com>2024-02-27 23:53:53 +0200
commitb0fabd44ce663d887d5d47e87587071e67bf2cd2 (patch)
treef4aa92a61d1cf182aa3ab3f40fc895746488b5dc
parentdf9d076d600a3d02da198af4a625980ed0633d2a (diff)
parent3444a614ed6e6b0645bfe1fdb748c83700d1605e (diff)
Merge pull request #23543 from krant/openthread-br
openthread-br: fix build and modernize
-rw-r--r--net/openthread-br/Makefile36
-rw-r--r--net/openthread-br/files/openthread-proto.sh1
-rw-r--r--net/openthread-br/patches/100-rest-support-deleting-the-dataset.patch124
3 files changed, 16 insertions, 145 deletions
diff --git a/net/openthread-br/Makefile b/net/openthread-br/Makefile
index 1b42cceee..9ce8803cc 100644
--- a/net/openthread-br/Makefile
+++ b/net/openthread-br/Makefile
@@ -53,26 +53,21 @@ define Package/openthread-br/conffiles
endef
CMAKE_OPTIONS += \
- -DOT_BORDER_ROUTER:BOOL=ON \
- -DOT_BORDER_ROUTING_NAT64:BOOL=ON \
- -DOT_CHANNEL_MANAGER:BOOL=ON \
- -DOT_CHANNEL_MONITOR:BOOL=ON \
- -DOT_COMMISSIONER:BOOL=ON \
- -DOT_ECDSA:BOOL=ON \
- -DOT_FIREWALL:BOOL=OFF \
- -DOT_SERVICE:BOOL=ON \
- -DOT_SRP_CLIENT:BOOL=ON \
- -DOT_SRP_SERVER:BOOL=ON \
- -DOTBR_BACKBONE_ROUTER:BOOL=ON \
- -DOTBR_BORDER_ROUTING:BOOL=ON \
- -DOTBR_DNSSD_DISCOVERY_PROXY:BOOL=ON \
- -DOTBR_DUA_ROUTING:BOOL=ON \
+ -DOT_BORDER_ROUTER=ON \
+ -DOT_CHANNEL_MANAGER=ON \
+ -DOT_CHANNEL_MONITOR=ON \
+ -DOT_FIREWALL=OFF \
+ -DOTBR_BACKBONE_ROUTER=ON \
+ -DOTBR_BORDER_ROUTING=ON \
+ -DOTBR_DNSSD_DISCOVERY_PROXY=ON \
+ -DOTBR_DUA_ROUTING=ON \
-DOTBR_MDNS=mDNSResponder \
- -DOTBR_OPENWRT:BOOL=ON \
- -DOTBR_REST:BOOL=ON \
- -DOTBR_SRP_ADVERTISING_PROXY:BOOL=ON \
- -DOTBR_SRP_SERVER_AUTO_ENABLE:BOOL=ON \
- -DOTBR_TREL:BOOL=ON
+ -DOTBR_NAT64=ON \
+ -DOTBR_OPENWRT=ON \
+ -DOTBR_REST=ON \
+ -DOTBR_SRP_ADVERTISING_PROXY=ON \
+ -DOTBR_SRP_SERVER_AUTO_ENABLE=ON \
+ -DOTBR_TREL=ON
TARGET_CFLAGS += -DOPENTHREAD_POSIX_CONFIG_DAEMON_SOCKET_BASENAME=\\\"/var/run/openthread-%s\\\"
@@ -96,8 +91,7 @@ define Package/openthread-br/install
$(INSTALL_DIR) \
$(1)/etc/init.d \
$(1)/lib/netifd/proto \
- $(1)/usr/sbin \
- $(1)/var/lib/thread
+ $(1)/usr/sbin
$(INSTALL_BIN) ./files/openthread-proto.sh $(1)/lib/netifd/proto/openthread.sh
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/* $(1)/usr/sbin
endef
diff --git a/net/openthread-br/files/openthread-proto.sh b/net/openthread-br/files/openthread-proto.sh
index 928bafe71..360786aaf 100644
--- a/net/openthread-br/files/openthread-proto.sh
+++ b/net/openthread-br/files/openthread-proto.sh
@@ -88,6 +88,7 @@ proto_openthread_setup() {
}
json_for_each_item proto_openthread_add_prefix prefix
+ mkdir -p /var/lib/thread
ubus call otbr threadstart || proto_openthread_setup_error "$interface" MISSING_UBUS_OBJ
$OTCTL netdata register
diff --git a/net/openthread-br/patches/100-rest-support-deleting-the-dataset.patch b/net/openthread-br/patches/100-rest-support-deleting-the-dataset.patch
deleted file mode 100644
index 014c306f3..000000000
--- a/net/openthread-br/patches/100-rest-support-deleting-the-dataset.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-From d9086b843d5da519fca876794d14026b14cc68ae Mon Sep 17 00:00:00 2001
-Message-ID: <d9086b843d5da519fca876794d14026b14cc68ae.1689665371.git.stefan@agner.ch>
-From: Stefan Agner <stefan@agner.ch>
-Date: Mon, 5 Jun 2023 23:41:50 +0200
-Subject: [PATCH] [rest] support deleting the dataset
-
-Add REST API to support deleting the active or pending operational
-dataset. Deleting the active operational dataset requires the Thread
-network to be disabled (just like modifying the active operational
-dataset). Subsequent use of the PUT method allows to build entirly
-new datasets with values generated by the stack (through
-otDatasetCreateNewNetwork).
----
- src/rest/openapi.yaml | 21 +++++++++++++++++++++
- src/rest/resource.cpp | 35 +++++++++++++++++++++++++++++++++++
- src/rest/resource.hpp | 1 +
- 3 files changed, 57 insertions(+)
-
-diff --git a/src/rest/openapi.yaml b/src/rest/openapi.yaml
-index 2ba2a4dd56..2edc4af29a 100644
---- a/src/rest/openapi.yaml
-+++ b/src/rest/openapi.yaml
-@@ -248,6 +248,18 @@ paths:
- description: Invalid request body.
- "409":
- description: Writing active operational dataset rejected because Thread network is active.
-+ delete:
-+ tags:
-+ - node
-+ summary: Deletes the active operational dataset
-+ description: |-
-+ Deletes the the active operational dataset on the current node. Only allowed if the Thread node
-+ is inactive.
-+ responses:
-+ "200":
-+ description: Successfully deleted the active operational dataset.
-+ "409":
-+ description: Deleting active operational dataset rejected because Thread network is active.
- /node/dataset/pending:
- get:
- tags:
-@@ -291,6 +303,15 @@ paths:
- description: Successfully created the pending operational dataset.
- "400":
- description: Invalid request body.
-+ delete:
-+ tags:
-+ - node
-+ summary: Deletes the pending operational dataset
-+ description: |-
-+ Deletes the the pending operational dataset on the current node.
-+ responses:
-+ "200":
-+ description: Successfully deleted the active operational dataset.
- components:
- schemas:
- LeaderData:
-diff --git a/src/rest/resource.cpp b/src/rest/resource.cpp
-index a60e9d9483..829835341a 100644
---- a/src/rest/resource.cpp
-+++ b/src/rest/resource.cpp
-@@ -767,12 +767,47 @@ exit:
- }
- }
-
-+void Resource::DeleteDataset(DatasetType aDatasetType, Response &aResponse) const
-+{
-+ otbrError error = OTBR_ERROR_NONE;
-+ std::string errorCode = GetHttpStatus(HttpStatusCode::kStatusOk);
-+ otOperationalDatasetTlvs datasetTlvs = {};
-+
-+ if (aDatasetType == DatasetType::kActive)
-+ {
-+ VerifyOrExit(otThreadGetDeviceRole(mInstance) == OT_DEVICE_ROLE_DISABLED, error = OTBR_ERROR_INVALID_STATE);
-+ }
-+
-+ if (aDatasetType == DatasetType::kActive)
-+ {
-+ VerifyOrExit(otDatasetSetActiveTlvs(mInstance, &datasetTlvs) == OT_ERROR_NONE, error = OTBR_ERROR_REST);
-+ }
-+ else if (aDatasetType == DatasetType::kPending)
-+ {
-+ VerifyOrExit(otDatasetSetPendingTlvs(mInstance, &datasetTlvs) == OT_ERROR_NONE, error = OTBR_ERROR_REST);
-+ }
-+ aResponse.SetResponsCode(errorCode);
-+
-+exit:
-+ if (error == OTBR_ERROR_INVALID_STATE)
-+ {
-+ ErrorHandler(aResponse, HttpStatusCode::kStatusConflict);
-+ }
-+ else if (error != OTBR_ERROR_NONE)
-+ {
-+ ErrorHandler(aResponse, HttpStatusCode::kStatusInternalServerError);
-+ }
-+}
-+
- void Resource::Dataset(DatasetType aDatasetType, const Request &aRequest, Response &aResponse) const
- {
- std::string errorCode;
-
- switch (aRequest.GetMethod())
- {
-+ case HttpMethod::kDelete:
-+ DeleteDataset(aDatasetType, aResponse);
-+ break;
- case HttpMethod::kGet:
- GetDataset(aDatasetType, aRequest, aResponse);
- break;
-diff --git a/src/rest/resource.hpp b/src/rest/resource.hpp
-index d79085dbfc..362e501471 100644
---- a/src/rest/resource.hpp
-+++ b/src/rest/resource.hpp
-@@ -150,6 +150,7 @@ private:
- void GetDataRloc(Response &aResponse) const;
- void GetDataset(DatasetType aDatasetType, const Request &aRequest, Response &aResponse) const;
- void SetDataset(DatasetType aDatasetType, const Request &aRequest, Response &aResponse) const;
-+ void DeleteDataset(DatasetType aDatasetType, Response &aResponse) const;
-
- void DeleteOutDatedDiagnostic(void);
- void UpdateDiag(std::string aKey, std::vector<otNetworkDiagTlv> &aDiag);
---
-2.41.0
-