-
Notifications
You must be signed in to change notification settings - Fork 670
neutils: add support for cmux protocol. #3187
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
base: master
Are you sure you want to change the base?
Conversation
ci detected some typos and formatting, please fix @halyssonJr, tanks! :-) |
fb706da
to
90fb7ef
Compare
we made a similar thing, but in the kernel side by implementing a cmux serial driver. The major difference is that the kernel driver could work in the interrupt context and more fast. |
Hi @halyssonJr, Please add build with CMake
|
ab5d7d4
to
9af63e1
Compare
CMUX is something that NuttX is missing for a long time, why only now that someone contributed it you say: "we have a better and faster implementation?" It is not fair! Hehehe |
723bb2c
to
26f0a44
Compare
26f0a44
to
0627279
Compare
This commit adds CMUX (GSM 07.10) protocol support to netutils. CMUX allows multiplexing multiple virtual serial connections over a single physical serial link. Changes include: - CMUX protocol implementation - CRC table for frame validation - Basic frame handling Signed-off-by: Halysson <[email protected]>
b7890c6
to
ff0ad1f
Compare
The first version done one year ago, but it isn't perfect, that's why we just upstream host side tool in Feb: apache/nuttx#14823. Until the last month, @Gary-Hobson finish a major refactor, the new version is under the testing.
Anyway, the implementation is totally different(kernel v.s. userspace), so both can coexist without conflict. |
True, and the userspace implemented can just be copied to older NuttX version without dependence on kernel code |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you @halyssonJr :-)
Note: Please adhere to Contributing Guidelines.
Summary
The PR aims to add support for the CMUX Protocol used in cellular modems. This net utils use a pseudo-terminal to communicate directly to each virtual channel created, e.g, channel 1 is
/dev/pts/1
.Also, it's worth noting that I use this project: gsmmux as a reference for submitting this PR, an old project for Linux applications that was adapted and improved for NuttX RTOS.
Huge thanks : Eugene (a.k.a @ya-jeks) and Vitalii Vokhmin - (a.k.a @vit-)
Impact
Adds support for CMUX Protocol used in cellular modems over virtual pts channels.
Testing
This service was tested using the pppd example.