Skip to main content

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

For now, microSCHC is to be built locally 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:

  1. 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
  2. Matching Operators (MO)
    • equal
    • ignore
    • MSB(x)
    • match-mapping
  3. Compression/Decompression Actions (CDA)
    1. Compression
      • not-sent
      • value-sent
      • mapping-sent
      • LSB
      • devIID
      • AppIID
      • compute-* (e.g. UDP-checksum)
    2. Decompression counteparts
      • not-sent
      • value-sent
      • mapping-sent
      • LSB
      • devIID
      • AppIID
      • compute-* (e.g. UDP-checksum)
  4. Rules
    • rule data model
    • rule matching algorithm
    • YANG model interpreter
  5. Compression
    • field (left-)packet
    • field residues concatenation
    • length of variable length field encoding
    • packet compression
  6. 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

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

microschc-0.15.4-py3-none-any.whl (28.1 kB view details)

Uploaded Python 3

File details

Details for the file microschc-0.15.4-py3-none-any.whl.

File metadata

  • Download URL: microschc-0.15.4-py3-none-any.whl
  • Upload date:
  • Size: 28.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for microschc-0.15.4-py3-none-any.whl
Algorithm Hash digest
SHA256 712d85d36db6cb464d63f7b3b041b37beb60e15b7b81108fb79bcdaffcfd37a7
MD5 39f14e4e1d4fa552d11b447d8d7d74b2
BLAKE2b-256 d64d65ae341ff27577bcb65797da2a02f03a1109841937c444d153ed9c5b6c14

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page