libschc est une implémentation C de la compression d'en-tête de contexte statique, rédigée par l'IETF. Il s'agit d'une technique de compression d'en-tête, utilisée dans les réseaux étendus à faible consommation afin de permettre à de minuscules microcontrôleurs de faible consommation d'avoir une connexion IPv6 de bout en bout. Ce référentiel contient à la fois le mécanisme de compression et de fragmentation. Pour plus d'informations sur SCHC, voir https://datatracker.ietf.org/doc/draft-ietf-lpwan-ipv6-static-context-hc/.
Consultez la documentation et notre document d'évaluation pour plus d'informations sur l'implémentation et la configuration.
libschc a été développé en partie avec le soutien de VLAIO, FWO et imec. Il fait également partie de la pile middleware IoT, en cours de développement pour le projet Horizon 2020 PortForward de l'Union européenne, où, entre autres, LwM2M a été intégré à cette bibliothèque afin de fournir une connectivité capteur-Cloud basée sur des normes ouvertes.
Comme cette implémentation est en cours, vous devez garder à l’esprit certaines limitations.
La bibliothèque a été conçue de telle manière qu'elle peut être utilisée sur un périphérique contraint, ainsi que sur un périphérique côté serveur plus puissant. En conséquence, l'allocation de mémoire et les calculs gourmands en mémoire sont évités. L'arithmétique à virgule fixe est utilisée pour les microprocesseurs 8 bits, cependant certaines optimisations sont possibles. Par conséquent, les règles sont constituées de tableaux de 8 bits, disponibles sur tous les appareils. L'allocation dynamique de mémoire est omise car une fragmentation de la mémoire se produirait et les performances en souffriraient, car de nombreux MCU ne sont pas équipés d'unités de gestion de mémoire (MMU). Cependant, pour la passerelle réseau, une allocation dynamique de mémoire doit être implémentée pour plusieurs fonctions afin d'éviter une pré-allocation de mémoire importante.
L'implémentation actuelle est basée sur la RFC 8724 (https://datatracker.ietf.org/doc/html/rfc8724/), mais il manque certaines fonctionnalités. La plupart d'entre eux sont répertoriés sous issues
de ce référentiel.
Veuillez garder à l'esprit que la bibliothèque fonctionne, mais qu'elle est encore expérimentale !
Dans le dossier, des exemples de compression et de fragmentation de base sont fournis. L'exemple de fragmentation utilise une bibliothèque de timer et doit être adapté à votre plateforme (voir Fragmentation et le dossier exemples).
libschc a deux licences. La Licence Publique Générale GNU, Version 3 (la « Licence ») est la licence open source : vous ne pouvez pas utiliser ces fichiers sauf en conformité avec la Licence. Vous pouvez obtenir une copie de la licence sur https://www.gnu.org/licenses/gpl-3.0.nl.html
Consultez la licence pour connaître la langue spécifique régissant les autorisations et les limitations en vertu de la licence.
Pour les licences non open source, veuillez visiter https://imec.flintbox.com/#technologies/36dfa28f-bf48-4a34-8c29-4439fc41d563
© Copyright 2018-2023, Bart Moons [email protected], imec et Université de Gand