Skip to content

BSL v2.0 Release Plan

Madeline Farina edited this page Mar 27, 2026 · 12 revisions

Identification of Products

AMMOS Configuration ID Program Set Name Program Set Version Number
681.4 Bundle Protocol Security Library 2.0

Release Overview

This release includes the following categories of changes:

  • Updates to support integration of ION 4.2.0-a.1
  • CRIT-2 bug fixes
  • MockBPA test fixture updates for testing purposes
  • Addition of the BPSec COSE context

Note that there will be an incremental release (v1.1) for the BSL in June 2026 and a standard release (v2.0) in October 2026.

Release Customers

This will affect the APL COR (Common Overlay Router) project and the JPL ION project who both wish to use the v1.1 release of BSL.

Controlling Documents

Please refer to the BSL Document repository for all publicly accessible BSL documentation.

Process Deviations

Given that the development of BSL is subcontracted to the Applied Physics Lab (APL), labor rates are proprietary. Individual line-item work estimates will not be provided as such estimates could potentially be used to "back out" labor rates for this task. In addition, this task is tracked in a Github wiki, and this information should not be publicly accessible. APL and AEM will monitor costs and immediately notify the Business Office if any concerns arise.

Moreover, if higher priority RLIs take more resources than originally estimated, lower priority items will be de-scoped to stay within budget via an approved release plan deviation. Any issues will be relayed to the Business Office as soon as possible.

Delivery Risks

None.

Dependencies

The BSL strives to avoid excessive reliance on third-party libraries and a long software supply chain. A few third-party libraries are required, however, to provide dynamic data structures for this C codebase, a unit-test driver, a CODEC for CBOR-encoded Bundle blocks, and implementations of cryptographic algorithms. These third-party open-source libraries respectively are m*lib, Unity, QCBOR, and OpenSSL. The following table lists all BSL dependencies, as well as the associated version, and any relevant licensing information.

Dependency Version License Purpose
QCBOR ? Open source build dependency, a CODEC for CBOR-encoded Bundle blocks(required)
m*lib ? Open source build dependency for heap-allocated data containers (required)
Unity ? Open source build dependency for unit test fixtures (required)
OpenSSL ? Open source build dependency for cryptographic functions (required)
Jansson ? Open source build dependency (required)
cmake ? Open source build dependency (required)
ninja-build ? Open source build dependency (required)
ruby ? Open source build dependency (required)
valgrind ? Open Source build dependency (required)
doxygen ? Open source generating documentation (optional)
graphviz ? Open source generating documentation (optional)
plantuml ? Open source generating documentation (optional)
bibtex ? Open source generating documentation (optional)
asciidoctor ? Open source generating documentation (optional)

The following ticket is our only change involving a dependency, and it doesn't affect the v1.1 release but will affect the v2.0 release:

Release Activities

Milestone Scheduled Date
Development Period of Performance 27 March 2026 - 31 July 2026
BSL v1.1 Incremental Release Available 05 June 2026
TRR Documentation Freeze 06 August 2026
Test Readiness Review 13 August 2026
DDR Documentation Freeze 01 October 2026
Delivery and Deployment Review 08 October 2026

Current Release Line Items

Requirements

No specific issues.

Improvements

Specific issues with enhancement label:

Ticket Customer Security-related Release
#33 Bind BPA HostDescriptors to a BSL Context no v2.0
#35 QCBOR FinishGetSize does not set needed encoding size on small buffers no v2.0
#37 Many index-based walking of linked lists no v2.0
#47 Mock BPA add warnings about transmitted or received bundle constraints no v1.1
#49 Optimize SecOps to combine into single Sec Blocks when possible no v2.0
#54 Sample Policy Provider SecOp ordering creates intermediate list before appending to Action no v2.0
#61 get_target_block_id will not work if there are multiple blocks of target type no v1.1
#66 Move function headers from Private.h to respective .h no v2.0
#68 Index "Realized" SecOps & Existing Bundle SecOps in policy provider no v2.0
#69 Separate notions of "Param" vs "Options" no v2.0
#71 Clean up / Remove "ResponseSet" no v1.1
#75 Clean up initializer lists in unit tests no v2.0
#76 Create Init functions for structs in unit tests no v1.1
#81 BSLP_PolicyProvider_t Should have an Init/API no v1.1
#109 Refactor JSON to only parse file(s) once in MockBPA ION no v1.1
#110 Better managing of keys in Crypto Library key registry no v1.1
#132 Support for BPSec COSE context no v2.0
#135 Add option for integration into ION ION no v1.1

Total: 18

  • Total for v1.1: 8
  • Total for v2.0: 10

Defect Repairs

Specific issues with bug label:

Ticket Customer Security-related Criticality Release
#123 Move log writer thread into host/Mock BPA ION no CRIT-2 v1.1
#133 Support memory management through callbacks ION no CRIT-2 v1.1
#134 Add ifndef checks to CHK* #defines ION no CRIT-2 v1.1

Total: 3

Sustaining Activities

Specific issues with sustainment label:

Ticket Customer Security-related Release
#24 Remove block count limit in mock BPA no v1.1
#36 bsl_mock_encode_bundle() should not be sorting blocks no v1.1
#67 SHA Variant should be uint64_t, not size_t no v1.1
#87 The BSL decodes the ASB multiple times for the same security block no v2.0
#122 Better handling of Valgrind false-positive no v1.1
#125 RPM packaging discrepancies no v1.1
#126 Improve format consistency no v2.0
#130 Move test keys out of source tree no v1.1

Total: 8

  • Total for v1.1: 6
  • Total for v2.0: 2

Documentation

Specific issues with documentation label (and documentation label only):

Ticket Customer Security-related Release
#136 Product Guide Updates no v1.1
#146 Update SRD no v2.0
#147 Update User Guide no v2.0

Total: 3

Other documents:

  • TRR presentation
  • DDR presentation

There are additional BSL documents that will be updated this release cycle that are not found in the publicly available bsl-docs repository, so they are not listed here. This release plan only refers to publicly available information, which is also why no document numbers have been included. Note that no tickets were created to track the effort of making new TRR and DDR presentations, as it was determined to be unnecessary.

Other

None.

Deviations

None.

Release Plan Revision

Commitments Improvements Defect Repairs Sustaining Activities Documentation Other
First Approval (MGSSAITS-1665) 0 18 3 8 3 0
Second Approval
TRR
DDR

Clone this wiki locally