Implementation in microPython of SCHC as specified in RFC 8724
Project description
microSCHC
In a nutshell
Implementation in microPython of SCHC as specified in RFC 8724 [1].
License
MIT License, Copyright (c) 2022 Orange, by Quentin Lampin
Installing microSCHC
Releases of microSCHC are available on PyPI. To install microSCHC, run
pip install microschc
Latest (pre-release) microSCHC versions can be built from source using hatch
and installed using the wheel (.whl) file generated in the dist/
folder.
build:
hatch build -t wheel
installation:
pip install dist/microschc-<version>-py3-none-any.whl
microSCHC, developpement plan
microSCHC aims at implementing the SCHC Compression/Decompression (C/D) and Fragmentation/Reassembly (F/R) routines described in RFC 8724 [1].
The initial focus of this effort is on the Compression/Decompression (C/D) routines and parsers for typical IoT protocol stacks, i.e. based on IPv6 [2], UDP [3], CoAP [4], lwM2M.
Current features:
-
Parsers
- IPv4
- IPv6
- UDP
- CoAP (partial test coverage: options missing)
- CoAP over UDP over IPv6 stack parser
- lwM2M ( when not using CoAP options, i.e. CoAP payloads) --> postponed to after full SCHC C/D implementation
-
Matching Operators (MO)
- equal
- ignore
- MSB(x)
- match-mapping
-
Compression/Decompression Actions (CDA)
-
Compression
- not-sent
- value-sent
- mapping-sent
- LSB
- compute-* (e.g. UDP-checksum)
- devIID
- AppIID
-
Decompression counterparts
- not-sent
- value-sent
- mapping-sent
- LSB
- [-] compute-* (e.g. UDP-checksum)
- UDP Checksum
- UDP Length
- IPv6 Payload Length
- IPv4 Payload Length
- devIID
- AppIID
-
-
Rules
- rule data model
- rule matching algorithm
- YANG model interpreter
-
Compression
- field (left-)packet
- field residues concatenation
- length of variable length field encoding
- packet compression
-
Context Management
- Definition & implementation of custom SCHC Context (not specified in RFCs)
- [1] "RFC 8724 SCHC: Generic Framework for Static Context Header Compression and Fragmentation" , A. Minaburo et al.
- [2] "RFC 8200 Internet Protocol, Version 6 (IPv6) Specification, S. Deering et al."
- [3] "RFC 768 User Datagram Protocol, J. Postel"
- [4] "RFC 7252 The Constrained Application Protocol (CoAP), Z. Shelby et al."
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file microschc-0.16.3-py3-none-any.whl
.
File metadata
- Download URL: microschc-0.16.3-py3-none-any.whl
- Upload date:
- Size: 32.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2cfcc6bec7f0e28de17ec54a330f9279782554cef116664140face3a0b1dcaf8 |
|
MD5 | 7c6d13fc09865691b92d87fd55dedbd7 |
|
BLAKE2b-256 | a3b448857945e6bfa902470bf7e32e983b8780fa4bb753f8be2360c0f72bd457 |