-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
sys/net/nanocoap: Add CoAP over TCP support #21048
Draft
maribu
wants to merge
22
commits into
RIOT-OS:master
Choose a base branch
from
maribu:sys/net/nanocoap/transport-tcp
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ec3b453
to
765fdf1
Compare
765fdf1
to
ec5a1f7
Compare
fabian18
reviewed
Jan 9, 2025
eca9688
to
647a436
Compare
a8d54ba
to
e374672
Compare
e374672
to
5dfd557
Compare
Using a constant is easier than explaining where the magic 1 came from in size estimations.
Co-authored-by: mguetschow <mikolai.guetschow@tu-dresden.de>
e2d9153
to
51ce848
Compare
This allows using and compiling the URL handling functions of sock_util without a network stack used.
be2c919
to
de1a3bf
Compare
4b7137b
to
f2187b0
Compare
dc2e02e
to
f7518ef
Compare
This changes the Makefile to easily setup lwIP as network stack, while keeping GNRC as the default. If lwIP is used on one of the larger boards, the app will be build with CoAP over TCP support enabled.
f7518ef
to
d86f93d
Compare
And test this on native with CoAP over WebSocket+YOLO
And hook up CoAP over WebSocket+YOLO
This implements a trivial reverse proxy that can translate between different transports for CoAP. The proxy is relatively limited in that each proxy instance can only forward one request at a time, reducing throughput and increasing latency significantly. It also strips the forwarded reply of any CoAP options (or sends an error if the response contained critical options).
This proxy allows using CoAP over YOLO with regular CoAP over WebSocket clients by forwarding binary messages received via WebSocket to a given UDP endpoint and the replies back to the WebSocket.
This makes sure the separate response is send using the network interface the request was received on.
d86f93d
to
d536e43
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Area: build system
Area: Build system
Area: CoAP
Area: Constrained Application Protocol implementations
Area: doc
Area: Documentation
Area: examples
Area: Example Applications
Area: network
Area: Networking
Area: pkg
Area: External package ports
Area: sys
Area: System
Area: tests
Area: tests and testing framework
Area: tools
Area: Supplementary tools
CI: ready for build
If set, CI server will compile all applications for all available boards for the labeled PR
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Contribution description
This PR adds CoAP over TCP support to nanocoap. It is still work in progress, with many rough edges. This will get updated and filled in with more details as the PR evolves.
Testing procedure
Run
sudo ./dist/tools/tapsetup/tapsetup
Server
Wait for the IPv6 address to show up
Client
Then in the RIOT shell run e.g.
Issues/PRs references
Depends on and includes: #20900