Describe the contribution
This splits the monolithic "v7_codec.c" file, which contained encode/decode routines for all BPv7 elements, into smaller components.
There is a set of fundamental elements, such as integers, crc, containers and bitmaps, as well as a dedicated source unit for each block type and admin record. In the future the software may allow for dynamic registration of additional block types and admin records.
Fixes #216
Testing performed
Build and run, execute all tests/checks
Expected behavior changes
More manageable encode/decode software units, no functional change
System(s) tested on
Ubuntu 22.04
Additional Context
This splits the original single file into 16 units.
A separate unit for each of the basic elements: integers, containers, bitmaps, crc, etc.
A separate unit for each of the block types: primary, canonical, hop count, age, etc.
A separate unit for admin records and each admin record type
A separate unit for the functions invoked by other subsystems (public api)
This structure should allow the code for a particular structure to be more easily located, as well as additional block types or structures added in the future (including the possibility of runtime/dynamic block type registration).
Contributor Info - All information REQUIRED for consideration of pull request
Joseph Hickey, Vantage Systems, Inc.
Describe the contribution This splits the monolithic "v7_codec.c" file, which contained encode/decode routines for all BPv7 elements, into smaller components.
There is a set of fundamental elements, such as integers, crc, containers and bitmaps, as well as a dedicated source unit for each block type and admin record. In the future the software may allow for dynamic registration of additional block types and admin records.
Fixes #216
Testing performed Build and run, execute all tests/checks
Expected behavior changes More manageable encode/decode software units, no functional change
System(s) tested on Ubuntu 22.04
Additional Context This splits the original single file into 16 units.
This structure should allow the code for a particular structure to be more easily located, as well as additional block types or structures added in the future (including the possibility of runtime/dynamic block type registration).
Contributor Info - All information REQUIRED for consideration of pull request Joseph Hickey, Vantage Systems, Inc.